@honua/app-platform 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/controls/catalog.d.ts.map +1 -1
- package/controls/catalog.js +12 -1
- package/controls/qualification.d.ts.map +1 -1
- package/controls/qualification.js +71 -8
- 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/custom-elements.json +341 -0
- 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/geocoding/index.d.ts +1 -0
- package/geocoding/index.d.ts.map +1 -1
- package/geocoding/index.js +18 -8
- package/geocoding/provider-http.d.ts.map +1 -1
- package/geocoding/provider-http.js +3 -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/operate/client.d.ts +11 -1
- package/operate/client.d.ts.map +1 -1
- package/operate/client.js +39 -2
- package/operate/index.d.ts +1 -1
- package/operate/index.d.ts.map +1 -1
- package/operate/types.d.ts +40 -6
- package/operate/types.d.ts.map +1 -1
- package/package.json +6 -4
- 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/scene-workspace/cesium-adapter.d.ts +8 -8
- package/scene-workspace/cesium-adapter.d.ts.map +1 -1
- package/scene-workspace/cesium-adapter.js +31 -18
- 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/maplibre-state-sync.d.ts.map +1 -1
- package/scene-workspace/maplibre-state-sync.js +35 -3
- package/scene-workspace/primitives.d.ts +37 -5
- package/scene-workspace/primitives.d.ts.map +1 -1
- package/scene-workspace/primitives.js +55 -18
- package/scene-workspace/source-to-cesium.js +1 -1
- package/scene-workspace/state-sync-port-kit.d.ts +1 -1
- package/scene-workspace/state-sync-port-kit.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/web-components/application-context.d.ts +186 -0
- package/web-components/application-context.d.ts.map +1 -0
- package/web-components/application-context.js +429 -0
- package/web-components/elements.d.ts +10 -1
- package/web-components/elements.d.ts.map +1 -1
- package/web-components/elements.js +187 -7
- package/web-components/export-redaction.d.ts +11 -102
- package/web-components/export-redaction.d.ts.map +1 -1
- package/web-components/export-redaction.js +7 -260
- package/web-components/feature-editor-offline.d.ts +32 -0
- package/web-components/feature-editor-offline.d.ts.map +1 -0
- package/web-components/feature-editor-offline.js +115 -0
- package/web-components/feature-editor-workflow.d.ts +85 -22
- package/web-components/feature-editor-workflow.d.ts.map +1 -1
- package/web-components/feature-editor-workflow.js +240 -0
- package/web-components/feature-editor.d.ts +20 -6
- package/web-components/feature-editor.d.ts.map +1 -1
- package/web-components/feature-editor.js +159 -7
- package/web-components/feature-inspection.d.ts +287 -0
- package/web-components/feature-inspection.d.ts.map +1 -0
- package/web-components/feature-inspection.js +1464 -0
- package/web-components/feature-mutation.d.ts +77 -0
- package/web-components/feature-mutation.d.ts.map +1 -0
- package/web-components/feature-mutation.js +137 -0
- package/web-components/feature-table-engine.d.ts +94 -4
- package/web-components/feature-table-engine.d.ts.map +1 -1
- package/web-components/feature-table-engine.js +365 -18
- package/web-components/feature-table-view.d.ts +35 -1
- package/web-components/feature-table-view.d.ts.map +1 -1
- package/web-components/feature-table-view.js +128 -12
- package/web-components/index.d.ts +16 -7
- package/web-components/index.d.ts.map +1 -1
- package/web-components/index.js +9 -2
- package/web-components/map-pointer-claim.d.ts +24 -0
- package/web-components/map-pointer-claim.d.ts.map +1 -0
- package/web-components/map-pointer-claim.js +40 -0
- package/web-components/maplibre-renderer.d.ts.map +1 -1
- package/web-components/maplibre-renderer.js +5 -1
- package/web-components/measurement-units.d.ts +88 -0
- package/web-components/measurement-units.d.ts.map +1 -0
- package/web-components/measurement-units.js +278 -0
- package/web-components/measurement.d.ts +75 -4
- package/web-components/measurement.d.ts.map +1 -1
- package/web-components/measurement.js +227 -28
- package/web-components/types.d.ts +58 -3
- package/web-components/types.d.ts.map +1 -1
- 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
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { Expr, eq, exponential, get, interpolate, linear, rgba, switchCase, toNumber, typeOf, zoom, } from "../expr/expression.js";
|
|
2
|
+
/** Apply only explicit bindings; prototype names are valid source fields. */
|
|
3
|
+
export function bindRendererField(field, options) {
|
|
4
|
+
const bindings = options.fieldMap;
|
|
5
|
+
return bindings && Object.hasOwn(bindings, field) ? (bindings[field] ?? field) : field;
|
|
6
|
+
}
|
|
7
|
+
/** ArcGIS Web Mercator scale at MapLibre zoom zero: 512 CSS pixels, 96 DPI.
|
|
8
|
+
* This is projected scale, so latitude does not change it. Ground resolution
|
|
9
|
+
* differs by cos(latitude); $view.scale is not a ground-distance measurement.
|
|
10
|
+
*/
|
|
11
|
+
export const WEB_MERCATOR_SCALE_AT_ZOOM_ZERO = (2 * Math.PI * 6378137 * 96) / (512 * 0.0254);
|
|
12
|
+
export function webMercatorScaleToZoom(scale) {
|
|
13
|
+
return Math.log2(WEB_MERCATOR_SCALE_AT_ZOOM_ZERO / scale);
|
|
14
|
+
}
|
|
15
|
+
export function compileVisualVariables(variables, layerType, basePaint, warn, options = {}, outlineWidth = 0, outlinePaint = {}) {
|
|
16
|
+
const result = { paint: {}, legends: [] };
|
|
17
|
+
if (variables === undefined)
|
|
18
|
+
return result;
|
|
19
|
+
if (!Array.isArray(variables)) {
|
|
20
|
+
warn.child("visualVariables").warn("unsupported-visual-variable", "Expected a visualVariables array.");
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
const assigned = new Set();
|
|
24
|
+
variables.forEach((input, index) => {
|
|
25
|
+
const at = warn.child(`visualVariables[${index}]`);
|
|
26
|
+
const reject = (message, property) => (property ? at.child(property) : at).warn("unsupported-visual-variable", message);
|
|
27
|
+
if (!isRecord(input))
|
|
28
|
+
return reject("Expected a visual variable object.");
|
|
29
|
+
const color = input.type === "colorInfo";
|
|
30
|
+
if (!color && input.type !== "sizeInfo")
|
|
31
|
+
return reject(`Unsupported visual variable type: ${String(input.type)}. Reauthor this variable.`, "type");
|
|
32
|
+
for (const key of Object.keys(input)) {
|
|
33
|
+
if (!KNOWN_PROPERTIES.has(key))
|
|
34
|
+
return reject(`Unsupported visual variable property '${key}'; this variable was not applied.`, key);
|
|
35
|
+
}
|
|
36
|
+
if (color &&
|
|
37
|
+
["minDataValue", "maxDataValue", "minSize", "maxSize", "valueUnit"].some((key) => input[key] != null)) {
|
|
38
|
+
return reject("Size range properties cannot be applied to a colorInfo variable.");
|
|
39
|
+
}
|
|
40
|
+
const normalization = ["normalizationField", "normalizationType", "normalizationTotal"].find((key) => input[key] != null);
|
|
41
|
+
if (normalization) {
|
|
42
|
+
return reject("Visual variable normalization is unsupported; precompute a numeric field and bind it explicitly.", normalization);
|
|
43
|
+
}
|
|
44
|
+
const expression = input.valueExpression ?? input.expression;
|
|
45
|
+
const scale = !color && (expression === "$view.scale" || expression === "view.scale");
|
|
46
|
+
if (expression != null && !scale)
|
|
47
|
+
return reject("Unsupported visual variable expression; bind a numeric field or use $view.scale for sizeInfo.", input.valueExpression !== undefined ? "valueExpression" : "expression");
|
|
48
|
+
if (input.valueExpression !== undefined &&
|
|
49
|
+
input.expression !== undefined &&
|
|
50
|
+
!["$view.scale", "view.scale"].includes(String(input.expression))) {
|
|
51
|
+
return reject("Conflicting expression and valueExpression properties.", "expression");
|
|
52
|
+
}
|
|
53
|
+
if (!scale && (typeof input.field !== "string" || input.field.length === 0))
|
|
54
|
+
return reject("A numeric field is required.", "field");
|
|
55
|
+
if (input.valueUnit != null && input.valueUnit !== "unknown")
|
|
56
|
+
return reject("Real-world size units are unsupported; provide a screen size ramp in points.", "valueUnit");
|
|
57
|
+
const outline = !color && layerType === "fill" && input.target === "outline";
|
|
58
|
+
if (input.target != null && !outline)
|
|
59
|
+
return reject("Only sizeInfo on polygon outlines supports a target.", "target");
|
|
60
|
+
const property = color
|
|
61
|
+
? { circle: "circle-color", line: "line-color", fill: "fill-color" }[layerType]
|
|
62
|
+
: outline
|
|
63
|
+
? "line-width"
|
|
64
|
+
: { circle: "circle-radius", line: "line-width" }[layerType];
|
|
65
|
+
if (!property)
|
|
66
|
+
return reject(`Unsupported ${String(input.type)} combination with ${layerType} symbols.`);
|
|
67
|
+
if (assigned.has(property))
|
|
68
|
+
return reject(`Multiple variables target ${property}; only the first supported variable is applied.`);
|
|
69
|
+
let rawStops = input.stops;
|
|
70
|
+
const stopPath = (index, property) => input.stops !== undefined
|
|
71
|
+
? `stops[${index}].${property}`
|
|
72
|
+
: `${index === 0 ? "min" : "max"}${property === "value" ? "DataValue" : "Size"}`;
|
|
73
|
+
if (!color && rawStops === undefined)
|
|
74
|
+
rawStops = [
|
|
75
|
+
{ value: input.minDataValue, size: input.minSize },
|
|
76
|
+
{ value: input.maxDataValue, size: input.maxSize },
|
|
77
|
+
];
|
|
78
|
+
if (!Array.isArray(rawStops) || rawStops.length < 2)
|
|
79
|
+
return reject("At least two strictly ascending stops are required.", "stops");
|
|
80
|
+
const stops = [];
|
|
81
|
+
for (let i = 0; i < rawStops.length; i++) {
|
|
82
|
+
const stop = rawStops[i];
|
|
83
|
+
if (!isRecord(stop) ||
|
|
84
|
+
!finite(stop.value) ||
|
|
85
|
+
(scale && stop.value <= 0) ||
|
|
86
|
+
(i > 0 && stop.value <= stops[i - 1].value))
|
|
87
|
+
return reject("Stop values must be finite, strictly ascending, and positive for scale.", stopPath(i, "value"));
|
|
88
|
+
for (const property of Object.keys(stop)) {
|
|
89
|
+
if (!["value", "label", color ? "color" : "size"].includes(property)) {
|
|
90
|
+
return reject(`Unsupported stop property '${property}'; this variable was not applied.`, `stops[${i}].${property}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
const label = typeof stop.label === "string" ? stop.label : String(stop.value);
|
|
94
|
+
if (color) {
|
|
95
|
+
const c = stop.color;
|
|
96
|
+
if (!Array.isArray(c) || c.length !== 4 || !c.every((v) => finite(v) && v >= 0 && v <= 255))
|
|
97
|
+
return reject("Color stops require RGBA components in [0,255].", `stops[${i}].color`);
|
|
98
|
+
const css = `rgba(${c[0]},${c[1]},${c[2]},${c[3] / 255})`;
|
|
99
|
+
stops.push({ value: stop.value, output: rgba(c[0], c[1], c[2], c[3] / 255), label, color: css });
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
if (!finite(stop.size) || stop.size < 0)
|
|
103
|
+
return reject("Size stops require a finite nonnegative size in points; nested scale ranges are unsupported.", stopPath(i, "size"));
|
|
104
|
+
const size = (stop.size * (96 / 72)) / (layerType === "circle" ? 2 : 1);
|
|
105
|
+
stops.push({ value: stop.value, output: size, label, size });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const field = typeof input.field === "string" ? bindRendererField(input.field, options) : undefined;
|
|
109
|
+
const sourceFallback = missingSafeStyle(outline ? outlineWidth : (basePaint[property] ?? (color ? "transparent" : 0)));
|
|
110
|
+
const fallback = sourceFallback;
|
|
111
|
+
const ramp = scale
|
|
112
|
+
? interpolate(exponential(0.5), zoom(), ...[...stops].reverse().map((s) => [webMercatorScaleToZoom(s.value), s.output]))
|
|
113
|
+
: switchCase([
|
|
114
|
+
eq(typeOf(get(field)), "number"),
|
|
115
|
+
interpolate(linear(), toNumber(get(field)), ...stops.map((s) => [s.value, s.output])),
|
|
116
|
+
], new Expr(fallback));
|
|
117
|
+
if (outline) {
|
|
118
|
+
result.outline = {
|
|
119
|
+
paint: {
|
|
120
|
+
...outlinePaint,
|
|
121
|
+
"line-color": basePaint["fill-outline-color"] ?? "transparent",
|
|
122
|
+
"line-width": ramp.toJSON(),
|
|
123
|
+
},
|
|
124
|
+
layout: {},
|
|
125
|
+
};
|
|
126
|
+
// A separate line layer replaces MapLibre's fixed one-pixel fill outline.
|
|
127
|
+
result.paint["fill-outline-color"] = "transparent";
|
|
128
|
+
}
|
|
129
|
+
else
|
|
130
|
+
result.paint[property] = ramp.toJSON();
|
|
131
|
+
// Symbol alpha is carried by color, never multiplied a second time.
|
|
132
|
+
if (color && layerType === "fill")
|
|
133
|
+
result.paint["fill-opacity"] = 1;
|
|
134
|
+
assigned.add(property);
|
|
135
|
+
const legendOptions = isRecord(input.legendOptions) ? input.legendOptions : undefined;
|
|
136
|
+
if (legendOptions?.showLegend !== false)
|
|
137
|
+
result.legends.push({
|
|
138
|
+
type: color ? "color" : "size",
|
|
139
|
+
...(field ? { field } : {}),
|
|
140
|
+
...(typeof legendOptions?.title === "string" ? { title: legendOptions.title } : {}),
|
|
141
|
+
property,
|
|
142
|
+
input: scale ? "scale" : "field",
|
|
143
|
+
stops: stops.map(({ output: _output, ...stop }) => stop),
|
|
144
|
+
outOfRange: "clamp",
|
|
145
|
+
missingValue: "base-symbol",
|
|
146
|
+
missingValueStyle: fallback,
|
|
147
|
+
...(!color ? { sizeUnit: "css-pixels" } : {}),
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
function finite(value) {
|
|
153
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
154
|
+
}
|
|
155
|
+
function isRecord(value) {
|
|
156
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
157
|
+
}
|
|
158
|
+
// A class-break step requires a number. Missing classification values use its
|
|
159
|
+
// default symbol instead of causing a MapLibre expression evaluation error.
|
|
160
|
+
function missingSafeStyle(style) {
|
|
161
|
+
return Array.isArray(style) && style[0] === "step"
|
|
162
|
+
? ["case", ["==", ["typeof", style[1]], "number"], style, style[2]]
|
|
163
|
+
: style;
|
|
164
|
+
}
|
|
165
|
+
const KNOWN_PROPERTIES = new Set([
|
|
166
|
+
"type",
|
|
167
|
+
"field",
|
|
168
|
+
"stops",
|
|
169
|
+
"valueExpression",
|
|
170
|
+
"expression",
|
|
171
|
+
"valueExpressionTitle",
|
|
172
|
+
"legendOptions",
|
|
173
|
+
"normalizationField",
|
|
174
|
+
"normalizationType",
|
|
175
|
+
"normalizationTotal",
|
|
176
|
+
"target",
|
|
177
|
+
"valueUnit",
|
|
178
|
+
"minDataValue",
|
|
179
|
+
"maxDataValue",
|
|
180
|
+
"minSize",
|
|
181
|
+
"maxSize",
|
|
182
|
+
"authoringInfo",
|
|
183
|
+
]);
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { Source } from "../contract/index.js";
|
|
2
|
+
import { type HonuaComponentRegistry } from "../controls/registry.js";
|
|
3
|
+
import type { QueryExecutionPlan } from "../query-planner/index.js";
|
|
4
|
+
import type { MaplibreMap } from "../runtime/index.js";
|
|
5
|
+
/** Version of the application-context snapshot and event contract. */
|
|
6
|
+
export declare const HONUA_APPLICATION_CONTEXT_VERSION: 1;
|
|
7
|
+
/** Every state a supported application component can present. */
|
|
8
|
+
export type HonuaApplicationStatus = "idle" | "loading" | "ready" | "empty" | "stale" | "degraded" | "unauthorized" | "unsupported" | "offline" | "failed";
|
|
9
|
+
export type HonuaApplicationDirection = "ltr" | "rtl" | "auto";
|
|
10
|
+
export type HonuaApplicationDiagnosticSeverity = "info" | "warning" | "error";
|
|
11
|
+
export interface HonuaApplicationDiagnostic {
|
|
12
|
+
readonly code: string;
|
|
13
|
+
readonly message: string;
|
|
14
|
+
readonly severity: HonuaApplicationDiagnosticSeverity;
|
|
15
|
+
readonly componentId?: string;
|
|
16
|
+
readonly status?: HonuaApplicationStatus;
|
|
17
|
+
}
|
|
18
|
+
export interface HonuaApplicationFreshness {
|
|
19
|
+
readonly state: "current" | "stale" | "unknown";
|
|
20
|
+
readonly observedAt?: string;
|
|
21
|
+
readonly staleAfter?: string;
|
|
22
|
+
readonly generation: number;
|
|
23
|
+
}
|
|
24
|
+
/** Credential-free authorization identity. Tokens and headers never belong here. */
|
|
25
|
+
export interface HonuaApplicationAuthorization {
|
|
26
|
+
readonly status: "authorized" | "unauthorized" | "unknown";
|
|
27
|
+
readonly principalId?: string;
|
|
28
|
+
readonly scopes: readonly string[];
|
|
29
|
+
}
|
|
30
|
+
export interface HonuaApplicationTimeState {
|
|
31
|
+
readonly start?: number;
|
|
32
|
+
readonly end?: number;
|
|
33
|
+
readonly current?: number;
|
|
34
|
+
}
|
|
35
|
+
export interface HonuaApplicationThemeTokens {
|
|
36
|
+
readonly background?: string;
|
|
37
|
+
readonly surface?: string;
|
|
38
|
+
readonly foreground?: string;
|
|
39
|
+
readonly muted?: string;
|
|
40
|
+
readonly border?: string;
|
|
41
|
+
readonly accent?: string;
|
|
42
|
+
readonly accentForeground?: string;
|
|
43
|
+
readonly danger?: string;
|
|
44
|
+
readonly colorScheme?: "light" | "dark" | "light dark";
|
|
45
|
+
readonly reducedMotion?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface HonuaApplicationLocalePack {
|
|
48
|
+
readonly locale: string;
|
|
49
|
+
readonly direction?: HonuaApplicationDirection;
|
|
50
|
+
readonly status?: Partial<Readonly<Record<HonuaApplicationStatus, string>>>;
|
|
51
|
+
readonly number?: Intl.NumberFormatOptions;
|
|
52
|
+
readonly date?: Intl.DateTimeFormatOptions;
|
|
53
|
+
readonly unit?: Intl.NumberFormatOptions;
|
|
54
|
+
}
|
|
55
|
+
export interface HonuaApplicationBinding<T = Record<string, unknown>> {
|
|
56
|
+
readonly source?: Source<T>;
|
|
57
|
+
/** Stable, credential-free identity. Defaults to `source.descriptor.id`. */
|
|
58
|
+
readonly sourceIdentity?: string;
|
|
59
|
+
readonly plan?: QueryExecutionPlan;
|
|
60
|
+
/** Stable identity for accepted plans. Defaults to the plan fingerprint. */
|
|
61
|
+
readonly planIdentity?: string;
|
|
62
|
+
readonly map?: MaplibreMap;
|
|
63
|
+
}
|
|
64
|
+
export interface HonuaApplicationContextSnapshot<T = Record<string, unknown>> {
|
|
65
|
+
readonly version: typeof HONUA_APPLICATION_CONTEXT_VERSION;
|
|
66
|
+
readonly revision: number;
|
|
67
|
+
readonly invalidationGeneration: number;
|
|
68
|
+
readonly status: HonuaApplicationStatus;
|
|
69
|
+
readonly binding: HonuaApplicationBinding<T>;
|
|
70
|
+
readonly viewport: Readonly<Record<string, unknown>> | undefined;
|
|
71
|
+
readonly filters: readonly unknown[];
|
|
72
|
+
readonly selection: readonly unknown[];
|
|
73
|
+
readonly time: HonuaApplicationTimeState | undefined;
|
|
74
|
+
readonly edits: readonly unknown[];
|
|
75
|
+
readonly freshness: HonuaApplicationFreshness;
|
|
76
|
+
readonly authorization: HonuaApplicationAuthorization;
|
|
77
|
+
readonly diagnostics: readonly HonuaApplicationDiagnostic[];
|
|
78
|
+
readonly locale: HonuaApplicationLocalePack;
|
|
79
|
+
readonly theme: HonuaApplicationThemeTokens;
|
|
80
|
+
}
|
|
81
|
+
export interface HonuaApplicationContextUpdate<T = Record<string, unknown>> {
|
|
82
|
+
readonly status?: HonuaApplicationStatus;
|
|
83
|
+
readonly binding?: HonuaApplicationBinding<T>;
|
|
84
|
+
readonly viewport?: Readonly<Record<string, unknown>> | undefined;
|
|
85
|
+
readonly filters?: readonly unknown[];
|
|
86
|
+
readonly selection?: readonly unknown[];
|
|
87
|
+
readonly time?: HonuaApplicationTimeState | undefined;
|
|
88
|
+
readonly edits?: readonly unknown[];
|
|
89
|
+
readonly freshness?: Partial<HonuaApplicationFreshness>;
|
|
90
|
+
readonly authorization?: HonuaApplicationAuthorization;
|
|
91
|
+
readonly diagnostics?: readonly HonuaApplicationDiagnostic[];
|
|
92
|
+
readonly locale?: HonuaApplicationLocalePack;
|
|
93
|
+
readonly theme?: HonuaApplicationThemeTokens;
|
|
94
|
+
}
|
|
95
|
+
export type HonuaApplicationContextChangedKey = Exclude<keyof HonuaApplicationContextSnapshot, "version" | "revision">;
|
|
96
|
+
export interface HonuaApplicationContextChangeEvent<T = Record<string, unknown>> {
|
|
97
|
+
readonly previous: HonuaApplicationContextSnapshot<T>;
|
|
98
|
+
readonly current: HonuaApplicationContextSnapshot<T>;
|
|
99
|
+
readonly changed: readonly HonuaApplicationContextChangedKey[];
|
|
100
|
+
readonly reason: "update" | "source-replacement" | "authorization-replacement" | "invalidation" | "realtime";
|
|
101
|
+
}
|
|
102
|
+
export interface HonuaApplicationRealtimeDelta<T = Record<string, unknown>> {
|
|
103
|
+
readonly sourceIdentity: string;
|
|
104
|
+
readonly planIdentity?: string;
|
|
105
|
+
readonly mode: "patch" | "invalidate";
|
|
106
|
+
readonly update?: Omit<HonuaApplicationContextUpdate<T>, "binding" | "authorization">;
|
|
107
|
+
}
|
|
108
|
+
export interface HonuaApplicationStatusPresentation {
|
|
109
|
+
readonly status: HonuaApplicationStatus;
|
|
110
|
+
readonly label: string;
|
|
111
|
+
readonly role: "status" | "alert";
|
|
112
|
+
readonly ariaLive: "polite" | "assertive";
|
|
113
|
+
readonly busy: boolean;
|
|
114
|
+
readonly recoverable: boolean;
|
|
115
|
+
}
|
|
116
|
+
export interface CreateHonuaApplicationContextOptions<T = Record<string, unknown>> extends HonuaApplicationContextUpdate<T> {
|
|
117
|
+
readonly onChange?: (event: HonuaApplicationContextChangeEvent<T>) => void;
|
|
118
|
+
}
|
|
119
|
+
export interface HonuaApplicationContext<T = Record<string, unknown>> {
|
|
120
|
+
readonly version: typeof HONUA_APPLICATION_CONTEXT_VERSION;
|
|
121
|
+
readonly disposed: boolean;
|
|
122
|
+
readonly snapshot: HonuaApplicationContextSnapshot<T>;
|
|
123
|
+
update(update: HonuaApplicationContextUpdate<T>): HonuaApplicationContextSnapshot<T>;
|
|
124
|
+
replaceBinding(binding: HonuaApplicationBinding<T>): HonuaApplicationContextSnapshot<T>;
|
|
125
|
+
replaceAuthorization(authorization: HonuaApplicationAuthorization): HonuaApplicationContextSnapshot<T>;
|
|
126
|
+
invalidate(reason?: string): HonuaApplicationContextSnapshot<T>;
|
|
127
|
+
applyRealtimeDelta(delta: HonuaApplicationRealtimeDelta<T>): boolean;
|
|
128
|
+
reportDiagnostic(diagnostic: HonuaApplicationDiagnostic): HonuaApplicationContextSnapshot<T>;
|
|
129
|
+
subscribe(listener: (event: HonuaApplicationContextChangeEvent<T>) => void): {
|
|
130
|
+
remove(): void;
|
|
131
|
+
};
|
|
132
|
+
runSharedRequest<TResult>(key: string, request: (signal: AbortSignal) => Promise<TResult>): Promise<TResult>;
|
|
133
|
+
formatNumber(value: number, options?: Intl.NumberFormatOptions): string;
|
|
134
|
+
formatDate(value: Date | number | string, options?: Intl.DateTimeFormatOptions): string;
|
|
135
|
+
formatUnit(value: number, unit: Intl.NumberFormatOptions["unit"], options?: Intl.NumberFormatOptions): string;
|
|
136
|
+
statusPresentation(status?: HonuaApplicationStatus): HonuaApplicationStatusPresentation;
|
|
137
|
+
dispose(): void;
|
|
138
|
+
}
|
|
139
|
+
export interface HonuaApplicationContextParticipant<T = Record<string, unknown>> {
|
|
140
|
+
applicationContext?: HonuaApplicationContext<T>;
|
|
141
|
+
honuaApplicationContextConnected?(context: HonuaApplicationContext<T>): void;
|
|
142
|
+
honuaApplicationContextChanged?(event: HonuaApplicationContextChangeEvent<T>): void;
|
|
143
|
+
honuaApplicationContextDisconnected?(context: HonuaApplicationContext<T>): void;
|
|
144
|
+
}
|
|
145
|
+
export interface MountHonuaApplicationOptions<T = Record<string, unknown>> {
|
|
146
|
+
readonly host: Element;
|
|
147
|
+
readonly context?: HonuaApplicationContext<T>;
|
|
148
|
+
readonly initial?: CreateHonuaApplicationContextOptions<T>;
|
|
149
|
+
readonly registry?: HonuaComponentRegistry;
|
|
150
|
+
/** Register the canonical component suite before mounting. @default true */
|
|
151
|
+
readonly register?: boolean;
|
|
152
|
+
/** Tokens applied after the context theme, allowing a mount-local override. */
|
|
153
|
+
readonly theme?: HonuaApplicationThemeTokens;
|
|
154
|
+
}
|
|
155
|
+
export interface HonuaMountedApplication<T = Record<string, unknown>> {
|
|
156
|
+
readonly host: Element;
|
|
157
|
+
readonly context: HonuaApplicationContext<T>;
|
|
158
|
+
readonly disposed: boolean;
|
|
159
|
+
dispose(): void;
|
|
160
|
+
}
|
|
161
|
+
/** Public property, event, and disposal conventions shared by supported components. */
|
|
162
|
+
export declare const HONUA_APPLICATION_COMPONENT_CONVENTIONS: Readonly<{
|
|
163
|
+
readonly contextProperty: "applicationContext";
|
|
164
|
+
readonly contextChangeEvent: "honua-application-context-change";
|
|
165
|
+
readonly statusChangeEvent: "honua-application-status-change";
|
|
166
|
+
readonly diagnosticEvent: "honua-application-diagnostic";
|
|
167
|
+
readonly connectedCallback: "honuaApplicationContextConnected";
|
|
168
|
+
readonly changedCallback: "honuaApplicationContextChanged";
|
|
169
|
+
readonly disconnectedCallback: "honuaApplicationContextDisconnected";
|
|
170
|
+
}>;
|
|
171
|
+
/** Maps a status to one consistent accessible presentation contract. */
|
|
172
|
+
export declare function presentHonuaApplicationStatus(status: HonuaApplicationStatus, locale?: HonuaApplicationLocalePack): HonuaApplicationStatusPresentation;
|
|
173
|
+
/**
|
|
174
|
+
* Creates one application-scoped state owner. It coordinates invalidation and
|
|
175
|
+
* in-flight work but deliberately does not retain result pages or create a
|
|
176
|
+
* second persistent cache.
|
|
177
|
+
*/
|
|
178
|
+
export declare function createHonuaApplicationContext<T = Record<string, unknown>>(options?: CreateHonuaApplicationContextOptions<T>): HonuaApplicationContext<T>;
|
|
179
|
+
/** Registers the canonical suite from one explicit, idempotent call. */
|
|
180
|
+
export declare function registerHonuaApplicationComponents(registry?: HonuaComponentRegistry): Promise<void>;
|
|
181
|
+
/**
|
|
182
|
+
* Registers and mounts one context. Descendant Honua elements added later are
|
|
183
|
+
* joined through one observer and disconnected deterministically on removal.
|
|
184
|
+
*/
|
|
185
|
+
export declare function mountHonuaApplication<T = Record<string, unknown>>(options: MountHonuaApplicationOptions<T>): Promise<HonuaMountedApplication<T>>;
|
|
186
|
+
//# sourceMappingURL=application-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-context.d.ts","sourceRoot":"","sources":["../../../src/web-components/application-context.ts"],"names":[],"mappings":"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"}
|