viewof selection = {
const selectionField = "properties";
const bhamMap = vl.markGeoshape({"strokeWidth": "2", "stroke": "White",})
.data(bhamWardBoundaries)
.params([
{ name: "selected", select: { type: "point", fields: [selectionField]} },
])
.encode(
vl.tooltip({"field": "properties.WD21NM"}),
)
.width(500)
.height(500);
const element = await bhamMap.render();
const view = element.value;
const input = html`<div>${element}`;
view.addSignalListener("selected", (signal, selection) => {
const key = selectionField.replace(".", "\\.");
const items = selection[key];
input.value = items[0].WD21NM
const outputField = document.querySelector('#outputField');
outputField.innerHTML = items[0].WD21CD + ":" + items[0].WD21NM;
input.dispatchEvent(new Event("input"));
});
return input;
}