Release Notes 4.18

What’s New

Result Center

Feldinhalte formatieren

Für eine optimale Darstellung der angezeigt Ergebnisse können die Inhalte eines Felds nun umfassend formatiert werden. Pro Feld können nun das Datumsformat, die Anzahl der Nachkommastellen und die Anzeige eines Tausendertrennzeichens definiert werden. Mit Hilfe von ArcGIS Arcade Ausdrücken können zudem neue virtuelle Felder ergänzt werden, die z.B. vorhandene Felder formatieren oder miteinander kombinieren. Die Überschrift jeder Datenspalte kann ebenfalls überschrieben werden.

Tabellen-Darstellung optimieren

Die Ausrichtung kann nun pro Feld definiert werden (z.B. rechtsbündig). Außerdem kann die maximale Länge des angezeigten Textes konfiguriert werden. Längere Texte können per Klick weiterhin gelesen werden, stören aber nicht mehr die initiale Darstellung der Tabelle. Die automatische Berechnung der Spaltenbreiten wurde zudem optimiert.

Verbesserte Seitenleiste

Die Seitenleiste, die angezeigt wird wenn Ergebnisse zu mehreren Themen vorhanden sind, lässt sich nun einklappen. Das automatische Verhalten, dass die Seitenleiste gar nicht gezeigt wird, wenn nur Ergebnisse zu einem Thema vorhanden sind, kann deaktiviert werden, so dass die Leiste immer gezeigt wird. Wenn die angezeigten Titel zu lang sind um vollständig dargestellt zu werden, gibt nun ein Tooltip Aufschluss über den kompletten Titel (der vollständige Titel wird außerdem angezeigt, wenn man das Thema anklickt). Eine weitere kleine Verbesserung ist, dass bei erneutem Klick auf ein aktives Thema die Karte auf den Ausschnitt aller Objekte zoomt.

Bulk- und Row-Actions

Mit diesem Release werden zwei neue Row-Actions bereitgestellt:

  1. Objekt editieren - Mit dieser Action wird die Editierung des entsprechenden Objekts gestartet. Nach der Bearbeitung werden geänderte Attribut-Werte auch im Result Center aktualisiert.

  2. Popup öffnen - Mit dieser Action wird ein Popup für das entsprechende Objekt geöffnet.

Die Platzierung der Row-Actions wurde ebenfalls verbessert. Standardmäßig werden die Actions nun am linken Rand (neben den Checkboxen) angezeigt, um einen schnelleren Zugriff zu erlauben. Das alte Verhalten bei dem die Actions am rechten Bildschirmrand gezeigt wurden, kann per Konfiguration wieder hergestellt werden.

Ebenso optimiert wurde die Darstellung der sog. Bulk-Actions (Actions die sich auf mehrere Objekte beziehen, z.B. CSV-Export). Auf Wunsch wird der ganze zur Verfügung stehende Platz genutzt, um die Actions nebeneinander darzustellen. Nur bei zu wenig Platz wird in diesem Fall ein "Weitere Aktionen"-Menü angezeigt, in dem die weiteren Actions untergebracht werden. Eine feste Unterteilung der direkt und im Untermenü sichtbaren Aktionen ist weiterhin möglich. In Fällen in denen das "Weitere Aktionen"-Menü nur einen Eintrag beinhalten würde, wird diese eine Action direkt anstelle des Menüs angezeigt, da dies gleich viel Platz einnimmt, aber einen Klick spart.

Weitere Verbesserungen

Wenn nachträglich weitere Ergebnisse zu einer Ergebnismenge hinzukommen, wird der räumliche Ausschnitt auf den gezoomt wird aktualisiert. Für Entwickelnde wurden Möglichkeiten eingeführt, die Anzeige von Spalten und die Reihenfolge von dynamischen Actions besser zu kontrollieren.

Neue Dienste-Typen für Suche und Selektion

Die Unterstützung von offenen Standards wird in diesem Release deutlich ausgeweitet. Es ist nun möglich, Dienste vom Typ OGC API - Features, OGC Web Feature Service (WFS), GeoJSON und CSV zur Suche und Selektion zu nutzen. Neben der Nutzung eigener Dienste ergeben sich so neue Möglichkeiten, um z.B. öffentliche Daten, die häufig in einem der OGC-Formate bereitgestellt werden, in eigene Apps einzubeziehen.

Für Entwickelnde

TypeScript

