Liste der Abkündigungen
Palisades
Abgekündigte Pakete
Die Inhalte der folgenden Pakete wurden abgekündigt:
| Import des ursprünglichen Pakets | Neuer 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.
ChevronCustomFieldWrapperDropdownMenuButton
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.
LanguageContextLocaleContextCountryContextCurrencyContextIntlContextTranslatorContextwithIntlwithTranslatorLanguageKeyG11nDataGlobalizationChangeGlobalizationSettingsLocaleConfigformatPhoneNumberAndCountryCodegetPrefixForCountrygetSamplePhoneNumberisValidatePhoneNumbergetBrowserLanguagegetCountryCodeFromLocalegetFormattedMonthsForLocalegetLanguageFromLocalenormalizeToUnderscoreLocalegetDefaultTimeZonegetUrlTranslatorAndSanitizerformatDateToDataTypeformatDateToLocalePatternparseDateFromDataTypetrimToInputFormatinputFormatToValuePartsgetDateInputFormatsgetDatePatternFromLocaleisTodayOutOfRangeisDateInRangevalidateDateUserInput
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 Kontext | Alternativer Hook |
|---|---|
IntlContext | useIntl |
LanguageContext | useLanguage |
LocaleContext | useLocale |
TranslatorContext | useTranslator |
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 (
useIntloderuseTranslator). - 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.
useValidationuseGetLabelMapgetListOfPathsgetValidationMessageStyleValidationContextRuleCallbackTypeRulesTypeUseValidationInterfaceRegisterValidationTypeNotifyParentFormTypeUseValidationReturnInterfaceFormContextTypeFormMessagesTypeFormMessageShapeTypeOnValidationChangeType
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.
HttpTransportHttpRequestbasicAuthOptionslangLocaleOptionsauthTokenHandlerzipkinTraceHandlerfastOptionsMerge
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.
defaultThemeTHEMEPROVIDER_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 stattdessenArray<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 stattdessenpublish,subscribe,unsubscribeoderunsubscribeAll.loadGtag: Verwenden Sie stattdesseninitDefaultGA.loadDataDog: Verwenden Sie stattdesseninitDefaultDataDog.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 Eigenschaft | Neue Eigenschaft |
|---|---|
mode=iframe | mode=isolated |
mode=moduleFederation | mode=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:
- Entfernen Sie die
preinstall.js-Datei aus dem Stammverzeichnis des Projekts. - Entfernen Sie das
preinstall-Skript auspackage.json. - Benennen Sie
resolutionsinpackage.jsoninoverridesum.
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:
| Komponente | Abgekündigte Eigenschaften |
|---|---|
Flex | phonephoneWide tablet |
FlexItem | phonephoneWide tablet visible textAlign |
Grid | phonephoneWide tablet repeat |
GridItem | phonephoneWide tablet clone fullWidth visible textAlign vAlign align |
Die folgenden Komponenteneigenschaften verfügen über einige abgekündigte Optionen:
| Komponente | Eigenschaft | Abgekündigte Optionen |
|---|---|---|
Flex | alignItems | 'top', 'middle', 'bottom', 'right', 'left' |
Flex | alignContent | 'top', 'middle', 'bottom', 'right', 'left' |
Flex | justifyContent | 'top', 'middle', 'bottom', 'right', 'left' |
FlexItem | alignSelf | 'top', 'middle', 'bottom', 'right', 'left' |
Kufri
Abgekündigte Komponenten
| Abgekündigte Komponente | Neue Komponente |
|---|---|
ToggleField | ToggleButtonGroup und ToggleButton |
SwitchField | Switch |
Slider | Slider |
DateTimeField | DatePicker und TimePicker |
DateField | DatePicker |
MonthYearField | MonthPicker |
YearField | YearPicker |
DateRangeField | DateRangePicker |
DateTimeZoneField | DatePicker, TimePicker und TimezonePicker |
SimpleDateField | DateInput |
SimpleMonthYearField | DateInput |
| Import der abgekündigten Komponente | Import 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:
| Komponente | Abgekündigte Eigenschaften |
|---|---|
Tooltip | idanimation |
TooltipIcon | idlabelPositionshowInlineLabelfieldLabelIdtitleClasstextClasslinkClass |
SimpleProgressBar | idpathvalueprogressBarClassNamestepClassName |
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.
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:
ThemeProviderwithThemeThemeConfigProviderrenderWithTheme
Jutro-Gebietsschema
Die datumsbezogenen Helfer in jutro-locale wurden abgekündigt.
Jasper
Abgekündigte Komponenten
| Abgekündigte Komponente | Neue Komponente |
|---|---|
| InputMaskField | MaskInput |
| StepperField | Stepper |
| Import der abgekündigten Komponente | Import 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.
Abgekündigte Eigenschaften
Die folgenden Komponenten enthalten Eigenschaften, die nun abgekündigt sind:
- Badge
idtypeenthält abgekündigte Varianten:successerrorwarninginfo
- Icon
color_rest
- InlineNotification
id
- InfoLabel
idmessage
- Link
activeClassNameexactidtextClassName
- Tag
ariaLabelid
- TagCollection
id
Innsbruck
@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:
AccordionBreakpointTrackerCollapseContainerCurrencyFieldCheckboxFieldDropdownSelectFieldFileUploadField(und die HooksuseFileUploadunduseMultipleFileUpload)Footer,FooterCopyright,FooterNavBar,FooterNavLink,FooterText,FooterContextundStickyFooterHeaderActionsHelpElement,HelpHeading,HelpLink,HelpParagraphundHelpPopoverIntlPhoneNumberFieldLogoTitlePhoneNumberFieldTextAreaFieldTextFieldTypeaheadMultiSelectField
Die folgenden Komponenten wurden von @jutro/router in @jutro/legacy/router verschoben und abgekündigt:
ApplicationHeaderRouteTrackerSubApplicationHeader
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:
ActionColumnFieldColumnFilterBarRadioColumnDisplayColumnActionItemDataTableTableTableColumnuseDataFilterSHOW_ALL_PAGEScreateTextFiltercreateStrictTextFilterdefaultColumnFilter
Abkündigung von Dataview
Das @jutro/dataview-Paket wurde in @jutro/legacy/dataview verschoben und der gesamte Inhalt abgekündigt:
ListViewTableViewAdaptiveDataViewBooleanColumnCurrencyColumnDateTimeColumnGenericColumnNumberColumnPhoneColumnTextColumnCategoryColumnActionActionsColumnDataViewColumnsConfiguseColumnsConfigDataViewEditingEditActionDataViewExpandableuseExpansionDataViewFilteringDataViewHeaderActionsHeaderActionDataViewOverlayDataViewPaginationPaginationLoadMoreDataViewSearchDataViewSelectionuseSelectionDataViewSortingDataViewTitleuseSyncDatauseAsyncDatacreateHttpClientDataViewColumnsTableColumnAdapterDisplayColumnAdapterFieldColumnAdapterActionColumnAdapterActionItemAdapterRadioColumnAdapterTableAdapter
Weitere Legacy-Pakete
Die Inhalte der folgenden Pakete (nun in jutro/legacy verschoben) wurden abgekündigt:
| Import des ursprünglichen Pakets | Neuer 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.
_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.
start(Jutro, {
rootId: 'root',
// ...
useG11nStore: true,
});
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 stattdessengetDefaultCountry. -
LANGUAGE_URL_PARAM,LOCALE_SERVICE_ID,LOCALE_URL_PARAM: keine Alternative -
LocaleServiceGlobalizationSettings: keine Alternative -
LocaleSettingsInterface: Alternativ kann die Schnittstelle überContractangegeben 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 SiecreateG11nLocalStorageStore.globalizationSettings: Konfigurieren Sie g11n-Einstellungen über dielocaleSettings-Konfiguration und geben Sie einen benutzerdefinierteng11nStorean, 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:
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
);
};
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_IDundREACT_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.