@deck.gl/widgets 9.2.11 → 9.3.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compass-widget.js +5 -5
- package/dist/compass-widget.js.map +1 -1
- package/dist/context-menu-widget.d.ts +27 -20
- package/dist/context-menu-widget.d.ts.map +1 -1
- package/dist/context-menu-widget.js +45 -48
- package/dist/context-menu-widget.js.map +1 -1
- package/dist/dist.dev.js +3114 -869
- package/dist/fullscreen-widget.js +1 -1
- package/dist/fullscreen-widget.js.map +1 -1
- package/dist/geocoder-widget.d.ts +2 -4
- package/dist/geocoder-widget.d.ts.map +1 -1
- package/dist/geocoder-widget.js +16 -20
- package/dist/geocoder-widget.js.map +1 -1
- package/dist/gimbal-widget.d.ts +0 -3
- package/dist/gimbal-widget.d.ts.map +1 -1
- package/dist/gimbal-widget.js +4 -22
- package/dist/gimbal-widget.js.map +1 -1
- package/dist/icon-widget.d.ts +28 -0
- package/dist/icon-widget.d.ts.map +1 -0
- package/dist/icon-widget.js +35 -0
- package/dist/icon-widget.js.map +1 -0
- package/dist/index.cjs +1271 -561
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +16 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -10
- package/dist/index.js.map +1 -1
- package/dist/info-widget.d.ts +39 -17
- package/dist/info-widget.d.ts.map +1 -1
- package/dist/info-widget.js +46 -130
- package/dist/info-widget.js.map +1 -1
- package/dist/lib/components/dropdown-menu.d.ts +12 -5
- package/dist/lib/components/dropdown-menu.d.ts.map +1 -1
- package/dist/lib/components/dropdown-menu.js +20 -11
- package/dist/lib/components/dropdown-menu.js.map +1 -1
- package/dist/lib/components/icon-button.d.ts +3 -0
- package/dist/lib/components/icon-button.d.ts.map +1 -1
- package/dist/lib/components/icon-button.js +10 -2
- package/dist/lib/components/icon-button.js.map +1 -1
- package/dist/lib/components/popover.d.ts +30 -0
- package/dist/lib/components/popover.d.ts.map +1 -0
- package/dist/lib/components/popover.js +93 -0
- package/dist/lib/components/popover.js.map +1 -0
- package/dist/lib/components/range-input.d.ts +26 -0
- package/dist/lib/components/range-input.d.ts.map +1 -0
- package/dist/lib/components/range-input.js +261 -0
- package/dist/lib/components/range-input.js.map +1 -0
- package/dist/lib/components/user-content.d.ts +8 -0
- package/dist/lib/components/user-content.d.ts.map +1 -0
- package/dist/lib/components/user-content.js +15 -0
- package/dist/lib/components/user-content.js.map +1 -0
- package/dist/lib/data-url.d.ts +5 -0
- package/dist/lib/data-url.d.ts.map +1 -0
- package/dist/lib/data-url.js +7 -0
- package/dist/lib/data-url.js.map +1 -0
- package/dist/popup-widget.d.ts +64 -0
- package/dist/popup-widget.d.ts.map +1 -0
- package/dist/popup-widget.js +76 -0
- package/dist/popup-widget.js.map +1 -0
- package/dist/reset-view-widget.d.ts +1 -1
- package/dist/reset-view-widget.d.ts.map +1 -1
- package/dist/reset-view-widget.js +12 -11
- package/dist/reset-view-widget.js.map +1 -1
- package/dist/scrollbar-widget.d.ts +68 -0
- package/dist/scrollbar-widget.d.ts.map +1 -0
- package/dist/scrollbar-widget.js +181 -0
- package/dist/scrollbar-widget.js.map +1 -0
- package/dist/selector-widget.d.ts +44 -0
- package/dist/selector-widget.d.ts.map +1 -0
- package/dist/selector-widget.js +64 -0
- package/dist/selector-widget.js.map +1 -0
- package/dist/splitter-widget.d.ts +52 -11
- package/dist/splitter-widget.d.ts.map +1 -1
- package/dist/splitter-widget.js +177 -76
- package/dist/splitter-widget.js.map +1 -1
- package/dist/stats-widget.d.ts +6 -1
- package/dist/stats-widget.d.ts.map +1 -1
- package/dist/stats-widget.js +39 -10
- package/dist/stats-widget.js.map +1 -1
- package/dist/stylesheet.css +291 -39
- package/dist/theme-widget.d.ts.map +1 -1
- package/dist/theme-widget.js +7 -5
- package/dist/theme-widget.js.map +1 -1
- package/dist/themes.d.ts +30 -0
- package/dist/themes.d.ts.map +1 -1
- package/dist/themes.js +28 -4
- package/dist/themes.js.map +1 -1
- package/dist/timeline-widget.d.ts +25 -6
- package/dist/timeline-widget.d.ts.map +1 -1
- package/dist/timeline-widget.js +51 -18
- package/dist/timeline-widget.js.map +1 -1
- package/dist/toggle-widget.d.ts +38 -0
- package/dist/toggle-widget.d.ts.map +1 -0
- package/dist/toggle-widget.js +47 -0
- package/dist/toggle-widget.js.map +1 -0
- package/dist/zoom-widget.d.ts +2 -8
- package/dist/zoom-widget.d.ts.map +1 -1
- package/dist/zoom-widget.js +23 -18
- package/dist/zoom-widget.js.map +1 -1
- package/dist.min.js +2 -2
- package/package.json +4 -3
- package/src/compass-widget.tsx +5 -5
- package/src/context-menu-widget.tsx +88 -78
- package/src/fullscreen-widget.tsx +1 -1
- package/src/geocoder-widget.tsx +17 -24
- package/src/gimbal-widget.tsx +4 -26
- package/src/icon-widget.tsx +69 -0
- package/src/index.ts +22 -15
- package/src/info-widget.tsx +100 -157
- package/src/lib/components/dropdown-menu.tsx +58 -29
- package/src/lib/components/icon-button.tsx +15 -3
- package/src/lib/components/popover.tsx +167 -0
- package/src/lib/components/range-input.tsx +432 -0
- package/src/lib/components/user-content.tsx +30 -0
- package/src/lib/data-url.ts +5 -0
- package/src/popup-widget.tsx +170 -0
- package/src/reset-view-widget.tsx +12 -11
- package/src/scrollbar-widget.tsx +288 -0
- package/src/selector-widget.tsx +111 -0
- package/src/splitter-widget.tsx +281 -96
- package/src/stats-widget.tsx +59 -12
- package/src/stylesheet.css +291 -39
- package/src/theme-widget.tsx +7 -5
- package/src/themes.ts +35 -4
- package/src/timeline-widget.tsx +103 -33
- package/src/toggle-widget.tsx +101 -0
- package/src/zoom-widget.tsx +25 -21
- package/dist/fps-widget.d.ts +0 -28
- package/dist/fps-widget.d.ts.map +0 -1
- package/dist/fps-widget.js +0 -51
- package/dist/fps-widget.js.map +0 -1
- package/dist/lib/components/grouped-icon-button.d.ts +0 -10
- package/dist/lib/components/grouped-icon-button.d.ts.map +0 -1
- package/dist/lib/components/grouped-icon-button.js +0 -7
- package/dist/lib/components/grouped-icon-button.js.map +0 -1
- package/dist/lib/components/icon-menu.d.ts +0 -16
- package/dist/lib/components/icon-menu.d.ts.map +0 -1
- package/dist/lib/components/icon-menu.js +0 -34
- package/dist/lib/components/icon-menu.js.map +0 -1
- package/dist/lib/components/simple-menu.d.ts +0 -16
- package/dist/lib/components/simple-menu.d.ts.map +0 -1
- package/dist/lib/components/simple-menu.js +0 -30
- package/dist/lib/components/simple-menu.js.map +0 -1
- package/dist/view-selector-widget.d.ts +0 -35
- package/dist/view-selector-widget.d.ts.map +0 -1
- package/dist/view-selector-widget.js +0 -63
- package/dist/view-selector-widget.js.map +0 -1
- package/src/fps-widget.tsx +0 -77
- package/src/lib/components/grouped-icon-button.tsx +0 -27
- package/src/lib/components/icon-menu.tsx +0 -71
- package/src/lib/components/simple-menu.tsx +0 -52
- package/src/view-selector-widget.tsx +0 -151
package/dist/compass-widget.js
CHANGED
|
@@ -18,7 +18,7 @@ export class CompassWidget extends Widget {
|
|
|
18
18
|
super.setProps(props);
|
|
19
19
|
}
|
|
20
20
|
onRenderHTML(rootElement) {
|
|
21
|
-
const viewId = this.viewId || Object.values(this.viewports)[0]?.id
|
|
21
|
+
const viewId = this.viewId || Object.values(this.viewports)[0]?.id;
|
|
22
22
|
const widgetViewport = this.viewports[viewId];
|
|
23
23
|
const [rz, rx] = this.getRotation(widgetViewport);
|
|
24
24
|
const ui = (_jsx("div", { className: "deck-widget-button", style: { perspective: 100 }, children: _jsx("button", { type: "button", onClick: () => {
|
|
@@ -45,17 +45,17 @@ export class CompassWidget extends Widget {
|
|
|
45
45
|
return [0, 0];
|
|
46
46
|
}
|
|
47
47
|
handleCompassReset(viewport) {
|
|
48
|
-
const viewId = this.viewId || viewport.id
|
|
48
|
+
const viewId = this.viewId || viewport.id;
|
|
49
49
|
if (viewport instanceof WebMercatorViewport) {
|
|
50
|
+
const viewState = this.getViewState(viewId);
|
|
50
51
|
const nextViewState = {
|
|
51
|
-
...
|
|
52
|
+
...viewState,
|
|
52
53
|
bearing: 0,
|
|
53
54
|
...(this.getRotation(viewport)[0] === 0 ? { pitch: 0 } : {}),
|
|
54
55
|
transitionDuration: this.props.transitionDuration,
|
|
55
56
|
transitionInterpolator: new FlyToInterpolator()
|
|
56
57
|
};
|
|
57
|
-
|
|
58
|
-
this.deck._onViewStateChange({ viewId, viewState: nextViewState, interactionState: {} });
|
|
58
|
+
this.setViewState(viewId, nextViewState);
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compass-widget.js","sourceRoot":"","sources":["../src/compass-widget.tsx"],"names":[],"mappings":";AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AAE7F,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAa9B,MAAM,OAAO,aAAc,SAAQ,MAA0B;IAc3D,YAAY,QAA4B,EAAE;QACxC,KAAK,CAAC,KAAK,CAAC,CAAC;QALf,cAAS,GAAG,qBAAqB,CAAC;QAClC,cAAS,GAAoB,UAAU,CAAC;QACxC,cAAS,GAA6B,EAAE,CAAC;QAIvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,KAAkC;QACzC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QAC1C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,WAAwB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"compass-widget.js","sourceRoot":"","sources":["../src/compass-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,44 @@
|
|
|
1
1
|
import { Widget } from '@deck.gl/core';
|
|
2
2
|
import type { Deck, PickingInfo, WidgetProps } from '@deck.gl/core';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
key: string;
|
|
6
|
-
};
|
|
3
|
+
import { type MenuItem } from "./lib/components/dropdown-menu.js";
|
|
4
|
+
import { type PopoverProps } from "./lib/components/popover.js";
|
|
7
5
|
export type ContextMenuWidgetProps = WidgetProps & {
|
|
8
6
|
/** View to attach to and interact with. Required when using multiple views. */
|
|
9
7
|
viewId?: string | null;
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
/** Menu items for the menu. */
|
|
9
|
+
menuItems?: MenuItem[];
|
|
10
|
+
/** Callback to provide menu items for the menu given the picked object. Overrides `menuItems` */
|
|
11
|
+
getMenuItems?: (info: PickingInfo, widget: ContextMenuWidget) => MenuItem[] | null;
|
|
12
|
+
/** Callback when a menu item is selected */
|
|
13
|
+
onMenuItemSelected?: (value: string, pickInfo: PickingInfo | null) => void;
|
|
14
|
+
/** Position menu relative to the anchor.
|
|
15
|
+
* @default 'bottom-start'
|
|
16
|
+
*/
|
|
17
|
+
placement?: PopoverProps['placement'];
|
|
18
|
+
/** Pixel offset
|
|
19
|
+
* @default 10
|
|
20
|
+
*/
|
|
21
|
+
offset?: PopoverProps['offset'];
|
|
22
|
+
/**
|
|
23
|
+
* Show an arrow pointing at the anchor. Optionally accepts a pixel size.
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
26
|
+
arrow?: PopoverProps['arrow'];
|
|
23
27
|
};
|
|
24
28
|
export declare class ContextMenuWidget extends Widget<ContextMenuWidgetProps> {
|
|
25
29
|
static defaultProps: Required<ContextMenuWidgetProps>;
|
|
26
30
|
className: string;
|
|
27
31
|
placement: "fill";
|
|
28
|
-
|
|
32
|
+
menu: {
|
|
33
|
+
items: MenuItem[];
|
|
34
|
+
pickInfo: PickingInfo;
|
|
35
|
+
} | null;
|
|
29
36
|
constructor(props: ContextMenuWidgetProps);
|
|
30
37
|
onAdd({ deck }: {
|
|
31
38
|
deck: Deck<any>;
|
|
32
|
-
}):
|
|
39
|
+
}): void;
|
|
40
|
+
handleContextMenu(srcEvent: MouseEvent): void;
|
|
33
41
|
onRenderHTML(rootElement: HTMLElement): void;
|
|
34
|
-
handleContextMenu(srcEvent: MouseEvent): boolean;
|
|
35
42
|
hide(): void;
|
|
36
43
|
}
|
|
37
44
|
//# sourceMappingURL=context-menu-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-menu-widget.d.ts","sourceRoot":"","sources":["../src/context-menu-widget.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"context-menu-widget.d.ts","sourceRoot":"","sources":["../src/context-menu-widget.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAElE,OAAO,EAAa,KAAK,QAAQ,EAAC,0CAAuC;AACzE,OAAO,EAAU,KAAK,YAAY,EAAC,oCAAiC;AAEpE,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG;IACjD,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,iGAAiG;IACjG,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,KAAK,QAAQ,EAAE,GAAG,IAAI,CAAC;IACnF,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3E;;OAEG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,MAAM,CAAC,sBAAsB,CAAC;IACnE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAUnD;IAEF,SAAS,SAA8B;IACvC,SAAS,SAAmB;IAE5B,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,QAAQ,EAAE,WAAW,CAAC;KACvB,GAAG,IAAI,CAAQ;gBAEJ,KAAK,EAAE,sBAAsB;IAKzC,KAAK,CAAC,EAAC,IAAI,EAAC,EAAE;QAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;KAAC;IAI/B,iBAAiB,CAAC,QAAQ,EAAE,UAAU;IA0BtC,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAkC5C,IAAI;CAIL"}
|
|
@@ -5,74 +5,71 @@ import { jsx as _jsx } from "preact/jsx-runtime";
|
|
|
5
5
|
/* global document */
|
|
6
6
|
import { Widget } from '@deck.gl/core';
|
|
7
7
|
import { render } from 'preact';
|
|
8
|
-
import { SimpleMenu } from "./lib/components/
|
|
9
|
-
|
|
10
|
-
const MOUSE_BUTTON_RIGHT = 2;
|
|
11
|
-
/** A name for the legacy MouseEvent.which value that corresponds to the right-mouse button. In older browsers, the check is: if (event.which === 3) */
|
|
12
|
-
const MOUSE_WHICH_RIGHT = 3;
|
|
8
|
+
import { SimpleMenu } from "./lib/components/dropdown-menu.js";
|
|
9
|
+
import { Popover } from "./lib/components/popover.js";
|
|
13
10
|
export class ContextMenuWidget extends Widget {
|
|
14
11
|
constructor(props) {
|
|
15
12
|
super(props);
|
|
16
13
|
this.className = 'deck-widget-context-menu';
|
|
17
14
|
this.placement = 'fill';
|
|
18
|
-
this.
|
|
19
|
-
this.pickInfo = null;
|
|
15
|
+
this.menu = null;
|
|
20
16
|
this.setProps(this.props);
|
|
21
17
|
}
|
|
22
18
|
onAdd({ deck }) {
|
|
23
|
-
const element = document.createElement('div');
|
|
24
|
-
element.classList.add('deck-widget', 'deck-widget-context-menu');
|
|
25
|
-
const style = {
|
|
26
|
-
margin: '0px',
|
|
27
|
-
top: '0px',
|
|
28
|
-
left: '0px',
|
|
29
|
-
position: 'absolute',
|
|
30
|
-
pointerEvents: 'auto'
|
|
31
|
-
};
|
|
32
|
-
Object.entries(style).forEach(([key, value]) => element.style.setProperty(key, value));
|
|
33
|
-
deck.getCanvas()?.addEventListener('click', () => this.hide());
|
|
34
19
|
deck.getCanvas()?.addEventListener('contextmenu', event => this.handleContextMenu(event));
|
|
35
|
-
return element;
|
|
36
|
-
}
|
|
37
|
-
onRenderHTML(rootElement) {
|
|
38
|
-
const { visible, position, menuItems } = this.props;
|
|
39
|
-
const ui = visible && menuItems.length ? (_jsx(SimpleMenu, { menuItems: menuItems, onItemSelected: key => this.props.onMenuItemSelected(key, this.pickInfo), position: position, style: { pointerEvents: 'auto' } })) : null;
|
|
40
|
-
render(ui, rootElement);
|
|
41
20
|
}
|
|
42
21
|
handleContextMenu(srcEvent) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
22
|
+
const targetRect = srcEvent.target.getBoundingClientRect();
|
|
23
|
+
const x = srcEvent.clientX - targetRect.x;
|
|
24
|
+
const y = srcEvent.clientY - targetRect.y;
|
|
25
|
+
const pickInfo = this.deck?.pickObject({ x, y }) || {
|
|
26
|
+
x,
|
|
27
|
+
y,
|
|
28
|
+
picked: false,
|
|
29
|
+
layer: null,
|
|
30
|
+
color: null,
|
|
31
|
+
index: -1,
|
|
32
|
+
pixelRatio: 1
|
|
33
|
+
};
|
|
34
|
+
const menuItems = this.props.getMenuItems?.(pickInfo, this) || this.props.menuItems;
|
|
35
|
+
this.menu =
|
|
36
|
+
menuItems.length > 0
|
|
37
|
+
? {
|
|
38
|
+
items: menuItems,
|
|
39
|
+
pickInfo
|
|
40
|
+
}
|
|
41
|
+
: null;
|
|
42
|
+
srcEvent.preventDefault();
|
|
43
|
+
this.updateHTML();
|
|
44
|
+
}
|
|
45
|
+
onRenderHTML(rootElement) {
|
|
46
|
+
if (!this.menu) {
|
|
47
|
+
render(null, rootElement);
|
|
48
|
+
return;
|
|
60
49
|
}
|
|
61
|
-
|
|
50
|
+
const { items, pickInfo } = this.menu;
|
|
51
|
+
const style = {
|
|
52
|
+
pointerEvents: 'auto',
|
|
53
|
+
position: 'static',
|
|
54
|
+
...this.props.style
|
|
55
|
+
};
|
|
56
|
+
const ui = (_jsx(Popover, { x: pickInfo.x, y: pickInfo.y, placement: this.props.placement, arrow: this.props.arrow, arrowColor: "var(--menu-background, #fff)", offset: this.props.offset, children: _jsx(SimpleMenu, { menuItems: items, onSelect: value => this.props.onMenuItemSelected(value, pickInfo), style: style, isOpen: true, onClose: () => this.hide() }) }));
|
|
57
|
+
render(ui, rootElement);
|
|
62
58
|
}
|
|
63
59
|
hide() {
|
|
64
|
-
this.
|
|
60
|
+
this.menu = null;
|
|
61
|
+
this.updateHTML();
|
|
65
62
|
}
|
|
66
63
|
}
|
|
67
64
|
ContextMenuWidget.defaultProps = {
|
|
68
65
|
...Widget.defaultProps,
|
|
69
66
|
id: 'context',
|
|
70
67
|
viewId: null,
|
|
71
|
-
visible: false,
|
|
72
|
-
position: { x: 0, y: 0 },
|
|
73
|
-
getMenuItems: undefined,
|
|
74
68
|
menuItems: [],
|
|
75
|
-
|
|
76
|
-
onMenuItemSelected: (
|
|
69
|
+
getMenuItems: undefined,
|
|
70
|
+
onMenuItemSelected: () => { },
|
|
71
|
+
placement: 'bottom-start',
|
|
72
|
+
offset: 10,
|
|
73
|
+
arrow: false
|
|
77
74
|
};
|
|
78
75
|
//# sourceMappingURL=context-menu-widget.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-menu-widget.js","sourceRoot":"","sources":["../src/context-menu-widget.tsx"],"names":[],"mappings":";AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,qBAAqB;AACrB,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAErC,OAAO,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"context-menu-widget.js","sourceRoot":"","sources":["../src/context-menu-widget.tsx"],"names":[],"mappings":"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"}
|