Mit diesem Release werden weitere Bundles in TypeScript (siehe Einführung in 4.12) ausgeliefert, was die Entwicklung gegen die Schnittstellen dieser Bundles einfacher und sicherer macht. Hierzu zählen neben anderen die wichtigen map-init und selection-* Bundles.

Reactivity API

Das neue Bundle @conterra/reactivity-core ist jetzt Teil von map.apps. reactivity-core implementiert ein auf "signals" basierendes Reaktivitätssystem. Dieses System kann verwendet werden, um auf einfache Weise zustandsabhängige APIs und darauf basierende reaktive Benutzeroberflächen zu implementieren. Langfristig soll das neue Reaktivitätssystem dort zum Einsatz kommen, wo man heute Klassen wie Mutable oder Binding verwendet. Vorerst ist die Reaktivitäts-API als frühe Vorschau enthalten (Änderungen werden noch auf der Grundlage von Feedback vorgenommen).

Um Elemente aus @conterra/reactivity-core zu importieren, schreiben Sie:

import { /* ... */ } from "@conterra/reactivity-core";
// or, for convenience:
import { /* ... */ } from "apprt-core/reactivity";

Um reaktive Werte aus einer Vue-Komponente zu verwenden, wurde ein neuer composable mit dem Namen useReactiveSnapshot() erstellt (für Details siehe apprt-vue’s bundle documentation ):

import { useReactiveSnapshot } from "apprt-vue";

Weitere Verbesserungen

Zu Verbesserungen in apprt-core zählen die Einführung von /clone und /assignWithPrototype Modulen, sowie der Support für synchrone Events.

Bei der Entwicklung für die Selection UI können nun nicht interaktive SpatialInputActions genutzt werden. Außerdem wurde eine Möglichkeit zur besseren Kontrolle von zusätzlich benötigten Fenstern geschaffen (z.B. Radius eingeben, um eine Kreis-Auswahl zu treffen).

Weitere Neuerungen

  • Das von map.apps als technische Basis genutzte ArcGIS Maps SDK for JavaScript wird mit diesem Release auf die Version 4.29 aktualisiert. Dies führt zu zahlreichen Verbesserungen und Fehlerbehebungen in der Basistechnologie.

  • Bei der Räumlichen Auswahl (Selektion) kann während der Nutzung entschieden werden, ob vorhandene Ergebnisse ersetzt oder ergänzt werden sollen.

  • Bei der Suche wird bei Nutzung des ArcGIS World Geocoder nun die Kartenposition für die Gewichtung der Ergebnisse berücksichtigt.

  • Popups

    • Die Reihenfolge der Darstellung wenn mehrere Objekte getroffen wurden, entspricht nun der Layer-Reihenfolge in der Karte.

    • Popups können nun auch für ArcGIS Tiled Map Services konfiguriert werden.

    • Popups können nun auch bei geöffneter Zeichnen-Werkzeugleiste geöffnet werden. Nur wenn ein konkretes Werkzeug aktiv ist, werden keine Popups geöffnet.

  • Die Integration von service.monitor Analytics zur Verfolgung von Backend-Aktionen in map.apps wurde vereinfacht.

  • Apps können nun analog zu Bundles in einen definierten Ordner als statische Dateien gelegt werden und werden dann beim Server-Start importiert.

  • Um die Accessibility zu verbessern, wurde der Kontrast im Everlasting Theme optimiert.

  • Beim Editieren kann das Verhalten beim Fangen (Snapping) detaillierter gesteuert werden (z.B. Fang-Toleranz).

  • Es ist nun möglich Tabellen in der Karte zu registrieren, um diese z.B. zur Darstellung oder Bearbeitung von abhängigen Daten zu nutzen (Related Tables)

  • Die Bundle-Dokumentation wurde verbessert: Nach einer Suche wird direkt die Readme-Datei angezeigt und nicht erst die Auswahl der Version. Der Zugang zu den Inhalten wurde so beschleunigt. Außerdem werden externe Links in neuen Tabs geöffnet und sind als solche gekennzeichnet. Am Rand jeder Seite wird ein Inhaltsverzeichnis der Inhalte der jeweiligen Seite angezeigt.

  • Der App-Editor zeigt nun beim Scrollen immer die übergeordnete Verschachtelung in der JSON-Struktur an. Die Orientierung in welchem Abschnitt man sich befinden wird so besonders in größeren Dateien vereinfacht.

Update-Hinweise

Falls Sie bei dem Update mehrere Versionen überspringen, befolgen Sie bitte auch alle Update-Hinweise der dazwischenliegenden Versionen.

