Zum Hauptinhalt springen

Liste der Abkündigungen

Palisades​

Abgekündigte Pakete​

Die Inhalte der folgenden Pakete wurden abgekündigt:

Import des ursprünglichen PaketsNeuer Import
@jutro/lab-preview-test-e2e@jutro/legacy/lab-preview-test-e2e
@jutro/build-tools@jutro/eslint-config und @jutro/stylelint-config
@jutro/data@jutro/legacy/data
@jutro/toolset-compilers-

Für das Paket @jutro/data können Sie Ihre Importe unter Verwendung von Codemods so anpassen, dass sie auf den Speicherort des neuen Pakets verweisen.

Abkündigungen im Jutro-Komponentenpaket​

Die folgenden Komponenten im @jutro/components-Paket wurden abgekündigt. Um die Abwärtskompatibilität zu gewährleisten, wurden diese Komponenten in das @jutro/legacy/components-Paket verschoben. Sie können Ihre Importe unter Verwendung von Codemods so anpassen, dass sie auf den Speicherort des neuen Pakets verweisen.

  • Chevron
  • CustomFieldWrapper
  • DropdownMenuButton

Abkündigungen im Jutro-Gebietsschemapaket​

Die folgenden Komponenten und Hilfsprogramme im @jutro/locale-Paket wurden abgekündigt. Um die Abwärtskompatibilität zu gewährleisten, wurden diese Komponenten und Hilfsprogramme in das @jutro/legacy/locale-Paket verschoben. Sie können Ihre Importe unter Verwendung von Codemods so anpassen, dass sie auf den Speicherort des neuen Pakets verweisen.

  • LanguageContext
  • LocaleContext
  • CountryContext
  • CurrencyContext
  • IntlContext
  • TranslatorContext
  • withIntl
  • withTranslator
  • LanguageKey
  • G11nData
  • GlobalizationChange
  • GlobalizationSettings
  • LocaleConfig
  • formatPhoneNumberAndCountryCode
  • getPrefixForCountry
  • getSamplePhoneNumber
  • isValidatePhoneNumber
  • getBrowserLanguage
  • getCountryCodeFromLocale
  • getFormattedMonthsForLocale
  • getLanguageFromLocale
  • normalizeToUnderscoreLocale
  • getDefaultTimeZone
  • getUrlTranslatorAndSanitizer
  • formatDateToDataType
  • formatDateToLocalePattern
  • parseDateFromDataType
  • trimToInputFormat
  • inputFormatToValueParts
  • getDateInputFormats
  • getDatePatternFromLocale
  • isTodayOutOfRange
  • isDateInRange
  • validateDateUserInput

Abgekündigte Gebietsschema-Kontextanbieter​

Einige @jutro/locale-Kontextanbieter wurden in diesem Release abgekündigt. Sie müssen jetzt direkt über die zugehörigen Hooks auf den Kontext zugreifen.

Bisher haben Sie Währungsangaben beispielsweise mit IntlContext wie folgt formatiert:

import { IntlContext } from '@jutro/locale';

const intl = useContext(IntlContext);
const c1 = formatCurrency(intl, {
value: 1232.24,
currency: 'eur',
showFractions: true,
});

Jetzt erhalten Sie den Wert intl wie folgt direkt aus dem Hook useIntl:

import { useIntl } from '@jutro/locale';

const intl = useIntl();
const c1 = formatCurrency(intl, {
value: 1232.24,
currency: 'eur',
showFractions: true,
});

Die vollständigen Änderungen lauten folgendermaßen:

Abgekündigter KontextAlternativer Hook
IntlContextuseIntl
LanguageContextuseLanguage
LocaleContextuseLocale
TranslatorContextuseTranslator

Abgekündigte Gebietsschema-Wrapper​

Die Kontext-Wrapper withIntl und withTranslator aus @jutro/locale wurden in diesem Release abgekündigt.

Sie wurden verwendet, um auf IntlContext und TranslatorContext in Klassenkomponenten zuzugreifen – als Workaround für die Einschränkung von React, in einer Klassenkomponente nur einen einzigen Kontext lesen zu können

