Release Notes 4.20
What’s New
Long Term Security Support (LTSS)
Mit dieser Version wird ein sogenannter Long Term Security Support eingeführt. Die Version map.apps 4.20 ist die erste Version, die als LTSS-Release gekennzeichnet wird. Weitere Informationen hierzu erhalten Sie auf der Seite Long Term Security Support (LTSS).
App-Editor und Manager
Um die Konfiguration von Apps zu vereinfachen, können im App-Editor jetzt die Metadaten eines Karten-Dienstes automatisch abgerufen und aktualisiert werden. Außerdem erhält man eine Warnung, wenn IDs doppelt vergeben werden. Um die initiale Kartenansicht einfach und intuitiv festzulegen, können Sie jetzt ein Fenster mit einer Karten- oder 3D-Ansicht öffnen und dort die gewünschte Ansicht definieren.
Domain Bundles können jetzt im map.apps Manager und somit direkt im Webbrowser editiert und gespeichert werden. Ein Umweg über den Export und neuen Import des bearbeiteten Bundles entfällt somit.
Alle in der Datenbank gespeicherten Bundles können nun über die Manager-Oberfläche exportiert werden.
Koordinaten abfragen, suchen und umrechnen
Mit diesem Release wurde ein neues Bundle eingeführt, das Esris Coordinate Conversion Widget ersetzt. Es erlaubt die komfortable Umrechnung, Suche und Abfrage von Koordinaten in unterschiedlichen Formaten. Beim Verwenden des Koordinaten-Picker-Werkzeugs werden keine Popups mehr geöffnet, um ein ungestörtes Arbeiten zu ermöglichen.
Editing
Ab diesem Release ist es möglich, beim Editieren von Geoobjekten mehrere Objekte gleichzeitig zu bearbeiten oder zu löschen ("Bulk Editing"). Außerdem können verschiedene Zeichen-Werkzeuge bei der Erstellung von Geometrien genutzt werden. Bevor ein neues Objekt erstellt wird, kann es als Entwurf gespeichert werden, sodass zunächst weitere Objekte angelegt und erst später im Kartendienst gespeichert werden können.
Darüber hinaus können jetzt alle supportingWidgetDefaults-Einstellungen vollständig konfiguriert werden, um das Verhalten der Editierwerkzeuge noch präziser anzupassen.
Result Center
Das Result Center wurde im Hinblick auf Barrierefreiheit verbessert (siehe folgender Abschnitt). Zusätzlich werden Geometrieinformationen als Spalten unterstützt, und URLs in Ergebnistabellen werden jetzt automatisch als anklickbare Links dargestellt. Für Felder mit dem Render-Typ „link“ kann ein individuelles Link-Label konfiguriert werden. Die Darstellung ausgewählter Objekte nutzt nun die Esri Highlight API für ein konsistentes Verhalten in 2D und 3D und eine bessere Performance.
Accessibility
Als Teil unserer fortlaufenden Anstrengungen Anwendungen so zugänglich wie möglich zu machen, werden mit diesem Release folgende Verbesserungen eingeführt:
-
Besseres Fokus-Highlighting für Werkzeugsets vom Typ Menü oder Menüleiste
-
Apps können im map.apps Manager per Tastatur gestartet werden
-
Verbesserte aria-Attribute in verschiedenen Modulen (u.a. Result Center, DataView, Suchvorschläge)
-
Screenreader-Hinweis, wenn Suchvorschläge in der Suche verfügbar sind
-
aria-Unterstützung für Checkboxen und Menüs (z. B.
aria-checkedin ShrinkingDropdownMenus) -
Tooltips werden beim Fokussieren von Elementen angezeigt
-
Notifier-Komponenten sind besser mit der Tastatur bedienbar
Weitere Neuerungen
-
Die technische Basis von map.apps wurde auf ArcGIS Maps SDK for JavaScript Version 4.33 aktualisiert. Dies bringt zahlreiche Verbesserungen und Fehlerbehebungen mit sich.
-
Die neue Konfigurationsoption config.directory.location ermöglicht die Angabe eines alternativen Verzeichnisses für die
application.properties. Der Standardwert zeigt auf den gleichen Pfad wie die Konfigurationsoptiondata.directory.location. Mit Hilfe der neuen Option können Sie das Konfigurationsverzeichnisconfig.directory.locationvom Arbeitsverzeichnisdata.directory.locationder Anwendung trennen. -
Die Konfigurationsdatei
${config.directory.location}/secrets.propertieswird nun standardmäßig geladen. Es ist nicht mehr notwendig, die Datei in derapplication.propertiesperinclude ./secrets.propertieszu referenzieren. -
Mit diesem Release wird die Unterstützung für Tomcat 11 und Java 25 eingeführt. Gleichzeitig entfällt die Unterstützung für Java 17.
-
Es wurde eine neue Layer Visibility Tracking und Calculation API eingeführt, mit der sich Sichtbarkeiten und Zustände von Karten-Layern effizient nachverfolgen und ermitteln lassen.
-
Der AutoStoreRegistration-Mechanismus wurde verbessert: Basemaps werden nicht mehr automatisch registriert und die Option
suggestContains: falsewird unterstützt. -
In Popups können jetzt Standardaktionen definiert werden. Außerdem kann man benutzerdefinierte Aktionen für Portal-Item-Layer festlegen. Zudem kann über eine neue Option das initiale Anzeigeverhalten (
initialDisplayMode) von Popups gesteuert werden. -
Die Basiskarte für Standardberichte (Reports) kann nun über eine Basemap-URL konfiguriert werden.
-
Im Bundle
search-uikann nun eine minimale Eingabelänge für Suchbegriffe konfiguriert werden. Zudem werden überflüssigereturnCountOnly-Requests vermieden, was die Performance verbessert. -
Die Reihenfolge der Auswahlwerkzeuge (
selection-ui) kann jetzt frei konfiguriert werden.
Update-Hinweise
| Falls Sie bei dem Update mehrere Versionen überspringen, befolgen Sie bitte auch alle Update-Hinweise der dazwischenliegenden Versionen. |
Bundle-Umbenennung 'esri' → '@arcgis/core'
In Synchronisation mit dem ArcGIS Maps SDK für JavaScript wurde das Bundle namens esri in @arcgis/core umbenannt.
Daher müssen Sie die Imports im Code Ihrer eigenen Bundles entsprechend ändern.
Ändern Sie zum Beispiel in Ihren JavaScript- bzw. TypeScript-Dateien:
import Layer from "esri/layers/Layer";
zu
import Layer from "@arcgis/core/layers/Layer";
Und in Ihren manifest.json-Dateien:
{
// ...
"dependencies": {
"esri": "~x.y.z"
}
}
zu
{
// ...
"dependencies": {
"@arcgis/core": "~x.y.z"
}
}
Um Sie bei der Migration zu unterstützen, werden im map.apps Rollout einige Skripte bereitgestellt.
Bundle 'apprt-request' entfernt
Das Bundle apprt-request wurde entfernt.
Es war seit map.apps 4.14 abgekündigt.
Benutzen Sie stattdessen apprt-fetch, um HTTP-Anfragen abzusetzen, zum Beispiel:
import { apprtFetch } from "apprt-fetch";
const response = await apprtFetch("https://example.org/get");
Theming
Durch den Wegfall des Bundles omnisearch sind die dazugehörigen LESS Variablen aus den map.apps Themes entweder entfernt oder umbenannt worden.
Dies betrifft die folgenden Variablen, welche in der Datei themeSettings.less definiert sind:
-
@ct-omnisearch-input-background-color -
@ct-omnisearch-input-text-color -
@ct-omnisearch-result-list-hover-color -
@ct-omnisearch-drawer-button-background-color -
@ct-omnisearch-drawer-button-icon-color
Um ein eigenes Theme oder eine Theme-Extension anzupassen, gehen Sie wie folgt vor:
Schritt 1: Anpassen der themeSettings.less Datei
Öffnen Sie die Datei themeSettings.less in Ihrem Theme oder Ihrer Theme-Extension.
Fügen Sie folgende Variablendefinitionen hinzu:
-
@ct-inverted-background-color: #ffffff; -
@ct-inverted-text-color: #000000;
Löschen Sie die folgenden Variablendefinitionen:
-
@ct-omnisearch-input-background-color -
@ct-omnisearch-input-text-color
Benennen Sie folgenden Variablen Definitionen um:
-
@ct-omnisearch-result-list-hover-color→@ct-search-ui-result-list-hover-color -
@ct-omnisearch-drawer-button-background-color→@ct-drawer-button-background-color -
@ct-omnisearch-drawer-button-icon-color→@ct-drawer-button-icon-color
Schritt 2: Austauschen der entfernten Variablen
Dieser Schritt ist nur notwendig, wenn Sie eigene *.less Dateien geschrieben haben.
Suchen Sie nach Vorkommen der alten Variablen in Ihren *.less-Dateien und ersetzen Sie sie durch die entsprechenden neuen Variablen.
Alter Name |
Neuer Name |
|
|
|
|
|
|
|
|
|
|
Abbruch von Store-Abfragen
Die Unterstützung für die cancel()-Methode von Ergebnisobjekten, die von einem Store zurückgegeben werden (QueryResults), wurde entfernt.
Die Funktion war seit map.apps 4.15. abgekündigt.
Benutzen Sie stattdessen den Standard AbortController , um Abfragen abzubrechen. Zum Beispiel:
const aborter = new AbortController();
store.query(
{ name: "Test" },
{ signal: aborter.signal }
).then((resultItems ) => {
// ...
}, (e) => {
if (e.name === "AbortError"){
// aborted
}
});
// trigger abort
aborter.abort();
Konfigurationsoption configuration.watch.changes
Der Standard-Wert für die Konfigurationsoption configuration.watch.changes wurde auf false gesetzt.
Die Option ist abgekündigt und es wird empfohlen, die Option nicht mehr zu verwenden (siehe Abkündigungen).
Sollten Sie dennoch das vorherige Verhalten wieder herstellen wollen, setzen Sie die Option explizit auf true.
Unnötige Referenz in Konfiguration entfernen
Die Konfigurationsdatei ${config.directory.location}/secrets.properties wird nun standardmäßig geladen.
Die Angabe include ./secrets.properties in den application.properties kann entfernt werden.
Entfernung der Logstash-Unterstützung in der service.monitor Analytics-Integration
Die Unterstützung für Logstash in der service.monitor Analytics-Integration wurde entfernt. Daher müssen einige Konfigurationseigenschaften entfernt werden.
| Ab dieser Version ist service.monitor ab der Version 4.10 erforderlich, der Ingest-Pipelines anstelle von Logstash verwendet. |
Entfernen Sie in Ihren eigenen application.properties, sofern vorhanden, die folgenden Eigenschaften:
### Diese Einträge können entfernt werden
analytics.gelf.host=localhost
analytics.gelf.port=12201
analytics.gelf.protocol=udp
Ändern Sie außerdem den folgenden Eintrag:
# Diese Eigenschaft ist jetzt standardmäßig auf 'elastic' statt 'gelf' gesetzt
analytics.messengerType=elastic
Ergänzen Sie stattdessen die folgenden Einträge:
analytics.elastic.url=https://elasticsearch.example.com
analytics.elastic.username=username
analytics.elastic.password=password
Ausgelaufene Unterstützung
-
Bundles:
-
Das Bundle
omnisearchwurde entfernt. Es war seit map.apps 4.12 abgekündigt. Verwenden Sie stattdessen das Bundlesearch-ui. -
Die Bundles
resultcenterundselection-resultcenterwurden entfernt. Sie waren seit map.apps 4.14 abgekündigt. Verwenden Sie stattdessen das Bundleresult-ui. Die alten Bundles sind noch im con terra Developer Network verfügbar. -
Das Bundle
apprt-requestwurde entfernt. Es war seit map.apps 4.14 abgekündigt. Verwenden Sie stattdessen das Bundleapprt-fetch.
-
-
Die Klasse
apprt-core/Observablewurde entfernt. Sie basierte auf einem veralteten Entwurf des JavaScript-Observable -Proposals, der jedoch abgelehnt wurde. -
Die Unterstützung von
cancelin der Rückgabe der Abfrageergebnisse (QueryResult) eines Stores wurde entfernt. -
Die Unterstützung für die
GeometryService-Strategie wurde aus demcoordinatetransformer-Bundle entfernt. Nutzen Sie die anderen verfügbaren Strategien (Projection Engine, Proj4js) oder implementieren Sie eine angepasste Strategie auf Basis derCustomTransformerStrategy-Schnittstelle.
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.
-
Die Konfigurationsoption
configuration.watch.changeswird mit dem nächsten Release entfernt. Die dynamische Anwendung von Konfigurationsänderungen hat in verschiedenen Fällen zu Problemen geführt, die zu einer instabilen Anwendung führen konnten. Der Standardwert dieser Option wird auffalsegesetzt und empfohlen die Option nicht mehr zu verwenden. -
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.showLiveConfigButtonauffalsesetzen. -
Die Konfigurationsoption
config.view.navigation.mouseWheelZoomEnabledim Bundlemap-initwird demnächst entfernt.
-
-
Entwicklung:
-
Die Unterstützung der JavaScript Module
test-utils/laterundtest-utils/waitForPropertywird demnächst entfernt. Benutzen Sie stattdessen das neue Modultest-utils/waitFor. -
Die Unterstützung von
module.exportsin JavaScript-Dateien wird demnächst entfernt. Verwenden Sie stattdessen die ECMAScript-Schlüsselwörterexportoderexport default. -
Um eine zukünftige Migration von AMD zu einem anderen Modulsystem zu vereinfachen, sollten JavaScript-Dateien nach Möglichkeit nur als ECMAScript-Module geschrieben und dann transpiliert werden.
-
Die folgenden Klassen werden in einem der nächsten Releases entfernt:
Abgekündigte Klasse Alternative ct/arraynative JavaScript Funktionenct/asyncapprt-core/asyncct/_whenapprt-core/whenct/_compareapprt-core/comparators
-
Bekannte Einschränkungen
|
[Map] Zoom via mousewheel does not allow to zoom to the full max or min extent in some situations |
Abhängigkeiten
-
Esri ArcGIS Maps SDK for JavaScript 4.33.14
-
ArcGIS Arcade 1.32
-
JasperReports 6.21.5
-
Moment.js 2.29.4
-
Vue.js 2.7.16
-
Vuetify.js 1.5.24 (with custom patches, tracked as 1.5.37)
Changelog
4.20.2
Fixed Issues
|
[Performance] Limited performance when using editing widget and feature layer |
|
X-Forwarded-For headers with ports are rejected |
|
[Map] TileLayer without sub layers cannot be added to map |
|
[TOC] Actions not shown under certain conditions |
|
[Map] Type error related to view.extent in new MapState API |
|
[portal-security] Request errors on credential object in combination with Identity Service |
|
[Popups] popupEnabled is not applied to "parent" sublayers |
|
[basemaptoggler] Name of selected basemap not visible initially when using domain bundle |
|
[Manager] Editor does not support collapsing JSON content in large files |
4.20.0
New Features
|
[Accessibility] Add aria-label to header of actions column in result-ui |
|
[Accessibility] Add hint for screenreader that search suggestions are available in search-ui |
|
[Accessibility] Add i18n support for aria-label of filter DropDown in DataView |
|
[Accessibility] Add more context to selection checkboxes for screen reader in result-ui |
|
[Accessibility] Add visual highlight for focused tool in a Menu or Menubar toolset |
|
[Accessibility] Allow to focus app launch button in manager by keyboard |
|
[Accessibility] Support aria-checked attribute for assistive technology in ShrinkingDropdownMenus |
|
[agssearch] Support suggestContains: false in AutoStoreRegistration |
|
[App Editor] "Refresh/Import metadata" code lens |
|
[App Editor] Check for duplicated layer IDs |
|
[App Editor] Define initial view in map window |
|
[App Editor] Make notifier look less offset |
|
[AutoStoreRegistration] Do not register stores for basemaps by default |
|
[Coordinate Conversion] Prevent opening popups while using coordinate picker tool |
|
[CoordinateConversion] Introduce bundle to replace Esri’s Coordinate Conversion Widget |
|
[Coordinatetransformer] Drop support for GeometryService |
|
[Domain Bundles] Allow to edit domain bundle in map.apps Manager |
|
[domains-system] Allow the identification of the source domain bundle for each layer |
|
[Editing] Allow configuration of all supportingWidgetDefaults settings |
|
[IntegrationAPI] Automatically register integration api as global variable |
|
[Manager] Allow to export bundle |
|
[Map APIs] Layer Visibility Tracking and Calculation API |
|
[Map] Implement support for navigation.actionMap |
|
[Notifier] Improve accessibility of buttons inside notifier |
|
[Popup] Allow to create default actions |
|
[Popups] Allow custom actions for portal item layers with predefined popupTemplate |
|
[Popups] Allow to set initialDisplayMode |
|
[Reporting] Configure basemap url for default report |
|
[result-api] Provide support for columns displaying information about geometry data |
|
[result-api] Use Esri highlight API |
|
[result-ui] Show URLs as clickable links automatically |
|
[result-ui] Specify link label for fields of renderType "link" |
|
[search-ui] Configure minimum input length |
|
[search-ui] Omit unnecessary returnCountOnly requests |
|
[selection-ui] Configure order of selection tools |
|
[System] Update ArcGIS Maps SDK for JavaScript to version 4.33 |
|
[Vuetify] Show tooltips by default if activator receives focus |
|
Add support for DHHN2016 |
|
Define stronger default CSP header |
|
Introduce "config.directory.location" to separate writable directories and static configuration files |
|
Introduce general "secrets.properties" as special configuration file |
|
Remove apprt-core/Observable |
|
Split too long bundle requests into multiple ones if POST request is not possible |
Fixed Issues
|
"apprt-vue/directives/clipboard" steals focus when calling "copyText" |
|
[Accessibility] Focus lost after search-result item selection |
|
[Accessibility] Lack of screenreader support for selected toolitem in menu toolset |
|
[Accessibility] Screenreader recognizes invisible loading bars in TOC |
|
[Accessibility] Wrong order for keyboard navigation when using collapsed toolsets |
|
[ct-jsregistry-maven-plugin] scanPackagesIncludes does not find configured files |
|
[Editing] Not all visibleElements are configurable |
|
[locateme] Position display limited for EPSG:3857 and missing for other CRS |
|
[Manager] Bundles in bundle list stay selected although selection reset by user |
|
[Manager] Focus displayed and jumping to arbitrary tab on mouse click |
|
[Mutable/Reactivity] Setting a mutable property in a reactive effect throws "Cycle Detected" error |
|
[parametermanager] Home button not working when launching with different view mode via URL parameter |
|
[Performance] Limited performance when using measurement widget and feature layer |
|
[Printing] Printpreview frame still shown when printing widget is closed |
|
[Reporting] security.ssl.trustAny is not used to fetch remote image data |
|
[result-api] BulkAction not informed about selection reset after table switch |
|
[result-ui] Order of actions not stable |
|
[result-ui] Table rows with objectID 0 not highlighted when focused |
|
[SceneView] Non-visible WMS layer contained in group layer is displayed during initialization of a scene |
|
[Theming] Insufficient color contrast in v-expansion-panel |
|
[Toolbars] Missing key event handling to use up/down arrow keys for vertical navigation |