Result Center: Änderungen bei der Zahlenformatierung

Mit der neuen Funktion zur Steuerung der Formatierung von Datumsspalten und Zahlen ergeben sich Änderungen bei der Standardausgabe von Zahlen.

Fließkommazahlen haben nun standardmäßig drei Stellen nach dem Komma, was zu einer anderen Ausgabe als bisher führen kann. Ganzzahlige Werte haben überhaupt keine Nachkommastellen. Dieses Verhalten wird durch die Metadaten des Stores bestimmt. Wenn ein Dienst beispielsweise Integer-Werte in einem Feld des Typs "Double" speichert, erhalten diese Werte auch Nachkommastellen (Nullen am Ende).

AutoStoreRegistrierung

Wie zuvor beschrieben, werden neue Layer-Typen für die Suche und Selektion unterstützt. Wenn Sie die Auto-Store-Registrierung für eine App aktiviert haben und die Kartenkonfiguration einen der neu unterstützten Typen enthält, werden diese nun möglicherweise im räumlichen Auswahldialog angezeigt oder erzeugen Ergebnisse, wenn Sie die Suchfunktion verwenden.

Bundle layerlist umbenannt

Das Bundle layerlist wurde in test-layerlist umbenannt, um seinen Zweck deutlich zu machen. Wenn es verwendet wird, muss die App-Konfiguration entsprechend aktualisiert werden.

Änderungen im Datenbankschema der Beschreibungsspalten

Neue Installationen verwenden eine geringere Länge für die Beschreibungsspalten der Tabellen apps, apptemplates, jspacks und reporttemplates (512 Zeichen, statt 2048) als in früheren Versionen. Die bisherige Länge war für einige Datenbanken im Hinblick auf die Indizierung zu groß und konnte bei der Einrichtung zu Warnungen führen. In der Praxis werden sehr lange Beschreibungen nicht verwendet, so dass diese Änderung ohne Bedenken auf bestehende Installationen angewendet werden kann.

Um die Änderung auf Ihre bestehende Installation anzuwenden, gehen Sie manuell vor:

  • Der Datenbankbenutzer muss die Berechtigung haben, Tabellen und Indizes zu erstellen/zu ändern.

  • Nach der Aktualisierung können die Berechtigungen wieder entzogen werden.

Verwenden Sie das entsprechende SQL-Skript für die von Ihnen verwendete Datenbank. Das Skript ändert den Datentyp der betreffenden Spalten und schneidet alle vorhandenen Werte auf die neue Maximallänge ab.

Änderung der ComponentContext.getProperties Methode

Sollten Sie in eigenen Komponenten die Methode ComponentContext.getProperties verwenden, beachten Sie bitte, dass diese Methode in diesem Release geändert wurde. Die Methode gibt jetzt ein einfaches JavaScript Objekt zurück, welches die Konfigurationsoptionen der Komponente auflistet und nicht mehr ein Objekt vom Typ ct/Hash liefert.

Wir empfehlen ganz auf die Verwendung dieser Methode zu verzichten und den empfohlenen Weg über _properties zu nutzen:

activate() {
    const properties = this._properties;
    const value = properties.key;
}

Alternativ passen Sie Ihren Code wenn nötig wie folgt an:

activate(componentContext) {
    const properties = componentContext.getProperties();

    // alter Code
    const value = properties.get('key');

    // neuer Code
    const vale = properties.key;

    // alter Code
    const propertiesAsObject = properties.entries;

    // neuer Code
    const propertiesAsObject = properties;
}

Ausgelaufene Unterstützung

  • Die Methode ComponentContext.getProperties() liefert ein einfaches JavaScript Objekt und nicht mehr ein Objekt vom Type ct/Hash.

  • Die Klasse ct/mapping/store/MapServerLayerStore wurde entfernt, damit entfällt auch die Option legacyImplementation im agssearch Bundle (abgekündigt seit 4.13).

  • Die Unterstützung für data-template-window und data-template-window-events in template files wurde entfernt (abgekündigt seit 4.12).

  • Die Klassen im Modul ct/store/, die inzwischen durch Klassen im Modul store-api/ ersetzt werden können, wurden entfernt (abgekündigt seit 4.12).

  • Die JS Registry kann nicht mehr als npm Registry verwendet werden.

  • Die Konfigurationsoption allowedWorkflows im Bundle editing wurde entfernt. Verwenden Sie stattdessen die Optionen visibleElements.createFeaturesSection und visibleElements.editFeaturesSection, um die Sektionen Features erstellen bzw. Feature bearbeiten im Editing Widget ein- oder auszublenden (abgekündigt seit 4.14).

  • Die Klasse ct/ui/controls/mobile/Drawer wurde entfernt. Sie wurde aus dem ct Paket nach toolset migriert (abgekündigt seit 4.13).

