@honua/app-platform 0.1.9-beta.0 → 0.1.11-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 +2 -0
- package/control-plane/admin-client.d.ts.map +1 -1
- package/control-plane/admin-client.js +32 -1
- package/control-plane/client.d.ts +1 -1
- package/control-plane/client.d.ts.map +1 -1
- package/control-plane/client.js +124 -8
- package/control-plane/commands/catalog.d.ts +7 -7
- package/control-plane/commands/catalog.d.ts.map +1 -1
- package/control-plane/commands/catalog.js +27 -15
- package/control-plane/commands/runtime.d.ts +6 -6
- package/control-plane/commands/runtime.d.ts.map +1 -1
- package/control-plane/commands/runtime.js +26 -14
- package/control-plane/commands/types.d.ts +4 -2
- package/control-plane/commands/types.d.ts.map +1 -1
- package/control-plane/generated/admin-api.d.ts +6 -4
- package/control-plane/generated/admin-api.d.ts.map +1 -1
- package/control-plane/generated/admin-api.js +2 -2
- package/control-plane/generated/admin-operations.d.ts +7 -7
- package/control-plane/generated/admin-operations.d.ts.map +1 -1
- package/control-plane/generated/admin-operations.js +9 -9
- package/control-plane/index.d.ts +1 -1
- package/control-plane/index.d.ts.map +1 -1
- package/control-plane/index.js +1 -1
- package/controls/qualification.d.ts.map +1 -1
- package/controls/qualification.js +10 -6
- package/core/client.d.ts.map +1 -1
- package/core/client.js +28 -30
- 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.map +1 -1
- package/core/grpc-adapter.js +11 -3
- package/core/pbf-decoder.d.ts.map +1 -1
- package/core/pbf-decoder.js +16 -4
- 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/types.d.ts +14 -3
- 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 +471 -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/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/package.json +6 -4
- package/query-planner/geoservices.d.ts.map +1 -1
- package/query-planner/geoservices.js +2 -0
- package/query-planner/types.d.ts +2 -0
- 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/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 +46 -12
- 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/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 +8 -6
- package/studio/index.d.ts.map +1 -1
- package/studio/index.js +6 -5
- package/studio/lifecycle-client.d.ts +3 -3
- package/studio/lifecycle-client.d.ts.map +1 -1
- package/studio/lifecycle-client.js +41 -22
- package/studio/lifecycle-types.d.ts +56 -77
- package/studio/lifecycle-types.d.ts.map +1 -1
- package/studio/lifecycle-types.js +5 -12
- 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/index.d.ts +2 -1
- package/web-components/index.d.ts.map +1 -1
- package/web-components/index.js +1 -0
- 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
|
@@ -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
|
+
]);
|
|
@@ -43,6 +43,7 @@ export type { HonuaComponentCatalogId, HonuaComponentRegistrationOptions, HonuaC
|
|
|
43
43
|
export { HonuaActionPanelElement, HonuaBasemapControlElement, HonuaBookmarksElement, HonuaChartElement, HonuaEditorElement, HonuaFeatureTableElement, HonuaLayerListElement, HonuaLegendElement, HonuaLocateControlElement, HonuaMapElement, HonuaMapStatusElement, HonuaMeasureControlElement, HonuaPrintExportElement, HonuaSearchElement, HonuaSketchControlElement, defineHonuaWebComponent, defineHonuaWebComponents, honuaExportKindFromFormat, } from "./elements.js";
|
|
44
44
|
export type { HonuaFeatureTableConflictDetail } from "./elements.js";
|
|
45
45
|
export { HonuaMeasurementElement, defineHonuaMeasurement } from "./measurement.js";
|
|
46
|
+
export { convertArea, convertDistance, formatAreaValue, formatDistanceValue, planarArea, planarLength, } from "./measurement-units.js";
|
|
46
47
|
export { HonuaTimeSliderElement, defineHonuaTimeSlider } from "./time-slider.js";
|
|
47
48
|
export { HONUA_EXPORT_KINDS, HonuaExportError, approximateHonuaScaleLabel, assertHonuaExportProvenanceComplete, assertHonuaExportReady, buildHonuaExportProvenance, createBrowserPrintExportAdapter, createHonuaExportAdapter, runHonuaExport, } from "./export.js";
|
|
48
49
|
export type { BuildHonuaExportProvenanceOptions, CreateHonuaExportAdapterOptions, HonuaExportAdapter, HonuaExportCapabilities, HonuaExportContext, HonuaExportKind, HonuaExportOwnership, HonuaExportPayload, HonuaExportProvenance, HonuaExportRequest, HonuaExportResult, HonuaExportStatus, HonuaPrintWindowLike, HonuaSnapshotCanvasLike, HonuaSnapshotSource, } from "./export.js";
|
|
@@ -66,5 +67,5 @@ export { buildEditorFormModel, coerceEditorFieldValue, editorControlKind, editor
|
|
|
66
67
|
export type { BuildEditorFormModelInput, HonuaEditorAttachmentDraft, HonuaEditorAttachmentMutationLike, HonuaEditorCapabilityDecisionLike, HonuaEditorChoice, HonuaEditorControlKind, HonuaEditorFieldControl, HonuaEditorFormModel, HonuaEditorOperation, HonuaEditorOperationAvailability, HonuaEditorOperationOverride, HonuaEditorOperationOverrides, HonuaEditorSchemaDomainLike, HonuaEditorSchemaFieldLike, HonuaEditorSubtype, HonuaEditorSubtypeConfig, HonuaEditorSubtypeFieldOverride, HonuaEditorUnavailableCode, ResolveEditorOperationsInput, } from "./feature-editor-model.js";
|
|
67
68
|
export { bindEditorSketch, createTerraDrawEditorSketch, editorSnappingOptions } from "./feature-editor-sketch.js";
|
|
68
69
|
export type { CreateTerraDrawEditorSketchOptions, HonuaEditorSketchAdapter, HonuaEditorSketchOptions, HonuaEditorSnappingOptions, } from "./feature-editor-sketch.js";
|
|
69
|
-
export type { HonuaActionDetail, HonuaActionPanelAction, HonuaActionPanelMessages, HonuaBasemapChangeDetail, HonuaBasemapControlMessages, HonuaBookmark, HonuaBookmarkChangeDetail, HonuaBookmarksMessages, CreateHonuaWebComponentControllerOptions, HonuaChartDatum, HonuaChartModel, HonuaChartMessages, HonuaComponentStatus, HonuaControllerReadyDetail, HonuaControllerStateListener, HonuaControllerSubscription, HonuaEditCapabilities, HonuaEditChangeDetail, HonuaEditRequest, HonuaEditorMessages, HonuaEditorModel, HonuaExportDetail, HonuaFeatureRecord, HonuaFeatureEditorMessages, HonuaFeatureStateEntry, HonuaFeatureStateTarget, HonuaFeatureTableModel, HonuaFilterChangeDetail, HonuaFilterState, HonuaFullscreenChangeDetail, HonuaGeocodeSelectDetail, HonuaLayerListMessages, HonuaLayerModel, HonuaLayerOpacityChangeDetail, HonuaLayerOrderChangeDetail, HonuaLayerVisibilityChangeDetail, HonuaLegendItem, HonuaLegendMessages, HonuaLocateControlMessages, HonuaLocateChangeDetail, HonuaMapMessages, HonuaMapStatusMessages, HonuaMapClickDetail, HonuaMapErrorDetail, HonuaMapHoverDetail, HonuaMapInteractionDetail, HonuaMapInteractionPoint, HonuaMapReadyDetail, HonuaMeasureChangeDetail, HonuaMeasureControlMessages, HonuaMeasureMode, HonuaMeasurementMessages, HonuaPrintExportMessages, HonuaMeasureProvider, HonuaMeasureResult, HonuaMeasurementMap, HonuaQueryFeaturesOptions, HonuaSearchDetail, HonuaSearchMessages, HonuaSearchGeocodeCandidate, HonuaSearchGeocodeSuggestion, HonuaSearchGeocoderLike, HonuaSearchOptions, HonuaSearchResult, HonuaSelectionChangeDetail, HonuaSelectionState, HonuaSketchChangeDetail, HonuaSketchControlMessages, HonuaSketchMode, HonuaSketchProvider, HonuaSketchResult, HonuaTimeChangeDetail, HonuaTimePlaybackChangeDetail, HonuaTimeSliderMessages, HonuaTimeSliderPlayback, HonuaTimeSliderWindow, HonuaViewportChangeDetail, HonuaViewportState, HonuaWebComponentController, HonuaWebComponentRuntimeLike, HonuaWebComponentState, } from "./types.js";
|
|
70
|
+
export type { HonuaActionDetail, HonuaActionPanelAction, HonuaActionPanelMessages, HonuaBasemapChangeDetail, HonuaBasemapControlMessages, HonuaBookmark, HonuaBookmarkChangeDetail, HonuaBookmarksMessages, CreateHonuaWebComponentControllerOptions, HonuaChartDatum, HonuaChartModel, HonuaChartMessages, HonuaComponentStatus, HonuaControllerReadyDetail, HonuaControllerStateListener, HonuaControllerSubscription, HonuaEditCapabilities, HonuaEditChangeDetail, HonuaEditRequest, HonuaEditorMessages, HonuaEditorModel, HonuaExportDetail, HonuaFeatureRecord, HonuaFeatureEditorMessages, HonuaFeatureStateEntry, HonuaFeatureStateTarget, HonuaFeatureTableModel, HonuaFilterChangeDetail, HonuaFilterState, HonuaFullscreenChangeDetail, HonuaGeocodeSelectDetail, HonuaLayerListMessages, HonuaLayerModel, HonuaLayerOpacityChangeDetail, HonuaLayerOrderChangeDetail, HonuaLayerVisibilityChangeDetail, HonuaLegendItem, HonuaLegendMessages, HonuaLocateControlMessages, HonuaLocateChangeDetail, HonuaMapMessages, HonuaMapStatusMessages, HonuaMapClickDetail, HonuaMapErrorDetail, HonuaMapHoverDetail, HonuaMapInteractionDetail, HonuaMapInteractionPoint, HonuaMapReadyDetail, HonuaMeasureAreaUnit, HonuaMeasureChangeDetail, HonuaMeasureControlMessages, HonuaMeasureDistanceUnit, HonuaMeasureFidelity, HonuaMeasureInvalidReason, HonuaMeasureMode, HonuaMeasurePlanarCrs, HonuaMeasurementMessages, HonuaPrintExportMessages, HonuaMeasureProvider, HonuaMeasureResult, HonuaMeasurementMap, HonuaQueryFeaturesOptions, HonuaSearchDetail, HonuaSearchMessages, HonuaSearchGeocodeCandidate, HonuaSearchGeocodeSuggestion, HonuaSearchGeocoderLike, HonuaSearchOptions, HonuaSearchResult, HonuaSelectionChangeDetail, HonuaSelectionState, HonuaSketchChangeDetail, HonuaSketchControlMessages, HonuaSketchMode, HonuaSketchProvider, HonuaSketchResult, HonuaTimeChangeDetail, HonuaTimePlaybackChangeDetail, HonuaTimeSliderMessages, HonuaTimeSliderPlayback, HonuaTimeSliderWindow, HonuaViewportChangeDetail, HonuaViewportState, HonuaWebComponentController, HonuaWebComponentRuntimeLike, HonuaWebComponentState, } from "./types.js";
|
|
70
71
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web-components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAcH,OAAO,EACL,uCAAuC,EACvC,iCAAiC,EACjC,6BAA6B,EAC7B,qBAAqB,EACrB,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,oCAAoC,EACpC,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,kCAAkC,EAClC,iCAAiC,EACjC,kCAAkC,EAClC,+BAA+B,EAC/B,6BAA6B,EAC7B,0BAA0B,EAC1B,kCAAkC,EAClC,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,kCAAkC,EAClC,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,kDAAkD,EAClD,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,yDAAyD,EACzD,mCAAmC,EACnC,gCAAgC,EAChC,2CAA2C,EAC3C,iCAAiC,EACjC,6BAA6B,EAC7B,+BAA+B,EAC/B,gCAAgC,EAChC,gCAAgC,EAChC,oCAAoC,EACpC,4CAA4C,EAC5C,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,EAC1B,kCAAkC,EAClC,oCAAoC,EACpC,kCAAkC,EAClC,4CAA4C,EAC5C,6CAA6C,EAC7C,4CAA4C,EAC5C,kCAAkC,EAClC,iCAAiC,EACjC,sCAAsC,EACtC,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,mCAAmC,EACnC,iCAAiC,EACjC,4CAA4C,EAC5C,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,iCAAiC,EACjC,gCAAgC,EAChC,wBAAwB,EACxB,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,kCAAkC,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,uBAAuB,EACvB,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web-components/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAcH,OAAO,EACL,uCAAuC,EACvC,iCAAiC,EACjC,6BAA6B,EAC7B,qBAAqB,EACrB,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,oCAAoC,EACpC,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,kCAAkC,EAClC,iCAAiC,EACjC,kCAAkC,EAClC,+BAA+B,EAC/B,6BAA6B,EAC7B,0BAA0B,EAC1B,kCAAkC,EAClC,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,kCAAkC,EAClC,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,kDAAkD,EAClD,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,yDAAyD,EACzD,mCAAmC,EACnC,gCAAgC,EAChC,2CAA2C,EAC3C,iCAAiC,EACjC,6BAA6B,EAC7B,+BAA+B,EAC/B,gCAAgC,EAChC,gCAAgC,EAChC,oCAAoC,EACpC,4CAA4C,EAC5C,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC9B,4BAA4B,EAC5B,0BAA0B,EAC1B,kCAAkC,EAClC,oCAAoC,EACpC,kCAAkC,EAClC,4CAA4C,EAC5C,6CAA6C,EAC7C,4CAA4C,EAC5C,kCAAkC,EAClC,iCAAiC,EACjC,sCAAsC,EACtC,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,mCAAmC,EACnC,iCAAiC,EACjC,4CAA4C,EAC5C,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,iCAAiC,EACjC,gCAAgC,EAChC,wBAAwB,EACxB,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,kCAAkC,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,uBAAuB,EACvB,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,YAAY,GACb,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGjF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,mCAAmC,EACnC,sBAAsB,EACtB,0BAA0B,EAC1B,+BAA+B,EAC/B,wBAAwB,EACxB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iCAAiC,EACjC,+BAA+B,EAC/B,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,+BAA+B,EAC/B,8BAA8B,EAC9B,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,6BAA6B,EAC7B,oBAAoB,EACpB,0BAA0B,EAC1B,kCAAkC,EAClC,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,yBAAyB,EACzB,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,0CAA0C,EAC1C,mCAAmC,EACnC,sCAAsC,EACtC,kCAAkC,EAClC,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,2BAA2B,EAC3B,+BAA+B,EAC/B,iCAAiC,EACjC,sCAAsC,EACtC,iCAAiC,EACjC,kCAAkC,EAClC,+BAA+B,GAChC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,yBAAyB,EACzB,+BAA+B,EAC/B,+BAA+B,EAC/B,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,8BAA8B,EAC9B,iBAAiB,EACjB,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,uBAAuB,EACvB,oCAAoC,EACpC,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,uBAAuB,EACvB,oCAAoC,EACpC,2CAA2C,EAC3C,iCAAiC,EACjC,8BAA8B,EAC9B,sBAAsB,EACtB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,8BAA8B,EAC9B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,EAC/B,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,EAC9B,yBAAyB,EACzB,sBAAsB,EACtB,6BAA6B,EAC7B,oCAAoC,EACpC,oCAAoC,EACpC,4BAA4B,EAC5B,6BAA6B,EAC7B,uBAAuB,EACvB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,oCAAoC,GACrC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,YAAY,EACV,4BAA4B,EAC5B,4BAA4B,EAC5B,qCAAqC,GACtC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AACvG,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,uCAAuC,EACvC,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,yBAAyB,EACzB,2BAA2B,EAC3B,kCAAkC,EAClC,gCAAgC,EAChC,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC5B,sCAAsC,EACtC,wCAAwC,GACzC,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,kCAAkC,EAClC,mCAAmC,EACnC,kCAAkC,GACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,mCAAmC,EACnC,sCAAsC,EACtC,iCAAiC,EACjC,oCAAoC,GACrC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,sCAAsC,EACtC,sCAAsC,EACtC,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,yCAAyC,EACzC,wCAAwC,GACzC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,iCAAiC,EACjC,iCAAiC,EACjC,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,gCAAgC,EAChC,4BAA4B,EAC5B,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EAClB,wBAAwB,EACxB,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAClH,YAAY,EACV,kCAAkC,EAClC,wBAAwB,EACxB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,aAAa,EACb,yBAAyB,EACzB,sBAAsB,EACtB,wCAAwC,EACxC,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,2BAA2B,EAC3B,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,EAChC,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
|
package/web-components/index.js
CHANGED
|
@@ -49,6 +49,7 @@ export { HONUA_COMPONENT_CATALOG, describeDeprecatedComponentImport, getCanonica
|
|
|
49
49
|
export { HonuaComponentCatalogError, createComponentRegistry, registerAllComponents, registerComponent, registerComponents, } from "../controls/registry.js";
|
|
50
50
|
export { HonuaActionPanelElement, HonuaBasemapControlElement, HonuaBookmarksElement, HonuaChartElement, HonuaEditorElement, HonuaFeatureTableElement, HonuaLayerListElement, HonuaLegendElement, HonuaLocateControlElement, HonuaMapElement, HonuaMapStatusElement, HonuaMeasureControlElement, HonuaPrintExportElement, HonuaSearchElement, HonuaSketchControlElement, defineHonuaWebComponent, defineHonuaWebComponents, honuaExportKindFromFormat, } from "./elements.js";
|
|
51
51
|
export { HonuaMeasurementElement, defineHonuaMeasurement } from "./measurement.js";
|
|
52
|
+
export { convertArea, convertDistance, formatAreaValue, formatDistanceValue, planarArea, planarLength, } from "./measurement-units.js";
|
|
52
53
|
// ── time slider over the temporal playback controller (issue #959) ───────
|
|
53
54
|
export { HonuaTimeSliderElement, defineHonuaTimeSlider } from "./time-slider.js";
|
|
54
55
|
// ── secure export contract (issue #683) ──────────────────────────────────
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map pointer claims (issue #1419): lets a component that turns map clicks
|
|
3
|
+
* into its own input — `<honua-measurement>` placing vertices — tell the
|
|
4
|
+
* kit's renderer that those clicks are not feature selections.
|
|
5
|
+
*
|
|
6
|
+
* Without a claim, every vertex click that lands on a feature would also run
|
|
7
|
+
* `controller.selectFeature` and dispatch `honua-selection-change`, silently
|
|
8
|
+
* rewriting the shared selection a table, inspector, or editor is bound to.
|
|
9
|
+
* With one, the renderer still dispatches `honua-map-click` but leaves the
|
|
10
|
+
* shared selection exactly as it was.
|
|
11
|
+
*
|
|
12
|
+
* Claims are keyed by the map object in a `WeakMap`, so a claim never keeps a
|
|
13
|
+
* removed map (or its owner) alive, and releasing is idempotent.
|
|
14
|
+
*
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Claims pointer input on `map` for `owner`. Returns a release function;
|
|
19
|
+
* calling it more than once is a no-op.
|
|
20
|
+
*/
|
|
21
|
+
export declare function claimMapPointer(map: object, owner: object): () => void;
|
|
22
|
+
/** Whether any component currently claims pointer input on `map`. */
|
|
23
|
+
export declare function isMapPointerClaimed(map: unknown): boolean;
|
|
24
|
+
//# sourceMappingURL=map-pointer-claim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-pointer-claim.d.ts","sourceRoot":"","sources":["../../../src/web-components/map-pointer-claim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,IAAI,CAUtE;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAGzD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Map pointer claims (issue #1419): lets a component that turns map clicks
|
|
3
|
+
* into its own input — `<honua-measurement>` placing vertices — tell the
|
|
4
|
+
* kit's renderer that those clicks are not feature selections.
|
|
5
|
+
*
|
|
6
|
+
* Without a claim, every vertex click that lands on a feature would also run
|
|
7
|
+
* `controller.selectFeature` and dispatch `honua-selection-change`, silently
|
|
8
|
+
* rewriting the shared selection a table, inspector, or editor is bound to.
|
|
9
|
+
* With one, the renderer still dispatches `honua-map-click` but leaves the
|
|
10
|
+
* shared selection exactly as it was.
|
|
11
|
+
*
|
|
12
|
+
* Claims are keyed by the map object in a `WeakMap`, so a claim never keeps a
|
|
13
|
+
* removed map (or its owner) alive, and releasing is idempotent.
|
|
14
|
+
*
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
const claims = new WeakMap();
|
|
18
|
+
/**
|
|
19
|
+
* Claims pointer input on `map` for `owner`. Returns a release function;
|
|
20
|
+
* calling it more than once is a no-op.
|
|
21
|
+
*/
|
|
22
|
+
export function claimMapPointer(map, owner) {
|
|
23
|
+
const owners = claims.get(map) ?? new Set();
|
|
24
|
+
owners.add(owner);
|
|
25
|
+
claims.set(map, owners);
|
|
26
|
+
return () => {
|
|
27
|
+
const current = claims.get(map);
|
|
28
|
+
if (!current)
|
|
29
|
+
return;
|
|
30
|
+
current.delete(owner);
|
|
31
|
+
if (current.size === 0)
|
|
32
|
+
claims.delete(map);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Whether any component currently claims pointer input on `map`. */
|
|
36
|
+
export function isMapPointerClaimed(map) {
|
|
37
|
+
if (typeof map !== "object" || map === null)
|
|
38
|
+
return false;
|
|
39
|
+
return (claims.get(map)?.size ?? 0) > 0;
|
|
40
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maplibre-renderer.d.ts","sourceRoot":"","sources":["../../../src/web-components/maplibre-renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"maplibre-renderer.d.ts","sourceRoot":"","sources":["../../../src/web-components/maplibre-renderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,KAAK,EAGV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAqCpB,MAAM,WAAW,4BAA4B,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,IAAI,WAAW,GAAG,SAAS,CAAC;IACrC,aAAa,IAAI,2BAA2B,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC5D,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,UAAU,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACpD,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9C,WAAW,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAC1D;AAED,qBAAa,qBAAqB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;gBAgBzC,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAI3D,IAAW,GAAG,IAAI,OAAO,GAAG,SAAS,CAEpC;IAED,IAAW,OAAO,IAAI,4BAA4B,CAAC,CAAC,CAAC,GAAG,SAAS,CAEhE;IAEY,UAAU,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBjE,UAAU,IAAI,IAAI;CAuX1B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isMapPointerClaimed } from "./map-pointer-claim.js";
|
|
1
2
|
export class HonuaMapLibreRenderer {
|
|
2
3
|
#options;
|
|
3
4
|
#interactionHandles = [];
|
|
@@ -237,7 +238,10 @@ export class HonuaMapLibreRenderer {
|
|
|
237
238
|
originalEvent: event.originalEvent,
|
|
238
239
|
};
|
|
239
240
|
this.#options.onClick(detail);
|
|
240
|
-
|
|
241
|
+
// A component using clicks as its own input (e.g. measurement
|
|
242
|
+
// vertices) claims the map pointer; its clicks must not rewrite the
|
|
243
|
+
// shared selection other components are bound to (#1419).
|
|
244
|
+
if (featureId === undefined || isMapPointerClaimed(runtime.map))
|
|
241
245
|
return;
|
|
242
246
|
const selection = {
|
|
243
247
|
sourceId,
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit conversion, display formatting, and planar (Euclidean, flat-earth)
|
|
3
|
+
* math for `<honua-measurement>` (issue #1419).
|
|
4
|
+
*
|
|
5
|
+
* All conversion and formatting here operates on the canonical SI value
|
|
6
|
+
* already stored on `HonuaMeasureResult` (meters / square meters) — never on
|
|
7
|
+
* a previously rounded display string — so switching `unit`/`areaUnit`/
|
|
8
|
+
* `precision` at runtime always reformats the same full-precision number.
|
|
9
|
+
*
|
|
10
|
+
* `planarLength` / `planarArea` intentionally do not depend on `proj4`
|
|
11
|
+
* (`@honua/geometry`'s `project`): pulling that in would add proj4 as a
|
|
12
|
+
* static import of every `<honua-measurement>` consumer's bundle (the
|
|
13
|
+
* `/web-components` and `/controls` entrypoints), well past their gzip
|
|
14
|
+
* budgets, for a fidelity mode most apps never enable. Instead this uses the
|
|
15
|
+
* same equirectangular (meters-per-degree-of-latitude/longitude) flat-earth
|
|
16
|
+
* approximation `MeasurementCompat` already ships in `src/esri-compat/
|
|
17
|
+
* measurement.ts` — accurate for the local-extent sketches this widget draws,
|
|
18
|
+
* and proven parity math rather than a new approach.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
import type { HonuaMeasureAreaUnit, HonuaMeasureDistanceUnit, HonuaMeasurePlanarCrs } from "./types.js";
|
|
23
|
+
type LngLat = readonly [number, number];
|
|
24
|
+
/** Converts a distance already in meters into `unit`. */
|
|
25
|
+
export declare function convertDistance(meters: number, unit: Exclude<HonuaMeasureDistanceUnit, "auto">): number;
|
|
26
|
+
/** Converts an area already in square meters into `unit`. */
|
|
27
|
+
export declare function convertArea(squareMeters: number, unit: Exclude<HonuaMeasureAreaUnit, "auto">): number;
|
|
28
|
+
/**
|
|
29
|
+
* Formats a canonical meters value for display. `precision` overrides the
|
|
30
|
+
* unit's default decimal digits; `unit` overrides magnitude-based auto-scaling.
|
|
31
|
+
*/
|
|
32
|
+
export declare function formatDistanceValue(meters: number, unit: HonuaMeasureDistanceUnit, precision?: number): string;
|
|
33
|
+
/**
|
|
34
|
+
* Formats a canonical square-meters value for display. `precision` overrides
|
|
35
|
+
* the unit's default decimal digits; `unit` overrides magnitude-based
|
|
36
|
+
* auto-scaling.
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatAreaValue(squareMeters: number, unit: HonuaMeasureAreaUnit, precision?: number): string;
|
|
39
|
+
/** Distance units `<honua-measurement>` accepts, including `"auto"`. */
|
|
40
|
+
export declare const HONUA_MEASURE_DISTANCE_UNITS: readonly HonuaMeasureDistanceUnit[];
|
|
41
|
+
/** Area units `<honua-measurement>` accepts, including `"auto"`. */
|
|
42
|
+
export declare const HONUA_MEASURE_AREA_UNITS: readonly HonuaMeasureAreaUnit[];
|
|
43
|
+
/** Planar frames `<honua-measurement>` accepts for `fidelity: "planar"`. */
|
|
44
|
+
export declare const HONUA_MEASURE_PLANAR_CRS: readonly HonuaMeasurePlanarCrs[];
|
|
45
|
+
/**
|
|
46
|
+
* Whether a position is a usable WGS84 vertex: finite, with latitude inside
|
|
47
|
+
* `[-90, 90]`. Longitude may exceed ±180 — MapLibre reports clicks on a world
|
|
48
|
+
* copy that way — and is unwrapped before any planar math.
|
|
49
|
+
*/
|
|
50
|
+
export declare function isValidMeasureVertex(position: readonly number[]): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Shifts each longitude by whole turns so consecutive vertices are never more
|
|
53
|
+
* than 180° apart. A sketch crossing the antimeridian (179° → -179°) is then
|
|
54
|
+
* measured the short way, matching what the geodesic ops already do, instead
|
|
55
|
+
* of across 358° of flat map.
|
|
56
|
+
*/
|
|
57
|
+
export declare function unwrapLongitudes(positions: readonly LngLat[]): LngLat[];
|
|
58
|
+
/**
|
|
59
|
+
* Euclidean length of a line, in meters of the planar frame `crs`:
|
|
60
|
+
*
|
|
61
|
+
* - `"local"` (default): a flat-earth approximation centered on the vertices'
|
|
62
|
+
* mean latitude, matching `MeasurementCompat`'s approximation.
|
|
63
|
+
* - `"EPSG:3857"`: spherical Web Mercator, the projected CRS MapLibre renders
|
|
64
|
+
* in. Its meters are not scale-corrected, so lengths grow by `sec(latitude)`
|
|
65
|
+
* away from the equator — which is what an app mirroring ArcGIS planar
|
|
66
|
+
* measurement on a Web Mercator view expects.
|
|
67
|
+
*
|
|
68
|
+
* Unlike the geodesic `length` op in `@honua/geometry`, this never follows
|
|
69
|
+
* the great circle. Longitudes are unwrapped first, so an antimeridian
|
|
70
|
+
* crossing is measured the short way.
|
|
71
|
+
*/
|
|
72
|
+
export declare function planarLength(positions: readonly LngLat[], crs?: HonuaMeasurePlanarCrs): number;
|
|
73
|
+
/**
|
|
74
|
+
* Euclidean (shoelace) area of a ring, in square meters of the planar frame
|
|
75
|
+
* `crs` (see {@link planarLength}). `positions` need not be closed; the first
|
|
76
|
+
* vertex is implicitly repeated to close the ring.
|
|
77
|
+
*/
|
|
78
|
+
export declare function planarArea(positions: readonly LngLat[], crs?: HonuaMeasurePlanarCrs): number;
|
|
79
|
+
/**
|
|
80
|
+
* Whether the closed ring through `positions` crosses itself (a "bow tie").
|
|
81
|
+
* Such a ring has no single enclosed area: the shoelace and geodesic sums
|
|
82
|
+
* cancel the lobes against each other, so reporting their result would be a
|
|
83
|
+
* confident wrong number. Touching at a shared vertex of adjacent edges is
|
|
84
|
+
* not a crossing; collinear overlap of non-adjacent edges is.
|
|
85
|
+
*/
|
|
86
|
+
export declare function ringSelfIntersects(positions: readonly LngLat[]): boolean;
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=measurement-units.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measurement-units.d.ts","sourceRoot":"","sources":["../../../src/web-components/measurement-units.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExG,KAAK,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAsCxC,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,GAAG,MAAM,CAEvG;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,MAAM,CAErG;AA6BD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9G;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5G;AAED,wEAAwE;AACxE,eAAO,MAAM,4BAA4B,EAAE,SAAS,wBAAwB,EAG3E,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,EAAE,SAAS,oBAAoB,EAGnE,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAA2B,CAAC;AAwBjG;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAUzE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAYvE;AAiBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,qBAA+B,GAAG,MAAM,CAWvG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,GAAE,qBAA+B,GAAG,MAAM,CAYrG;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAgBxE"}
|