@topconsultnpm/sdkui-react 6.20.0-dev1.62 → 6.20.0-dev1.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -20,6 +20,41 @@ const TMContextMenu = ({ items, trigger = 'right', children, target, externalCon
|
|
|
20
20
|
const longPressTimeoutRef = useRef(null);
|
|
21
21
|
const touchStartPos = useRef(null);
|
|
22
22
|
const { openLeft, openUp, isCalculated } = useMenuPosition(menuRef, menuState.position);
|
|
23
|
+
// Adjust menu position on mobile to prevent overflow
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (!isMobile || !menuState.visible || !menuRef.current)
|
|
26
|
+
return;
|
|
27
|
+
const adjustPosition = () => {
|
|
28
|
+
const menuElement = menuRef.current;
|
|
29
|
+
if (!menuElement)
|
|
30
|
+
return;
|
|
31
|
+
const menuRect = menuElement.getBoundingClientRect();
|
|
32
|
+
const viewportHeight = window.innerHeight;
|
|
33
|
+
const currentY = menuState.position.y;
|
|
34
|
+
// Check if menu overflows bottom of viewport
|
|
35
|
+
const menuBottom = currentY + menuRect.height;
|
|
36
|
+
const overflowBottom = menuBottom - viewportHeight;
|
|
37
|
+
if (overflowBottom > 0) {
|
|
38
|
+
// Calculate new Y position to fit menu in viewport
|
|
39
|
+
let newY = currentY - overflowBottom - 10; // 10px padding from edge
|
|
40
|
+
// Ensure menu doesn't go above viewport top
|
|
41
|
+
if (newY < 10) {
|
|
42
|
+
newY = 10;
|
|
43
|
+
}
|
|
44
|
+
// Only update if position actually changed
|
|
45
|
+
if (newY !== currentY) {
|
|
46
|
+
setMenuState(prev => ({
|
|
47
|
+
...prev,
|
|
48
|
+
position: { ...prev.position, y: newY }
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
// Wait for menu to render before adjusting
|
|
54
|
+
requestAnimationFrame(() => {
|
|
55
|
+
requestAnimationFrame(adjustPosition);
|
|
56
|
+
});
|
|
57
|
+
}, [isMobile, menuState.visible, menuState.position.y]);
|
|
23
58
|
const handleClose = () => {
|
|
24
59
|
if (externalControl) {
|
|
25
60
|
externalControl.onClose();
|
|
@@ -84,6 +84,7 @@ export declare class SDKUI_Localizator {
|
|
|
84
84
|
static get CancelCheckOut(): string;
|
|
85
85
|
static get CassettoDoganaleExportMRN(): "MRN-Erholung für den Export" | "MRN recovery for export" | "Recuperación MRN para exportación" | "Récupération MRN pour l'export" | "Recuperação MRN para exportação" | "Recupero MRN per Export";
|
|
86
86
|
static get CassettoDoganaleExportVU(): "Wiederherstellung des Ausreisevisums" | "Exit Visa Recovery" | "Recuperación de Visa de Salida" | "Sortie Récupération Visa" | "Recuperação de Visto de Saída" | "Recupero Visto Uscire per Export";
|
|
87
|
+
static get CassettoDoganaleExportEUR1(): "EUR1-Erholung für den Export" | "EUR1 recovery for export" | "Recuperación EUR1 para exportación" | "Récupération EUR1 pour l'export" | "Recuperação EUR1 para exportação" | "Recupero EUR1 per Export";
|
|
87
88
|
static get CassettoDoganaleImportMRN(): "MRN-Erholung für den Import" | "MRN recovery for import" | "Recuperación MRN para importación" | "Récupération MRN à l'import" | "Recuperação MRN para importação" | "Recupero MRN per Import";
|
|
88
89
|
static get CassettoDoganalePlus_UserName(): "STD-Benutzer des ADM-Portals" | "STD User of the ADM Portal" | "Usuario STD del Portal ADM" | "Utilisateur STD du portail ADM" | "Utilizador DST do Portal ADM" | "Utente STD del Portale ADM";
|
|
89
90
|
static get Cancel(): "Abbrechen" | "Cancel" | "Anular" | "Annuler" | "Cancelar" | "Annulla";
|
|
@@ -246,6 +247,8 @@ export declare class SDKUI_Localizator {
|
|
|
246
247
|
static get ExpertMode(): "Expertenmodus" | "Expert mode" | "Modo experto" | "Mode expert" | "Modo especialista" | "Modalità esperto";
|
|
247
248
|
static get Expiring(): "Ablaufend" | "Expiring" | "Por vencer" | "Expirant" | "Vencendo" | "In scadenza";
|
|
248
249
|
static get Export(): "Exportieren" | "Export" | "Exportar" | "Exporter" | "Esporta";
|
|
250
|
+
static get ExportEUR1(): "Exportieren EUR1" | "Export EUR1" | "Exportar EUR1" | "Exporter EUR1" | "Export - EUR1";
|
|
251
|
+
static get ExportEUR1OutputFile(): "Dateipfad für den Export (EUR1)" | "File Path for Export (EUR1)" | "Ruta de archivo para exportación (EUR1)" | "Chemin du fichier à exporter (EUR1)" | "Caminho do arquivo para exportação (EUR1)" | "Percorso del File per Export (EUR1)";
|
|
249
252
|
static get ExportTo(): string;
|
|
250
253
|
static get ExportMRN(): "Exportieren MRN" | "Export MRN" | "Exportar MRN" | "Exporter MRN";
|
|
251
254
|
static get ExportMRNDayBack(): "Anzahl der Tage für die Exportdatenwiederherstellung (MRN)" | "Number of days for export data recovery (MRN)" | "Número de días para la recuperación de datos de exportación (MRN)" | "Nombre de jours pour la récupération des données d'exportation (MRN)" | "Número de dias para recuperação de dados de exportação (MRN)" | "Numero di giorni per il recupero dei dati di Export (MRN)";
|
|
@@ -795,6 +795,16 @@ export class SDKUI_Localizator {
|
|
|
795
795
|
default: return "Recupero Visto Uscire per Export";
|
|
796
796
|
}
|
|
797
797
|
}
|
|
798
|
+
static get CassettoDoganaleExportEUR1() {
|
|
799
|
+
switch (this._cultureID) {
|
|
800
|
+
case CultureIDs.De_DE: return "EUR1-Erholung für den Export";
|
|
801
|
+
case CultureIDs.En_US: return "EUR1 recovery for export";
|
|
802
|
+
case CultureIDs.Es_ES: return "Recuperación EUR1 para exportación";
|
|
803
|
+
case CultureIDs.Fr_FR: return "Récupération EUR1 pour l'export";
|
|
804
|
+
case CultureIDs.Pt_PT: return "Recuperação EUR1 para exportação";
|
|
805
|
+
default: return "Recupero EUR1 per Export";
|
|
806
|
+
}
|
|
807
|
+
}
|
|
798
808
|
static get CassettoDoganaleImportMRN() {
|
|
799
809
|
switch (this._cultureID) {
|
|
800
810
|
case CultureIDs.De_DE: return "MRN-Erholung für den Import";
|
|
@@ -2427,6 +2437,26 @@ export class SDKUI_Localizator {
|
|
|
2427
2437
|
default: return "Esporta";
|
|
2428
2438
|
}
|
|
2429
2439
|
}
|
|
2440
|
+
static get ExportEUR1() {
|
|
2441
|
+
switch (this._cultureID) {
|
|
2442
|
+
case CultureIDs.De_DE: return "Exportieren EUR1";
|
|
2443
|
+
case CultureIDs.En_US: return "Export EUR1";
|
|
2444
|
+
case CultureIDs.Es_ES: return "Exportar EUR1";
|
|
2445
|
+
case CultureIDs.Fr_FR: return "Exporter EUR1";
|
|
2446
|
+
case CultureIDs.Pt_PT: return "Exportar EUR1";
|
|
2447
|
+
default: return "Export - EUR1";
|
|
2448
|
+
}
|
|
2449
|
+
}
|
|
2450
|
+
static get ExportEUR1OutputFile() {
|
|
2451
|
+
switch (this._cultureID) {
|
|
2452
|
+
case CultureIDs.De_DE: return "Dateipfad für den Export (EUR1)";
|
|
2453
|
+
case CultureIDs.En_US: return "File Path for Export (EUR1)";
|
|
2454
|
+
case CultureIDs.Es_ES: return "Ruta de archivo para exportación (EUR1)";
|
|
2455
|
+
case CultureIDs.Fr_FR: return "Chemin du fichier à exporter (EUR1)";
|
|
2456
|
+
case CultureIDs.Pt_PT: return "Caminho do arquivo para exportação (EUR1)";
|
|
2457
|
+
default: return "Percorso del File per Export (EUR1)";
|
|
2458
|
+
}
|
|
2459
|
+
}
|
|
2430
2460
|
static get ExportTo() {
|
|
2431
2461
|
switch (this._cultureID) {
|
|
2432
2462
|
case CultureIDs.De_DE: return "Exportieren nach...";
|