Abkündigungen

Für folgende Features wird die Weiterentwicklung eingestellt und das Ende der Unterstützung für die Zukunft angekündigt. Beachten Sie außerdem die Hinweise in den Systemanforderungen.

  • map.apps Manager und App-Konfiguration:

    • Die Live-Konfiguration wird nicht mehr weiterentwickelt und wird in einer der kommenden Versionen entfernt. Verwenden Sie stattdessen den App-Editor zur Konfiguration von Apps. Sie können die Live-Konfiguration bereits jetzt für Ihre Nutzer ausblenden, indem Sie die Konfigurations-Option manager.config.editor.showLiveConfigButton auf false setzen.

  • Die Unterstützung von app.jsp Dateien für das rollenbasierte Filtern von app.json Dateien wird nicht mehr weiterentwickelt und in einer der kommenden Versionen entfernt.

  • Das Widget username aus dem Modul authentication/UsernameWidget wird in der nächsten Version entfernt. Benutzen Sie stattdessen das Widget authenticationInfo aus dem Modul authentication/AuthenticationInfoWidget. map.apps verwendet das Widget authenticationInfo seit längerem standardmäßig im "seasons" Template. Das heißt, dass ein Anpassung nur notwendig ist, wenn Sie das Widget username explizit in Ihren Apps verwenden.

  • Bundles:

    • Das Bundle omnisearch-portalitem wird in Kürze entfernt.

    • Das Bundle share-link-shim wird in Kürze entfernt.

    • Das Bundle omnisearch wird nicht mehr weiterentwickelt. Verwenden Sie stattdessen das Bundle search-ui.

    • Die Bundles resultcenter und selection-resultcenter werden nicht mehr weiterentwickelt. Verwenden Sie stattdessen das Bundle result-ui.

  • Entwicklung:

    • Die Unterstützung der JavaScript Module test-utils/later und test-utils/waitForProperty wird demnächst entfernt. Benutzen Sie stattdessen das neue Modul test-utils/waitFor (ab 4.18.3) verfügbar.

    • Die Unterstützung von module.exports in JavaScript-Dateien wird demnächst entfernt. Benutzen Sie stattdessen die ECMAScript Keywords export bzw. export default.

    • Um eine zukünftige Migration von AMD zu einem anderem Modulsystem zu erleichtern sollten JavaScript-Dateien nach Möglichkeit nur noch als ECMAScript Module verfasst und anschließend transpiliert werden.

    • Die Unterstützung von cancel in der Rückgabe der Abfrageergebnisse (QueryResult) eines Stores wird demnächst entfernt. Ziel ist es die Komplexität der store-api.Store Api zur reduzieren. Bitte benutzen Sie stattdessen einen AbortController , wie unter Nutzung eines AsyncStore beschrieben.

      const aborter = new AbortController();
      store.query({name: "Test"}, { signal: aborter.signal })
          .then((resultItems)=>{
              ...
          }, (e)=>{
              if (e.name === "AbortError"){
                  // aborted
              }
      })
      // trigger abort
      aborter.abort();
      [source,javascript]
    • Die folgenden Klassen werden in einem der nächsten Releases entfernt:

Abgekündigte Klasse Alternative

ct/array

native JavaScript Funktionen

ct/async

apprt-core/async

ct/_when

apprt-core/when

ct/_compare

apprt-core/comparators

Bekannte Einschränkungen

MAPAPPS-5654

[Map] Zoom via mousewheel does not allow to zoom to the full max or min extent in some situations

MAPAPPS-6377

[Printing] Printing of line measurement not possible with PrintTask published from ArcMap

Abhängigkeiten

  • Esri ArcGIS Maps SDK for JavaScript 4.29.10

  • ArcGIS Arcade 1.26

  • JasperReports 6.21.3

  • Moment.js 2.29.4

  • Vue.js 2.7.15

  • Vuetify.js 1.5.24 (with custom patches, tracked as 1.5.30)

Changelog

4.18.3

Improvements

MAPAPPS-7171

[ct-proxy] Support lookup of bearer token from file

MAPAPPS-6303

