@honua/app-platform 0.1.4-beta.0 → 0.1.9-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/app/index.d.ts.map +1 -1
- package/app/index.js +4 -0
- package/contract/types.d.ts +1 -1
- package/contract/types.d.ts.map +1 -1
- package/contract/types.js +4 -0
- package/control-plane/admin-client.d.ts +87 -0
- package/control-plane/admin-client.d.ts.map +1 -0
- package/control-plane/admin-client.js +169 -0
- package/control-plane/client.d.ts.map +1 -1
- package/control-plane/client.js +21 -3
- 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 +353 -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 +318 -0
- package/control-plane/commands/types.d.ts +226 -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 +30263 -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 +61 -2
- package/core/client.d.ts +6 -0
- package/core/client.d.ts.map +1 -1
- package/core/client.js +12 -10
- 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 +32 -0
- package/core/error-classifications.d.ts.map +1 -1
- package/core/error-classifications.js +32 -0
- package/core/error-code-registry.d.ts +33 -1
- package/core/error-code-registry.d.ts.map +1 -1
- package/core/error-code-registry.js +32 -0
- package/core/errors.d.ts +1 -1
- package/core/errors.d.ts.map +1 -1
- package/core/geoparquet-sql.d.ts +1 -1
- package/core/geoparquet-sql.js +2 -2
- package/core/grpc-adapter.d.ts +2 -2
- package/core/grpc-adapter.d.ts.map +1 -1
- package/core/grpc-adapter.js +30 -6
- 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/process-runner.js +15 -100
- package/core/stac.d.ts +2 -1
- package/core/stac.d.ts.map +1 -1
- package/core/stac.js +29 -11
- 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 +22 -8
- package/core/types.d.ts.map +1 -1
- 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/interactions/declarative-contract.d.ts +149 -0
- package/interactions/declarative-contract.d.ts.map +1 -0
- package/interactions/declarative-contract.js +293 -0
- package/interactions/declarative.d.ts +198 -0
- package/interactions/declarative.d.ts.map +1 -0
- package/interactions/declarative.js +470 -0
- package/interactions/feature-state.d.ts +7 -0
- package/interactions/feature-state.d.ts.map +1 -1
- package/interactions/feature-state.js +10 -2
- package/map/maplibre-target.js +1 -1
- 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 +2 -2
- 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 +4 -4
- package/query-planner/types.d.ts.map +1 -1
- package/realtime/sse.d.ts.map +1 -1
- package/realtime/sse.js +7 -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/runtime/style-compose.d.ts.map +1 -1
- package/runtime/style-compose.js +78 -9
- 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/primitives.d.ts.map +1 -1
- package/scene-workspace/primitives.js +9 -6
- package/scene-workspace/source-to-cesium.js +1 -1
- 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/index.d.ts +17 -7
- package/studio/index.d.ts.map +1 -1
- package/studio/index.js +15 -5
- package/studio/lifecycle-client.d.ts +262 -22
- package/studio/lifecycle-client.d.ts.map +1 -1
- package/studio/lifecycle-client.js +524 -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 +228 -8
- package/studio/lifecycle-types.d.ts.map +1 -1
- 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/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 +14 -6
- package/web-components/index.d.ts.map +1 -1
- package/web-components/index.js +8 -2
- 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
|
@@ -67,6 +67,7 @@ export class HonuaFeatureEditorElement extends HTMLElementBase {
|
|
|
67
67
|
*/
|
|
68
68
|
#keydownListener;
|
|
69
69
|
#messages = {};
|
|
70
|
+
#applicationContext;
|
|
70
71
|
get messages() {
|
|
71
72
|
return this.#messages;
|
|
72
73
|
}
|
|
@@ -102,10 +103,33 @@ export class HonuaFeatureEditorElement extends HTMLElementBase {
|
|
|
102
103
|
this.#snapshot = workflow.snapshot();
|
|
103
104
|
this.#subscription = workflow.subscribe((snapshot) => {
|
|
104
105
|
this.#snapshot = snapshot;
|
|
106
|
+
this.#publishApplicationState(snapshot);
|
|
105
107
|
this.#dispatch("honua-feature-edit-change", { snapshot });
|
|
106
108
|
this.render();
|
|
107
109
|
});
|
|
108
110
|
}
|
|
111
|
+
/** Application shell context assigned and driven by `mountHonuaApplication()`. */
|
|
112
|
+
get applicationContext() {
|
|
113
|
+
return this.#applicationContext;
|
|
114
|
+
}
|
|
115
|
+
set applicationContext(context) {
|
|
116
|
+
if (context === this.#applicationContext)
|
|
117
|
+
return;
|
|
118
|
+
this.#applicationContext = context;
|
|
119
|
+
this.#applyApplicationContext();
|
|
120
|
+
}
|
|
121
|
+
honuaApplicationContextConnected(context) {
|
|
122
|
+
this.applicationContext = context;
|
|
123
|
+
}
|
|
124
|
+
honuaApplicationContextChanged(event) {
|
|
125
|
+
if (event.current !== this.#applicationContext?.snapshot)
|
|
126
|
+
return;
|
|
127
|
+
this.#applyApplicationContext(event);
|
|
128
|
+
}
|
|
129
|
+
honuaApplicationContextDisconnected(context) {
|
|
130
|
+
if (this.#applicationContext === context)
|
|
131
|
+
this.applicationContext = undefined;
|
|
132
|
+
}
|
|
109
133
|
/** Equivalent to setting `.workflow`. */
|
|
110
134
|
connect(workflow) {
|
|
111
135
|
this.workflow = workflow;
|
|
@@ -121,11 +145,22 @@ export class HonuaFeatureEditorElement extends HTMLElementBase {
|
|
|
121
145
|
}
|
|
122
146
|
set selectedFeature(feature) {
|
|
123
147
|
this.#workflow?.setSelection(feature);
|
|
148
|
+
const context = this.#applicationContext;
|
|
149
|
+
if (!context || context.disposed)
|
|
150
|
+
return;
|
|
151
|
+
const sourceId = this.#workflow?.source.descriptor.id;
|
|
152
|
+
const selection = feature && sourceId ? [{ ...feature, sourceId }] : [];
|
|
153
|
+
if (!sameApplicationValue(context.snapshot.selection, selection))
|
|
154
|
+
context.update({ selection });
|
|
124
155
|
}
|
|
125
156
|
/** The last snapshot rendered. */
|
|
126
157
|
get snapshot() {
|
|
127
158
|
return this.#snapshot;
|
|
128
159
|
}
|
|
160
|
+
/** Credential-free, transport-free review of the current draft. */
|
|
161
|
+
preflight() {
|
|
162
|
+
return this.#workflow?.preflight();
|
|
163
|
+
}
|
|
129
164
|
attributeChangedCallback() {
|
|
130
165
|
this.render();
|
|
131
166
|
}
|
|
@@ -203,6 +238,7 @@ export class HonuaFeatureEditorElement extends HTMLElementBase {
|
|
|
203
238
|
<style>${editorStyles()}</style>
|
|
204
239
|
<section class="panel" part="panel" role="region" aria-label="${escapeAttribute(label)}">
|
|
205
240
|
<div class="bar"><h2>${escapeHtml(label)}</h2></div>
|
|
241
|
+
${this.#applicationPresentationHtml()}
|
|
206
242
|
<p class="empty" role="status">${escapeHtml(this.#messages.noWorkflow ?? "No edit workflow is attached. Set .workflow to an editable source's workflow.")}</p>
|
|
207
243
|
</section>
|
|
208
244
|
`;
|
|
@@ -214,6 +250,7 @@ export class HonuaFeatureEditorElement extends HTMLElementBase {
|
|
|
214
250
|
<h2>${escapeHtml(label)}</h2>
|
|
215
251
|
<span class="state" data-state>${escapeHtml(this.#messages.status?.[snapshot.status] ?? snapshot.status)}${snapshot.dirty ? ` • ${escapeHtml(this.#messages.unsaved ?? "unsaved")}` : ""}</span>
|
|
216
252
|
</div>
|
|
253
|
+
${this.#applicationPresentationHtml()}
|
|
217
254
|
${this.#operationsHtml(snapshot, label)}
|
|
218
255
|
${this.#conflictHtml(snapshot)}
|
|
219
256
|
${this.#formHtml(snapshot)}
|
|
@@ -225,6 +262,93 @@ export class HonuaFeatureEditorElement extends HTMLElementBase {
|
|
|
225
262
|
</section>
|
|
226
263
|
`;
|
|
227
264
|
}
|
|
265
|
+
#applyApplicationContext(event) {
|
|
266
|
+
const context = this.#applicationContext;
|
|
267
|
+
if (!context) {
|
|
268
|
+
this.removeAttribute("data-honua-status");
|
|
269
|
+
this.removeAttribute("aria-disabled");
|
|
270
|
+
this.render();
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
const snapshot = context.snapshot;
|
|
274
|
+
this.setAttribute("data-honua-status", snapshot.status);
|
|
275
|
+
this.setAttribute("lang", snapshot.locale.locale);
|
|
276
|
+
this.setAttribute("dir", snapshot.locale.direction ?? "auto");
|
|
277
|
+
this.toggleAttribute("aria-disabled", snapshot.authorization.status === "unauthorized");
|
|
278
|
+
if (event?.changed.includes("authorization") || event?.changed.includes("binding"))
|
|
279
|
+
this.#workflow?.cancel();
|
|
280
|
+
if (!event || event.changed.includes("selection")) {
|
|
281
|
+
const sourceId = this.#workflow?.source.descriptor.id;
|
|
282
|
+
if (sourceId)
|
|
283
|
+
this.#workflow?.setSelection(canonicalFeatureForSource(snapshot.selection, sourceId));
|
|
284
|
+
}
|
|
285
|
+
this.render();
|
|
286
|
+
}
|
|
287
|
+
#publishApplicationState(snapshot) {
|
|
288
|
+
const context = this.#applicationContext;
|
|
289
|
+
const workflow = this.#workflow;
|
|
290
|
+
if (!context || !workflow || context.disposed || context.snapshot.authorization.status === "unauthorized")
|
|
291
|
+
return;
|
|
292
|
+
const componentId = "honua-feature-editor";
|
|
293
|
+
const sourceId = workflow.source.descriptor.id;
|
|
294
|
+
const edit = {
|
|
295
|
+
componentId,
|
|
296
|
+
sourceId,
|
|
297
|
+
status: snapshot.status,
|
|
298
|
+
operation: snapshot.operation,
|
|
299
|
+
identity: snapshot.identity,
|
|
300
|
+
dirty: snapshot.dirty,
|
|
301
|
+
mutationReceipt: snapshot.mutationReceipt,
|
|
302
|
+
};
|
|
303
|
+
const retainEdit = snapshot.dirty ||
|
|
304
|
+
snapshot.busy ||
|
|
305
|
+
snapshot.status === "draft" ||
|
|
306
|
+
snapshot.status === "queued" ||
|
|
307
|
+
snapshot.status === "rejected" ||
|
|
308
|
+
snapshot.status === "conflict" ||
|
|
309
|
+
snapshot.mutationReceipt !== undefined;
|
|
310
|
+
const edits = [
|
|
311
|
+
...context.snapshot.edits.filter((entry) => !ownedApplicationEntry(entry, componentId, sourceId)),
|
|
312
|
+
...(retainEdit ? [edit] : []),
|
|
313
|
+
];
|
|
314
|
+
const editorDiagnostics = snapshot.failures.map((failure) => ({
|
|
315
|
+
code: `feature-editor-${failure.kind}`,
|
|
316
|
+
message: failure.description,
|
|
317
|
+
severity: "error",
|
|
318
|
+
componentId,
|
|
319
|
+
status: snapshot.status === "unsupported" ? "unsupported" : "failed",
|
|
320
|
+
}));
|
|
321
|
+
if (snapshot.conflict) {
|
|
322
|
+
editorDiagnostics.push({
|
|
323
|
+
code: "feature-editor-conflict",
|
|
324
|
+
message: snapshot.conflict.reason,
|
|
325
|
+
severity: "warning",
|
|
326
|
+
componentId,
|
|
327
|
+
status: "degraded",
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
const diagnostics = [
|
|
331
|
+
...context.snapshot.diagnostics.filter((entry) => entry.componentId !== componentId),
|
|
332
|
+
...editorDiagnostics,
|
|
333
|
+
];
|
|
334
|
+
const update = {
|
|
335
|
+
...(!sameApplicationValue(context.snapshot.edits, edits) ? { edits } : {}),
|
|
336
|
+
...(!sameApplicationValue(context.snapshot.diagnostics, diagnostics) ? { diagnostics } : {}),
|
|
337
|
+
};
|
|
338
|
+
if (Object.keys(update).length > 0)
|
|
339
|
+
context.update(update);
|
|
340
|
+
}
|
|
341
|
+
#applicationPresentationHtml() {
|
|
342
|
+
const context = this.#applicationContext;
|
|
343
|
+
if (!context)
|
|
344
|
+
return "";
|
|
345
|
+
const presentation = context.statusPresentation();
|
|
346
|
+
const diagnostics = context.snapshot.diagnostics.filter((diagnostic) => diagnostic.componentId === undefined || diagnostic.componentId === "honua-feature-editor");
|
|
347
|
+
return `<div data-application-presentation>
|
|
348
|
+
<p class="status" data-application-status role="${presentation.role}" aria-live="${presentation.ariaLive}" aria-busy="${String(presentation.busy)}">${escapeHtml(presentation.label)}</p>
|
|
349
|
+
${diagnostics.map((diagnostic) => `<p class="problem" role="${diagnostic.severity === "error" ? "alert" : "status"}" data-application-diagnostic="${escapeAttribute(diagnostic.code)}">${escapeHtml(diagnostic.message)}</p>`).join("")}
|
|
350
|
+
</div>`;
|
|
351
|
+
}
|
|
228
352
|
#operationsHtml(snapshot, label) {
|
|
229
353
|
const buttons = snapshot.operations
|
|
230
354
|
.map((availability) => {
|
|
@@ -397,17 +521,18 @@ export class HonuaFeatureEditorElement extends HTMLElementBase {
|
|
|
397
521
|
#actionsHtml(snapshot) {
|
|
398
522
|
const hasDraft = snapshot.form !== undefined;
|
|
399
523
|
const blockedByConflict = snapshot.conflict !== undefined;
|
|
400
|
-
const
|
|
524
|
+
const offlineQueued = snapshot.status === "queued";
|
|
525
|
+
const submitDisabled = !hasDraft || snapshot.busy || offlineQueued || blockedByConflict || snapshot.form?.valid === false;
|
|
401
526
|
return `
|
|
402
527
|
<div class="actions" role="group" aria-label="${escapeAttribute(this.#messages.editActionsLabel ?? "Edit actions")}">
|
|
403
528
|
<button type="button" part="submit" data-action="submit"${submitDisabled ? " disabled" : ""}>${escapeHtml(snapshot.operation === "delete"
|
|
404
529
|
? (this.#messages.deleteFeature ?? "Delete feature")
|
|
405
530
|
: (this.#messages.submit ?? "Submit"))}</button>
|
|
406
531
|
<button type="button" data-action="retry"${snapshot.status === "rejected" && !snapshot.busy ? "" : " disabled"}>${escapeHtml(this.#messages.retry ?? "Retry")}</button>
|
|
407
|
-
<button type="button" data-action="undo"${snapshot.undo.canUndo ? "" : " disabled"}>${escapeHtml(this.#messages.undo ?? "Undo")}</button>
|
|
408
|
-
<button type="button" data-action="redo"${snapshot.undo.canRedo ? "" : " disabled"}>${escapeHtml(this.#messages.redo ?? "Redo")}</button>
|
|
409
|
-
<button type="button" data-action="discard"${hasDraft && snapshot.dirty ? "" : " disabled"}>${escapeHtml(this.#messages.revert ?? "Revert")}</button>
|
|
410
|
-
<button type="button" data-action="cancel"${hasDraft && !snapshot.busy ? "" : " disabled"}>${escapeHtml(this.#messages.cancel ?? "Cancel")}</button>
|
|
532
|
+
<button type="button" data-action="undo"${snapshot.undo.canUndo && !offlineQueued ? "" : " disabled"}>${escapeHtml(this.#messages.undo ?? "Undo")}</button>
|
|
533
|
+
<button type="button" data-action="redo"${snapshot.undo.canRedo && !offlineQueued ? "" : " disabled"}>${escapeHtml(this.#messages.redo ?? "Redo")}</button>
|
|
534
|
+
<button type="button" data-action="discard"${hasDraft && snapshot.dirty && !offlineQueued ? "" : " disabled"}>${escapeHtml(this.#messages.revert ?? "Revert")}</button>
|
|
535
|
+
<button type="button" data-action="cancel"${hasDraft && !snapshot.busy && !offlineQueued ? "" : " disabled"}>${escapeHtml(this.#messages.cancel ?? "Cancel")}</button>
|
|
411
536
|
</div>
|
|
412
537
|
`;
|
|
413
538
|
}
|
|
@@ -426,8 +551,14 @@ export class HonuaFeatureEditorElement extends HTMLElementBase {
|
|
|
426
551
|
root.querySelectorAll("button[data-conflict]").forEach((button) => {
|
|
427
552
|
button.addEventListener("click", () => {
|
|
428
553
|
const choice = button.dataset.conflict;
|
|
429
|
-
if (choice)
|
|
430
|
-
|
|
554
|
+
if (!choice)
|
|
555
|
+
return;
|
|
556
|
+
const offline = this.#snapshot?.offline;
|
|
557
|
+
if (offline?.state === "conflicted") {
|
|
558
|
+
this.#dispatch("honua-feature-edit-offline-conflict", { choice, offline });
|
|
559
|
+
return;
|
|
560
|
+
}
|
|
561
|
+
workflow.resolveConflict(choice);
|
|
431
562
|
});
|
|
432
563
|
});
|
|
433
564
|
root.querySelectorAll("button[data-sketch-tool]").forEach((button) => {
|
|
@@ -692,6 +823,27 @@ function escapeHtml(value) {
|
|
|
692
823
|
function escapeAttribute(value) {
|
|
693
824
|
return escapeHtml(value).replace(/'/g, "'");
|
|
694
825
|
}
|
|
826
|
+
function canonicalFeatureForSource(selection, sourceId) {
|
|
827
|
+
const candidate = selection.find((entry) => isRecord(entry) && isRecord(entry.attributes) && (entry.sourceId === undefined || entry.sourceId === sourceId));
|
|
828
|
+
if (!candidate || !isRecord(candidate) || !isRecord(candidate.attributes))
|
|
829
|
+
return undefined;
|
|
830
|
+
return {
|
|
831
|
+
...(typeof candidate.id === "string" || typeof candidate.id === "number" ? { id: candidate.id } : {}),
|
|
832
|
+
attributes: candidate.attributes,
|
|
833
|
+
...(candidate.geometry === undefined
|
|
834
|
+
? {}
|
|
835
|
+
: { geometry: candidate.geometry ?? null }),
|
|
836
|
+
};
|
|
837
|
+
}
|
|
838
|
+
function ownedApplicationEntry(entry, componentId, sourceId) {
|
|
839
|
+
return isRecord(entry) && entry.componentId === componentId && entry.sourceId === sourceId;
|
|
840
|
+
}
|
|
841
|
+
function sameApplicationValue(left, right) {
|
|
842
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
843
|
+
}
|
|
844
|
+
function isRecord(value) {
|
|
845
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
846
|
+
}
|
|
695
847
|
/** Structural styles, themable through the shared `--honua-ui-*` properties. */
|
|
696
848
|
function editorStyles() {
|
|
697
849
|
return `
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capability-aware feature inspection workflow.
|
|
3
|
+
*
|
|
4
|
+
* The controller in this module is the supported join between map hits,
|
|
5
|
+
* server search, table rows, source-qualified selection, popup/details
|
|
6
|
+
* presentation, attachments, relationships, and realtime freshness. It never
|
|
7
|
+
* evaluates Arcade or inserts source HTML into the document.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
import type { AttachmentInfo, FeatureId, Source, SourceId } from "../contract/types.js";
|
|
12
|
+
import type { HonuaFieldInfo, HonuaTypedFeature } from "../core/types.js";
|
|
13
|
+
import type { SourceQualifiedFeatureSelectionTarget } from "../exploration/types.js";
|
|
14
|
+
import type { HonuaApplicationContext, HonuaApplicationContextChangeEvent } from "./application-context.js";
|
|
15
|
+
export type HonuaFeatureInspectionOrigin = "map" | "search" | "table" | "programmatic" | "refresh";
|
|
16
|
+
export type HonuaFeatureInspectionStatus = "idle" | "loading" | "ready" | "stale" | "deleted" | "unsupported" | "error";
|
|
17
|
+
export type HonuaFeatureInspectionDiagnosticCode = "query-unsupported" | "search-unsupported" | "attachments-unsupported" | "attachments-unbounded" | "relationships-unsupported" | "relationships-unbounded" | "popup-arcade-unsupported" | "feature-not-found" | "query-failed" | "search-failed" | "attachments-failed" | "relationships-failed" | "unsafe-link" | "result-limit";
|
|
18
|
+
export interface HonuaFeatureInspectionDiagnostic {
|
|
19
|
+
readonly code: HonuaFeatureInspectionDiagnosticCode;
|
|
20
|
+
readonly message: string;
|
|
21
|
+
readonly capability?: "query" | "attachments" | "queryRelated";
|
|
22
|
+
readonly sourceId?: SourceId;
|
|
23
|
+
readonly relationshipId?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface HonuaFeatureInspectionLink {
|
|
26
|
+
readonly label: string;
|
|
27
|
+
readonly href: string;
|
|
28
|
+
readonly external: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface HonuaFeatureInspectionField {
|
|
31
|
+
readonly name: string;
|
|
32
|
+
readonly label: string;
|
|
33
|
+
readonly value: unknown;
|
|
34
|
+
readonly text: string;
|
|
35
|
+
}
|
|
36
|
+
export interface HonuaFeatureInspectionFeature<T = Record<string, unknown>> {
|
|
37
|
+
readonly target: SourceQualifiedFeatureSelectionTarget;
|
|
38
|
+
readonly title: string;
|
|
39
|
+
readonly description?: string;
|
|
40
|
+
readonly fields: readonly HonuaFeatureInspectionField[];
|
|
41
|
+
readonly links: readonly HonuaFeatureInspectionLink[];
|
|
42
|
+
readonly attributes: T;
|
|
43
|
+
readonly geometry?: Record<string, unknown> | null;
|
|
44
|
+
}
|
|
45
|
+
export interface HonuaFeatureInspectionPage<T> {
|
|
46
|
+
readonly items: readonly T[];
|
|
47
|
+
readonly offset: number;
|
|
48
|
+
readonly limit: number;
|
|
49
|
+
readonly total: number;
|
|
50
|
+
readonly hasPrevious: boolean;
|
|
51
|
+
readonly hasNext: boolean;
|
|
52
|
+
/** True when the server returned more values than the configured memory budget retained. */
|
|
53
|
+
readonly truncated: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface HonuaFeatureInspectionAttachment extends AttachmentInfo {
|
|
56
|
+
readonly href?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface HonuaFeatureInspectionRelationship<T = Record<string, unknown>> {
|
|
59
|
+
readonly id: number;
|
|
60
|
+
readonly label: string;
|
|
61
|
+
readonly fields: readonly HonuaFieldInfo[];
|
|
62
|
+
readonly page: HonuaFeatureInspectionPage<HonuaTypedFeature<T>>;
|
|
63
|
+
}
|
|
64
|
+
export interface HonuaFeatureInspectionSearchResult<T = Record<string, unknown>> {
|
|
65
|
+
readonly id: string;
|
|
66
|
+
readonly target: SourceQualifiedFeatureSelectionTarget;
|
|
67
|
+
readonly title: string;
|
|
68
|
+
readonly subtitle?: string;
|
|
69
|
+
readonly feature: HonuaTypedFeature<T>;
|
|
70
|
+
}
|
|
71
|
+
export interface HonuaFeatureInspectionSearchState<T = Record<string, unknown>> {
|
|
72
|
+
readonly status: "idle" | "loading" | "ready" | "unsupported" | "error";
|
|
73
|
+
readonly query: string;
|
|
74
|
+
readonly results: readonly HonuaFeatureInspectionSearchResult<T>[];
|
|
75
|
+
readonly diagnostics: readonly HonuaFeatureInspectionDiagnostic[];
|
|
76
|
+
}
|
|
77
|
+
export interface HonuaFeatureInspectionSnapshot<T = Record<string, unknown>> {
|
|
78
|
+
readonly status: HonuaFeatureInspectionStatus;
|
|
79
|
+
readonly origin?: HonuaFeatureInspectionOrigin;
|
|
80
|
+
readonly candidates: readonly HonuaFeatureInspectionCandidate<T>[];
|
|
81
|
+
readonly activeIndex: number;
|
|
82
|
+
readonly feature?: HonuaFeatureInspectionFeature<T>;
|
|
83
|
+
readonly attachments?: HonuaFeatureInspectionPage<HonuaFeatureInspectionAttachment>;
|
|
84
|
+
readonly relationships: readonly HonuaFeatureInspectionRelationship<T>[];
|
|
85
|
+
readonly diagnostics: readonly HonuaFeatureInspectionDiagnostic[];
|
|
86
|
+
readonly search: HonuaFeatureInspectionSearchState<T>;
|
|
87
|
+
readonly staleReason?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface HonuaFeatureInspectionCandidate<T = Record<string, unknown>> {
|
|
90
|
+
readonly target: SourceQualifiedFeatureSelectionTarget;
|
|
91
|
+
/** A complete, authoritative feature may avoid a second lookup. Map hits should normally omit it. */
|
|
92
|
+
readonly feature?: HonuaTypedFeature<T>;
|
|
93
|
+
readonly authoritative?: boolean;
|
|
94
|
+
}
|
|
95
|
+
export interface HonuaFeatureInspectionRelationshipDefinition {
|
|
96
|
+
readonly id: number;
|
|
97
|
+
readonly label?: string;
|
|
98
|
+
readonly outFields?: readonly string[];
|
|
99
|
+
}
|
|
100
|
+
export interface HonuaFeatureInspectionExternalLinkDefinition {
|
|
101
|
+
readonly label: string;
|
|
102
|
+
readonly hrefField: string;
|
|
103
|
+
}
|
|
104
|
+
export interface HonuaFeatureInspectionPresentation {
|
|
105
|
+
readonly titleField?: string;
|
|
106
|
+
readonly description?: string;
|
|
107
|
+
readonly fields?: readonly string[];
|
|
108
|
+
readonly links?: readonly HonuaFeatureInspectionExternalLinkDefinition[];
|
|
109
|
+
/** Declared only so the workflow can diagnose and refuse Arcade explicitly. */
|
|
110
|
+
readonly arcadeExpressions?: readonly string[];
|
|
111
|
+
}
|
|
112
|
+
/** Every user-visible string owned by `<honua-feature-inspection>`. */
|
|
113
|
+
export interface HonuaFeatureInspectionMessages {
|
|
114
|
+
readonly panelLabel?: string;
|
|
115
|
+
readonly searchLabel?: string;
|
|
116
|
+
readonly searchButtonLabel?: string;
|
|
117
|
+
readonly searchResultsLabel?: string;
|
|
118
|
+
readonly closeDetailsLabel?: string;
|
|
119
|
+
readonly overlappingResultsLabel?: string;
|
|
120
|
+
readonly previousResultLabel?: string;
|
|
121
|
+
readonly nextResultLabel?: string;
|
|
122
|
+
readonly resultPosition?: (index: number, total: number) => string;
|
|
123
|
+
readonly refreshLabel?: string;
|
|
124
|
+
readonly featureLinksLabel?: string;
|
|
125
|
+
readonly attachmentsLabel?: string;
|
|
126
|
+
readonly attachmentLabel?: (id: FeatureId) => string;
|
|
127
|
+
readonly attachmentSize?: (bytes: number) => string;
|
|
128
|
+
readonly attachmentPagesLabel?: string;
|
|
129
|
+
readonly previousAttachmentsLabel?: string;
|
|
130
|
+
readonly nextAttachmentsLabel?: string;
|
|
131
|
+
readonly relationshipPagesLabel?: (relationship: string) => string;
|
|
132
|
+
readonly previousRelatedLabel?: string;
|
|
133
|
+
readonly nextRelatedLabel?: string;
|
|
134
|
+
readonly diagnosticsLabel?: string;
|
|
135
|
+
readonly diagnostic?: (diagnostic: HonuaFeatureInspectionDiagnostic) => string;
|
|
136
|
+
readonly range?: (offset: number, count: number, total: number) => string;
|
|
137
|
+
readonly disconnectedStatus?: string;
|
|
138
|
+
readonly searchingStatus?: string;
|
|
139
|
+
readonly loadingStatus?: string;
|
|
140
|
+
readonly deletedStatus?: string;
|
|
141
|
+
readonly staleStatus?: string;
|
|
142
|
+
readonly showingStatus?: (title: string) => string;
|
|
143
|
+
readonly searchResultsStatus?: (count: number) => string;
|
|
144
|
+
readonly emptyStatus?: string;
|
|
145
|
+
}
|
|
146
|
+
export interface HonuaFeatureInspectionBudgets {
|
|
147
|
+
readonly pageSize?: number;
|
|
148
|
+
readonly maxPages?: number;
|
|
149
|
+
readonly maxOverlappingResults?: number;
|
|
150
|
+
readonly maxFields?: number;
|
|
151
|
+
readonly maxRelationships?: number;
|
|
152
|
+
readonly maxSearchSources?: number;
|
|
153
|
+
readonly cacheEntries?: number;
|
|
154
|
+
}
|
|
155
|
+
export interface HonuaFeatureInspectionSelectionAdapter {
|
|
156
|
+
setSelection(targets: readonly SourceQualifiedFeatureSelectionTarget[], options: {
|
|
157
|
+
readonly origin: HonuaFeatureInspectionOrigin;
|
|
158
|
+
}): void;
|
|
159
|
+
}
|
|
160
|
+
/** A caller-owned collection window whose upstream request honored `offset` and `limit`. */
|
|
161
|
+
export interface HonuaFeatureInspectionBoundedPage<T> {
|
|
162
|
+
readonly items: readonly T[];
|
|
163
|
+
readonly total: number;
|
|
164
|
+
readonly truncated?: boolean;
|
|
165
|
+
}
|
|
166
|
+
export interface HonuaFeatureInspectionAttachmentPageRequest<T = Record<string, unknown>> {
|
|
167
|
+
readonly source: Source<T>;
|
|
168
|
+
readonly target: SourceQualifiedFeatureSelectionTarget;
|
|
169
|
+
readonly offset: number;
|
|
170
|
+
readonly limit: number;
|
|
171
|
+
readonly signal: AbortSignal;
|
|
172
|
+
}
|
|
173
|
+
export interface HonuaFeatureInspectionRelationshipPageRequest<T = Record<string, unknown>> extends HonuaFeatureInspectionAttachmentPageRequest<T> {
|
|
174
|
+
readonly relationship: HonuaFeatureInspectionRelationshipDefinition;
|
|
175
|
+
}
|
|
176
|
+
export interface HonuaFeatureInspectionRelationshipPageResult<T = Record<string, unknown>> extends HonuaFeatureInspectionBoundedPage<HonuaTypedFeature<T>> {
|
|
177
|
+
readonly fields?: readonly HonuaFieldInfo[];
|
|
178
|
+
}
|
|
179
|
+
export interface CreateHonuaFeatureInspectionOptions<T = Record<string, unknown>> {
|
|
180
|
+
readonly resolveSource: (sourceId: SourceId) => Source<T> | undefined;
|
|
181
|
+
readonly sourceIds?: readonly SourceId[];
|
|
182
|
+
readonly presentation?: HonuaFeatureInspectionPresentation | ((source: Source<T>) => HonuaFeatureInspectionPresentation | undefined);
|
|
183
|
+
readonly relationships?: readonly HonuaFeatureInspectionRelationshipDefinition[] | ((source: Source<T>) => readonly HonuaFeatureInspectionRelationshipDefinition[]);
|
|
184
|
+
readonly searchFields?: readonly string[] | ((source: Source<T>) => readonly string[]);
|
|
185
|
+
readonly selection?: HonuaFeatureInspectionSelectionAdapter;
|
|
186
|
+
/**
|
|
187
|
+
* Executes a provably bounded attachment request. The canonical AttachmentApi
|
|
188
|
+
* has no pagination parameters, so inspection fails this subfeature closed
|
|
189
|
+
* unless the host supplies a protocol-aware bounded loader.
|
|
190
|
+
*/
|
|
191
|
+
readonly loadAttachmentPage?: (request: HonuaFeatureInspectionAttachmentPageRequest<T>) => Promise<HonuaFeatureInspectionBoundedPage<AttachmentInfo>>;
|
|
192
|
+
/**
|
|
193
|
+
* Executes a provably bounded related-record request. RelatedQuery currently
|
|
194
|
+
* has no pagination parameters, so the host must supply this adapter.
|
|
195
|
+
*/
|
|
196
|
+
readonly loadRelationshipPage?: (request: HonuaFeatureInspectionRelationshipPageRequest<T>) => Promise<HonuaFeatureInspectionRelationshipPageResult<T>>;
|
|
197
|
+
readonly attachmentHref?: (attachment: AttachmentInfo, target: SourceQualifiedFeatureSelectionTarget) => string | undefined;
|
|
198
|
+
readonly baseHref?: string;
|
|
199
|
+
readonly allowedLinkOrigins?: readonly string[];
|
|
200
|
+
readonly authScope?: () => string;
|
|
201
|
+
readonly version?: (source: Source<T>) => string | undefined;
|
|
202
|
+
readonly budgets?: HonuaFeatureInspectionBudgets;
|
|
203
|
+
readonly detailsTtlMs?: number;
|
|
204
|
+
readonly searchTtlMs?: number;
|
|
205
|
+
readonly now?: () => number;
|
|
206
|
+
}
|
|
207
|
+
export interface CreateHonuaFeatureInspectionFromApplicationContextOptions<T = Record<string, unknown>> extends Omit<CreateHonuaFeatureInspectionOptions<T>, "resolveSource" | "sourceIds" | "selection" | "authScope" | "version"> {
|
|
208
|
+
/** Resolve additional sources when the context's primary binding is not enough. */
|
|
209
|
+
readonly resolveSource?: (sourceId: SourceId) => Source<T> | undefined;
|
|
210
|
+
readonly sourceIds?: readonly SourceId[];
|
|
211
|
+
}
|
|
212
|
+
export interface HonuaFeatureInspectionRealtimeUpdate<T = Record<string, unknown>> {
|
|
213
|
+
readonly kind: "upsert" | "delete";
|
|
214
|
+
readonly target: SourceQualifiedFeatureSelectionTarget;
|
|
215
|
+
readonly attributes?: Partial<T>;
|
|
216
|
+
readonly geometry?: Record<string, unknown> | null;
|
|
217
|
+
/** A full record may replace the open feature; a patch must name every changed field. */
|
|
218
|
+
readonly completeness?: "full" | "patch";
|
|
219
|
+
readonly changedFields?: readonly string[];
|
|
220
|
+
}
|
|
221
|
+
export interface HonuaFeatureInspectionController<T = Record<string, unknown>> {
|
|
222
|
+
snapshot(): HonuaFeatureInspectionSnapshot<T>;
|
|
223
|
+
subscribe(listener: (snapshot: HonuaFeatureInspectionSnapshot<T>) => void): {
|
|
224
|
+
remove(): void;
|
|
225
|
+
};
|
|
226
|
+
open(candidates: HonuaFeatureInspectionCandidate<T> | readonly HonuaFeatureInspectionCandidate<T>[], options?: {
|
|
227
|
+
readonly origin?: HonuaFeatureInspectionOrigin;
|
|
228
|
+
readonly activeIndex?: number;
|
|
229
|
+
readonly force?: boolean;
|
|
230
|
+
}): Promise<HonuaFeatureInspectionSnapshot<T>>;
|
|
231
|
+
openFromMapClick(candidates: readonly HonuaFeatureInspectionCandidate<T>[]): Promise<HonuaFeatureInspectionSnapshot<T>>;
|
|
232
|
+
openFromTableRow(candidate: HonuaFeatureInspectionCandidate<T>): Promise<HonuaFeatureInspectionSnapshot<T>>;
|
|
233
|
+
openSearchResult(index: number): Promise<HonuaFeatureInspectionSnapshot<T>>;
|
|
234
|
+
search(query: string, options?: {
|
|
235
|
+
readonly sourceIds?: readonly SourceId[];
|
|
236
|
+
}): Promise<HonuaFeatureInspectionSearchState<T>>;
|
|
237
|
+
navigate(index: number): Promise<HonuaFeatureInspectionSnapshot<T>>;
|
|
238
|
+
next(): Promise<HonuaFeatureInspectionSnapshot<T>>;
|
|
239
|
+
previous(): Promise<HonuaFeatureInspectionSnapshot<T>>;
|
|
240
|
+
setAttachmentPage(page: number): HonuaFeatureInspectionSnapshot<T>;
|
|
241
|
+
setRelationshipPage(relationshipId: number, page: number): HonuaFeatureInspectionSnapshot<T>;
|
|
242
|
+
refresh(): Promise<HonuaFeatureInspectionSnapshot<T>>;
|
|
243
|
+
applyRealtime(update: HonuaFeatureInspectionRealtimeUpdate<T>): HonuaFeatureInspectionSnapshot<T>;
|
|
244
|
+
close(): void;
|
|
245
|
+
dispose(): void;
|
|
246
|
+
}
|
|
247
|
+
/** Create a bounded, cancellable inspection workflow. */
|
|
248
|
+
export declare function createHonuaFeatureInspection<T = Record<string, unknown>>(options: CreateHonuaFeatureInspectionOptions<T>): HonuaFeatureInspectionController<T>;
|
|
249
|
+
/**
|
|
250
|
+
* Bind inspection to the supported application shell without introducing a
|
|
251
|
+
* second selection identity or authorization cache scope.
|
|
252
|
+
*/
|
|
253
|
+
export declare function createHonuaFeatureInspectionFromApplicationContext<T = Record<string, unknown>>(context: HonuaApplicationContext<T>, options?: CreateHonuaFeatureInspectionFromApplicationContextOptions<T>): HonuaFeatureInspectionController<T>;
|
|
254
|
+
/**
|
|
255
|
+
* Convert source-owned popup text to plain text. Tags, script/style blocks,
|
|
256
|
+
* event handlers, and control characters never reach a DOM interpretation.
|
|
257
|
+
*/
|
|
258
|
+
export declare function sanitizeHonuaInspectionRichText(value: string): string;
|
|
259
|
+
/** Resolve a display link without carrying credentials or unsafe schemes. */
|
|
260
|
+
export declare function sanitizeHonuaInspectionHref(value: string, options?: {
|
|
261
|
+
readonly baseHref?: string;
|
|
262
|
+
readonly allowedOrigins?: readonly string[];
|
|
263
|
+
}): string | undefined;
|
|
264
|
+
/** Format a scalar popup/detail value without interpreting it as markup. */
|
|
265
|
+
export declare function formatHonuaInspectionValue(value: unknown): string;
|
|
266
|
+
declare const HTMLElementBase: typeof HTMLElement;
|
|
267
|
+
/** Accessible search + popup/details presentation for a feature inspection controller. */
|
|
268
|
+
export declare class HonuaFeatureInspectionElement<T = Record<string, unknown>> extends HTMLElementBase {
|
|
269
|
+
#private;
|
|
270
|
+
/** Caller-injected labels, status text, range formatters, and diagnostics. */
|
|
271
|
+
get messages(): HonuaFeatureInspectionMessages;
|
|
272
|
+
set messages(messages: HonuaFeatureInspectionMessages | undefined);
|
|
273
|
+
get inspection(): HonuaFeatureInspectionController<T> | undefined;
|
|
274
|
+
set inspection(controller: HonuaFeatureInspectionController<T> | undefined);
|
|
275
|
+
/** Application shell context assigned by `mountHonuaApplication()`. */
|
|
276
|
+
get applicationContext(): HonuaApplicationContext<T> | undefined;
|
|
277
|
+
set applicationContext(context: HonuaApplicationContext<T> | undefined);
|
|
278
|
+
honuaApplicationContextConnected(context: HonuaApplicationContext<T>): void;
|
|
279
|
+
honuaApplicationContextChanged(event: HonuaApplicationContextChangeEvent<T>): void;
|
|
280
|
+
honuaApplicationContextDisconnected(context: HonuaApplicationContext<T>): void;
|
|
281
|
+
connectedCallback(): void;
|
|
282
|
+
disconnectedCallback(): void;
|
|
283
|
+
}
|
|
284
|
+
/** Define `<honua-feature-inspection>` in a registry, if it is not already defined. */
|
|
285
|
+
export declare function defineHonuaFeatureInspection(registry?: CustomElementRegistry | undefined): void;
|
|
286
|
+
export {};
|
|
287
|
+
//# sourceMappingURL=feature-inspection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-inspection.d.ts","sourceRoot":"","sources":["../../../src/web-components/feature-inspection.ts"],"names":[],"mappings":"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"}
|