@deck.gl/widgets 9.1.2 → 9.1.4
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 +28 -12
- package/dist/index.cjs +26 -11
- package/dist/index.cjs.map +2 -2
- package/dist/zoom-widget.d.ts +8 -3
- package/dist/zoom-widget.d.ts.map +1 -1
- package/dist/zoom-widget.js +29 -13
- package/dist/zoom-widget.js.map +1 -1
- package/dist.min.js +1 -1
- package/package.json +2 -2
- package/src/zoom-widget.tsx +34 -15
package/dist/dist.dev.js
CHANGED
|
@@ -667,8 +667,8 @@ var __exports__ = (() => {
|
|
|
667
667
|
|
|
668
668
|
// src/zoom-widget.tsx
|
|
669
669
|
var import_core4 = __toESM(require_core(), 1);
|
|
670
|
-
var
|
|
671
|
-
constructor(props) {
|
|
670
|
+
var _ZoomWidget = class {
|
|
671
|
+
constructor(props = {}) {
|
|
672
672
|
this.id = "zoom";
|
|
673
673
|
this.placement = "top-left";
|
|
674
674
|
this.viewId = null;
|
|
@@ -677,12 +677,8 @@ var __exports__ = (() => {
|
|
|
677
677
|
this.viewId = props.viewId ?? this.viewId;
|
|
678
678
|
this.placement = props.placement ?? this.placement;
|
|
679
679
|
this.props = {
|
|
680
|
-
...
|
|
681
|
-
|
|
682
|
-
transitionDuration: props.transitionDuration ?? 200,
|
|
683
|
-
zoomInLabel: props.zoomInLabel ?? "Zoom In",
|
|
684
|
-
zoomOutLabel: props.zoomOutLabel ?? "Zoom Out",
|
|
685
|
-
style: props.style ?? {}
|
|
680
|
+
..._ZoomWidget.defaultProps,
|
|
681
|
+
...props
|
|
686
682
|
};
|
|
687
683
|
}
|
|
688
684
|
onAdd({ deck }) {
|
|
@@ -728,11 +724,13 @@ var __exports__ = (() => {
|
|
|
728
724
|
const viewId = this.viewId || viewport?.id || "default-view";
|
|
729
725
|
const nextViewState = {
|
|
730
726
|
...viewport,
|
|
731
|
-
zoom: nextZoom
|
|
732
|
-
transitionDuration: this.props.transitionDuration,
|
|
733
|
-
transitionInterpolator: new import_core4.FlyToInterpolator()
|
|
727
|
+
zoom: nextZoom
|
|
734
728
|
};
|
|
735
|
-
this.
|
|
729
|
+
if (this.props.transitionDuration > 0) {
|
|
730
|
+
nextViewState.transitionDuration = this.props.transitionDuration;
|
|
731
|
+
nextViewState.transitionInterpolator = "latitude" in nextViewState ? new import_core4.FlyToInterpolator() : new import_core4.LinearInterpolator();
|
|
732
|
+
}
|
|
733
|
+
this.setViewState(viewId, nextViewState);
|
|
736
734
|
}
|
|
737
735
|
handleZoomIn() {
|
|
738
736
|
for (const viewport of Object.values(this.viewports)) {
|
|
@@ -744,6 +742,12 @@ var __exports__ = (() => {
|
|
|
744
742
|
this.handleZoom(viewport, viewport.zoom - 1);
|
|
745
743
|
}
|
|
746
744
|
}
|
|
745
|
+
/**
|
|
746
|
+
* @todo - move to deck or widget manager
|
|
747
|
+
*/
|
|
748
|
+
setViewState(viewId, viewState) {
|
|
749
|
+
this.deck._onViewStateChange({ viewId, viewState, interactionState: {} });
|
|
750
|
+
}
|
|
747
751
|
update() {
|
|
748
752
|
const element = this.element;
|
|
749
753
|
if (!element) {
|
|
@@ -770,6 +774,18 @@ var __exports__ = (() => {
|
|
|
770
774
|
B(ui, element);
|
|
771
775
|
}
|
|
772
776
|
};
|
|
777
|
+
var ZoomWidget = _ZoomWidget;
|
|
778
|
+
ZoomWidget.defaultProps = {
|
|
779
|
+
id: "zoom-widget",
|
|
780
|
+
style: {},
|
|
781
|
+
placement: "top-left",
|
|
782
|
+
className: void 0,
|
|
783
|
+
orientation: "vertical",
|
|
784
|
+
transitionDuration: 200,
|
|
785
|
+
zoomInLabel: "Zoom In",
|
|
786
|
+
zoomOutLabel: "Zoom Out",
|
|
787
|
+
viewId: void 0
|
|
788
|
+
};
|
|
773
789
|
|
|
774
790
|
// src/themes.ts
|
|
775
791
|
var LightTheme = {
|
package/dist/index.cjs
CHANGED
|
@@ -258,7 +258,7 @@ var import_jsx_runtime4 = require("preact/jsx-runtime");
|
|
|
258
258
|
var import_core3 = require("@deck.gl/core");
|
|
259
259
|
var import_preact3 = require("preact");
|
|
260
260
|
var ZoomWidget = class {
|
|
261
|
-
constructor(props) {
|
|
261
|
+
constructor(props = {}) {
|
|
262
262
|
this.id = "zoom";
|
|
263
263
|
this.placement = "top-left";
|
|
264
264
|
this.viewId = null;
|
|
@@ -267,12 +267,8 @@ var ZoomWidget = class {
|
|
|
267
267
|
this.viewId = props.viewId ?? this.viewId;
|
|
268
268
|
this.placement = props.placement ?? this.placement;
|
|
269
269
|
this.props = {
|
|
270
|
-
...
|
|
271
|
-
|
|
272
|
-
transitionDuration: props.transitionDuration ?? 200,
|
|
273
|
-
zoomInLabel: props.zoomInLabel ?? "Zoom In",
|
|
274
|
-
zoomOutLabel: props.zoomOutLabel ?? "Zoom Out",
|
|
275
|
-
style: props.style ?? {}
|
|
270
|
+
...ZoomWidget.defaultProps,
|
|
271
|
+
...props
|
|
276
272
|
};
|
|
277
273
|
}
|
|
278
274
|
onAdd({ deck }) {
|
|
@@ -318,11 +314,13 @@ var ZoomWidget = class {
|
|
|
318
314
|
const viewId = this.viewId || (viewport == null ? void 0 : viewport.id) || "default-view";
|
|
319
315
|
const nextViewState = {
|
|
320
316
|
...viewport,
|
|
321
|
-
zoom: nextZoom
|
|
322
|
-
transitionDuration: this.props.transitionDuration,
|
|
323
|
-
transitionInterpolator: new import_core3.FlyToInterpolator()
|
|
317
|
+
zoom: nextZoom
|
|
324
318
|
};
|
|
325
|
-
this.
|
|
319
|
+
if (this.props.transitionDuration > 0) {
|
|
320
|
+
nextViewState.transitionDuration = this.props.transitionDuration;
|
|
321
|
+
nextViewState.transitionInterpolator = "latitude" in nextViewState ? new import_core3.FlyToInterpolator() : new import_core3.LinearInterpolator();
|
|
322
|
+
}
|
|
323
|
+
this.setViewState(viewId, nextViewState);
|
|
326
324
|
}
|
|
327
325
|
handleZoomIn() {
|
|
328
326
|
for (const viewport of Object.values(this.viewports)) {
|
|
@@ -334,6 +332,12 @@ var ZoomWidget = class {
|
|
|
334
332
|
this.handleZoom(viewport, viewport.zoom - 1);
|
|
335
333
|
}
|
|
336
334
|
}
|
|
335
|
+
/**
|
|
336
|
+
* @todo - move to deck or widget manager
|
|
337
|
+
*/
|
|
338
|
+
setViewState(viewId, viewState) {
|
|
339
|
+
this.deck._onViewStateChange({ viewId, viewState, interactionState: {} });
|
|
340
|
+
}
|
|
337
341
|
update() {
|
|
338
342
|
const element = this.element;
|
|
339
343
|
if (!element) {
|
|
@@ -343,6 +347,17 @@ var ZoomWidget = class {
|
|
|
343
347
|
(0, import_preact3.render)(ui, element);
|
|
344
348
|
}
|
|
345
349
|
};
|
|
350
|
+
ZoomWidget.defaultProps = {
|
|
351
|
+
id: "zoom-widget",
|
|
352
|
+
style: {},
|
|
353
|
+
placement: "top-left",
|
|
354
|
+
className: void 0,
|
|
355
|
+
orientation: "vertical",
|
|
356
|
+
transitionDuration: 200,
|
|
357
|
+
zoomInLabel: "Zoom In",
|
|
358
|
+
zoomOutLabel: "Zoom Out",
|
|
359
|
+
viewId: void 0
|
|
360
|
+
};
|
|
346
361
|
|
|
347
362
|
// dist/themes.js
|
|
348
363
|
var LightTheme = {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/fullscreen-widget.tsx", "../src/components.tsx", "../src/compass-widget.tsx", "../src/zoom-widget.tsx", "../src/themes.ts"],
|
|
4
|
-
"sourcesContent": ["// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport {FullscreenWidget} from './fullscreen-widget';\nexport {CompassWidget} from './compass-widget';\nexport {ZoomWidget} from './zoom-widget';\n\nexport type {FullscreenWidgetProps} from './fullscreen-widget';\nexport type {CompassWidgetProps} from './compass-widget';\nexport type {ZoomWidgetProps} from './zoom-widget';\n\nexport * from './themes';\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* global document */\nimport {\n _deepEqual as deepEqual,\n _applyStyles as applyStyles,\n _removeStyles as removeStyles\n} from '@deck.gl/core';\nimport type {Deck, Widget, WidgetPlacement} from '@deck.gl/core';\nimport {render} from 'preact';\nimport {IconButton} from './components';\n\nexport type FullscreenWidgetProps = {\n id?: string;\n /**\n * Widget positioning within the view. Default 'top-left'.\n */\n placement?: WidgetPlacement;\n /**\n * A [compatible DOM element](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen#Compatible_elements) which should be made full screen.\n * By default, the map container element will be made full screen.\n */\n /* eslint-enable max-len */\n container?: HTMLElement;\n /**\n * Tooltip message when out of fullscreen.\n */\n enterLabel?: string;\n /**\n * Tooltip message when fullscreen.\n */\n exitLabel?: string;\n /**\n * CSS inline style overrides.\n */\n style?: Partial<CSSStyleDeclaration>;\n /**\n * Additional CSS class.\n */\n className?: string;\n};\n\nexport class FullscreenWidget implements Widget<FullscreenWidgetProps> {\n id = 'fullscreen';\n props: FullscreenWidgetProps;\n placement: WidgetPlacement = 'top-left';\n\n deck?: Deck<any>;\n element?: HTMLDivElement;\n\n fullscreen: boolean = false;\n\n constructor(props: FullscreenWidgetProps) {\n this.id = props.id ?? this.id;\n this.placement = props.placement ?? this.placement;\n\n this.props = {\n ...props,\n enterLabel: props.enterLabel ?? 'Enter Fullscreen',\n exitLabel: props.exitLabel ?? 'Exit Fullscreen',\n style: props.style ?? {}\n };\n }\n\n onAdd({deck}: {deck: Deck<any>}): HTMLDivElement {\n const {style, className} = this.props;\n const el = document.createElement('div');\n el.classList.add('deck-widget', 'deck-widget-fullscreen');\n if (className) el.classList.add(className);\n applyStyles(el, style);\n this.deck = deck;\n this.element = el;\n this.update();\n document.addEventListener('fullscreenchange', this.onFullscreenChange.bind(this));\n return el;\n }\n\n onRemove() {\n this.deck = undefined;\n this.element = undefined;\n document.removeEventListener('fullscreenchange', this.onFullscreenChange.bind(this));\n }\n\n private update() {\n const {enterLabel, exitLabel} = this.props;\n const element = this.element;\n if (!element) {\n return;\n }\n\n const ui = (\n <IconButton\n onClick={this.handleClick.bind(this)}\n label={this.fullscreen ? exitLabel : enterLabel}\n className={this.fullscreen ? 'deck-widget-fullscreen-exit' : 'deck-widget-fullscreen-enter'}\n />\n );\n render(ui, element);\n }\n\n setProps(props: Partial<FullscreenWidgetProps>) {\n this.placement = props.placement ?? this.placement;\n const oldProps = this.props;\n const el = this.element;\n if (el) {\n if (oldProps.className !== props.className) {\n if (oldProps.className) el.classList.remove(oldProps.className);\n if (props.className) el.classList.add(props.className);\n }\n\n if (!deepEqual(oldProps.style, props.style, 1)) {\n removeStyles(el, oldProps.style);\n applyStyles(el, props.style);\n }\n }\n\n Object.assign(this.props, props);\n this.update();\n }\n\n getContainer() {\n return this.props.container || this.deck?.getCanvas()?.parentElement;\n }\n\n onFullscreenChange() {\n const prevFullscreen = this.fullscreen;\n const fullscreen = document.fullscreenElement === this.getContainer();\n if (prevFullscreen !== fullscreen) {\n this.fullscreen = !this.fullscreen;\n }\n this.update();\n }\n\n async handleClick() {\n if (this.fullscreen) {\n await this.exitFullscreen();\n } else {\n await this.requestFullscreen();\n }\n this.update();\n }\n\n async requestFullscreen() {\n const container = this.getContainer();\n if (container?.requestFullscreen) {\n await container.requestFullscreen({navigationUI: 'hide'});\n } else {\n this.togglePseudoFullscreen();\n }\n }\n\n async exitFullscreen() {\n if (document.exitFullscreen) {\n await document.exitFullscreen();\n } else {\n this.togglePseudoFullscreen();\n }\n }\n\n togglePseudoFullscreen() {\n this.getContainer()?.classList.toggle('deck-pseudo-fullscreen');\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport const IconButton = props => {\n const {className, label, onClick} = props;\n return (\n <div className=\"deck-widget-button\">\n <button\n className={`deck-widget-icon-button ${className}`}\n type=\"button\"\n onClick={onClick}\n title={label}\n >\n <div className=\"deck-widget-icon\" />\n </button>\n </div>\n );\n};\n\nexport const ButtonGroup = props => {\n const {children, orientation} = props;\n return <div className={`deck-widget-button-group ${orientation}`}>{children}</div>;\n};\n\nexport const GroupedIconButton = props => {\n const {className, label, onClick} = props;\n return (\n <button\n className={`deck-widget-icon-button ${className}`}\n type=\"button\"\n onClick={onClick}\n title={label}\n >\n <div className=\"deck-widget-icon\" />\n </button>\n );\n};\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* global document */\nimport {\n FlyToInterpolator,\n WebMercatorViewport,\n _GlobeViewport,\n _deepEqual as deepEqual,\n _applyStyles as applyStyles,\n _removeStyles as removeStyles\n} from '@deck.gl/core';\nimport type {Deck, Viewport, Widget, WidgetPlacement} from '@deck.gl/core';\nimport {render} from 'preact';\n\nexport type CompassWidgetProps = {\n id?: string;\n /**\n * Widget positioning within the view. Default 'top-left'.\n */\n placement?: WidgetPlacement;\n /**\n * View to attach to and interact with. Required when using multiple views.\n */\n viewId?: string | null;\n /**\n * Tooltip message.\n */\n label?: string;\n /**\n * Bearing and pitch reset transition duration in ms.\n */\n transitionDuration?: number;\n /**\n * CSS inline style overrides.\n */\n style?: Partial<CSSStyleDeclaration>;\n /**\n * Additional CSS class.\n */\n className?: string;\n};\n\nexport class CompassWidget implements Widget<CompassWidgetProps> {\n id = 'compass';\n props: CompassWidgetProps;\n placement: WidgetPlacement = 'top-left';\n viewId?: string | null = null;\n viewports: {[id: string]: Viewport} = {};\n deck?: Deck<any>;\n element?: HTMLDivElement;\n\n constructor(props: CompassWidgetProps) {\n this.id = props.id ?? this.id;\n this.viewId = props.viewId ?? this.viewId;\n this.placement = props.placement ?? this.placement;\n\n this.props = {\n ...props,\n transitionDuration: props.transitionDuration ?? 200,\n label: props.label ?? 'Reset Compass',\n style: props.style ?? {}\n };\n }\n\n setProps(props: Partial<CompassWidgetProps>) {\n this.placement = props.placement ?? this.placement;\n this.viewId = props.viewId ?? this.viewId;\n const oldProps = this.props;\n const el = this.element;\n if (el) {\n if (oldProps.className !== props.className) {\n if (oldProps.className) el.classList.remove(oldProps.className);\n if (props.className) el.classList.add(props.className);\n }\n\n if (!deepEqual(oldProps.style, props.style, 1)) {\n removeStyles(el, oldProps.style);\n applyStyles(el, props.style);\n }\n }\n\n Object.assign(this.props, props);\n this.update();\n }\n\n onViewportChange(viewport: Viewport) {\n // no need to update if viewport is the same\n if (!viewport.equals(this.viewports[viewport.id])) {\n this.viewports[viewport.id] = viewport;\n this.update();\n }\n }\n\n onAdd({deck}: {deck: Deck<any>}): HTMLDivElement {\n const {style, className} = this.props;\n const element = document.createElement('div');\n element.classList.add('deck-widget', 'deck-widget-compass');\n if (className) element.classList.add(className);\n applyStyles(element, style);\n this.deck = deck;\n this.element = element;\n this.update();\n return element;\n }\n\n getRotation(viewport?: Viewport) {\n if (viewport instanceof WebMercatorViewport) {\n return [-viewport.bearing, viewport.pitch];\n } else if (viewport instanceof _GlobeViewport) {\n return [0, Math.max(-80, Math.min(80, viewport.latitude))];\n }\n return [0, 0];\n }\n\n private update() {\n const viewId = this.viewId || Object.values(this.viewports)[0]?.id || 'default-view';\n const viewport = this.viewports[viewId];\n const [rz, rx] = this.getRotation(viewport);\n const element = this.element;\n if (!element) {\n return;\n }\n const ui = (\n <div className=\"deck-widget-button\" style={{perspective: 100}}>\n <button\n type=\"button\"\n onClick={() => {\n for (const viewport of Object.values(this.viewports)) {\n this.handleCompassReset(viewport);\n }\n }}\n title={this.props.label}\n style={{transform: `rotateX(${rx}deg)`}}\n >\n <svg fill=\"none\" width=\"100%\" height=\"100%\" viewBox=\"0 0 26 26\">\n <g transform={`rotate(${rz},13,13)`}>\n <path\n d=\"M10 13.0001L12.9999 5L15.9997 13.0001H10Z\"\n fill=\"var(--icon-compass-north-color, #F05C44)\"\n />\n <path\n d=\"M16.0002 12.9999L13.0004 21L10.0005 12.9999H16.0002Z\"\n fill=\"var(--icon-compass-south-color, #C2C2CC)\"\n />\n </g>\n </svg>\n </button>\n </div>\n );\n render(ui, element);\n }\n\n onRemove() {\n this.deck = undefined;\n this.element = undefined;\n }\n\n handleCompassReset(viewport: Viewport) {\n const viewId = this.viewId || viewport.id || 'default-view';\n if (viewport instanceof WebMercatorViewport) {\n const nextViewState = {\n ...viewport,\n bearing: 0,\n ...(this.getRotation(viewport)[0] === 0 ? {pitch: 0} : {}),\n transitionDuration: this.props.transitionDuration,\n transitionInterpolator: new FlyToInterpolator()\n };\n // @ts-ignore Using private method temporary until there's a public one\n this.deck._onViewStateChange({viewId, viewState: nextViewState, interactionState: {}});\n }\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* global document */\nimport {\n FlyToInterpolator,\n _deepEqual as deepEqual,\n _applyStyles as applyStyles,\n _removeStyles as removeStyles\n} from '@deck.gl/core';\nimport type {Deck, Viewport, Widget, WidgetPlacement} from '@deck.gl/core';\nimport {render} from 'preact';\nimport {ButtonGroup, GroupedIconButton} from './components';\n\nexport type ZoomWidgetProps = {\n id?: string;\n /**\n * Widget positioning within the view. Default 'top-left'.\n */\n placement?: WidgetPlacement;\n /**\n * View to attach to and interact with. Required when using multiple views.\n */\n viewId?: string | null;\n /**\n * Button orientation.\n */\n orientation?: 'vertical' | 'horizontal';\n /**\n * Tooltip message on zoom in button.\n */\n zoomInLabel?: string;\n /**\n * Tooltip message on zoom out button.\n */\n zoomOutLabel?: string;\n /**\n * Zoom transition duration in ms.\n */\n transitionDuration?: number;\n /**\n * CSS inline style overrides.\n */\n style?: Partial<CSSStyleDeclaration>;\n /**\n * Additional CSS class.\n */\n className?: string;\n};\n\nexport class ZoomWidget implements Widget<ZoomWidgetProps> {\n id = 'zoom';\n props: ZoomWidgetProps;\n placement: WidgetPlacement = 'top-left';\n viewId?: string | null = null;\n viewports: {[id: string]: Viewport} = {};\n deck?: Deck<any>;\n element?: HTMLDivElement;\n\n constructor(props: ZoomWidgetProps) {\n this.id = props.id ?? this.id;\n this.viewId = props.viewId ?? this.viewId;\n this.placement = props.placement ?? this.placement;\n\n this.props = {\n ...props,\n orientation: props.orientation ?? 'vertical',\n transitionDuration: props.transitionDuration ?? 200,\n zoomInLabel: props.zoomInLabel ?? 'Zoom In',\n zoomOutLabel: props.zoomOutLabel ?? 'Zoom Out',\n style: props.style ?? {}\n };\n }\n\n onAdd({deck}: {deck: Deck<any>}): HTMLDivElement {\n const {style, className} = this.props;\n const element = document.createElement('div');\n element.classList.add('deck-widget', 'deck-widget-zoom');\n if (className) element.classList.add(className);\n applyStyles(element, style);\n this.deck = deck;\n this.element = element;\n this.update();\n return element;\n }\n\n onRemove() {\n this.deck = undefined;\n this.element = undefined;\n }\n\n setProps(props: Partial<ZoomWidgetProps>) {\n this.placement = props.placement ?? this.placement;\n this.viewId = props.viewId ?? this.viewId;\n const oldProps = this.props;\n const el = this.element;\n if (el) {\n if (oldProps.className !== props.className) {\n if (oldProps.className) el.classList.remove(oldProps.className);\n if (props.className) el.classList.add(props.className);\n }\n\n if (!deepEqual(oldProps.style, props.style, 1)) {\n removeStyles(el, oldProps.style);\n applyStyles(el, props.style);\n }\n }\n\n Object.assign(this.props, props);\n this.update();\n }\n\n onViewportChange(viewport: Viewport) {\n this.viewports[viewport.id] = viewport;\n }\n\n handleZoom(viewport: Viewport, nextZoom: number) {\n const viewId = this.viewId || viewport?.id || 'default-view';\n const nextViewState = {\n ...viewport,\n zoom: nextZoom,\n transitionDuration: this.props.transitionDuration,\n transitionInterpolator: new FlyToInterpolator()\n };\n // @ts-ignore Using private method temporary until there's a public one\n this.deck._onViewStateChange({viewId, viewState: nextViewState, interactionState: {}});\n }\n\n handleZoomIn() {\n for (const viewport of Object.values(this.viewports)) {\n this.handleZoom(viewport, viewport.zoom + 1);\n }\n }\n\n handleZoomOut() {\n for (const viewport of Object.values(this.viewports)) {\n this.handleZoom(viewport, viewport.zoom - 1);\n }\n }\n\n private update() {\n const element = this.element;\n if (!element) {\n return;\n }\n const ui = (\n <ButtonGroup orientation={this.props.orientation}>\n <GroupedIconButton\n onClick={() => this.handleZoomIn()}\n label={this.props.zoomInLabel}\n className=\"deck-widget-zoom-in\"\n />\n <GroupedIconButton\n onClick={() => this.handleZoomOut()}\n label={this.props.zoomOutLabel}\n className=\"deck-widget-zoom-out\"\n />\n </ButtonGroup>\n );\n render(ui, element);\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport const LightTheme = {\n '--button-background': '#fff',\n '--button-stroke': 'rgba(255, 255, 255, 0.3)',\n '--button-inner-stroke': 'unset',\n '--button-shadow': '0px 0px 8px 0px rgba(0, 0, 0, 0.25)',\n '--button-backdrop-filter': 'unset',\n '--button-icon-idle': 'rgba(97, 97, 102, 1)',\n '--button-icon-hover': 'rgba(24, 24, 26, 1)',\n '--icon-compass-north-color': '#F05C44',\n '--icon-compass-south-color': '#C2C2CC'\n};\n\nexport const DarkTheme = {\n '--button-background': 'rgba(18, 18, 20, 1)',\n '--button-stroke': 'rgba(18, 18, 20, 0.30)',\n '--button-inner-stroke': 'unset',\n '--button-shadow': '0px 0px 8px 0px rgba(0, 0, 0, 0.25)',\n '--button-backdrop-filter': 'unset',\n '--button-icon-idle': 'rgba(158, 157, 168, 1)',\n '--button-icon-hover': 'rgba(215, 214, 229, 1)',\n '--icon-compass-north-color': '#F05C44',\n '--icon-compass-south-color': '#C2C2CC'\n};\n\nexport const LightGlassTheme = {\n '--button-background': 'rgba(255, 255, 255, 0.6)',\n '--button-stroke': 'rgba(255, 255, 255, 0.3)',\n '--button-inner-stroke': '1px solid rgba(255, 255, 255, 0.6)',\n '--button-shadow':\n '0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset',\n '--button-backdrop-filter': 'blur(4px)',\n '--button-icon-idle': 'rgba(97, 97, 102, 1)',\n '--button-icon-hover': 'rgba(24, 24, 26, 1)',\n '--icon-compass-north-color': '#F05C44',\n '--icon-compass-south-color': '#C2C2CC'\n};\n\nexport const DarkGlassTheme = {\n '--button-background': 'rgba(18, 18, 20, 0.75)',\n '--button-stroke': 'rgba(18, 18, 20, 0.30)',\n '--button-inner-stroke': '1px solid rgba(18, 18, 20, 0.75)',\n '--button-shadow':\n '0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset',\n '--button-backdrop-filter': 'blur(4px)',\n '--button-icon-idle': 'rgba(158, 157, 168, 1)',\n '--button-icon-hover': 'rgba(215, 214, 229, 1)',\n '--icon-compass-north-color': '#F05C44',\n '--icon-compass-south-color': '#C2C2CC'\n};\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport {FullscreenWidget} from './fullscreen-widget';\nexport {CompassWidget} from './compass-widget';\nexport {ZoomWidget} from './zoom-widget';\n\nexport type {FullscreenWidgetProps} from './fullscreen-widget';\nexport type {CompassWidgetProps} from './compass-widget';\nexport type {ZoomWidgetProps} from './zoom-widget';\n\nexport * from './themes';\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* global document */\nimport {\n _deepEqual as deepEqual,\n _applyStyles as applyStyles,\n _removeStyles as removeStyles\n} from '@deck.gl/core';\nimport type {Deck, Widget, WidgetPlacement} from '@deck.gl/core';\nimport {render} from 'preact';\nimport {IconButton} from './components';\n\nexport type FullscreenWidgetProps = {\n id?: string;\n /**\n * Widget positioning within the view. Default 'top-left'.\n */\n placement?: WidgetPlacement;\n /**\n * A [compatible DOM element](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen#Compatible_elements) which should be made full screen.\n * By default, the map container element will be made full screen.\n */\n /* eslint-enable max-len */\n container?: HTMLElement;\n /**\n * Tooltip message when out of fullscreen.\n */\n enterLabel?: string;\n /**\n * Tooltip message when fullscreen.\n */\n exitLabel?: string;\n /**\n * CSS inline style overrides.\n */\n style?: Partial<CSSStyleDeclaration>;\n /**\n * Additional CSS class.\n */\n className?: string;\n};\n\nexport class FullscreenWidget implements Widget<FullscreenWidgetProps> {\n id = 'fullscreen';\n props: FullscreenWidgetProps;\n placement: WidgetPlacement = 'top-left';\n\n deck?: Deck<any>;\n element?: HTMLDivElement;\n\n fullscreen: boolean = false;\n\n constructor(props: FullscreenWidgetProps) {\n this.id = props.id ?? this.id;\n this.placement = props.placement ?? this.placement;\n\n this.props = {\n ...props,\n enterLabel: props.enterLabel ?? 'Enter Fullscreen',\n exitLabel: props.exitLabel ?? 'Exit Fullscreen',\n style: props.style ?? {}\n };\n }\n\n onAdd({deck}: {deck: Deck<any>}): HTMLDivElement {\n const {style, className} = this.props;\n const el = document.createElement('div');\n el.classList.add('deck-widget', 'deck-widget-fullscreen');\n if (className) el.classList.add(className);\n applyStyles(el, style);\n this.deck = deck;\n this.element = el;\n this.update();\n document.addEventListener('fullscreenchange', this.onFullscreenChange.bind(this));\n return el;\n }\n\n onRemove() {\n this.deck = undefined;\n this.element = undefined;\n document.removeEventListener('fullscreenchange', this.onFullscreenChange.bind(this));\n }\n\n private update() {\n const {enterLabel, exitLabel} = this.props;\n const element = this.element;\n if (!element) {\n return;\n }\n\n const ui = (\n <IconButton\n onClick={this.handleClick.bind(this)}\n label={this.fullscreen ? exitLabel : enterLabel}\n className={this.fullscreen ? 'deck-widget-fullscreen-exit' : 'deck-widget-fullscreen-enter'}\n />\n );\n render(ui, element);\n }\n\n setProps(props: Partial<FullscreenWidgetProps>) {\n this.placement = props.placement ?? this.placement;\n const oldProps = this.props;\n const el = this.element;\n if (el) {\n if (oldProps.className !== props.className) {\n if (oldProps.className) el.classList.remove(oldProps.className);\n if (props.className) el.classList.add(props.className);\n }\n\n if (!deepEqual(oldProps.style, props.style, 1)) {\n removeStyles(el, oldProps.style);\n applyStyles(el, props.style);\n }\n }\n\n Object.assign(this.props, props);\n this.update();\n }\n\n getContainer() {\n return this.props.container || this.deck?.getCanvas()?.parentElement;\n }\n\n onFullscreenChange() {\n const prevFullscreen = this.fullscreen;\n const fullscreen = document.fullscreenElement === this.getContainer();\n if (prevFullscreen !== fullscreen) {\n this.fullscreen = !this.fullscreen;\n }\n this.update();\n }\n\n async handleClick() {\n if (this.fullscreen) {\n await this.exitFullscreen();\n } else {\n await this.requestFullscreen();\n }\n this.update();\n }\n\n async requestFullscreen() {\n const container = this.getContainer();\n if (container?.requestFullscreen) {\n await container.requestFullscreen({navigationUI: 'hide'});\n } else {\n this.togglePseudoFullscreen();\n }\n }\n\n async exitFullscreen() {\n if (document.exitFullscreen) {\n await document.exitFullscreen();\n } else {\n this.togglePseudoFullscreen();\n }\n }\n\n togglePseudoFullscreen() {\n this.getContainer()?.classList.toggle('deck-pseudo-fullscreen');\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport const IconButton = props => {\n const {className, label, onClick} = props;\n return (\n <div className=\"deck-widget-button\">\n <button\n className={`deck-widget-icon-button ${className}`}\n type=\"button\"\n onClick={onClick}\n title={label}\n >\n <div className=\"deck-widget-icon\" />\n </button>\n </div>\n );\n};\n\nexport const ButtonGroup = props => {\n const {children, orientation} = props;\n return <div className={`deck-widget-button-group ${orientation}`}>{children}</div>;\n};\n\nexport const GroupedIconButton = props => {\n const {className, label, onClick} = props;\n return (\n <button\n className={`deck-widget-icon-button ${className}`}\n type=\"button\"\n onClick={onClick}\n title={label}\n >\n <div className=\"deck-widget-icon\" />\n </button>\n );\n};\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* global document */\nimport {\n FlyToInterpolator,\n WebMercatorViewport,\n _GlobeViewport,\n _deepEqual as deepEqual,\n _applyStyles as applyStyles,\n _removeStyles as removeStyles\n} from '@deck.gl/core';\nimport type {Deck, Viewport, Widget, WidgetPlacement} from '@deck.gl/core';\nimport {render} from 'preact';\n\nexport type CompassWidgetProps = {\n id?: string;\n /**\n * Widget positioning within the view. Default 'top-left'.\n */\n placement?: WidgetPlacement;\n /**\n * View to attach to and interact with. Required when using multiple views.\n */\n viewId?: string | null;\n /**\n * Tooltip message.\n */\n label?: string;\n /**\n * Bearing and pitch reset transition duration in ms.\n */\n transitionDuration?: number;\n /**\n * CSS inline style overrides.\n */\n style?: Partial<CSSStyleDeclaration>;\n /**\n * Additional CSS class.\n */\n className?: string;\n};\n\nexport class CompassWidget implements Widget<CompassWidgetProps> {\n id = 'compass';\n props: CompassWidgetProps;\n placement: WidgetPlacement = 'top-left';\n viewId?: string | null = null;\n viewports: {[id: string]: Viewport} = {};\n deck?: Deck<any>;\n element?: HTMLDivElement;\n\n constructor(props: CompassWidgetProps) {\n this.id = props.id ?? this.id;\n this.viewId = props.viewId ?? this.viewId;\n this.placement = props.placement ?? this.placement;\n\n this.props = {\n ...props,\n transitionDuration: props.transitionDuration ?? 200,\n label: props.label ?? 'Reset Compass',\n style: props.style ?? {}\n };\n }\n\n setProps(props: Partial<CompassWidgetProps>) {\n this.placement = props.placement ?? this.placement;\n this.viewId = props.viewId ?? this.viewId;\n const oldProps = this.props;\n const el = this.element;\n if (el) {\n if (oldProps.className !== props.className) {\n if (oldProps.className) el.classList.remove(oldProps.className);\n if (props.className) el.classList.add(props.className);\n }\n\n if (!deepEqual(oldProps.style, props.style, 1)) {\n removeStyles(el, oldProps.style);\n applyStyles(el, props.style);\n }\n }\n\n Object.assign(this.props, props);\n this.update();\n }\n\n onViewportChange(viewport: Viewport) {\n // no need to update if viewport is the same\n if (!viewport.equals(this.viewports[viewport.id])) {\n this.viewports[viewport.id] = viewport;\n this.update();\n }\n }\n\n onAdd({deck}: {deck: Deck<any>}): HTMLDivElement {\n const {style, className} = this.props;\n const element = document.createElement('div');\n element.classList.add('deck-widget', 'deck-widget-compass');\n if (className) element.classList.add(className);\n applyStyles(element, style);\n this.deck = deck;\n this.element = element;\n this.update();\n return element;\n }\n\n getRotation(viewport?: Viewport) {\n if (viewport instanceof WebMercatorViewport) {\n return [-viewport.bearing, viewport.pitch];\n } else if (viewport instanceof _GlobeViewport) {\n return [0, Math.max(-80, Math.min(80, viewport.latitude))];\n }\n return [0, 0];\n }\n\n private update() {\n const viewId = this.viewId || Object.values(this.viewports)[0]?.id || 'default-view';\n const viewport = this.viewports[viewId];\n const [rz, rx] = this.getRotation(viewport);\n const element = this.element;\n if (!element) {\n return;\n }\n const ui = (\n <div className=\"deck-widget-button\" style={{perspective: 100}}>\n <button\n type=\"button\"\n onClick={() => {\n for (const viewport of Object.values(this.viewports)) {\n this.handleCompassReset(viewport);\n }\n }}\n title={this.props.label}\n style={{transform: `rotateX(${rx}deg)`}}\n >\n <svg fill=\"none\" width=\"100%\" height=\"100%\" viewBox=\"0 0 26 26\">\n <g transform={`rotate(${rz},13,13)`}>\n <path\n d=\"M10 13.0001L12.9999 5L15.9997 13.0001H10Z\"\n fill=\"var(--icon-compass-north-color, #F05C44)\"\n />\n <path\n d=\"M16.0002 12.9999L13.0004 21L10.0005 12.9999H16.0002Z\"\n fill=\"var(--icon-compass-south-color, #C2C2CC)\"\n />\n </g>\n </svg>\n </button>\n </div>\n );\n render(ui, element);\n }\n\n onRemove() {\n this.deck = undefined;\n this.element = undefined;\n }\n\n handleCompassReset(viewport: Viewport) {\n const viewId = this.viewId || viewport.id || 'default-view';\n if (viewport instanceof WebMercatorViewport) {\n const nextViewState = {\n ...viewport,\n bearing: 0,\n ...(this.getRotation(viewport)[0] === 0 ? {pitch: 0} : {}),\n transitionDuration: this.props.transitionDuration,\n transitionInterpolator: new FlyToInterpolator()\n };\n // @ts-ignore Using private method temporary until there's a public one\n this.deck._onViewStateChange({viewId, viewState: nextViewState, interactionState: {}});\n }\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* global document */\nimport {\n FlyToInterpolator,\n LinearInterpolator,\n _deepEqual as deepEqual,\n _applyStyles as applyStyles,\n _removeStyles as removeStyles\n} from '@deck.gl/core';\nimport type {Deck, Viewport, Widget, WidgetPlacement} from '@deck.gl/core';\nimport {render} from 'preact';\nimport {ButtonGroup, GroupedIconButton} from './components';\n\nexport type ZoomWidgetProps = {\n id?: string;\n /**\n * Widget positioning within the view. Default 'top-left'.\n */\n placement?: WidgetPlacement;\n /**\n * View to attach to and interact with. Required when using multiple views.\n */\n viewId?: string | null;\n /**\n * Button orientation.\n */\n orientation?: 'vertical' | 'horizontal';\n /**\n * Tooltip message on zoom in button.\n */\n zoomInLabel?: string;\n /**\n * Tooltip message on zoom out button.\n */\n zoomOutLabel?: string;\n /**\n * Zoom transition duration in ms. 0 disables the transition\n */\n transitionDuration?: number;\n /**\n * CSS inline style overrides.\n */\n style?: Partial<CSSStyleDeclaration>;\n /**\n * Additional CSS class.\n */\n className?: string;\n};\n\nexport class ZoomWidget implements Widget<ZoomWidgetProps> {\n id = 'zoom';\n props: Required<ZoomWidgetProps>;\n placement: WidgetPlacement = 'top-left';\n viewId?: string | null = null;\n viewports: {[id: string]: Viewport} = {};\n deck?: Deck<any>;\n element?: HTMLDivElement;\n\n static defaultProps: Required<ZoomWidgetProps> = {\n id: 'zoom-widget',\n style: {},\n placement: 'top-left',\n className: undefined!,\n orientation: 'vertical',\n transitionDuration: 200,\n zoomInLabel: 'Zoom In',\n zoomOutLabel: 'Zoom Out',\n viewId: undefined!\n };\n\n constructor(props: ZoomWidgetProps = {}) {\n this.id = props.id ?? this.id;\n this.viewId = props.viewId ?? this.viewId;\n this.placement = props.placement ?? this.placement;\n\n this.props = {\n ...ZoomWidget.defaultProps,\n ...props\n };\n }\n\n onAdd({deck}: {deck: Deck<any>}): HTMLDivElement {\n const {style, className} = this.props;\n const element = document.createElement('div');\n element.classList.add('deck-widget', 'deck-widget-zoom');\n if (className) element.classList.add(className);\n applyStyles(element, style);\n this.deck = deck;\n this.element = element;\n this.update();\n return element;\n }\n\n onRemove() {\n this.deck = undefined;\n this.element = undefined;\n }\n\n setProps(props: Partial<ZoomWidgetProps>) {\n this.placement = props.placement ?? this.placement;\n this.viewId = props.viewId ?? this.viewId;\n const oldProps = this.props;\n const el = this.element;\n if (el) {\n if (oldProps.className !== props.className) {\n if (oldProps.className) el.classList.remove(oldProps.className);\n if (props.className) el.classList.add(props.className);\n }\n\n if (!deepEqual(oldProps.style, props.style, 1)) {\n removeStyles(el, oldProps.style);\n applyStyles(el, props.style);\n }\n }\n\n Object.assign(this.props, props);\n this.update();\n }\n\n onViewportChange(viewport: Viewport) {\n this.viewports[viewport.id] = viewport;\n }\n\n handleZoom(viewport: Viewport, nextZoom: number) {\n const viewId = this.viewId || viewport?.id || 'default-view';\n const nextViewState: Record<string, unknown> = {\n ...viewport,\n zoom: nextZoom\n };\n if (this.props.transitionDuration > 0) {\n nextViewState.transitionDuration = this.props.transitionDuration;\n nextViewState.transitionInterpolator =\n 'latitude' in nextViewState ? new FlyToInterpolator() : new LinearInterpolator();\n }\n this.setViewState(viewId, nextViewState);\n }\n\n handleZoomIn() {\n for (const viewport of Object.values(this.viewports)) {\n this.handleZoom(viewport, viewport.zoom + 1);\n }\n }\n\n handleZoomOut() {\n for (const viewport of Object.values(this.viewports)) {\n this.handleZoom(viewport, viewport.zoom - 1);\n }\n }\n\n /**\n * @todo - move to deck or widget manager\n */\n private setViewState(viewId: string, viewState: Record<string, unknown>): void {\n // @ts-ignore Using private method temporary until there's a public one\n this.deck._onViewStateChange({viewId, viewState, interactionState: {}});\n }\n\n private update() {\n const element = this.element;\n if (!element) {\n return;\n }\n const ui = (\n <ButtonGroup orientation={this.props.orientation}>\n <GroupedIconButton\n onClick={() => this.handleZoomIn()}\n label={this.props.zoomInLabel}\n className=\"deck-widget-zoom-in\"\n />\n <GroupedIconButton\n onClick={() => this.handleZoomOut()}\n label={this.props.zoomOutLabel}\n className=\"deck-widget-zoom-out\"\n />\n </ButtonGroup>\n );\n render(ui, element);\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport const LightTheme = {\n '--button-background': '#fff',\n '--button-stroke': 'rgba(255, 255, 255, 0.3)',\n '--button-inner-stroke': 'unset',\n '--button-shadow': '0px 0px 8px 0px rgba(0, 0, 0, 0.25)',\n '--button-backdrop-filter': 'unset',\n '--button-icon-idle': 'rgba(97, 97, 102, 1)',\n '--button-icon-hover': 'rgba(24, 24, 26, 1)',\n '--icon-compass-north-color': '#F05C44',\n '--icon-compass-south-color': '#C2C2CC'\n};\n\nexport const DarkTheme = {\n '--button-background': 'rgba(18, 18, 20, 1)',\n '--button-stroke': 'rgba(18, 18, 20, 0.30)',\n '--button-inner-stroke': 'unset',\n '--button-shadow': '0px 0px 8px 0px rgba(0, 0, 0, 0.25)',\n '--button-backdrop-filter': 'unset',\n '--button-icon-idle': 'rgba(158, 157, 168, 1)',\n '--button-icon-hover': 'rgba(215, 214, 229, 1)',\n '--icon-compass-north-color': '#F05C44',\n '--icon-compass-south-color': '#C2C2CC'\n};\n\nexport const LightGlassTheme = {\n '--button-background': 'rgba(255, 255, 255, 0.6)',\n '--button-stroke': 'rgba(255, 255, 255, 0.3)',\n '--button-inner-stroke': '1px solid rgba(255, 255, 255, 0.6)',\n '--button-shadow':\n '0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset',\n '--button-backdrop-filter': 'blur(4px)',\n '--button-icon-idle': 'rgba(97, 97, 102, 1)',\n '--button-icon-hover': 'rgba(24, 24, 26, 1)',\n '--icon-compass-north-color': '#F05C44',\n '--icon-compass-south-color': '#C2C2CC'\n};\n\nexport const DarkGlassTheme = {\n '--button-background': 'rgba(18, 18, 20, 0.75)',\n '--button-stroke': 'rgba(18, 18, 20, 0.30)',\n '--button-inner-stroke': '1px solid rgba(18, 18, 20, 0.75)',\n '--button-shadow':\n '0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset',\n '--button-backdrop-filter': 'blur(4px)',\n '--button-icon-idle': 'rgba(158, 157, 168, 1)',\n '--button-icon-hover': 'rgba(215, 214, 229, 1)',\n '--icon-compass-north-color': '#F05C44',\n '--icon-compass-south-color': '#C2C2CC'\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["_jsx", "applyStyles", "_jsx", "deepEqual", "removeStyles", "import_core", "import_preact", "deepEqual", "removeStyles", "applyStyles", "_jsx", "viewport", "_jsxs", "import_core", "import_preact", "applyStyles", "deepEqual", "removeStyles", "_jsxs", "_jsx"]
|
|
7
7
|
}
|
package/dist/zoom-widget.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export type ZoomWidgetProps = {
|
|
|
22
22
|
*/
|
|
23
23
|
zoomOutLabel?: string;
|
|
24
24
|
/**
|
|
25
|
-
* Zoom transition duration in ms.
|
|
25
|
+
* Zoom transition duration in ms. 0 disables the transition
|
|
26
26
|
*/
|
|
27
27
|
transitionDuration?: number;
|
|
28
28
|
/**
|
|
@@ -36,7 +36,7 @@ export type ZoomWidgetProps = {
|
|
|
36
36
|
};
|
|
37
37
|
export declare class ZoomWidget implements Widget<ZoomWidgetProps> {
|
|
38
38
|
id: string;
|
|
39
|
-
props: ZoomWidgetProps
|
|
39
|
+
props: Required<ZoomWidgetProps>;
|
|
40
40
|
placement: WidgetPlacement;
|
|
41
41
|
viewId?: string | null;
|
|
42
42
|
viewports: {
|
|
@@ -44,7 +44,8 @@ export declare class ZoomWidget implements Widget<ZoomWidgetProps> {
|
|
|
44
44
|
};
|
|
45
45
|
deck?: Deck<any>;
|
|
46
46
|
element?: HTMLDivElement;
|
|
47
|
-
|
|
47
|
+
static defaultProps: Required<ZoomWidgetProps>;
|
|
48
|
+
constructor(props?: ZoomWidgetProps);
|
|
48
49
|
onAdd({ deck }: {
|
|
49
50
|
deck: Deck<any>;
|
|
50
51
|
}): HTMLDivElement;
|
|
@@ -54,6 +55,10 @@ export declare class ZoomWidget implements Widget<ZoomWidgetProps> {
|
|
|
54
55
|
handleZoom(viewport: Viewport, nextZoom: number): void;
|
|
55
56
|
handleZoomIn(): void;
|
|
56
57
|
handleZoomOut(): void;
|
|
58
|
+
/**
|
|
59
|
+
* @todo - move to deck or widget manager
|
|
60
|
+
*/
|
|
61
|
+
private setViewState;
|
|
57
62
|
private update;
|
|
58
63
|
}
|
|
59
64
|
//# sourceMappingURL=zoom-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom-widget.d.ts","sourceRoot":"","sources":["../src/zoom-widget.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zoom-widget.d.ts","sourceRoot":"","sources":["../src/zoom-widget.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAC,MAAM,eAAe,CAAC;AAI3E,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,UAAW,YAAW,MAAM,CAAC,eAAe,CAAC;IACxD,EAAE,SAAU;IACZ,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IACjC,SAAS,EAAE,eAAe,CAAc;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC9B,SAAS,EAAE;QAAC,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAC,CAAM;IACzC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAU5C;gBAEU,KAAK,GAAE,eAAoB;IAWvC,KAAK,CAAC,EAAC,IAAI,EAAC,EAAE;QAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;KAAC,GAAG,cAAc;IAYhD,QAAQ;IAKR,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;IAqBxC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;IAInC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;IAc/C,YAAY;IAMZ,aAAa;IAMb;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,MAAM;CAqBf"}
|
package/dist/zoom-widget.js
CHANGED
|
@@ -3,11 +3,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
|
|
|
3
3
|
// SPDX-License-Identifier: MIT
|
|
4
4
|
// Copyright (c) vis.gl contributors
|
|
5
5
|
/* global document */
|
|
6
|
-
import { FlyToInterpolator, _deepEqual as deepEqual, _applyStyles as applyStyles, _removeStyles as removeStyles } from '@deck.gl/core';
|
|
6
|
+
import { FlyToInterpolator, LinearInterpolator, _deepEqual as deepEqual, _applyStyles as applyStyles, _removeStyles as removeStyles } from '@deck.gl/core';
|
|
7
7
|
import { render } from 'preact';
|
|
8
8
|
import { ButtonGroup, GroupedIconButton } from "./components.js";
|
|
9
9
|
export class ZoomWidget {
|
|
10
|
-
constructor(props) {
|
|
10
|
+
constructor(props = {}) {
|
|
11
11
|
this.id = 'zoom';
|
|
12
12
|
this.placement = 'top-left';
|
|
13
13
|
this.viewId = null;
|
|
@@ -16,12 +16,8 @@ export class ZoomWidget {
|
|
|
16
16
|
this.viewId = props.viewId ?? this.viewId;
|
|
17
17
|
this.placement = props.placement ?? this.placement;
|
|
18
18
|
this.props = {
|
|
19
|
-
...
|
|
20
|
-
|
|
21
|
-
transitionDuration: props.transitionDuration ?? 200,
|
|
22
|
-
zoomInLabel: props.zoomInLabel ?? 'Zoom In',
|
|
23
|
-
zoomOutLabel: props.zoomOutLabel ?? 'Zoom Out',
|
|
24
|
-
style: props.style ?? {}
|
|
19
|
+
...ZoomWidget.defaultProps,
|
|
20
|
+
...props
|
|
25
21
|
};
|
|
26
22
|
}
|
|
27
23
|
onAdd({ deck }) {
|
|
@@ -67,12 +63,14 @@ export class ZoomWidget {
|
|
|
67
63
|
const viewId = this.viewId || viewport?.id || 'default-view';
|
|
68
64
|
const nextViewState = {
|
|
69
65
|
...viewport,
|
|
70
|
-
zoom: nextZoom
|
|
71
|
-
transitionDuration: this.props.transitionDuration,
|
|
72
|
-
transitionInterpolator: new FlyToInterpolator()
|
|
66
|
+
zoom: nextZoom
|
|
73
67
|
};
|
|
74
|
-
|
|
75
|
-
|
|
68
|
+
if (this.props.transitionDuration > 0) {
|
|
69
|
+
nextViewState.transitionDuration = this.props.transitionDuration;
|
|
70
|
+
nextViewState.transitionInterpolator =
|
|
71
|
+
'latitude' in nextViewState ? new FlyToInterpolator() : new LinearInterpolator();
|
|
72
|
+
}
|
|
73
|
+
this.setViewState(viewId, nextViewState);
|
|
76
74
|
}
|
|
77
75
|
handleZoomIn() {
|
|
78
76
|
for (const viewport of Object.values(this.viewports)) {
|
|
@@ -84,6 +82,13 @@ export class ZoomWidget {
|
|
|
84
82
|
this.handleZoom(viewport, viewport.zoom - 1);
|
|
85
83
|
}
|
|
86
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* @todo - move to deck or widget manager
|
|
87
|
+
*/
|
|
88
|
+
setViewState(viewId, viewState) {
|
|
89
|
+
// @ts-ignore Using private method temporary until there's a public one
|
|
90
|
+
this.deck._onViewStateChange({ viewId, viewState, interactionState: {} });
|
|
91
|
+
}
|
|
87
92
|
update() {
|
|
88
93
|
const element = this.element;
|
|
89
94
|
if (!element) {
|
|
@@ -93,4 +98,15 @@ export class ZoomWidget {
|
|
|
93
98
|
render(ui, element);
|
|
94
99
|
}
|
|
95
100
|
}
|
|
101
|
+
ZoomWidget.defaultProps = {
|
|
102
|
+
id: 'zoom-widget',
|
|
103
|
+
style: {},
|
|
104
|
+
placement: 'top-left',
|
|
105
|
+
className: undefined,
|
|
106
|
+
orientation: 'vertical',
|
|
107
|
+
transitionDuration: 200,
|
|
108
|
+
zoomInLabel: 'Zoom In',
|
|
109
|
+
zoomOutLabel: 'Zoom Out',
|
|
110
|
+
viewId: undefined
|
|
111
|
+
};
|
|
96
112
|
//# sourceMappingURL=zoom-widget.js.map
|
package/dist/zoom-widget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom-widget.js","sourceRoot":"","sources":["../src/zoom-widget.tsx"],"names":[],"mappings":";AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EACjB,UAAU,IAAI,SAAS,EACvB,YAAY,IAAI,WAAW,EAC3B,aAAa,IAAI,YAAY,EAC9B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAC,wBAAqB;AAsC5D,MAAM,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"zoom-widget.js","sourceRoot":"","sources":["../src/zoom-widget.tsx"],"names":[],"mappings":"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"}
|
package/dist.min.js
CHANGED
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['deck'] = factory();
|
|
6
6
|
else root['deck'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var Pe=Object.create;var A=Object.defineProperty;var Le=Object.getOwnPropertyDescriptor;var Se=Object.getOwnPropertyNames;var Ie=Object.getPrototypeOf,We=Object.prototype.hasOwnProperty;var De=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Ne=(t,e)=>{for(var n in e)A(t,n,{get:e[n],enumerable:!0})},R=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Se(e))!We.call(t,i)&&i!==n&&A(t,i,{get:()=>e[i],enumerable:!(o=Le(e,i))||o.enumerable});return t},L=(t,e,n)=>(R(t,e,"default"),n&&R(n,e,"default")),z=(t,e,n)=>(n=t!=null?Pe(Ie(t)):{},R(e||!t||!t.__esModule?A(n,"default",{value:t,enumerable:!0}):n,t)),Fe=t=>R(A({},"__esModule",{value:!0}),t);var N=De((Be,ce)=>{ce.exports=globalThis.deck});var O={};Ne(O,{CompassWidget:()=>J,DarkGlassTheme:()=>$e,DarkTheme:()=>Ae,FullscreenWidget:()=>X,LightGlassTheme:()=>je,LightTheme:()=>Re,ZoomWidget:()=>K});var x={},_e=z(N(),1);L(x,z(N(),1));if(!_e.Layer)throw new Error("@deck.gl/core is not found");L(O,x);var D=z(N(),1);var G,f,he,Ee,I,ue,me,Y,oe,ee,te,Te,V={},ge=[],Me=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ie=Array.isArray;function S(t,e){for(var n in e)t[n]=e[n];return t}function ve(t){var e=t.parentNode;e&&e.removeChild(t)}function ze(t,e,n){var o,i,r,a={};for(r in e)r=="key"?o=e[r]:r=="ref"?i=e[r]:a[r]=e[r];if(arguments.length>2&&(a.children=arguments.length>3?G.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(r in t.defaultProps)a[r]===void 0&&(a[r]=t.defaultProps[r]);return $(t,a,o,i,null)}function $(t,e,n,o,i){var r={type:t,props:e,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:i??++he,__i:-1,__u:0};return i==null&&f.vnode!=null&&f.vnode(r),r}function F(t){return t.children}function q(t,e){this.props=t,this.context=e}function W(t,e){if(e==null)return t.__?W(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?W(t):null}function ye(t){var e,n;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null){t.__e=t.__c.base=n.__e;break}return ye(t)}}function de(t){(!t.__d&&(t.__d=!0)&&I.push(t)&&!B.__r++||ue!==f.debounceRendering)&&((ue=f.debounceRendering)||me)(B)}function B(){var t,e,n,o,i,r,a,l;for(I.sort(Y);t=I.shift();)t.__d&&(e=I.length,o=void 0,r=(i=(n=t).__v).__e,a=[],l=[],n.__P&&((o=S({},i)).__v=i.__v+1,f.vnode&&f.vnode(o),se(n.__P,o,i,n.__n,n.__P.namespaceURI,32&i.__u?[r]:null,a,r??W(i),!!(32&i.__u),l),o.__v=i.__v,o.__.__k[o.__i]=o,we(a,o,l),o.__e!=r&&ye(o)),I.length>e&&I.sort(Y));B.__r=0}function be(t,e,n,o,i,r,a,l,u,c,d){var s,y,_,g,k,v=o&&o.__k||ge,p=e.length;for(n.__d=u,Ve(n,e,v),u=n.__d,s=0;s<p;s++)(_=n.__k[s])!=null&&typeof _!="boolean"&&typeof _!="function"&&(y=_.__i===-1?V:v[_.__i]||V,_.__i=s,se(t,_,y,i,r,a,l,u,c,d),g=_.__e,_.ref&&y.ref!=_.ref&&(y.ref&&re(y.ref,null,_),d.push(_.ref,_.__c||g,_)),k==null&&g!=null&&(k=g),65536&_.__u||y.__k===_.__k?u=ke(_,u,t):typeof _.type=="function"&&_.__d!==void 0?u=_.__d:g&&(u=g.nextSibling),_.__d=void 0,_.__u&=-196609);n.__d=u,n.__e=k}function Ve(t,e,n){var o,i,r,a,l,u=e.length,c=n.length,d=c,s=0;for(t.__k=[],o=0;o<u;o++)a=o+s,(i=t.__k[o]=(i=e[o])==null||typeof i=="boolean"||typeof i=="function"?null:typeof i=="string"||typeof i=="number"||typeof i=="bigint"||i.constructor==String?$(null,i,null,null,null):ie(i)?$(F,{children:i},null,null,null):i.constructor===void 0&&i.__b>0?$(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)!=null?(i.__=t,i.__b=t.__b+1,l=Oe(i,n,a,d),i.__i=l,r=null,l!==-1&&(d--,(r=n[l])&&(r.__u|=131072)),r==null||r.__v===null?(l==-1&&s--,typeof i.type!="function"&&(i.__u|=65536)):l!==a&&(l==a-1?s--:l==a+1?s++:l>a?d>u-a?s+=l-a:s--:l<a&&(l==a-s?s-=l-a:s++),l!==o+s&&(i.__u|=65536))):(r=n[a])&&r.key==null&&r.__e&&!(131072&r.__u)&&(r.__e==t.__d&&(t.__d=W(r)),ne(r,r,!1),n[a]=null,d--);if(d)for(o=0;o<c;o++)(r=n[o])!=null&&!(131072&r.__u)&&(r.__e==t.__d&&(t.__d=W(r)),ne(r,r))}function ke(t,e,n){var o,i;if(typeof t.type=="function"){for(o=t.__k,i=0;o&&i<o.length;i++)o[i]&&(o[i].__=t,e=ke(o[i],e,n));return e}t.__e!=e&&(e&&t.type&&!n.contains(e)&&(e=W(t)),n.insertBefore(t.__e,e||null),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType===8);return e}function Oe(t,e,n,o){var i=t.key,r=t.type,a=n-1,l=n+1,u=e[n];if(u===null||u&&i==u.key&&r===u.type&&!(131072&u.__u))return n;if(o>(u!=null&&!(131072&u.__u)?1:0))for(;a>=0||l<e.length;){if(a>=0){if((u=e[a])&&!(131072&u.__u)&&i==u.key&&r===u.type)return a;a--}if(l<e.length){if((u=e[l])&&!(131072&u.__u)&&i==u.key&&r===u.type)return l;l++}}return-1}function pe(t,e,n){e[0]==="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||Me.test(e)?n:n+"px"}function j(t,e,n,o,i){var r;e:if(e==="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof o=="string"&&(t.style.cssText=o=""),o)for(e in o)n&&e in n||pe(t.style,e,"");if(n)for(e in n)o&&n[e]===o[e]||pe(t.style,e,n[e])}else if(e[0]==="o"&&e[1]==="n")r=e!==(e=e.replace(/(PointerCapture)$|Capture$/i,"$1")),e=e.toLowerCase()in t||e==="onFocusOut"||e==="onFocusIn"?e.toLowerCase().slice(2):e.slice(2),t.l||(t.l={}),t.l[e+r]=n,n?o?n.u=o.u:(n.u=oe,t.addEventListener(e,r?te:ee,r)):t.removeEventListener(e,r?te:ee,r);else{if(i=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!=="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function fe(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=oe++;else if(e.t<n.u)return;return n(f.event?f.event(e):e)}}}function se(t,e,n,o,i,r,a,l,u,c){var d,s,y,_,g,k,v,p,h,T,P,U,M,ae,Z,Q,w=e.type;if(e.constructor!==void 0)return null;128&n.__u&&(u=!!(32&n.__u),r=[l=e.__e=n.__e]),(d=f.__b)&&d(e);e:if(typeof w=="function")try{if(p=e.props,h="prototype"in w&&w.prototype.render,T=(d=w.contextType)&&o[d.__c],P=d?T?T.props.value:d.__:o,n.__c?v=(s=e.__c=n.__c).__=s.__E:(h?e.__c=s=new w(p,P):(e.__c=s=new q(p,P),s.constructor=w,s.render=Ze),T&&T.sub(s),s.props=p,s.state||(s.state={}),s.context=P,s.__n=o,y=s.__d=!0,s.__h=[],s._sb=[]),h&&s.__s==null&&(s.__s=s.state),h&&w.getDerivedStateFromProps!=null&&(s.__s==s.state&&(s.__s=S({},s.__s)),S(s.__s,w.getDerivedStateFromProps(p,s.__s))),_=s.props,g=s.state,s.__v=e,y)h&&w.getDerivedStateFromProps==null&&s.componentWillMount!=null&&s.componentWillMount(),h&&s.componentDidMount!=null&&s.__h.push(s.componentDidMount);else{if(h&&w.getDerivedStateFromProps==null&&p!==_&&s.componentWillReceiveProps!=null&&s.componentWillReceiveProps(p,P),!s.__e&&(s.shouldComponentUpdate!=null&&s.shouldComponentUpdate(p,s.__s,P)===!1||e.__v===n.__v)){for(e.__v!==n.__v&&(s.props=p,s.state=s.__s,s.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.forEach(function(H){H&&(H.__=e)}),U=0;U<s._sb.length;U++)s.__h.push(s._sb[U]);s._sb=[],s.__h.length&&a.push(s);break e}s.componentWillUpdate!=null&&s.componentWillUpdate(p,s.__s,P),h&&s.componentDidUpdate!=null&&s.__h.push(function(){s.componentDidUpdate(_,g,k)})}if(s.context=P,s.props=p,s.__P=t,s.__e=!1,M=f.__r,ae=0,h){for(s.state=s.__s,s.__d=!1,M&&M(e),d=s.render(s.props,s.state,s.context),Z=0;Z<s._sb.length;Z++)s.__h.push(s._sb[Z]);s._sb=[]}else do s.__d=!1,M&&M(e),d=s.render(s.props,s.state,s.context),s.state=s.__s;while(s.__d&&++ae<25);s.state=s.__s,s.getChildContext!=null&&(o=S(S({},o),s.getChildContext())),h&&!y&&s.getSnapshotBeforeUpdate!=null&&(k=s.getSnapshotBeforeUpdate(_,g)),be(t,ie(Q=d!=null&&d.type===F&&d.key==null?d.props.children:d)?Q:[Q],e,n,o,i,r,a,l,u,c),s.base=e.__e,e.__u&=-161,s.__h.length&&a.push(s),v&&(s.__E=s.__=null)}catch(H){if(e.__v=null,u||r!=null){for(e.__u|=u?160:32;l&&l.nodeType===8&&l.nextSibling;)l=l.nextSibling;r[r.indexOf(l)]=null,e.__e=l}else e.__e=n.__e,e.__k=n.__k;f.__e(H,e,n)}else r==null&&e.__v===n.__v?(e.__k=n.__k,e.__e=n.__e):e.__e=Ue(n.__e,e,n,o,i,r,a,u,c);(d=f.diffed)&&d(e)}function we(t,e,n){e.__d=void 0;for(var o=0;o<n.length;o++)re(n[o],n[++o],n[++o]);f.__c&&f.__c(e,t),t.some(function(i){try{t=i.__h,i.__h=[],t.some(function(r){r.call(i)})}catch(r){f.__e(r,i.__v)}})}function Ue(t,e,n,o,i,r,a,l,u){var c,d,s,y,_,g,k,v=n.props,p=e.props,h=e.type;if(h==="svg"?i="http://www.w3.org/2000/svg":h==="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),r!=null){for(c=0;c<r.length;c++)if((_=r[c])&&"setAttribute"in _==!!h&&(h?_.localName===h:_.nodeType===3)){t=_,r[c]=null;break}}if(t==null){if(h===null)return document.createTextNode(p);t=document.createElementNS(i,h,p.is&&p),r=null,l=!1}if(h===null)v===p||l&&t.data===p||(t.data=p);else{if(r=r&&G.call(t.childNodes),v=n.props||V,!l&&r!=null)for(v={},c=0;c<t.attributes.length;c++)v[(_=t.attributes[c]).name]=_.value;for(c in v)if(_=v[c],c!="children"){if(c=="dangerouslySetInnerHTML")s=_;else if(c!=="key"&&!(c in p)){if(c=="value"&&"defaultValue"in p||c=="checked"&&"defaultChecked"in p)continue;j(t,c,null,_,i)}}for(c in p)_=p[c],c=="children"?y=_:c=="dangerouslySetInnerHTML"?d=_:c=="value"?g=_:c=="checked"?k=_:c==="key"||l&&typeof _!="function"||v[c]===_||j(t,c,_,v[c],i);if(d)l||s&&(d.__html===s.__html||d.__html===t.innerHTML)||(t.innerHTML=d.__html),e.__k=[];else if(s&&(t.innerHTML=""),be(t,ie(y)?y:[y],e,n,o,h==="foreignObject"?"http://www.w3.org/1999/xhtml":i,r,a,r?r[0]:n.__k&&W(n,0),l,u),r!=null)for(c=r.length;c--;)r[c]!=null&&ve(r[c]);l||(c="value",g!==void 0&&(g!==t[c]||h==="progress"&&!g||h==="option"&&g!==v[c])&&j(t,c,g,v[c],i),c="checked",k!==void 0&&k!==t[c]&&j(t,c,k,v[c],i))}return t}function re(t,e,n){try{if(typeof t=="function"){var o=typeof t.__u=="function";o&&t.__u(),o&&e==null||(t.__u=t(e))}else t.current=e}catch(i){f.__e(i,n)}}function ne(t,e,n){var o,i;if(f.unmount&&f.unmount(t),(o=t.ref)&&(o.current&&o.current!==t.__e||re(o,null,e)),(o=t.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(r){f.__e(r,e)}o.base=o.__P=null}if(o=t.__k)for(i=0;i<o.length;i++)o[i]&&ne(o[i],e,n||typeof t.type!="function");n||t.__e==null||ve(t.__e),t.__c=t.__=t.__e=t.__d=void 0}function Ze(t,e,n){return this.constructor(t,n)}function E(t,e,n){var o,i,r,a;f.__&&f.__(t,e),i=(o=typeof n=="function")?null:n&&n.__k||e.__k,r=[],a=[],se(e,t=(!o&&n||e).__k=ze(F,null,[t]),i||V,V,e.namespaceURI,!o&&n?[n]:i?null:e.firstChild?G.call(e.childNodes):null,r,!o&&n?n:i?i.__e:e.firstChild,o,a),we(r,t,a)}G=ge.slice,f={__e:function(t,e,n,o){for(var i,r,a;e=e.__;)if((i=e.__c)&&!i.__)try{if((r=i.constructor)&&r.getDerivedStateFromError!=null&&(i.setState(r.getDerivedStateFromError(t)),a=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(t,o||{}),a=i.__d),a)return i.__E=i}catch(l){t=l}throw t}},he=0,Ee=function(t){return t!=null&&t.constructor==null},q.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=S({},this.state),typeof t=="function"&&(t=t(S({},n),this.props)),t&&S(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),de(this))},q.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),de(this))},q.prototype.render=F,I=[],me=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Y=function(t,e){return t.__v.__b-e.__v.__b},B.__r=0,oe=0,ee=fe(!1),te=fe(!0),Te=0;var He=0,Ke=Array.isArray;function m(t,e,n,o,i,r){e||(e={});var a,l,u=e;if("ref"in u)for(l in u={},e)l=="ref"?a=e[l]:u[l]=e[l];var c={type:t,props:u,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--He,__i:-1,__u:0,__source:i,__self:r};if(typeof t=="function"&&(a=t.defaultProps))for(l in a)u[l]===void 0&&(u[l]=a[l]);return f.vnode&&f.vnode(c),c}var xe=t=>{let{className:e,label:n,onClick:o}=t;return m("div",{className:"deck-widget-button",children:m("button",{className:`deck-widget-icon-button ${e}`,type:"button",onClick:o,title:n,children:m("div",{className:"deck-widget-icon"})})})},Ce=t=>{let{children:e,orientation:n}=t;return m("div",{className:`deck-widget-button-group ${n}`,children:e})},le=t=>{let{className:e,label:n,onClick:o}=t;return m("button",{className:`deck-widget-icon-button ${e}`,type:"button",onClick:o,title:n,children:m("div",{className:"deck-widget-icon"})})};var X=class{constructor(e){this.id="fullscreen";this.placement="top-left";this.fullscreen=!1;this.id=e.id??this.id,this.placement=e.placement??this.placement,this.props={...e,enterLabel:e.enterLabel??"Enter Fullscreen",exitLabel:e.exitLabel??"Exit Fullscreen",style:e.style??{}}}onAdd({deck:e}){let{style:n,className:o}=this.props,i=document.createElement("div");return i.classList.add("deck-widget","deck-widget-fullscreen"),o&&i.classList.add(o),(0,D._applyStyles)(i,n),this.deck=e,this.element=i,this.update(),document.addEventListener("fullscreenchange",this.onFullscreenChange.bind(this)),i}onRemove(){this.deck=void 0,this.element=void 0,document.removeEventListener("fullscreenchange",this.onFullscreenChange.bind(this))}update(){let{enterLabel:e,exitLabel:n}=this.props,o=this.element;if(!o)return;let i=m(xe,{onClick:this.handleClick.bind(this),label:this.fullscreen?n:e,className:this.fullscreen?"deck-widget-fullscreen-exit":"deck-widget-fullscreen-enter"});E(i,o)}setProps(e){this.placement=e.placement??this.placement;let n=this.props,o=this.element;o&&(n.className!==e.className&&(n.className&&o.classList.remove(n.className),e.className&&o.classList.add(e.className)),(0,D._deepEqual)(n.style,e.style,1)||((0,D._removeStyles)(o,n.style),(0,D._applyStyles)(o,e.style))),Object.assign(this.props,e),this.update()}getContainer(){return this.props.container||this.deck?.getCanvas()?.parentElement}onFullscreenChange(){let e=this.fullscreen,n=document.fullscreenElement===this.getContainer();e!==n&&(this.fullscreen=!this.fullscreen),this.update()}async handleClick(){this.fullscreen?await this.exitFullscreen():await this.requestFullscreen(),this.update()}async requestFullscreen(){let e=this.getContainer();e?.requestFullscreen?await e.requestFullscreen({navigationUI:"hide"}):this.togglePseudoFullscreen()}async exitFullscreen(){document.exitFullscreen?await document.exitFullscreen():this.togglePseudoFullscreen()}togglePseudoFullscreen(){this.getContainer()?.classList.toggle("deck-pseudo-fullscreen")}};var b=z(N(),1);var J=class{constructor(e){this.id="compass";this.placement="top-left";this.viewId=null;this.viewports={};this.id=e.id??this.id,this.viewId=e.viewId??this.viewId,this.placement=e.placement??this.placement,this.props={...e,transitionDuration:e.transitionDuration??200,label:e.label??"Reset Compass",style:e.style??{}}}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId;let n=this.props,o=this.element;o&&(n.className!==e.className&&(n.className&&o.classList.remove(n.className),e.className&&o.classList.add(e.className)),(0,b._deepEqual)(n.style,e.style,1)||((0,b._removeStyles)(o,n.style),(0,b._applyStyles)(o,e.style))),Object.assign(this.props,e),this.update()}onViewportChange(e){e.equals(this.viewports[e.id])||(this.viewports[e.id]=e,this.update())}onAdd({deck:e}){let{style:n,className:o}=this.props,i=document.createElement("div");return i.classList.add("deck-widget","deck-widget-compass"),o&&i.classList.add(o),(0,b._applyStyles)(i,n),this.deck=e,this.element=i,this.update(),i}getRotation(e){return e instanceof b.WebMercatorViewport?[-e.bearing,e.pitch]:e instanceof b._GlobeViewport?[0,Math.max(-80,Math.min(80,e.latitude))]:[0,0]}update(){let e=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",n=this.viewports[e],[o,i]=this.getRotation(n),r=this.element;if(!r)return;let a=m("div",{className:"deck-widget-button",style:{perspective:100},children:m("button",{type:"button",onClick:()=>{for(let l of Object.values(this.viewports))this.handleCompassReset(l)},title:this.props.label,style:{transform:`rotateX(${i}deg)`},children:m("svg",{fill:"none",width:"100%",height:"100%",viewBox:"0 0 26 26",children:m("g",{transform:`rotate(${o},13,13)`,children:[m("path",{d:"M10 13.0001L12.9999 5L15.9997 13.0001H10Z",fill:"var(--icon-compass-north-color, #F05C44)"}),m("path",{d:"M16.0002 12.9999L13.0004 21L10.0005 12.9999H16.0002Z",fill:"var(--icon-compass-south-color, #C2C2CC)"})]})})})});E(a,r)}onRemove(){this.deck=void 0,this.element=void 0}handleCompassReset(e){let n=this.viewId||e.id||"default-view";if(e instanceof b.WebMercatorViewport){let o={...e,bearing:0,...this.getRotation(e)[0]===0?{pitch:0}:{},transitionDuration:this.props.transitionDuration,transitionInterpolator:new b.FlyToInterpolator};this.deck._onViewStateChange({viewId:n,viewState:o,interactionState:{}})}}};var C=z(N(),1);var K=class{constructor(e){this.id="zoom";this.placement="top-left";this.viewId=null;this.viewports={};this.id=e.id??this.id,this.viewId=e.viewId??this.viewId,this.placement=e.placement??this.placement,this.props={...e,orientation:e.orientation??"vertical",transitionDuration:e.transitionDuration??200,zoomInLabel:e.zoomInLabel??"Zoom In",zoomOutLabel:e.zoomOutLabel??"Zoom Out",style:e.style??{}}}onAdd({deck:e}){let{style:n,className:o}=this.props,i=document.createElement("div");return i.classList.add("deck-widget","deck-widget-zoom"),o&&i.classList.add(o),(0,C._applyStyles)(i,n),this.deck=e,this.element=i,this.update(),i}onRemove(){this.deck=void 0,this.element=void 0}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId;let n=this.props,o=this.element;o&&(n.className!==e.className&&(n.className&&o.classList.remove(n.className),e.className&&o.classList.add(e.className)),(0,C._deepEqual)(n.style,e.style,1)||((0,C._removeStyles)(o,n.style),(0,C._applyStyles)(o,e.style))),Object.assign(this.props,e),this.update()}onViewportChange(e){this.viewports[e.id]=e}handleZoom(e,n){let o=this.viewId||e?.id||"default-view",i={...e,zoom:n,transitionDuration:this.props.transitionDuration,transitionInterpolator:new C.FlyToInterpolator};this.deck._onViewStateChange({viewId:o,viewState:i,interactionState:{}})}handleZoomIn(){for(let e of Object.values(this.viewports))this.handleZoom(e,e.zoom+1)}handleZoomOut(){for(let e of Object.values(this.viewports))this.handleZoom(e,e.zoom-1)}update(){let e=this.element;if(!e)return;let n=m(Ce,{orientation:this.props.orientation,children:[m(le,{onClick:()=>this.handleZoomIn(),label:this.props.zoomInLabel,className:"deck-widget-zoom-in"}),m(le,{onClick:()=>this.handleZoomOut(),label:this.props.zoomOutLabel,className:"deck-widget-zoom-out"})]});E(n,e)}};var Re={"--button-background":"#fff","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"unset","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--button-backdrop-filter":"unset","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--icon-compass-north-color":"#F05C44","--icon-compass-south-color":"#C2C2CC"},Ae={"--button-background":"rgba(18, 18, 20, 1)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"unset","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--button-backdrop-filter":"unset","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--icon-compass-north-color":"#F05C44","--icon-compass-south-color":"#C2C2CC"},je={"--button-background":"rgba(255, 255, 255, 0.6)","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"1px solid rgba(255, 255, 255, 0.6)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--icon-compass-north-color":"#F05C44","--icon-compass-south-color":"#C2C2CC"},$e={"--button-background":"rgba(18, 18, 20, 0.75)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"1px solid rgba(18, 18, 20, 0.75)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--icon-compass-north-color":"#F05C44","--icon-compass-south-color":"#C2C2CC"};return Fe(O);})();
|
|
7
|
+
"use strict";var __exports__=(()=>{var Le=Object.create;var A=Object.defineProperty;var Se=Object.getOwnPropertyDescriptor;var Ie=Object.getOwnPropertyNames;var We=Object.getPrototypeOf,Ne=Object.prototype.hasOwnProperty;var De=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Fe=(t,e)=>{for(var n in e)A(t,n,{get:e[n],enumerable:!0})},q=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ie(e))!Ne.call(t,o)&&o!==n&&A(t,o,{get:()=>e[o],enumerable:!(i=Se(e,o))||i.enumerable});return t},L=(t,e,n)=>(q(t,e,"default"),n&&q(n,e,"default")),V=(t,e,n)=>(n=t!=null?Le(We(t)):{},q(e||!t||!t.__esModule?A(n,"default",{value:t,enumerable:!0}):n,t)),Ee=t=>q(A({},"__esModule",{value:!0}),t);var D=De((Ge,_e)=>{_e.exports=globalThis.deck});var O={};Fe(O,{CompassWidget:()=>K,DarkGlassTheme:()=>$e,DarkTheme:()=>Ae,FullscreenWidget:()=>J,LightGlassTheme:()=>je,LightTheme:()=>qe,ZoomWidget:()=>R});var C={},ue=V(D(),1);L(C,V(D(),1));if(!ue.Layer)throw new Error("@deck.gl/core is not found");L(O,C);var N=V(D(),1);var X,f,me,Te,I,de,ge,Y,oe,ee,te,Me,z={},ve=[],Ve=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ie=Array.isArray;function S(t,e){for(var n in e)t[n]=e[n];return t}function ye(t){var e=t.parentNode;e&&e.removeChild(t)}function ze(t,e,n){var i,o,r,a={};for(r in e)r=="key"?i=e[r]:r=="ref"?o=e[r]:a[r]=e[r];if(arguments.length>2&&(a.children=arguments.length>3?X.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(r in t.defaultProps)a[r]===void 0&&(a[r]=t.defaultProps[r]);return $(t,a,i,o,null)}function $(t,e,n,i,o){var r={type:t,props:e,key:n,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:o??++me,__i:-1,__u:0};return o==null&&f.vnode!=null&&f.vnode(r),r}function F(t){return t.children}function B(t,e){this.props=t,this.context=e}function W(t,e){if(e==null)return t.__?W(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?W(t):null}function be(t){var e,n;if((t=t.__)!=null&&t.__c!=null){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null){t.__e=t.__c.base=n.__e;break}return be(t)}}function pe(t){(!t.__d&&(t.__d=!0)&&I.push(t)&&!G.__r++||de!==f.debounceRendering)&&((de=f.debounceRendering)||ge)(G)}function G(){var t,e,n,i,o,r,a,l;for(I.sort(Y);t=I.shift();)t.__d&&(e=I.length,i=void 0,r=(o=(n=t).__v).__e,a=[],l=[],n.__P&&((i=S({},o)).__v=o.__v+1,f.vnode&&f.vnode(i),se(n.__P,i,o,n.__n,n.__P.namespaceURI,32&o.__u?[r]:null,a,r??W(o),!!(32&o.__u),l),i.__v=o.__v,i.__.__k[i.__i]=i,xe(a,i,l),i.__e!=r&&be(i)),I.length>e&&I.sort(Y));G.__r=0}function ke(t,e,n,i,o,r,a,l,u,c,d){var s,y,_,g,k,v=i&&i.__k||ve,p=e.length;for(n.__d=u,Re(n,e,v),u=n.__d,s=0;s<p;s++)(_=n.__k[s])!=null&&typeof _!="boolean"&&typeof _!="function"&&(y=_.__i===-1?z:v[_.__i]||z,_.__i=s,se(t,_,y,o,r,a,l,u,c,d),g=_.__e,_.ref&&y.ref!=_.ref&&(y.ref&&re(y.ref,null,_),d.push(_.ref,_.__c||g,_)),k==null&&g!=null&&(k=g),65536&_.__u||y.__k===_.__k?u=we(_,u,t):typeof _.type=="function"&&_.__d!==void 0?u=_.__d:g&&(u=g.nextSibling),_.__d=void 0,_.__u&=-196609);n.__d=u,n.__e=k}function Re(t,e,n){var i,o,r,a,l,u=e.length,c=n.length,d=c,s=0;for(t.__k=[],i=0;i<u;i++)a=i+s,(o=t.__k[i]=(o=e[i])==null||typeof o=="boolean"||typeof o=="function"?null:typeof o=="string"||typeof o=="number"||typeof o=="bigint"||o.constructor==String?$(null,o,null,null,null):ie(o)?$(F,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?$(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)!=null?(o.__=t,o.__b=t.__b+1,l=Oe(o,n,a,d),o.__i=l,r=null,l!==-1&&(d--,(r=n[l])&&(r.__u|=131072)),r==null||r.__v===null?(l==-1&&s--,typeof o.type!="function"&&(o.__u|=65536)):l!==a&&(l==a-1?s--:l==a+1?s++:l>a?d>u-a?s+=l-a:s--:l<a&&(l==a-s?s-=l-a:s++),l!==i+s&&(o.__u|=65536))):(r=n[a])&&r.key==null&&r.__e&&!(131072&r.__u)&&(r.__e==t.__d&&(t.__d=W(r)),ne(r,r,!1),n[a]=null,d--);if(d)for(i=0;i<c;i++)(r=n[i])!=null&&!(131072&r.__u)&&(r.__e==t.__d&&(t.__d=W(r)),ne(r,r))}function we(t,e,n){var i,o;if(typeof t.type=="function"){for(i=t.__k,o=0;i&&o<i.length;o++)i[o]&&(i[o].__=t,e=we(i[o],e,n));return e}t.__e!=e&&(e&&t.type&&!n.contains(e)&&(e=W(t)),n.insertBefore(t.__e,e||null),e=t.__e);do e=e&&e.nextSibling;while(e!=null&&e.nodeType===8);return e}function Oe(t,e,n,i){var o=t.key,r=t.type,a=n-1,l=n+1,u=e[n];if(u===null||u&&o==u.key&&r===u.type&&!(131072&u.__u))return n;if(i>(u!=null&&!(131072&u.__u)?1:0))for(;a>=0||l<e.length;){if(a>=0){if((u=e[a])&&!(131072&u.__u)&&o==u.key&&r===u.type)return a;a--}if(l<e.length){if((u=e[l])&&!(131072&u.__u)&&o==u.key&&r===u.type)return l;l++}}return-1}function fe(t,e,n){e[0]==="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||Ve.test(e)?n:n+"px"}function j(t,e,n,i,o){var r;e:if(e==="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof i=="string"&&(t.style.cssText=i=""),i)for(e in i)n&&e in n||fe(t.style,e,"");if(n)for(e in n)i&&n[e]===i[e]||fe(t.style,e,n[e])}else if(e[0]==="o"&&e[1]==="n")r=e!==(e=e.replace(/(PointerCapture)$|Capture$/i,"$1")),e=e.toLowerCase()in t||e==="onFocusOut"||e==="onFocusIn"?e.toLowerCase().slice(2):e.slice(2),t.l||(t.l={}),t.l[e+r]=n,n?i?n.u=i.u:(n.u=oe,t.addEventListener(e,r?te:ee,r)):t.removeEventListener(e,r?te:ee,r);else{if(o=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!=="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function he(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e.t==null)e.t=oe++;else if(e.t<n.u)return;return n(f.event?f.event(e):e)}}}function se(t,e,n,i,o,r,a,l,u,c){var d,s,y,_,g,k,v,p,h,T,P,U,M,ce,Z,Q,x=e.type;if(e.constructor!==void 0)return null;128&n.__u&&(u=!!(32&n.__u),r=[l=e.__e=n.__e]),(d=f.__b)&&d(e);e:if(typeof x=="function")try{if(p=e.props,h="prototype"in x&&x.prototype.render,T=(d=x.contextType)&&i[d.__c],P=d?T?T.props.value:d.__:i,n.__c?v=(s=e.__c=n.__c).__=s.__E:(h?e.__c=s=new x(p,P):(e.__c=s=new B(p,P),s.constructor=x,s.render=Ze),T&&T.sub(s),s.props=p,s.state||(s.state={}),s.context=P,s.__n=i,y=s.__d=!0,s.__h=[],s._sb=[]),h&&s.__s==null&&(s.__s=s.state),h&&x.getDerivedStateFromProps!=null&&(s.__s==s.state&&(s.__s=S({},s.__s)),S(s.__s,x.getDerivedStateFromProps(p,s.__s))),_=s.props,g=s.state,s.__v=e,y)h&&x.getDerivedStateFromProps==null&&s.componentWillMount!=null&&s.componentWillMount(),h&&s.componentDidMount!=null&&s.__h.push(s.componentDidMount);else{if(h&&x.getDerivedStateFromProps==null&&p!==_&&s.componentWillReceiveProps!=null&&s.componentWillReceiveProps(p,P),!s.__e&&(s.shouldComponentUpdate!=null&&s.shouldComponentUpdate(p,s.__s,P)===!1||e.__v===n.__v)){for(e.__v!==n.__v&&(s.props=p,s.state=s.__s,s.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.forEach(function(H){H&&(H.__=e)}),U=0;U<s._sb.length;U++)s.__h.push(s._sb[U]);s._sb=[],s.__h.length&&a.push(s);break e}s.componentWillUpdate!=null&&s.componentWillUpdate(p,s.__s,P),h&&s.componentDidUpdate!=null&&s.__h.push(function(){s.componentDidUpdate(_,g,k)})}if(s.context=P,s.props=p,s.__P=t,s.__e=!1,M=f.__r,ce=0,h){for(s.state=s.__s,s.__d=!1,M&&M(e),d=s.render(s.props,s.state,s.context),Z=0;Z<s._sb.length;Z++)s.__h.push(s._sb[Z]);s._sb=[]}else do s.__d=!1,M&&M(e),d=s.render(s.props,s.state,s.context),s.state=s.__s;while(s.__d&&++ce<25);s.state=s.__s,s.getChildContext!=null&&(i=S(S({},i),s.getChildContext())),h&&!y&&s.getSnapshotBeforeUpdate!=null&&(k=s.getSnapshotBeforeUpdate(_,g)),ke(t,ie(Q=d!=null&&d.type===F&&d.key==null?d.props.children:d)?Q:[Q],e,n,i,o,r,a,l,u,c),s.base=e.__e,e.__u&=-161,s.__h.length&&a.push(s),v&&(s.__E=s.__=null)}catch(H){if(e.__v=null,u||r!=null){for(e.__u|=u?160:32;l&&l.nodeType===8&&l.nextSibling;)l=l.nextSibling;r[r.indexOf(l)]=null,e.__e=l}else e.__e=n.__e,e.__k=n.__k;f.__e(H,e,n)}else r==null&&e.__v===n.__v?(e.__k=n.__k,e.__e=n.__e):e.__e=Ue(n.__e,e,n,i,o,r,a,u,c);(d=f.diffed)&&d(e)}function xe(t,e,n){e.__d=void 0;for(var i=0;i<n.length;i++)re(n[i],n[++i],n[++i]);f.__c&&f.__c(e,t),t.some(function(o){try{t=o.__h,o.__h=[],t.some(function(r){r.call(o)})}catch(r){f.__e(r,o.__v)}})}function Ue(t,e,n,i,o,r,a,l,u){var c,d,s,y,_,g,k,v=n.props,p=e.props,h=e.type;if(h==="svg"?o="http://www.w3.org/2000/svg":h==="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),r!=null){for(c=0;c<r.length;c++)if((_=r[c])&&"setAttribute"in _==!!h&&(h?_.localName===h:_.nodeType===3)){t=_,r[c]=null;break}}if(t==null){if(h===null)return document.createTextNode(p);t=document.createElementNS(o,h,p.is&&p),r=null,l=!1}if(h===null)v===p||l&&t.data===p||(t.data=p);else{if(r=r&&X.call(t.childNodes),v=n.props||z,!l&&r!=null)for(v={},c=0;c<t.attributes.length;c++)v[(_=t.attributes[c]).name]=_.value;for(c in v)if(_=v[c],c!="children"){if(c=="dangerouslySetInnerHTML")s=_;else if(c!=="key"&&!(c in p)){if(c=="value"&&"defaultValue"in p||c=="checked"&&"defaultChecked"in p)continue;j(t,c,null,_,o)}}for(c in p)_=p[c],c=="children"?y=_:c=="dangerouslySetInnerHTML"?d=_:c=="value"?g=_:c=="checked"?k=_:c==="key"||l&&typeof _!="function"||v[c]===_||j(t,c,_,v[c],o);if(d)l||s&&(d.__html===s.__html||d.__html===t.innerHTML)||(t.innerHTML=d.__html),e.__k=[];else if(s&&(t.innerHTML=""),ke(t,ie(y)?y:[y],e,n,i,h==="foreignObject"?"http://www.w3.org/1999/xhtml":o,r,a,r?r[0]:n.__k&&W(n,0),l,u),r!=null)for(c=r.length;c--;)r[c]!=null&&ye(r[c]);l||(c="value",g!==void 0&&(g!==t[c]||h==="progress"&&!g||h==="option"&&g!==v[c])&&j(t,c,g,v[c],o),c="checked",k!==void 0&&k!==t[c]&&j(t,c,k,v[c],o))}return t}function re(t,e,n){try{if(typeof t=="function"){var i=typeof t.__u=="function";i&&t.__u(),i&&e==null||(t.__u=t(e))}else t.current=e}catch(o){f.__e(o,n)}}function ne(t,e,n){var i,o;if(f.unmount&&f.unmount(t),(i=t.ref)&&(i.current&&i.current!==t.__e||re(i,null,e)),(i=t.__c)!=null){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(r){f.__e(r,e)}i.base=i.__P=null}if(i=t.__k)for(o=0;o<i.length;o++)i[o]&&ne(i[o],e,n||typeof t.type!="function");n||t.__e==null||ye(t.__e),t.__c=t.__=t.__e=t.__d=void 0}function Ze(t,e,n){return this.constructor(t,n)}function E(t,e,n){var i,o,r,a;f.__&&f.__(t,e),o=(i=typeof n=="function")?null:n&&n.__k||e.__k,r=[],a=[],se(e,t=(!i&&n||e).__k=ze(F,null,[t]),o||z,z,e.namespaceURI,!i&&n?[n]:o?null:e.firstChild?X.call(e.childNodes):null,r,!i&&n?n:o?o.__e:e.firstChild,i,a),xe(r,t,a)}X=ve.slice,f={__e:function(t,e,n,i){for(var o,r,a;e=e.__;)if((o=e.__c)&&!o.__)try{if((r=o.constructor)&&r.getDerivedStateFromError!=null&&(o.setState(r.getDerivedStateFromError(t)),a=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(t,i||{}),a=o.__d),a)return o.__E=o}catch(l){t=l}throw t}},me=0,Te=function(t){return t!=null&&t.constructor==null},B.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=S({},this.state),typeof t=="function"&&(t=t(S({},n),this.props)),t&&S(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),pe(this))},B.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),pe(this))},B.prototype.render=F,I=[],ge=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Y=function(t,e){return t.__v.__b-e.__v.__b},G.__r=0,oe=0,ee=he(!1),te=he(!0),Me=0;var He=0,Qe=Array.isArray;function m(t,e,n,i,o,r){e||(e={});var a,l,u=e;if("ref"in u)for(l in u={},e)l=="ref"?a=e[l]:u[l]=e[l];var c={type:t,props:u,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--He,__i:-1,__u:0,__source:o,__self:r};if(typeof t=="function"&&(a=t.defaultProps))for(l in a)u[l]===void 0&&(u[l]=a[l]);return f.vnode&&f.vnode(c),c}var Ce=t=>{let{className:e,label:n,onClick:i}=t;return m("div",{className:"deck-widget-button",children:m("button",{className:`deck-widget-icon-button ${e}`,type:"button",onClick:i,title:n,children:m("div",{className:"deck-widget-icon"})})})},Pe=t=>{let{children:e,orientation:n}=t;return m("div",{className:`deck-widget-button-group ${n}`,children:e})},le=t=>{let{className:e,label:n,onClick:i}=t;return m("button",{className:`deck-widget-icon-button ${e}`,type:"button",onClick:i,title:n,children:m("div",{className:"deck-widget-icon"})})};var J=class{constructor(e){this.id="fullscreen";this.placement="top-left";this.fullscreen=!1;this.id=e.id??this.id,this.placement=e.placement??this.placement,this.props={...e,enterLabel:e.enterLabel??"Enter Fullscreen",exitLabel:e.exitLabel??"Exit Fullscreen",style:e.style??{}}}onAdd({deck:e}){let{style:n,className:i}=this.props,o=document.createElement("div");return o.classList.add("deck-widget","deck-widget-fullscreen"),i&&o.classList.add(i),(0,N._applyStyles)(o,n),this.deck=e,this.element=o,this.update(),document.addEventListener("fullscreenchange",this.onFullscreenChange.bind(this)),o}onRemove(){this.deck=void 0,this.element=void 0,document.removeEventListener("fullscreenchange",this.onFullscreenChange.bind(this))}update(){let{enterLabel:e,exitLabel:n}=this.props,i=this.element;if(!i)return;let o=m(Ce,{onClick:this.handleClick.bind(this),label:this.fullscreen?n:e,className:this.fullscreen?"deck-widget-fullscreen-exit":"deck-widget-fullscreen-enter"});E(o,i)}setProps(e){this.placement=e.placement??this.placement;let n=this.props,i=this.element;i&&(n.className!==e.className&&(n.className&&i.classList.remove(n.className),e.className&&i.classList.add(e.className)),(0,N._deepEqual)(n.style,e.style,1)||((0,N._removeStyles)(i,n.style),(0,N._applyStyles)(i,e.style))),Object.assign(this.props,e),this.update()}getContainer(){return this.props.container||this.deck?.getCanvas()?.parentElement}onFullscreenChange(){let e=this.fullscreen,n=document.fullscreenElement===this.getContainer();e!==n&&(this.fullscreen=!this.fullscreen),this.update()}async handleClick(){this.fullscreen?await this.exitFullscreen():await this.requestFullscreen(),this.update()}async requestFullscreen(){let e=this.getContainer();e?.requestFullscreen?await e.requestFullscreen({navigationUI:"hide"}):this.togglePseudoFullscreen()}async exitFullscreen(){document.exitFullscreen?await document.exitFullscreen():this.togglePseudoFullscreen()}togglePseudoFullscreen(){this.getContainer()?.classList.toggle("deck-pseudo-fullscreen")}};var b=V(D(),1);var K=class{constructor(e){this.id="compass";this.placement="top-left";this.viewId=null;this.viewports={};this.id=e.id??this.id,this.viewId=e.viewId??this.viewId,this.placement=e.placement??this.placement,this.props={...e,transitionDuration:e.transitionDuration??200,label:e.label??"Reset Compass",style:e.style??{}}}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId;let n=this.props,i=this.element;i&&(n.className!==e.className&&(n.className&&i.classList.remove(n.className),e.className&&i.classList.add(e.className)),(0,b._deepEqual)(n.style,e.style,1)||((0,b._removeStyles)(i,n.style),(0,b._applyStyles)(i,e.style))),Object.assign(this.props,e),this.update()}onViewportChange(e){e.equals(this.viewports[e.id])||(this.viewports[e.id]=e,this.update())}onAdd({deck:e}){let{style:n,className:i}=this.props,o=document.createElement("div");return o.classList.add("deck-widget","deck-widget-compass"),i&&o.classList.add(i),(0,b._applyStyles)(o,n),this.deck=e,this.element=o,this.update(),o}getRotation(e){return e instanceof b.WebMercatorViewport?[-e.bearing,e.pitch]:e instanceof b._GlobeViewport?[0,Math.max(-80,Math.min(80,e.latitude))]:[0,0]}update(){let e=this.viewId||Object.values(this.viewports)[0]?.id||"default-view",n=this.viewports[e],[i,o]=this.getRotation(n),r=this.element;if(!r)return;let a=m("div",{className:"deck-widget-button",style:{perspective:100},children:m("button",{type:"button",onClick:()=>{for(let l of Object.values(this.viewports))this.handleCompassReset(l)},title:this.props.label,style:{transform:`rotateX(${o}deg)`},children:m("svg",{fill:"none",width:"100%",height:"100%",viewBox:"0 0 26 26",children:m("g",{transform:`rotate(${i},13,13)`,children:[m("path",{d:"M10 13.0001L12.9999 5L15.9997 13.0001H10Z",fill:"var(--icon-compass-north-color, #F05C44)"}),m("path",{d:"M16.0002 12.9999L13.0004 21L10.0005 12.9999H16.0002Z",fill:"var(--icon-compass-south-color, #C2C2CC)"})]})})})});E(a,r)}onRemove(){this.deck=void 0,this.element=void 0}handleCompassReset(e){let n=this.viewId||e.id||"default-view";if(e instanceof b.WebMercatorViewport){let i={...e,bearing:0,...this.getRotation(e)[0]===0?{pitch:0}:{},transitionDuration:this.props.transitionDuration,transitionInterpolator:new b.FlyToInterpolator};this.deck._onViewStateChange({viewId:n,viewState:i,interactionState:{}})}}};var w=V(D(),1);var ae=class{constructor(e={}){this.id="zoom";this.placement="top-left";this.viewId=null;this.viewports={};this.id=e.id??this.id,this.viewId=e.viewId??this.viewId,this.placement=e.placement??this.placement,this.props={...ae.defaultProps,...e}}onAdd({deck:e}){let{style:n,className:i}=this.props,o=document.createElement("div");return o.classList.add("deck-widget","deck-widget-zoom"),i&&o.classList.add(i),(0,w._applyStyles)(o,n),this.deck=e,this.element=o,this.update(),o}onRemove(){this.deck=void 0,this.element=void 0}setProps(e){this.placement=e.placement??this.placement,this.viewId=e.viewId??this.viewId;let n=this.props,i=this.element;i&&(n.className!==e.className&&(n.className&&i.classList.remove(n.className),e.className&&i.classList.add(e.className)),(0,w._deepEqual)(n.style,e.style,1)||((0,w._removeStyles)(i,n.style),(0,w._applyStyles)(i,e.style))),Object.assign(this.props,e),this.update()}onViewportChange(e){this.viewports[e.id]=e}handleZoom(e,n){let i=this.viewId||e?.id||"default-view",o={...e,zoom:n};this.props.transitionDuration>0&&(o.transitionDuration=this.props.transitionDuration,o.transitionInterpolator="latitude"in o?new w.FlyToInterpolator:new w.LinearInterpolator),this.setViewState(i,o)}handleZoomIn(){for(let e of Object.values(this.viewports))this.handleZoom(e,e.zoom+1)}handleZoomOut(){for(let e of Object.values(this.viewports))this.handleZoom(e,e.zoom-1)}setViewState(e,n){this.deck._onViewStateChange({viewId:e,viewState:n,interactionState:{}})}update(){let e=this.element;if(!e)return;let n=m(Pe,{orientation:this.props.orientation,children:[m(le,{onClick:()=>this.handleZoomIn(),label:this.props.zoomInLabel,className:"deck-widget-zoom-in"}),m(le,{onClick:()=>this.handleZoomOut(),label:this.props.zoomOutLabel,className:"deck-widget-zoom-out"})]});E(n,e)}},R=ae;R.defaultProps={id:"zoom-widget",style:{},placement:"top-left",className:void 0,orientation:"vertical",transitionDuration:200,zoomInLabel:"Zoom In",zoomOutLabel:"Zoom Out",viewId:void 0};var qe={"--button-background":"#fff","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"unset","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--button-backdrop-filter":"unset","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--icon-compass-north-color":"#F05C44","--icon-compass-south-color":"#C2C2CC"},Ae={"--button-background":"rgba(18, 18, 20, 1)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"unset","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25)","--button-backdrop-filter":"unset","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--icon-compass-north-color":"#F05C44","--icon-compass-south-color":"#C2C2CC"},je={"--button-background":"rgba(255, 255, 255, 0.6)","--button-stroke":"rgba(255, 255, 255, 0.3)","--button-inner-stroke":"1px solid rgba(255, 255, 255, 0.6)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(97, 97, 102, 1)","--button-icon-hover":"rgba(24, 24, 26, 1)","--icon-compass-north-color":"#F05C44","--icon-compass-south-color":"#C2C2CC"},$e={"--button-background":"rgba(18, 18, 20, 0.75)","--button-stroke":"rgba(18, 18, 20, 0.30)","--button-inner-stroke":"1px solid rgba(18, 18, 20, 0.75)","--button-shadow":"0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset","--button-backdrop-filter":"blur(4px)","--button-icon-idle":"rgba(158, 157, 168, 1)","--button-icon-hover":"rgba(215, 214, 229, 1)","--icon-compass-north-color":"#F05C44","--icon-compass-south-color":"#C2C2CC"};return Ee(O);})();
|
|
8
8
|
return __exports__;
|
|
9
9
|
});
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "UI widgets for deck.gl",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"version": "9.1.
|
|
6
|
+
"version": "9.1.4",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"@deck.gl/core": "^9.1.0"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "92f3582b31ce0886dff8a61278b42feb0f8fe5f0"
|
|
51
51
|
}
|
package/src/zoom-widget.tsx
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
/* global document */
|
|
6
6
|
import {
|
|
7
7
|
FlyToInterpolator,
|
|
8
|
+
LinearInterpolator,
|
|
8
9
|
_deepEqual as deepEqual,
|
|
9
10
|
_applyStyles as applyStyles,
|
|
10
11
|
_removeStyles as removeStyles
|
|
@@ -36,7 +37,7 @@ export type ZoomWidgetProps = {
|
|
|
36
37
|
*/
|
|
37
38
|
zoomOutLabel?: string;
|
|
38
39
|
/**
|
|
39
|
-
* Zoom transition duration in ms.
|
|
40
|
+
* Zoom transition duration in ms. 0 disables the transition
|
|
40
41
|
*/
|
|
41
42
|
transitionDuration?: number;
|
|
42
43
|
/**
|
|
@@ -51,25 +52,33 @@ export type ZoomWidgetProps = {
|
|
|
51
52
|
|
|
52
53
|
export class ZoomWidget implements Widget<ZoomWidgetProps> {
|
|
53
54
|
id = 'zoom';
|
|
54
|
-
props: ZoomWidgetProps
|
|
55
|
+
props: Required<ZoomWidgetProps>;
|
|
55
56
|
placement: WidgetPlacement = 'top-left';
|
|
56
57
|
viewId?: string | null = null;
|
|
57
58
|
viewports: {[id: string]: Viewport} = {};
|
|
58
59
|
deck?: Deck<any>;
|
|
59
60
|
element?: HTMLDivElement;
|
|
60
61
|
|
|
61
|
-
|
|
62
|
+
static defaultProps: Required<ZoomWidgetProps> = {
|
|
63
|
+
id: 'zoom-widget',
|
|
64
|
+
style: {},
|
|
65
|
+
placement: 'top-left',
|
|
66
|
+
className: undefined!,
|
|
67
|
+
orientation: 'vertical',
|
|
68
|
+
transitionDuration: 200,
|
|
69
|
+
zoomInLabel: 'Zoom In',
|
|
70
|
+
zoomOutLabel: 'Zoom Out',
|
|
71
|
+
viewId: undefined!
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
constructor(props: ZoomWidgetProps = {}) {
|
|
62
75
|
this.id = props.id ?? this.id;
|
|
63
76
|
this.viewId = props.viewId ?? this.viewId;
|
|
64
77
|
this.placement = props.placement ?? this.placement;
|
|
65
78
|
|
|
66
79
|
this.props = {
|
|
67
|
-
...
|
|
68
|
-
|
|
69
|
-
transitionDuration: props.transitionDuration ?? 200,
|
|
70
|
-
zoomInLabel: props.zoomInLabel ?? 'Zoom In',
|
|
71
|
-
zoomOutLabel: props.zoomOutLabel ?? 'Zoom Out',
|
|
72
|
-
style: props.style ?? {}
|
|
80
|
+
...ZoomWidget.defaultProps,
|
|
81
|
+
...props
|
|
73
82
|
};
|
|
74
83
|
}
|
|
75
84
|
|
|
@@ -117,14 +126,16 @@ export class ZoomWidget implements Widget<ZoomWidgetProps> {
|
|
|
117
126
|
|
|
118
127
|
handleZoom(viewport: Viewport, nextZoom: number) {
|
|
119
128
|
const viewId = this.viewId || viewport?.id || 'default-view';
|
|
120
|
-
const nextViewState = {
|
|
129
|
+
const nextViewState: Record<string, unknown> = {
|
|
121
130
|
...viewport,
|
|
122
|
-
zoom: nextZoom
|
|
123
|
-
transitionDuration: this.props.transitionDuration,
|
|
124
|
-
transitionInterpolator: new FlyToInterpolator()
|
|
131
|
+
zoom: nextZoom
|
|
125
132
|
};
|
|
126
|
-
|
|
127
|
-
|
|
133
|
+
if (this.props.transitionDuration > 0) {
|
|
134
|
+
nextViewState.transitionDuration = this.props.transitionDuration;
|
|
135
|
+
nextViewState.transitionInterpolator =
|
|
136
|
+
'latitude' in nextViewState ? new FlyToInterpolator() : new LinearInterpolator();
|
|
137
|
+
}
|
|
138
|
+
this.setViewState(viewId, nextViewState);
|
|
128
139
|
}
|
|
129
140
|
|
|
130
141
|
handleZoomIn() {
|
|
@@ -139,6 +150,14 @@ export class ZoomWidget implements Widget<ZoomWidgetProps> {
|
|
|
139
150
|
}
|
|
140
151
|
}
|
|
141
152
|
|
|
153
|
+
/**
|
|
154
|
+
* @todo - move to deck or widget manager
|
|
155
|
+
*/
|
|
156
|
+
private setViewState(viewId: string, viewState: Record<string, unknown>): void {
|
|
157
|
+
// @ts-ignore Using private method temporary until there's a public one
|
|
158
|
+
this.deck._onViewStateChange({viewId, viewState, interactionState: {}});
|
|
159
|
+
}
|
|
160
|
+
|
|
142
161
|
private update() {
|
|
143
162
|
const element = this.element;
|
|
144
163
|
if (!element) {
|