[Reporting] Add accessibility information to default report template

Fixed Issues

MAPAPPS-7130

[Result Center] GeoJSON fields that contain dots in name are not found

MAPAPPS-7157

[Window Manager] Programmatically maximized window gets size 0 on restoring

MAPAPPS-7158

[popups-default] Popup shows field name instead of title from store metadata

MAPAPPS-7165

[Popups] Wrong date format when opening popup for store

MAPAPPS-7169

[app-import] Flag sharedInGroups is ignored

MAPAPPS-7173

[jsregistry] Regex after arrow function leads to illegal layer.js files

MAPAPPS-7176

[Vuetify] v-chip submits HTML form

MAPAPPS-7177

[authentication] UsernameWidget configuration is not applied

MAPAPPS-7178

[result-ui] esriFieldTypeSmallInteger is shown as decimal value

MAPAPPS-7180

[BrowserSync] Support current proxy.allowedServerUrls Syntax

MAPAPPS-7181

[Native App Export] Launch failure

MAPAPPS-7193

Missing assets of calcite-components

MAPAPPS-7203

[Accessibility] Layer options in TOC cannot be reopened

MAPAPPS-7206

[Accessibility] ButtonActions in TOC are not focusable by keyboard

MAPAPPS-7207

[App Editor] Pre-optimized app can be saved unnecessarily

MAPAPPS-7209

[Apps overview] App is opened in the current browser tab

MAPAPPS-7210

Loading screen does not escape HTML when rendering app title

MAPAPPS-7212

[Map] Missing hint for missing WebGL 2 support

MAPAPPS-7213

[result-ui] Row actions in overflow menu are not read by screen reader

4.18.2

Fixed Issues

MAPAPPS-7146

[Accessibility] Add search role to search-ui

MAPAPPS-7152

[Accessibility] Pressing Enter when Reset button has focus triggers EnterKeyAction in SearchUI

MAPAPPS-7140

[Live configuration] Saving component factory configuration is broken

MAPAPPS-7153

[SearchUI] EnterKeyAction sometimes not triggered

MAPAPPS-7154

[WindowManager] Screen reader reads "Can be moved with arrow keys" for fixed windows

4.18.1

Fixed Issues

MAPAPPS-7126

[app-mgmt] Apps with role constraints can not be opened in /manager

MAPAPPS-7129

[System] Programmatic change of 'componentEnabled' leads to error

4.18.0

New Features

MAPAPPS-7074

[Accessibility] Improve color contrasts in everlasting theme

MAPAPPS-6630

[Accessibility] Improve screenreader support and focus highlight in Manager menu

MAPAPPS-7078

[App Editor] Enable sticky scrolling

MAPAPPS-7094

[App Editor] Update monaco editor to 0.47.0

MAPAPPS-5074

[App Import] Automatic App import during server startup

MAPAPPS-6986

[apprt-core] Add apprt-core/clone as alternative for ct/_lang#transform

MAPAPPS-6987

[apprt-core] Add appt-core/assignWithPrototype as alternative for ct/_lang#merge

MAPAPPS-6993

[apprt-core] Support synchronous events and remove usage of Observable

MAPAPPS-7012

[Documentation] Add how-to in Developer’s guide for automated app import

MAPAPPS-7089

[Documentation] Format chart headings for popups

MAPAPPS-6953

[Editing] Support snapping properties distance, featureEnabled and selfEnabled

MAPAPPS-7081

[JS Registry] Decorate external links in READMEs and open them in new browser tab

MAPAPPS-7083

[JS Registry] Provide direct link to bundle README from bundle search result list

MAPAPPS-7082

[JS Registry] Sidebar TOC for bundle READMEs

MAPAPPS-7043

[JS Registry] Update Apache commons compress to 1.26

MAPAPPS-7096

[Map] Allow to register tables

MAPAPPS-6888

[Popups] Allow popups on ArcGIS Tiled Map services

MAPAPPS-5515

[Popups] Sort features according to order of map layers

MAPAPPS-7015

[Pre-Optimization] Use background task to compress GZIP and Brotli

MAPAPPS-6476

[Result Center] Add custom fields using Arcade Expressions

MAPAPPS-6999

[Result Center] Add methods to show and hide columns programmatically

MAPAPPS-6480

[Result Center] Collapse topic sidebar

MAPAPPS-7039

[Result Center] Configure alignment of fields

MAPAPPS-7025

[Result Center] Configure field alias

MAPAPPS-6464