Sie haben drei Möglichkeiten, wie Sie anders vorgehen können:

  • (Empfohlen) Schreiben Sie Klassenkomponenten als Funktionskomponenten um und verwenden Sie den alternativen Hook (useIntl oder useTranslator).
  • Erstellen Sie einen Kontext-Consumer entsprechend der React-Dokumentation (weitere Informationen finden Sie unter https://legacy.reactjs.org/docs/context.html#consuming-multiple-contexts).
  • Behalten Sie die Klassenkomponente bei, aber verwenden Sie einen kleinen funktionalen Wrapper, der den Hook liest und als Eigenschaft übergibt.

Beispielsweise bei Verwendung von folgendem Code mit withTranslator:

import React from 'react';
import { withTranslator, TranslatorContext } from '@jutro/locale';
import type { Translator } from '@jutro/locale';

import { messages } from './MyComponent.messages';

type MyComponentProps = {
name: string;
};

type MyComponentPropsWithTranslator = MyComponentProps & {
translator: Translator;
};

class MyComponentInternal extends React.Component<MyComponentPropsWithTranslator> {
render() {
const { name, translator } = this.props;

return <p>{translator(messages.welcome, { name })}</p>;
}
}

const MyComponentOld = withTranslator(MyComponentInternal);

Dies ist die Version einer funktionalen Komponente:

import React from 'react';
import { useTranslator } from '@jutro/locale';
import type { Translator } from '@jutro/locale';
import { messages } from './MyComponent.messages';

type MyComponentProps = {
name: string;
};

const MyComponentNew1: React.FC<MyComponentProps> = ({ name }) => {
const translator = useTranslator();

return <p>{translator(messages.welcome, { name })}</p>;
};

Dies ist die Version des Kontext-Consumer:

import React from 'react';
import { TranslatorContext } from '@jutro/locale';
import type { Translator } from '@jutro/locale';
import { messages } from './MyComponent.messages';

type MyComponentProps = {
name: string;
};

class MyComponentNew2 extends React.Component<MyComponentProps> {
render() {
const { name } = this.props;

return (
<TranslatorContext.Consumer>
{(translator) => <p>{translator(messages.welcome, { name })}</p>}
</TranslatorContext.Consumer>
);
}
}

Dies ist die Wrapper-Version:

import React from 'react';
import { useTranslator, TranslatorContext } from '@jutro/locale';
import type { Translator } from '@jutro/locale';
import { messages } from './MyComponent.messages';

const TranslatorBridge: React.FC<{
children: (translator: Translator) => React.ReactElement,
}> = ({ children }) => {
const translator = useTranslator();

return children(translator);
};

class MyComponentNew3 extends React.Component<MyComponentProps> {
render() {
const { name } = this.props;

return (
<TranslatorBridge>
{(translator) => <p>{translator(messages.welcome, { name })}</p>}
</TranslatorBridge>
);
}
}

Abkündigungen im Jutro-Validierungspaket​

Die folgenden Komponenten und Hilfsprogramme im @jutro/validation-Paket wurden abgekündigt. Um die Abwärtskompatibilität zu gewährleisten, wurden diese Komponenten und Hilfsprogramme in das @jutro/legacy/validation-Paket verschoben. Sie können Ihre Importe unter Verwendung von Codemods so anpassen, dass sie auf den Speicherort des neuen Pakets verweisen.

  • useValidation
  • useGetLabelMap
  • getListOfPaths
  • getValidationMessageStyle
  • ValidationContext
  • RuleCallbackType
  • RulesType
  • UseValidationInterface
  • RegisterValidationType
  • NotifyParentFormType
  • UseValidationReturnInterface
  • FormContextType
  • FormMessagesType
  • FormMessageShapeType
  • OnValidationChangeType

Abkündigungen im Jutro-Transportpaket​

Die folgenden APIs im @jutro/transport-Paket wurden abgekündigt. Um die Abwärtskompatibilität zu gewährleisten, wurden diese APIs in das @jutro/legacy/transport-Paket verschoben. Sie können Ihre Importe unter Verwendung von Codemods so anpassen, dass sie auf den Speicherort des neuen Pakets verweisen.

  • HttpTransport
  • HttpRequest
  • basicAuthOptions
  • langLocaleOptions
  • authTokenHandler
  • zipkinTraceHandler
  • fastOptionsMerge

Beispiele für die Migration​

authTokenHandler​

authTokenHandler wurde abgekündigt, da darüber unter Verwendung der abgekündigten Funktion getAccessToken auf Authentifizierungstoken außerhalb des React-Kontexts zugegriffen wurde. Als Alternative wird die Implementierung von benutzerdefinierten Handlern mit dem useAuth-Hook für den Zugriff auf Token im React-Kontext empfohlen.

Vorher:

import { useEffect } from 'react';
import { createHttpRequest, authTokenHandler } from '@jutro/transport';

const baseUrl = 'https://my-api.guidewire.net/';

// Utility created outside React context using deprecated authTokenHandler
const getRequest = (url) => {
return createHttpRequest(baseUrl, false)
.addHandler(authTokenHandler) // Automatically accesses token using deprecated getAccessToken()
.build()
.get(url);
};

// Using the utility in component
const MyComponent = () => {
useEffect(() => {
getRequest('/accounts');
}, []); // Cannot properly depend on tokens since getAccessToken() is outside React context

return <div>Fetching accounts...</div>;
};

Nachher:

import { useEffect } from 'react';
import { useAuth } from '@jutro/auth';
import { HttpRequestBuilder, REQUEST_HANDLER_TYPE } from '@jutro/transport';
// ...
const baseUrl = 'http://my-api.guidewire.net/';
const getAuthHandler = (accessToken) => ({
[REQUEST_HANDLER_TYPE.AUTH]: () => ({
headers: {
Authorization: `Bearer ${accessToken}`,
// ...
},
}),
});
const MyComponent = () => {
const { accessToken } = useAuth();
useEffect(() => {
const builder = new HttpRequestBuilder(baseUrl);
builder.addHandler(getAuthHandler(accessToken));
const request = builder.build();
request.get('/accounts');
// ...
}, [accessToken]);
// ...
};

Abkündigungen im Jutro-Theme-Paket​

Die folgenden Komponenten und Hilfsprogramme im @jutro/theme-Paket wurden abgekündigt. Um die Abwärtskompatibilität zu gewährleisten, wurden diese Komponenten und Hilfsprogramme in das @jutro/legacy/theme-Paket verschoben. Sie können Ihre Importe unter Verwendung von Codemods so anpassen, dass sie auf den Speicherort des neuen Pakets verweisen.

  • defaultTheme
  • THEMEPROVIDER_DEFAULT

Abkündigungen im Jutro-Logger-Paket​

Die Logger-Klasse im @jutro/logger-Paket wurde abgekündigt. Als Alternative wird empfohlen, stattdessen die exportierte log-Instanz mit den zugehörigen Methoden (log.trace, log.warning, log.info, log.debug, log.error) zu verwenden.

Beispiel für die Migration​

Vorher:

import { Logger } from '@jutro/logger';

const logger = new Logger();
logger.info('message');

Nachher:

import { log } from '@jutro/logger';

log.info('message');

Abkündigungen im Jutro-Grundrisspaket​

Die folgenden Typen und Hilfsprogramme wurden im @jutro/floorplan-Paket abgekündigt. Stattdessen werden folgende Alternativen empfohlen:

  • AppFloorPlanContext: Verwenden Sie stattdessen <AppFloorPlanContextProvider>. Sie müssen nicht direkt auf diesen Kontext zugreifen.
  • FloorPlans: Verwenden Sie stattdessen Array<FloorPlan | FloorPlanOverride>.
  • RenderHeader: Definieren Sie den Typ selbst mit: type RenderHeader = (props: RenderHeaderProps) => ReactNode;

Beispiele für die Migration​

AppFloorPlanContext​

Anstatt direkt auf AppFloorPlanContext zuzugreifen, verwenden Sie <AppFloorPlanContextProvider>, um die Standardwerte der AppFloorPlan-Eigenschaften zu verwalten.

Vorher:

import { useContext } from 'react';
import { AppFloorPlanContext } from '@jutro/floorplan';

const MyComponent = () => {
const appFloorPlanContext = useContext(AppFloorPlanContext);
// ...
};

Nachher:

import { AppFloorPlanContextProvider } from '@jutro/floorplan';

const MyApp = () => (
<AppFloorPlanContextProvider {...defaultFloorPlanProps}>
<MyComponent />
</AppFloorPlanContextProvider>
);
FloorPlans​
  • Vorher: type MyFloorPlans = FloorPlans;
  • Nachher: type MyFloorPlans = Array<FloorPlan | FloorPlanOverride>;
RenderHeader​
  • Vorher: type MyRenderHeader = RenderHeader;
  • Nachher: type MyRenderHeader = (props: RenderHeaderProps) => ReactNode;

Abkündigungen in @jutro/events​

Die folgenden Klassen, Funktionen und Objekte wurden im @jutro/events-Paket abgekündigt. Stattdessen werden folgende Alternativen empfohlen:

  • EventProvider: Verwenden Sie stattdessen publish, subscribe, unsubscribe oder unsubscribeAll.
  • loadGtag: Verwenden Sie stattdessen initDefaultGA.
  • loadDataDog: Verwenden Sie stattdessen initDefaultDataDog.
  • DefaultDictionaryProvider: Verwenden Sie stattdessen Ihre eigene Implementierung.
  • DefaultWhitelistProvider: Verwenden Sie stattdessen Ihre eigene Implementierung.

Beispiele für die Migration​

EventProvider​

Vorher:

const eventProvider = new EventProvider();
eventProvider.publish(topic, data);

Nachher:

import { publish } from '@jutro/events';

publish(topic, data);
loadGtag​

Vorher:

import { loadGtag } from '@jutro/events';

loadGtag('GA_MEASUREMENT_ID');

Nachher:

import { initDefaultGA } from '@jutro/events';

initDefaultGA('GA_MEASUREMENT_ID');
loadDataDog​

Vorher:

import { loadDataDog } from '@jutro/events';

loadDataDog(token, service, env, version);

Nachher:

import { initDefaultDataDog } from '@jutro/events';

initDefaultDataDog(token, service, env, version);

Abkündigungen im @jutro/auth-Paket​

Die folgenden Funktionen im @jutro/auth-Paket wurden abgekündigt.

  • getTokenByKey(key): Gibt einen Tokenwert für einen bestimmten Schlüssel zurück.
  • getAccessToken(): Gibt das aktuelle Zugriffstoken zurück.
  • getIdToken(): Gibt das aktuelle benutzerspezifische ID-Token zurück.

Als Alternative wird der useAuth-Hook für den Zugriff auf Token in React-Komponenten empfohlen. Weitere Informationen zum useAuth-Hook und seiner Verwendung finden Sie in der Dokumentation zur Authentifizierung.

Die abgekündigten Funktionen ermöglichten den Tokenzugriff außerhalb von React-Komponenten. Dieses Muster wird jedoch nicht empfohlen und kann zu Problemen bei der Aktualisierung von Token und der Verwaltung des Authentifizierungsstatus führen.

Beispiel für die Migration​

Vorher:

import { getAccessToken, getIdToken, getTokenByKey } from '@jutro/auth';

// Accessing tokens outside React context
const setupAuthHeaders = () => {
const accessToken = getAccessToken();
const idToken = getIdToken();
const customToken = getTokenByKey('customTokenKey');

return {
Authorization: `Bearer ${accessToken}`,
'X-ID-Token': idToken,
'X-Custom-Token': customToken,
};
};

// Accessing tokens in a utility function
export const configureHttpClient = (client) => {
const accessToken = getAccessToken();
if (accessToken) {
client.setHeader('Authorization', `Bearer ${accessToken}`);
}
};

Nachher:

import { useAuth } from '@jutro/auth';

const MyComponent = () => {
const { accessToken, idToken, isAuthenticated } = useAuth();

const handleFetchAccounts = async () => {
if (!isAuthenticated || !accessToken) return;

const response = await fetch('https://my-api.guidewire.net/accounts', {
headers: {
Authorization: `Bearer ${accessToken}`,
'X-ID-Token': idToken,
},
});

const data = await response.json();
// Use data...
};

if (!isAuthenticated) {
return <div>Not authenticated</div>;
}

return <button onClick={handleFetchAccounts}>Fetch Accounts</button>;
};

Olos​

Dieses Release umfasst keine Abkündigungen.

Niseko​

Dieses Release umfasst keine Abkündigungen.

Mammoth​

Abgekündigte MicroFrontend-Komponenteneigenschaften​

Die folgenden MicroFrontend-Komponenteneigenschaften wurden abgekündigt und ersetzt:

Abgekündigte EigenschaftNeue Eigenschaft
mode=iframemode=isolated
mode=moduleFederationmode=shared

Abgekündigtes @jutro/cli-npm-preinstall-Paket​

Das benutzerdefinierte Paket @jutro/cli-npm-preinstall wurde abgekündigt. Dieses Paket wurde verwendet, um eine bestimmte Version der transitiven Abhängigkeit zu erzwingen, um Sicherheitsprobleme zu lösen.

Hierfür gibt es jetzt eine native Lösung in npm, die stattdessen verwendet werden muss.

Migration zu npm-Überschreibungen​

Wenn Ihre App aktuell Lösungen verwendet, müssen Sie die folgenden Schritte ausführen:

  1. Entfernen Sie die preinstall.js-Datei aus dem Stammverzeichnis des Projekts.
  2. Entfernen Sie das preinstall-Skript aus package.json.
  3. Benennen Sie resolutions in package.json in overrides um.

Las Leñas​

Icon-Komponente​

Die Komponente @jutro/components/Icon wurde abgekündigt.

Als Alternative wurde das neue Paket @jutro/icons eingeführt. Dieses Paket enthält Komponenten für alle Guidewire-Symbole. In der Liste der Symbole finden Sie die gesamte Palette der Optionen.

string-Werte für symbolbezogene Eigenschaften​

Die Übergabe eines string-Werts an Eigenschaften, die Symbole für die Verwendung mit Komponenten definieren, wurde abgekündigt. Diese Eigenschaften sollten nun die neuen Symbolkomponenten aus @jutro/icons übernehmen. Dies hat Auswirkungen auf folgende Komponenten:

Abgekündigte Eigenschaften​

Die folgenden Komponenten haben einige abgekündigte Eigenschaften:

KomponenteAbgekündigte Eigenschaften
Flexphone
phoneWide
tablet
FlexItemphone
phoneWide
tablet
visible
textAlign
Gridphone
phoneWide
tablet
repeat
GridItemphone
phoneWide
tablet
clone
fullWidth
visible
textAlign
vAlign
align

Die folgenden Komponenteneigenschaften verfügen über einige abgekündigte Optionen:

KomponenteEigenschaftAbgekündigte Optionen
FlexalignItems'top', 'middle', 'bottom', 'right', 'left'
FlexalignContent'top', 'middle', 'bottom', 'right', 'left'
FlexjustifyContent'top', 'middle', 'bottom', 'right', 'left'
FlexItemalignSelf'top', 'middle', 'bottom', 'right', 'left'

Kufri​

Abgekündigte Komponenten​

Abgekündigte KomponenteNeue Komponente
ToggleFieldToggleButtonGroup und ToggleButton
SwitchFieldSwitch
SliderSlider
DateTimeFieldDatePicker und TimePicker
DateFieldDatePicker
MonthYearFieldMonthPicker
YearFieldYearPicker
DateRangeFieldDateRangePicker
DateTimeZoneFieldDatePicker, TimePicker und TimezonePicker
SimpleDateFieldDateInput
SimpleMonthYearFieldDateInput
Import der abgekündigten KomponenteImport der neuen Komponente
import {ToggleField} from '@jutro/components'import {ToggleButtonGroup} from '@jutro/components/new'

import {ToggleButton} from '@jutro/components/new'
import {SwitchField} from '@jutro/components'import {Switch} from '@jutro/components/new'
import {Slider} from '@jutro/components'import {Slider} from '@jutro/components/new'
import {DateTimeField} from '@jutro/components'import {DatePicker} from '@jutro/components/new'

import {TimePicker} from '@jutro/components/new'
import {DateField} from '@jutro/components'import {DatePicker} from '@jutro/components/new'
import {MonthYearField} from '@jutro/components'import {MonthPicker} from '@jutro/components/new'
import {YearField} from '@jutro/components'import {YearPicker} from '@jutro/components/new'
import {DateRangeField} from '@jutro/components'import {DateRangePicker} from '@jutro/components/new'
import {DateTimeZoneField} from '@jutro/components'import {DatePicker} from '@jutro/components/new'

import {TimePicker} from '@jutro/components/new'

import {TimezonePicker} from '@jutro/components/new'
import {SimpleDateField} from '@jutro/components'import {DateInput} from '@jutro/components/new'
import {SimpleMonthYearField} from '@jutro/components'import {DateInput} from '@jutro/components/new'

Abgekündigte Eigenschaften​

Die folgenden Komponenten haben einige abgekündigte Eigenschaften:

KomponenteAbgekündigte Eigenschaften
Tooltipid
animation
TooltipIconid
labelPosition
showInlineLabel
fieldLabelId
titleClass
textClass
linkClass
SimpleProgressBarid
path
value
progressBarClassName
stepClassName

Abkündigung von Node-Version 18​

Die Wartung von Node 18 endet im April 2025 und wird nach diesem Datum nicht mehr unterstützt. Die Verwendung von Node 18 in Jutro wird abgekündigt und es wird empfohlen, auf Node 22.6.0 oder höher zu aktualisieren.

Note: Webpack 4 unterstützt Node 22 nicht, die Verwendung von Node 22 erfordert ein Update auf Webpack 5.

Theme-Elemente​

Bestimmte Theme-Elemente wurden abgekündigt und durch den useTheme-Kontext und den Theme-Hook ersetzt. Die folgenden Theme-Elemente wurden abgekündigt:

  • ThemeProvider
  • withTheme
  • ThemeConfigProvider
  • renderWithTheme

Jutro-Gebietsschema​

Die datumsbezogenen Helfer in jutro-locale wurden abgekündigt.

Jasper​

Abgekündigte Komponenten​

Abgekündigte KomponenteNeue Komponente
InputMaskFieldMaskInput
StepperFieldStepper
Import der abgekündigten KomponenteImport der neuen Komponente
import { InputMaskField } from '@jutro/components'import { MaskInput } from '@jutro/components/new'
import { StepperField } from '@jutro/components'import { Stepper } from '@jutro/components/new'

Abkündigung von Node-Version 18​

Die Wartung von Node 18 endet im April 2025 und wird nach diesem Datum nicht mehr unterstützt. Die Verwendung von Node 18 in Jutro wird abgekündigt und es wird empfohlen, auf Node 22.6.0 oder höher zu aktualisieren.

Note: Webpack 4 unterstützt Node 22 nicht, die Verwendung von Node 22 erfordert ein Update auf Webpack 5.

Abgekündigte Eigenschaften​

Die folgenden Komponenten enthalten Eigenschaften, die nun abgekündigt sind:

  • Badge
    • id
    • type enthält abgekündigte Varianten:
      • success
      • error
      • warning
      • info
  • Icon
    • color
    • _rest
  • InlineNotification
    • id
  • InfoLabel
    • id
    • message
  • Link
    • activeClassName
    • exact
    • id
    • textClassName
  • Tag
    • ariaLabel
    • id
  • TagCollection
    • id

Innsbruck​

Warning: Alle in diesem Release abgekündigten Komponenten, Pakete und Funktionen wurden ebenfalls in das @jutro/legacy-Paket verschoben. Die Liste der in diesem Release eingeführten Änderungen finden Sie in den zugehörigen Versionshinweisen.

Abkündigung von Komponenten​

Die folgenden Komponenten und Funktionen wurden von @jutro/components in @jutro/legacy/components verschoben und abgekündigt:

  • Accordion
  • BreakpointTracker
  • Collapse
  • Container
  • CurrencyField
  • CheckboxField
  • DropdownSelectField
  • FileUploadField (und die Hooks useFileUpload und useMultipleFileUpload)
  • Footer, FooterCopyright, FooterNavBar, FooterNavLink, FooterText, FooterContext und StickyFooter
  • HeaderActions
  • HelpElement, HelpHeading, HelpLink, HelpParagraph und HelpPopover
  • IntlPhoneNumberField
  • LogoTitle
  • PhoneNumberField
  • TextAreaField
  • TextField
  • TypeaheadMultiSelectField

Die folgenden Komponenten wurden von @jutro/router in @jutro/legacy/router verschoben und abgekündigt:

  • ApplicationHeader
  • RouteTracker
  • SubApplicationHeader

Die folgenden Komponenten wurden von @jutro/wizard-next in @jutro/legacy/wizard-next verschoben und abgekündigt:

  • ScrollToError

Abkündigung des Datatable-Pakets​

Das @jutro/datatable-Paket wurde in @jutro/legacy/datatable verschoben und der gesamte Inhalt abgekündigt:

  • ActionColumn
  • FieldColumn
  • FilterBar
  • RadioColumn
  • DisplayColumn
  • ActionItem
  • DataTable
  • Table
  • TableColumn
  • useDataFilter
  • SHOW_ALL_PAGES
  • createTextFilter
  • createStrictTextFilter
  • defaultColumnFilter

Abkündigung von Dataview​

Das @jutro/dataview-Paket wurde in @jutro/legacy/dataview verschoben und der gesamte Inhalt abgekündigt:

  • ListView
  • TableView
  • AdaptiveDataView
  • BooleanColumn
  • CurrencyColumn
  • DateTimeColumn
  • GenericColumn
  • NumberColumn
  • PhoneColumn
  • TextColumn
  • CategoryColumn
  • Action
  • ActionsColumn
  • DataViewColumnsConfig
  • useColumnsConfig
  • DataViewEditing
  • EditAction
  • DataViewExpandable
  • useExpansion
  • DataViewFiltering
  • DataViewHeaderActions
  • HeaderAction
  • DataViewOverlay
  • DataViewPagination
  • Pagination
  • LoadMore
  • DataViewSearch
  • DataViewSelection
  • useSelection
  • DataViewSorting
  • DataViewTitle
  • useSyncData
  • useAsyncData
  • createHttpClient
  • DataViewColumns
  • TableColumnAdapter
  • DisplayColumnAdapter
  • FieldColumnAdapter
  • ActionColumnAdapter
  • ActionItemAdapter
  • RadioColumnAdapter
  • TableAdapter

Weitere Legacy-Pakete​

Die Inhalte der folgenden Pakete (nun in jutro/legacy verschoben) wurden abgekündigt:

Import des ursprünglichen PaketsNeuer Import aus Legacy-Paket
@jutro/address@jutro/legacy/address
@jutro/contract@jutro/legacy/contract
@jutro/lab-preview-dataview@jutro/legacy/lab-preview-dataview
@jutro/quick-view@jutro/legacy/quick-view
@jutro/services@jutro/legacy/services
@jutro/uiconfig@jutro/legacy/uiconfig
@jutro/uimetadata@jutro/legacy/uimetadata

Abkündigung von Node-Version 18​

Die Wartung von Node 18 endet im April 2025 und wird nach diesem Datum nicht mehr unterstützt. Die Verwendung von Node 18 in Jutro wird abgekündigt und es wird empfohlen, auf Node 22.6.0 oder höher zu aktualisieren.

Note: Webpack 4 unterstützt Node 22 nicht, die Verwendung von Node 22 erfordert ein Update auf Webpack 5.

_TEST_-Variable​

Die Variable _TEST_ wurde abgekündigt. Wenn Sie die Variable in Ihrem Code beibehalten möchten, müssen Sie möglicherweise die Überschreibungen für Anwendungen und Tests manuell aktualisieren.

Okta-Authentifizierungs-Client​

Der Okta-Authentifizierungs-Client wurde zugunsten eines generischen OIDC-Clients abgekündigt. Weitere Informationen finden Sie unter Authentifizierungs-Client.

LocaleService​

LocaleService und die damit verbundenen Funktionen und Hilfsprogramme wurden abgekündigt. Sie werden durch den neuen Globalisierungsspeicher (g11n) ersetzt. Sie können LocaleService vorerst weiterhin verwenden, er wird jedoch in einer künftigen Hauptversion entfernt.

Wenn Sie benutzerdefinierte Funktionen verwenden, die von LocaleService abhängen, können Sie sie weiter verwenden oder den neuen Speicher aktivieren und eine Migration durchführen.

Um zur neuen Implementierung von Jutro ohne LocaleService zu wechseln, legen Sie die Option useG11nStore auf true fest (sie ist automatisch auf „true“ festgelegt, wenn g11nStore angegeben ist).

Die Option useG11nStore wird in der nächsten Hauptversion von @jutro entfernt.

src/startApp.js
start(Jutro, {
rootId: 'root',
// ...
useG11nStore: true,
});
Note: In vorherigen Jutro-Implementierungen wurde LocaleService intern verwendet. Dies kann dazu führen, dass Warnungen zu Abkündigungen angezeigt werden, auch wenn Sie LocaleService nicht explizit in Ihrem Code verwenden. Wenn Sie useG11nStore: true festlegen, werden keine Warnungen in Bezug auf LocaleService angezeigt.

Weitere Informationen zur Verwendung des neuen Speichers finden Sie auf der Seite zur Internationalisierung.

Aufgrund dieser Abkündigung müssen Sie den Code möglicherweise wie folgt aktualisieren:

  • LocaleService: keine Alternative

  • getDefaultCountryCode: Verwenden Sie stattdessen getDefaultCountry.

  • LANGUAGE_URL_PARAM, LOCALE_SERVICE_ID, LOCALE_URL_PARAM: keine Alternative

  • LocaleServiceGlobalizationSettings: keine Alternative

  • LocaleSettingsInterface: Alternativ kann die Schnittstelle über Contract angegeben werden.

    import { Contract, types } from '@jutro/contract';

    Contract.specify({
    getAvailableLanguages: types.func,
    getAvailableLocales: types.func,
    getDefaultCountryCode: types.func,
    getDefaultTimeZone: types.func,
    getPreferredLanguage: types.func,
    getPreferredLocale: types.func,
    });
  • Gebietsschemaänderungen und Globalisierungseinstellungen:

    • refreshOnLanguageOrLocaleChange: Implementieren Sie einen eigenen Speicher-Listener, wenn Sie bei Gebietsschema- und Sprachänderungen eine Aktualisierung durchführen möchten.
    • saveDefaultLanguageAndLocaleToLocalStorage: Verwenden Sie createG11nLocalStorageStore.
    • globalizationSettings: Konfigurieren Sie g11n-Einstellungen über die localeSettings-Konfiguration und geben Sie einen benutzerdefinierten g11nStore an, wenn g11n-Änderungen überwacht werden sollen.

langLocaleOptions für createHttpRequest​

createHttpRequest verteilt keine Kopfzeilen mehr mit gw-locale und gw-service, oder wenn der Benutzer explizit zu neuen Globalisierungsspeichern (g11n) wechselt.

Drittes Argument der start-Funktion​

Das dritte Argument (scriptAttributes) für die Micro Frontend-Funktion start wurde abgekündigt. Übergeben Sie stattdessen ein Objekt als mfeData-Eigenschaft im zweiten Argument der startApp-Funktion.

Beispiel für Migration:

Vorher
src/startApp.js
import { start } from '@jutro/micro-frontends';
import messages from './app/App.messages';

export const startApp = (scriptAttributes) => {
start(
Jutro,
{
appName: messages.appName,
appDescription: messages.appDescription,
},
scriptAttributes
);
};
Nachher
src/startApp.js
import { start } from '@jutro/micro-frontends';
import messages from './app/App.messages';

export const startApp = (mfeData) => {
start(Jutro, {
appName: messages.appName,
appDescription: messages.appDescription,
mfeData: mfeData,
});
};

Legacy-API​

Die Legacy-API in der Komponente Microfrontend wurde abgekündigt. Verwenden Sie stattdessen die neue API für Router-Bindungen.

Webpack-Bestandteile​

Bestimmte Webpack-spezifische Bestandteile (developmentBuild und productionBuild) wurden aus der Komponente build-tools entfernt und abgekündigt.

Hakuba​

Universal Analytics​

Google hat erklärt, dass Universal Analytics am 1. Juli 2023 die Verarbeitung von Daten einstellen wird.

Aus diesem Grund haben wir die unten aufgeführten Elemente abgekündigt:

  • Umgebungsvariablen REACT_APP_GA_TRACKING_ID und REACT_APP_GA_ADDITIONAL_TRACKING_ID
  • loadGA()-Funktion im @jutro/events-Paket

Sie sollten Ihre GA4-Tracking-ID in die neue Umgebungsvariable REACT_APP_GA4_TRACKING_ID migrieren.

Falls Sie Google Analytics mit Ihrer benutzerdefinierten Verwendung der loadGA()-Funktion laden, sollten Sie diese in die loadGtag()-Funktion aus dem @jutro/events-Paket migrieren.

Microfrontend SDK-API​

Die ältere Microfrontend SDK-API wurde abgekündigt. Verwenden Sie stattdessen die neue Micro Frontend-API.

PromptService​

Die Komponente PromptService wurde abgekündigt.

Jutro CLI und Toolset CLI​

Jutro CLI sowie Toolset CLI werden durch die neue Platform CLI ersetzt. Weitere Informationen finden Sie im Migrationsleitfaden.

Unterstützung für Node.js 16 eingestellt​

Empfohlen wird die Migration zu Node.js 18.

Abgekündigte Komponenten​

Die folgenden Komponenten wurden abgekündigt.

  • TabbedContainer
  • PanelLayout
  • StickyFooter
  • PageLayout
  • ColorSwatch
  • PageLoader
  • Header
  • HeaderActions
  • HelpPopover, HelpHeading, HelpElement, HelpLink, HelpParagraph
  • IconButton
  • Layout
  • Chevron
  • LogoTitle
  • Footer mit zugehörigen Unterkomponenten (FooterCopyright, FooterText, FooterNavBar, FooterNavLink)

ID für QuickView​

QuickView enthält keine id-Eigenschaft mehr.

MapArea​

Die Komponente MapArea wurde abgekündigt.

Table​

Die Komponente Table wurde abgekündigt. Verwenden Sie stattdessen Adaptive data view.

Radio button, Radio button image, Radio button cards​

Die Komponenten Radio button, Radio button image und Radio button cards wurden abgekündigt. Verwenden Sie stattdessen Radio next.

MetadataForm-Eigenschaften​

Die in der Komponente MetadataForm verwendeten Eigenschaften formRules, formPath, formInvalidMessage und formWarningMessage wurden abgekündigt.

Theme-Eigenschaft​

Die theme-Eigenschaft, die in einer Reihe von Komponenten enthalten ist, wurde abgekündigt.

zipkinTraceHandler​

Die @jutro/transport-Version von zipkinTraceHandler wurde abgekündigt. Verwenden Sie stattdessen eine eigene Implementierung des zipkin-Handlers.

Implementierung von Mixpanel- und GA-Analysen​

Die Implementierung von Mixpanel- und GA-Analysen aus dem @jutro/events-Paket wurde abgekündigt. Verwenden Sie stattdessen die neue @jutro/analytics-API.

Garmisch​

Dieses Release umfasst keine Abkündigungen.