iobroker.shoppingroute 0.4.2 → 0.4.4
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.
- package/README.md +8 -1
- package/README_DE.md +8 -1
- package/admin/backup-i18n.js +281 -0
- package/admin/backup-transfer.html +27 -65
- package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteAdminSet__mf_owner__1-CifzZTJE.js +1 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__loadShare__react__loadShare__.js-BGCVGSz6.js +1 -0
- package/admin/custom/assets/hostInit-BFP_9qwB.js +1 -0
- package/admin/custom/assets/pendingShares-JrGCtzTF.js +2 -0
- package/admin/custom/assets/{route-editor-components-B6BE_GON.js → route-editor-components-rW7iuBNT.js} +1 -1
- package/admin/custom/assets/{virtualExposes-DD7fWhQD.js → virtualExposes-D8D1innc.js} +1 -1
- package/admin/custom/markets/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteMarketsSet__mf_owner__1-CdXcBfjG.js +1 -0
- package/admin/custom/markets/assets/_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__loadShare__react__loadShare__.js-Bdlvn8vS.js +1 -0
- package/admin/custom/markets/assets/hostInit-CrDCY7SQ.js +1 -0
- package/admin/custom/markets/assets/{markets-editor-components-Ddb1WeH5.js → markets-editor-components-CUcyPBPl.js} +1 -1
- package/admin/custom/markets/assets/pendingShares-DaxGcdrd.js +2 -0
- package/admin/custom/markets/assets/{virtualExposes-Dc4mJa9n.js → virtualExposes-BhGZWOBB.js} +1 -1
- package/admin/custom/markets/marketsEditor.js +2 -2
- package/admin/custom/markets/mf-manifest.json +1 -1
- package/admin/custom/markets/mf-stats.json +1 -1
- package/admin/custom/mf-manifest.json +1 -1
- package/admin/custom/mf-stats.json +1 -1
- package/admin/custom/productGroups/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__1-DXUHDGDp.js +1 -0
- package/admin/custom/productGroups/assets/_virtual_mf___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__260837768108578__loadShare__react__loadShare__.js-BZoDZKLb.js +1 -0
- package/admin/custom/productGroups/assets/hostInit-D8t8XJ7f.js +1 -0
- package/admin/custom/productGroups/assets/pendingShares-Cmc6I2xN.js +2 -0
- package/admin/custom/productGroups/assets/{product-groups-editor-components-BXHlPM45.js → product-groups-editor-components-CLVNuU40.js} +1 -1
- package/admin/custom/productGroups/assets/{virtualExposes-YbP1hGG8.js → virtualExposes-Cci9-KkN.js} +1 -1
- package/admin/custom/productGroups/mf-manifest.json +1 -1
- package/admin/custom/productGroups/mf-stats.json +1 -1
- package/admin/custom/productGroups/productGroupsEditor.js +2 -2
- package/admin/custom/review/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-CSWI0Knk.js +1 -0
- package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__252153816870476__loadShare__react__loadShare__.js-DKpQik0v.js +1 -0
- package/admin/custom/review/assets/hostInit-Bi90nPL8.js +1 -0
- package/admin/custom/review/assets/pendingShares-Cpf2lozX.js +2 -0
- package/admin/custom/review/assets/{review-editor-components-B3H31948.js → review-editor-components-BrjR0Z85.js} +1 -1
- package/admin/custom/review/assets/{virtualExposes-N2_Od_lX.js → virtualExposes-C4BXYjQJ.js} +1 -1
- package/admin/custom/review/mf-manifest.json +1 -1
- package/admin/custom/review/mf-stats.json +1 -1
- package/admin/custom/review/reviewEditor.js +2 -2
- package/admin/custom/routeEditor.js +2 -2
- package/admin/custom/shoppingList/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-DRCeDtVc.js +1 -0
- package/admin/custom/shoppingList/assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__46505510294969__loadShare__react__loadShare__.js-onup3LN4.js +1 -0
- package/admin/custom/shoppingList/assets/hostInit-usOXh1g1.js +1 -0
- package/admin/custom/shoppingList/assets/pendingShares-DUnOFOkU.js +2 -0
- package/admin/custom/shoppingList/assets/{shopping-list-editor-components-x4SxVDXk.js → shopping-list-editor-components-DdXx3Xxu.js} +1 -1
- package/admin/custom/shoppingList/assets/{virtualExposes-Bd5gpfu_.js → virtualExposes-9FoWCC98.js} +1 -1
- package/admin/custom/shoppingList/mf-manifest.json +1 -1
- package/admin/custom/shoppingList/mf-stats.json +1 -1
- package/admin/custom/shoppingList/shoppingListEditor.js +2 -2
- package/admin/i18n/de.json +0 -6
- package/admin/i18n/en.json +0 -6
- package/admin/i18n/es.json +0 -6
- package/admin/i18n/fr.json +0 -6
- package/admin/i18n/it.json +0 -6
- package/admin/i18n/nl.json +0 -6
- package/admin/i18n/pl.json +0 -6
- package/admin/i18n/pt.json +0 -6
- package/admin/i18n/ru.json +0 -6
- package/admin/i18n/uk.json +0 -6
- package/admin/i18n/zh-cn.json +0 -6
- package/build/lib/alexa-direct.js +16 -10
- package/build/main.js +6 -3
- package/io-package.json +44 -57
- package/package.json +1 -1
- package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteAdminSet__mf_owner__1-_K4oQKNV.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__loadShare__react__loadShare__.js-DlP7O6Lc.js +0 -1
- package/admin/custom/assets/hostInit-mfexzzY1.js +0 -1
- package/admin/custom/markets/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteMarketsSet__mf_owner__1-EnW_2usp.js +0 -1
- package/admin/custom/markets/assets/_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__loadShare__react__loadShare__.js-B9pWZJCV.js +0 -1
- package/admin/custom/markets/assets/hostInit-CMk0851n.js +0 -1
- package/admin/custom/productGroups/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__1-CJ1sq92a.js +0 -1
- package/admin/custom/productGroups/assets/_virtual_mf___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__260837768108578__loadShare__react__loadShare__.js-BDIYtmgW.js +0 -1
- package/admin/custom/productGroups/assets/hostInit-Cml4x9W5.js +0 -1
- package/admin/custom/review/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-BXXR-xpB.js +0 -1
- package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__252153816870476__loadShare__react__loadShare__.js-CReP6qvu.js +0 -1
- package/admin/custom/review/assets/hostInit-BwbM20F9.js +0 -1
- package/admin/custom/shoppingList/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-Bevkkz1T.js +0 -1
- package/admin/custom/shoppingList/assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__46505510294969__loadShare__react__loadShare__.js-DgFX90Pi.js +0 -1
- package/admin/custom/shoppingList/assets/hostInit-Cizy4Jw5.js +0 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
**Current version: 0.4.
|
|
5
|
+
**Current version: 0.4.4**
|
|
6
6
|
|
|
7
7
|
ShoppingRoute sorts Alexa shopping-list entries by market, product group and each store's individual walking route. It assigns visible two-digit keys such as `20> Bananas` and `40> ═════ ALDI ═════`; managed lists must therefore be set to **A–Z** in the Alexa app. ShoppingRoute reuses the local Alexa2 authentication for direct item updates, deletes and batch creates, while Alexa2 list states remain the external change trigger.
|
|
8
8
|
|
|
@@ -40,6 +40,13 @@ See `README_DE.md` for the detailed German documentation.
|
|
|
40
40
|
|
|
41
41
|
## Changelog
|
|
42
42
|
|
|
43
|
+
### 0.4.4 (2026-09-25)
|
|
44
|
+
- (RaviniZib) Use `No Market` for new fallback-market defaults, add all 11 admin languages to the backup utility, and remove six unused translation keys. Existing market names, routes and product data remain unchanged.
|
|
45
|
+
|
|
46
|
+
### 0.4.3 (2026-09-25)
|
|
47
|
+
- (RaviniZib) Route Alexa callback timeouts through ioBroker-managed timers so stalled callbacks stay bounded without plain Node.js `setTimeout()` calls in adapter source.
|
|
48
|
+
- (RaviniZib) Keep `common.news` within the seven entries supported by the repository builder.
|
|
49
|
+
|
|
43
50
|
### 0.4.2 (2026-09-17)
|
|
44
51
|
- (RaviniZib) Bound direct Alexa callbacks to 30 seconds so missing callbacks cannot block startup or sorting.
|
|
45
52
|
- (RaviniZib) Poll Amazon lists directly with error backoff when Alexa2 events are missing; keep polling scheduled while sorting is busy or disabled.
|
package/README_DE.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
**Aktuelle Version: 0.4.
|
|
5
|
+
**Aktuelle Version: 0.4.4**
|
|
6
6
|
|
|
7
7
|
ShoppingRoute sortiert Alexa-Einkaufslisteneinträge nach Markt, Produktgruppe und dem individuellen Laufweg durch den jeweiligen Markt. Dazu vergibt es sichtbare zweistellige Schlüssel wie `20> Bananen` und `40> ═════ ALDI ═════`; verwaltete Listen müssen deshalb in der Alexa-App auf **A–Z** stehen. ShoppingRoute übernimmt lokal die Alexa2-Authentifizierung für direkte Updates, Deletes und Batch-Creates; Alexa2-Listenstates bleiben die Triggerquelle für externe Änderungen.
|
|
8
8
|
|
|
@@ -73,6 +73,13 @@ ShoppingRoute wird unter der **[MIT-Lizenz](LICENSE)** veröffentlicht. Frühere
|
|
|
73
73
|
|
|
74
74
|
## Changelog
|
|
75
75
|
|
|
76
|
+
### 0.4.4 (2026-09-25)
|
|
77
|
+
- (RaviniZib) `No Market` als Standard-Ausweichmarkt für neue Konfigurationen, Backup-Seite in allen 11 Admin-Sprachen und sechs ungenutzte Übersetzungsschlüssel entfernt. Vorhandene Marktnamen, Laufwege und Produktdaten bleiben unverändert.
|
|
78
|
+
|
|
79
|
+
### 0.4.3 (2026-09-25)
|
|
80
|
+
- Alexa-Callback-Timeouts verwenden jetzt ioBroker-verwaltete Timer; hängende Aufrufe bleiben damit begrenzt, ohne nacktes Node.js-`setTimeout()` im Adapter-Quellcode.
|
|
81
|
+
- `common.news` wird auf die vom Repository-Builder unterstützten sieben Einträge begrenzt.
|
|
82
|
+
|
|
76
83
|
### 0.4.1 (2026-09-12)
|
|
77
84
|
|
|
78
85
|
- Prüft Einkaufslistenantworten vor Anzeige und Übernahme. Unvollständige Antworten zeigen einen Fehler und „Erneut laden“, statt mit einem `.map()`-Fehler abzustürzen.
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Standalone backup utility: keep its translations separate from JSON Config keys.
|
|
4
|
+
(() => {
|
|
5
|
+
const translations = {
|
|
6
|
+
"de": {
|
|
7
|
+
"configTitle": "Komplette Konfiguration",
|
|
8
|
+
"configText": "Alle ShoppingRoute-Einstellungen direkt als JSON-Datei sichern oder aus einer Sicherungsdatei wiederherstellen.",
|
|
9
|
+
"downloadConfig": "↓ Sicherung herunterladen",
|
|
10
|
+
"uploadConfig": "↑ Sicherung wiederherstellen",
|
|
11
|
+
"marketTitle": "Marktprofil teilen",
|
|
12
|
+
"marketText": "Einen einzelnen Markt mit seinem Laufweg herunterladen oder ein Marktprofil aus einer JSON-Datei importieren.",
|
|
13
|
+
"downloadMarket": "↓ Marktprofil herunterladen",
|
|
14
|
+
"uploadMarket": "↑ Marktprofil importieren",
|
|
15
|
+
"loading": "Marktprofile werden geladen …",
|
|
16
|
+
"noMarkets": "Keine Marktprofile vorhanden",
|
|
17
|
+
"backupDownloaded": "Sicherung wurde heruntergeladen.",
|
|
18
|
+
"profileDownloaded": "Marktprofil wurde heruntergeladen.",
|
|
19
|
+
"configImportStarted": "Sicherung wurde übergeben. ShoppingRoute übernimmt die Konfiguration und startet anschließend neu.",
|
|
20
|
+
"profileImportStarted": "Marktprofil wurde übergeben und wird von ShoppingRoute übernommen.",
|
|
21
|
+
"invalidBackup": "Die gewählte Datei ist keine gültige JSON-Sicherung.",
|
|
22
|
+
"invalidProfile": "Die gewählte Datei ist kein gültiges ShoppingRoute-Marktprofil.",
|
|
23
|
+
"noInstance": "ShoppingRoute-Instanz konnte nicht ermittelt werden.",
|
|
24
|
+
"connectionError": "Verbindung zu ioBroker konnte nicht hergestellt werden.",
|
|
25
|
+
"exportError": "Sicherung konnte nicht erstellt werden.",
|
|
26
|
+
"profileError": "Marktprofile konnten nicht geladen werden.",
|
|
27
|
+
"title": "ShoppingRoute – Sicherung / Teilen",
|
|
28
|
+
"genericMarket": "Markt"
|
|
29
|
+
},
|
|
30
|
+
"en": {
|
|
31
|
+
"configTitle": "Complete configuration",
|
|
32
|
+
"configText": "Download all ShoppingRoute settings directly as a JSON file or restore them from a backup file.",
|
|
33
|
+
"downloadConfig": "↓ Download backup",
|
|
34
|
+
"uploadConfig": "↑ Restore backup",
|
|
35
|
+
"marketTitle": "Share market profile",
|
|
36
|
+
"marketText": "Download one market with its walking route or import a market profile from a JSON file.",
|
|
37
|
+
"downloadMarket": "↓ Download market profile",
|
|
38
|
+
"uploadMarket": "↑ Import market profile",
|
|
39
|
+
"loading": "Loading market profiles …",
|
|
40
|
+
"noMarkets": "No market profiles available",
|
|
41
|
+
"backupDownloaded": "Backup downloaded.",
|
|
42
|
+
"profileDownloaded": "Market profile downloaded.",
|
|
43
|
+
"configImportStarted": "Backup submitted. ShoppingRoute will apply the configuration and restart afterwards.",
|
|
44
|
+
"profileImportStarted": "Market profile submitted and will be applied by ShoppingRoute.",
|
|
45
|
+
"invalidBackup": "The selected file is not a valid JSON backup.",
|
|
46
|
+
"invalidProfile": "The selected file is not a valid ShoppingRoute market profile.",
|
|
47
|
+
"noInstance": "ShoppingRoute instance could not be determined.",
|
|
48
|
+
"connectionError": "Could not connect to ioBroker.",
|
|
49
|
+
"exportError": "Backup could not be created.",
|
|
50
|
+
"profileError": "Market profiles could not be loaded.",
|
|
51
|
+
"title": "ShoppingRoute – Backup / Share",
|
|
52
|
+
"genericMarket": "Market"
|
|
53
|
+
},
|
|
54
|
+
"es": {
|
|
55
|
+
"configTitle": "Configuración completa",
|
|
56
|
+
"configText": "Descargue todos los ajustes de ShoppingRoute como archivo JSON o restáurelos desde una copia de seguridad.",
|
|
57
|
+
"downloadConfig": "↓ Descargar copia de seguridad",
|
|
58
|
+
"uploadConfig": "↑ Restaurar copia de seguridad",
|
|
59
|
+
"marketTitle": "Compartir perfil de tienda",
|
|
60
|
+
"marketText": "Descargue una tienda con su recorrido o importe un perfil de tienda desde un archivo JSON.",
|
|
61
|
+
"downloadMarket": "↓ Descargar perfil de tienda",
|
|
62
|
+
"uploadMarket": "↑ Importar perfil de tienda",
|
|
63
|
+
"loading": "Cargando perfiles de tienda …",
|
|
64
|
+
"noMarkets": "No hay perfiles de tienda disponibles",
|
|
65
|
+
"backupDownloaded": "Copia de seguridad descargada.",
|
|
66
|
+
"profileDownloaded": "Perfil de tienda descargado.",
|
|
67
|
+
"configImportStarted": "Copia de seguridad enviada. ShoppingRoute aplicará la configuración y se reiniciará.",
|
|
68
|
+
"profileImportStarted": "Perfil de tienda enviado. ShoppingRoute lo aplicará.",
|
|
69
|
+
"invalidBackup": "El archivo seleccionado no es una copia de seguridad JSON válida.",
|
|
70
|
+
"invalidProfile": "El archivo seleccionado no es un perfil de tienda de ShoppingRoute válido.",
|
|
71
|
+
"noInstance": "No se pudo determinar la instancia de ShoppingRoute.",
|
|
72
|
+
"connectionError": "No se pudo conectar con ioBroker.",
|
|
73
|
+
"exportError": "No se pudo crear la copia de seguridad.",
|
|
74
|
+
"profileError": "No se pudieron cargar los perfiles de tienda.",
|
|
75
|
+
"title": "ShoppingRoute – Copias de seguridad / Compartir",
|
|
76
|
+
"genericMarket": "Tienda"
|
|
77
|
+
},
|
|
78
|
+
"fr": {
|
|
79
|
+
"configTitle": "Configuration complète",
|
|
80
|
+
"configText": "Téléchargez tous les paramètres de ShoppingRoute dans un fichier JSON ou restaurez-les depuis une sauvegarde.",
|
|
81
|
+
"downloadConfig": "↓ Télécharger la sauvegarde",
|
|
82
|
+
"uploadConfig": "↑ Restaurer une sauvegarde",
|
|
83
|
+
"marketTitle": "Partager un profil de magasin",
|
|
84
|
+
"marketText": "Téléchargez un magasin avec son parcours ou importez un profil de magasin depuis un fichier JSON.",
|
|
85
|
+
"downloadMarket": "↓ Télécharger le profil de magasin",
|
|
86
|
+
"uploadMarket": "↑ Importer un profil de magasin",
|
|
87
|
+
"loading": "Chargement des profils de magasin …",
|
|
88
|
+
"noMarkets": "Aucun profil de magasin disponible",
|
|
89
|
+
"backupDownloaded": "Sauvegarde téléchargée.",
|
|
90
|
+
"profileDownloaded": "Profil de magasin téléchargé.",
|
|
91
|
+
"configImportStarted": "Sauvegarde transmise. ShoppingRoute appliquera la configuration puis redémarrera.",
|
|
92
|
+
"profileImportStarted": "Profil de magasin transmis. ShoppingRoute va l’appliquer.",
|
|
93
|
+
"invalidBackup": "Le fichier sélectionné n’est pas une sauvegarde JSON valide.",
|
|
94
|
+
"invalidProfile": "Le fichier sélectionné n’est pas un profil de magasin ShoppingRoute valide.",
|
|
95
|
+
"noInstance": "Impossible de déterminer l’instance ShoppingRoute.",
|
|
96
|
+
"connectionError": "Impossible de se connecter à ioBroker.",
|
|
97
|
+
"exportError": "Impossible de créer la sauvegarde.",
|
|
98
|
+
"profileError": "Impossible de charger les profils de magasin.",
|
|
99
|
+
"title": "ShoppingRoute – Sauvegarde / Partage",
|
|
100
|
+
"genericMarket": "Magasin"
|
|
101
|
+
},
|
|
102
|
+
"it": {
|
|
103
|
+
"configTitle": "Configurazione completa",
|
|
104
|
+
"configText": "Scarica tutte le impostazioni di ShoppingRoute come file JSON o ripristinale da un backup.",
|
|
105
|
+
"downloadConfig": "↓ Scarica backup",
|
|
106
|
+
"uploadConfig": "↑ Ripristina backup",
|
|
107
|
+
"marketTitle": "Condividi profilo del negozio",
|
|
108
|
+
"marketText": "Scarica un negozio con il suo percorso o importa un profilo del negozio da un file JSON.",
|
|
109
|
+
"downloadMarket": "↓ Scarica profilo del negozio",
|
|
110
|
+
"uploadMarket": "↑ Importa profilo del negozio",
|
|
111
|
+
"loading": "Caricamento dei profili dei negozi …",
|
|
112
|
+
"noMarkets": "Nessun profilo del negozio disponibile",
|
|
113
|
+
"backupDownloaded": "Backup scaricato.",
|
|
114
|
+
"profileDownloaded": "Profilo del negozio scaricato.",
|
|
115
|
+
"configImportStarted": "Backup inviato. ShoppingRoute applicherà la configurazione e si riavvierà.",
|
|
116
|
+
"profileImportStarted": "Profilo del negozio inviato. ShoppingRoute lo applicherà.",
|
|
117
|
+
"invalidBackup": "Il file selezionato non è un backup JSON valido.",
|
|
118
|
+
"invalidProfile": "Il file selezionato non è un profilo del negozio ShoppingRoute valido.",
|
|
119
|
+
"noInstance": "Impossibile determinare l’istanza ShoppingRoute.",
|
|
120
|
+
"connectionError": "Impossibile connettersi a ioBroker.",
|
|
121
|
+
"exportError": "Impossibile creare il backup.",
|
|
122
|
+
"profileError": "Impossibile caricare i profili dei negozi.",
|
|
123
|
+
"title": "ShoppingRoute – Backup / Condivisione",
|
|
124
|
+
"genericMarket": "Negozio"
|
|
125
|
+
},
|
|
126
|
+
"nl": {
|
|
127
|
+
"configTitle": "Volledige configuratie",
|
|
128
|
+
"configText": "Download alle ShoppingRoute-instellingen als JSON-bestand of herstel ze vanuit een back-up.",
|
|
129
|
+
"downloadConfig": "↓ Back-up downloaden",
|
|
130
|
+
"uploadConfig": "↑ Back-up herstellen",
|
|
131
|
+
"marketTitle": "Winkelprofiel delen",
|
|
132
|
+
"marketText": "Download een winkel met de bijbehorende looproute of importeer een winkelprofiel uit een JSON-bestand.",
|
|
133
|
+
"downloadMarket": "↓ Winkelprofiel downloaden",
|
|
134
|
+
"uploadMarket": "↑ Winkelprofiel importeren",
|
|
135
|
+
"loading": "Winkelprofielen laden …",
|
|
136
|
+
"noMarkets": "Geen winkelprofielen beschikbaar",
|
|
137
|
+
"backupDownloaded": "Back-up gedownload.",
|
|
138
|
+
"profileDownloaded": "Winkelprofiel gedownload.",
|
|
139
|
+
"configImportStarted": "Back-up verzonden. ShoppingRoute past de configuratie toe en start daarna opnieuw.",
|
|
140
|
+
"profileImportStarted": "Winkelprofiel verzonden. ShoppingRoute zal het toepassen.",
|
|
141
|
+
"invalidBackup": "Het geselecteerde bestand is geen geldige JSON-back-up.",
|
|
142
|
+
"invalidProfile": "Het geselecteerde bestand is geen geldig ShoppingRoute-winkelprofiel.",
|
|
143
|
+
"noInstance": "De ShoppingRoute-instantie kon niet worden bepaald.",
|
|
144
|
+
"connectionError": "Verbinding met ioBroker is mislukt.",
|
|
145
|
+
"exportError": "De back-up kon niet worden gemaakt.",
|
|
146
|
+
"profileError": "De winkelprofielen konden niet worden geladen.",
|
|
147
|
+
"title": "ShoppingRoute – Back-up / Delen",
|
|
148
|
+
"genericMarket": "Winkel"
|
|
149
|
+
},
|
|
150
|
+
"pt": {
|
|
151
|
+
"configTitle": "Configuração completa",
|
|
152
|
+
"configText": "Transfira todas as definições do ShoppingRoute como ficheiro JSON ou restaure-as a partir de uma cópia de segurança.",
|
|
153
|
+
"downloadConfig": "↓ Transferir cópia de segurança",
|
|
154
|
+
"uploadConfig": "↑ Restaurar cópia de segurança",
|
|
155
|
+
"marketTitle": "Partilhar perfil de loja",
|
|
156
|
+
"marketText": "Transfira uma loja com o respetivo percurso ou importe um perfil de loja a partir de um ficheiro JSON.",
|
|
157
|
+
"downloadMarket": "↓ Transferir perfil de loja",
|
|
158
|
+
"uploadMarket": "↑ Importar perfil de loja",
|
|
159
|
+
"loading": "A carregar perfis de loja …",
|
|
160
|
+
"noMarkets": "Não existem perfis de loja disponíveis",
|
|
161
|
+
"backupDownloaded": "Cópia de segurança transferida.",
|
|
162
|
+
"profileDownloaded": "Perfil de loja transferido.",
|
|
163
|
+
"configImportStarted": "Cópia de segurança enviada. O ShoppingRoute aplicará a configuração e reiniciará.",
|
|
164
|
+
"profileImportStarted": "Perfil de loja enviado. O ShoppingRoute irá aplicá-lo.",
|
|
165
|
+
"invalidBackup": "O ficheiro selecionado não é uma cópia de segurança JSON válida.",
|
|
166
|
+
"invalidProfile": "O ficheiro selecionado não é um perfil de loja ShoppingRoute válido.",
|
|
167
|
+
"noInstance": "Não foi possível determinar a instância do ShoppingRoute.",
|
|
168
|
+
"connectionError": "Não foi possível ligar ao ioBroker.",
|
|
169
|
+
"exportError": "Não foi possível criar a cópia de segurança.",
|
|
170
|
+
"profileError": "Não foi possível carregar os perfis de loja.",
|
|
171
|
+
"title": "ShoppingRoute – Cópia de segurança / Partilha",
|
|
172
|
+
"genericMarket": "Loja"
|
|
173
|
+
},
|
|
174
|
+
"pl": {
|
|
175
|
+
"configTitle": "Pełna konfiguracja",
|
|
176
|
+
"configText": "Pobierz wszystkie ustawienia ShoppingRoute jako plik JSON lub przywróć je z kopii zapasowej.",
|
|
177
|
+
"downloadConfig": "↓ Pobierz kopię zapasową",
|
|
178
|
+
"uploadConfig": "↑ Przywróć kopię zapasową",
|
|
179
|
+
"marketTitle": "Udostępnij profil sklepu",
|
|
180
|
+
"marketText": "Pobierz sklep wraz z trasą zakupów lub zaimportuj profil sklepu z pliku JSON.",
|
|
181
|
+
"downloadMarket": "↓ Pobierz profil sklepu",
|
|
182
|
+
"uploadMarket": "↑ Importuj profil sklepu",
|
|
183
|
+
"loading": "Ładowanie profili sklepów …",
|
|
184
|
+
"noMarkets": "Brak dostępnych profili sklepów",
|
|
185
|
+
"backupDownloaded": "Pobrano kopię zapasową.",
|
|
186
|
+
"profileDownloaded": "Pobrano profil sklepu.",
|
|
187
|
+
"configImportStarted": "Przesłano kopię zapasową. ShoppingRoute zastosuje konfigurację i uruchomi się ponownie.",
|
|
188
|
+
"profileImportStarted": "Przesłano profil sklepu. ShoppingRoute go zastosuje.",
|
|
189
|
+
"invalidBackup": "Wybrany plik nie jest prawidłową kopią zapasową JSON.",
|
|
190
|
+
"invalidProfile": "Wybrany plik nie jest prawidłowym profilem sklepu ShoppingRoute.",
|
|
191
|
+
"noInstance": "Nie udało się ustalić instancji ShoppingRoute.",
|
|
192
|
+
"connectionError": "Nie udało się połączyć z ioBroker.",
|
|
193
|
+
"exportError": "Nie udało się utworzyć kopii zapasowej.",
|
|
194
|
+
"profileError": "Nie udało się załadować profili sklepów.",
|
|
195
|
+
"title": "ShoppingRoute – Kopia zapasowa / Udostępnianie",
|
|
196
|
+
"genericMarket": "Sklep"
|
|
197
|
+
},
|
|
198
|
+
"ru": {
|
|
199
|
+
"configTitle": "Полная конфигурация",
|
|
200
|
+
"configText": "Скачайте все настройки ShoppingRoute в виде файла JSON или восстановите их из резервной копии.",
|
|
201
|
+
"downloadConfig": "↓ Скачать резервную копию",
|
|
202
|
+
"uploadConfig": "↑ Восстановить резервную копию",
|
|
203
|
+
"marketTitle": "Поделиться профилем магазина",
|
|
204
|
+
"marketText": "Скачайте профиль магазина с маршрутом или импортируйте профиль из файла JSON.",
|
|
205
|
+
"downloadMarket": "↓ Скачать профиль магазина",
|
|
206
|
+
"uploadMarket": "↑ Импортировать профиль магазина",
|
|
207
|
+
"loading": "Загрузка профилей магазинов …",
|
|
208
|
+
"noMarkets": "Нет доступных профилей магазинов",
|
|
209
|
+
"backupDownloaded": "Резервная копия скачана.",
|
|
210
|
+
"profileDownloaded": "Профиль магазина скачан.",
|
|
211
|
+
"configImportStarted": "Резервная копия передана. ShoppingRoute применит конфигурацию и перезапустится.",
|
|
212
|
+
"profileImportStarted": "Профиль магазина передан. ShoppingRoute применит его.",
|
|
213
|
+
"invalidBackup": "Выбранный файл не является корректной резервной копией JSON.",
|
|
214
|
+
"invalidProfile": "Выбранный файл не является корректным профилем магазина ShoppingRoute.",
|
|
215
|
+
"noInstance": "Не удалось определить экземпляр ShoppingRoute.",
|
|
216
|
+
"connectionError": "Не удалось подключиться к ioBroker.",
|
|
217
|
+
"exportError": "Не удалось создать резервную копию.",
|
|
218
|
+
"profileError": "Не удалось загрузить профили магазинов.",
|
|
219
|
+
"title": "ShoppingRoute – Резервная копия / Обмен",
|
|
220
|
+
"genericMarket": "Магазин"
|
|
221
|
+
},
|
|
222
|
+
"uk": {
|
|
223
|
+
"configTitle": "Повна конфігурація",
|
|
224
|
+
"configText": "Завантажте всі налаштування ShoppingRoute у файлі JSON або відновіть їх із резервної копії.",
|
|
225
|
+
"downloadConfig": "↓ Завантажити резервну копію",
|
|
226
|
+
"uploadConfig": "↑ Відновити резервну копію",
|
|
227
|
+
"marketTitle": "Поділитися профілем магазину",
|
|
228
|
+
"marketText": "Завантажте профіль магазину з маршрутом або імпортуйте профіль із файлу JSON.",
|
|
229
|
+
"downloadMarket": "↓ Завантажити профіль магазину",
|
|
230
|
+
"uploadMarket": "↑ Імпортувати профіль магазину",
|
|
231
|
+
"loading": "Завантаження профілів магазинів …",
|
|
232
|
+
"noMarkets": "Немає доступних профілів магазинів",
|
|
233
|
+
"backupDownloaded": "Резервну копію завантажено.",
|
|
234
|
+
"profileDownloaded": "Профіль магазину завантажено.",
|
|
235
|
+
"configImportStarted": "Резервну копію передано. ShoppingRoute застосує конфігурацію та перезапуститься.",
|
|
236
|
+
"profileImportStarted": "Профіль магазину передано. ShoppingRoute застосує його.",
|
|
237
|
+
"invalidBackup": "Вибраний файл не є коректною резервною копією JSON.",
|
|
238
|
+
"invalidProfile": "Вибраний файл не є коректним профілем магазину ShoppingRoute.",
|
|
239
|
+
"noInstance": "Не вдалося визначити екземпляр ShoppingRoute.",
|
|
240
|
+
"connectionError": "Не вдалося підключитися до ioBroker.",
|
|
241
|
+
"exportError": "Не вдалося створити резервну копію.",
|
|
242
|
+
"profileError": "Не вдалося завантажити профілі магазинів.",
|
|
243
|
+
"title": "ShoppingRoute – Резервна копія / Обмін",
|
|
244
|
+
"genericMarket": "Магазин"
|
|
245
|
+
},
|
|
246
|
+
"zh-cn": {
|
|
247
|
+
"configTitle": "完整配置",
|
|
248
|
+
"configText": "将所有 ShoppingRoute 设置下载为 JSON 文件,或从备份文件恢复。",
|
|
249
|
+
"downloadConfig": "↓ 下载备份",
|
|
250
|
+
"uploadConfig": "↑ 恢复备份",
|
|
251
|
+
"marketTitle": "分享商店配置",
|
|
252
|
+
"marketText": "下载包含购物路线的商店配置,或从 JSON 文件导入商店配置。",
|
|
253
|
+
"downloadMarket": "↓ 下载商店配置",
|
|
254
|
+
"uploadMarket": "↑ 导入商店配置",
|
|
255
|
+
"loading": "正在加载商店配置 …",
|
|
256
|
+
"noMarkets": "没有可用的商店配置",
|
|
257
|
+
"backupDownloaded": "备份已下载。",
|
|
258
|
+
"profileDownloaded": "商店配置已下载。",
|
|
259
|
+
"configImportStarted": "备份已提交。ShoppingRoute 将应用配置并重新启动。",
|
|
260
|
+
"profileImportStarted": "商店配置已提交,ShoppingRoute 将应用该配置。",
|
|
261
|
+
"invalidBackup": "所选文件不是有效的 JSON 备份。",
|
|
262
|
+
"invalidProfile": "所选文件不是有效的 ShoppingRoute 商店配置。",
|
|
263
|
+
"noInstance": "无法确定 ShoppingRoute 实例。",
|
|
264
|
+
"connectionError": "无法连接到 ioBroker。",
|
|
265
|
+
"exportError": "无法创建备份。",
|
|
266
|
+
"profileError": "无法加载商店配置。",
|
|
267
|
+
"title": "ShoppingRoute – 备份 / 分享",
|
|
268
|
+
"genericMarket": "商店"
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
function resolveLanguage(value) {
|
|
273
|
+
const locale = String(value || '').trim().toLowerCase().replace(/_/g, '-');
|
|
274
|
+
if (Object.prototype.hasOwnProperty.call(translations, locale)) return locale;
|
|
275
|
+
const base = locale.split('-')[0];
|
|
276
|
+
if (base === 'zh') return 'zh-cn';
|
|
277
|
+
return Object.prototype.hasOwnProperty.call(translations, base) ? base : 'en';
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
window.ShoppingRouteBackupI18n = { translations, resolveLanguage };
|
|
281
|
+
})();
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
|
-
<html lang="
|
|
2
|
+
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
-
<title>ShoppingRoute –
|
|
6
|
+
<title>ShoppingRoute – Backup / Share</title>
|
|
7
7
|
|
|
8
8
|
<style>
|
|
9
9
|
:root {
|
|
@@ -124,36 +124,37 @@
|
|
|
124
124
|
<input id="marketFile" type="file" accept=".json,application/json">
|
|
125
125
|
|
|
126
126
|
<div class="section">
|
|
127
|
-
<h2 id="configTitle">
|
|
127
|
+
<h2 id="configTitle">Complete configuration</h2>
|
|
128
128
|
<p id="configText">
|
|
129
|
-
|
|
129
|
+
Download all ShoppingRoute settings directly as a JSON file or restore them from a backup file.
|
|
130
130
|
</p>
|
|
131
131
|
|
|
132
132
|
<div class="row">
|
|
133
|
-
<button id="downloadConfig" type="button">↓
|
|
134
|
-
<button id="uploadConfig" type="button">↑
|
|
133
|
+
<button id="downloadConfig" type="button">↓ Download backup</button>
|
|
134
|
+
<button id="uploadConfig" type="button">↑ Restore backup</button>
|
|
135
135
|
</div>
|
|
136
136
|
</div>
|
|
137
137
|
|
|
138
138
|
<div class="section">
|
|
139
|
-
<h2 id="marketTitle">
|
|
139
|
+
<h2 id="marketTitle">Share market profile</h2>
|
|
140
140
|
<p id="marketText">
|
|
141
|
-
|
|
141
|
+
Download one market with its walking route or import a market profile from a JSON file.
|
|
142
142
|
</p>
|
|
143
143
|
|
|
144
144
|
<div class="row">
|
|
145
145
|
<select id="marketSelect" disabled>
|
|
146
|
-
<option value="">
|
|
146
|
+
<option value="">Loading market profiles …</option>
|
|
147
147
|
</select>
|
|
148
148
|
|
|
149
|
-
<button id="downloadMarket" type="button" disabled>↓
|
|
150
|
-
<button id="uploadMarket" type="button">↑
|
|
149
|
+
<button id="downloadMarket" type="button" disabled>↓ Download market profile</button>
|
|
150
|
+
<button id="uploadMarket" type="button">↑ Import market profile</button>
|
|
151
151
|
</div>
|
|
152
152
|
</div>
|
|
153
153
|
|
|
154
154
|
<div id="status"></div>
|
|
155
155
|
|
|
156
156
|
<script src="../../lib/js/socket.io.js"></script>
|
|
157
|
+
<script src="backup-i18n.js"></script>
|
|
157
158
|
|
|
158
159
|
<script>
|
|
159
160
|
'use strict';
|
|
@@ -168,51 +169,12 @@
|
|
|
168
169
|
|
|
169
170
|
let marketProfiles = [];
|
|
170
171
|
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
const texts =
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
uploadConfig: '↑ Sicherung wiederherstellen',
|
|
178
|
-
marketTitle: 'Marktprofil teilen',
|
|
179
|
-
marketText: 'Einen einzelnen Markt mit seinem Laufweg herunterladen oder ein Marktprofil aus einer JSON-Datei importieren.',
|
|
180
|
-
downloadMarket: '↓ Marktprofil herunterladen',
|
|
181
|
-
uploadMarket: '↑ Marktprofil importieren',
|
|
182
|
-
loading: 'Marktprofile werden geladen …',
|
|
183
|
-
noMarkets: 'Keine Marktprofile vorhanden',
|
|
184
|
-
backupDownloaded: 'Sicherung wurde heruntergeladen.',
|
|
185
|
-
profileDownloaded: 'Marktprofil wurde heruntergeladen.',
|
|
186
|
-
configImportStarted: 'Sicherung wurde übergeben. ShoppingRoute übernimmt die Konfiguration und startet anschließend neu.',
|
|
187
|
-
profileImportStarted: 'Marktprofil wurde übergeben und wird von ShoppingRoute übernommen.',
|
|
188
|
-
invalidBackup: 'Die gewählte Datei ist keine gültige JSON-Sicherung.',
|
|
189
|
-
invalidProfile: 'Die gewählte Datei ist kein gültiges ShoppingRoute-Marktprofil.',
|
|
190
|
-
noInstance: 'ShoppingRoute-Instanz konnte nicht ermittelt werden.',
|
|
191
|
-
connectionError: 'Verbindung zu ioBroker konnte nicht hergestellt werden.',
|
|
192
|
-
exportError: 'Sicherung konnte nicht erstellt werden.',
|
|
193
|
-
profileError: 'Marktprofile konnten nicht geladen werden.'
|
|
194
|
-
} : {
|
|
195
|
-
configTitle: 'Complete configuration',
|
|
196
|
-
configText: 'Download all ShoppingRoute settings directly as a JSON file or restore them from a backup file.',
|
|
197
|
-
downloadConfig: '↓ Download backup',
|
|
198
|
-
uploadConfig: '↑ Restore backup',
|
|
199
|
-
marketTitle: 'Share market profile',
|
|
200
|
-
marketText: 'Download one market with its walking route or import a market profile from a JSON file.',
|
|
201
|
-
downloadMarket: '↓ Download market profile',
|
|
202
|
-
uploadMarket: '↑ Import market profile',
|
|
203
|
-
loading: 'Loading market profiles …',
|
|
204
|
-
noMarkets: 'No market profiles available',
|
|
205
|
-
backupDownloaded: 'Backup downloaded.',
|
|
206
|
-
profileDownloaded: 'Market profile downloaded.',
|
|
207
|
-
configImportStarted: 'Backup submitted. ShoppingRoute will apply the configuration and restart afterwards.',
|
|
208
|
-
profileImportStarted: 'Market profile submitted and will be applied by ShoppingRoute.',
|
|
209
|
-
invalidBackup: 'The selected file is not a valid JSON backup.',
|
|
210
|
-
invalidProfile: 'The selected file is not a valid ShoppingRoute market profile.',
|
|
211
|
-
noInstance: 'ShoppingRoute instance could not be determined.',
|
|
212
|
-
connectionError: 'Could not connect to ioBroker.',
|
|
213
|
-
exportError: 'Backup could not be created.',
|
|
214
|
-
profileError: 'Market profiles could not be loaded.'
|
|
215
|
-
};
|
|
172
|
+
const { translations, resolveLanguage } = window.ShoppingRouteBackupI18n;
|
|
173
|
+
const language = resolveLanguage(params.get('lang') || navigator.language);
|
|
174
|
+
const texts = translations[language];
|
|
175
|
+
document.documentElement.lang = language;
|
|
176
|
+
document.title = texts.title;
|
|
177
|
+
marketSelect.options[0].textContent = texts.loading;
|
|
216
178
|
|
|
217
179
|
for (const id of [
|
|
218
180
|
'configTitle', 'configText', 'downloadConfig', 'uploadConfig',
|
|
@@ -268,7 +230,7 @@
|
|
|
268
230
|
) {
|
|
269
231
|
reject(
|
|
270
232
|
new Error(
|
|
271
|
-
'ioBroker
|
|
233
|
+
'ioBroker socket library is not available'
|
|
272
234
|
)
|
|
273
235
|
);
|
|
274
236
|
return;
|
|
@@ -295,7 +257,7 @@
|
|
|
295
257
|
reject(
|
|
296
258
|
error instanceof Error
|
|
297
259
|
? error
|
|
298
|
-
: new Error(String(error || 'Socket
|
|
260
|
+
: new Error(String(error || 'Socket connection error'))
|
|
299
261
|
);
|
|
300
262
|
};
|
|
301
263
|
|
|
@@ -376,7 +338,7 @@
|
|
|
376
338
|
function getState(id) {
|
|
377
339
|
return new Promise((resolve, reject) => {
|
|
378
340
|
if (!socket) {
|
|
379
|
-
reject(new Error('
|
|
341
|
+
reject(new Error('No ioBroker connection'));
|
|
380
342
|
return;
|
|
381
343
|
}
|
|
382
344
|
|
|
@@ -398,7 +360,7 @@
|
|
|
398
360
|
function setState(id, val) {
|
|
399
361
|
return new Promise((resolve, reject) => {
|
|
400
362
|
if (!socket) {
|
|
401
|
-
reject(new Error('
|
|
363
|
+
reject(new Error('No ioBroker connection'));
|
|
402
364
|
return;
|
|
403
365
|
}
|
|
404
366
|
|
|
@@ -426,10 +388,10 @@
|
|
|
426
388
|
}
|
|
427
389
|
|
|
428
390
|
function safeFilename(value) {
|
|
429
|
-
return String(value || '
|
|
391
|
+
return String(value || 'market')
|
|
430
392
|
.trim()
|
|
431
393
|
.replace(/[^a-zA-Z0-9._-]+/g, '-')
|
|
432
|
-
.replace(/^-+|-+$/g, '') || '
|
|
394
|
+
.replace(/^-+|-+$/g, '') || 'market';
|
|
433
395
|
}
|
|
434
396
|
|
|
435
397
|
function datePart() {
|
|
@@ -517,7 +479,7 @@
|
|
|
517
479
|
String(a && a.market && a.market.name || '')
|
|
518
480
|
.localeCompare(
|
|
519
481
|
String(b && b.market && b.market.name || ''),
|
|
520
|
-
|
|
482
|
+
language,
|
|
521
483
|
{ sensitivity: 'base' }
|
|
522
484
|
)
|
|
523
485
|
);
|
|
@@ -540,7 +502,7 @@
|
|
|
540
502
|
|
|
541
503
|
option.value = String(index);
|
|
542
504
|
option.textContent =
|
|
543
|
-
String(profile && profile.market && profile.market.name ||
|
|
505
|
+
String(profile && profile.market && profile.market.name || texts.genericMarket);
|
|
544
506
|
|
|
545
507
|
marketSelect.appendChild(option);
|
|
546
508
|
}
|
|
@@ -649,7 +611,7 @@
|
|
|
649
611
|
}
|
|
650
612
|
|
|
651
613
|
downloadText(
|
|
652
|
-
'shoppingroute-
|
|
614
|
+
'shoppingroute-market-profile-' +
|
|
653
615
|
safeFilename(profile.market.name) +
|
|
654
616
|
'-' +
|
|
655
617
|
datePart() +
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./index-2HOz3j7B.js";const i=a=>{let e=a;for(let t=0;t<5;t++){const o=e==null?void 0:e.default;if(!o||typeof o!="object"||Object.keys(o).length===0)break;const n=Object.keys(e).filter(r=>r!=="default").map(r=>e[r]);if(n.length>0&&n.some(r=>r!==void 0))break;e=o}return e},l={react:async()=>await import("./_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__prebuild__react__prebuild__-Dj6dAy_K.js")},u={react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,materialize:!0,eager:!1,from:"ShoppingRouteAdminSet",canLiveRebind:!0,async get(){u.react.loaded=!0;const{react:a}=l,e=await a(),t=i({...e});return t.__esModule!==!0&&Object.defineProperty(t,"__esModule",{value:!0,enumerable:!1}),function(){return t}},shareConfig:{singleton:!0,requiredVersion:">=18",strictVersion:!1,eager:!1}}},f=[];export{f as usedRemotes,u as usedShared};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as ee}from"./vite-preload-helper-Dp1pzeXC.js";function te(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const _ in n)if(_!=="default"&&!(_ in e)){const a=Object.getOwnPropertyDescriptor(n,_);a&&Object.defineProperty(e,_,a.get?a:{enumerable:!0,get:()=>n[_]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const h="__mf_init__virtual:mf:__mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__mf_v__runtimeInit__mf_v__.js__";let o=globalThis[h];if(!o){let e,t;const r=new Promise((n,_)=>{e=n,t=_});o=globalThis[h]={initPromise:r,initResolve:e,initReject:t}}const re=o.initPromise,i="__mf_module_cache__";globalThis[i]||={share:{},remote:{}};globalThis[i].share||={};globalThis[i].remote||={};const l=globalThis[i],ne=e=>{const t=l.pendingShareLoads||=[];t.push(e);const r=()=>{const n=t.indexOf(e);n!==-1&&t.splice(n,1)};return e.then(r,r),e};for(const e of Object.keys(l.share))if(e.startsWith("default:")){const t=e.slice(8);l.share[t]===void 0&&(l.share[t]=l.share[e])}else if(!e.includes(":")){const t="default:"+e;l.share[t]===void 0&&(l.share[t]=l.share[e])}const b=(e,t)=>{const r=e[t.canonical];if(r!==void 0)return r;const n=t.aliases||[];for(const _ of n){if(!Object.prototype.hasOwnProperty.call(e,_))continue;const a=e[_];if(a!==void 0)return e[t.canonical]=a,a}},c=Symbol.for("module-federation.shared-cache-listeners"),_e=e=>{let t=e[c];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,c,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},ae=(e,t,r)=>{const n=_e(e);(n[t.canonical]||=new Set).add(r)},m=Symbol.for("module-federation.shared-cache-owners"),le=e=>{let t=e[m];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,m,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},se=(e,t,r,n)=>{var s;e[t.canonical]=r;const _=t.aliases||[];for(const u of _)Object.defineProperty(e,u,{value:r,enumerable:!0,configurable:!0,writable:!0});e[m],le(e)[t.canonical]=n;const a=(s=e[c])==null?void 0:s[t.canonical];if(a)for(const u of a)u(r);return r},fe=e=>{const t=(()=>{let r=e;for(let n=0;n<5;n++){const _=r==null?void 0:r.default;if(!_||typeof _!="object")break;const a=Object.keys(r).filter(s=>s!=="default").map(s=>r[s]);if(a.length>0&&a.some(s=>s!==void 0))break;r=_}return r})();return t&&Object.getPrototypeOf(t)===null?Object.assign({},t):t};let S,d,p,y,E,O,C,v,P,R,T,j,L,w,I,x,D,V,k,A,M,N,K,z,F,G,U,W,B,H,Y,J,q,Q,X,Z,$;const g=e=>{d=e.Children,p=e.Component,y=e.Fragment,E=e.Profiler,O=e.PureComponent,C=e.StrictMode,v=e.Suspense,P=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,R=e.act,T=e.cloneElement,j=e.createContext,L=e.createElement,w=e.createFactory,I=e.createRef,x=e.forwardRef,D=e.isValidElement,V=e.lazy,k=e.memo,A=e.startTransition,M=e.unstable_act,N=e.useCallback,K=e.useContext,z=e.useDebugValue,F=e.useDeferredValue,G=e.useEffect,U=e.useId,W=e.useImperativeHandle,B=e.useInsertionEffect,H=e.useLayoutEffect,Y=e.useMemo,J=e.useReducer,q=e.useRef,Q=e.useState,X=e.useSyncExternalStore,Z=e.useTransition,$=e.version,S=e.default??e};ae(l.share,{canonical:"default:react"},g);let f=b(l.share,{canonical:"default:react",aliases:["react"]});f===void 0?ne(re.then(()=>{if(f=b(l.share,{canonical:"default:react",aliases:["react"]}),f!==void 0){g(f);return}return ee(()=>import("./_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__prebuild__react__prebuild__-Dj6dAy_K.js"),[],import.meta.url).then(e=>{f=fe(e),se(l.share,{canonical:"default:react",aliases:["react"]},f,"ShoppingRouteAdminSet")})})):g(f);const ie=f,oe=te({__proto__:null,get Children(){return d},get Component(){return p},get Fragment(){return y},get Profiler(){return E},get PureComponent(){return O},get StrictMode(){return C},get Suspense(){return v},get __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(){return P},get act(){return R},get cloneElement(){return T},get createContext(){return j},get createElement(){return L},get createFactory(){return w},get createRef(){return I},get default(){return S},get forwardRef(){return x},get isValidElement(){return D},get lazy(){return V},get memo(){return k},get startTransition(){return A},get unstable_act(){return M},get useCallback(){return N},get useContext(){return K},get useDebugValue(){return z},get useDeferredValue(){return F},get useEffect(){return G},get useId(){return U},get useImperativeHandle(){return W},get useInsertionEffect(){return B},get useLayoutEffect(){return H},get useMemo(){return Y},get useReducer(){return J},get useRef(){return q},get useState(){return Q},get useSyncExternalStore(){return X},get useTransition(){return Z},get version(){return $}},[ie]);export{oe as _,S as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as g}from"./vite-preload-helper-Dp1pzeXC.js";const S="__mf_module_cache__";globalThis[S]||={share:{},remote:{}};globalThis[S].share||={};globalThis[S].remote||={};const r=globalThis[S];for(const l of Object.keys(r.share))if(l.startsWith("default:")){const c=l.slice(8);r.share[c]===void 0&&(r.share[c]=r.share[l])}else if(!l.includes(":")){const c="default:"+l;r.share[c]===void 0&&(r.share[c]=r.share[l])}let y;async function I(){return y||(y=(async()=>{const l=(t,e,a,o)=>{const n=(Array.isArray(o)?o[0]:o)||"default",f=e||!a?t:t+"@"+a,i={canonical:n+":"+f};return n==="default"&&(i.aliases=[f]),i},c=(t,e)=>{const a=t[e.canonical];if(a!==void 0)return a;const o=e.aliases||[];for(const s of o){if(!Object.prototype.hasOwnProperty.call(t,s))continue;const n=t[s];if(n!==void 0)return t[e.canonical]=n,n}},C=Symbol.for("module-federation.shared-cache-listeners"),h=Symbol.for("module-federation.shared-cache-owners"),w=t=>{let e=t[h];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,h,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},O=(t,e)=>{var a;return(a=t[h])==null?void 0:a[e.canonical]},A=(t,e,a,o)=>{var f;t[e.canonical]=a;const s=e.aliases||[];for(const i of s)Object.defineProperty(t,i,{value:a,enumerable:!0,configurable:!0,writable:!0});t[h],w(t)[e.canonical]=o;const n=(f=t[C])==null?void 0:f[e.canonical];if(n)for(const i of n)i(a);return a},m=await(await import("../routeEditor.js")).init(),{usedShared:j}=await g(async()=>{const{usedShared:t}=await import("./_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteAdminSet__mf_owner__1-CifzZTJE.js");return{usedShared:t}},[],import.meta.url),P=t=>{let e=t;for(let a=0;a<5;a++){const o=e==null?void 0:e.default;if(!o||typeof o!="object"||Object.keys(o).length===0)break;const s=Object.keys(e).filter(n=>n!=="default").map(n=>e[n]);if(s.length>0&&s.some(n=>n!==void 0))break;e=o}return e},E=(t,e)=>(Array.isArray(e.scope)?e.scope:[e.scope||"default"]).some(a=>{var o,s;return Object.keys(((s=(o=m.shareScopeMap)==null?void 0:o[a])==null?void 0:s[t])||{}).some(n=>n!==e.version)}),R=[["react"]];for(const t of R)await Promise.all(t.map(async e=>{var s,n,f,i;const a=j[e];if(!a||a.materialize===!1||a.treeShaking)return;const o=l(e,(s=a.shareConfig)==null?void 0:s.singleton,a.version,a.scope);c(r.share,o)!==void 0&&(!((n=a.shareConfig)!=null&&n.singleton)&&O(r.share,o)==="ShoppingRouteAdminSet"||(f=a.shareConfig)!=null&&f.singleton&&!E(e,a))||((i=a.shareConfig)==null?void 0:i.import)===!1&&!(Array.isArray(a.scope)?a.scope:[a.scope||"default"]).some(u=>{var d,_;return Object.values(((_=(d=m.shareScopeMap)==null?void 0:d[u])==null?void 0:_[e])||{}).some(b=>{var p;return((p=b==null?void 0:b.shareConfig)==null?void 0:p.import)!==!1})})||await m.loadShare(e,{customShareInfo:{shareConfig:a.shareConfig}}).then(async u=>{const d=typeof u=="function"?u():u;let _=P(await Promise.resolve(d));A(r.share,o,_,"ShoppingRouteAdminSet")})}));return m})()),y}y=I();export{y as hostInitPromise,I as initHost};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-2HOz3j7B.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{_ as d}from"./vite-preload-helper-Dp1pzeXC.js";const c="__mf_module_cache__";globalThis[c]||={share:{},remote:{}};globalThis[c].share||={};globalThis[c].remote||={};const n=globalThis[c];for(const e of Object.keys(n.share))if(e.startsWith("default:")){const a=e.slice(8);n.share[a]===void 0&&(n.share[a]=n.share[e])}else if(!e.includes(":")){const a="default:"+e;n.share[a]===void 0&&(n.share[a]=n.share[e])}const h=(e,a,o,r)=>{const t=(Array.isArray(r)?r[0]:r)||"default",i=a||!o?e:e+"@"+o,l={canonical:t+":"+i};return t==="default"&&(l.aliases=[i]),l},_=(e,a)=>{const o=e[a.canonical];if(o!==void 0)return o;const r=a.aliases||[];for(const s of r){if(!Object.prototype.hasOwnProperty.call(e,s))continue;const t=e[s];if(t!==void 0)return e[a.canonical]=t,t}},f=[["react",()=>d(()=>import("./_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__loadShare__react__loadShare__.js-BGCVGSz6.js").then(e=>e._),[],import.meta.url)]];async function m(){if(f.length===0)return;const{usedShared:e}=await d(async()=>{const{usedShared:a}=await import("./_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteAdminSet__mf_owner__1-CifzZTJE.js");return{usedShared:a}},__vite__mapDeps([0]),import.meta.url);await Promise.all(f.map(async([a,o])=>{var t,i;const r=e[a];if(!r||r.materialize===!1||r.treeShaking||((t=r.shareConfig)==null?void 0:t.import)===!1)return;const s=h(a,(i=r.shareConfig)==null?void 0:i.singleton,r.version,r.scope);_(n.share,s)===void 0&&await o().catch(l=>console.warn("[module-federation] shared preload failed:",a,l))}))}export{m as preloadPendingShares};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../routeEditor.js";import{
|
|
1
|
+
import"../routeEditor.js";import{a as B,_ as L}from"./_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__loadShare__react__loadShare__.js-BGCVGSz6.js";import"./vite-preload-helper-Dp1pzeXC.js";import"./index-2HOz3j7B.js";var b={exports:{}};const A=B||L,n=A.createElement,z=`
|
|
2
2
|
.shoppingroute-route-row {
|
|
3
3
|
display: grid;
|
|
4
4
|
grid-template-columns: 48px minmax(160px, 1fr) 144px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const c={},i=new Set,r=new Map;function m(t,n){let e=r.get(t);return e||(e=Promise.resolve().then(n).catch(o=>{throw r.delete(t),o}),r.set(t,e)),e}async function u(t){if(typeof document>"u")return;const n=c[t]||[];await Promise.all(n.map(e=>{const o=new URL(e,import.meta.url).href;return i.has(o)||(i.add(o),document.querySelector(`link[rel="stylesheet"][href="${o}"]`))?Promise.resolve():new Promise((a,d)=>{const s=document.createElement("link");s.rel="stylesheet",s.href=o,s.onload=()=>a(),s.onerror=()=>d(new Error(`[Module Federation] Failed to load CSS asset: ${o}`)),document.head.appendChild(s)})}))}const f={"./Components":async()=>{await u("./Components"),await Promise.all([]);const t=await m("./Components",()=>import("./route-editor-components-
|
|
1
|
+
const c={},i=new Set,r=new Map;function m(t,n){let e=r.get(t);return e||(e=Promise.resolve().then(n).catch(o=>{throw r.delete(t),o}),r.set(t,e)),e}async function u(t){if(typeof document>"u")return;const n=c[t]||[];await Promise.all(n.map(e=>{const o=new URL(e,import.meta.url).href;return i.has(o)||(i.add(o),document.querySelector(`link[rel="stylesheet"][href="${o}"]`))?Promise.resolve():new Promise((a,d)=>{const s=document.createElement("link");s.rel="stylesheet",s.href=o,s.onload=()=>a(),s.onerror=()=>d(new Error(`[Module Federation] Failed to load CSS asset: ${o}`)),document.head.appendChild(s)})}))}const f={"./Components":async()=>{await u("./Components"),await Promise.all([]);const t=await m("./Components",()=>import("./route-editor-components-rW7iuBNT.js")),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then=="function"&&await n;const e={};return Object.assign(e,t),Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),e}};export{f as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./index-2HOz3j7B.js";const i=a=>{let e=a;for(let t=0;t<5;t++){const o=e==null?void 0:e.default;if(!o||typeof o!="object"||Object.keys(o).length===0)break;const n=Object.keys(e).filter(r=>r!=="default").map(r=>e[r]);if(n.length>0&&n.some(r=>r!==void 0))break;e=o}return e},l={react:async()=>await import("./_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__prebuild__react__prebuild__-B3doRuSR.js")},u={react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,materialize:!0,eager:!1,from:"ShoppingRouteMarketsSet",canLiveRebind:!0,async get(){u.react.loaded=!0;const{react:a}=l,e=await a(),t=i({...e});return t.__esModule!==!0&&Object.defineProperty(t,"__esModule",{value:!0,enumerable:!1}),function(){return t}},shareConfig:{singleton:!0,requiredVersion:">=18",strictVersion:!1,eager:!1}}},f=[];export{f as usedRemotes,u as usedShared};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as ee}from"./vite-preload-helper-Dp1pzeXC.js";function te(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const _ in n)if(_!=="default"&&!(_ in e)){const a=Object.getOwnPropertyDescriptor(n,_);a&&Object.defineProperty(e,_,a.get?a:{enumerable:!0,get:()=>n[_]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const h="__mf_init__virtual:mf:__mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__mf_v__runtimeInit__mf_v__.js__";let o=globalThis[h];if(!o){let e,t;const r=new Promise((n,_)=>{e=n,t=_});o=globalThis[h]={initPromise:r,initResolve:e,initReject:t}}const re=o.initPromise,i="__mf_module_cache__";globalThis[i]||={share:{},remote:{}};globalThis[i].share||={};globalThis[i].remote||={};const l=globalThis[i],ne=e=>{const t=l.pendingShareLoads||=[];t.push(e);const r=()=>{const n=t.indexOf(e);n!==-1&&t.splice(n,1)};return e.then(r,r),e};for(const e of Object.keys(l.share))if(e.startsWith("default:")){const t=e.slice(8);l.share[t]===void 0&&(l.share[t]=l.share[e])}else if(!e.includes(":")){const t="default:"+e;l.share[t]===void 0&&(l.share[t]=l.share[e])}const b=(e,t)=>{const r=e[t.canonical];if(r!==void 0)return r;const n=t.aliases||[];for(const _ of n){if(!Object.prototype.hasOwnProperty.call(e,_))continue;const a=e[_];if(a!==void 0)return e[t.canonical]=a,a}},c=Symbol.for("module-federation.shared-cache-listeners"),_e=e=>{let t=e[c];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,c,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},ae=(e,t,r)=>{const n=_e(e);(n[t.canonical]||=new Set).add(r)},m=Symbol.for("module-federation.shared-cache-owners"),le=e=>{let t=e[m];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,m,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},se=(e,t,r,n)=>{var s;e[t.canonical]=r;const _=t.aliases||[];for(const u of _)Object.defineProperty(e,u,{value:r,enumerable:!0,configurable:!0,writable:!0});e[m],le(e)[t.canonical]=n;const a=(s=e[c])==null?void 0:s[t.canonical];if(a)for(const u of a)u(r);return r},fe=e=>{const t=(()=>{let r=e;for(let n=0;n<5;n++){const _=r==null?void 0:r.default;if(!_||typeof _!="object")break;const a=Object.keys(r).filter(s=>s!=="default").map(s=>r[s]);if(a.length>0&&a.some(s=>s!==void 0))break;r=_}return r})();return t&&Object.getPrototypeOf(t)===null?Object.assign({},t):t};let S,d,p,y,E,O,C,v,P,R,T,j,L,w,I,x,D,k,M,V,N,K,z,A,F,G,U,W,B,H,Y,J,q,Q,X,Z,$;const g=e=>{d=e.Children,p=e.Component,y=e.Fragment,E=e.Profiler,O=e.PureComponent,C=e.StrictMode,v=e.Suspense,P=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,R=e.act,T=e.cloneElement,j=e.createContext,L=e.createElement,w=e.createFactory,I=e.createRef,x=e.forwardRef,D=e.isValidElement,k=e.lazy,M=e.memo,V=e.startTransition,N=e.unstable_act,K=e.useCallback,z=e.useContext,A=e.useDebugValue,F=e.useDeferredValue,G=e.useEffect,U=e.useId,W=e.useImperativeHandle,B=e.useInsertionEffect,H=e.useLayoutEffect,Y=e.useMemo,J=e.useReducer,q=e.useRef,Q=e.useState,X=e.useSyncExternalStore,Z=e.useTransition,$=e.version,S=e.default??e};ae(l.share,{canonical:"default:react"},g);let f=b(l.share,{canonical:"default:react",aliases:["react"]});f===void 0?ne(re.then(()=>{if(f=b(l.share,{canonical:"default:react",aliases:["react"]}),f!==void 0){g(f);return}return ee(()=>import("./_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__prebuild__react__prebuild__-B3doRuSR.js"),[],import.meta.url).then(e=>{f=fe(e),se(l.share,{canonical:"default:react",aliases:["react"]},f,"ShoppingRouteMarketsSet")})})):g(f);const ie=f,oe=te({__proto__:null,get Children(){return d},get Component(){return p},get Fragment(){return y},get Profiler(){return E},get PureComponent(){return O},get StrictMode(){return C},get Suspense(){return v},get __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED(){return P},get act(){return R},get cloneElement(){return T},get createContext(){return j},get createElement(){return L},get createFactory(){return w},get createRef(){return I},get default(){return S},get forwardRef(){return x},get isValidElement(){return D},get lazy(){return k},get memo(){return M},get startTransition(){return V},get unstable_act(){return N},get useCallback(){return K},get useContext(){return z},get useDebugValue(){return A},get useDeferredValue(){return F},get useEffect(){return G},get useId(){return U},get useImperativeHandle(){return W},get useInsertionEffect(){return B},get useLayoutEffect(){return H},get useMemo(){return Y},get useReducer(){return J},get useRef(){return q},get useState(){return Q},get useSyncExternalStore(){return X},get useTransition(){return Z},get version(){return $}},[ie]);export{oe as _,S as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as g}from"./vite-preload-helper-Dp1pzeXC.js";const S="__mf_module_cache__";globalThis[S]||={share:{},remote:{}};globalThis[S].share||={};globalThis[S].remote||={};const o=globalThis[S];for(const l of Object.keys(o.share))if(l.startsWith("default:")){const c=l.slice(8);o.share[c]===void 0&&(o.share[c]=o.share[l])}else if(!l.includes(":")){const c="default:"+l;o.share[c]===void 0&&(o.share[c]=o.share[l])}let y;async function I(){return y||(y=(async()=>{const l=(t,e,a,s)=>{const n=(Array.isArray(s)?s[0]:s)||"default",f=e||!a?t:t+"@"+a,i={canonical:n+":"+f};return n==="default"&&(i.aliases=[f]),i},c=(t,e)=>{const a=t[e.canonical];if(a!==void 0)return a;const s=e.aliases||[];for(const r of s){if(!Object.prototype.hasOwnProperty.call(t,r))continue;const n=t[r];if(n!==void 0)return t[e.canonical]=n,n}},C=Symbol.for("module-federation.shared-cache-listeners"),h=Symbol.for("module-federation.shared-cache-owners"),w=t=>{let e=t[h];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,h,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},O=(t,e)=>{var a;return(a=t[h])==null?void 0:a[e.canonical]},j=(t,e,a,s)=>{var f;t[e.canonical]=a;const r=e.aliases||[];for(const i of r)Object.defineProperty(t,i,{value:a,enumerable:!0,configurable:!0,writable:!0});t[h],w(t)[e.canonical]=s;const n=(f=t[C])==null?void 0:f[e.canonical];if(n)for(const i of n)i(a);return a},m=await(await import("../marketsEditor.js")).init(),{usedShared:A}=await g(async()=>{const{usedShared:t}=await import("./_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteMarketsSet__mf_owner__1-CdXcBfjG.js");return{usedShared:t}},[],import.meta.url),P=t=>{let e=t;for(let a=0;a<5;a++){const s=e==null?void 0:e.default;if(!s||typeof s!="object"||Object.keys(s).length===0)break;const r=Object.keys(e).filter(n=>n!=="default").map(n=>e[n]);if(r.length>0&&r.some(n=>n!==void 0))break;e=s}return e},E=(t,e)=>(Array.isArray(e.scope)?e.scope:[e.scope||"default"]).some(a=>{var s,r;return Object.keys(((r=(s=m.shareScopeMap)==null?void 0:s[a])==null?void 0:r[t])||{}).some(n=>n!==e.version)}),R=[["react"]];for(const t of R)await Promise.all(t.map(async e=>{var r,n,f,i;const a=A[e];if(!a||a.materialize===!1||a.treeShaking)return;const s=l(e,(r=a.shareConfig)==null?void 0:r.singleton,a.version,a.scope);c(o.share,s)!==void 0&&(!((n=a.shareConfig)!=null&&n.singleton)&&O(o.share,s)==="ShoppingRouteMarketsSet"||(f=a.shareConfig)!=null&&f.singleton&&!E(e,a))||((i=a.shareConfig)==null?void 0:i.import)===!1&&!(Array.isArray(a.scope)?a.scope:[a.scope||"default"]).some(u=>{var d,_;return Object.values(((_=(d=m.shareScopeMap)==null?void 0:d[u])==null?void 0:_[e])||{}).some(b=>{var p;return((p=b==null?void 0:b.shareConfig)==null?void 0:p.import)!==!1})})||await m.loadShare(e,{customShareInfo:{shareConfig:a.shareConfig}}).then(async u=>{const d=typeof u=="function"?u():u;let _=P(await Promise.resolve(d));j(o.share,s,_,"ShoppingRouteMarketsSet")})}));return m})()),y}y=I();export{y as hostInitPromise,I as initHost};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../marketsEditor.js";import{
|
|
1
|
+
import"../marketsEditor.js";import{a as b,_ as x}from"./_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__loadShare__react__loadShare__.js-Bdlvn8vS.js";import"./vite-preload-helper-Dp1pzeXC.js";import"./index-2HOz3j7B.js";var p={exports:{}};const f=b||x,s=f.createElement,C=`
|
|
2
2
|
.shoppingroute-editor-row {
|
|
3
3
|
display: grid;
|
|
4
4
|
grid-template-columns: 48px minmax(160px, 1fr) 144px;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-2HOz3j7B.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{_ as d}from"./vite-preload-helper-Dp1pzeXC.js";const c="__mf_module_cache__";globalThis[c]||={share:{},remote:{}};globalThis[c].share||={};globalThis[c].remote||={};const n=globalThis[c];for(const e of Object.keys(n.share))if(e.startsWith("default:")){const a=e.slice(8);n.share[a]===void 0&&(n.share[a]=n.share[e])}else if(!e.includes(":")){const a="default:"+e;n.share[a]===void 0&&(n.share[a]=n.share[e])}const h=(e,a,o,r)=>{const t=(Array.isArray(r)?r[0]:r)||"default",i=a||!o?e:e+"@"+o,l={canonical:t+":"+i};return t==="default"&&(l.aliases=[i]),l},_=(e,a)=>{const o=e[a.canonical];if(o!==void 0)return o;const r=a.aliases||[];for(const s of r){if(!Object.prototype.hasOwnProperty.call(e,s))continue;const t=e[s];if(t!==void 0)return e[a.canonical]=t,t}},f=[["react",()=>d(()=>import("./_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__loadShare__react__loadShare__.js-Bdlvn8vS.js").then(e=>e._),[],import.meta.url)]];async function m(){if(f.length===0)return;const{usedShared:e}=await d(async()=>{const{usedShared:a}=await import("./_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteMarketsSet__mf_owner__1-CdXcBfjG.js");return{usedShared:a}},__vite__mapDeps([0]),import.meta.url);await Promise.all(f.map(async([a,o])=>{var t,i;const r=e[a];if(!r||r.materialize===!1||r.treeShaking||((t=r.shareConfig)==null?void 0:t.import)===!1)return;const s=h(a,(i=r.shareConfig)==null?void 0:i.singleton,r.version,r.scope);_(n.share,s)===void 0&&await o().catch(l=>console.warn("[module-federation] shared preload failed:",a,l))}))}export{m as preloadPendingShares};
|