[Result Center] Configure field output of numbers and dates

MAPAPPS-6491

[Result Center] Configure to always show sidepane

MAPAPPS-7004

[Result Center] Control order of dynamic actions

MAPAPPS-7001

[Result Center] Dynamically calculate when an action menu is required

MAPAPPS-7002

[Result Center] Improve automatic size of columns

MAPAPPS-7035

[Result Center] Move all actions to "More Actions" menu when on mobile screens or in narrow mode

MAPAPPS-7003

[Result Center] Move row actions to left side

MAPAPPS-7005

[Result Center] Order bulk actions by label instead of ID

MAPAPPS-6970

[Result Center] Row action to open popup

MAPAPPS-6904

[Result Center] Row action to start edit workflow

MAPAPPS-6658

[Result Center] Set maximum length of visible cell content

MAPAPPS-7000

[Result Center] Show 'more actions' menu only if it contains more than one action

MAPAPPS-7010

[Result Center] Show tooltip for too long topic names

MAPAPPS-7019

[Result Center] Support all Esri dateformat values similar to popups

MAPAPPS-7067

[Result Center] Support popups for highlighted items that are not shown on the map

MAPAPPS-6700

[Result Center] Update table when underlying FeatureLayer is edited

MAPAPPS-6496

[Result Center] Zoom to all results when clicking on topic in sidebar

MAPAPPS-6865

[Result Center] Zoom to new extent when results are added

MAPAPPS-6872

[Search] Add support for GeoJSON, CSV and WFS

MAPAPPS-6972

[Search] Consider map position for ranking search results of ArcGIS World Geocoder

MAPAPPS-5851

[Search] Respect time extent for search and selection

MAPAPPS-6657

[Search] Search and select in OGC API Features layer

MAPAPPS-5692

[Selection] Add optional hooks to allow developers to control additional widgets

MAPAPPS-5297

[Selection] Allow to use non-interactive SpatialInputActions

MAPAPPS-6655

[Selection] Allow user to decide if current results are replaced or merged

MAPAPPS-5309

[Setup] Simplify integration of service.monitor analytics tracking

MAPAPPS-7065

[Sketching] Support popups when not drawing

MAPAPPS-6964

[System] Update ArcGIS Maps SDK for JavaScript to version 4.29

MAPAPPS-6840

[Vuetify] Improve accessibility for vuetify button groups component

Fixed Security Issues

MAPAPPS-7058

[Proxy] Unwanted transmission of external cookies

Fixed Issues

MAPAPPS-7101

[Accessibility] Keyboard focus for map is shown during mouse navigation

MAPAPPS-7119

[Accessibility] Missing aria attributes for basemaps dropdown in TOC

MAPAPPS-7106

[apprt-core] Value lookup in string-replace helper ignores keys containing a dot

MAPAPPS-6989

[App Editor] Schema validation fails if jsregistry url is defined without protocol

MAPAPPS-6962

[Database] Maximum key length for a nonclustered index exceeded in Microsoft SQL Server

MAPAPPS-7122

[Documentation] Broken link to bundle documentation

MAPAPPS-7113

[Editing] Input type date picker shows unwanted time input

MAPAPPS-7022

[Editing] Visual feedback when hovering item in template list is missing

MAPAPPS-7125

[Editing] Wrong text color for disabled field content in everlasting theme

MAPAPPS-7026

[JS Registry] Bundle README links to other bundles with anchors are not working

MAPAPPS-7109

[Map] GeoJSON layers with popupTemplates generate unwanted underscores

MAPAPPS-7091

[Measurement] Measurement over long distances in EPSG 25832 leads to errors

MAPAPPS-7088

[Popups] All line breaks in tables are moved to the beginning

MAPAPPS-7054

[Popups] Attachments are not shown in popup opened from open-popup map action

MAPAPPS-7115

[Reporting] Report generation fails if service URL contains special characters

MAPAPPS-7007

[Result Center] Selection column header can be scrolled out of view

MAPAPPS-7064

[result-ui] Cannot trigger row action for feature with id 0

MAPAPPS-7086

[Selection] Missing feature highlight

MAPAPPS-7111

[TOC] Window can not be uncollapsed after it was closed in collapsed state

MAPAPPS-6984

[TOC] Wrong behavior of visibilityMode exclusive

MAPAPPS-7114

[Vuetify] Do not show v-tooltip when user touches on element

MAPAPPS-7040

[Vuetify] Menus stay opened when content outside the menu is scrolled