@deck.gl/widgets 9.1.4 → 9.1.6
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 +200 -18
- package/dist/index.cjs +167 -1
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/reset-view-widget.d.ts +30 -0
- package/dist/reset-view-widget.d.ts.map +1 -0
- package/dist/reset-view-widget.js +49 -0
- package/dist/reset-view-widget.js.map +1 -0
- package/dist/screenshot-widget.d.ts +33 -0
- package/dist/screenshot-widget.d.ts.map +1 -0
- package/dist/screenshot-widget.js +63 -0
- package/dist/screenshot-widget.js.map +1 -0
- package/dist/stylesheet.css +12 -0
- package/dist/widget-impl.d.ts +29 -0
- package/dist/widget-impl.d.ts.map +1 -0
- package/dist/widget-impl.js +60 -0
- package/dist/widget-impl.js.map +1 -0
- package/dist.min.js +1 -1
- package/package.json +2 -2
- package/src/index.ts +9 -0
- package/src/reset-view-widget.tsx +81 -0
- package/src/screenshot-widget.tsx +91 -0
- package/src/stylesheet.css +12 -0
- package/src/widget-impl.ts +88 -0
package/dist/dist.dev.js
CHANGED
|
@@ -54,7 +54,11 @@ var __exports__ = (() => {
|
|
|
54
54
|
FullscreenWidget: () => FullscreenWidget,
|
|
55
55
|
LightGlassTheme: () => LightGlassTheme,
|
|
56
56
|
LightTheme: () => LightTheme,
|
|
57
|
-
|
|
57
|
+
ResetViewWidget: () => ResetViewWidget,
|
|
58
|
+
ScreenshotWidget: () => ScreenshotWidget,
|
|
59
|
+
ZoomWidget: () => ZoomWidget,
|
|
60
|
+
_WidgetImpl: () => WidgetImpl,
|
|
61
|
+
_components: () => components_exports
|
|
58
62
|
});
|
|
59
63
|
|
|
60
64
|
// ../core/bundle/peer-dependency.ts
|
|
@@ -234,37 +238,37 @@ var __exports__ = (() => {
|
|
|
234
238
|
};
|
|
235
239
|
}
|
|
236
240
|
function O(n2, u3, t2, i3, o2, r2, f3, e2, c2, s2) {
|
|
237
|
-
var a2,
|
|
241
|
+
var a2, h3, p2, v2, w2, _2, g2, m, x2, C2, M2, P2, $2, I2, H, L2, T2 = u3.type;
|
|
238
242
|
if (void 0 !== u3.constructor)
|
|
239
243
|
return null;
|
|
240
244
|
128 & t2.__u && (c2 = !!(32 & t2.__u), r2 = [e2 = u3.__e = t2.__e]), (a2 = l.__b) && a2(u3);
|
|
241
245
|
n:
|
|
242
246
|
if ("function" == typeof T2)
|
|
243
247
|
try {
|
|
244
|
-
if (m = u3.props, x2 = "prototype" in T2 && T2.prototype.render, C2 = (a2 = T2.contextType) && i3[a2.__c], M2 = a2 ? C2 ? C2.props.value : a2.__ : i3, t2.__c ? g2 = (
|
|
245
|
-
x2 && null == T2.getDerivedStateFromProps && null !=
|
|
248
|
+
if (m = u3.props, x2 = "prototype" in T2 && T2.prototype.render, C2 = (a2 = T2.contextType) && i3[a2.__c], M2 = a2 ? C2 ? C2.props.value : a2.__ : i3, t2.__c ? g2 = (h3 = u3.__c = t2.__c).__ = h3.__E : (x2 ? u3.__c = h3 = new T2(m, M2) : (u3.__c = h3 = new b(m, M2), h3.constructor = T2, h3.render = q), C2 && C2.sub(h3), h3.props = m, h3.state || (h3.state = {}), h3.context = M2, h3.__n = i3, p2 = h3.__d = true, h3.__h = [], h3._sb = []), x2 && null == h3.__s && (h3.__s = h3.state), x2 && null != T2.getDerivedStateFromProps && (h3.__s == h3.state && (h3.__s = d({}, h3.__s)), d(h3.__s, T2.getDerivedStateFromProps(m, h3.__s))), v2 = h3.props, w2 = h3.state, h3.__v = u3, p2)
|
|
249
|
+
x2 && null == T2.getDerivedStateFromProps && null != h3.componentWillMount && h3.componentWillMount(), x2 && null != h3.componentDidMount && h3.__h.push(h3.componentDidMount);
|
|
246
250
|
else {
|
|
247
|
-
if (x2 && null == T2.getDerivedStateFromProps && m !== v2 && null !=
|
|
248
|
-
for (u3.__v !== t2.__v && (
|
|
251
|
+
if (x2 && null == T2.getDerivedStateFromProps && m !== v2 && null != h3.componentWillReceiveProps && h3.componentWillReceiveProps(m, M2), !h3.__e && (null != h3.shouldComponentUpdate && false === h3.shouldComponentUpdate(m, h3.__s, M2) || u3.__v === t2.__v)) {
|
|
252
|
+
for (u3.__v !== t2.__v && (h3.props = m, h3.state = h3.__s, h3.__d = false), u3.__e = t2.__e, u3.__k = t2.__k, u3.__k.forEach(function(n3) {
|
|
249
253
|
n3 && (n3.__ = u3);
|
|
250
|
-
}), P2 = 0; P2 <
|
|
251
|
-
|
|
252
|
-
|
|
254
|
+
}), P2 = 0; P2 < h3._sb.length; P2++)
|
|
255
|
+
h3.__h.push(h3._sb[P2]);
|
|
256
|
+
h3._sb = [], h3.__h.length && f3.push(h3);
|
|
253
257
|
break n;
|
|
254
258
|
}
|
|
255
|
-
null !=
|
|
256
|
-
|
|
259
|
+
null != h3.componentWillUpdate && h3.componentWillUpdate(m, h3.__s, M2), x2 && null != h3.componentDidUpdate && h3.__h.push(function() {
|
|
260
|
+
h3.componentDidUpdate(v2, w2, _2);
|
|
257
261
|
});
|
|
258
262
|
}
|
|
259
|
-
if (
|
|
260
|
-
for (
|
|
261
|
-
|
|
262
|
-
|
|
263
|
+
if (h3.context = M2, h3.props = m, h3.__P = n2, h3.__e = false, $2 = l.__r, I2 = 0, x2) {
|
|
264
|
+
for (h3.state = h3.__s, h3.__d = false, $2 && $2(u3), a2 = h3.render(h3.props, h3.state, h3.context), H = 0; H < h3._sb.length; H++)
|
|
265
|
+
h3.__h.push(h3._sb[H]);
|
|
266
|
+
h3._sb = [];
|
|
263
267
|
} else
|
|
264
268
|
do {
|
|
265
|
-
|
|
266
|
-
} while (
|
|
267
|
-
|
|
269
|
+
h3.__d = false, $2 && $2(u3), a2 = h3.render(h3.props, h3.state, h3.context), h3.state = h3.__s;
|
|
270
|
+
} while (h3.__d && ++I2 < 25);
|
|
271
|
+
h3.state = h3.__s, null != h3.getChildContext && (i3 = d(d({}, i3), h3.getChildContext())), x2 && !p2 && null != h3.getSnapshotBeforeUpdate && (_2 = h3.getSnapshotBeforeUpdate(v2, w2)), S(n2, y(L2 = null != a2 && a2.type === k && null == a2.key ? a2.props.children : a2) ? L2 : [L2], u3, t2, i3, o2, r2, f3, e2, c2, s2), h3.base = u3.__e, u3.__u &= -161, h3.__h.length && f3.push(h3), g2 && (h3.__E = h3.__ = null);
|
|
268
272
|
} catch (n3) {
|
|
269
273
|
if (u3.__v = null, c2 || null != r2) {
|
|
270
274
|
for (u3.__u |= c2 ? 160 : 32; e2 && 8 === e2.nodeType && e2.nextSibling; )
|
|
@@ -388,6 +392,14 @@ var __exports__ = (() => {
|
|
|
388
392
|
return n2.__v.__b - l2.__v.__b;
|
|
389
393
|
}, P.__r = 0, e = 0, c = F(false), s = F(true), a = 0;
|
|
390
394
|
|
|
395
|
+
// src/components.tsx
|
|
396
|
+
var components_exports = {};
|
|
397
|
+
__export(components_exports, {
|
|
398
|
+
ButtonGroup: () => ButtonGroup,
|
|
399
|
+
GroupedIconButton: () => GroupedIconButton,
|
|
400
|
+
IconButton: () => IconButton
|
|
401
|
+
});
|
|
402
|
+
|
|
391
403
|
// ../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js
|
|
392
404
|
var f2 = 0;
|
|
393
405
|
var i2 = Array.isArray;
|
|
@@ -787,6 +799,176 @@ var __exports__ = (() => {
|
|
|
787
799
|
viewId: void 0
|
|
788
800
|
};
|
|
789
801
|
|
|
802
|
+
// src/widget-impl.ts
|
|
803
|
+
var import_core5 = __toESM(require_core(), 1);
|
|
804
|
+
var WidgetImpl = class {
|
|
805
|
+
constructor(props) {
|
|
806
|
+
this.id = props.id || "widget";
|
|
807
|
+
this.props = props;
|
|
808
|
+
}
|
|
809
|
+
onAdd({ deck }) {
|
|
810
|
+
this.deck = deck;
|
|
811
|
+
const { style, className } = this.props;
|
|
812
|
+
const el = this._createRootElement({
|
|
813
|
+
widgetClassName: this.className,
|
|
814
|
+
className,
|
|
815
|
+
style
|
|
816
|
+
});
|
|
817
|
+
this.element = el;
|
|
818
|
+
this.onRenderHTML();
|
|
819
|
+
return this.element;
|
|
820
|
+
}
|
|
821
|
+
onRemove() {
|
|
822
|
+
this.deck = void 0;
|
|
823
|
+
this.element = void 0;
|
|
824
|
+
}
|
|
825
|
+
setProps(props) {
|
|
826
|
+
const oldProps = this.props;
|
|
827
|
+
const el = this.element;
|
|
828
|
+
if (el) {
|
|
829
|
+
if (oldProps.className !== props.className) {
|
|
830
|
+
if (oldProps.className)
|
|
831
|
+
el.classList.remove(oldProps.className);
|
|
832
|
+
if (props.className)
|
|
833
|
+
el.classList.add(props.className);
|
|
834
|
+
}
|
|
835
|
+
if (!(0, import_core5._deepEqual)(oldProps.style, props.style, 1)) {
|
|
836
|
+
(0, import_core5._removeStyles)(el, oldProps.style);
|
|
837
|
+
(0, import_core5._applyStyles)(el, props.style);
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
Object.assign(this.props, props);
|
|
841
|
+
this.onRenderHTML();
|
|
842
|
+
}
|
|
843
|
+
_createRootElement(props) {
|
|
844
|
+
const { widgetClassName, className, style } = props;
|
|
845
|
+
const element = document.createElement("div");
|
|
846
|
+
["deck-widget", widgetClassName, className].filter((cls) => typeof cls === "string" && cls.length > 0).forEach((className2) => element.classList.add(className2));
|
|
847
|
+
(0, import_core5._applyStyles)(element, style);
|
|
848
|
+
return element;
|
|
849
|
+
}
|
|
850
|
+
};
|
|
851
|
+
WidgetImpl.defaultProps = {
|
|
852
|
+
id: "widget",
|
|
853
|
+
style: {},
|
|
854
|
+
className: ""
|
|
855
|
+
};
|
|
856
|
+
|
|
857
|
+
// src/screenshot-widget.tsx
|
|
858
|
+
var _ScreenshotWidget = class extends WidgetImpl {
|
|
859
|
+
constructor(props = {}) {
|
|
860
|
+
super({ ..._ScreenshotWidget.defaultProps, ...props });
|
|
861
|
+
this.className = "deck-widget-screenshot";
|
|
862
|
+
this.placement = "top-left";
|
|
863
|
+
this.placement = props.placement ?? this.placement;
|
|
864
|
+
}
|
|
865
|
+
setProps(props) {
|
|
866
|
+
this.placement = props.placement ?? this.placement;
|
|
867
|
+
super.setProps(props);
|
|
868
|
+
}
|
|
869
|
+
onRenderHTML() {
|
|
870
|
+
const element = this.element;
|
|
871
|
+
if (!element)
|
|
872
|
+
return;
|
|
873
|
+
B(
|
|
874
|
+
/* @__PURE__ */ u2(
|
|
875
|
+
IconButton,
|
|
876
|
+
{
|
|
877
|
+
className: "deck-widget-camera",
|
|
878
|
+
label: this.props.label,
|
|
879
|
+
onClick: this.handleClick.bind(this)
|
|
880
|
+
}
|
|
881
|
+
),
|
|
882
|
+
element
|
|
883
|
+
);
|
|
884
|
+
}
|
|
885
|
+
handleClick() {
|
|
886
|
+
if (this.props.onCapture) {
|
|
887
|
+
this.props.onCapture(this);
|
|
888
|
+
return;
|
|
889
|
+
}
|
|
890
|
+
const dataURL = this.captureScreenToDataURL(this.props.imageFormat);
|
|
891
|
+
if (dataURL) {
|
|
892
|
+
this.downloadDataURL(dataURL, this.props.filename);
|
|
893
|
+
}
|
|
894
|
+
}
|
|
895
|
+
/** @note only captures canvas contents, not HTML DOM or CSS styles */
|
|
896
|
+
captureScreenToDataURL(imageFormat) {
|
|
897
|
+
const canvas = this.deck?.getCanvas();
|
|
898
|
+
return canvas?.toDataURL(imageFormat);
|
|
899
|
+
}
|
|
900
|
+
/** Download a data URL */
|
|
901
|
+
downloadDataURL(dataURL, filename) {
|
|
902
|
+
const link = document.createElement("a");
|
|
903
|
+
link.href = dataURL;
|
|
904
|
+
link.download = filename;
|
|
905
|
+
link.click();
|
|
906
|
+
}
|
|
907
|
+
};
|
|
908
|
+
var ScreenshotWidget = _ScreenshotWidget;
|
|
909
|
+
ScreenshotWidget.defaultProps = {
|
|
910
|
+
...WidgetImpl.defaultProps,
|
|
911
|
+
id: "screenshot",
|
|
912
|
+
placement: "top-left",
|
|
913
|
+
label: "Screenshot",
|
|
914
|
+
filename: "screenshot.png",
|
|
915
|
+
imageFormat: "image/png",
|
|
916
|
+
onCapture: void 0
|
|
917
|
+
};
|
|
918
|
+
|
|
919
|
+
// src/reset-view-widget.tsx
|
|
920
|
+
var _ResetViewWidget = class extends WidgetImpl {
|
|
921
|
+
constructor(props = {}) {
|
|
922
|
+
super({ ..._ResetViewWidget.defaultProps, ...props });
|
|
923
|
+
this.className = "deck-widget-reset-view";
|
|
924
|
+
this.placement = "top-left";
|
|
925
|
+
this.placement = props.placement ?? this.placement;
|
|
926
|
+
}
|
|
927
|
+
setProps(props) {
|
|
928
|
+
this.placement = props.placement ?? this.placement;
|
|
929
|
+
super.setProps(props);
|
|
930
|
+
}
|
|
931
|
+
onRenderHTML() {
|
|
932
|
+
const element = this.element;
|
|
933
|
+
if (!element)
|
|
934
|
+
return;
|
|
935
|
+
B(
|
|
936
|
+
/* @__PURE__ */ u2(
|
|
937
|
+
IconButton,
|
|
938
|
+
{
|
|
939
|
+
className: "deck-widget-reset-focus",
|
|
940
|
+
label: this.props.label,
|
|
941
|
+
onClick: this.handleClick.bind(this)
|
|
942
|
+
}
|
|
943
|
+
),
|
|
944
|
+
element
|
|
945
|
+
);
|
|
946
|
+
}
|
|
947
|
+
handleClick() {
|
|
948
|
+
const initialViewState = this.props.initialViewState || this.deck?.props.initialViewState;
|
|
949
|
+
this.setViewState(initialViewState);
|
|
950
|
+
}
|
|
951
|
+
setViewState(viewState) {
|
|
952
|
+
const viewId = this.props.viewId || viewState?.id || "default-view";
|
|
953
|
+
const nextViewState = {
|
|
954
|
+
...viewState
|
|
955
|
+
// only works for geospatial?
|
|
956
|
+
// transitionDuration: this.props.transitionDuration,
|
|
957
|
+
// transitionInterpolator: new FlyToInterpolator()
|
|
958
|
+
};
|
|
959
|
+
this.deck._onViewStateChange({ viewId, viewState: nextViewState, interactionState: {} });
|
|
960
|
+
}
|
|
961
|
+
};
|
|
962
|
+
var ResetViewWidget = _ResetViewWidget;
|
|
963
|
+
ResetViewWidget.defaultProps = {
|
|
964
|
+
...WidgetImpl.defaultProps,
|
|
965
|
+
id: "reset-view",
|
|
966
|
+
placement: "top-left",
|
|
967
|
+
label: "Reset View",
|
|
968
|
+
initialViewState: void 0,
|
|
969
|
+
viewId: void 0
|
|
970
|
+
};
|
|
971
|
+
|
|
790
972
|
// src/themes.ts
|
|
791
973
|
var LightTheme = {
|
|
792
974
|
"--button-background": "#fff",
|
package/dist/index.cjs
CHANGED
|
@@ -26,7 +26,11 @@ __export(dist_exports, {
|
|
|
26
26
|
FullscreenWidget: () => FullscreenWidget,
|
|
27
27
|
LightGlassTheme: () => LightGlassTheme,
|
|
28
28
|
LightTheme: () => LightTheme,
|
|
29
|
-
|
|
29
|
+
ResetViewWidget: () => ResetViewWidget,
|
|
30
|
+
ScreenshotWidget: () => ScreenshotWidget,
|
|
31
|
+
ZoomWidget: () => ZoomWidget,
|
|
32
|
+
_WidgetImpl: () => WidgetImpl,
|
|
33
|
+
_components: () => components_exports
|
|
30
34
|
});
|
|
31
35
|
module.exports = __toCommonJS(dist_exports);
|
|
32
36
|
|
|
@@ -36,6 +40,12 @@ var import_core = require("@deck.gl/core");
|
|
|
36
40
|
var import_preact = require("preact");
|
|
37
41
|
|
|
38
42
|
// dist/components.js
|
|
43
|
+
var components_exports = {};
|
|
44
|
+
__export(components_exports, {
|
|
45
|
+
ButtonGroup: () => ButtonGroup,
|
|
46
|
+
GroupedIconButton: () => GroupedIconButton,
|
|
47
|
+
IconButton: () => IconButton
|
|
48
|
+
});
|
|
39
49
|
var import_jsx_runtime = require("preact/jsx-runtime");
|
|
40
50
|
var IconButton = (props) => {
|
|
41
51
|
const { className, label, onClick } = props;
|
|
@@ -359,6 +369,162 @@ ZoomWidget.defaultProps = {
|
|
|
359
369
|
viewId: void 0
|
|
360
370
|
};
|
|
361
371
|
|
|
372
|
+
// dist/screenshot-widget.js
|
|
373
|
+
var import_jsx_runtime5 = require("preact/jsx-runtime");
|
|
374
|
+
|
|
375
|
+
// dist/widget-impl.js
|
|
376
|
+
var import_core4 = require("@deck.gl/core");
|
|
377
|
+
var WidgetImpl = class {
|
|
378
|
+
constructor(props) {
|
|
379
|
+
this.id = props.id || "widget";
|
|
380
|
+
this.props = props;
|
|
381
|
+
}
|
|
382
|
+
onAdd({ deck }) {
|
|
383
|
+
this.deck = deck;
|
|
384
|
+
const { style, className } = this.props;
|
|
385
|
+
const el = this._createRootElement({
|
|
386
|
+
widgetClassName: this.className,
|
|
387
|
+
className,
|
|
388
|
+
style
|
|
389
|
+
});
|
|
390
|
+
this.element = el;
|
|
391
|
+
this.onRenderHTML();
|
|
392
|
+
return this.element;
|
|
393
|
+
}
|
|
394
|
+
onRemove() {
|
|
395
|
+
this.deck = void 0;
|
|
396
|
+
this.element = void 0;
|
|
397
|
+
}
|
|
398
|
+
setProps(props) {
|
|
399
|
+
const oldProps = this.props;
|
|
400
|
+
const el = this.element;
|
|
401
|
+
if (el) {
|
|
402
|
+
if (oldProps.className !== props.className) {
|
|
403
|
+
if (oldProps.className)
|
|
404
|
+
el.classList.remove(oldProps.className);
|
|
405
|
+
if (props.className)
|
|
406
|
+
el.classList.add(props.className);
|
|
407
|
+
}
|
|
408
|
+
if (!(0, import_core4._deepEqual)(oldProps.style, props.style, 1)) {
|
|
409
|
+
(0, import_core4._removeStyles)(el, oldProps.style);
|
|
410
|
+
(0, import_core4._applyStyles)(el, props.style);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
Object.assign(this.props, props);
|
|
414
|
+
this.onRenderHTML();
|
|
415
|
+
}
|
|
416
|
+
_createRootElement(props) {
|
|
417
|
+
const { widgetClassName, className, style } = props;
|
|
418
|
+
const element = document.createElement("div");
|
|
419
|
+
["deck-widget", widgetClassName, className].filter((cls) => typeof cls === "string" && cls.length > 0).forEach((className2) => element.classList.add(className2));
|
|
420
|
+
(0, import_core4._applyStyles)(element, style);
|
|
421
|
+
return element;
|
|
422
|
+
}
|
|
423
|
+
};
|
|
424
|
+
WidgetImpl.defaultProps = {
|
|
425
|
+
id: "widget",
|
|
426
|
+
style: {},
|
|
427
|
+
className: ""
|
|
428
|
+
};
|
|
429
|
+
|
|
430
|
+
// dist/screenshot-widget.js
|
|
431
|
+
var import_preact4 = require("preact");
|
|
432
|
+
var ScreenshotWidget = class extends WidgetImpl {
|
|
433
|
+
constructor(props = {}) {
|
|
434
|
+
super({ ...ScreenshotWidget.defaultProps, ...props });
|
|
435
|
+
this.className = "deck-widget-screenshot";
|
|
436
|
+
this.placement = "top-left";
|
|
437
|
+
this.placement = props.placement ?? this.placement;
|
|
438
|
+
}
|
|
439
|
+
setProps(props) {
|
|
440
|
+
this.placement = props.placement ?? this.placement;
|
|
441
|
+
super.setProps(props);
|
|
442
|
+
}
|
|
443
|
+
onRenderHTML() {
|
|
444
|
+
const element = this.element;
|
|
445
|
+
if (!element)
|
|
446
|
+
return;
|
|
447
|
+
(0, import_preact4.render)((0, import_jsx_runtime5.jsx)(IconButton, { className: "deck-widget-camera", label: this.props.label, onClick: this.handleClick.bind(this) }), element);
|
|
448
|
+
}
|
|
449
|
+
handleClick() {
|
|
450
|
+
if (this.props.onCapture) {
|
|
451
|
+
this.props.onCapture(this);
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
const dataURL = this.captureScreenToDataURL(this.props.imageFormat);
|
|
455
|
+
if (dataURL) {
|
|
456
|
+
this.downloadDataURL(dataURL, this.props.filename);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
/** @note only captures canvas contents, not HTML DOM or CSS styles */
|
|
460
|
+
captureScreenToDataURL(imageFormat) {
|
|
461
|
+
var _a;
|
|
462
|
+
const canvas = (_a = this.deck) == null ? void 0 : _a.getCanvas();
|
|
463
|
+
return canvas == null ? void 0 : canvas.toDataURL(imageFormat);
|
|
464
|
+
}
|
|
465
|
+
/** Download a data URL */
|
|
466
|
+
downloadDataURL(dataURL, filename) {
|
|
467
|
+
const link = document.createElement("a");
|
|
468
|
+
link.href = dataURL;
|
|
469
|
+
link.download = filename;
|
|
470
|
+
link.click();
|
|
471
|
+
}
|
|
472
|
+
};
|
|
473
|
+
ScreenshotWidget.defaultProps = {
|
|
474
|
+
...WidgetImpl.defaultProps,
|
|
475
|
+
id: "screenshot",
|
|
476
|
+
placement: "top-left",
|
|
477
|
+
label: "Screenshot",
|
|
478
|
+
filename: "screenshot.png",
|
|
479
|
+
imageFormat: "image/png",
|
|
480
|
+
onCapture: void 0
|
|
481
|
+
};
|
|
482
|
+
|
|
483
|
+
// dist/reset-view-widget.js
|
|
484
|
+
var import_jsx_runtime6 = require("preact/jsx-runtime");
|
|
485
|
+
var import_preact5 = require("preact");
|
|
486
|
+
var ResetViewWidget = class extends WidgetImpl {
|
|
487
|
+
constructor(props = {}) {
|
|
488
|
+
super({ ...ResetViewWidget.defaultProps, ...props });
|
|
489
|
+
this.className = "deck-widget-reset-view";
|
|
490
|
+
this.placement = "top-left";
|
|
491
|
+
this.placement = props.placement ?? this.placement;
|
|
492
|
+
}
|
|
493
|
+
setProps(props) {
|
|
494
|
+
this.placement = props.placement ?? this.placement;
|
|
495
|
+
super.setProps(props);
|
|
496
|
+
}
|
|
497
|
+
onRenderHTML() {
|
|
498
|
+
const element = this.element;
|
|
499
|
+
if (!element)
|
|
500
|
+
return;
|
|
501
|
+
(0, import_preact5.render)((0, import_jsx_runtime6.jsx)(IconButton, { className: "deck-widget-reset-focus", label: this.props.label, onClick: this.handleClick.bind(this) }), element);
|
|
502
|
+
}
|
|
503
|
+
handleClick() {
|
|
504
|
+
var _a;
|
|
505
|
+
const initialViewState = this.props.initialViewState || ((_a = this.deck) == null ? void 0 : _a.props.initialViewState);
|
|
506
|
+
this.setViewState(initialViewState);
|
|
507
|
+
}
|
|
508
|
+
setViewState(viewState) {
|
|
509
|
+
const viewId = this.props.viewId || (viewState == null ? void 0 : viewState.id) || "default-view";
|
|
510
|
+
const nextViewState = {
|
|
511
|
+
...viewState
|
|
512
|
+
// only works for geospatial?
|
|
513
|
+
// transitionDuration: this.props.transitionDuration,
|
|
514
|
+
// transitionInterpolator: new FlyToInterpolator()
|
|
515
|
+
};
|
|
516
|
+
this.deck._onViewStateChange({ viewId, viewState: nextViewState, interactionState: {} });
|
|
517
|
+
}
|
|
518
|
+
};
|
|
519
|
+
ResetViewWidget.defaultProps = {
|
|
520
|
+
...WidgetImpl.defaultProps,
|
|
521
|
+
id: "reset-view",
|
|
522
|
+
placement: "top-left",
|
|
523
|
+
label: "Reset View",
|
|
524
|
+
initialViewState: void 0,
|
|
525
|
+
viewId: void 0
|
|
526
|
+
};
|
|
527
|
+
|
|
362
528
|
// dist/themes.js
|
|
363
529
|
var LightTheme = {
|
|
364
530
|
"--button-background": "#fff",
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 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 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
|
-
"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"]
|
|
3
|
+
"sources": ["../src/index.ts", "../src/fullscreen-widget.tsx", "../src/components.tsx", "../src/compass-widget.tsx", "../src/zoom-widget.tsx", "../src/widget-impl.ts", "../src/screenshot-widget.tsx", "../src/reset-view-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';\nexport {ScreenshotWidget} from './screenshot-widget';\nexport {ResetViewWidget} from './reset-view-widget';\n\nexport type {FullscreenWidgetProps} from './fullscreen-widget';\nexport type {CompassWidgetProps} from './compass-widget';\nexport type {ZoomWidgetProps} from './zoom-widget';\nexport type {ScreenshotWidgetProps} from './screenshot-widget';\nexport type {ResetViewWidgetProps} from './reset-view-widget';\n\nexport type {WidgetImplProps} from './widget-impl';\nexport {WidgetImpl as _WidgetImpl} from './widget-impl';\nimport * as _components from './components';\nexport {_components};\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\n/* global document */\nimport {_deepEqual, _applyStyles, _removeStyles} from '@deck.gl/core';\nimport type {Deck, Widget} from '@deck.gl/core';\n\nexport type WidgetImplProps = {\n id?: string;\n /** CSS inline style overrides. */\n style?: Partial<CSSStyleDeclaration>;\n /** Additional CSS class. */\n className?: string;\n};\nexport abstract class WidgetImpl<PropsT extends WidgetImplProps> implements Widget<PropsT> {\n id: string;\n props: Required<PropsT>;\n\n deck?: Deck<any>;\n element?: HTMLDivElement;\n\n static defaultProps: Required<WidgetImplProps> = {\n id: 'widget',\n style: {},\n className: ''\n };\n\n abstract className: Required<string>;\n\n constructor(props: Required<PropsT>) {\n this.id = props.id || 'widget';\n this.props = props;\n }\n\n abstract onRenderHTML(): void;\n\n onAdd({deck}: {deck: Deck<any>}): HTMLDivElement {\n this.deck = deck;\n const {style, className} = this.props;\n const el = this._createRootElement({\n widgetClassName: this.className,\n className,\n style\n });\n this.element = el;\n this.onRenderHTML();\n return this.element;\n }\n\n onRemove() {\n this.deck = undefined;\n this.element = undefined;\n }\n\n setProps(props: Partial<PropsT>) {\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.onRenderHTML();\n }\n\n _createRootElement(props: {\n widgetClassName: string;\n className?: string;\n style?: Partial<CSSStyleDeclaration>;\n }) {\n const {widgetClassName, className, style} = props;\n const element = document.createElement('div');\n ['deck-widget', widgetClassName, className]\n .filter((cls): cls is string => typeof cls === 'string' && cls.length > 0)\n .forEach(className => element.classList.add(className));\n _applyStyles(element, style);\n return element;\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* global document */\nimport {WidgetImpl, WidgetImplProps} from './widget-impl';\nimport {h, render} from 'preact';\nimport {IconButton} from './components';\nimport type {WidgetPlacement} from '@deck.gl/core';\n\n/** Properties for the ScreenshotWidget */\nexport type ScreenshotWidgetProps = WidgetImplProps & {\n /** Widget positioning within the view. Default 'top-left'. */\n placement?: WidgetPlacement;\n /** Tooltip message */\n label?: string;\n /** Filename to save to */\n filename?: string;\n /** Image format */\n imageFormat?: 'image/png' | 'image/jpeg';\n /** Callback, if defined user overrides the capture logic */\n onCapture?: (widget: ScreenshotWidget) => void;\n};\n\n/**\n * A button widget that captures a screenshot of the current canvas and downloads it as a (png) file.\n * @note only captures canvas contents, not HTML DOM or CSS styles\n */\nexport class ScreenshotWidget extends WidgetImpl<ScreenshotWidgetProps> {\n static defaultProps: Required<ScreenshotWidgetProps> = {\n ...WidgetImpl.defaultProps,\n id: 'screenshot',\n placement: 'top-left',\n label: 'Screenshot',\n filename: 'screenshot.png',\n imageFormat: 'image/png',\n onCapture: undefined!\n };\n\n className = 'deck-widget-screenshot';\n placement: WidgetPlacement = 'top-left';\n\n constructor(props: ScreenshotWidgetProps = {}) {\n super({...ScreenshotWidget.defaultProps, ...props});\n this.placement = props.placement ?? this.placement;\n }\n\n setProps(props: Partial<ScreenshotWidgetProps>) {\n this.placement = props.placement ?? this.placement;\n super.setProps(props);\n }\n\n onRenderHTML() {\n const element = this.element;\n if (!element) return;\n render(\n <IconButton\n className=\"deck-widget-camera\"\n label={this.props.label}\n onClick={this.handleClick.bind(this)}\n />,\n element\n );\n }\n\n handleClick() {\n // Allow user to override the capture logic\n if (this.props.onCapture) {\n this.props.onCapture(this);\n return;\n }\n const dataURL = this.captureScreenToDataURL(this.props.imageFormat);\n if (dataURL) {\n this.downloadDataURL(dataURL, this.props.filename);\n }\n }\n\n /** @note only captures canvas contents, not HTML DOM or CSS styles */\n captureScreenToDataURL(imageFormat: string): string | undefined {\n const canvas = this.deck?.getCanvas();\n return canvas?.toDataURL(imageFormat);\n }\n\n /** Download a data URL */\n downloadDataURL(dataURL: string, filename: string): void {\n const link = document.createElement('a');\n link.href = dataURL;\n link.download = filename;\n link.click();\n }\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* global document */\nimport type {WidgetPlacement} from '@deck.gl/core';\nimport {render} from 'preact';\nimport {WidgetImpl, WidgetImplProps} from './widget-impl';\nimport {IconButton} from './components';\n\n/** @todo - is the the best we can do? */\ntype ViewState = Record<string, unknown>;\n\n/** Properties for the ResetViewWidget */\nexport type ResetViewWidgetProps = WidgetImplProps & {\n /** Widget positioning within the view. Default 'top-left'. */\n placement?: WidgetPlacement;\n /** Tooltip message */\n label?: string;\n /** The initial view state to reset the view to. Defaults to deck.props.initialViewState */\n initialViewState?: ViewState;\n /** View to interact with. Required when using multiple views. */\n viewId?: string | null;\n};\n\n/**\n * A button widget that resets the view state of deck to an initial state.\n */\nexport class ResetViewWidget extends WidgetImpl<ResetViewWidgetProps> {\n static defaultProps: Required<ResetViewWidgetProps> = {\n ...WidgetImpl.defaultProps,\n id: 'reset-view',\n placement: 'top-left',\n label: 'Reset View',\n initialViewState: undefined!,\n viewId: undefined!\n };\n\n className = 'deck-widget-reset-view';\n placement: WidgetPlacement = 'top-left';\n\n constructor(props: ResetViewWidgetProps = {}) {\n super({...ResetViewWidget.defaultProps, ...props});\n this.placement = props.placement ?? this.placement;\n }\n\n setProps(props: Partial<ResetViewWidgetProps>) {\n this.placement = props.placement ?? this.placement;\n super.setProps(props);\n }\n\n onRenderHTML() {\n const element = this.element;\n if (!element) return;\n render(\n <IconButton\n className=\"deck-widget-reset-focus\"\n label={this.props.label}\n onClick={this.handleClick.bind(this)}\n />,\n element\n );\n }\n\n handleClick() {\n const initialViewState = this.props.initialViewState || this.deck?.props.initialViewState;\n this.setViewState(initialViewState);\n }\n\n setViewState(viewState: ViewState) {\n const viewId = this.props.viewId || viewState?.id || 'default-view';\n const nextViewState = {\n ...viewState\n // only works for geospatial?\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", "// 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
|
+
"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", "import_core", "className", "import_preact", "_jsx", "import_preact", "_jsx"]
|
|
7
7
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
export { FullscreenWidget } from "./fullscreen-widget.js";
|
|
2
2
|
export { CompassWidget } from "./compass-widget.js";
|
|
3
3
|
export { ZoomWidget } from "./zoom-widget.js";
|
|
4
|
+
export { ScreenshotWidget } from "./screenshot-widget.js";
|
|
5
|
+
export { ResetViewWidget } from "./reset-view-widget.js";
|
|
4
6
|
export type { FullscreenWidgetProps } from "./fullscreen-widget.js";
|
|
5
7
|
export type { CompassWidgetProps } from "./compass-widget.js";
|
|
6
8
|
export type { ZoomWidgetProps } from "./zoom-widget.js";
|
|
9
|
+
export type { ScreenshotWidgetProps } from "./screenshot-widget.js";
|
|
10
|
+
export type { ResetViewWidgetProps } from "./reset-view-widget.js";
|
|
11
|
+
export type { WidgetImplProps } from "./widget-impl.js";
|
|
12
|
+
export { WidgetImpl as _WidgetImpl } from "./widget-impl.js";
|
|
13
|
+
import * as _components from "./components.js";
|
|
14
|
+
export { _components };
|
|
7
15
|
export * from "./themes.js";
|
|
8
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,gBAAgB,EAAC,+BAA4B;AACrD,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,UAAU,EAAC,yBAAsB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,gBAAgB,EAAC,+BAA4B;AACrD,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,UAAU,EAAC,yBAAsB;AACzC,OAAO,EAAC,gBAAgB,EAAC,+BAA4B;AACrD,OAAO,EAAC,eAAe,EAAC,+BAA4B;AAEpD,YAAY,EAAC,qBAAqB,EAAC,+BAA4B;AAC/D,YAAY,EAAC,kBAAkB,EAAC,4BAAyB;AACzD,YAAY,EAAC,eAAe,EAAC,yBAAsB;AACnD,YAAY,EAAC,qBAAqB,EAAC,+BAA4B;AAC/D,YAAY,EAAC,oBAAoB,EAAC,+BAA4B;AAE9D,YAAY,EAAC,eAAe,EAAC,yBAAsB;AACnD,OAAO,EAAC,UAAU,IAAI,WAAW,EAAC,yBAAsB;AACxD,OAAO,KAAK,WAAW,wBAAqB;AAC5C,OAAO,EAAC,WAAW,EAAC,CAAC;AAErB,4BAAyB"}
|