@honua/react 0.1.7-beta.0 → 0.1.10-beta.0
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/control-plane/admin-client.d.ts +89 -0
- package/control-plane/admin-client.d.ts.map +1 -0
- package/control-plane/admin-client.js +200 -0
- package/control-plane/client.d.ts +1 -1
- package/control-plane/client.d.ts.map +1 -1
- package/control-plane/client.js +145 -11
- package/control-plane/commands/catalog.d.ts +133 -0
- package/control-plane/commands/catalog.d.ts.map +1 -0
- package/control-plane/commands/catalog.js +365 -0
- package/control-plane/commands/errors.d.ts +96 -0
- package/control-plane/commands/errors.d.ts.map +1 -0
- package/control-plane/commands/errors.js +130 -0
- package/control-plane/commands/identity.d.ts +71 -0
- package/control-plane/commands/identity.d.ts.map +1 -0
- package/control-plane/commands/identity.js +0 -0
- package/control-plane/commands/index.d.ts +39 -0
- package/control-plane/commands/index.d.ts.map +1 -0
- package/control-plane/commands/index.js +34 -0
- package/control-plane/commands/runtime.d.ts +146 -0
- package/control-plane/commands/runtime.d.ts.map +1 -0
- package/control-plane/commands/runtime.js +330 -0
- package/control-plane/commands/types.d.ts +228 -0
- package/control-plane/commands/types.d.ts.map +1 -0
- package/control-plane/commands/types.js +30 -0
- package/control-plane/commands/validate.d.ts +27 -0
- package/control-plane/commands/validate.d.ts.map +1 -0
- package/control-plane/commands/validate.js +132 -0
- package/control-plane/generated/admin-api.d.ts +30265 -0
- package/control-plane/generated/admin-api.d.ts.map +1 -0
- package/control-plane/generated/admin-api.js +5 -0
- package/control-plane/generated/admin-operations.d.ts +4053 -0
- package/control-plane/generated/admin-operations.d.ts.map +1 -0
- package/control-plane/generated/admin-operations.js +820 -0
- package/control-plane/index.d.ts +11 -0
- package/control-plane/index.d.ts.map +1 -1
- package/control-plane/index.js +8 -0
- package/control-plane/types.d.ts +14 -0
- package/control-plane/types.d.ts.map +1 -1
- package/core/client.d.ts.map +1 -1
- package/core/client.js +29 -31
- package/core/credential-redaction.d.ts +163 -0
- package/core/credential-redaction.d.ts.map +1 -0
- package/core/credential-redaction.js +389 -0
- package/core/error-classifications.d.ts +15 -0
- package/core/error-classifications.d.ts.map +1 -1
- package/core/error-classifications.js +15 -0
- package/core/error-code-registry.d.ts +15 -0
- package/core/error-code-registry.d.ts.map +1 -1
- package/core/error-code-registry.js +15 -0
- package/core/error-envelope.d.ts +31 -0
- package/core/error-envelope.d.ts.map +1 -1
- package/core/error-envelope.js +11 -0
- package/core/errors.d.ts +15 -3
- package/core/errors.d.ts.map +1 -1
- package/core/errors.js +254 -2
- package/core/geometry-input-sr.d.ts +3 -0
- package/core/geometry-input-sr.d.ts.map +1 -0
- package/core/geometry-input-sr.js +28 -0
- package/core/geoservices.d.ts.map +1 -1
- package/core/geoservices.js +33 -6
- package/core/grpc-adapter.d.ts +2 -2
- package/core/grpc-adapter.d.ts.map +1 -1
- package/core/grpc-adapter.js +41 -9
- package/core/job-run-errors.d.ts +10 -0
- package/core/job-run-errors.d.ts.map +1 -0
- package/core/job-run-errors.js +14 -0
- package/core/job-run-lifecycle.d.ts +34 -0
- package/core/job-run-lifecycle.d.ts.map +1 -0
- package/core/job-run-lifecycle.js +193 -0
- package/core/ogc-processes.d.ts +38 -31
- package/core/ogc-processes.d.ts.map +1 -1
- package/core/ogc-processes.js +123 -173
- package/core/pbf-decoder.d.ts.map +1 -1
- package/core/pbf-decoder.js +16 -4
- package/core/process-runner.js +15 -100
- package/core/protocol-transport.d.ts +6 -1
- package/core/protocol-transport.d.ts.map +1 -1
- package/core/request-pipeline.d.ts +6 -3
- package/core/request-pipeline.d.ts.map +1 -1
- package/core/request-pipeline.js +28 -11
- package/core/spatial-filter.d.ts +4 -4
- package/core/spatial-filter.d.ts.map +1 -1
- package/core/spatial-filter.js +7 -7
- package/core/surfaces.d.ts +2 -8
- package/core/surfaces.d.ts.map +1 -1
- package/core/surfaces.js +21 -112
- package/core/types.d.ts +21 -9
- package/core/types.d.ts.map +1 -1
- package/esri-compat/class-breaks-renderer.d.ts +2 -0
- package/esri-compat/class-breaks-renderer.d.ts.map +1 -1
- package/esri-compat/class-breaks-renderer.js +7 -0
- package/esri-compat/controls.d.ts +10 -1
- package/esri-compat/controls.d.ts.map +1 -1
- package/esri-compat/controls.js +86 -2
- package/esri-compat/directions.d.ts +35 -0
- package/esri-compat/directions.d.ts.map +1 -1
- package/esri-compat/directions.js +153 -2
- package/esri-compat/expand.d.ts +1 -0
- package/esri-compat/expand.d.ts.map +1 -1
- package/esri-compat/expand.js +61 -0
- package/esri-compat/feature-layer.d.ts +29 -4
- package/esri-compat/feature-layer.d.ts.map +1 -1
- package/esri-compat/feature-layer.js +335 -13
- package/esri-compat/geometry-engine.d.ts +4 -0
- package/esri-compat/geometry-engine.d.ts.map +1 -1
- package/esri-compat/geometry-engine.js +8 -1
- package/esri-compat/graphic.d.ts +7 -4
- package/esri-compat/graphic.d.ts.map +1 -1
- package/esri-compat/legend.d.ts +2 -1
- package/esri-compat/legend.d.ts.map +1 -1
- package/esri-compat/legend.js +15 -0
- package/esri-compat/map-view-mount.d.ts +48 -0
- package/esri-compat/map-view-mount.d.ts.map +1 -0
- package/esri-compat/map-view-mount.js +344 -0
- package/esri-compat/map-view.d.ts +38 -6
- package/esri-compat/map-view.d.ts.map +1 -1
- package/esri-compat/map-view.js +467 -33
- package/esri-compat/portal.d.ts +2 -0
- package/esri-compat/portal.d.ts.map +1 -1
- package/esri-compat/portal.js +7 -2
- package/esri-compat/renderer-objects.d.ts +7 -2
- package/esri-compat/renderer-objects.d.ts.map +1 -1
- package/esri-compat/renderer-objects.js +16 -5
- package/esri-compat/route-layer.d.ts +8 -0
- package/esri-compat/route-layer.d.ts.map +1 -1
- package/esri-compat/route-layer.js +24 -4
- package/esri-compat/route-task.d.ts +5 -1
- package/esri-compat/route-task.d.ts.map +1 -1
- package/esri-compat/route-task.js +119 -7
- package/esri-compat/scene-view.d.ts.map +1 -1
- package/esri-compat/scene-view.js +1 -0
- package/esri-compat/search.d.ts +2 -1
- package/esri-compat/search.d.ts.map +1 -1
- package/esri-compat/search.js +52 -2
- package/esri-compat/unique-value-renderer.d.ts +2 -0
- package/esri-compat/unique-value-renderer.d.ts.map +1 -1
- package/esri-compat/unique-value-renderer.js +7 -0
- package/esri-compat/web-map.d.ts +10 -0
- package/esri-compat/web-map.d.ts.map +1 -1
- package/esri-compat/web-map.js +102 -0
- package/gen/geospatial/v1/common_pb.d.ts +514 -0
- package/gen/geospatial/v1/common_pb.d.ts.map +1 -0
- package/gen/geospatial/v1/common_pb.js +335 -0
- package/gen/geospatial/v1/execution_types_pb.d.ts +1186 -0
- package/gen/geospatial/v1/execution_types_pb.d.ts.map +1 -0
- package/gen/geospatial/v1/execution_types_pb.js +396 -0
- package/gen/geospatial/v1/feature_service_pb.d.ts +403 -0
- package/gen/geospatial/v1/feature_service_pb.d.ts.map +1 -0
- package/gen/geospatial/v1/feature_service_pb.js +47 -0
- package/gen/geospatial/v1/index.d.ts +5 -0
- package/gen/geospatial/v1/index.d.ts.map +1 -0
- package/gen/geospatial/v1/index.js +9 -0
- package/gen/geospatial/v1/spatial_types_pb.d.ts +285 -0
- package/gen/geospatial/v1/spatial_types_pb.d.ts.map +1 -0
- package/gen/geospatial/v1/spatial_types_pb.js +58 -0
- package/gen/geospatial/v1/workspace_artifact_types_pb.d.ts +379 -0
- package/gen/geospatial/v1/workspace_artifact_types_pb.d.ts.map +1 -0
- package/gen/geospatial/v1/workspace_artifact_types_pb.js +151 -0
- package/generated-app/projection.d.ts.map +1 -1
- package/generated-app/projection.js +10 -1
- package/map/webmap-maplibre.d.ts +2 -1
- package/map/webmap-maplibre.d.ts.map +1 -1
- package/map/webmap-maplibre.js +3 -0
- package/package.json +3 -3
- package/query-planner/geoservices.d.ts.map +1 -1
- package/query-planner/geoservices.js +2 -0
- package/query-planner/grpc.d.ts +4 -4
- package/query-planner/grpc.d.ts.map +1 -1
- package/query-planner/grpc.js +11 -11
- package/query-planner/types.d.ts +6 -4
- package/query-planner/types.d.ts.map +1 -1
- package/realtime/honua-server.d.ts +4 -0
- package/realtime/honua-server.d.ts.map +1 -1
- package/realtime/honua-server.js +10 -0
- package/realtime/resumable.js +9 -0
- package/realtime/types.d.ts +8 -0
- package/realtime/types.d.ts.map +1 -1
- package/runtime/errors.d.ts +1 -1
- package/runtime/errors.d.ts.map +1 -1
- package/runtime/errors.js +2 -0
- package/runtime/generated/map-package-schema-meta.d.ts +11 -0
- package/runtime/generated/map-package-schema-meta.d.ts.map +1 -0
- package/runtime/generated/map-package-schema-meta.js +12 -0
- package/runtime/generated/map-package-schema-validator.d.ts +16 -0
- package/runtime/generated/map-package-schema-validator.d.ts.map +1 -0
- package/runtime/generated/map-package-schema-validator.js +1422 -0
- package/runtime/index.d.ts +5 -1
- package/runtime/index.d.ts.map +1 -1
- package/runtime/index.js +6 -0
- package/runtime/map-package-export.d.ts +151 -0
- package/runtime/map-package-export.d.ts.map +1 -0
- package/runtime/map-package-export.js +636 -0
- package/runtime/map-package-validation.d.ts +21 -1
- package/runtime/map-package-validation.d.ts.map +1 -1
- package/runtime/map-package-validation.js +132 -95
- package/runtime/map-package.d.ts +80 -0
- package/runtime/map-package.d.ts.map +1 -1
- package/studio/capability-manifest.d.ts +10 -0
- package/studio/capability-manifest.d.ts.map +1 -1
- package/studio/capability-manifest.js +38 -0
- package/studio/chart-spec.d.ts +6 -6
- package/studio/chart-spec.d.ts.map +1 -1
- package/studio/chart-spec.js +6 -6
- package/studio/command-adapter.d.ts +35 -0
- package/studio/command-adapter.d.ts.map +1 -0
- package/studio/command-adapter.js +36 -0
- package/studio/generated/studio-api.d.ts +1062 -0
- package/studio/generated/studio-api.d.ts.map +1 -0
- package/studio/generated/studio-api.js +4 -0
- package/studio/index.d.ts +25 -13
- package/studio/index.d.ts.map +1 -1
- package/studio/index.js +21 -10
- package/studio/lifecycle-client.d.ts +262 -22
- package/studio/lifecycle-client.d.ts.map +1 -1
- package/studio/lifecycle-client.js +543 -24
- package/studio/lifecycle-errors.d.ts +8 -2
- package/studio/lifecycle-errors.d.ts.map +1 -1
- package/studio/lifecycle-errors.js +6 -1
- package/studio/lifecycle-types.d.ts +237 -38
- package/studio/lifecycle-types.d.ts.map +1 -1
- package/studio/lifecycle-types.js +5 -12
- package/studio/publication-status.d.ts +55 -0
- package/studio/publication-status.d.ts.map +1 -0
- package/studio/publication-status.js +103 -0
- package/studio/types.d.ts +37 -7
- package/studio/types.d.ts.map +1 -1
- package/studio/types.js +5 -3
- package/studio/validate.d.ts.map +1 -1
- package/studio/validate.js +104 -7
- package/style/renderers.d.ts +6 -1
- package/style/renderers.d.ts.map +1 -1
- package/style/renderers.js +11 -6
- package/style/visual-variables.d.ts +43 -0
- package/style/visual-variables.d.ts.map +1 -0
- package/style/visual-variables.js +183 -0
- package/webmap/convert-layer.d.ts +2 -1
- package/webmap/convert-layer.d.ts.map +1 -1
- package/webmap/convert-layer.js +20 -3
- package/webmap/convert-renderer.d.ts +10 -3
- package/webmap/convert-renderer.d.ts.map +1 -1
- package/webmap/convert-renderer.js +190 -36
- package/webmap/index.d.ts +1 -0
- package/webmap/index.d.ts.map +1 -1
- package/webmap/parse.d.ts +2 -1
- package/webmap/parse.d.ts.map +1 -1
- package/webmap/parse.js +1 -1
- package/gen/honua/v1/feature_service_pb.d.ts +0 -918
- package/gen/honua/v1/feature_service_pb.d.ts.map +0 -1
- package/gen/honua/v1/feature_service_pb.js +0 -375
|
@@ -11,8 +11,11 @@
|
|
|
11
11
|
* @module
|
|
12
12
|
*/
|
|
13
13
|
import type { ClassBreaksRenderer, UniqueValueRenderer } from "../style/renderers.js";
|
|
14
|
+
import type { RendererConversionOptions } from "../style/visual-variables.js";
|
|
15
|
+
import { type RendererConversionResult } from "../webmap/convert-renderer.js";
|
|
14
16
|
import type { WarningCollector } from "../webmap/warnings.js";
|
|
15
17
|
import type { ClassBreaksRendererCompat } from "./class-breaks-renderer.js";
|
|
18
|
+
import type { SimpleRendererCompat } from "./simple-renderer.js";
|
|
16
19
|
import type { UniqueValueRendererCompat } from "./unique-value-renderer.js";
|
|
17
20
|
/** Result of projecting a compat renderer to a renderer object. @experimental */
|
|
18
21
|
export interface CompatRendererProjection<R> {
|
|
@@ -29,12 +32,14 @@ export interface CompatRendererProjection<R> {
|
|
|
29
32
|
*
|
|
30
33
|
* @experimental
|
|
31
34
|
*/
|
|
32
|
-
export declare function rendererObjectFromClassBreaksCompat(compat: ClassBreaksRendererCompat): CompatRendererProjection<ClassBreaksRenderer>;
|
|
35
|
+
export declare function rendererObjectFromClassBreaksCompat(compat: ClassBreaksRendererCompat, options?: RendererConversionOptions): CompatRendererProjection<ClassBreaksRenderer>;
|
|
33
36
|
/**
|
|
34
37
|
* Emit a first-class {@link UniqueValueRenderer} from a
|
|
35
38
|
* `UniqueValueRendererCompat` shim.
|
|
36
39
|
*
|
|
37
40
|
* @experimental
|
|
38
41
|
*/
|
|
39
|
-
export declare function rendererObjectFromUniqueValueCompat(compat: UniqueValueRendererCompat): CompatRendererProjection<UniqueValueRenderer>;
|
|
42
|
+
export declare function rendererObjectFromUniqueValueCompat(compat: UniqueValueRendererCompat, options?: RendererConversionOptions): CompatRendererProjection<UniqueValueRenderer>;
|
|
43
|
+
/** Convert a simple compatibility renderer with the shared WebMap compiler. */
|
|
44
|
+
export declare function convertSimpleRendererCompat(compat: SimpleRendererCompat, options?: RendererConversionOptions): CompatRendererProjection<RendererConversionResult>;
|
|
40
45
|
//# sourceMappingURL=renderer-objects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer-objects.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/renderer-objects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"renderer-objects.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/renderer-objects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE5E,iFAAiF;AACjF,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,yBAAyB,EACjC,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAAC,mBAAmB,CAAC,CAwB/C;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,yBAAyB,EACjC,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAAC,mBAAmB,CAAC,CAqB/C;AAED,+EAA+E;AAC/E,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAAC,wBAAwB,CAAC,CAQpD"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @module
|
|
12
12
|
*/
|
|
13
|
-
import { classBreaksRendererFromWebMap, uniqueValueRendererFromWebMap } from "../webmap/convert-renderer.js";
|
|
13
|
+
import { classBreaksRendererFromWebMap, convertRenderer, uniqueValueRendererFromWebMap, } from "../webmap/convert-renderer.js";
|
|
14
14
|
import { createWarningCollector } from "../webmap/warnings.js";
|
|
15
15
|
/**
|
|
16
16
|
* Emit a first-class {@link ClassBreaksRenderer} from a
|
|
@@ -20,10 +20,14 @@ import { createWarningCollector } from "../webmap/warnings.js";
|
|
|
20
20
|
*
|
|
21
21
|
* @experimental
|
|
22
22
|
*/
|
|
23
|
-
export function rendererObjectFromClassBreaksCompat(compat) {
|
|
23
|
+
export function rendererObjectFromClassBreaksCompat(compat, options = {}) {
|
|
24
24
|
const warn = createWarningCollector();
|
|
25
25
|
const renderer = classBreaksRendererFromWebMap({
|
|
26
26
|
type: "classBreaks",
|
|
27
|
+
visualVariables: compat.visualVariables,
|
|
28
|
+
valueExpression: compat.valueExpression,
|
|
29
|
+
normalizationField: compat.normalizationField,
|
|
30
|
+
normalizationTotal: compat.normalizationTotal,
|
|
27
31
|
field: compat.field,
|
|
28
32
|
minValue: compat.minValue,
|
|
29
33
|
defaultSymbol: compat.defaultSymbol,
|
|
@@ -34,7 +38,7 @@ export function rendererObjectFromClassBreaksCompat(compat) {
|
|
|
34
38
|
label: info.label,
|
|
35
39
|
symbol: info.symbol,
|
|
36
40
|
})),
|
|
37
|
-
}, warn);
|
|
41
|
+
}, warn, options);
|
|
38
42
|
return { renderer, warnings: warn.warnings };
|
|
39
43
|
}
|
|
40
44
|
/**
|
|
@@ -43,10 +47,11 @@ export function rendererObjectFromClassBreaksCompat(compat) {
|
|
|
43
47
|
*
|
|
44
48
|
* @experimental
|
|
45
49
|
*/
|
|
46
|
-
export function rendererObjectFromUniqueValueCompat(compat) {
|
|
50
|
+
export function rendererObjectFromUniqueValueCompat(compat, options = {}) {
|
|
47
51
|
const warn = createWarningCollector();
|
|
48
52
|
const renderer = uniqueValueRendererFromWebMap({
|
|
49
53
|
type: "uniqueValue",
|
|
54
|
+
visualVariables: compat.visualVariables,
|
|
50
55
|
field1: compat.field,
|
|
51
56
|
field2: compat.field2,
|
|
52
57
|
field3: compat.field3,
|
|
@@ -57,6 +62,12 @@ export function rendererObjectFromUniqueValueCompat(compat) {
|
|
|
57
62
|
label: info.label,
|
|
58
63
|
symbol: info.symbol,
|
|
59
64
|
})),
|
|
60
|
-
}, warn);
|
|
65
|
+
}, warn, options);
|
|
66
|
+
return { renderer, warnings: warn.warnings };
|
|
67
|
+
}
|
|
68
|
+
/** Convert a simple compatibility renderer with the shared WebMap compiler. */
|
|
69
|
+
export function convertSimpleRendererCompat(compat, options = {}) {
|
|
70
|
+
const warn = createWarningCollector();
|
|
71
|
+
const renderer = convertRenderer({ ...compat.toJSON(), type: "simple", symbol: compat.symbol }, warn, options);
|
|
61
72
|
return { renderer, warnings: warn.warnings };
|
|
62
73
|
}
|
|
@@ -3,10 +3,17 @@ export interface RouteStopCompat {
|
|
|
3
3
|
name?: string;
|
|
4
4
|
location: [number, number];
|
|
5
5
|
}
|
|
6
|
+
export interface RouteDirectionStepCompat {
|
|
7
|
+
text: string;
|
|
8
|
+
lengthKilometers: number;
|
|
9
|
+
timeMinutes: number;
|
|
10
|
+
}
|
|
6
11
|
export interface RouteSolveResultCompat {
|
|
7
12
|
path: [number, number][];
|
|
8
13
|
totalLengthMeters: number;
|
|
9
14
|
totalTimeSeconds: number;
|
|
15
|
+
/** Turn-by-turn steps from a route service. Absent results use the path geometry. */
|
|
16
|
+
directionFeatures?: readonly RouteDirectionStepCompat[];
|
|
10
17
|
}
|
|
11
18
|
export interface RouteLayerCompatOptions {
|
|
12
19
|
id?: string;
|
|
@@ -56,4 +63,5 @@ export declare class RouteLayerCompat {
|
|
|
56
63
|
setOpacity(opacity: number): void;
|
|
57
64
|
private notifyWatchers;
|
|
58
65
|
}
|
|
66
|
+
export declare function routeStopFromUnknown(stop: unknown): RouteStopCompat;
|
|
59
67
|
//# sourceMappingURL=route-layer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-layer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/route-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"route-layer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/route-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
|
|
2
|
+
import { lonLatFromUnknown } from "./map-view-mount.js";
|
|
2
3
|
export class RouteLayerCompat {
|
|
3
4
|
type;
|
|
4
5
|
id;
|
|
@@ -126,6 +127,7 @@ export class RouteLayerCompat {
|
|
|
126
127
|
path: result.path.map((point) => [point[0], point[1]]),
|
|
127
128
|
totalLengthMeters: result.totalLengthMeters,
|
|
128
129
|
totalTimeSeconds: result.totalTimeSeconds,
|
|
130
|
+
...(result.directionFeatures ? { directionFeatures: result.directionFeatures } : {}),
|
|
129
131
|
};
|
|
130
132
|
this.notifyWatchers("route", this.route);
|
|
131
133
|
this.eventBus.emit("route-layer.solve-completed", { layerId: this.id, route: this.route }, this);
|
|
@@ -176,11 +178,29 @@ export class RouteLayerCompat {
|
|
|
176
178
|
}
|
|
177
179
|
}
|
|
178
180
|
}
|
|
181
|
+
export function routeStopFromUnknown(stop) {
|
|
182
|
+
if (!stop || typeof stop !== "object") {
|
|
183
|
+
throw new Error("Route stop is missing a location.");
|
|
184
|
+
}
|
|
185
|
+
const record = stop;
|
|
186
|
+
const fromPair = coordinatePair(record.location);
|
|
187
|
+
const fromGeometry = record.geometry === undefined ? undefined : lonLatFromUnknown(record.geometry);
|
|
188
|
+
const location = fromPair ?? fromGeometry;
|
|
189
|
+
if (!location) {
|
|
190
|
+
throw new Error("Route stop is missing a location.");
|
|
191
|
+
}
|
|
192
|
+
const attributeName = record.attributes?.Name ?? record.attributes?.name;
|
|
193
|
+
const name = typeof record.name === "string" ? record.name : typeof attributeName === "string" ? attributeName : undefined;
|
|
194
|
+
return { name, location: [location[0], location[1]] };
|
|
195
|
+
}
|
|
196
|
+
function coordinatePair(value) {
|
|
197
|
+
if (Array.isArray(value) && value.length >= 2 && typeof value[0] === "number" && typeof value[1] === "number") {
|
|
198
|
+
return [value[0], value[1]];
|
|
199
|
+
}
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
179
202
|
function cloneRouteStop(stop) {
|
|
180
|
-
return
|
|
181
|
-
name: stop.name,
|
|
182
|
-
location: [stop.location[0], stop.location[1]],
|
|
183
|
-
};
|
|
203
|
+
return routeStopFromUnknown(stop);
|
|
184
204
|
}
|
|
185
205
|
function defaultRouteProvider(stops) {
|
|
186
206
|
const path = stops.map((stop) => [stop.location[0], stop.location[1]]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CompatEventBus } from "./event-bus.js";
|
|
2
|
-
import { type RouteLayerCompatOptions, type RouteStopCompat } from "./route-layer.js";
|
|
2
|
+
import { type RouteLayerCompatOptions, type RouteSolveResultCompat, type RouteStopCompat } from "./route-layer.js";
|
|
3
3
|
export interface RouteTaskCompatOptions {
|
|
4
4
|
url?: string;
|
|
5
5
|
apiKey?: string;
|
|
@@ -22,6 +22,8 @@ export interface RouteTaskStopsFeatureSetCompat {
|
|
|
22
22
|
export interface RouteTaskSolveParametersCompat {
|
|
23
23
|
stops?: readonly RouteStopCompat[] | RouteTaskStopsFeatureSetCompat;
|
|
24
24
|
returnDirections?: boolean;
|
|
25
|
+
/** ArcGIS travel mode name or the mode object returned by retrieveTravelModes. */
|
|
26
|
+
travelMode?: unknown;
|
|
25
27
|
}
|
|
26
28
|
export interface RouteTaskDirectionsFeatureCompat {
|
|
27
29
|
attributes: {
|
|
@@ -85,4 +87,6 @@ export declare class RouteTaskCompat {
|
|
|
85
87
|
destroy(): void;
|
|
86
88
|
private notifyWatchers;
|
|
87
89
|
}
|
|
90
|
+
export declare function buildRouteTaskSolveResult(route: RouteSolveResultCompat, stops: readonly RouteStopCompat[], includeDirections: boolean): RouteTaskSolveResultCompat;
|
|
91
|
+
export declare function arcGisRouteServiceProvider(url: string, apiKey: string | undefined, travelMode?: unknown): NonNullable<RouteLayerCompatOptions["routeProvider"]>;
|
|
88
92
|
//# sourceMappingURL=route-task.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-task.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/route-task.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"route-task.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/route-task.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { esriConfig } from "./esri-config.js";
|
|
1
2
|
import { CompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
|
|
2
|
-
import {
|
|
3
|
+
import { identityManager } from "./identity-manager.js";
|
|
4
|
+
import { coordinateToLonLat } from "./map-view-mount.js";
|
|
5
|
+
import { RouteLayerCompat, routeStopFromUnknown, } from "./route-layer.js";
|
|
3
6
|
export class RouteTaskCompat {
|
|
4
7
|
url;
|
|
5
8
|
apiKey;
|
|
@@ -78,7 +81,10 @@ export class RouteTaskCompat {
|
|
|
78
81
|
try {
|
|
79
82
|
const layer = new RouteLayerCompat({
|
|
80
83
|
stops,
|
|
81
|
-
routeProvider: this.routeProvider
|
|
84
|
+
routeProvider: this.routeProvider ??
|
|
85
|
+
(this.url && hasRouteService(this.url)
|
|
86
|
+
? arcGisRouteServiceProvider(this.url, this.apiKey, params.travelMode)
|
|
87
|
+
: undefined),
|
|
82
88
|
eventBus: this.eventBus,
|
|
83
89
|
});
|
|
84
90
|
const route = await layer.solve();
|
|
@@ -111,16 +117,22 @@ export class RouteTaskCompat {
|
|
|
111
117
|
}
|
|
112
118
|
}
|
|
113
119
|
}
|
|
120
|
+
function hasRouteService(url) {
|
|
121
|
+
try {
|
|
122
|
+
// `example.test` is the reserved placeholder host used by migrated fixture
|
|
123
|
+
// apps. It has no service to call, so retain the local route fallback.
|
|
124
|
+
return new URL(url).hostname.toLowerCase() !== "example.test";
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
114
130
|
function normalizeStops(rawStops) {
|
|
115
131
|
if (!rawStops) {
|
|
116
132
|
return [];
|
|
117
133
|
}
|
|
118
134
|
if (Array.isArray(rawStops)) {
|
|
119
|
-
|
|
120
|
-
return arrayStops.map((stop) => ({
|
|
121
|
-
name: stop.name,
|
|
122
|
-
location: [stop.location[0], stop.location[1]],
|
|
123
|
-
}));
|
|
135
|
+
return rawStops.map((stop) => routeStopFromUnknown(stop));
|
|
124
136
|
}
|
|
125
137
|
const featureSet = rawStops;
|
|
126
138
|
const features = featureSet.features ?? [];
|
|
@@ -143,6 +155,92 @@ function normalizeStops(rawStops) {
|
|
|
143
155
|
}
|
|
144
156
|
return stops;
|
|
145
157
|
}
|
|
158
|
+
export function buildRouteTaskSolveResult(route, stops, includeDirections) {
|
|
159
|
+
return buildSolveResult(route, stops, includeDirections);
|
|
160
|
+
}
|
|
161
|
+
export function arcGisRouteServiceProvider(url, apiKey, travelMode) {
|
|
162
|
+
return async (stops) => {
|
|
163
|
+
const solveUrl = new URL(`${url.replace(/\/$/, "")}/solve`);
|
|
164
|
+
solveUrl.searchParams.set("f", "json");
|
|
165
|
+
solveUrl.searchParams.set("outSR", "4326");
|
|
166
|
+
solveUrl.searchParams.set("returnDirections", "true");
|
|
167
|
+
solveUrl.searchParams.set("directionsLengthUnits", "esriNAUKilometers");
|
|
168
|
+
solveUrl.searchParams.set("stops", JSON.stringify({
|
|
169
|
+
features: stops.map((stop) => ({
|
|
170
|
+
geometry: stopGeometry(stop),
|
|
171
|
+
attributes: { Name: stop.name ?? "" },
|
|
172
|
+
})),
|
|
173
|
+
}));
|
|
174
|
+
if (travelMode !== undefined && travelMode !== null) {
|
|
175
|
+
solveUrl.searchParams.set("travelMode", typeof travelMode === "string" ? travelMode : JSON.stringify(travelMode));
|
|
176
|
+
}
|
|
177
|
+
const token = apiKey ?? esriConfig.apiKey ?? identityManager.findCredential(url)?.token;
|
|
178
|
+
if (token) {
|
|
179
|
+
solveUrl.searchParams.set("token", token);
|
|
180
|
+
}
|
|
181
|
+
const response = await fetch(solveUrl);
|
|
182
|
+
const json = (await response.json());
|
|
183
|
+
if (!response.ok || json.error) {
|
|
184
|
+
throw new Error(json.error?.message ?? `Route solve failed (${response.status}).`);
|
|
185
|
+
}
|
|
186
|
+
const feature = json.routes?.features?.[0];
|
|
187
|
+
const pathWkid = feature?.geometry?.spatialReference?.wkid;
|
|
188
|
+
const path = (feature?.geometry?.paths ?? []).flatMap((ring) => ring
|
|
189
|
+
.filter((point) => point.length >= 2)
|
|
190
|
+
.map((point) => coordinateToLonLat([point[0] ?? 0, point[1] ?? 0], pathWkid))
|
|
191
|
+
.filter((point) => point !== undefined));
|
|
192
|
+
const kilometers = numberAttribute(feature?.attributes, "Total_Kilometers");
|
|
193
|
+
const minutes = numberAttribute(feature?.attributes, "Total_TravelTime");
|
|
194
|
+
const metersFromPath = pathLengthMeters(path);
|
|
195
|
+
const directionFeatures = (json.directions?.[0]?.features ?? [])
|
|
196
|
+
.map((step) => {
|
|
197
|
+
const text = step.attributes?.text;
|
|
198
|
+
if (typeof text !== "string" || text.length === 0) {
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
const length = step.attributes?.length;
|
|
202
|
+
const time = step.attributes?.time;
|
|
203
|
+
return {
|
|
204
|
+
text,
|
|
205
|
+
lengthKilometers: typeof length === "number" && Number.isFinite(length) ? length : 0,
|
|
206
|
+
timeMinutes: typeof time === "number" && Number.isFinite(time) ? time : 0,
|
|
207
|
+
};
|
|
208
|
+
})
|
|
209
|
+
.filter((step) => step !== undefined);
|
|
210
|
+
return {
|
|
211
|
+
path: path.length > 0 ? path : stops.map((stop) => [stop.location[0], stop.location[1]]),
|
|
212
|
+
totalLengthMeters: kilometers !== undefined ? kilometers * 1000 : metersFromPath,
|
|
213
|
+
totalTimeSeconds: minutes !== undefined ? minutes * 60 : metersFromPath / 13.4112,
|
|
214
|
+
...(directionFeatures.length > 0 ? { directionFeatures } : {}),
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
function stopGeometry(stop) {
|
|
219
|
+
const [x, y] = stop.location;
|
|
220
|
+
const webMercator = Math.abs(x) > 180 || Math.abs(y) > 90;
|
|
221
|
+
return { x, y, spatialReference: { wkid: webMercator ? 102100 : 4326 } };
|
|
222
|
+
}
|
|
223
|
+
function numberAttribute(attributes, name) {
|
|
224
|
+
const value = attributes?.[name];
|
|
225
|
+
return typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
226
|
+
}
|
|
227
|
+
function pathLengthMeters(path) {
|
|
228
|
+
let total = 0;
|
|
229
|
+
for (let index = 1; index < path.length; index += 1) {
|
|
230
|
+
const previous = path[index - 1];
|
|
231
|
+
const current = path[index];
|
|
232
|
+
if (!previous || !current) {
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
const dLon = ((current[0] - previous[0]) * Math.PI) / 180;
|
|
236
|
+
const dLat = ((current[1] - previous[1]) * Math.PI) / 180;
|
|
237
|
+
const lat1 = (previous[1] * Math.PI) / 180;
|
|
238
|
+
const lat2 = (current[1] * Math.PI) / 180;
|
|
239
|
+
const a = Math.sin(dLat / 2) ** 2 + Math.cos(lat1) * Math.cos(lat2) * Math.sin(dLon / 2) ** 2;
|
|
240
|
+
total += 6371000 * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
241
|
+
}
|
|
242
|
+
return total;
|
|
243
|
+
}
|
|
146
244
|
function buildSolveResult(route, stops, includeDirections) {
|
|
147
245
|
const kilometers = route.totalLengthMeters / 1000;
|
|
148
246
|
const miles = route.totalLengthMeters * 0.000621371;
|
|
@@ -176,6 +274,20 @@ function buildSolveResult(route, stops, includeDirections) {
|
|
|
176
274
|
};
|
|
177
275
|
}
|
|
178
276
|
function buildDirectionFeatures(route) {
|
|
277
|
+
if (route.directionFeatures && route.directionFeatures.length > 0) {
|
|
278
|
+
const path = route.path.map((point) => [point[0], point[1]]);
|
|
279
|
+
return route.directionFeatures.map((step) => ({
|
|
280
|
+
attributes: {
|
|
281
|
+
text: step.text,
|
|
282
|
+
length: step.lengthKilometers,
|
|
283
|
+
time: step.timeMinutes,
|
|
284
|
+
},
|
|
285
|
+
geometry: {
|
|
286
|
+
paths: [path],
|
|
287
|
+
spatialReference: { wkid: 4326 },
|
|
288
|
+
},
|
|
289
|
+
}));
|
|
290
|
+
}
|
|
179
291
|
if (route.path.length < 2 || route.totalLengthMeters <= 0) {
|
|
180
292
|
return [];
|
|
181
293
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-view.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/scene-view.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EACjC,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAChE,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAElD,qBAAa,eAAgB,SAAQ,aAAa;IACzC,WAAW,EAAE,QAAQ,GAAG,OAAO,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,OAAO,CAAC;gBAEJ,OAAO,GAAE,sBAA2B;
|
|
1
|
+
{"version":3,"file":"scene-view.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/scene-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ export class SceneViewCompat extends MapViewCompat {
|
|
|
5
5
|
camera;
|
|
6
6
|
constructor(options = {}) {
|
|
7
7
|
super(options);
|
|
8
|
+
this.mountRenderer = false;
|
|
8
9
|
this.viewingMode = options.viewingMode ?? "global";
|
|
9
10
|
this.qualityProfile = options.qualityProfile;
|
|
10
11
|
this.camera = options.camera;
|
package/esri-compat/search.d.ts
CHANGED
|
@@ -63,7 +63,7 @@ export interface SearchHandleCompat {
|
|
|
63
63
|
}
|
|
64
64
|
export declare class SearchCompat {
|
|
65
65
|
readonly view: unknown;
|
|
66
|
-
|
|
66
|
+
container: HTMLElement | string | null;
|
|
67
67
|
readonly eventBus: CompatEventBus;
|
|
68
68
|
readonly autoNavigate: boolean;
|
|
69
69
|
includeDefaultSources: boolean;
|
|
@@ -89,6 +89,7 @@ export declare class SearchCompat {
|
|
|
89
89
|
private readonly watchListeners;
|
|
90
90
|
private customSources;
|
|
91
91
|
constructor(options?: SearchCompatOptions);
|
|
92
|
+
attachContainer(element: HTMLElement): void;
|
|
92
93
|
load(): Promise<SearchCompat>;
|
|
93
94
|
when(callback?: (widget: SearchCompat) => void): Promise<SearchCompat>;
|
|
94
95
|
watch(propertyName: string, listener: (value: unknown) => void): SearchHandleCompat;
|
|
@@ -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;AAExB,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACxC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,sBAAsB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,GAAG,SAAS,kBAAkB,EAAE,CAAC;IAC7G,OAAO,CAAC,CACN,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,GAAG,SAAS,sBAAsB,EAAE,CAAC;CACnF;AAED,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,MAAM,IAAI,IAAI,CAAC;CAChB;AAMD,qBAAa,YAAY;IACvB,SAAgB,IAAI,EAAE,OAAO,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
|
@@ -58,6 +58,11 @@ export class SearchCompat {
|
|
|
58
58
|
this.watchListeners = new Map();
|
|
59
59
|
this.refreshSourceSubscriptions();
|
|
60
60
|
this.rebuildSources(false);
|
|
61
|
+
mountSearchBox(this);
|
|
62
|
+
}
|
|
63
|
+
attachContainer(element) {
|
|
64
|
+
this.container = element;
|
|
65
|
+
mountSearchBox(this);
|
|
61
66
|
}
|
|
62
67
|
async load() {
|
|
63
68
|
if (this.loaded) {
|
|
@@ -350,11 +355,21 @@ function resolveViewSearchSources(view, limits) {
|
|
|
350
355
|
}
|
|
351
356
|
catch {
|
|
352
357
|
fieldSearchUnsupported = true;
|
|
353
|
-
|
|
358
|
+
try {
|
|
359
|
+
response = await layer.queryFeatures(fallbackQueryOptions);
|
|
360
|
+
}
|
|
361
|
+
catch {
|
|
362
|
+
response = await layer.queryFeatures(createLocalSearchQueryOptions(fieldSearchConfig.searchableFields, normalizedTerm));
|
|
363
|
+
}
|
|
354
364
|
}
|
|
355
365
|
}
|
|
356
366
|
else {
|
|
357
|
-
|
|
367
|
+
try {
|
|
368
|
+
response = await layer.queryFeatures(fallbackQueryOptions);
|
|
369
|
+
}
|
|
370
|
+
catch {
|
|
371
|
+
response = await layer.queryFeatures(createLocalSearchQueryOptions(fieldSearchConfig.searchableFields, normalizedTerm));
|
|
372
|
+
}
|
|
358
373
|
}
|
|
359
374
|
return extractFeatures(response);
|
|
360
375
|
});
|
|
@@ -448,6 +463,32 @@ const COMMON_SEARCH_FIELD_NAMES = [
|
|
|
448
463
|
];
|
|
449
464
|
const MAX_SERVER_SEARCH_FIELDS = 6;
|
|
450
465
|
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
|
+
}
|
|
451
492
|
function createFallbackLayerSearchQueryOptions(maxFeatureCandidates, normalizedTerm, outFields) {
|
|
452
493
|
return {
|
|
453
494
|
where: "1=1",
|
|
@@ -471,6 +512,15 @@ function createOptimizedLayerSearchQueryOptions(config, normalizedTerm, maxFeatu
|
|
|
471
512
|
},
|
|
472
513
|
};
|
|
473
514
|
}
|
|
515
|
+
function createLocalSearchQueryOptions(searchableFields, normalizedTerm) {
|
|
516
|
+
const field = searchableFields[0] ?? "name";
|
|
517
|
+
const escaped = normalizedTerm.replace(/'/g, "''");
|
|
518
|
+
return {
|
|
519
|
+
where: `${field} LIKE '%${escaped}%'`,
|
|
520
|
+
returnGeometry: true,
|
|
521
|
+
outFields: ["*"],
|
|
522
|
+
};
|
|
523
|
+
}
|
|
474
524
|
function createSearchWhereClause(searchableFields, normalizedTerm) {
|
|
475
525
|
const escapedTerm = escapeSqlLiteral(normalizedTerm.toUpperCase());
|
|
476
526
|
return searchableFields.map((field) => `UPPER(${field}) LIKE '%${escapedTerm}%' ESCAPE '\\\\'`).join(" OR ");
|
|
@@ -5,6 +5,7 @@ export interface UniqueValueInfoCompat {
|
|
|
5
5
|
description?: string;
|
|
6
6
|
}
|
|
7
7
|
export interface UniqueValueRendererCompatOptions {
|
|
8
|
+
visualVariables?: unknown[];
|
|
8
9
|
field?: string;
|
|
9
10
|
field2?: string;
|
|
10
11
|
field3?: string;
|
|
@@ -17,6 +18,7 @@ export interface UniqueValueRendererHandleCompat {
|
|
|
17
18
|
remove(): void;
|
|
18
19
|
}
|
|
19
20
|
export declare class UniqueValueRendererCompat {
|
|
21
|
+
visualVariables: unknown[];
|
|
20
22
|
loaded: boolean;
|
|
21
23
|
loadStatus: UniqueValueRendererLoadStatusCompat;
|
|
22
24
|
field: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unique-value-renderer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/unique-value-renderer.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,mCAAmC,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,+BAA+B;IAC9C,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,yBAAyB;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,mCAAmC,CAAC;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,gCAAqC;
|
|
1
|
+
{"version":3,"file":"unique-value-renderer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/unique-value-renderer.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,mCAAmC,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,+BAA+B;IAC9C,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,yBAAyB;IAC7B,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,mCAAmC,CAAC;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,gCAAqC;IAapD,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAc1C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAQxG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,+BAA+B;IAehG,MAAM,CAAC,OAAO,EAAE,gCAAgC,GAAG,IAAI;IA+BvD,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAKrD,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAUtD,KAAK,IAAI,yBAAyB;IAIlC,MAAM,IAAI,gCAAgC;IAY1C,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { safeInvokeCompatListener } from "./event-bus.js";
|
|
2
2
|
export class UniqueValueRendererCompat {
|
|
3
|
+
visualVariables;
|
|
3
4
|
loaded;
|
|
4
5
|
loadStatus;
|
|
5
6
|
field;
|
|
@@ -10,6 +11,7 @@ export class UniqueValueRendererCompat {
|
|
|
10
11
|
uniqueValueInfos;
|
|
11
12
|
watchListeners;
|
|
12
13
|
constructor(options = {}) {
|
|
14
|
+
this.visualVariables = structuredClone(options.visualVariables ?? []);
|
|
13
15
|
this.loaded = false;
|
|
14
16
|
this.loadStatus = "not-loaded";
|
|
15
17
|
this.field = options.field;
|
|
@@ -53,6 +55,10 @@ export class UniqueValueRendererCompat {
|
|
|
53
55
|
};
|
|
54
56
|
}
|
|
55
57
|
update(options) {
|
|
58
|
+
if (options.visualVariables !== undefined) {
|
|
59
|
+
this.visualVariables = structuredClone(options.visualVariables);
|
|
60
|
+
this.notifyWatchers("visualVariables", this.visualVariables);
|
|
61
|
+
}
|
|
56
62
|
if (options.field !== undefined) {
|
|
57
63
|
this.field = options.field;
|
|
58
64
|
this.notifyWatchers("field", this.field);
|
|
@@ -96,6 +102,7 @@ export class UniqueValueRendererCompat {
|
|
|
96
102
|
}
|
|
97
103
|
toJSON() {
|
|
98
104
|
return {
|
|
105
|
+
visualVariables: structuredClone(this.visualVariables),
|
|
99
106
|
field: this.field,
|
|
100
107
|
field2: this.field2,
|
|
101
108
|
field3: this.field3,
|
package/esri-compat/web-map.d.ts
CHANGED
|
@@ -5,8 +5,18 @@ export interface WebMapCompatOptions extends MapCompatOptions {
|
|
|
5
5
|
export type WebMapLoadStatusCompat = MapLoadStatusCompat;
|
|
6
6
|
export type WebMapHandleCompat = MapCompatHandle;
|
|
7
7
|
export declare class WebMapCompat extends MapCompat {
|
|
8
|
+
initialExtent: {
|
|
9
|
+
xmin: number;
|
|
10
|
+
ymin: number;
|
|
11
|
+
xmax: number;
|
|
12
|
+
ymax: number;
|
|
13
|
+
spatialReference?: {
|
|
14
|
+
wkid?: number;
|
|
15
|
+
};
|
|
16
|
+
} | undefined;
|
|
8
17
|
constructor(options?: WebMapCompatOptions);
|
|
9
18
|
load(): Promise<WebMapCompat>;
|
|
19
|
+
private populateFromPortalItem;
|
|
10
20
|
when(callback?: (map: WebMapCompat) => void): Promise<WebMapCompat>;
|
|
11
21
|
watch(propertyName: string, listener: (value: unknown) => void): WebMapHandleCompat;
|
|
12
22
|
setPortalItem(portalItem: unknown): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-map.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/web-map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web-map.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/web-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG5G,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD,qBAAa,YAAa,SAAQ,SAAS;IAClC,aAAa,EAChB;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChG,SAAS,CAAC;gBAEK,OAAO,GAAE,mBAAwB;IAK9B,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;YASrC,sBAAsB;IA0BvB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAQzE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,kBAAkB;IAInF,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;CAIhD"}
|