@honua/app-platform 0.1.12 → 0.1.14
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/columnar/apache-arrow.d.ts +17 -0
- package/columnar/apache-arrow.d.ts.map +1 -0
- package/columnar/apache-arrow.js +1036 -0
- package/columnar/batch-cache-conformance.d.ts +66 -0
- package/columnar/batch-cache-conformance.d.ts.map +1 -0
- package/columnar/batch-cache-conformance.js +317 -0
- package/columnar/batch-cache-indexeddb.d.ts +31 -0
- package/columnar/batch-cache-indexeddb.d.ts.map +1 -0
- package/columnar/batch-cache-indexeddb.js +148 -0
- package/columnar/batch-cache.d.ts +298 -0
- package/columnar/batch-cache.d.ts.map +1 -0
- package/columnar/batch-cache.js +757 -0
- package/columnar/geoarrow-aggregate.d.ts +178 -0
- package/columnar/geoarrow-aggregate.d.ts.map +1 -0
- package/columnar/geoarrow-aggregate.js +976 -0
- package/columnar/geoarrow-patch.d.ts +382 -0
- package/columnar/geoarrow-patch.d.ts.map +1 -0
- package/columnar/geoarrow-patch.js +1656 -0
- package/columnar/geoarrow-reproject.d.ts +22 -0
- package/columnar/geoarrow-reproject.d.ts.map +1 -0
- package/columnar/geoarrow-reproject.js +119 -0
- package/columnar/geoarrow-serialization.d.ts +68 -0
- package/columnar/geoarrow-serialization.d.ts.map +1 -0
- package/columnar/geoarrow-serialization.js +331 -0
- package/columnar/geoarrow-types.d.ts +271 -0
- package/columnar/geoarrow-types.d.ts.map +1 -0
- package/columnar/geoarrow-types.js +15 -0
- package/columnar/geoarrow.d.ts +52 -0
- package/columnar/geoarrow.d.ts.map +1 -0
- package/columnar/geoarrow.js +1469 -0
- package/columnar/index.d.ts +43 -0
- package/columnar/index.d.ts.map +1 -0
- package/columnar/index.js +29 -0
- package/columnar/operators.d.ts +70 -0
- package/columnar/operators.d.ts.map +1 -0
- package/columnar/operators.js +307 -0
- package/columnar/result.d.ts +369 -0
- package/columnar/result.d.ts.map +1 -0
- package/columnar/result.js +815 -0
- package/columnar/telemetry.d.ts +152 -0
- package/columnar/telemetry.d.ts.map +1 -0
- package/columnar/telemetry.js +265 -0
- package/columnar/transfer.d.ts +28 -0
- package/columnar/transfer.d.ts.map +1 -0
- package/columnar/transfer.js +669 -0
- package/columnar/types.d.ts +175 -0
- package/columnar/types.d.ts.map +1 -0
- package/columnar/types.js +22 -0
- package/columnar/worker.d.ts +157 -0
- package/columnar/worker.d.ts.map +1 -0
- package/columnar/worker.js +1059 -0
- package/contract/pmtiles.d.ts +6 -5
- package/contract/pmtiles.d.ts.map +1 -1
- package/contract/pmtiles.js +30 -5
- package/contract/source.d.ts.map +1 -1
- package/contract/source.js +11 -8
- package/controls/catalog.d.ts.map +1 -1
- package/controls/catalog.js +110 -0
- package/controls/index.d.ts +1 -1
- package/controls/index.js +1 -1
- package/controls/types.d.ts +1 -1
- package/controls/types.js +1 -1
- package/core/client.d.ts.map +1 -1
- package/core/client.js +87 -19
- package/core/deprecation-notice.d.ts +28 -0
- package/core/deprecation-notice.d.ts.map +1 -0
- package/core/deprecation-notice.js +22 -0
- package/core/esri-geojson.d.ts.map +1 -1
- package/core/esri-geojson.js +14 -8
- package/core/optional-grpc-peer.d.ts +15 -0
- package/core/optional-grpc-peer.d.ts.map +1 -0
- package/core/optional-grpc-peer.js +60 -0
- package/esri-compat/basemap-gallery.d.ts +2 -0
- package/esri-compat/basemap-gallery.d.ts.map +1 -1
- package/esri-compat/basemap-gallery.js +12 -0
- package/esri-compat/basemap.d.ts +4 -0
- package/esri-compat/basemap.d.ts.map +1 -1
- package/esri-compat/basemap.js +70 -0
- package/esri-compat/bookmarks.d.ts +2 -0
- package/esri-compat/bookmarks.d.ts.map +1 -1
- package/esri-compat/bookmarks.js +12 -0
- package/esri-compat/controls.d.ts +18 -0
- package/esri-compat/controls.d.ts.map +1 -1
- package/esri-compat/controls.js +120 -57
- package/esri-compat/directions.d.ts +4 -0
- package/esri-compat/directions.d.ts.map +1 -1
- package/esri-compat/directions.js +30 -20
- package/esri-compat/editor.d.ts +4 -0
- package/esri-compat/editor.d.ts.map +1 -1
- package/esri-compat/editor.js +16 -0
- package/esri-compat/esri-config.d.ts +2 -1
- package/esri-compat/esri-config.d.ts.map +1 -1
- package/esri-compat/feature-effect.d.ts +23 -0
- package/esri-compat/feature-effect.d.ts.map +1 -0
- package/esri-compat/feature-effect.js +12 -0
- package/esri-compat/feature-form.d.ts +6 -0
- package/esri-compat/feature-form.d.ts.map +1 -1
- package/esri-compat/feature-form.js +63 -0
- package/esri-compat/feature-layer.d.ts +21 -2
- package/esri-compat/feature-layer.d.ts.map +1 -1
- package/esri-compat/feature-layer.js +172 -1
- package/esri-compat/feature-table.d.ts +5 -0
- package/esri-compat/feature-table.d.ts.map +1 -1
- package/esri-compat/feature-table.js +23 -0
- package/esri-compat/identity-manager.d.ts +1 -1
- package/esri-compat/identity-manager.js +1 -1
- package/esri-compat/legend.d.ts +2 -0
- package/esri-compat/legend.d.ts.map +1 -1
- package/esri-compat/legend.js +98 -0
- package/esri-compat/locator.d.ts +1 -1
- package/esri-compat/locator.js +1 -1
- package/esri-compat/map-view-mount.d.ts +1 -0
- package/esri-compat/map-view-mount.d.ts.map +1 -1
- package/esri-compat/map-view-mount.js +46 -25
- package/esri-compat/map-view.d.ts +13 -0
- package/esri-compat/map-view.d.ts.map +1 -1
- package/esri-compat/map-view.js +94 -8
- package/esri-compat/map.d.ts +5 -1
- package/esri-compat/map.d.ts.map +1 -1
- package/esri-compat/map.js +10 -0
- package/esri-compat/measurement.d.ts +2 -0
- package/esri-compat/measurement.d.ts.map +1 -1
- package/esri-compat/measurement.js +14 -0
- package/esri-compat/point.d.ts +7 -0
- package/esri-compat/point.d.ts.map +1 -1
- package/esri-compat/point.js +33 -3
- package/esri-compat/popup.d.ts +2 -0
- package/esri-compat/popup.d.ts.map +1 -1
- package/esri-compat/popup.js +12 -0
- package/esri-compat/portal.d.ts +1 -1
- package/esri-compat/portal.js +1 -1
- package/esri-compat/print.d.ts +3 -0
- package/esri-compat/print.d.ts.map +1 -1
- package/esri-compat/print.js +15 -0
- package/esri-compat/search.d.ts +4 -0
- package/esri-compat/search.d.ts.map +1 -1
- package/esri-compat/search.js +25 -28
- package/esri-compat/sketch.d.ts +2 -0
- package/esri-compat/sketch.d.ts.map +1 -1
- package/esri-compat/sketch.js +12 -0
- package/esri-compat/widget-host.d.ts +46 -17
- package/esri-compat/widget-host.d.ts.map +1 -1
- package/esri-compat/widget-host.js +84 -20
- package/esri-compat/widget-shell-hosts.d.ts +61 -0
- package/esri-compat/widget-shell-hosts.d.ts.map +1 -0
- package/esri-compat/widget-shell-hosts.js +76 -0
- package/kernel/renderer.d.ts +82 -0
- package/kernel/renderer.js +1 -0
- package/offline/conflict-resolution.d.ts +183 -0
- package/offline/conflict-resolution.d.ts.map +1 -0
- package/offline/conflict-resolution.js +286 -0
- package/offline/credential-screen.d.ts +34 -0
- package/offline/credential-screen.d.ts.map +1 -0
- package/offline/credential-screen.js +78 -0
- package/offline/digest.d.ts +15 -0
- package/offline/digest.d.ts.map +1 -0
- package/offline/digest.js +58 -0
- package/offline/edit-queue.d.ts +403 -0
- package/offline/edit-queue.d.ts.map +1 -0
- package/offline/edit-queue.js +1807 -0
- package/offline/edit-replay.d.ts +116 -0
- package/offline/edit-replay.d.ts.map +1 -0
- package/offline/edit-replay.js +392 -0
- package/offline/fetch-handler.d.ts +12 -0
- package/offline/fetch-handler.d.ts.map +1 -0
- package/offline/fetch-handler.js +65 -0
- package/offline/index.d.ts +52 -0
- package/offline/index.d.ts.map +1 -0
- package/offline/index.js +34 -0
- package/offline/indexeddb.d.ts +135 -0
- package/offline/indexeddb.d.ts.map +1 -0
- package/offline/indexeddb.js +888 -0
- package/offline/memory-store.d.ts +17 -0
- package/offline/memory-store.d.ts.map +1 -0
- package/offline/memory-store.js +183 -0
- package/offline/quota.d.ts +161 -0
- package/offline/quota.d.ts.map +1 -0
- package/offline/quota.js +370 -0
- package/offline/read-gate.d.ts +175 -0
- package/offline/read-gate.d.ts.map +1 -0
- package/offline/read-gate.js +252 -0
- package/offline/read-resource.d.ts +99 -0
- package/offline/read-resource.d.ts.map +1 -0
- package/offline/read-resource.js +156 -0
- package/offline/read.d.ts +50 -0
- package/offline/read.d.ts.map +1 -0
- package/offline/read.js +65 -0
- package/offline/region.d.ts +29 -0
- package/offline/region.d.ts.map +1 -0
- package/offline/region.js +1007 -0
- package/offline/replay-conflict.d.ts +183 -0
- package/offline/replay-conflict.d.ts.map +1 -0
- package/offline/replay-conflict.js +482 -0
- package/offline/selection.d.ts +140 -0
- package/offline/selection.d.ts.map +1 -0
- package/offline/selection.js +391 -0
- package/offline/snapshot.d.ts +132 -0
- package/offline/snapshot.d.ts.map +1 -0
- package/offline/snapshot.js +312 -0
- package/offline/status.d.ts +136 -0
- package/offline/status.d.ts.map +1 -0
- package/offline/status.js +479 -0
- package/offline/store-conformance.d.ts +48 -0
- package/offline/store-conformance.d.ts.map +1 -0
- package/offline/store-conformance.js +233 -0
- package/offline/tile-protocol.d.ts +81 -0
- package/offline/tile-protocol.d.ts.map +1 -0
- package/offline/tile-protocol.js +119 -0
- package/offline/types.d.ts +349 -0
- package/offline/types.d.ts.map +1 -0
- package/offline/types.js +75 -0
- package/package.json +14 -2
- package/realtime/odata-delta.d.ts +1 -1
- package/realtime/odata-delta.d.ts.map +1 -1
- package/realtime/odata-delta.js +38 -10
- package/scene-workspace/index.d.ts +2 -2
- package/scene-workspace/index.d.ts.map +1 -1
- package/scene-workspace/index.js +1 -1
- package/scene-workspace/scene-discovery.d.ts +111 -91
- package/scene-workspace/scene-discovery.d.ts.map +1 -1
- package/scene-workspace/scene-discovery.js +340 -92
- package/scene-workspace/scene-view.d.ts +6 -6
- package/scene-workspace/scene-view.d.ts.map +1 -1
- package/scene-workspace/scene-view.js +32 -6
- package/web-components/elements.d.ts +34 -0
- package/web-components/elements.d.ts.map +1 -1
- package/web-components/elements.js +82 -8
- package/web-components/index.d.ts +2 -0
- package/web-components/index.d.ts.map +1 -1
- package/web-components/index.js +3 -1
- package/web-components/map-chrome.d.ts +103 -0
- package/web-components/map-chrome.d.ts.map +1 -0
- package/web-components/map-chrome.js +325 -0
- package/web-components/widget-shell.d.ts +68 -0
- package/web-components/widget-shell.d.ts.map +1 -0
- package/web-components/widget-shell.js +224 -0
- package/widget-capabilities.d.ts +67 -0
- package/widget-capabilities.js +152 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
|
|
2
|
+
import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
|
|
2
3
|
export class MeasurementCompat {
|
|
3
4
|
view;
|
|
4
5
|
container;
|
|
@@ -10,6 +11,7 @@ export class MeasurementCompat {
|
|
|
10
11
|
areaUnit;
|
|
11
12
|
lastMeasurement;
|
|
12
13
|
watchListeners;
|
|
14
|
+
widgetHost;
|
|
13
15
|
constructor(options = {}) {
|
|
14
16
|
this.view = options.view;
|
|
15
17
|
this.container = options.container;
|
|
@@ -21,6 +23,8 @@ export class MeasurementCompat {
|
|
|
21
23
|
this.areaUnit = options.areaUnit ?? "square-meters";
|
|
22
24
|
this.lastMeasurement = undefined;
|
|
23
25
|
this.watchListeners = new Map();
|
|
26
|
+
this.widgetHost = bindHonuaWidgetHost("honua-measurement", this.container, this.eventBus);
|
|
27
|
+
this.pushWidgetHost();
|
|
24
28
|
}
|
|
25
29
|
async load() {
|
|
26
30
|
if (this.loaded) {
|
|
@@ -60,6 +64,7 @@ export class MeasurementCompat {
|
|
|
60
64
|
this.activeTool = tool;
|
|
61
65
|
this.notifyWatchers("activeTool", this.activeTool);
|
|
62
66
|
this.eventBus.emit("measurement.started", { tool }, this);
|
|
67
|
+
this.pushWidgetHost();
|
|
63
68
|
}
|
|
64
69
|
stop() {
|
|
65
70
|
if (!this.activeTool) {
|
|
@@ -69,6 +74,7 @@ export class MeasurementCompat {
|
|
|
69
74
|
this.activeTool = undefined;
|
|
70
75
|
this.notifyWatchers("activeTool", this.activeTool);
|
|
71
76
|
this.eventBus.emit("measurement.stopped", { tool }, this);
|
|
77
|
+
this.pushWidgetHost();
|
|
72
78
|
}
|
|
73
79
|
clear() {
|
|
74
80
|
this.lastMeasurement = undefined;
|
|
@@ -103,6 +109,14 @@ export class MeasurementCompat {
|
|
|
103
109
|
}
|
|
104
110
|
destroy() {
|
|
105
111
|
this.watchListeners.clear();
|
|
112
|
+
this.widgetHost?.destroy();
|
|
113
|
+
}
|
|
114
|
+
pushWidgetHost() {
|
|
115
|
+
const tool = this.activeTool === "direct-line" ? "distance" : this.activeTool;
|
|
116
|
+
pushWidgetHostState(this.widgetHost, {
|
|
117
|
+
view: this.view,
|
|
118
|
+
activeTool: tool,
|
|
119
|
+
});
|
|
106
120
|
}
|
|
107
121
|
notifyWatchers(propertyName, value) {
|
|
108
122
|
const listeners = this.watchListeners.get(propertyName);
|
package/esri-compat/point.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export interface PointCompatOptions {
|
|
|
3
3
|
y?: number;
|
|
4
4
|
z?: number;
|
|
5
5
|
m?: number;
|
|
6
|
+
longitude?: number;
|
|
7
|
+
latitude?: number;
|
|
6
8
|
spatialReference?: unknown;
|
|
7
9
|
}
|
|
8
10
|
export type PointLoadStatusCompat = "not-loaded" | "loading" | "loaded";
|
|
@@ -18,6 +20,10 @@ export declare class PointCompat {
|
|
|
18
20
|
m: number | undefined;
|
|
19
21
|
spatialReference: unknown;
|
|
20
22
|
private readonly watchListeners;
|
|
23
|
+
/** Geographic longitude. Present when the spatial reference is geographic. */
|
|
24
|
+
get longitude(): number | undefined;
|
|
25
|
+
/** Geographic latitude. Present when the spatial reference is geographic. */
|
|
26
|
+
get latitude(): number | undefined;
|
|
21
27
|
constructor(options?: PointCompatOptions);
|
|
22
28
|
load(): Promise<PointCompat>;
|
|
23
29
|
when(callback?: (point: PointCompat) => void): Promise<PointCompat>;
|
|
@@ -26,6 +32,7 @@ export declare class PointCompat {
|
|
|
26
32
|
clone(): PointCompat;
|
|
27
33
|
toJSON(): PointCompatOptions;
|
|
28
34
|
destroy(): void;
|
|
35
|
+
private isGeographic;
|
|
29
36
|
private notifyWatchers;
|
|
30
37
|
}
|
|
31
38
|
//# sourceMappingURL=point.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/point.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,kBAAkB;IACjC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,WAAW;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IAClC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;
|
|
1
|
+
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/point.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,kBAAkB;IACjC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,WAAW;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IAClC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAE5E,8EAA8E;IAC9E,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,6EAA6E;IAC7E,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAExC;gBAEkB,OAAO,GAAE,kBAAuB;IActC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAc5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAQzE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,iBAAiB;IAelF,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAoCzC,KAAK,IAAI,WAAW;IAIpB,MAAM,IAAI,kBAAkB;IAU5B,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,cAAc;CAUvB"}
|
package/esri-compat/point.js
CHANGED
|
@@ -8,14 +8,25 @@ export class PointCompat {
|
|
|
8
8
|
m;
|
|
9
9
|
spatialReference;
|
|
10
10
|
watchListeners;
|
|
11
|
+
/** Geographic longitude. Present when the spatial reference is geographic. */
|
|
12
|
+
get longitude() {
|
|
13
|
+
return this.isGeographic() ? this.x : undefined;
|
|
14
|
+
}
|
|
15
|
+
/** Geographic latitude. Present when the spatial reference is geographic. */
|
|
16
|
+
get latitude() {
|
|
17
|
+
return this.isGeographic() ? this.y : undefined;
|
|
18
|
+
}
|
|
11
19
|
constructor(options = {}) {
|
|
12
20
|
this.loaded = false;
|
|
13
21
|
this.loadStatus = "not-loaded";
|
|
14
|
-
|
|
15
|
-
|
|
22
|
+
const longitude = normalizeFiniteNumber(options.longitude);
|
|
23
|
+
const latitude = normalizeFiniteNumber(options.latitude);
|
|
24
|
+
this.x = normalizeFiniteNumber(options.x) ?? longitude;
|
|
25
|
+
this.y = normalizeFiniteNumber(options.y) ?? latitude;
|
|
16
26
|
this.z = normalizeFiniteNumber(options.z);
|
|
17
27
|
this.m = normalizeFiniteNumber(options.m);
|
|
18
|
-
this.spatialReference =
|
|
28
|
+
this.spatialReference =
|
|
29
|
+
options.spatialReference ?? (longitude !== undefined || latitude !== undefined ? { wkid: 4326 } : undefined);
|
|
19
30
|
this.watchListeners = new Map();
|
|
20
31
|
}
|
|
21
32
|
async load() {
|
|
@@ -67,10 +78,24 @@ export class PointCompat {
|
|
|
67
78
|
this.m = normalizeFiniteNumber(options.m);
|
|
68
79
|
this.notifyWatchers("m", this.m);
|
|
69
80
|
}
|
|
81
|
+
if (options.longitude !== undefined && options.x === undefined) {
|
|
82
|
+
this.x = normalizeFiniteNumber(options.longitude);
|
|
83
|
+
this.notifyWatchers("x", this.x);
|
|
84
|
+
this.notifyWatchers("longitude", this.longitude);
|
|
85
|
+
}
|
|
86
|
+
if (options.latitude !== undefined && options.y === undefined) {
|
|
87
|
+
this.y = normalizeFiniteNumber(options.latitude);
|
|
88
|
+
this.notifyWatchers("y", this.y);
|
|
89
|
+
this.notifyWatchers("latitude", this.latitude);
|
|
90
|
+
}
|
|
70
91
|
if (options.spatialReference !== undefined) {
|
|
71
92
|
this.spatialReference = options.spatialReference;
|
|
72
93
|
this.notifyWatchers("spatialReference", this.spatialReference);
|
|
73
94
|
}
|
|
95
|
+
else if ((options.longitude !== undefined || options.latitude !== undefined) && !this.isGeographic()) {
|
|
96
|
+
this.spatialReference = { wkid: 4326 };
|
|
97
|
+
this.notifyWatchers("spatialReference", this.spatialReference);
|
|
98
|
+
}
|
|
74
99
|
}
|
|
75
100
|
clone() {
|
|
76
101
|
return new PointCompat(this.toJSON());
|
|
@@ -87,6 +112,11 @@ export class PointCompat {
|
|
|
87
112
|
destroy() {
|
|
88
113
|
this.watchListeners.clear();
|
|
89
114
|
}
|
|
115
|
+
isGeographic() {
|
|
116
|
+
const reference = this.spatialReference;
|
|
117
|
+
const wkid = reference?.latestWkid ?? reference?.wkid;
|
|
118
|
+
return wkid === 4326 || wkid === 4269;
|
|
119
|
+
}
|
|
90
120
|
notifyWatchers(propertyName, value) {
|
|
91
121
|
const listeners = this.watchListeners.get(propertyName);
|
|
92
122
|
if (!listeners) {
|
package/esri-compat/popup.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export declare class PopupCompat {
|
|
|
35
35
|
selectedFeatureIndex: number;
|
|
36
36
|
private readonly subscriptions;
|
|
37
37
|
private readonly watchListeners;
|
|
38
|
+
private readonly widgetHost;
|
|
38
39
|
constructor(options?: PopupCompatOptions);
|
|
39
40
|
load(): Promise<PopupCompat>;
|
|
40
41
|
when(callback?: (widget: PopupCompat) => void): Promise<PopupCompat>;
|
|
@@ -49,6 +50,7 @@ export declare class PopupCompat {
|
|
|
49
50
|
private applyOpenOptions;
|
|
50
51
|
private syncFromViewPopup;
|
|
51
52
|
private applySelection;
|
|
53
|
+
private pushWidgetHost;
|
|
52
54
|
private notifyWatchers;
|
|
53
55
|
}
|
|
54
56
|
//# sourceMappingURL=popup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/popup.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/popup.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,qBAAa,WAAW;IACtB,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAEpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,kBAAuB;IA+BtC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAiB5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1E,IAAI,CAAC,OAAO,GAAE,sBAA2B,GAAG,IAAI;IAyBhD,KAAK,IAAI,IAAI;IA+Bb,KAAK,IAAI,IAAI;IAIb,aAAa,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO;IAoBxD,IAAI,IAAI,OAAO;IAgBf,QAAQ,IAAI,OAAO;IAgBnB,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,iBAAiB;IAelF,OAAO,IAAI,IAAI;IAOtB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,iBAAiB;IAmDzB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,cAAc;CAUvB"}
|
package/esri-compat/popup.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener, } from "./event-bus.js";
|
|
2
|
+
import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
|
|
2
3
|
export class PopupCompat {
|
|
3
4
|
view;
|
|
4
5
|
container;
|
|
@@ -17,6 +18,7 @@ export class PopupCompat {
|
|
|
17
18
|
selectedFeatureIndex;
|
|
18
19
|
subscriptions;
|
|
19
20
|
watchListeners;
|
|
21
|
+
widgetHost;
|
|
20
22
|
constructor(options = {}) {
|
|
21
23
|
this.view = options.view;
|
|
22
24
|
this.container = options.container;
|
|
@@ -34,6 +36,7 @@ export class PopupCompat {
|
|
|
34
36
|
this.selectedFeature = undefined;
|
|
35
37
|
this.selectedFeatureIndex = -1;
|
|
36
38
|
this.watchListeners = new Map();
|
|
39
|
+
this.widgetHost = bindHonuaWidgetHost("honua-feature-inspection", this.container, this.eventBus);
|
|
37
40
|
this.subscriptions = [
|
|
38
41
|
this.eventBus.on("popup.open", () => {
|
|
39
42
|
this.syncFromViewPopup();
|
|
@@ -43,6 +46,7 @@ export class PopupCompat {
|
|
|
43
46
|
}),
|
|
44
47
|
];
|
|
45
48
|
this.syncFromViewPopup();
|
|
49
|
+
this.pushWidgetHost();
|
|
46
50
|
}
|
|
47
51
|
async load() {
|
|
48
52
|
if (this.loaded) {
|
|
@@ -87,6 +91,7 @@ export class PopupCompat {
|
|
|
87
91
|
this.notifyWatchers("selectedFeature", this.selectedFeature);
|
|
88
92
|
this.notifyWatchers("selectedFeatureIndex", this.selectedFeatureIndex);
|
|
89
93
|
this.eventBus.emit("popup.open", options, this);
|
|
94
|
+
this.pushWidgetHost();
|
|
90
95
|
}
|
|
91
96
|
close() {
|
|
92
97
|
const viewPopup = resolveViewPopup(this.view);
|
|
@@ -249,6 +254,13 @@ export class PopupCompat {
|
|
|
249
254
|
selectedFeatureIndex: this.selectedFeatureIndex,
|
|
250
255
|
}, this);
|
|
251
256
|
}
|
|
257
|
+
pushWidgetHost() {
|
|
258
|
+
pushWidgetHostState(this.widgetHost, {
|
|
259
|
+
view: this.view,
|
|
260
|
+
selectedFeature: this.selectedFeature,
|
|
261
|
+
template: this.content ?? (this.title !== undefined ? { title: this.title } : undefined),
|
|
262
|
+
});
|
|
263
|
+
}
|
|
252
264
|
notifyWatchers(propertyName, value) {
|
|
253
265
|
const listeners = this.watchListeners.get(propertyName);
|
|
254
266
|
if (!listeners) {
|
package/esri-compat/portal.d.ts
CHANGED
|
@@ -142,7 +142,7 @@ export declare class PortalError extends Error {
|
|
|
142
142
|
*
|
|
143
143
|
* @example
|
|
144
144
|
* ```ts
|
|
145
|
-
* import { PortalCompat } from "@honua/sdk-js/
|
|
145
|
+
* import { PortalCompat } from "@honua/sdk-js/client-compat";
|
|
146
146
|
*
|
|
147
147
|
* const portal = new PortalCompat({ portalUrl: "https://honua.example" });
|
|
148
148
|
* await portal.generateToken({ username: "u", password: "p" });
|
package/esri-compat/portal.js
CHANGED
|
@@ -23,7 +23,7 @@ export class PortalError extends Error {
|
|
|
23
23
|
*
|
|
24
24
|
* @example
|
|
25
25
|
* ```ts
|
|
26
|
-
* import { PortalCompat } from "@honua/sdk-js/
|
|
26
|
+
* import { PortalCompat } from "@honua/sdk-js/client-compat";
|
|
27
27
|
*
|
|
28
28
|
* const portal = new PortalCompat({ portalUrl: "https://honua.example" });
|
|
29
29
|
* await portal.generateToken({ username: "u", password: "p" });
|
package/esri-compat/print.d.ts
CHANGED
|
@@ -35,13 +35,16 @@ export declare class PrintCompat {
|
|
|
35
35
|
templateOptions: PrintTemplateOptionsCompat;
|
|
36
36
|
lastResult: PrintResultCompat | undefined;
|
|
37
37
|
private readonly watchListeners;
|
|
38
|
+
private readonly widgetHost;
|
|
38
39
|
constructor(options?: PrintCompatOptions);
|
|
40
|
+
setFormat(format: PrintTemplateOptionsCompat["format"]): void;
|
|
39
41
|
load(): Promise<PrintCompat>;
|
|
40
42
|
when(callback?: (widget: PrintCompat) => void): Promise<PrintCompat>;
|
|
41
43
|
watch(propertyName: string, listener: (value: unknown) => void): PrintHandleCompat;
|
|
42
44
|
setTemplateOptions(nextOptions: PrintTemplateOptionsCompat): void;
|
|
43
45
|
execute(options?: PrintExecuteOptionsCompat): Promise<PrintResultCompat>;
|
|
44
46
|
destroy(): void;
|
|
47
|
+
private pushWidgetHost;
|
|
45
48
|
private notifyWatchers;
|
|
46
49
|
}
|
|
47
50
|
//# sourceMappingURL=print.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/print.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/print.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C;AAED,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;CAAG;AAEhF,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,0BAA0B,CAAC;IAC5C,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,kBAAuB;IAc5C,SAAS,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAAG,IAAI;IAMvD,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAgB5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1E,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,iBAAiB;IAelF,kBAAkB,CAAC,WAAW,EAAE,0BAA0B,GAAG,IAAI;IAS3D,OAAO,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8BlF,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;CAUvB"}
|
package/esri-compat/print.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
|
|
2
|
+
import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
|
|
2
3
|
export class PrintCompat {
|
|
3
4
|
view;
|
|
4
5
|
container;
|
|
@@ -9,6 +10,7 @@ export class PrintCompat {
|
|
|
9
10
|
templateOptions;
|
|
10
11
|
lastResult;
|
|
11
12
|
watchListeners;
|
|
13
|
+
widgetHost;
|
|
12
14
|
constructor(options = {}) {
|
|
13
15
|
this.view = options.view;
|
|
14
16
|
this.container = options.container;
|
|
@@ -19,6 +21,13 @@ export class PrintCompat {
|
|
|
19
21
|
this.templateOptions = { ...(options.templateOptions ?? {}) };
|
|
20
22
|
this.lastResult = undefined;
|
|
21
23
|
this.watchListeners = new Map();
|
|
24
|
+
this.widgetHost = bindHonuaWidgetHost("honua-print-export", this.container, this.eventBus);
|
|
25
|
+
this.pushWidgetHost();
|
|
26
|
+
}
|
|
27
|
+
setFormat(format) {
|
|
28
|
+
this.templateOptions = { ...this.templateOptions, format };
|
|
29
|
+
this.notifyWatchers("templateOptions", this.templateOptions);
|
|
30
|
+
this.pushWidgetHost();
|
|
22
31
|
}
|
|
23
32
|
async load() {
|
|
24
33
|
if (this.loaded) {
|
|
@@ -93,6 +102,12 @@ export class PrintCompat {
|
|
|
93
102
|
destroy() {
|
|
94
103
|
this.watchListeners.clear();
|
|
95
104
|
}
|
|
105
|
+
pushWidgetHost() {
|
|
106
|
+
pushWidgetHostState(this.widgetHost, {
|
|
107
|
+
view: this.view,
|
|
108
|
+
format: this.templateOptions.format,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
96
111
|
notifyWatchers(propertyName, value) {
|
|
97
112
|
const listeners = this.watchListeners.get(propertyName);
|
|
98
113
|
if (!listeners) {
|
package/esri-compat/search.d.ts
CHANGED
|
@@ -71,6 +71,7 @@ export declare class SearchCompat {
|
|
|
71
71
|
loaded: boolean;
|
|
72
72
|
loadStatus: SearchLoadStatusCompat;
|
|
73
73
|
sources: SearchSourceCompat[];
|
|
74
|
+
activeSource: SearchSourceCompat | undefined;
|
|
74
75
|
searchTerm: string;
|
|
75
76
|
results: SearchResultCompat[];
|
|
76
77
|
suggestions: SearchSuggestionCompat[];
|
|
@@ -88,8 +89,10 @@ export declare class SearchCompat {
|
|
|
88
89
|
private readonly subscriptions;
|
|
89
90
|
private readonly watchListeners;
|
|
90
91
|
private customSources;
|
|
92
|
+
private widgetHost;
|
|
91
93
|
constructor(options?: SearchCompatOptions);
|
|
92
94
|
attachContainer(element: HTMLElement): void;
|
|
95
|
+
setActiveSource(source: SearchSourceCompat | undefined): void;
|
|
93
96
|
load(): Promise<SearchCompat>;
|
|
94
97
|
when(callback?: (widget: SearchCompat) => void): Promise<SearchCompat>;
|
|
95
98
|
watch(propertyName: string, listener: (value: unknown) => void): SearchHandleCompat;
|
|
@@ -108,6 +111,7 @@ export declare class SearchCompat {
|
|
|
108
111
|
private navigateToSelectedResult;
|
|
109
112
|
private rebuildSources;
|
|
110
113
|
private refreshSourceSubscriptions;
|
|
114
|
+
private pushWidgetHost;
|
|
111
115
|
private notifyWatchers;
|
|
112
116
|
}
|
|
113
117
|
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/search.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/search.ts"],"names":[],"mappings":"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"}
|
package/esri-compat/search.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener, } from "./event-bus.js";
|
|
2
|
+
import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
|
|
2
3
|
const DEFAULT_SEARCH_SOURCE_MAX_FEATURE_CANDIDATES = 200;
|
|
3
4
|
const DEFAULT_SEARCH_SOURCE_MAX_RESULTS = 10;
|
|
4
5
|
const DEFAULT_SEARCH_SOURCE_MAX_SUGGESTIONS = 5;
|
|
@@ -12,6 +13,7 @@ export class SearchCompat {
|
|
|
12
13
|
loaded;
|
|
13
14
|
loadStatus;
|
|
14
15
|
sources;
|
|
16
|
+
activeSource;
|
|
15
17
|
searchTerm;
|
|
16
18
|
results;
|
|
17
19
|
suggestions;
|
|
@@ -29,6 +31,7 @@ export class SearchCompat {
|
|
|
29
31
|
subscriptions;
|
|
30
32
|
watchListeners;
|
|
31
33
|
customSources;
|
|
34
|
+
widgetHost;
|
|
32
35
|
constructor(options = {}) {
|
|
33
36
|
this.view = options.view;
|
|
34
37
|
this.container = options.container ?? null;
|
|
@@ -40,6 +43,8 @@ export class SearchCompat {
|
|
|
40
43
|
this.loadStatus = "not-loaded";
|
|
41
44
|
this.customSources = [...(options.sources ?? [])];
|
|
42
45
|
this.sources = [];
|
|
46
|
+
this.activeSource = undefined;
|
|
47
|
+
this.widgetHost = bindHonuaWidgetHost("honua-search", this.container, this.eventBus);
|
|
43
48
|
this.searchTerm = "";
|
|
44
49
|
this.results = [];
|
|
45
50
|
this.suggestions = [];
|
|
@@ -58,11 +63,16 @@ export class SearchCompat {
|
|
|
58
63
|
this.watchListeners = new Map();
|
|
59
64
|
this.refreshSourceSubscriptions();
|
|
60
65
|
this.rebuildSources(false);
|
|
61
|
-
mountSearchBox(this);
|
|
62
66
|
}
|
|
63
67
|
attachContainer(element) {
|
|
64
68
|
this.container = element;
|
|
65
|
-
|
|
69
|
+
this.widgetHost ??= bindHonuaWidgetHost("honua-search", element, this.eventBus);
|
|
70
|
+
this.pushWidgetHost();
|
|
71
|
+
}
|
|
72
|
+
setActiveSource(source) {
|
|
73
|
+
this.activeSource = source;
|
|
74
|
+
this.notifyWatchers("activeSource", this.activeSource);
|
|
75
|
+
this.pushWidgetHost();
|
|
66
76
|
}
|
|
67
77
|
async load() {
|
|
68
78
|
if (this.loaded) {
|
|
@@ -264,6 +274,8 @@ export class SearchCompat {
|
|
|
264
274
|
subscription.remove();
|
|
265
275
|
}
|
|
266
276
|
this.watchListeners.clear();
|
|
277
|
+
this.widgetHost?.destroy();
|
|
278
|
+
this.widgetHost = undefined;
|
|
267
279
|
}
|
|
268
280
|
async navigateToSelectedResult() {
|
|
269
281
|
if (!this.selectedResult) {
|
|
@@ -290,7 +302,11 @@ export class SearchCompat {
|
|
|
290
302
|
})
|
|
291
303
|
: []),
|
|
292
304
|
];
|
|
305
|
+
if (!this.sources.includes(this.activeSource)) {
|
|
306
|
+
this.activeSource = this.sources[0];
|
|
307
|
+
}
|
|
293
308
|
this.notifyWatchers("sources", this.sources);
|
|
309
|
+
this.pushWidgetHost();
|
|
294
310
|
if (emitChange) {
|
|
295
311
|
this.eventBus.emit("search.sources-changed", { sourceCount: this.sources.length }, this);
|
|
296
312
|
}
|
|
@@ -319,6 +335,13 @@ export class SearchCompat {
|
|
|
319
335
|
}));
|
|
320
336
|
}
|
|
321
337
|
}
|
|
338
|
+
pushWidgetHost() {
|
|
339
|
+
pushWidgetHostState(this.widgetHost, {
|
|
340
|
+
view: this.view,
|
|
341
|
+
sources: this.sources,
|
|
342
|
+
activeSource: this.activeSource,
|
|
343
|
+
});
|
|
344
|
+
}
|
|
322
345
|
notifyWatchers(propertyName, value) {
|
|
323
346
|
const listeners = this.watchListeners.get(propertyName);
|
|
324
347
|
if (!listeners) {
|
|
@@ -463,32 +486,6 @@ const COMMON_SEARCH_FIELD_NAMES = [
|
|
|
463
486
|
];
|
|
464
487
|
const MAX_SERVER_SEARCH_FIELDS = 6;
|
|
465
488
|
const MAX_SERVER_OUT_FIELDS = 16;
|
|
466
|
-
function mountSearchBox(search) {
|
|
467
|
-
const container = search.container;
|
|
468
|
-
const element = typeof HTMLElement !== "undefined" && container instanceof HTMLElement
|
|
469
|
-
? container
|
|
470
|
-
: typeof container === "string" && typeof document !== "undefined"
|
|
471
|
-
? document.getElementById(container)
|
|
472
|
-
: undefined;
|
|
473
|
-
if (typeof HTMLElement === "undefined" || typeof document === "undefined" || !(element instanceof HTMLElement)) {
|
|
474
|
-
return;
|
|
475
|
-
}
|
|
476
|
-
element.querySelector(":scope > .honua-search")?.remove();
|
|
477
|
-
const form = document.createElement("form");
|
|
478
|
-
form.className = "honua-search";
|
|
479
|
-
const input = document.createElement("input");
|
|
480
|
-
input.type = "search";
|
|
481
|
-
input.placeholder = search.allPlaceholder || "Search";
|
|
482
|
-
const button = document.createElement("button");
|
|
483
|
-
button.type = "submit";
|
|
484
|
-
button.textContent = "Search";
|
|
485
|
-
form.addEventListener("submit", (event) => {
|
|
486
|
-
event.preventDefault();
|
|
487
|
-
void search.search(input.value);
|
|
488
|
-
});
|
|
489
|
-
form.append(input, button);
|
|
490
|
-
element.append(form);
|
|
491
|
-
}
|
|
492
489
|
function createFallbackLayerSearchQueryOptions(maxFeatureCandidates, normalizedTerm, outFields) {
|
|
493
490
|
return {
|
|
494
491
|
where: "1=1",
|
package/esri-compat/sketch.d.ts
CHANGED
|
@@ -84,6 +84,7 @@ export declare class SketchCompat {
|
|
|
84
84
|
snappingOptions: SnappingOptionsCompat;
|
|
85
85
|
private readonly watchListeners;
|
|
86
86
|
private readonly sketchBinding;
|
|
87
|
+
private readonly widgetHost;
|
|
87
88
|
constructor(options?: SketchCompatOptions);
|
|
88
89
|
/** Whether tool modes delegate to a terra-draw sketch binding. @experimental */
|
|
89
90
|
delegatesToSketchBinding(): boolean;
|
|
@@ -102,6 +103,7 @@ export declare class SketchCompat {
|
|
|
102
103
|
reset(): void;
|
|
103
104
|
private clearActiveState;
|
|
104
105
|
destroy(): void;
|
|
106
|
+
private pushWidgetHost;
|
|
105
107
|
private notifyWatchers;
|
|
106
108
|
}
|
|
107
109
|
//# sourceMappingURL=sketch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sketch.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/sketch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,KAAK,qBAAqB,EAAmC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sketch.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/sketch.ts"],"names":[],"mappings":"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"}
|
package/esri-compat/sketch.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
|
|
2
2
|
import { snappingOptionsToSnappingConfig } from "./snapping.js";
|
|
3
|
+
import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
|
|
3
4
|
const SKETCH_COMPAT_TOOL_TO_EDIT_TOOL = Object.freeze({
|
|
4
5
|
point: "point",
|
|
5
6
|
polyline: "line",
|
|
@@ -40,6 +41,7 @@ export class SketchCompat {
|
|
|
40
41
|
snappingOptions;
|
|
41
42
|
watchListeners;
|
|
42
43
|
sketchBinding;
|
|
44
|
+
widgetHost;
|
|
43
45
|
constructor(options = {}) {
|
|
44
46
|
this.view = options.view;
|
|
45
47
|
this.layer = options.layer;
|
|
@@ -59,6 +61,8 @@ export class SketchCompat {
|
|
|
59
61
|
this.snappingOptions = { ...(options.snappingOptions ?? {}) };
|
|
60
62
|
this.watchListeners = new Map();
|
|
61
63
|
this.sketchBinding = resolveSketchToolBindingCompat(options.sketchBinding);
|
|
64
|
+
this.widgetHost = bindHonuaWidgetHost("honua-sketch-control", this.container, this.eventBus);
|
|
65
|
+
this.pushWidgetHost();
|
|
62
66
|
}
|
|
63
67
|
/** Whether tool modes delegate to a terra-draw sketch binding. @experimental */
|
|
64
68
|
delegatesToSketchBinding() {
|
|
@@ -69,6 +73,7 @@ export class SketchCompat {
|
|
|
69
73
|
this.snappingOptions = { ...options };
|
|
70
74
|
this.notifyWatchers("snappingOptions", this.snappingOptions);
|
|
71
75
|
this.eventBus.emit("sketch.snapping-options-changed", { options: this.snappingOptions }, this);
|
|
76
|
+
this.pushWidgetHost();
|
|
72
77
|
}
|
|
73
78
|
/** The snapping options mapped onto the contract `SnappingConfig`. */
|
|
74
79
|
snappingConfig() {
|
|
@@ -215,6 +220,13 @@ export class SketchCompat {
|
|
|
215
220
|
destroy() {
|
|
216
221
|
this.watchListeners.clear();
|
|
217
222
|
}
|
|
223
|
+
pushWidgetHost() {
|
|
224
|
+
pushWidgetHostState(this.widgetHost, {
|
|
225
|
+
view: this.view,
|
|
226
|
+
layer: this.layer,
|
|
227
|
+
snappingOptions: this.snappingOptions,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
218
230
|
notifyWatchers(propertyName, value) {
|
|
219
231
|
const listeners = this.watchListeners.get(propertyName);
|
|
220
232
|
if (!listeners) {
|