iobroker.shoppingroute 0.5.2 → 0.6.0
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 +48 -10
- package/README_DE.md +61 -8
- package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteAdminSet__mf_owner__1-B8ehY5g2.js +1 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__138890973911960__loadShare__shared-DZTxWNS7.js +1 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__138890973911960__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
- package/admin/custom/assets/dist-BkS8HKl2.js +1 -0
- package/admin/custom/assets/helpers-ClFTp7rx.js +1 -0
- package/admin/custom/assets/hostInit-BOeMz1zp.js +1 -0
- package/admin/custom/assets/pendingShares-pgb2SN6l.js +2 -0
- package/admin/custom/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/admin/custom/assets/route-editor-components-BqBsw0ZO.js +64 -0
- package/admin/custom/assets/utils-D1AcFl0O.js +4 -0
- package/admin/custom/assets/vite-preload-helper-BbbETgeG.js +1 -0
- package/admin/custom/catalogManager/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteCatalogSet__mf_owner__1-BpyKyGXk.js +1 -0
- package/admin/custom/catalogManager/assets/_virtual_mf___mfe_internal__ShoppingRouteCatalogSet__mf_owner__212380770976295__loadShare__shared-DsBXfGks.js +1 -0
- package/admin/custom/catalogManager/assets/_virtual_mf___mfe_internal__ShoppingRouteCatalogSet__mf_owner__212380770976295__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
- package/admin/custom/catalogManager/assets/catalog-manager-components-CFKVExet.js +156 -0
- package/admin/custom/catalogManager/assets/dist-BkS8HKl2.js +1 -0
- package/admin/custom/catalogManager/assets/helpers-ClFTp7rx.js +1 -0
- package/admin/custom/catalogManager/assets/hostInit-BZ0mepnS.js +1 -0
- package/admin/custom/catalogManager/assets/pendingShares-CKZoF8J7.js +2 -0
- package/admin/custom/catalogManager/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/admin/custom/catalogManager/assets/utils-D1AcFl0O.js +4 -0
- package/admin/custom/catalogManager/assets/vite-preload-helper-BbbETgeG.js +1 -0
- package/admin/custom/catalogManager/catalogManager.js +2 -3
- package/admin/custom/catalogManager/mf-manifest.json +1 -1
- package/admin/custom/catalogManager/mf-stats.json +1 -1
- package/admin/custom/markets/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteMarketsSet__mf_owner__1-D0qi__tw.js +1 -0
- package/admin/custom/markets/assets/_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__73495435433483__loadShare__shared-BtDUBZDl.js +1 -0
- package/admin/custom/markets/assets/_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__73495435433483__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
- package/admin/custom/markets/assets/dist-BkS8HKl2.js +1 -0
- package/admin/custom/markets/assets/helpers-ClFTp7rx.js +1 -0
- package/admin/custom/markets/assets/hostInit-Bi42FhDI.js +1 -0
- package/admin/custom/markets/assets/markets-editor-components-BV2GcNV2.js +67 -0
- package/admin/custom/markets/assets/pendingShares-CRAxj_6i.js +2 -0
- package/admin/custom/markets/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/admin/custom/markets/assets/utils-D1AcFl0O.js +4 -0
- package/admin/custom/markets/assets/vite-preload-helper-BbbETgeG.js +1 -0
- package/admin/custom/markets/marketsEditor.js +2 -3
- 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-BGTAKiy6.js +1 -0
- package/admin/custom/productGroups/assets/_virtual_mf___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__235177594606940__loadShare__shared-CoePXK3R.js +1 -0
- package/admin/custom/productGroups/assets/_virtual_mf___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__235177594606940__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
- package/admin/custom/productGroups/assets/dist-BkS8HKl2.js +1 -0
- package/admin/custom/productGroups/assets/helpers-ClFTp7rx.js +1 -0
- package/admin/custom/productGroups/assets/hostInit-sTqINWmb.js +1 -0
- package/admin/custom/productGroups/assets/pendingShares-pXbOc5sm.js +2 -0
- package/admin/custom/productGroups/assets/product-groups-editor-components-CBZnA_fZ.js +44 -0
- package/admin/custom/productGroups/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/admin/custom/productGroups/assets/utils-D1AcFl0O.js +4 -0
- package/admin/custom/productGroups/assets/vite-preload-helper-BbbETgeG.js +1 -0
- 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 -3
- package/admin/custom/review/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-KfOzwFEK.js +1 -0
- package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__268299877205720__loadShare__shared-CrhGiAgf.js +1 -0
- package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__268299877205720__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
- package/admin/custom/review/assets/dist-BkS8HKl2.js +1 -0
- package/admin/custom/review/assets/helpers-ClFTp7rx.js +1 -0
- package/admin/custom/review/assets/hostInit-_7Su3ma3.js +1 -0
- package/admin/custom/review/assets/pendingShares-Cr47Emqi.js +2 -0
- package/admin/custom/review/assets/review-editor-components-DYzZeptf.js +30 -0
- package/admin/custom/review/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/admin/custom/review/assets/utils-D1AcFl0O.js +4 -0
- package/admin/custom/review/assets/vite-preload-helper-BbbETgeG.js +1 -0
- 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 -3
- package/admin/custom/routeEditor.js +2 -3
- package/admin/custom/shoppingList/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-CeTtKHTc.js +1 -0
- package/admin/custom/shoppingList/assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__88072081547630__loadShare__shared-DnxN9Y7t.js +1 -0
- package/admin/custom/shoppingList/assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__88072081547630__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
- package/admin/custom/shoppingList/assets/dist-BkS8HKl2.js +1 -0
- package/admin/custom/shoppingList/assets/helpers-ClFTp7rx.js +1 -0
- package/admin/custom/shoppingList/assets/hostInit-DWH9o7-L.js +1 -0
- package/admin/custom/shoppingList/assets/pendingShares--q_HS9jG.js +2 -0
- package/admin/custom/shoppingList/assets/rolldown-runtime-XKyaHtl9.js +1 -0
- package/admin/custom/shoppingList/assets/shopping-list-editor-components-x_Khx0cM.js +73 -0
- package/admin/custom/shoppingList/assets/utils-D1AcFl0O.js +4 -0
- package/admin/custom/shoppingList/assets/vite-preload-helper-BbbETgeG.js +1 -0
- 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 -3
- package/admin/i18n/de.json +12 -1
- package/admin/i18n/en.json +12 -1
- package/admin/i18n/es.json +12 -1
- package/admin/i18n/fr.json +12 -1
- package/admin/i18n/it.json +12 -1
- package/admin/i18n/nl.json +12 -1
- package/admin/i18n/pl.json +12 -1
- package/admin/i18n/pt.json +12 -1
- package/admin/i18n/ru.json +12 -1
- package/admin/i18n/uk.json +12 -1
- package/admin/i18n/zh-cn.json +12 -1
- package/admin/jsonConfig.json +89 -0
- package/build/lib/bring-io.js +20 -0
- package/build/lib/bring-sync.js +177 -0
- package/build/lib/mobile-move.js +5 -4
- package/build/lib/parser.js +43 -11
- package/build/main.js +308 -40
- package/io-package.json +32 -28
- package/package.json +4 -4
- package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteAdminSet__mf_owner__1-u-WAs2m5.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__loadShare__shared-Cn8eOhIC.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__prebuild__react__prebuild__-Dj6dAy_K.js +0 -9
- package/admin/custom/assets/helpers-rsP3EuoI.js +0 -1
- package/admin/custom/assets/hostInit-C9k-trSr.js +0 -1
- package/admin/custom/assets/index-CWGnoEzs.js +0 -7
- package/admin/custom/assets/index-CqrYeeB9.js +0 -1
- package/admin/custom/assets/pendingShares-BhyJ1VpE.js +0 -2
- package/admin/custom/assets/route-editor-components-Bl6m1_2H.js +0 -64
- package/admin/custom/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
- package/admin/custom/catalogManager/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteCatalogSet__mf_owner__1-CAPCB9Xc.js +0 -1
- package/admin/custom/catalogManager/assets/_virtual_mf___mfe_internal__ShoppingRouteCatalogSet__mf_owner__270978611965008__loadShare__shared-jSwkJZrB.js +0 -1
- package/admin/custom/catalogManager/assets/_virtual_mf___mfe_internal__ShoppingRouteCatalogSet__mf_owner__270978611965008__prebuild__react__prebuild__-B27G_6sf.js +0 -9
- package/admin/custom/catalogManager/assets/catalog-manager-components-0s0iqtJs.js +0 -156
- package/admin/custom/catalogManager/assets/helpers-rsP3EuoI.js +0 -1
- package/admin/custom/catalogManager/assets/hostInit-CHVxebwT.js +0 -1
- package/admin/custom/catalogManager/assets/index-CWGnoEzs.js +0 -7
- package/admin/custom/catalogManager/assets/index-CqrYeeB9.js +0 -1
- package/admin/custom/catalogManager/assets/pendingShares-CjAiEeBw.js +0 -2
- package/admin/custom/catalogManager/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
- package/admin/custom/markets/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteMarketsSet__mf_owner__1-CzqI6H3Y.js +0 -1
- package/admin/custom/markets/assets/_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__loadShare__shared-Ci7WxzQy.js +0 -1
- package/admin/custom/markets/assets/_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__prebuild__react__prebuild__-B3doRuSR.js +0 -9
- package/admin/custom/markets/assets/helpers-rsP3EuoI.js +0 -1
- package/admin/custom/markets/assets/hostInit-C2rD9w0N.js +0 -1
- package/admin/custom/markets/assets/index-CWGnoEzs.js +0 -7
- package/admin/custom/markets/assets/index-CqrYeeB9.js +0 -1
- package/admin/custom/markets/assets/markets-editor-components-DFBAhACl.js +0 -67
- package/admin/custom/markets/assets/pendingShares-DQ3krbvN.js +0 -2
- package/admin/custom/markets/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
- package/admin/custom/productGroups/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__1-D92JU0oD.js +0 -1
- package/admin/custom/productGroups/assets/_virtual_mf___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__260837768108578__loadShare__shared-gSY_bOGR.js +0 -1
- package/admin/custom/productGroups/assets/_virtual_mf___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__260837768108578__prebuild__react__prebuild__-DzLn5BC6.js +0 -9
- package/admin/custom/productGroups/assets/helpers-rsP3EuoI.js +0 -1
- package/admin/custom/productGroups/assets/hostInit-D3L2o0WN.js +0 -1
- package/admin/custom/productGroups/assets/index-CWGnoEzs.js +0 -7
- package/admin/custom/productGroups/assets/index-CqrYeeB9.js +0 -1
- package/admin/custom/productGroups/assets/pendingShares-JH5TAaZe.js +0 -2
- package/admin/custom/productGroups/assets/product-groups-editor-components-B5P8jYvF.js +0 -44
- package/admin/custom/productGroups/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
- package/admin/custom/review/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-DxF4tUV2.js +0 -1
- package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__252153816870476__loadShare__shared-BMk8_6UE.js +0 -1
- package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__252153816870476__prebuild__react__prebuild__-BJ0P2qtm.js +0 -9
- package/admin/custom/review/assets/helpers-rsP3EuoI.js +0 -1
- package/admin/custom/review/assets/hostInit-g6dZHhG7.js +0 -1
- package/admin/custom/review/assets/index-CWGnoEzs.js +0 -7
- package/admin/custom/review/assets/index-CqrYeeB9.js +0 -1
- package/admin/custom/review/assets/pendingShares-CEtt_VY7.js +0 -2
- package/admin/custom/review/assets/review-editor-components-Fq4TZE0H.js +0 -30
- package/admin/custom/review/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
- package/admin/custom/shoppingList/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-Cnw_rV5D.js +0 -1
- package/admin/custom/shoppingList/assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__46505510294969__loadShare__shared-CsjZ4mES.js +0 -1
- package/admin/custom/shoppingList/assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__46505510294969__prebuild__react__prebuild__-wqzjuP-r.js +0 -9
- package/admin/custom/shoppingList/assets/helpers-rsP3EuoI.js +0 -1
- package/admin/custom/shoppingList/assets/hostInit-DwkVTjxn.js +0 -1
- package/admin/custom/shoppingList/assets/index-CWGnoEzs.js +0 -7
- package/admin/custom/shoppingList/assets/index-CqrYeeB9.js +0 -1
- package/admin/custom/shoppingList/assets/pendingShares-Cezvw3_2.js +0 -2
- package/admin/custom/shoppingList/assets/shopping-list-editor-components-DkvnBuqv.js +0 -73
- package/admin/custom/shoppingList/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT license"></a>
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
|
-
> **
|
|
20
|
+
> **Current version: 0.6.0 (2026-10-26).**
|
|
21
21
|
> ShoppingRoute is available in the ioBroker **latest** repository.
|
|
22
22
|
|
|
23
23
|
## What ShoppingRoute does
|
|
@@ -58,21 +58,38 @@ Community and support:
|
|
|
58
58
|
|
|
59
59
|
Adapter settings and the backup utility include all 11 standard ioBroker Admin languages. Shopping-list feedback is available in German and English.
|
|
60
60
|
|
|
61
|
-
##
|
|
61
|
+
## New in 0.6.0: Bring! shopping lists and ShoppingRoute ordering
|
|
62
|
+
|
|
63
|
+
ShoppingRoute 0.6.0 adds an optional bridge to the existing ioBroker **Bring!** adapter. Existing Alexa users are unaffected because the feature defaults to **Off**. Configure the integration under the new **Bring! integration** settings tab.
|
|
64
|
+
|
|
65
|
+
- **Off:** Original ShoppingRoute behaviour; Alexa only.
|
|
66
|
+
- **Bring! → ShoppingRoute/Alexa:** One-way import/mirroring from a selected Bring! list to a selected Alexa list, including propagation of subsequently completed Bring! items that were previously mirrored.
|
|
67
|
+
- **Bring! only:** Use the existing ShoppingRoute list view for a read-only preview grouped by market and walking route, even without Alexa.
|
|
68
|
+
- **Bring! ↔ Alexa:** Two-way propagation of new and completed items. The initial merge is additive only; existing entries are never deleted on first connection.
|
|
69
|
+
|
|
70
|
+
**Short Alexa voice command for Bring! users (two-way sync):** Instead of invoking the Bring! skill explicitly, simply say the normal shopping-list command, e.g. **“Alexa, add milk to my shopping list.”** ShoppingRoute recognizes the Alexa list item, applies its configured market/route sorting and mirrors the product into Bring! at the next confirmed synchronization. Completing it in Bring! removes it from the active Alexa list (a delete, not an Alexa completed checkbox). The **Bring! ↔ Alexa** mode must be enabled and both providers must be reachable without sync conflicts.
|
|
71
|
+
|
|
72
|
+
Bring! cannot freely rearrange individual shopping items inside its own app. Category order is configurable **in Bring! settings**, but ShoppingRoute's exact route order is available only in the ShoppingRoute view or Alexa. This restriction cannot be bypassed reliably with the documented Bring! adapter API.
|
|
73
|
+
|
|
74
|
+
Both provider snapshots are checked before writes. Ambiguous duplicates, mismatching specifications, stale Bring! data, write limits or conflicting concurrent changes trigger a safety stop instead of guessed deletions. A persisted transaction journal requires positive confirmation from both providers before accepting the next set of changes. Dry Run prevents **all writes to both apps**. Status and route preview are available in `info.bringSyncStatus` and `info.bringSyncPreview`; recovery details are stored in `data.bringSyncJournal`.
|
|
75
|
+
|
|
76
|
+
To enable Bring! (start with a test list): save a connected Bring! adapter instance, choose its list, optionally select an enabled Alexa target list, verify the Dry Run first, and only then enable the desired mode. No additional Bring! credentials are required by ShoppingRoute.
|
|
77
|
+
|
|
78
|
+
**Testing (2026-10-26):** Automated bridge, sorting and safety tests pass. User testing confirms that Bring! lists are imported and newly added Bring! items appear in ShoppingRoute and are assigned on the next sort. Bring! itself cannot reorder individual articles. Live completion/deletion and all bidirectional conflict scenarios are not confirmed by this user test; start with backed-up test lists before enabling two-way mode.
|
|
79
|
+
|
|
80
|
+
## What's new in 0.5.3
|
|
62
81
|
|
|
63
82
|
**Control market assignments from the regular Alexa shopping list on your phone — no extra app and no access to the ioBroker Admin interface required.**
|
|
64
83
|
|
|
65
|
-
**Four
|
|
84
|
+
**Four actions (German/English letters: W/C, F/E, H/U, R/D):** `13WNETTO` moves item 13 **temporarily** to NETTO, while `13FNETTO` assigns it there **permanently**. `25H3` moves item 25 **three real product positions up**, and `25R3` moves it **three down**, within the same store only. Store headings are not counted; H/R do not modify stored walking routes or product groups.
|
|
66
85
|
|
|
67
|
-
Add a temporary command as a normal list item using `NNWMARKET`, for example `13WNETTO`: `13` is the two-digit prefix currently shown before the product, `W` means move, and `NETTO` is a configured destination market. Several commands may be entered before the next sort. Case does not matter; unambiguous small typos in market names are corrected.
|
|
86
|
+
Add a temporary command as a normal list item using `NNWMARKET`, for example `13WNETTO`: `13` is the two-digit prefix currently shown before the product, `W/C` means temporary move, and `NETTO` is a configured destination market. Several commands may be entered before the next sort. Case does not matter; unambiguous small typos in market names are corrected.
|
|
68
87
|
|
|
69
88
|
**Please be patient:** A new sort **never happens immediately**. Depending on internet connection, speed and Alexa processing, it may take **up to five minutes**. It is normal for the command to remain visible while processing. **If it is still present after five minutes**, check the internet/Alexa connection and the item number and store name. Mark an incorrect command completed in Alexa and enter it again correctly.
|
|
70
89
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
This functionality is being prepared in 0.5.2; the released 0.5.1 remains unchanged on npm.
|
|
90
|
+
A **W** move affects only the current shopping item and does not change its learned default market. A **F** command permanently updates the product's default market. Successfully processed commands disappear from the Alexa list. If a command remains, check the number and market; mark the incorrect command as completed in Alexa and enter a corrected one. **Market-heading numbers cannot be used to move products.** Ambiguous or invalid commands are never guessed.
|
|
74
91
|
|
|
75
|
-
##
|
|
92
|
+
## Previous improvements (0.5.1)
|
|
76
93
|
|
|
77
94
|
This release fixes the saving and moving problems reported with the new management page and makes shopping from a phone more comfortable:
|
|
78
95
|
|
|
@@ -86,6 +103,10 @@ This release fixes the saving and moving problems reported with the new manageme
|
|
|
86
103
|
|
|
87
104
|
Open **ShoppingRoute** in the ioBroker sidebar on your phone. Use the `⋮⋮` handle to drag, or use the arrow buttons and market selector. After updating, fully reload the management page once to load the new interface. Alexa list writes still use the configured rate limits, Dry Run and verification safeguards.
|
|
88
105
|
|
|
106
|
+
## Manual shopping-list changes
|
|
107
|
+
|
|
108
|
+
Manual shopping-list moves stay in a browser draft. Move all required items, then press **Transfer changes to Alexa**. Only this button starts one verified Alexa sorting transaction for the complete batch. A failed transfer keeps the draft; **Discard changes** reloads the current list. While a draft is pending, switching lists, adding, deleting and resetting are disabled to preserve the draft. Reloading the same browser tab restores the draft when session storage is available.
|
|
109
|
+
|
|
89
110
|
## Main features
|
|
90
111
|
|
|
91
112
|
- dedicated **ShoppingRoute management page** in the ioBroker sidebar for shopping list, products, markets, product groups, routes, lists and review items
|
|
@@ -104,7 +125,7 @@ Open **ShoppingRoute** in the ioBroker sidebar on your phone. Use the `⋮⋮` h
|
|
|
104
125
|
- global, per-list and temporary priority markets
|
|
105
126
|
- optional market headings such as `═════ ALDI ═════`
|
|
106
127
|
- optional cross-market consolidation using a minimum-item threshold
|
|
107
|
-
- explicit
|
|
128
|
+
- a configured, enabled store name anywhere in an item (as a complete term) overrides the product's default store, with or without prepositions; explicit requests are never moved by store consolidation
|
|
108
129
|
|
|
109
130
|
#### Smart store consolidation – fewer stops, shorter shopping trips
|
|
110
131
|
|
|
@@ -202,7 +223,24 @@ Please use the [ioBroker tester thread](https://forum.iobroker.net/topic/85510/t
|
|
|
202
223
|
|
|
203
224
|
## Changelog
|
|
204
225
|
|
|
205
|
-
### 0.
|
|
226
|
+
### 0.6.0 (2026-10-26)
|
|
227
|
+
|
|
228
|
+
- Detect explicit store names anywhere in shopping-item text, without requiring prepositions; avoid guessing when multiple different stores are named.
|
|
229
|
+
|
|
230
|
+
- Collect manual shopping-list moves locally and transfer them together using **Transfer changes to Alexa**. Failed transfers retain the draft; batches are validated before writing.
|
|
231
|
+
|
|
232
|
+
- Opt-in Bring! bridge: one-way import, bidirectional item/completion sync, Bring!-only read-only route view.
|
|
233
|
+
- Crash-safe journal, verified remote snapshots, duplicate and specification conflict checks, bounded writes, full Dry Run support.
|
|
234
|
+
- Bring! integration tab translated into all eleven Admin languages, additional unit tests and updated bilingual documentation.
|
|
235
|
+
- Bring! app still sorts within its own categories and cannot accept arbitrary per-item walking-route order.
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
### 0.5.3 (2026-10-17)
|
|
239
|
+
|
|
240
|
+
- Adds bilingual command aliases: W/C temporary store, F/E permanent store, H/U up, R/D down.
|
|
241
|
+
- D now means down, while F replaces the former permanent D.
|
|
242
|
+
|
|
243
|
+
### 0.5.2 (2026-10-17)
|
|
206
244
|
|
|
207
245
|
- Add temporary market moves directly from the standard Alexa mobile shopping list via `NNWMARKET`.
|
|
208
246
|
- Process multiple commands, correct unambiguous market typos, and protect market headings and ambiguous item numbers.
|
package/README_DE.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**Aktuelle Version: 0.6.0 (26.10.2026).**
|
|
6
6
|
|
|
7
7
|
ShoppingRoute macht aus einer normalen Alexa-Einkaufsliste eine praktische Einkaufshilfe: **Alle Märkte können gemeinsam in einer einzigen Liste geführt oder bewusst auf mehrere Listen verteilt werden.** Das besondere Merkmal ist das frei einstellbare **Marktrouting**: Für jeden Markt legst du deinen persönlichen Laufweg durch die Abteilungen fest. Dadurch steht die Einkaufsliste in der Reihenfolge, in der du tatsächlich durch den Laden gehst – für weniger Zurücklaufen, weniger Suchen und **schnelleres, effizienteres Einkaufen**.
|
|
8
8
|
|
|
@@ -13,21 +13,57 @@ ShoppingRoute sortiert Alexa-Einkaufslisteneinträge nach Markt, Produktgruppe u
|
|
|
13
13
|
🇩🇪 [**Deutsche Bedienungsanleitung**](BEDIENUNGSANLEITUNG_DE.md)
|
|
14
14
|
🇬🇧 [**English user guide**](USER_GUIDE_EN.md)
|
|
15
15
|
|
|
16
|
-
## Neu in 0.
|
|
16
|
+
## Neu in 0.6.0: Bring!-Listen und ShoppingRoute-Sortierung
|
|
17
|
+
|
|
18
|
+
ShoppingRoute unterstützt zusätzlich den ioBroker-Adapter **bring.0** (Bring! 1.9.1) und kann eine ausgewählte Bring!-Liste mit einer Alexa-Einkaufsliste verknüpfen. Die Funktion ist **standardmäßig ausgeschaltet** und verändert bei einem normalen Update keine bestehenden Listen.
|
|
19
|
+
|
|
20
|
+
Die vier Betriebsarten stehen unter **Instanz-Einstellungen → Bring!-Integration**:
|
|
21
|
+
|
|
22
|
+
- **Aus:** ShoppingRoute arbeitet wie bisher ausschließlich mit Alexa.
|
|
23
|
+
- **Bring! → ShoppingRoute/Alexa:** Bring! ist die Quelle. Neue Bring!-Artikel werden nach Alexa übernommen; zuvor gespiegelte und anschließend in Bring! erledigte Artikel werden auch in Alexa entfernt. Alexa-eigene Artikel bleiben erhalten.
|
|
24
|
+
- **Nur Bring!:** ShoppingRoute zeigt die Bring!-Artikel auf seiner Verwaltungsseite nach Märkten, Produktgruppen und persönlichen Laufwegen sortiert an, ohne Alexa zu benötigen. Diese Ansicht ist absichtlich schreibgeschützt.
|
|
25
|
+
- **Bring! ↔ Alexa:** Neue Artikel und abgeschlossene Artikel werden in beide Richtungen abgeglichen. Beim **allerersten Abgleich** werden ausschließlich fehlende Einträge ergänzt; kein vorhandener Artikel wird gelöscht.
|
|
26
|
+
|
|
27
|
+
### Alexa-Sprachkurzbefehl für Bring!-Nutzer
|
|
28
|
+
|
|
29
|
+
**Mit aktiviertem Modus „Bring! ↔ Alexa“ genügt „Alexa, Milch auf die Einkaufsliste“.** Alexa legt den Artikel wie gewohnt auf ihre eigene Einkaufsliste. ShoppingRoute berücksichtigt die Markt- und Laufwegregeln und gleicht den Artikel anschließend mit Bring! ab. Der bisher nötige Umweg über „Alexa, sage Bring! …“ entfällt bei dieser Nutzung. Wird der Artikel später in Bring! als erledigt behandelt, entfernt ShoppingRoute ihn nach bestätigtem Abgleich aus der aktiven Alexa-Liste. Das ist eine Entfernung des Eintrags und kein Setzen eines Alexa-Erledigt-Häkchens. Voraussetzung sind aktivierte bidirektionale Synchronisation, erreichbare Dienste und konfliktfreie Listen.
|
|
30
|
+
|
|
31
|
+
### Wichtige Einschränkung von Bring!
|
|
32
|
+
|
|
33
|
+
**Bring! erlaubt keine freie Reihenfolge einzelner Artikel.** Seine App verwendet eigene Produktkategorien, deren Reihenfolge Nutzer dort einstellen können. ShoppingRoute zeigt daher die optimierte Reihenfolge in seiner eigenen Verwaltungsoberfläche, **nicht** als frei sortierte Reihenfolge innerhalb der Bring!-App. Eine identische Darstellung beider Apps wird nicht versprochen.
|
|
34
|
+
|
|
35
|
+
### Schutzmechanismen der Synchronisierung
|
|
36
|
+
|
|
37
|
+
- Vor jedem Abgleich werden bestätigte Bring!- und aktuelle Amazon-Listenstände geprüft. Bei nicht verfügbaren oder veralteten Daten wird **nicht geschrieben**.
|
|
38
|
+
- Bei doppelten Artikelnamen, widersprüchlichen Mengen/Spezifikationen oder uneindeutigen Änderungen stoppt der Abgleich. Unklarheiten werden nicht erraten.
|
|
39
|
+
- Ein dauerhaftes lokales Journal verhindert, dass ein unterbrochener Schreibvorgang nach Neustart unkontrolliert wiederholt wird. Vor einem neuen Schreiblauf müssen beide Seiten das Ergebnis des vorherigen bestätigen.
|
|
40
|
+
- Ein Schreiblauf verarbeitet höchstens 30 Aktionen; die bisherige Alexa-Grenze von 99 Einträgen und die eingestellten Amazon-Zugriffslimits gelten weiterhin.
|
|
41
|
+
- **Dry-Run** zeigt geplante Aktionen an, ohne etwas in Alexa oder Bring! zu verändern.
|
|
42
|
+
- Status: `shoppingroute.0.info.bringSyncStatus`; Bring!-Laufwegvorschau: `shoppingroute.0.info.bringSyncPreview`; Wiederherstellungsjournal: `shoppingroute.0.data.bringSyncJournal`.
|
|
43
|
+
|
|
44
|
+
Für die Einrichtung: Bring!-Instanz auswählen und speichern, Bring!-Liste auswählen, bei Verbindung zu Alexa eine aktivierte Zielliste angeben, zuerst Dry-Run prüfen und erst danach bewusst aktivieren. Die Bring!-Daten kommen aus der vorhandenen lokalen ioBroker-Instanz; ShoppingRoute benötigt kein eigenes Bring!-Passwort.
|
|
45
|
+
|
|
46
|
+
**Teststand (26.10.2026):** Die automatisierten Tests der Synchronisierung, Sortierung und Schutzmechanismen sind erfolgreich. Der Praxistest bestätigt die Übernahme von Bring!-Listen sowie neu in Bring! hinzugefügter Artikel, die beim nächsten Sortierlauf in ShoppingRoute eingeordnet werden. Eine freie Artikelsortierung innerhalb der Bring!-App ist technisch nicht möglich. Abschließen, Löschen und sämtliche Konfliktfälle des beidseitigen Live-Abgleichs wurden mit diesem Praxistest nicht bestätigt. Für den bidirektionalen Modus zunächst gesicherte Testlisten verwenden.
|
|
47
|
+
|
|
48
|
+
## Manuelle Einkaufslistenänderungen
|
|
49
|
+
|
|
50
|
+
Manuelle Verschiebungen in der Einkaufsliste bleiben zunächst als Entwurf im Browser. Verschiebe alle gewünschten Artikel und drücke dann **Änderungen an Alexa übertragen**. Erst dieser Button startet einen gemeinsamen, geprüften Alexa-Sortierlauf. Bei einem Fehler bleibt der Entwurf erhalten; **Änderungen verwerfen** lädt die aktuelle Liste neu. Solange Änderungen offen sind, sind Listenwechsel, Hinzufügen, Löschen und Zurücksetzen gesperrt, damit der Entwurf erhalten bleibt. Ein Neuladen desselben Browser-Tabs stellt den Entwurf bei verfügbarem Sitzungsspeicher wieder her.
|
|
51
|
+
|
|
52
|
+
## Neu in 0.5.3: Direktsteuerung in der Alexa-App
|
|
17
53
|
|
|
18
54
|
**Marktwechsel direkt in der normalen Alexa-Einkaufsliste auf dem Handy – ohne zusätzliche App und ohne Zugriff auf die ioBroker-Verwaltung.**
|
|
19
55
|
|
|
20
|
-
**Vier Handy-
|
|
56
|
+
**Vier Handy-Funktionen (deutsch/englisch: W/C, F/E, H/U, R/D):** `13WNETTO` wechselt Artikel 13 **vorübergehend** zu NETTO, `13FNETTO` ordnet ihn **dauerhaft** NETTO zu. `25H3` verschiebt Artikel 25 **drei echte Artikelpositionen nach oben**, `25R3` **drei nach unten** – jeweils nur innerhalb desselben Marktes, ohne Marktüberschriften mitzuzählen. H/R verändern keine gespeicherten Laufwege oder Produktgruppen.
|
|
21
57
|
|
|
22
58
|
Füge einen Steuerbefehl wie `13WNETTO` als normalen Listeneintrag hinzu: `13` ist die **aktuell sichtbare zweistellige Nummer vor dem Artikel**, `W` bedeutet Wechsel und `NETTO` ist ein bereits angelegter Zielmarkt. Du kannst mehrere Befehle hintereinander eingeben. Groß-/Kleinschreibung ist egal; eindeutige kleine Tippfehler im Marktnamen werden korrigiert.
|
|
23
59
|
|
|
24
60
|
**Bitte Geduld:** Ein neuer Sortiervorgang erfolgt **niemals sofort**. Abhängig von Internetverbindung, Geschwindigkeit und Alexa kann es **bis zu fünf Minuten** dauern. Solange der Befehl noch in der Einkaufsliste steht, ist das zunächst normal. **Erst nach fünf Minuten** Internet-/Alexa-Verbindung sowie Artikelnummer und Marktnamen prüfen. Bei einem Eingabefehler den Befehl in Alexa abhaken und korrigiert neu eingeben.
|
|
25
61
|
|
|
26
|
-
|
|
62
|
+
Ein Wechsel mit **W** gilt nur für diesen Einkauf; **F** ändert die dauerhafte Marktzuordnung. Die gespeicherte Produktzuordnung und die Lernfunktion bleiben unverändert. Erfolgreiche Steuerbefehle verschwinden aus der Liste. Bleibt ein Befehl stehen, Nummer und Markt prüfen, den falschen Befehl in Alexa abhaken und richtig neu eingeben. **Nummern vor Marktüberschriften können nicht zum Verschieben von Artikeln verwendet werden.** Bei mehrdeutigen Befehlen wird nichts geraten.
|
|
27
63
|
|
|
28
|
-
Die Funktion ist
|
|
64
|
+
Die Funktion ist seit der veröffentlichten Version 0.5.2 verfügbar.
|
|
29
65
|
|
|
30
|
-
##
|
|
66
|
+
## Frühere Verbesserungen (0.5.1)
|
|
31
67
|
|
|
32
68
|
Diese Version behebt die gemeldeten Speicher- und Verschiebefehler der neuen Verwaltungsseite. Im Mittelpunkt steht die Bedienung am Handy während des Einkaufs:
|
|
33
69
|
|
|
@@ -81,7 +117,7 @@ Rückmeldungen zu 0.5.1 bitte im bestehenden [Tester-Thread](https://forum.iobro
|
|
|
81
117
|
|
|
82
118
|
Bei der Marktzuordnung gilt:
|
|
83
119
|
|
|
84
|
-
1. ausdrücklich genannter Markt (`Milch
|
|
120
|
+
1. ausdrücklich genannter Markt an beliebiger Stelle im Artikelnamen (`Milch REWE`, `REWE Milch`, `Milch vom REWE`); ohne fest vorgeschriebene Bindewörter
|
|
85
121
|
2. Artikel-Standardmarkt
|
|
86
122
|
3. temporärer Prioritätsmarkt
|
|
87
123
|
4. Prioritätsmarkt der jeweiligen Alexa-Liste
|
|
@@ -125,7 +161,24 @@ ShoppingRoute wird unter der **[MIT-Lizenz](LICENSE)** veröffentlicht. Frühere
|
|
|
125
161
|
|
|
126
162
|
## Changelog
|
|
127
163
|
|
|
128
|
-
### 0.
|
|
164
|
+
### 0.6.0 (26.10.2026)
|
|
165
|
+
|
|
166
|
+
- Explizite Marktnamen werden als vollständige Begriffe an beliebiger Position im Artikel erkannt und haben stets Vorrang vor dem Standardmarkt; mehrdeutige Mehrfachnennungen werden nicht geraten.
|
|
167
|
+
|
|
168
|
+
- Manuelle Einkaufslisten-Verschiebungen sammeln und mit **Änderungen an Alexa übertragen** gemeinsam senden. Entwürfe bleiben bei Fehlern erhalten; der ganze Auftrag wird vor dem Schreiben geprüft.
|
|
169
|
+
|
|
170
|
+
- Optionale Bring!-Integration in vier Betriebsarten einschließlich einseitigem Import und bidirektionaler Synchronisierung.
|
|
171
|
+
- Sicherheit: Journal, Konflikt- und Duplikatprüfung, Dry-Run und begrenzte Schreibaktionen.
|
|
172
|
+
- Bring!-Laufwege als schreibgeschützte Ansicht für Nutzer ohne Alexa; Bring!-App kann einzelne Artikel nicht frei umsortieren.
|
|
173
|
+
- Adapter-Konfiguration in allen elf Admin-Sprachen, neue Regressionstests und aktualisierte deutsche/englische Dokumentation.
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
### 0.5.3 (2026-10-17)
|
|
177
|
+
|
|
178
|
+
- Deutsche und englische Befehle: W/C temporär, F/E dauerhaft, H/U hoch, R/D runter.
|
|
179
|
+
- D bedeutet nun Runter; F ersetzt das bisherige dauerhafte D.
|
|
180
|
+
|
|
181
|
+
### 0.5.2 (2026-10-17)
|
|
129
182
|
|
|
130
183
|
- Temporärer Marktwechsel über `NNWMARKT` direkt in der normalen Alexa-Handy-App.
|
|
131
184
|
- Mehrere Befehle pro Sortierlauf, eindeutige Tippfehlerkorrektur und Schutz vor ungültigen Artikelnummern.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./vite-preload-helper-BbbETgeG.js";import"./dist-BkS8HKl2.js";var t=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},n={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__138890973911960__prebuild__react__prebuild__-CTXDWPi7.js`),[],import.meta.url)},r={react:{name:`react`,version:`19.3.1`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`ShoppingRouteAdminSet`,canLiveRebind:!0,get(){let e=r.react;return e.lib?e.lib:(e.loading||=(async()=>{try{let{react:r}=n,i=t({...await r()});return i.__esModule!==!0&&Object.defineProperty(i,"__esModule",{value:!0,enumerable:!1}),e.lib=function(){return i},e.loaded=!0,e.lib}finally{e.loading=void 0}})(),e.loading)},shareConfig:{singleton:!0,requiredVersion:`>=18`,strictVersion:!1,eager:!1}}},i=[];export{i as usedRemotes,r as usedShared};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-XKyaHtl9.js";import{t}from"./vite-preload-helper-BbbETgeG.js";var n=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},r=Symbol.for(`module-federation.shared-cache-listeners`),i=e=>{let t=e[r];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,r,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},a=(e,t,n)=>{let r=i(e);(r[t.canonical]||=new Set).add(n)},o=Symbol.for(`module-federation.shared-cache-owners`),ee=e=>{let t=e[o];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,o,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},s=e=>{let t=[e,e==null?void 0:e.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},te=(e,t)=>{if(e===t)return!0;let n=s(e),r=s(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},c=(e,t,i,a)=>{var s;let c=n(e,t);if(c!==void 0&&te(c,i))return i;e[t.canonical]=i;let l=t.aliases||[];for(let t of l)Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0});let u=e[o];a===void 0?u&&delete u[t.canonical]:ee(e)[t.canonical]=a;let d=(s=e[r])==null?void 0:s[t.canonical];if(d)for(let e of d)e(i);return i},l=e({Activity:()=>h,Children:()=>g,Component:()=>_,Fragment:()=>v,Profiler:()=>y,PureComponent:()=>b,StrictMode:()=>x,Suspense:()=>S,ViewTransition:()=>C,__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE:()=>w,__COMPILER_RUNTIME:()=>T,__moduleExports:()=>$,addTransitionType:()=>E,cache:()=>D,cacheSignal:()=>O,cloneElement:()=>k,createContext:()=>A,createElement:()=>j,createRef:()=>M,default:()=>m,forwardRef:()=>N,isValidElement:()=>P,lazy:()=>F,memo:()=>ae,startTransition:()=>I,unstable_useCacheRefresh:()=>L,use:()=>R,useActionState:()=>z,useCallback:()=>B,useContext:()=>V,useDebugValue:()=>H,useDeferredValue:()=>U,useEffect:()=>W,useEffectEvent:()=>G,useId:()=>K,useImperativeHandle:()=>q,useInsertionEffect:()=>J,useLayoutEffect:()=>Y,useMemo:()=>X,useOptimistic:()=>oe,useReducer:()=>se,useRef:()=>ce,useState:()=>Z,useSyncExternalStore:()=>le,useTransition:()=>ue,version:()=>de}),u=`__mf_init__virtual:mf:__mfe_internal__ShoppingRouteAdminSet__mf_owner__138890973911960__mf_v__runtimeInit__mf_v__.js__`,d=globalThis[u];if(!d){let e,t,n=new Promise((n,r)=>{e=n,t=r});d=globalThis[u]={initPromise:n,initResolve:e,initReject:t}}var ne=d.initPromise,f=`__mf_module_cache__`;globalThis[f]||={share:{},remote:{}},globalThis[f].share||={},globalThis[f].remote||={};var p=globalThis[f],re=e=>{let t=p.pendingShareLoads||=[];t.push(e);let n=()=>{let n=t.indexOf(e);n!==-1&&t.splice(n,1)};return e.then(n,n),e};for(let e of Object.keys(p.share))if(e.startsWith(`default:`)){let t=e.slice(8);p.share[t]===void 0&&(p.share[t]=p.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;p.share[t]===void 0&&(p.share[t]=p.share[e])}var ie=e=>{let t=(()=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`)break;let n=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(n.length>0&&n.some(e=>e!==void 0))break;t=e}return t})();return t&&Object.getPrototypeOf(t)===null?Object.assign({},t):t},m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,ae,I,L,R,z,B,V,H,U,W,G,K,q,J,Y,X,oe,se,ce,Z,le,ue,de,Q=e=>{$=e,h=e.Activity,g=e.Children,_=e.Component,v=e.Fragment,y=e.Profiler,b=e.PureComponent,x=e.StrictMode,S=e.Suspense,C=e.ViewTransition,w=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=e.__COMPILER_RUNTIME,E=e.addTransitionType,D=e.cache,O=e.cacheSignal,k=e.cloneElement,A=e.createContext,j=e.createElement,M=e.createRef,N=e.forwardRef,P=e.isValidElement,F=e.lazy,ae=e.memo,I=e.startTransition,L=e.unstable_useCacheRefresh,R=e.use,z=e.useActionState,B=e.useCallback,V=e.useContext,H=e.useDebugValue,U=e.useDeferredValue,W=e.useEffect,G=e.useEffectEvent,K=e.useId,q=e.useImperativeHandle,J=e.useInsertionEffect,Y=e.useLayoutEffect,X=e.useMemo,oe=e.useOptimistic,se=e.useReducer,ce=e.useRef,Z=e.useState,le=e.useSyncExternalStore,ue=e.useTransition,de=e.version,m=e.default??e};a(p.share,{canonical:`default:react`,aliases:[`react`]},Q);var $=n(p.share,{canonical:`default:react`,aliases:[`react`]});$===void 0?re(ne.then(()=>{if($=n(p.share,{canonical:`default:react`,aliases:[`react`]}),$!==void 0)Q($);else return t(()=>import(`./_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__138890973911960__prebuild__react__prebuild__-CTXDWPi7.js`).then(e=>{$=ie(e),c(p.share,{canonical:`default:react`,aliases:[`react`]},$,`ShoppingRouteAdminSet`)}),[],import.meta.url)})):Q($);export{l as n,m as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,t}from"./rolldown-runtime-XKyaHtl9.js";var n=t((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var j=/\/+/g;function M(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function N(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function P(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,P(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+M(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(j,`$&/`)+`/`),P(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(j,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u<e.length;u++)a=e[u],s=l+M(a,u),c+=P(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+M(a,u++),c+=P(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return P(N(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function F(e,t,n){if(e==null)return e;var r=[],i=0;return P(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function I(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var L=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function R(e){var t=T.T,n={};n.types=t===null?null:t.types,T.T=n;try{var r=e(),i=T.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(w,L)}catch(e){L(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),T.T=t}}function z(e){var t=T.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else R(z.bind(null,e))}var B={map:F,forEach:function(e,t,n){F(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return F(e,function(){t++}),t},toArray:function(e){return F(e,function(e){return e})||[]},only:function(e){if(!k(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=B,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=T,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return T.H.useMemoCache(e)}},e.addTransitionType=z,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!E.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return D(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)E.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return D(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=k,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:I}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=R,e.unstable_useCacheRefresh=function(){return T.H.useCacheRefresh()},e.use=function(e){return T.H.use(e)},e.useActionState=function(e,t,n){return T.H.useActionState(e,t,n)},e.useCallback=function(e,t){return T.H.useCallback(e,t)},e.useContext=function(e){return T.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return T.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return T.H.useEffect(e,t)},e.useEffectEvent=function(e){return T.H.useEffectEvent(e)},e.useId=function(){return T.H.useId()},e.useImperativeHandle=function(e,t,n){return T.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return T.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return T.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return T.H.useMemo(e,t)},e.useOptimistic=function(e,t){return T.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return T.H.useReducer(e,t,n)},e.useRef=function(e){return T.H.useRef(e)},e.useState=function(e){return T.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return T.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return T.H.useTransition()},e.version=`19.3.1`})),r=e(t(((e,t)=>{t.exports=n()}))()),i=r,a=i.Activity,o=i.Children,s=i.Component,c=i.Fragment,l=i.Profiler,u=i.PureComponent,d=i.StrictMode,f=i.Suspense,p=i.ViewTransition,m=i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,h=i.__COMPILER_RUNTIME,g=i.addTransitionType,_=i.cache,v=i.cacheSignal,y=i.cloneElement,b=i.createContext,x=i.createElement,S=i.createRef,C=i.forwardRef,w=i.isValidElement,T=i.lazy,E=i.memo,D=i.startTransition,O=i.unstable_useCacheRefresh,k=i.use,A=i.useActionState,j=i.useCallback,M=i.useContext,N=i.useDebugValue,P=i.useDeferredValue,F=i.useEffect,I=i.useEffectEvent,L=i.useId,R=i.useImperativeHandle,z=i.useInsertionEffect,B=i.useLayoutEffect,V=i.useMemo,H=i.useOptimistic,U=i.useReducer,W=i.useRef,G=i.useState,K=i.useSyncExternalStore,q=i.useTransition,J=i.version,Y=Reflect.get(r,`default`)??r;export{a as Activity,o as Children,s as Component,c as Fragment,l as Profiler,u as PureComponent,d as StrictMode,f as Suspense,p as ViewTransition,m as __CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,h as __COMPILER_RUNTIME,g as addTransitionType,_ as cache,v as cacheSignal,y as cloneElement,b as createContext,x as createElement,S as createRef,Y as default,C as forwardRef,w as isValidElement,T as lazy,E as memo,D as startTransition,O as unstable_useCacheRefresh,k as use,A as useActionState,j as useCallback,M as useContext,N as useDebugValue,P as useDeferredValue,F as useEffect,I as useEffectEvent,L as useId,R as useImperativeHandle,z as useInsertionEffect,B as useLayoutEffect,V as useMemo,H as useOptimistic,U as useReducer,W as useRef,G as useState,K as useSyncExternalStore,q as useTransition,J as version};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,i as t,o as n,r,t as i}from"./utils-D1AcFl0O.js";function a(e){let i=new((t())||r)({id:`${e.name}@${e.version||Date.now()}`,...e});return n(i),i}var o=null;function s(e){let t=i(e.name,e.version),n={...e,id:e.id||``};return t?(t.initOptions(n),o||=t,t):(o=a(n),o)}e(r);export{s as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./utils-D1AcFl0O.js";({...e.global});var t=e.share;e.utils;export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./vite-preload-helper-BbbETgeG.js";import{t}from"./helpers-ClFTp7rx.js";var n=`__mf_module_cache__`;globalThis[n]||={share:{},remote:{}},globalThis[n].share||={},globalThis[n].remote||={};var r=globalThis[n];for(let e of Object.keys(r.share))if(e.startsWith(`default:`)){let t=e.slice(8);r.share[t]===void 0&&(r.share[t]=r.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;r.share[t]===void 0&&(r.share[t]=r.share[e])}var i;async function a(){return i||=(async()=>{let n=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},i=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},a=Symbol.for(`module-federation.shared-cache-listeners`),o=Symbol.for(`module-federation.shared-cache-owners`),s=e=>{let t=e[o];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,o,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},c=(e,t)=>{var n;return(n=e[o])==null?void 0:n[t.canonical]},l=e=>{let t=[e,e==null?void 0:e.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},u=(e,t)=>{if(e===t)return!0;let n=l(e),r=l(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},d=(e,t,n,r)=>{var c;let l=i(e,t);if(l!==void 0&&u(l,n))return n;e[t.canonical]=n;let d=t.aliases||[];for(let t of d)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let f=e[o];r===void 0?f&&delete f[t.canonical]:s(e)[t.canonical]=r;let p=(c=e[a])==null?void 0:c[t.canonical];if(p)for(let e of p)e(n);return n},f=await(await e(()=>import(`../routeEditor.js`),[],import.meta.url)).init(),{usedShared:p}=await e(async()=>{let{usedShared:e}=await import(`./_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteAdminSet__mf_owner__1-B8ehY5g2.js`);return{usedShared:e}},[],import.meta.url),m=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},h=(e,t)=>y(t).some(n=>{var r;return Object.keys(((r=f.shareScopeMap)==null||(r=r[n])==null?void 0:r[e])||{}).some(e=>e!==t.version)}),g=[[`react`]],_=Symbol(`mf.originalSharedProvider`),v={emit:e=>e},y=e=>Array.isArray(e.scope)?e.scope:[e.scope||`default`],b=(e,t)=>{if(t!==`version-first`)return e;let n={};for(let[t,r]of Object.entries(e))n[t]=Object.assign({},r,{[_]:r});return n},x=(e,n,r,i)=>{var a;if(!e||!r)return;let o=Object.fromEntries(Object.entries(e).filter(([,e])=>{var t;return(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}));if(Object.keys(o).length===0)return;let s=y(r),c=b(o,i),l={};for(let e of s)l[e||`default`]={[n]:c};let u=(a=t.getRegisteredShare(l,n,{...r,scope:s,strategy:i},v))==null?void 0:a.shared;return(u==null?void 0:u[_])||u},S=(e,t,n,r)=>{var i;return(i=n.shareConfig)!=null&&i.singleton?Object.values(e||{}).some(e=>{var t;return(e==null||(t=e.shareConfig)==null?void 0:t.import)!==!1}):!!x(e,t,{...n,scope:[r]},`version-first`)};for(let e of g)await Promise.all(e.map(async e=>{var t,a,o,s;let l=p[e];if(!l||l.materialize===!1&&!l.lazy||l.treeShaking)return;let u=n(e,(t=l.shareConfig)==null?void 0:t.singleton,l.version,l.scope);if(!(i(r.share,u)!==void 0&&(!((a=l.shareConfig)!=null&&a.singleton)&&c(r.share,u)===`ShoppingRouteAdminSet`||(o=l.shareConfig)!=null&&o.singleton&&!h(e,l)))){if(((s=l.shareConfig)==null?void 0:s.import)===!1){let t=y(l),n=t=>{var n;return!S((n=f.shareScopeMap)==null||(n=n[t])==null?void 0:n[e],e,l,t)};if(t.some(n)){var g;if(!f.__mfKeepAdoptedProviders){var _,v;f.__mfKeepAdoptedProviders=!0,(_=f.sharedHandler)==null||(_=_.hooks)==null||(_=_.lifecycle)==null||(_=_.afterRegisterShare)==null||(v=_.on)==null||v.call(_,e=>{var t,n,r;let{shared:i,previousShared:a,registeredShared:o}=e||{},s=(t=f.shareScopeMap)==null||(t=t[e.scope])==null?void 0:t[e.pkgName];if(i&&s){if(((n=i.shareConfig)==null?void 0:n.import)!==!1){var c;o!==i&&(o==null||(c=o.shareConfig)==null?void 0:c.import)===!1&&!o.loaded&&s[i.version]===o&&(s[i.version]=i)}else o===i&&a&&((r=a.shareConfig)==null?void 0:r.import)!==!1&&s[i.version]===i&&(s[i.version]=a)}})}for(let r of((g=globalThis.__FEDERATION__)==null?void 0:g.__INSTANCES__)||[])for(let i of t){var b;let t=r==null||(b=r.shareScopeMap)==null||(b=b[i])==null?void 0:b[e];if(!S(t,e,l,i)||!n(i))continue;let a=(f.shareScopeMap[i]||={})[e]||={};for(let[e,n]of Object.entries(t)){var x,C;(n==null||(x=n.shareConfig)==null?void 0:x.import)!==!1&&(a[e]&&((C=a[e].shareConfig)==null?void 0:C.import)!==!1||(a[e]=n))}}}if(t.every(n))return}await f.loadShare(e,{customShareInfo:{shareConfig:l.shareConfig}}).then(async e=>{if(e===!1)return;let t=typeof e==`function`?e():e,n=m(await Promise.resolve(t));d(r.share,u,n,`ShoppingRouteAdminSet`)})}}));for(let[e,t]of Object.entries(p)){var C,w;if(!t.lib||t.treeShaking||((C=t.shareConfig)==null?void 0:C.import)===!1)continue;let i=n(e,(w=t.shareConfig)==null?void 0:w.singleton,t.version,t.scope);if(c(r.share,i)===`ShoppingRouteAdminSet`)for(let n of Array.isArray(t.scope)?t.scope:[t.scope||`default`]){var T;let r=(T=f.shareScopeMap)==null||(T=T[n])==null?void 0:T[e],i=r==null?void 0:r[t.version];i&&i.get===t.get&&!i.lib&&(Object.values(r).some(e=>e!==i&&((e==null?void 0:e.lib)||(e==null?void 0:e.loaded)))||(i.lib=t.lib,i.loaded=!0))}}return f})(),i}i=a();export{i as hostInitPromise,a as initHost};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./utils-D1AcFl0O.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./vite-preload-helper-BbbETgeG.js";var t=`__mf_module_cache__`;globalThis[t]||={share:{},remote:{}},globalThis[t].share||={},globalThis[t].remote||={};var n=globalThis[t];for(let e of Object.keys(n.share))if(e.startsWith(`default:`)){let t=e.slice(8);n.share[t]===void 0&&(n.share[t]=n.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;n.share[t]===void 0&&(n.share[t]=n.share[e])}var r=(e,t,n,r)=>{let i=(Array.isArray(r)?r[0]:r)||`default`,a=t||!n?e:e+`@`+n,o={canonical:i+`:`+a};return i==="default"&&(o.aliases=[a]),o},i=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},a=[[`react`,()=>e(()=>import(`./_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__138890973911960__loadShare__shared-DZTxWNS7.js`).then(e=>e.n),[],import.meta.url)]];async function o(){if(a.length===0)return;let t=`react-dom/client`,{usedShared:o}=await e(async()=>{let{usedShared:e}=await import(`./_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteAdminSet__mf_owner__1-B8ehY5g2.js`);return{usedShared:e}},__vite__mapDeps([0]),import.meta.url);await Promise.all(a.map(async([e,a])=>{var s,c;let l=o[e],u=l??(e===t?o[`react-dom`]:void 0);if(!u||u.treeShaking||((s=u.shareConfig)==null?void 0:s.import)===!1||l&&l.materialize===!1&&e!==t)return;let d=r(e,(c=u.shareConfig)==null?void 0:c.singleton,u.version,u.scope);i(n.share,d)===void 0&&await a().catch(t=>console.warn(`[module-federation] shared preload failed:`,e,t))}))}export{o as preloadPendingShares};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));export{s as n,l as r,o as t};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-XKyaHtl9.js";import{n as t,t as n}from"./_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__138890973911960__loadShare__shared-DZTxWNS7.js";var r=e({default:()=>x}),i={exports:{}};i.exports;var a=n||t,o=a.createElement,s=`
|
|
2
|
+
.shoppingroute-editor-row {
|
|
3
|
+
display: grid;
|
|
4
|
+
grid-template-columns: 64px minmax(160px, 1fr) 144px;
|
|
5
|
+
align-items: center;
|
|
6
|
+
gap: 8px;
|
|
7
|
+
padding: 9px 12px;
|
|
8
|
+
}
|
|
9
|
+
.shoppingroute-editor-row-actions {
|
|
10
|
+
display: flex;
|
|
11
|
+
justify-content: flex-end;
|
|
12
|
+
gap: 6px;
|
|
13
|
+
}
|
|
14
|
+
.shoppingroute-editor-add-controls {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-wrap: wrap;
|
|
17
|
+
gap: 10px;
|
|
18
|
+
align-items: center;
|
|
19
|
+
}
|
|
20
|
+
.shoppingroute-editor-control {
|
|
21
|
+
box-sizing: border-box;
|
|
22
|
+
min-width: 240px;
|
|
23
|
+
max-width: 100%;
|
|
24
|
+
}
|
|
25
|
+
.shoppingroute-editor-button:hover:not(:disabled) {
|
|
26
|
+
filter: brightness(0.96);
|
|
27
|
+
}
|
|
28
|
+
@media (max-width: 600px) {
|
|
29
|
+
.shoppingroute-editor-row {
|
|
30
|
+
grid-template-columns: 56px minmax(0, 1fr);
|
|
31
|
+
}
|
|
32
|
+
.shoppingroute-editor-row-actions {
|
|
33
|
+
grid-column: 2;
|
|
34
|
+
justify-content: flex-start;
|
|
35
|
+
}
|
|
36
|
+
.shoppingroute-editor-add-controls {
|
|
37
|
+
align-items: stretch;
|
|
38
|
+
}
|
|
39
|
+
.shoppingroute-editor-control {
|
|
40
|
+
min-width: 0;
|
|
41
|
+
width: 100%;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
`;function c(e,t){return(typeof navigator<`u`?String(navigator.language||``).toLowerCase():`de`).startsWith(`de`)?e:t}function l(e){let t=String(e||``).toLowerCase()===`dark`;return{border:t?`#555`:`#d5d5d5`,background:t?`#2b2b2b`:`#fff`,muted:t?`#bbb`:`#666`,buttonBackground:t?`#3b3b3b`:`#f4f4f4`}}function u({children:e}){return o(a.Fragment,null,[o(`style`,{key:`responsive-styles`},s),o(`div`,{key:`content`,style:{width:`100%`}},e)])}function d({title:e,hint:t,tokens:n,titleKey:r=`title`,hintKey:i=`hint`}){return[o(`h3`,{key:r,style:{margin:`0 0 6px`}},e),t?o(`div`,{key:i,style:{color:n.muted,marginBottom:`10px`,fontSize:`0.92rem`}},t):null]}function f({children:e,tokens:t,marginBottom:n=`18px`,scope:r}){return o(`div`,{"data-sort-scope":r,style:{border:`1px solid ${t.border}`,borderRadius:`6px`,overflow:`hidden`,marginBottom:n}},e)}function p(e,t,n,r){var i,a;let o=(i=e.currentTarget)==null||(a=i.getBoundingClientRect)==null?void 0:a.call(i),s=t;return o&&e.clientY>=o.top+o.height/2&&s++,n>=0&&n<s&&s--,Math.max(0,Math.min(r-1,s))}function m({onDrop:e,tokens:t,length:n,scope:r}){return o(`div`,{className:`shoppingroute-drop-end`,"data-sort-scope":r,"data-drop-index":n,"data-drop-end":!0,onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`},onDrop:t=>{t.preventDefault(),t.stopPropagation(),e()},style:{minHeight:`48px`,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`6px 12px`,borderTop:`1px dashed ${(t==null?void 0:t.border)||`#888`}`,opacity:.75}},c(`Hier ans Ende ziehen`,`Drop here at the end`))}var h=class extends a.Component{render(){return o(`span`,{role:`button`,tabIndex:0,"aria-label":c(`Ziehen zum Verschieben; Pfeile als Alternative`,`Drag to move; arrows are also available`),style:{display:`inline-flex`,minWidth:`44px`,minHeight:`44px`,alignItems:`center`,justifyContent:`center`,touchAction:`none`,cursor:`grab`,userSelect:`none`},onPointerDown:e=>{var t,n;e.pointerType===`mouse`||this.props.disabled||(e.preventDefault(),e.stopPropagation(),this.target=null,this.pointer=e.pointerId,(t=(n=e.currentTarget).setPointerCapture)==null||t.call(n,e.pointerId),this.props.onStart())},onPointerMove:e=>{var t,n,r,i;if(this.pointer!==e.pointerId)return;let a=e.currentTarget.ownerDocument.elementFromPoint(e.clientX,e.clientY),o=a==null||(t=a.closest)==null?void 0:t.call(a,`[data-drop-index]`);if(!o||((n=o.closest(`[data-sort-scope]`))==null?void 0:n.getAttribute(`data-sort-scope`))!==this.props.scope){this.target=null;return}let s=Number(o.getAttribute(`data-drop-index`)),c=(r=o.closest(`[data-drop-market]`))==null?void 0:r.getAttribute(`data-drop-market`),l=Number(((i=o.closest(`[data-drop-length]`))==null?void 0:i.getAttribute(`data-drop-length`))??this.props.length),u=c&&this.props.market&&c!==this.props.market;this.target={market:c,index:o.getAttribute(`data-drop-end`)?Math.max(0,l-+!u):p({currentTarget:o,clientY:e.clientY},s,u?-1:this.props.index,l+ +!!u)}},onPointerUp:e=>{var t,n;this.pointer===e.pointerId&&(this.pointer=null,this.target!==null&&this.props.onDrop(this.target.index,this.target.market),(t=(n=this.props).onEnd)==null||t.call(n),this.target=null)},onPointerCancel:()=>{var e,t;this.pointer=null,this.target=null,(e=(t=this.props).onEnd)==null||e.call(t)}},`⋮⋮`)}};function g({position:e,children:t,actions:n,last:r,tokens:i,draggable:a=!1,onDragStart:s,onDragOver:c,onDrop:l,onDragEnd:u,scope:d,length:f,onSortDrop:p,onSortStart:m}){return o(`div`,{className:`shoppingroute-editor-row`,draggable:a,onDragStart:s,onDragOver:c,onDrop:l,onDragEnd:u,"data-drop-index":e-1,style:{borderBottom:r?`none`:`1px solid ${i.border}`,background:i.background}},[o(`div`,{key:`position`,style:{color:i.muted,display:`flex`,alignItems:`center`,whiteSpace:`nowrap`}},[a?o(h,{key:`drag`,scope:d,length:f,index:e-1,onStart:m,onDrop:p,onEnd:u}):null,String(e)]),o(`div`,{key:`content`,style:{minWidth:0}},t),o(`div`,{key:`actions`,className:`shoppingroute-editor-row-actions`},n)])}function _({children:e,disabled:t=!1,onClick:n,title:r,tokens:i}){return o(`button`,{className:`shoppingroute-editor-button`,type:`button`,disabled:t,title:r,"aria-label":r,onClick:n,style:{width:`38px`,height:`32px`,border:`1px solid ${i.border}`,borderRadius:`4px`,background:i.buttonBackground,color:`inherit`,cursor:t?`default`:`pointer`,opacity:t?.4:1}},e)}function v({ariaLabel:e,onChange:t,onKeyDown:n,placeholder:r,tokens:i,value:a}){return o(`input`,{className:`shoppingroute-editor-control`,type:`text`,value:a,placeholder:r,"aria-label":e,onChange:t,onKeyDown:n,style:{width:`100%`,padding:`9px 12px`,borderRadius:`4px`,border:`1px solid ${i.border}`,background:i.background,color:`inherit`}})}function y({children:e,disabled:t=!1,onClick:n,tokens:r}){return o(`button`,{className:`shoppingroute-editor-button`,type:`button`,disabled:t,onClick:n,style:{minHeight:`38px`,padding:`7px 16px`,border:`1px solid ${r.border}`,borderRadius:`4px`,background:r.buttonBackground,color:`inherit`,cursor:t?`default`:`pointer`,fontWeight:600,opacity:t?.4:1}},e)}function b({children:e}){return o(`div`,{className:`shoppingroute-editor-add-controls`},e)}i.exports={DragHandle:h,DropZone:m,dropIndex:p,ActionButton:y,AddControls:b,BorderedList:f,EditorFrame:u,EditorRow:g,IconButton:_,SectionHeading:d,TextInput:v,text:c,themeTokens:l};var x=(i.exports==null?{}:i.exports).default||i.exports,S={exports:{}};S.exports;var C=n||t,{DragHandle:w,DropZone:T,dropIndex:E}=x||r,D=C.createElement,O=`
|
|
45
|
+
.shoppingroute-route-row {
|
|
46
|
+
display: grid;
|
|
47
|
+
grid-template-columns: 64px minmax(160px, 1fr) 144px;
|
|
48
|
+
}
|
|
49
|
+
.shoppingroute-route-actions {
|
|
50
|
+
display: flex;
|
|
51
|
+
justify-content: flex-end;
|
|
52
|
+
gap: 6px;
|
|
53
|
+
}
|
|
54
|
+
@media (max-width: 600px) {
|
|
55
|
+
.shoppingroute-route-row {
|
|
56
|
+
grid-template-columns: 56px minmax(0, 1fr);
|
|
57
|
+
}
|
|
58
|
+
.shoppingroute-route-actions {
|
|
59
|
+
grid-column: 2;
|
|
60
|
+
justify-content: flex-start;
|
|
61
|
+
flex-wrap: wrap;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
`,k=(e,t)=>(typeof navigator<`u`?String(navigator.language||``).toLowerCase():`de`).startsWith(`de`)?e:t,A=e=>String(e||``).trim().toLocaleLowerCase(`de`),j=(e,t)=>String(e||``).localeCompare(String(t||``),`de`,{sensitivity:`base`}),M=(e,t)=>A(e)===A(t);function N(e){return(Array.isArray(e&&e.markets)?e.markets:[]).filter(e=>e&&e.name&&e.enabled!==!1).map(e=>String(e.name).trim()).filter(Boolean).filter((e,t,n)=>n.findIndex(t=>M(t,e))===t).sort(j)}function P(e,t){return(Array.isArray(e)?e:[]).map((e,t)=>({route:e,originalIndex:t})).filter(e=>e.route&&M(e.route.market,t)&&String(e.route.category||``).trim()).sort((e,t)=>(Number(e.route.order)||999999)-(Number(t.route.order)||999999)||e.originalIndex-t.originalIndex).map(e=>({...e.route,category:String(e.route.category).trim()}))}function F(e,t,n){let r=new Set(P(t,n).map(e=>A(e.category))),i=new Set;return(Array.isArray(e)?e:[]).map(e=>String(e&&e.name||``).trim()).filter(e=>{let t=A(e);return!t||r.has(t)||i.has(t)?!1:(i.add(t),!0)}).sort(j)}function I(e,t,n){let r=Array.isArray(e)?e:[],i=(Array.isArray(n)?n:[]).filter(e=>e&&String(e.category||``).trim()).map((e,n)=>({market:String(t||``).trim(),category:String(e.category).trim(),order:(n+1)*10})),a=[],o=!1;for(let e of r)e&&M(e.market,t)?o||=(a.push(...i),!0):a.push(e);return o||a.push(...i),a}function L(e,t,n,r){let i=P(e,t),a=n+r;return n<0||a<0||n>=i.length||a>=i.length?e:([i[n],i[a]]=[i[a],i[n]],I(e,t,i))}function R(e,t,n,r){let i=P(e,t);if(n<0||r<0||n>=i.length||r>i.length||n===r)return e;let[a]=i.splice(n,1);return i.splice(Math.min(r,i.length),0,a),I(e,t,i)}function z(e,t,n){let r=P(e,t);return n<0||n>=r.length?e:(r.splice(n,1),I(e,t,r))}function B(e,t,n){let r=String(n||``).trim();if(!r)return e;let i=P(e,t);return i.some(e=>A(e.category)===A(r))?e:(i.push({market:String(t||``).trim(),category:r,order:0}),I(e,t,i))}S.exports={Components:{RouteEditor:class extends C.Component{constructor(e){super(e),this.state={selectedMarket:N(e.data)[0]||``,selectedAddCategory:``,dragIndex:-1}}componentDidUpdate(e){if(e.data===this.props.data)return;let t=N(this.props.data);if(!t.some(e=>M(e,this.state.selectedMarket))){let e=t[0]||``;e!==this.state.selectedMarket&&this.setState({selectedMarket:e,selectedAddCategory:``})}}updateRoutes(e){this.props.onChange({...this.props.data||{},routes:e},!0)}move(e,t){this.updateRoutes(L(this.props.data&&this.props.data.routes,this.state.selectedMarket,e,t))}drop(e){this.state.dragIndex<0||(this.updateRoutes(R(this.props.data&&this.props.data.routes,this.state.selectedMarket,this.state.dragIndex,e)),this.setState({dragIndex:-1}))}remove(e){this.updateRoutes(z(this.props.data&&this.props.data.routes,this.state.selectedMarket,e))}add(e){let t=e.some(e=>A(e)===A(this.state.selectedAddCategory))?this.state.selectedAddCategory:e[0];t&&(this.updateRoutes(B(this.props.data&&this.props.data.routes,this.state.selectedMarket,t)),this.setState({selectedAddCategory:``}))}render(){let e=this.props.data||{},t=N(e),n=this.state.selectedMarket,r=P(e.routes,n),i=F(e.productGroups,e.routes,n),a=i.some(e=>A(e)===A(this.state.selectedAddCategory))?this.state.selectedAddCategory:i[0]||``,o=new Set((Array.isArray(e.productGroups)?e.productGroups:[]).map(e=>A(e&&e.name)).filter(Boolean)),s=String(this.props.themeType||``).toLowerCase()===`dark`,c=s?`#555`:`#d5d5d5`,l=s?`#2b2b2b`:`#fff`,u=s?`#bbb`:`#666`,d=s?`#3b3b3b`:`#f4f4f4`,f={minWidth:0,width:`100%`,maxWidth:`320px`,boxSizing:`border-box`,padding:`9px 12px`,borderRadius:`4px`,border:`1px solid ${c}`,background:l,color:`inherit`},p=[D(`style`,{key:`responsive-styles`},O),D(`div`,{key:`selector`,style:{display:`flex`,flexWrap:`wrap`,gap:`12px`,alignItems:`center`,marginBottom:`18px`}},[D(`label`,{key:`label`,htmlFor:`shoppingroute-route-market`,style:{fontWeight:600}},k(`Markt auswählen:`,`Select market:`)),D(`select`,{key:`select`,id:`shoppingroute-route-market`,value:n,onChange:e=>this.setState({selectedMarket:e.target.value,selectedAddCategory:``}),style:f},t.map(e=>D(`option`,{key:e,value:e},e)))])];return t.length?(p.push(D(`h3`,{key:`route-title`,style:{margin:`0 0 6px`}},k(`Laufweg dieses Marktes`,`Walking route for this market`))),p.push(D(`div`,{key:`hint`,style:{color:u,marginBottom:`10px`,fontSize:`0.92rem`}},k(`Oben beginnt der Laufweg. Änderungen betreffen ausschließlich den ausgewählten Markt.`,`The walking route starts at the top. Changes affect only the selected market.`))),r.length?p.push(D(`div`,{key:`routes`,"data-sort-scope":`routes`,style:{border:`1px solid ${c}`,borderRadius:`6px`,overflow:`hidden`,marginBottom:`18px`}},[...r.map((e,t)=>{let n=!o.has(A(e.category));return D(`div`,{key:`${e.market}-${e.category}-${t}`,className:`shoppingroute-route-row`,draggable:!0,"data-drop-index":t,onDragEnd:()=>this.setState({dragIndex:-1}),onDragStart:e=>{this.setState({dragIndex:t}),e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,`routes:${t}`)},onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault(),e.stopPropagation(),this.drop(E(e,t,this.state.dragIndex,r.length))},style:{alignItems:`center`,gap:`8px`,padding:`9px 12px`,borderBottom:t<r.length-1?`1px solid ${c}`:`none`,background:l}},[D(`div`,{key:`position`,style:{color:u,display:`flex`,alignItems:`center`,whiteSpace:`nowrap`}},[D(w,{key:`drag`,scope:`routes`,length:r.length,index:t,onStart:()=>this.setState({dragIndex:t}),onDrop:e=>this.drop(e),onEnd:()=>this.setState({dragIndex:-1})}),String(t+1)]),D(`div`,{key:`category`,style:{fontWeight:500}},[String(e.category||``),n?D(`div`,{key:`historical`,style:{color:u,fontSize:`0.8rem`,fontWeight:400}},k(`Nicht mehr im globalen Katalog`,`No longer in the global catalogue`)):null]),D(`div`,{key:`buttons`,className:`shoppingroute-route-actions`},[D(`button`,{key:`up`,type:`button`,disabled:t===0,title:k(`Nach oben`,`Move up`),onClick:()=>this.move(t,-1),style:{width:`38px`,height:`32px`,border:`1px solid ${c}`,borderRadius:`4px`,background:d,color:`inherit`,cursor:t===0?`default`:`pointer`,opacity:t===0?.4:1}},`↑`),D(`button`,{key:`down`,type:`button`,disabled:t===r.length-1,title:k(`Nach unten`,`Move down`),onClick:()=>this.move(t,1),style:{width:`38px`,height:`32px`,border:`1px solid ${c}`,borderRadius:`4px`,background:d,color:`inherit`,cursor:t===r.length-1?`default`:`pointer`,opacity:t===r.length-1?.4:1}},`↓`),D(`button`,{key:`remove`,type:`button`,title:k(`Aus diesem Laufweg entfernen`,`Remove from this walking route`),onClick:()=>this.remove(t),style:{width:`38px`,height:`32px`,border:`1px solid ${c}`,borderRadius:`4px`,background:d,color:`inherit`,cursor:`pointer`}},`×`)])])}),D(T,{key:`drop-end`,length:r.length,scope:`routes`,tokens:{border:c},onDrop:()=>this.drop(r.length-1)})])):p.push(D(`div`,{key:`no-routes`,style:{color:u,padding:`12px 0`,marginBottom:`18px`}},k(`Für diesen Markt werden derzeit keine Produktgruppen verwendet.`,`No product groups are currently used for this market.`))),p.push(D(`h3`,{key:`add-title`,style:{margin:`0 0 8px`}},k(`Produktgruppe hinzufügen`,`Add product group`))),i.length?p.push(D(`div`,{key:`add-controls`,style:{display:`flex`,flexWrap:`wrap`,gap:`10px`,alignItems:`center`}},[D(`select`,{key:`category`,value:a,onChange:e=>this.setState({selectedAddCategory:e.target.value}),style:f},i.map(e=>D(`option`,{key:e,value:e},e))),D(`button`,{key:`add`,type:`button`,onClick:()=>this.add(i),style:{minHeight:`38px`,padding:`7px 16px`,border:`1px solid ${c}`,borderRadius:`4px`,background:d,color:`inherit`,cursor:`pointer`,fontWeight:600}},k(`Hinzufügen`,`Add`))])):p.push(D(`div`,{key:`no-available`,style:{color:u,padding:`8px 0`}},k(`Alle globalen Produktgruppen werden bereits in diesem Markt verwendet.`,`All global product groups are already used in this market.`))),D(`div`,{style:{width:`100%`}},p)):(p.push(D(`div`,{key:`no-markets`,style:{color:u,padding:`12px 0`}},k(`Noch keine aktiven Märkte vorhanden.`,`No active markets configured yet.`))),D(`div`,{style:{width:`100%`}},p))}}},RouteEditorModel:{activeMarkets:N,marketRoutes:P,availableProductGroups:F,replaceMarketRoutes:I,moveMarketRoute:L,moveMarketRouteTo:R,removeMarketRoute:z,addMarketRoute:B}};var V=((S.exports==null?{}:S.exports).default||S.exports).Components;export{V as default};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{t as e}from"./vite-preload-helper-BbbETgeG.js";var t=`FEDERATION_DEBUG`,n={AT:`@`,HYPHEN:`-`,SLASH:`/`},r={[n.AT]:`scope_`,[n.HYPHEN]:`_`,[n.SLASH]:`__`};r[n.AT],n.AT,r[n.HYPHEN],n.HYPHEN,r[n.SLASH],n.SLASH;var i=function(e){return e[e.UNKNOWN=1]=`UNKNOWN`,e[e.CALCULATED=2]=`CALCULATED`,e[e.NO_USE=0]=`NO_USE`,e}({});function a(){return!0}function o(){var e;return typeof navigator<`u`&&((e=navigator)==null?void 0:e.product)===`ReactNative`}function s(){try{if(a()&&window.localStorage)return!!localStorage.getItem(t)}catch{return!1}return!1}function c(){return typeof process<`u`&&{}.FEDERATION_DEBUG?!!{}.FEDERATION_DEBUG:typeof FEDERATION_DEBUG<`u`&&FEDERATION_DEBUG?!0:s()}var l=`[ Federation Runtime ]`,u=function(...e){return e.length?e.reduce((e,t)=>t?e?`${e}:${t}`:t:e,``):``};function d(e,t){if(`getPublicPath`in e){let n;return n=e.getPublicPath.startsWith(`function`)?Function(`return `+e.getPublicPath)()():Function(e.getPublicPath)(),`${n}${t}`}return`publicPath`in e?!a()&&!o()&&`ssrPublicPath`in e&&typeof e.ssrPublicPath==`string`?`${e.ssrPublicPath}${t}`:`${e.publicPath}${t}`:(console.warn(`Cannot get resource URL. If in debug mode, please ignore.`,e,t),``)}var f=e=>{console.warn(`${l}: ${e}`)};function p(e){try{return JSON.stringify(e,null,2)}catch{return``}}var m=(e,t)=>{if(!e)return t;let n=(e=>{if(e===`.`)return``;if(e.startsWith(`./`))return e.replace(`./`,``);if(e.startsWith(`/`)){let t=e.slice(1);return t.endsWith(`/`)?t.slice(0,-1):t}return e})(e);return n?n.endsWith(`/`)?`${n}${t}`:`${n}/${t}`:t};function h(e){return e.replace(/#.*$/,``).replace(/\?.*$/,``).replace(/\/[^\/]+$/,`/`)}function g(e,t={}){var n;let{remotes:r={},overrides:i={},version:a}=t,o,s=()=>`publicPath`in e.metaData?(e.metaData.publicPath===`auto`||e.metaData.publicPath===``)&&a?h(a):e.metaData.publicPath:e.metaData.getPublicPath,c=Object.keys(i),l={};Object.keys(r).length||(l=((n=e.remotes)==null?void 0:n.reduce((e,t)=>{let n,r=t.federationContainerName;return n=c.includes(r)?i[r]:`version`in t?t.version:t.entry,e[r]={matchedVersion:n},e},{}))||{}),Object.keys(r).forEach(e=>l[e]={matchedVersion:c.includes(e)?i[e]:r[e]});let{remoteEntry:{path:u,name:d,type:f},types:p={path:``,name:``,zip:``,api:``},buildInfo:{buildVersion:g},globalName:_,ssrRemoteEntry:v}=e.metaData,{exposes:y}=e,ee={version:a||``,buildVersion:g,globalName:_,remoteEntry:m(u,d),remoteEntryType:f,remoteTypes:m(p.path,p.name),remoteTypesZip:p.zip||``,remoteTypesAPI:p.api||``,remotesInfo:l,shared:e==null?void 0:e.shared.map(e=>({assets:e.assets,sharedName:e.name,version:e.version,usedExports:e.referenceExports||[]})),modules:y==null?void 0:y.map(e=>({moduleName:e.name,modulePath:e.path,assets:e.assets}))};if(`publicPath`in e.metaData?(o={...ee,publicPath:s()},typeof e.metaData.ssrPublicPath==`string`&&(o.ssrPublicPath=e.metaData.ssrPublicPath)):o={...ee,getPublicPath:s()},v){let e=m(v.path,v.name);o.ssrRemoteEntry=e,o.ssrRemoteEntryType=v.type||`commonjs-module`}return o}function _(e){return!!(`remoteEntry`in e&&e.remoteEntry.includes(`.json`))}var v=`[ Module Federation ]`,y=console,ee=[`logger.ts`,`logger.js`,`captureStackTrace`,`Logger.emit`,`Logger.log`,`Logger.info`,`Logger.warn`,`Logger.error`,`Logger.debug`];function te(){try{let e=Error().stack;if(!e)return;let[,...t]=e.split(`
|
|
2
|
+
`),n=t.filter(e=>!ee.some(t=>e.includes(t)));return n.length?`Stack trace:\n${n.slice(0,5).join(`
|
|
3
|
+
`)}`:void 0}catch{return}}var ne=class{constructor(e,t=y){this.prefix=e,this.delegate=t??y}setPrefix(e){this.prefix=e}setDelegate(e){this.delegate=e??y}emit(e,t){let n=this.delegate,r=c()?te():void 0,i=r?[...t,r]:t,a=(()=>{switch(e){case`log`:return[`log`,`info`];case`info`:return[`info`,`log`];case`warn`:return[`warn`,`info`,`log`];case`error`:return[`error`,`warn`,`log`];default:return[`debug`,`log`]}})();for(let e of a){let t=n[e];if(typeof t==`function`){t.call(n,this.prefix,...i);return}}for(let e of a){let t=y[e];if(typeof t==`function`){t.call(y,this.prefix,...i);return}}}log(...e){this.emit(`log`,e)}warn(...e){this.emit(`warn`,e)}error(...e){this.emit(`error`,e)}success(...e){this.emit(`info`,e)}info(...e){this.emit(`info`,e)}ready(...e){this.emit(`info`,e)}debug(...e){c()&&this.emit(`debug`,e)}};function re(e){return new ne(e)}function ie(e){let t=new ne(e);return Object.defineProperty(t,"__mf_infrastructure_logger__",{value:!0,enumerable:!1,configurable:!1}),t}re(v),ie(v);async function ae(e,t){try{return await e()}catch(e){!t&&f(e);return}}function oe(e,t){let n=/^(https?:)?\/\//i;return e.replace(n,``).replace(/\/$/,``)===t.replace(n,``).replace(/\/$/,``)}function se(e){let t=null,n=!0,r=2e4,i,a=document.getElementsByTagName(`script`);for(let r=0;r<a.length;r++){let i=a[r],o=i.getAttribute(`src`);if(o&&oe(o,e.url)){t=i,n=!1;break}}if(!t){let n=e.attrs;t=document.createElement(`script`),t.type=(n==null?void 0:n.type)===`module`?`module`:`text/javascript`;let i;e.createScriptHook&&(i=e.createScriptHook(e.url,e.attrs),i instanceof HTMLScriptElement?t=i:typeof i==`object`&&(`script`in i&&i.script&&(t=i.script),`timeout`in i&&i.timeout&&(r=i.timeout))),t.src||(t.src=e.url),n&&!i&&Object.keys(n).forEach(e=>{t&&(e===`async`||e===`defer`?t[e]=n[e]:t.getAttribute(e)||t.setAttribute(e,n[e]))})}let o=null,s=typeof window<`u`?t=>{if(t.filename&&oe(t.filename,e.url)){let n=Error(`ScriptExecutionError: Script "${e.url}" loaded but threw a runtime error during execution: ${t.message} (${t.filename}:${t.lineno}:${t.colno})`);n.name=`ScriptExecutionError`,o=n}}:null;s&&window.addEventListener(`error`,s);let c=async(n,r)=>{clearTimeout(i),s&&window.removeEventListener(`error`,s);let a=()=>{if((r==null?void 0:r.type)===`error`){let t=Error(r!=null&&r.isTimeout?`ScriptNetworkError: Script "${e.url}" timed out.`:`ScriptNetworkError: Failed to load script "${e.url}" - the script URL is unreachable or the server returned an error (network failure, 404, CORS, etc.)`);t.name=`ScriptNetworkError`,e!=null&&e.onErrorCallback&&(e==null||e.onErrorCallback(t))}else o?e!=null&&e.onErrorCallback&&(e==null||e.onErrorCallback(o)):e!=null&&e.cb&&(e==null||e.cb())};if(t&&(t.onerror=null,t.onload=null,ae(()=>{let{needDeleteScript:n=!0}=e;n&&t!=null&&t.parentNode&&t.parentNode.removeChild(t)}),n&&typeof n==`function`)){let e=n(r);if(e instanceof Promise){let t=await e;return a(),t}return a(),e}a()};return t.onerror=c.bind(null,t.onerror),t.onload=c.bind(null,t.onload),i=setTimeout(()=>{c(null,{type:`error`,isTimeout:!0})},r),{script:t,needAttach:n}}function ce(e){let t=null,n=!0,r=2e4,i,a=document.getElementsByTagName(`link`);for(let r=0;r<a.length;r++){let i=a[r],o=i.getAttribute(`href`),s=i.getAttribute(`rel`);if(o&&oe(o,e.url)&&s===e.attrs.rel){t=i,n=!1;break}}if(!t){t=document.createElement(`link`),t.setAttribute(`href`,e.url);let n,i=!0,a=e.attrs;e.createLinkHook&&(n=e.createLinkHook(e.url,a),n instanceof HTMLLinkElement?(t=n,i=!1):typeof n==`object`&&(`link`in n&&n.link&&(t=n.link,i=!1),`timeout`in n&&n.timeout&&(r=n.timeout))),a&&i&&Object.keys(a).forEach(e=>{t&&!t.getAttribute(e)&&t.setAttribute(e,a[e])})}if(!n)return Promise.resolve().then(()=>{e!=null&&e.cb&&(e==null||e.cb())}),{link:t,needAttach:n};let o=(n,r)=>{i&&clearTimeout(i);let a=()=>{if((r==null?void 0:r.type)===`error`){let t=Error(r!=null&&r.isTimeout?`LinkNetworkError: Link "${e.url}" timed out.`:`LinkNetworkError: Failed to load link "${e.url}" - the URL is unreachable or the server returned an error.`);t.name=`LinkNetworkError`,e!=null&&e.onErrorCallback&&(e==null||e.onErrorCallback(t))}else e!=null&&e.cb&&(e==null||e.cb())};if(t&&(t.onerror=null,t.onload=null,ae(()=>{let{needDeleteLink:n=!0}=e;n&&t!=null&&t.parentNode&&t.parentNode.removeChild(t)}),n)){let e=n(r);return a(),e}a()};return t.onerror=o.bind(null,t.onerror),t.onload=o.bind(null,t.onload),i=setTimeout(()=>{o(null,{type:`error`,isTimeout:!0})},r),{link:t,needAttach:n}}function le(e,t){let{attrs:n={},createScriptHook:r}=t;return new Promise((t,i)=>{let{script:a,needAttach:o}=se({url:e,cb:t,onErrorCallback:i,attrs:{fetchpriority:`high`,...n},createScriptHook:r,needDeleteScript:!0});o&&document.head.appendChild(a)})}var ue=e=>`View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${e.split(`-`)[0].toLowerCase()}#${e.toLowerCase()}`,de=(e,t,n,r)=>{let i=[`${[t[e]]} #${e}`];return n&&i.push(`args: ${JSON.stringify(n)}`),i.push(ue(e)),r&&i.push(`Original Error Message:\n ${r}`),i.join(`
|
|
4
|
+
`)};function fe(e,t,n,r,i,a){return r(de(e,t,n,i))}var b=`[ Federation Runtime ]`,pe=re(b);function x(e,t,n,r,i){e||(n===void 0?S(t):S(t,n,r,void 0,i))}function S(e,t,n,r,i){if(t!==void 0)return fe(e,t,n??{},e=>{throw Error(`${b}: ${e}`)},r,i);let a=e;throw a instanceof Error?(a.message.startsWith(b)||(a.message=`${b}: ${a.message}`),a):Error(`${b}: ${a}`)}function C(e){e instanceof Error&&(e.message.startsWith(b)||(e.message=`${b}: ${e.message}`)),pe.warn(e)}function me(e,t){return e.findIndex(e=>e===t)===-1&&e.push(t),e}function w(e){return`version`in e&&e.version?`${e.name}:${e.version}`:`entry`in e&&e.entry?`${e.name}:${e.entry}`:`${e.name}`}function he(e){return e.entry!==void 0}function ge(e){return!e.entry.includes(`.json`)}function _e(e){return e&&typeof e==`object`}var ve=Object.prototype.toString;function ye(e){return ve.call(e)===`[object Object]`}function be(e){return Array.isArray(e)?e:[e]}function xe(e){return`remoteEntry`in e?{url:e.remoteEntry,type:e.remoteEntryType,globalName:e.globalName}:{url:``,type:`global`,globalName:``}}var Se=(e,t)=>{let n;return n=e.endsWith(`/`)?e.slice(0,-1):e,t.startsWith(`.`)&&(t=t.slice(1)),n+=t,n},Ce=2e3,T=typeof globalThis==`object`?globalThis:window,E=(()=>{try{return document.defaultView}catch{return T}})(),D=E;function we(e,t,n){Object.defineProperty(e,t,{value:n,configurable:!1,writable:!0})}function Te(e,t){return Object.hasOwnProperty.call(e,t)}Te(T,`__GLOBAL_LOADING_REMOTE_ENTRY__`)||we(T,`__GLOBAL_LOADING_REMOTE_ENTRY__`,{});var O=T.__GLOBAL_LOADING_REMOTE_ENTRY__;function Ee(e){Te(e,`__VMOK__`)&&!Te(e,`__FEDERATION__`)&&we(e,`__FEDERATION__`,e.__VMOK__),Te(e,`__FEDERATION__`)||(we(e,`__FEDERATION__`,{__GLOBAL_PLUGIN__:[],__INSTANCES__:[],moduleInfo:{},__SHARE__:{},__MANIFEST_LOADING__:{},__PRELOADED_MAP__:new Map,__PRELOADED_ASSETS__:new Set}),we(e,`__VMOK__`,e.__FEDERATION__)),e.__FEDERATION__.__GLOBAL_PLUGIN__??=[],e.__FEDERATION__.__INSTANCES__??=[],e.__FEDERATION__.moduleInfo??={},e.__FEDERATION__.__SHARE__??={},e.__FEDERATION__.__MANIFEST_LOADING__??={},e.__FEDERATION__.__PRELOADED_MAP__??=new Map,e.__FEDERATION__.__PRELOADED_ASSETS__??=new Set}Ee(T),Ee(E);function De(){T.__FEDERATION__.__GLOBAL_PLUGIN__=[],T.__FEDERATION__.__INSTANCES__=[],T.__FEDERATION__.moduleInfo={},T.__FEDERATION__.__SHARE__={},T.__FEDERATION__.__MANIFEST_LOADING__={},T.__FEDERATION__.__PRELOADED_ASSETS__.clear(),Object.keys(O).forEach(e=>{delete O[e]})}function Oe(e){T.__FEDERATION__.__INSTANCES__.push(e)}function ke(){return T.__FEDERATION__.__DEBUG_CONSTRUCTOR__}function Ae(e,t=c()){t&&(T.__FEDERATION__.__DEBUG_CONSTRUCTOR__=e,T.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__=`2.9.2`)}function k(e,t){if(typeof t==`string`){if(e[t])return{value:e[t],key:t};{let n=Object.keys(e);for(let r of n){let[n,i]=r.split(`:`),a=`${n}:${t}`,o=e[a];if(o)return{value:o,key:a}}return{value:void 0,key:t}}}S(`getInfoWithoutType: "key" must be a string, got ${typeof t} (${JSON.stringify(t)}).`)}var je=()=>E.__FEDERATION__.moduleInfo,Me=(e,t)=>{let n=k(t,w(e)).value;if(n&&!n.version&&`version`in e&&e.version&&(n.version=e.version),n)return n;if(`version`in e&&e.version){let{version:t,...n}=e,r=w(n),i=k(E.__FEDERATION__.moduleInfo,r).value;if((i==null?void 0:i.version)===t)return i}},A=e=>Me(e,E.__FEDERATION__.moduleInfo),Ne=(e,t)=>{let n=w(e);return E.__FEDERATION__.moduleInfo[n]=t,E.__FEDERATION__.moduleInfo},Pe=e=>(E.__FEDERATION__.moduleInfo={...E.__FEDERATION__.moduleInfo,...e},()=>{let t=Object.keys(e);for(let e of t)delete E.__FEDERATION__.moduleInfo[e]}),Fe=(e,t)=>{let n=t||`__FEDERATION_${e}:custom__`;return{remoteEntryKey:n,entryExports:T[n]}},Ie=e=>{let{__GLOBAL_PLUGIN__:t}=E.__FEDERATION__;e.forEach(e=>{t.findIndex(t=>t.name===e.name)===-1?t.push(e):C(`The plugin ${e.name} has been registered.`)})},Le=()=>E.__FEDERATION__.__GLOBAL_PLUGIN__,Re=e=>T.__FEDERATION__.__PRELOADED_MAP__.get(e),ze=e=>T.__FEDERATION__.__PRELOADED_MAP__.set(e,!0),Be=e=>T.__FEDERATION__.__PRELOADED_ASSETS__.has(e),Ve=e=>{let t=T.__FEDERATION__.__PRELOADED_ASSETS__;if(t.add(e),t.size>Ce){let e=t.values().next().value;e!==void 0&&t.delete(e)}},He=`[0-9A-Za-z-]+`,Ue=`(?:\\+(${He}(?:\\.${He})*))`,j=`0|[1-9]\\d*`,M=`[0-9]+`,We=`\\d*[a-zA-Z-][a-zA-Z0-9-]*`,Ge=`(?:${M}|${We})`,Ke=`(?:-?(${Ge}(?:\\.${Ge})*))`,qe=`(?:${j}|${We})`,Je=`(?:-(${qe}(?:\\.${qe})*))`,Ye=`${j}|x|X|\\*`,N=`[v=\\s]*(${Ye})(?:\\.(${Ye})(?:\\.(${Ye})(?:${Je})?${Ue}?)?)?`,Xe=`^\\s*(${N})\\s+-\\s+(${N})\\s*$`,Ze=`[v=\\s]*${`(${M})\\.(${M})\\.(${M})`}${Ke}?${Ue}?`,Qe=`((?:<|>)?=?)`,$e=`(\\s*)${Qe}\\s*(${Ze}|${N})`,et=`(?:~>?)`,tt=`(\\s*)${et}\\s+`,nt=`(?:\\^)`,rt=`(\\s*)${nt}\\s+`,it=`(<|>)?=?\\s*\\*`,at=`^${nt}${N}$`,ot=`v?${`(${j})\\.(${j})\\.(${j})`}${Je}?${Ue}?`,st=`^${et}${N}$`,ct=`^${Qe}\\s*${N}$`,lt=`^${Qe}\\s*(${ot})$|^$`,ut=`^\\s*>=\\s*0.0.0\\s*$`;function P(e){return new RegExp(e)}function F(e){return!e||e.toLowerCase()===`x`||e===`*`}function dt(...e){return t=>e.reduce((e,t)=>t(e),t)}function ft(e){return e.match(P(lt))}function pt(e,t,n,r){let i=`${e}.${t}.${n}`;return r?`${i}-${r}`:i}function mt(e){return e.replace(P(Xe),(e,t,n,r,i,a,o,s,c,l,u,d)=>(t=F(n)?``:F(r)?`>=${n}.0.0`:F(i)?`>=${n}.${r}.0`:`>=${t}`,s=F(c)?``:F(l)?`<${Number(c)+1}.0.0-0`:F(u)?`<${c}.${Number(l)+1}.0-0`:d?`<=${c}.${l}.${u}-${d}`:`<=${s}`,`${t} ${s}`.trim()))}function ht(e){return e.replace(P($e),`$1$2$3`)}function gt(e){return e.replace(P(tt),`$1~`)}function _t(e){return e.replace(P(rt),`$1^`)}function vt(e){return e.trim().split(/\s+/).map(e=>e.replace(P(at),(e,t,n,r,i)=>F(t)?``:F(n)?`>=${t}.0.0 <${Number(t)+1}.0.0-0`:F(r)?t===`0`?`>=${t}.${n}.0 <${t}.${Number(n)+1}.0-0`:`>=${t}.${n}.0 <${Number(t)+1}.0.0-0`:i?t===`0`?n===`0`?`>=${t}.${n}.${r}-${i} <${t}.${n}.${Number(r)+1}-0`:`>=${t}.${n}.${r}-${i} <${t}.${Number(n)+1}.0-0`:`>=${t}.${n}.${r}-${i} <${Number(t)+1}.0.0-0`:t===`0`?n===`0`?`>=${t}.${n}.${r} <${t}.${n}.${Number(r)+1}-0`:`>=${t}.${n}.${r} <${t}.${Number(n)+1}.0-0`:`>=${t}.${n}.${r} <${Number(t)+1}.0.0-0`)).join(` `)}function yt(e){return e.trim().split(/\s+/).map(e=>e.replace(P(st),(e,t,n,r,i)=>F(t)?``:F(n)?`>=${t}.0.0 <${Number(t)+1}.0.0-0`:F(r)?`>=${t}.${n}.0 <${t}.${Number(n)+1}.0-0`:i?`>=${t}.${n}.${r}-${i} <${t}.${Number(n)+1}.0-0`:`>=${t}.${n}.${r} <${t}.${Number(n)+1}.0-0`)).join(` `)}function bt(e){return e.split(/\s+/).map(e=>e.trim().replace(P(ct),(e,t,n,r,i,a)=>{let o=F(n),s=o||F(r),c=s||F(i);return t===`=`&&c&&(t=``),a=``,o?t===`>`||t===`<`?`<0.0.0-0`:`*`:t&&c?(s&&(r=0),i=0,t===`>`?(t=`>=`,s?(n=Number(n)+1,r=0,i=0):(r=Number(r)+1,i=0)):t===`<=`&&(t=`<`,s?n=Number(n)+1:r=Number(r)+1),t===`<`&&(a=`-0`),`${t+n}.${r}.${i}${a}`):s?`>=${n}.0.0${a} <${Number(n)+1}.0.0-0`:c?`>=${n}.${r}.0${a} <${n}.${Number(r)+1}.0-0`:e})).join(` `)}function xt(e){return e.trim().replace(P(it),``)}function St(e){return e.trim().replace(P(ut),``)}function Ct(e,t){return e=Number(e)||e,t=Number(t)||t,e>t?1:e===t?0:-1}function wt(e,t){let{preRelease:n}=e,{preRelease:r}=t;if(n===void 0&&r)return 1;if(n&&r===void 0)return-1;if(n===void 0&&r===void 0)return 0;for(let e=0,t=n.length;e<=t;e++){let t=n[e],i=r[e];if(t!==i)return t===void 0&&i===void 0?0:t?i?Ct(t,i):-1:1}return 0}function Tt(e,t){return Ct(e.major,t.major)||Ct(e.minor,t.minor)||Ct(e.patch,t.patch)||wt(e,t)}function Et(e,t){return e.version===t.version}function Dt(e,t){switch(e.operator){case``:case`=`:return Et(e,t);case`>`:return Tt(e,t)<0;case`>=`:return Et(e,t)||Tt(e,t)<0;case`<`:return Tt(e,t)>0;case`<=`:return Et(e,t)||Tt(e,t)>0;case void 0:return!0;default:return!1}}function Ot(e){return dt(vt,yt,bt,xt)(e)}function kt(e){return dt(mt,ht,gt,_t)(e.trim()).split(/\s+/).join(` `)}function I(e,t){if(!e)return!1;let n=ft(e);if(!n)return!1;let[,r,,i,a,o,s]=n,c={operator:r,version:pt(i,a,o,s),major:i,minor:a,patch:o,preRelease:s==null?void 0:s.split(`.`)},l=t.split(`||`);for(let e of l){let t=e.trim();if(!t||t===`*`||t===`x`)return!0;try{let e=kt(t);if(!e.trim())return!0;let n=e.split(` `).map(e=>Ot(e)).join(` `);if(!n.trim())return!0;let r=n.split(/\s+/).map(e=>St(e)).filter(Boolean);if(r.length===0)continue;let i=!0;for(let e of r){let t=ft(e);if(!t){i=!1;break}let[,n,,r,a,o,s]=t;if(!Dt({operator:n,version:pt(r,a,o,s),major:r,minor:a,patch:o,preRelease:s==null?void 0:s.split(`.`)},c)){i=!1;break}}if(i)return!0}catch(e){console.error(`[semver] Error processing range part "${t}":`,e);continue}}return!1}var At=`default`,jt=`global`;function Mt(e,t,n,r){var a,o;let s;return s=`get`in e?e.get:`lib`in e?()=>Promise.resolve(e.lib):()=>Promise.resolve(()=>{S(`Cannot get shared "${n}" from "${t}": neither "get" nor "lib" is provided in the share config.`)}),(a=e.shareConfig)!=null&&a.eager&&(o=e.treeShaking)!=null&&o.mode&&S(`Invalid shared config for "${n}" from "${t}": cannot use both "eager: true" and "treeShaking.mode" simultaneously. Choose one strategy.`),{deps:[],useIn:[],from:t,loading:null,...e,shareConfig:{requiredVersion:`^${e.version}`,singleton:!1,eager:!1,strictVersion:!1,...e.shareConfig},get:s,loaded:e!=null&&e.loaded||`lib`in e?!0:void 0,version:e.version??`0`,scope:Array.isArray(e.scope)?e.scope:[e.scope??`default`],strategy:(e.strategy??r)||`version-first`,treeShaking:e.treeShaking?{...e.treeShaking,mode:e.treeShaking.mode??`server-calc`,status:e.treeShaking.status??i.UNKNOWN,useIn:[]}:void 0}}function Nt(e,t){let n=t.shared||{},r=t.name,i=Object.keys(n).reduce((e,i)=>{let a=be(n[i]);return e[i]=e[i]||[],a.forEach(n=>{e[i].push(Mt(n,r,i,t.shareStrategy))}),e},{}),a={...e.shared};return Object.keys(i).forEach(e=>{a[e]?i[e].forEach(t=>{a[e].find(e=>e.version===t.version)||a[e].push(t)}):a[e]=i[e]}),{allShareInfos:a,newShareInfos:i}}function L(e,t){if(!e)return!1;let{status:n,mode:r}=e;return n===i.NO_USE?!1:n===i.CALCULATED?!0:r===`runtime-infer`?!t||It(e,t):!1}function R(e,t){let n=e=>{if(!Number.isNaN(Number(e))){let t=e.split(`.`),n=e;for(let e=0;e<3-t.length;e++)n+=`.0`;return n}return e};return!!I(n(e),`<=${n(t)}`)}var z=(e,t)=>{let n=t||function(e,t){return R(e,t)};return Object.keys(e).reduce((e,t)=>!e||n(e,t)||e===`0`?t:e,0)},Pt=e=>!!e.loaded||typeof e.lib==`function`,Ft=e=>!!e.loading,It=(e,t)=>{if(!e||!t)return!1;let{usedExports:n}=e;return n?!!t.every(e=>n.includes(e)):!1};function Lt(e,t,n,r){let i=e[t][n],a=``,o=L(r),s=function(e,t){return o?i[e].treeShaking?i[t].treeShaking?!Pt(i[e].treeShaking)&&R(e,t):!1:!0:!Pt(i[e])&&R(e,t)};if(o){if(a=z(e[t][n],s),a)return{version:a,useTreesShaking:o};o=!1}return{version:z(e[t][n],s),useTreesShaking:o}}var B=e=>Pt(e)||Ft(e);function Rt(e,t,n,r){let i=e[t][n],a=``,o=L(r),s=function(e,t){if(o){if(!i[e].treeShaking)return!0;if(!i[t].treeShaking)return!1;if(B(i[t].treeShaking))return!B(i[e].treeShaking)||!!R(e,t);if(B(i[e].treeShaking))return!1}return B(i[t])?!B(i[e])||!!R(e,t):!B(i[e])&&R(e,t)};if(o){if(a=z(e[t][n],s),a)return{version:a,useTreesShaking:o};o=!1}return{version:z(e[t][n],s),useTreesShaking:o}}function zt(e){return e===`loaded-first`?Rt:Lt}function V(e,t,n,r,i){if(!e)return;let{shareConfig:a,scope:o=At,strategy:s,treeShaking:c}=n,l=Array.isArray(o)?o:[o];for(let o of l)if(a&&e[o]&&e[o][t]){let{requiredVersion:l}=a,{version:u,useTreesShaking:d}=zt(s)(e,o,t,c),f={shareScopeMap:e,scope:o,pkgName:t,version:u,GlobalFederation:D.__FEDERATION__,shareInfo:n,resolver:()=>{let r=e[o][t][u];if(a.singleton){if(typeof l==`string`&&!I(u,l)){let e=`Version ${u} from ${u&&r.from} of shared singleton module ${t} does not satisfy the requirement of ${n.from} which needs ${l})`;a.strictVersion?S(e):C(e)}return{shared:r,useTreesShaking:d}}{if(l===!1||l===`*`||I(u,l))return{shared:r,useTreesShaking:d};let n=L(c);if(n){for(let[r,i]of Object.entries(e[o][t]))if(L(i.treeShaking,c==null?void 0:c.usedExports)&&I(r,l))return{shared:i,useTreesShaking:n}}for(let[n,r]of Object.entries(e[o][t]))if(I(n,l))return{shared:r,useTreesShaking:!1}}},loadContext:i};return(r.emit(f)||f).resolver()}}function Bt(){return D.__FEDERATION__.__SHARE__}function Vt(e){let{pkgName:t,extraOptions:n,shareInfos:r}=e,i=(n==null?void 0:n.resolver)??(e=>{if(!e)return;let t={};return e.forEach(e=>{t[e.version]=e}),t[z(t,function(e,n){return!Pt(t[e])&&R(e,n)})]}),a=e=>typeof e==`object`&&!!e&&!Array.isArray(e),o=(...e)=>{let t={};for(let n of e)if(n)for(let[e,r]of Object.entries(n)){let n=t[e];a(n)&&a(r)?t[e]=o(n,r):r!==void 0&&(t[e]=r)}return t};return o(i(r[t]),n==null?void 0:n.customShareInfo)}var H=(e,t)=>{e.useIn||=[],me(e.useIn,t)};function Ht(e,t){return t&&e.treeShaking?e.treeShaking:e}function Ut(e,t){return!t||t===`.`?e:`${e}/${t.replace(/^\.\//,``)}`}function Wt(e,t){for(let n of e){let e=t.startsWith(n.name),r=t.replace(n.name,``);if(e){if(r.startsWith(`/`)){let e=n.name;return r=`.${r}`,{pkgNameOrAlias:e,expose:r,remote:n}}if(r===``)return{pkgNameOrAlias:n.name,expose:`.`,remote:n}}let i=n.alias&&t.startsWith(n.alias),a=n.alias&&t.replace(n.alias,``);if(n.alias&&i){if(a&&a.startsWith(`/`)){let e=n.alias;return a=`.${a}`,{pkgNameOrAlias:e,expose:a,remote:n}}if(a===``)return{pkgNameOrAlias:n.alias,expose:`.`,remote:n}}}}function Gt(e,t){for(let n of e)if(t===n.name||n.alias&&t===n.alias)return n}var Kt=`RUNTIME-001`,qt=`RUNTIME-002`,Jt=`RUNTIME-003`,Yt=`RUNTIME-004`,Xt=`RUNTIME-005`,Zt=`RUNTIME-006`,Qt=`RUNTIME-007`,$t=`RUNTIME-008`,en=`RUNTIME-009`,tn=`RUNTIME-010`,nn=`RUNTIME-011`,rn=`RUNTIME-012`,an=`RUNTIME-013`,on=`RUNTIME-014`,sn=`RUNTIME-015`,cn=`TYPE-001`,ln=`BUILD-001`,un=`BUILD-002`,U={[Kt]:`Failed to get remoteEntry exports.`,[qt]:`The remote entry interface does not contain "init"`,[Jt]:`Failed to get manifest.`,[Yt]:`Failed to locate remote.`,[Xt]:`Invalid loadShareSync function call from bundler runtime`,[Zt]:`Invalid loadShareSync function call from runtime`,[Qt]:`Failed to get remote snapshot.`,[$t]:`Failed to load script resources.`,[en]:`Please call createInstance first.`,[tn]:`The name option cannot be changed after initialization. If you want to create a new instance with a different name, please use "createInstance" api.`,[nn]:`The remoteEntry URL is missing from the remote snapshot.`,[rn]:`The getter for the shared module is not a function. This may be caused by setting "shared.import: false" without the host providing the corresponding lib.`,[an]:`The manifest is not a valid Module Federation manifest.`,[on]:`The remote does not expose the requested module.`,[sn]:`Remote container initialization failed.`},dn={[cn]:`Failed to generate type declaration. Execute the below cmd to reproduce and fix the error.`},fn={[ln]:`Failed to find expose module.`,[un]:`PublicPath is required in prod mode.`};({...U,...dn,...fn});var pn=`.then(callbacks[0]).catch(callbacks[1])`,mn=new WeakMap,hn=[`Failed to fetch dynamically imported module`,`Importing a module script failed`,`error loading dynamically imported module`];function gn(e){return e instanceof TypeError&&hn.some(t=>e.message.includes(t))}function _n(e){return e===`esm`||e===`module`}async function vn({entry:t,remoteEntryExports:n,name:r,getEntryUrl:i}){return new Promise((a,o)=>{let s=e=>{if(gn(e)){let t=e instanceof Error?e.message:String(e);try{S($t,U,{remoteName:r,resourceUrl:c},t)}catch(e){o(e);return}}o(e)},c=i?i(t):t;try{n?a(n):typeof FEDERATION_ALLOW_NEW_FUNCTION<`u`?Function(`callbacks`,`import("${c}")${pn}`)([a,s]):e(()=>import(c).then(a),[],import.meta.url).catch(s)}catch(e){S(`Failed to load ESM entry from "${c}". ${e instanceof Error?e.message:String(e)}`)}})}async function yn({entry:e,remoteEntryExports:t}){return new Promise((n,r)=>{try{t?n(t):typeof __system_context__>`u`?System.import(e).then(n).catch(r):Function(`callbacks`,`System.import("${e}")${pn}`)([n,r])}catch(t){S(`Failed to load SystemJS entry from "${e}". ${t instanceof Error?t.message:String(t)}`)}})}function bn(e,t,n){let{remoteEntryKey:r,entryExports:i}=Fe(e,t);return i||S(Kt,U,{remoteName:e,remoteEntryUrl:n,remoteEntryKey:r}),i}async function xn({name:e,globalName:t,entry:n,remoteInfo:r,loaderHook:i,getEntryUrl:a,resourceContext:o}){let{entryExports:s}=Fe(e,t);if(s)return s;let c=a?a(n):n;return le(c,{attrs:{},createScriptHook:(e,t)=>{let n=i.lifecycle.createScript.emit({url:e,attrs:t,remoteInfo:r,resourceContext:o?{...o,url:e}:void 0});if(n&&(n instanceof HTMLScriptElement||`script`in n||`timeout`in n))return n}}).then(()=>bn(e,t,n),t=>{let n=t instanceof Error?t.message:String(t);S($t,U,{remoteName:e,resourceUrl:c},n)})}async function Sn({remoteInfo:e,remoteEntryExports:t,loaderHook:n,getEntryUrl:r,resourceContext:i}){let{entry:a,entryGlobalName:o,name:s,type:c}=e;return _n(c)?vn({entry:a,remoteEntryExports:t,name:s,getEntryUrl:r}):c===`system`?yn({entry:a,remoteEntryExports:t}):xn({entry:a,globalName:o,name:s,remoteInfo:e,loaderHook:n,getEntryUrl:r,resourceContext:i})}function Cn(e){let{entry:t,name:n}=e;return u(n,t)}async function wn(e){let{origin:t,remoteEntryExports:n,remoteInfo:r,getEntryUrl:i,resourceContext:a,_inErrorHandling:o=!1}=e,s=Cn(r);if(n)return await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,remoteEntryExports:n,resourceContext:a,cached:!0}),n;if(!O[s]){let e=t.remoteHandler.hooks.lifecycle.loadEntry,c=t.loaderHook,l=e.emit({origin:t,loaderHook:c,remoteInfo:r,remoteEntryExports:n,resourceContext:a}).then(e=>e||Sn({remoteInfo:r,remoteEntryExports:n,loaderHook:c,getEntryUrl:i,resourceContext:a})).then(async e=>(await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,remoteEntryExports:e,resourceContext:a}),e)).catch(async e=>{let i=e instanceof Error&&e.message.includes(`ScriptExecutionError`);if(e instanceof Error&&e.message.includes(`RUNTIME-008`)&&!i&&!o){let i=await t.loaderHook.lifecycle.loadEntryError.emit({getRemoteEntry:e=>wn({...e,_inErrorHandling:!0}),origin:t,remoteInfo:r,remoteEntryExports:n,globalLoading:O,uniqueKey:s});if(i)return await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,remoteEntryExports:i,resourceContext:a,error:e,recovered:!0}),i}throw await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,resourceContext:a,error:e}),e});O[s]=l,l.then(void 0,()=>{O[s]===l&&delete O[s]}),mn.set(l,t)}let c=O[s];if(mn.get(c)!==t)try{let e=await c;return await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,remoteEntryExports:e,resourceContext:a}),e}catch(e){throw await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,resourceContext:a,error:e}),e}return c}function W(e){return{...e,entry:`entry`in e?e.entry:``,type:e.type||`global`,entryGlobalName:e.entryGlobalName||e.name,shareScope:e.shareScope||`default`}}function Tn(){return typeof FEDERATION_BUILD_IDENTIFIER<`u`?FEDERATION_BUILD_IDENTIFIER:``}function En(e){let t=new Map;return[...e||[],...Le()].forEach(e=>{e&&(x(ye(e),`Plugin configuration is invalid.`),x(e.name,`A name must be provided by the plugin.`),t.has(e.name)||t.set(e.name,e))}),Array.from(t.values())}function Dn(e,t){return t===void 0?e:{...t,name:e.name,version:e.version}}function On(e,t){let n=new Map;t.options.plugins.forEach(e=>{e&&n.set(e.name,e)});let r=[t.hooks,t.remoteHandler.hooks,t.sharedHandler.hooks,t.snapshotHandler.hooks,t.loaderHook,t.bridgeHook];return En(e).forEach(e=>{var i;if(n.set(e.name,e),t.hooks.registerPlugins[e.name])return;let a=Dn(e,(i=e.apply)==null?void 0:i.call(e,t));r.forEach(e=>{e.applyPlugin(a)})}),Array.from(n.values())}function kn(e){return{name:e.name,alias:e.alias,entry:`entry`in e?e.entry:void 0,version:`version`in e?e.version:void 0,type:e.type,entryGlobalName:e.entryGlobalName,shareScope:e.shareScope}}function G(e){var t,n;let r={};for(let[t,n]of Object.entries(e.shared)){var i,a,o,s;let e=n[0];e&&(r[t]={version:e.version,singleton:(i=e.shareConfig)==null?void 0:i.singleton,requiredVersion:((a=e.shareConfig)==null?void 0:a.requiredVersion)===!1?!1:(o=e.shareConfig)==null?void 0:o.requiredVersion,eager:e.eager,strictVersion:(s=e.shareConfig)==null?void 0:s.strictVersion})}return{project:{name:e.name,mfRole:((t=e.remotes)==null?void 0:t.length)>0?`host`:`unknown`},mfConfig:{name:e.name,remotes:((n=e.remotes)==null?void 0:n.map(kn))??[],shared:r}}}function An(e){return{resourceCategory:`sync`,share:!0,depsRemote:!0,recordPreloadedAssets:!0,...e}}function jn(e,t){return t.map(t=>{let n=Gt(e,t.nameOrAlias);return x(n,`Unable to preload ${t.nameOrAlias} as it is not included in ${!n&&p({remoteInfo:n,remotes:e})}`),{remote:n,preloadConfig:An(t)}})}function Mn(e){return e?e.map(e=>e===`.`?e:e.startsWith(`./`)?e.replace(`./`,``):e):[]}function Nn(e){return e instanceof Error?e.message.includes(`timed out`)||e.name.includes(`Timeout`):!1}function K(e,t,n,r){return{url:t,status:n,resourceType:e.resourceType,initiator:e.initiator,id:e.id,error:r}}function Pn(e,t,n,r){return n?Be(t)?Promise.resolve(K(e,t,`cached`)):(Ve(t),r()):r()}async function Fn(e,t,n,r){let i=e.moduleCache.get(n.name),a=n.entry;if(i!=null&&i.remoteEntryExports)return K(r,a,`cached`);try{if(!await wn({origin:e,remoteInfo:n,remoteEntryExports:i==null?void 0:i.remoteEntryExports,resourceContext:{...r,url:a}}))throw Error(`Failed to load remoteEntry "${a}".`);return K(r,a,`success`)}catch(e){return K(r,a,Nn(e)?`timeout`:`error`,e)}}function q({host:e,remoteInfo:t,url:n,attrs:r,context:i,needDeleteLink:a}){return new Promise(o=>{let{link:s,needAttach:c}=ce({url:n,cb:()=>{o(K(i,n,c?`success`:`cached`))},onErrorCallback:e=>{o(K(i,n,Nn(e)?`timeout`:`error`,e))},attrs:r,createLinkHook:(n,r)=>{let a=e.loaderHook.lifecycle.createLink.emit({url:n,attrs:r,remoteInfo:t,resourceContext:{...i,url:n}});return a instanceof HTMLLinkElement,a},needDeleteLink:a});c&&document.head.appendChild(s)})}function In({host:e,remoteInfo:t,url:n,attrs:r,context:i}){return new Promise(a=>{let{script:o,needAttach:s}=se({url:n,cb:()=>{a(K(i,n,s?`success`:`cached`))},onErrorCallback:e=>{a(K(i,n,Nn(e)?`timeout`:`error`,e))},attrs:r,createScriptHook:(n,r)=>{let a=e.loaderHook.lifecycle.createScript.emit({url:n,attrs:r,remoteInfo:t,resourceContext:{...i,url:n}});return a instanceof HTMLScriptElement,a},needDeleteScript:!0});s&&document.head.appendChild(o)})}function Ln(e,t){return{...e,resourceType:t}}function Rn(e,t,n,r=!0,i={initiator:`preloadRemote`,id:e.name},a=!0){let{cssAssets:o,jsAssetsWithoutEntry:s,entryAssets:c}=n,l=[];if(t.options.inBrowser){if(c.forEach(n=>{let{moduleInfo:r}=n;l.push(Fn(t,e,r,Ln(i,`remoteEntry`)))}),r){let n={rel:`preload`,as:`style`};o.forEach(r=>{let o=Ln(i,`css`);l.push(Pn(o,r,a,()=>q({host:t,remoteInfo:e,url:r,attrs:n,context:o})))})}else{let n={rel:`stylesheet`,type:`text/css`};o.forEach(r=>{let o=Ln(i,`css`);l.push(Pn(o,r,a,()=>q({host:t,remoteInfo:e,url:r,attrs:n,needDeleteLink:!1,context:o})))})}let n=In,u={fetchpriority:`high`,type:`text/javascript`};r?(n=q,u={rel:`preload`,as:`script`}):_n(e.type)&&(n=q,u={rel:`modulepreload`,fetchpriority:`high`}),s.forEach(r=>{let o=Ln(i,`js`);l.push(Pn(o,r,a,()=>n({host:t,remoteInfo:e,url:r,attrs:u,context:o})))})}return Promise.all(l)}var zn={global:{Global:D,nativeGlobal:E,resetFederationGlobalInfo:De,setGlobalFederationInstance:Oe,getGlobalFederationConstructor:ke,setGlobalFederationConstructor:Ae,getInfoWithoutType:k,getGlobalSnapshot:je,getTargetSnapshotInfoByModuleInfo:Me,getGlobalSnapshotInfoByModuleInfo:A,setGlobalSnapshotInfoByModuleInfo:Ne,addGlobalSnapshot:Pe,getRemoteEntryExports:Fe,registerGlobalPlugins:Ie,getGlobalHostPlugins:Le,getPreloaded:Re,setPreloaded:ze},share:{getRegisteredShare:V,getGlobalShareScope:Bt},utils:{matchRemoteWithNameAndExpose:Wt,preloadAssets:Rn,getRemoteInfo:W}};function Bn(e){if(!e||!(`modules`in e)||!Array.isArray(e.modules))return;let t=e.modules.map(e=>e.moduleName).filter(Boolean);return t.length?t.join(`,`):void 0}function Vn(e,t,n){let r=t,i=Array.isArray(e.shareScope)?e.shareScope:[e.shareScope];i.length||i.push(`default`),i.forEach(e=>{r[e]||(r[e]={})});let a={version:e.version||``,shareScopeKeys:Array.isArray(e.shareScope)?i:e.shareScope||`default`};return Object.defineProperty(a,"shareScopeMap",{value:r,enumerable:!1}),{remoteEntryInitOptions:a,shareScope:r[i[0]],initScope:n??[]}}var Hn=class{constructor({remoteInfo:e,host:t}){this.inited=!1,this.initing=!1,this.lib=void 0,this.remoteInfo=e,this.host=t}async getEntry(e,t){let n=t||{initiator:`loadRemote`,id:Ut(this.remoteInfo.name,e),resourceType:`remoteEntry`,url:this.remoteInfo.entry,expose:e},r=await wn({origin:this.host,remoteInfo:this.remoteInfo,remoteEntryExports:this.remoteEntryExports,resourceContext:n});return x(r,`remoteEntryExports is undefined \n ${p(this.remoteInfo)}`),this.remoteEntryExports=r,this.remoteEntryExports}async init(e,t,n,r,i){let a=await this.getEntry(r,i);if(this.inited)return await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:a,cached:!0,origin:this.host}),a;if(this.initPromise){try{await this.initPromise,await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:a,cached:!0,origin:this.host})}catch(n){throw await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:a,error:n,cached:!0,origin:this.host}),n}return a}this.initing=!0,this.initPromise=(async()=>{await this.host.loaderHook.lifecycle.beforeInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,origin:this.host});let{remoteEntryInitOptions:r,shareScope:i,initScope:o}=Vn(this.remoteInfo,this.host.shareScopeMap,n),s=await this.host.hooks.lifecycle.beforeInitContainer.emit({shareScope:i,remoteEntryInitOptions:r,initScope:o,remoteInfo:this.remoteInfo,origin:this.host});(a==null?void 0:a.init)===void 0&&S(qt,U,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName},void 0,G(this.host.options));try{await a.init(s.shareScope,s.initScope,s.remoteEntryInitOptions)}catch(e){S(sn,U,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName,shareScope:this.remoteInfo.shareScope},`${e}`,G(this.host.options))}await this.host.hooks.lifecycle.initContainer.emit({...s,id:e,remoteSnapshot:t,remoteEntryExports:a}),this.inited=!0})();try{await this.initPromise,await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:a,origin:this.host})}catch(n){throw await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:a,error:n,origin:this.host}),n}finally{this.initing=!1,this.initPromise=void 0}return a}async get(e,t,n,r){let{loadFactory:i=!0}=n||{loadFactory:!0},a=await this.init(e,r,void 0,t);this.lib=a,await this.host.loaderHook.lifecycle.beforeGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:a,origin:this.host});let o;try{let n=await this.host.loaderHook.lifecycle.getModuleFactory.emit({remoteEntryExports:a,expose:t,moduleInfo:this.remoteInfo});o=typeof n==`function`?n:void 0,o||=await a.get(t),o||S(on,U,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,expose:t,requestId:e,availableExposes:Bn(r)},void 0,G(this.host.options)),await this.host.loaderHook.lifecycle.afterGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:a,moduleFactory:o,origin:this.host})}catch(n){throw await this.host.loaderHook.lifecycle.afterGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:a,error:n,origin:this.host}),n}let s=Se(this.remoteInfo.name,t),c=this.wraperFactory(o,s);if(!i)return c;await this.host.loaderHook.lifecycle.beforeExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:i,origin:this.host});try{let n=await c();return await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:i,exposeModule:n,origin:this.host}),n}catch(n){throw await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:i,error:n,origin:this.host}),n}}wraperFactory(e,t){function n(e,t){e&&typeof e==`object`&&Object.isExtensible(e)&&!Object.getOwnPropertyDescriptor(e,Symbol.for(`mf_module_id`))&&Object.defineProperty(e,Symbol.for(`mf_module_id`),{value:t,enumerable:!1})}return()=>{let r=e();return r instanceof Promise?r.then(e=>(n(e,t),e)):(n(r,t),r)}}},J=class{constructor(e){this.registerPlugins={},this.lifecycle=e,this.lifecycleKeys=Object.keys(e)}applyPlugin(e){x(ye(e),`Plugin configuration is invalid.`);let t=e.name;x(t,`A name must be provided by the plugin.`),this.registerPlugins[t]||(this.registerPlugins[t]=e,this.lifecycleKeys.forEach(t=>{let n=e[t];n&&this.lifecycle[t].on(n)}))}removePlugin(e){x(e,`A name is required.`);let t=this.registerPlugins[e];x(t,`The plugin "${e}" is not registered.`),this.lifecycleKeys.forEach(e=>{let n=t[e];n&&this.lifecycle[e].remove(n)}),delete this.registerPlugins[e]}},Y=class{constructor(e){this.type=``,this.listeners=new Set,e&&(this.type=e)}on(e){typeof e==`function`&&this.listeners.add(e)}once(e){let t=this;this.on(function n(...r){return t.remove(n),e.apply(null,r)})}emit(...e){let t;return this.listeners.size>0&&this.listeners.forEach(n=>{let r=n(...e);r!==void 0&&(t=r)}),t}remove(e){this.listeners.delete(e)}removeAll(){this.listeners.clear()}},X=class extends Y{emit(...e){let t,n=Array.from(this.listeners);if(n.length>0){let r=0,i=t=>t===!1?!1:r<n.length?Promise.resolve(n[r++].apply(null,e)).then(n=>n===void 0||e.length===1&&n===e[0]?i(t):i(n)):t;t=i()}return Promise.resolve(t)}};function Un(e,t){if(!_e(t))return!1;if(e!==t){for(let n in e)if(!(n in t))return!1}return!0}var Z=class extends Y{constructor(e){super(),this.onerror=S,this.type=e}emit(e){_e(e)||S(`The data for the "${this.type}" hook should be an object.`);for(let t of this.listeners)try{let n=t(e);if(n===void 0)continue;if(Un(e,n))e=n;else{this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);break}}catch(e){C(e),this.onerror(e)}return e}},Q=class extends Y{constructor(e){super(),this.onerror=S,this.type=e}emit(e){_e(e)||S(`The response data for the "${this.type}" hook must be an object.`);let t=Array.from(this.listeners);if(t.length>0){let n=0,r=t=>(C(t),this.onerror(t),e),i=a=>{if(a!==void 0&&Un(e,a))e=a;else if(a!==void 0)return this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`),e;if(n<t.length)try{return Promise.resolve(t[n++](e)).then(i,r)}catch(e){return r(e)}return e};return Promise.resolve(i(e))}return Promise.resolve(e)}},$=`Remote loading is disabled by experiments.optimization.disableRemote.`,Wn=class{constructor(){this.hooks=new J({})}formatAndRegisterRemote(){return[]}loadRemote(){throw Error($)}preloadRemote(){throw Error($)}registerRemotes(){throw Error($)}getRemoteModuleAndOptions(){throw Error($)}initRawContainer(){throw Error($)}};function Gn(e,t){let n=xe(t);n.url||S(nn,U,{remoteName:e.name});let r=d(t,n.url);e.type=n.type,e.entryGlobalName=n.globalName,e.entry=r,e.version=t.version,e.buildVersion=t.buildVersion}function Kn(){return{name:`snapshot-plugin`,async afterResolve(e){let{remote:t,pkgNameOrAlias:n,expose:r,origin:i,remoteInfo:a,id:o}=e;if(!he(t)||!ge(t)){let{remoteSnapshot:s,globalSnapshot:c}=await i.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:t,id:Ut(t.name,r)});Gn(a,s);let l=[{nameOrAlias:n,exposes:[r],resourceCategory:`sync`,share:!1,depsRemote:!1,recordPreloadedAssets:!0}];await i.remoteHandler.hooks.lifecycle.beforePreloadRemote.emit({preloadOps:l,options:i.options,origin:i});let[u]=l;if(u){let e={remote:t,preloadConfig:u},n=await i.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({origin:i,preloadOptions:e,remoteInfo:a,remote:t,remoteSnapshot:s,globalSnapshot:c});n&&Rn(a,i,n,!1,{initiator:`loadRemote`,id:o},u.recordPreloadedAssets).catch(()=>void 0)}return{...e,remoteSnapshot:s}}return e}}}function qn(e){let t=e.split(`:`);return t.length===1?{name:t[0],version:void 0}:t.length===2?{name:t[0],version:t[1]}:{name:t[1],version:t[2]}}function Jn(e,t,n,r,i={},a){let{value:o}=k(e,w(t)),s=a||o;if(s&&!_(s)&&(n(s,t,r),s.remotesInfo)){let t=Object.keys(s.remotesInfo);for(let r of t){if(i[r])continue;i[r]=!0;let t=qn(r),a=s.remotesInfo[r];Jn(e,{name:t.name,version:a.matchedVersion},n,!1,i,void 0)}}}var Yn=(e,t)=>document.querySelector(`${e}[${e===`link`?`href`:`src`}="${t}"]`);function Xn(e,t,n,r,i){let a=[],o=[],s=[],c=new Set,l=new Set,{options:u}=e,{preloadConfig:f}=t,{depsRemote:p}=f;if(Jn(r,n,(t,n,r)=>{var i;let c;if(r)c=f;else if(Array.isArray(p)){let e=p.find(e=>e.nameOrAlias===n.name||e.nameOrAlias===n.alias);if(!e)return;c=An(e)}else if(p===!0)c=f;else return;let l=d(t,xe(t).url);l&&s.push({name:n.name,moduleInfo:{name:n.name,entry:l,type:`remoteEntryType`in t?t.remoteEntryType:`global`,entryGlobalName:`globalName`in t?t.globalName:n.name,shareScope:``,version:`version`in t?t.version:void 0},url:l});let u=`modules`in t?t.modules:[],m=Mn(c.exposes);m.length&&`modules`in t&&(u=t==null||(i=t.modules)==null?void 0:i.reduce((e,t)=>((m==null?void 0:m.indexOf(t.moduleName))!==-1&&e.push(t),e),[]));function h(e){let n=e.map(e=>d(t,e));return c.filter?n.filter(c.filter):n}if(u){let r=u.length;for(let i=0;i<r;i++){let r=u[i],s=`${n.name}/${r.moduleName}`;e.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({id:r.moduleName===`.`?n.name:s,name:n.name,remoteSnapshot:t,preloadConfig:c,remote:n,origin:e}),!Re(s)&&(c.resourceCategory===`all`?(a.push(...h(r.assets.css.async)),a.push(...h(r.assets.css.sync)),o.push(...h(r.assets.js.async)),o.push(...h(r.assets.js.sync))):c.resourceCategory===`sync`&&(a.push(...h(r.assets.css.sync)),o.push(...h(r.assets.js.sync))),ze(s))}}},!0,{},i),i.shared&&i.shared.length>0){let t=(t,n)=>{let{shared:r}=V(e.shareScopeMap,n.sharedName,t,e.sharedHandler.hooks.lifecycle.resolveShare)||{};r&&typeof r.lib==`function`&&(n.assets.js.sync.forEach(e=>{c.add(e)}),n.assets.css.sync.forEach(e=>{l.add(e)}))};i.shared.forEach(e=>{var n;let r=(n=u.shared)==null?void 0:n[e.sharedName];if(!r)return;let i=e.version?r.find(t=>t.version===e.version):r;i&&be(i).forEach(n=>{t(n,e)})})}let m=o.filter(e=>!c.has(e)&&!Yn(`script`,e));return{cssAssets:a.filter(e=>!l.has(e)&&!Yn(`link`,e)),jsAssetsWithoutEntry:m,entryAssets:s.filter(e=>!Yn(`script`,e.url))}}var Zn=function(){return{name:`generate-preload-assets-plugin`,async generatePreloadAssets(e){let{origin:t,preloadOptions:n,remoteInfo:r,remote:i,globalSnapshot:a,remoteSnapshot:o}=e;return he(i)&&ge(i)?{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[{name:i.name,url:i.entry,moduleInfo:{name:r.name,entry:i.entry,type:r.type||`global`,entryGlobalName:``,shareScope:``}}]}:(Gn(r,o),Xn(t,n,r,a,o))}}};function Qn(e,t){let n=A({name:t.name,version:t.options.version}),r=n&&`remotesInfo`in n&&n.remotesInfo&&k(n.remotesInfo,e.name).value;return r&&r.matchedVersion?{hostGlobalSnapshot:n,globalSnapshot:je(),remoteSnapshot:A({name:e.name,version:r.matchedVersion})}:{hostGlobalSnapshot:void 0,globalSnapshot:je(),remoteSnapshot:A({name:e.name,version:`version`in e?e.version:void 0})}}var $n=class{constructor(e){this.loadingHostSnapshot=null,this.manifestCache=new Map,this.hooks=new J({beforeLoadRemoteSnapshot:new X(`beforeLoadRemoteSnapshot`),loadSnapshot:new Q(`loadGlobalSnapshot`),loadRemoteSnapshot:new Q(`loadRemoteSnapshot`),afterLoadSnapshot:new Q(`afterLoadSnapshot`),beforeLoadManifest:new X(`beforeLoadManifest`),afterLoadManifest:new X(`afterLoadManifest`)}),this.manifestLoading=D.__FEDERATION__.__MANIFEST_LOADING__,this.HostInstance=e,this.loaderHook=e.loaderHook}async loadRemoteSnapshotInfo({moduleInfo:e,id:t,initiator:n=`loadRemote`}){let{options:r}=this.HostInstance;await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({options:r,moduleInfo:e,origin:this.HostInstance});let i=A({name:this.HostInstance.options.name,version:this.HostInstance.options.version});i||(i={version:this.HostInstance.options.version||``,remoteEntry:``,remotesInfo:{}},Pe({[this.HostInstance.options.name]:i})),i&&`remotesInfo`in i&&!k(i.remotesInfo,e.name).value&&(`version`in e||`entry`in e)&&(i.remotesInfo={...i==null?void 0:i.remotesInfo,[e.name]:{matchedVersion:`version`in e?e.version:e.entry}});let{hostGlobalSnapshot:a,remoteSnapshot:o,globalSnapshot:s}=this.getGlobalRemoteInfo(e),{remoteSnapshot:c,globalSnapshot:l}=await this.hooks.lifecycle.loadSnapshot.emit({options:r,moduleInfo:e,hostGlobalSnapshot:a,remoteSnapshot:o,globalSnapshot:s}),u,d;if(c){if(_(c)){let r=c.remoteEntry,i=await this.loadManifestSnapshot(r,e,{},{initiator:n,id:t||e.name}),a=Ne({...e,entry:r},i);u=i,d=a}else{let{remoteSnapshot:t}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:c,from:`global`});u=t,d=l}}else if(he(e)){let r=await this.loadManifestSnapshot(e.entry,e,{},{initiator:n,id:t||e.name}),i=Ne(e,r);u=r,d=i}else S(Qt,U,{remoteName:e.name,remoteVersion:e.version,hostName:this.HostInstance.options.name,globalSnapshot:JSON.stringify(l)},void 0,G(this.HostInstance.options));return await this.hooks.lifecycle.afterLoadSnapshot.emit({id:t,host:this.HostInstance,options:r,moduleInfo:e,remoteSnapshot:u}),{remoteSnapshot:u,globalSnapshot:d}}getGlobalRemoteInfo(e){return Qn(e,this.HostInstance)}async getManifestJson(e,t,n,r){return(async()=>{let n=W(t),i=this.manifestCache.get(e);if(i)return await this.hooks.lifecycle.afterLoadManifest.emit({manifestUrl:e,moduleInfo:t,resourceOptions:r,manifestJson:i,cached:!0,origin:this.HostInstance}),i;await this.hooks.lifecycle.beforeLoadManifest.emit({manifestUrl:e,moduleInfo:t,resourceOptions:r,origin:this.HostInstance});let a,o,s=!1;try{let t=await this.loaderHook.lifecycle.fetch.emit(e,{},n,r?{...r,url:e,resourceType:`manifest`}:void 0);(!t||!(t instanceof Response))&&(t=await fetch(e,{})),a=t,i=await t.json()}catch(c){o=c,i=await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:c,from:`runtime`,lifecycle:`afterResolve`,remote:n,origin:this.HostInstance}),i||(delete this.manifestLoading[e],await this.hooks.lifecycle.afterLoadManifest.emit({manifestUrl:e,moduleInfo:t,resourceOptions:r,response:a,error:c,origin:this.HostInstance}),S(Jt,U,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name},`${c}`,G(this.HostInstance.options))),s=!0}let c=[!i.metaData&&`metaData`,!i.exposes&&`exposes`,!i.shared&&`shared`].filter(Boolean),l=c.length>0?Error(`"${e}" is not a valid federation manifest for remote "${t.name}". Missing required fields: ${c.join(`, `)}.`):void 0;return l&&await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:l,from:`runtime`,lifecycle:`afterResolve`,remote:n,origin:this.HostInstance}),await this.hooks.lifecycle.afterLoadManifest.emit({manifestUrl:e,moduleInfo:t,resourceOptions:r,manifestJson:i,response:a,error:l||o,recovered:l?void 0:s||void 0,origin:this.HostInstance}),l&&S(an,U,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name,missingFields:c.join(`,`)},void 0,G(this.HostInstance.options)),this.manifestCache.set(e,i),i})()}async loadManifestSnapshot(e,t,n,r){let i=async()=>{let i=await this.getManifestJson(e,t,n,r),a=g(i,{version:e}),{remoteSnapshot:o}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:t,manifestJson:i,remoteSnapshot:a,manifestUrl:e,from:`manifest`});return o};return this.manifestLoading[e]||(this.manifestLoading[e]=i().then(e=>e)),this.manifestLoading[e]}},er=class{constructor(){this.hooks=new J({})}},tr=class{constructor(e){this.hooks=new J({beforeRegisterShare:new Z(`beforeRegisterShare`),afterRegisterShare:new Y(`afterRegisterShare`),afterResolve:new Q(`afterResolve`),beforeLoadShare:new Q(`beforeLoadShare`),loadShare:new X,afterLoadShare:new Y(`afterLoadShare`),errorLoadShare:new Y(`errorLoadShare`),resolveShare:new Z(`resolveShare`),initContainerShareScopeMap:new Z(`initContainerShareScopeMap`)}),this.host=e,this.shareScopeMap={},this.initTokens={},this._setGlobalShareScopeMap(e.options)}emitAfterRegisterShare(e,t){this.hooks.lifecycle.afterRegisterShare.emit({pkgName:e,...t,shareScopeMap:this.shareScopeMap,origin:this.host})}emitAfterLoadShare({lifecycle:e,pkgName:t,shareInfo:n,selectedShared:r,loadContext:i}){try{this.hooks.lifecycle.afterLoadShare.emit({pkgName:t,shareInfo:n,selectedShared:r,shared:this.host.options.shared,shareScopeMap:this.shareScopeMap,lifecycle:e,loadContext:i,origin:this.host})}catch(e){C(e)}}emitErrorLoadShare({lifecycle:e,pkgName:t,shareInfo:n,error:r,recovered:i,loadContext:a}){try{this.hooks.lifecycle.errorLoadShare.emit({pkgName:t,shareInfo:n,shared:this.host.options.shared,shareScopeMap:this.shareScopeMap,lifecycle:e,origin:this.host,error:r,recovered:i,loadContext:a})}catch(e){C(e)}}registerShared(e,t){let{newShareInfos:n,allShareInfos:r}=Nt(e,t);return Object.keys(n).forEach(e=>{n[e].forEach(n=>{n.scope.forEach(r=>{var i,a;this.hooks.lifecycle.beforeRegisterShare.emit({origin:this.host,pkgName:e,shared:n});let o=(i=this.shareScopeMap[r])==null?void 0:i[e],s=o==null?void 0:o[n.version];o||this.setShared({pkgName:e,lib:n.lib,get:n.get,loaded:n.loaded||!!n.lib,shared:n,from:t.name}),this.emitAfterRegisterShare(e,{scope:r,shared:n,previousShared:s,registeredShared:(a=this.shareScopeMap[r])==null||(a=a[e])==null?void 0:a[n.version],trigger:`runtime`})})})}),{newShareInfos:n,allShareInfos:r}}async loadShare(e,t){let{host:n}=this,r=t==null?void 0:t.context,i=Vt({pkgName:e,extraOptions:t,shareInfos:n.options.shared}),a=i;try{i!=null&&i.scope&&await Promise.all(i.scope.map(async e=>{await Promise.all(this.initializeSharing(e,{strategy:i.strategy,context:r}))}));let o=await this.hooks.lifecycle.beforeLoadShare.emit({pkgName:e,shareInfo:i,shared:n.options.shared,origin:n,loadContext:r});a=o.shareInfo,r=o.loadContext||r,x(a,`Cannot find shared "${e}" in host "${n.options.name}". Ensure the shared config for "${e}" is declared in the federation plugin options and the host has been initialized before loading shares.`);let s=a,{shared:c,useTreesShaking:l}=V(this.shareScopeMap,e,a,this.hooks.lifecycle.resolveShare,r)||{};if(c){let t=Ht(c,l);if(t.lib)return H(t,n.options.name),this.emitAfterLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:s,selectedShared:c,loadContext:r}),t.lib;if(t.loading&&!t.loaded){let i=await t.loading;return t.loaded=!0,t.lib||=i,H(t,n.options.name),this.emitAfterLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:s,selectedShared:c,loadContext:r}),i}{let i=(async()=>{let e=await t.get();return H(t,n.options.name),t.loaded=!0,t.lib=e,e})();this.setShared({pkgName:e,loaded:!1,shared:c,from:n.options.name,lib:null,loading:i,treeShaking:l?t:void 0});let a=await i;return this.emitAfterLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:s,selectedShared:c,loadContext:r}),a}}{if(t!=null&&t.customShareInfo)return this.emitErrorLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:s,recovered:!0,loadContext:r}),!1;let i=L(s.treeShaking),a=Ht(s,i),o=(async()=>{let t=await a.get();a.lib=t,a.loaded=!0,H(a,n.options.name);let{shared:i,useTreesShaking:o}=V(this.shareScopeMap,e,s,this.hooks.lifecycle.resolveShare,r)||{};if(i){let e=Ht(i,o);e.lib=t,e.loaded=!0,i.from=s.from}return t})();this.setShared({pkgName:e,loaded:!1,shared:s,from:n.options.name,lib:null,loading:o,treeShaking:i?a:void 0});let c=await o;return this.emitAfterLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:s,selectedShared:s,loadContext:r}),c}}catch(t){throw this.emitErrorLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:a,error:t,loadContext:r}),t}}initializeSharing(e=At,t){var n;let{host:r}=this,i=t==null?void 0:t.from,a=t==null?void 0:t.strategy,o=(t==null||(n=t.context)==null?void 0:n.trigger)||i||`runtime`,s=t==null?void 0:t.initScope,c=[];if(i!==`build`){let{initTokens:t}=this;s||=[];let n=t[e];if(n||=t[e]={from:this.host.name},s.indexOf(n)>=0)return c;s.push(n)}let l=this.shareScopeMap,u=r.options.name;l[e]||(l[e]={});let d=l[e],f=(t,n)=>{var r;let{version:i,eager:a}=n;d[t]=d[t]||{};let s=d[t],c=s[i],l=c&&Ht(c),f=!!(l&&(`eager`in l&&l.eager||`shareConfig`in l&&(r=l.shareConfig)!=null&&r.eager));(!l||l.strategy!==`loaded-first`&&!l.loaded&&(!a==!f?u>s[i].from:a))&&(s[i]=n),this.emitAfterRegisterShare(t,{scope:e,shared:n,previousShared:c,registeredShared:s[i],trigger:o})},p=async e=>{let{module:t}=await r.remoteHandler.getRemoteModuleAndOptions({id:e}),n,i={initiator:`loadShare`,id:e,resourceType:`remoteEntry`,url:t.remoteInfo.entry};try{n=await t.getEntry(void 0,i)}catch(i){if(n=await r.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:i,from:`runtime`,lifecycle:`beforeLoadShare`,remote:t.remoteInfo,origin:r}),!n)return}finally{n!=null&&n.init&&!t.initing&&(t.remoteEntryExports=n,await t.init(void 0,void 0,s,void 0,i))}};return Object.keys(r.options.shared).forEach(t=>{r.options.shared[t].forEach(n=>{n.scope.includes(e)&&f(t,n)})}),(r.options.shareStrategy===`version-first`||a===`version-first`)&&r.options.remotes.forEach(t=>{t.shareScope===e&&c.push(p(t.name))}),c}loadShareSync(e,t){let{host:n}=this,r=t==null?void 0:t.context,i=Vt({pkgName:e,extraOptions:t,shareInfos:n.options.shared});try{i!=null&&i.scope&&i.scope.forEach(e=>{this.initializeSharing(e,{strategy:i.strategy,from:t==null?void 0:t.from,context:r})});let{shared:a}=V(this.shareScopeMap,e,i,this.hooks.lifecycle.resolveShare,r)||{};if(a){if(typeof a.lib==`function`)return H(a,n.options.name),a.loaded||(a.loaded=!0,a.from===n.options.name&&(i.loaded=!0)),this.emitAfterLoadShare({lifecycle:`loadShareSync`,pkgName:e,shareInfo:i,selectedShared:a,loadContext:r}),a.lib;if(typeof a.get==`function`){let t=a.get();if(!(t instanceof Promise))return H(a,n.options.name),this.setShared({pkgName:e,loaded:!0,from:n.options.name,lib:t,shared:a}),this.emitAfterLoadShare({lifecycle:`loadShareSync`,pkgName:e,shareInfo:i,selectedShared:a,loadContext:r}),t}}if(i.lib)return i.loaded||=!0,this.emitAfterLoadShare({lifecycle:`loadShareSync`,pkgName:e,shareInfo:i,selectedShared:i,loadContext:r}),i.lib;if(i.get){let a=i.get();return a instanceof Promise&&S((t==null?void 0:t.from)===`build`?Xt:Zt,U,{hostName:n.options.name,sharedPkgName:e},void 0,G(n.options)),i.lib=a,this.setShared({pkgName:e,loaded:!0,from:n.options.name,lib:i.lib,shared:i}),this.emitAfterLoadShare({lifecycle:`loadShareSync`,pkgName:e,shareInfo:i,selectedShared:i,loadContext:r}),i.lib}S(Zt,U,{hostName:n.options.name,sharedPkgName:e},void 0,G(n.options))}catch(t){throw this.emitErrorLoadShare({lifecycle:`loadShareSync`,pkgName:e,shareInfo:i,error:t,loadContext:r}),t}}initShareScopeMap(e,t,n={}){let{host:r}=this;this.shareScopeMap[e]=t,this.hooks.lifecycle.initContainerShareScopeMap.emit({shareScope:t,options:r.options,origin:r,scopeName:e,hostShareScopeMap:n.hostShareScopeMap})}setShared({pkgName:e,shared:t,from:n,lib:r,loading:i,loaded:a,get:o,treeShaking:s}){let{version:c,scope:l=`default`,...u}=t,d=Array.isArray(l)?l:[l],f=e=>{let t=(e,t,n)=>{n&&!e[t]&&(e[t]=n)},n=s?e.treeShaking:e;t(n,`loaded`,a),t(n,`loading`,i),t(n,`get`,o),t(n,`lib`,r)};d.forEach(t=>{this.shareScopeMap[t]||(this.shareScopeMap[t]={}),this.shareScopeMap[t][e]||(this.shareScopeMap[t][e]={}),this.shareScopeMap[t][e][c]||(this.shareScopeMap[t][e][c]={version:c,scope:[t],...u,lib:r});let i=this.shareScopeMap[t][e][c];f(i),n&&i.from!==n&&(i.from=n)})}_setGlobalShareScopeMap(e){let t=Bt(),n=e.id||e.name;n&&!t[n]&&(t[n]=this.shareScopeMap)}},nr=class{constructor(){this.shareScopeMap={},this.hooks=new J({afterResolve:new Q(`afterResolve`)})}registerShared(){return{newShareInfos:{},allShareInfos:{}}}loadShare(){throw Error(`Shared dependency loading is disabled by experiments.optimization.disableShared.`)}loadShareSync(){throw Error(`Shared dependency loading is disabled by experiments.optimization.disableShared.`)}initializeSharing(){return[]}initShareScopeMap(e,t){this.shareScopeMap[e]=t}},rr=class{constructor(e){this.hooks=new J({beforeRegisterRemote:new Z(`beforeRegisterRemote`),registerRemote:new Z(`registerRemote`),beforeRequest:new Q(`beforeRequest`),afterMatchRemote:new X(`afterMatchRemote`),onLoad:new X(`onLoad`),afterLoadRemote:new X(`afterLoadRemote`),handlePreloadModule:new Y(`handlePreloadModule`),errorLoadRemote:new X(`errorLoadRemote`),beforePreloadRemote:new X(`beforePreloadRemote`),generatePreloadAssets:new X(`generatePreloadAssets`),afterPreloadRemote:new X(`afterPreloadRemote`),loadEntry:new X}),this.host=e,this.idToRemoteMap={}}formatAndRegisterRemote(e,t){return(t.remotes||[]).reduce((e,t)=>(this.registerRemote(t,e,{force:!1}),e),e.remotes)}setIdToRemoteMap(e,t){let{remote:n,expose:r}=t,{name:i,alias:a}=n;if(this.idToRemoteMap[e]={name:n.name,expose:r},a&&e.startsWith(i)){let t=e.replace(i,a);this.idToRemoteMap[t]={name:n.name,expose:r}}else if(a&&e.startsWith(a)){let t=e.replace(a,i);this.idToRemoteMap[t]={name:n.name,expose:r}}}async loadRemote(e,t){let{host:n}=this,r=Wt(n.options.remotes,e),i=e,a=r==null?void 0:r.expose,o=r?W(r.remote):void 0,s;try{let{loadFactory:r=!0}=t||{loadFactory:!0},{module:c,moduleOptions:l,remoteMatchInfo:u}=await this.getRemoteModuleAndOptions({id:e}),{pkgNameOrAlias:d,remote:f,expose:p,id:m,remoteSnapshot:h}=u;i=m,a=p,o=W(f);let g=await c.get(m,p,t,h),_=await this.hooks.lifecycle.onLoad.emit({id:m,pkgNameOrAlias:d,expose:p,exposeModule:r?g:void 0,exposeModuleFactory:r?void 0:g,remote:f,options:l,moduleInstance:c,origin:n});return this.setIdToRemoteMap(e,u),s={id:i,expose:a,remote:o,options:t,origin:n},typeof _==`function`?_:g}catch(r){let{from:c=`runtime`}=t||{from:`runtime`},l;try{l=await this.hooks.lifecycle.errorLoadRemote.emit({id:e,error:r,from:c,lifecycle:`onLoad`,expose:a,remote:o,origin:n})}catch(e){throw s={id:i,expose:a,remote:o,options:t,error:e,origin:n},e}if(!l)throw s={id:i,expose:a,remote:o,options:t,error:r,origin:n},r;return s={id:i,expose:a,remote:o,options:t,error:r,origin:n,recovered:!0},l}finally{s&&await this.hooks.lifecycle.afterLoadRemote.emit(s)}}async preloadRemote(e){let{host:t}=this,n=[];await this.hooks.lifecycle.beforePreloadRemote.emit({preloadOps:e,options:t.options,origin:t});let r=jn(t.options.remotes,e),i=e=>{let{preloadConfig:t,remote:n}=e,r=t.exposes||[];return r.length?r.map(r=>({ops:{...e,preloadConfig:{...t,exposes:[r]}},id:Ut(n.name,r)})):[{ops:e,id:`${n.name}/*`}]},a;await Promise.all(r.flatMap(i).map(async e=>{let{ops:r,id:i}=e,{remote:a,preloadConfig:o}=r,s=W(a);try{let{globalSnapshot:e,remoteSnapshot:c}=await t.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:a,id:i,initiator:`preloadRemote`}),l=await this.hooks.lifecycle.generatePreloadAssets.emit({origin:t,preloadOptions:r,remote:a,remoteInfo:s,globalSnapshot:e,remoteSnapshot:c});if(!l)return;let u=await Rn(s,t,l,!0,{initiator:`preloadRemote`,id:i},o.recordPreloadedAssets);n.push({remote:a,remoteInfo:s,preloadConfig:o,id:i,results:u})}catch(e){n.push({remote:a,remoteInfo:s,preloadConfig:o,id:i,results:[{url:s.entry,status:`error`,resourceType:/\.json(?:$|[?#])/i.test(s.entry)?`manifest`:`remoteEntry`,initiator:`preloadRemote`,id:i,error:e}]})}}));let o=n.flatMap(e=>e.results.filter(e=>e.status===`error`||e.status===`timeout`));if(o.length>0&&(a=Error(`preloadRemote failed to load ${o.length} resource(s).`),Object.assign(a,{results:n,failedResults:o})),await this.hooks.lifecycle.afterPreloadRemote.emit({preloadOps:e,options:t.options,origin:t,results:n,error:a}),a)throw a}registerRemotes(e,t){let{host:n}=this;e.forEach(e=>{this.registerRemote(e,n.options.remotes,{force:t==null?void 0:t.force})})}initRawContainer(e,t,n){let{host:r}=this,i=new Hn({host:r,remoteInfo:W({name:e,entry:t})});return i.remoteEntryExports=n,r.moduleCache.set(e,i),i}async getRemoteModuleAndOptions(e){let{host:t}=this,{id:n}=e,r;try{r=await this.hooks.lifecycle.beforeRequest.emit({id:n,options:t.options,origin:t})}catch(e){if(r=await this.hooks.lifecycle.errorLoadRemote.emit({id:n,options:t.options,origin:t,from:`runtime`,error:e,lifecycle:`beforeRequest`}),!r)throw e}let{id:i}=r,a=Wt(t.options.remotes,i);if(!a)try{S(Yt,U,{hostName:t.options.name,requestId:i},void 0,G(t.options))}catch(e){throw await this.hooks.lifecycle.afterMatchRemote.emit({id:i,options:t.options,error:e,origin:t}),e}let{remote:o}=a,s=W(o);await this.hooks.lifecycle.afterMatchRemote.emit({id:i,...a,options:t.options,remoteInfo:s,origin:t});let c=await t.sharedHandler.hooks.lifecycle.afterResolve.emit({id:i,...a,options:t.options,origin:t,remoteInfo:s}),{remote:l,expose:u}=c;x(l&&u,`The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${i}.`);let d=t.moduleCache.get(l.name),f={host:t,remoteInfo:s};return d||(d=new Hn(f),t.moduleCache.set(l.name,d)),{module:d,moduleOptions:f,remoteMatchInfo:c}}registerRemote(e,t,n){let{host:r}=this,i=()=>{if(e.alias){let n=t.find(t=>{var n;return e.alias&&(t.name.startsWith(e.alias)||((n=t.alias)==null?void 0:n.startsWith(e.alias)))});x(!n,`The alias ${e.alias} of remote ${e.name} is not allowed to be the prefix of ${n&&n.name} name or alias`)}`entry`in e&&typeof window<`u`&&!e.entry.startsWith(`http`)&&(e.entry=new URL(e.entry,window.location.origin).href),e.shareScope||=At,e.type||=jt};this.hooks.lifecycle.beforeRegisterRemote.emit({remote:e,origin:r});let a=t.find(t=>t.name===e.name);if(!a)i(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:r});else{let o=[`The remote "${e.name}" is already registered.`,`Please note that overriding it may cause unexpected errors.`];n!=null&&n.force&&(this.removeRemote(a),i(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:r}),f(o.join(` `)))}}removeRemote(e){try{let{host:n}=this,{name:r}=e,i=n.options.remotes.findIndex(e=>e.name===r);i!==-1&&n.options.remotes.splice(i,1);let a=k(T.__FEDERATION__.moduleInfo,w(e)).key;delete T.__FEDERATION__.moduleInfo[a],`entry`in e&&(n.snapshotHandler.manifestCache.delete(e.entry),delete D.__FEDERATION__.__MANIFEST_LOADING__[e.entry]);let{hostGlobalSnapshot:o}=Qn(e,n);if(o){let t=o&&`remotesInfo`in o&&o.remotesInfo&&k(o.remotesInfo,e.name).key;t&&delete o.remotesInfo[t]}let s=n.moduleCache.get(e.name);if(s){var t;let r=s.remoteInfo,i=r.entryGlobalName;T[i]&&((t=Object.getOwnPropertyDescriptor(T,i))!=null&&t.configurable?delete T[i]:T[i]=void 0);let a=Cn(s.remoteInfo);O[a]&&delete O[a];let o=r.buildVersion?u(r.name,r.buildVersion):r.name,c=T.__FEDERATION__.__INSTANCES__.findIndex(e=>r.buildVersion?e.options.id===o:e.name===o);if(c!==-1){let e=T.__FEDERATION__.__INSTANCES__[c];o=e.options.id||o;let t=Bt(),n=!0,i=[];Object.keys(t).forEach(e=>{let a=t[e];a&&Object.keys(a).forEach(t=>{let o=a[t];o&&Object.keys(o).forEach(a=>{let s=o[a];s&&Object.keys(s).forEach(o=>{let c=s[o];c&&typeof c==`object`&&c.from===r.name&&(c.loaded||c.loading?(c.useIn=c.useIn.filter(e=>e!==r.name),c.useIn.length?n=!1:i.push([e,t,a,o])):i.push([e,t,a,o]))})})})}),n&&(e.shareScopeMap={},delete t[o]),i.forEach(([e,n,r,i])=>{var a;(a=t[e])==null||(a=a[n])==null||(a=a[r])==null||delete a[i]}),T.__FEDERATION__.__INSTANCES__.splice(c,1)}n.moduleCache.delete(e.name)}}catch(e){pe.error(`removeRemote failed: ${e instanceof Error?e.message:String(e)}`)}}},ir=typeof FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN!=`boolean`||!FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN,ar=typeof FEDERATION_OPTIMIZE_NO_REMOTE!=`boolean`||!FEDERATION_OPTIMIZE_NO_REMOTE,or=typeof FEDERATION_OPTIMIZE_NO_SHARED!=`boolean`||!FEDERATION_OPTIMIZE_NO_SHARED,sr=class{constructor(e){this.hooks=new J({beforeInit:new Z(`beforeInit`),init:new Y,beforeInitContainer:new Q(`beforeInitContainer`),initContainer:new Q(`initContainer`)}),this.version=`2.9.2`,this.moduleCache=new Map,this.loaderHook=new J({getModuleInfo:new Y,createScript:new Y,createLink:new Y,fetch:new X,loadEntryError:new X,afterLoadEntry:new X(`afterLoadEntry`),beforeInitRemote:new X(`beforeInitRemote`),afterInitRemote:new X(`afterInitRemote`),beforeGetExpose:new X(`beforeGetExpose`),afterGetExpose:new X(`afterGetExpose`),beforeExecuteFactory:new X(`beforeExecuteFactory`),afterExecuteFactory:new X(`afterExecuteFactory`),getModuleFactory:new X}),this.bridgeHook=new J({beforeBridgeRender:new Y,afterBridgeRender:new Y,beforeBridgeDestroy:new Y,afterBridgeDestroy:new Y,afterBridgeRouteSync:new Y});let t=ar&&ir?[Kn(),Zn()]:[],n={id:Tn(),name:e.name,plugins:t,remotes:[],shared:{},inBrowser:!0};this.name=e.name,this.options=n,this.snapshotHandler=ar?new $n(this):new er,this.sharedHandler=or?new tr(this):new nr,this.remoteHandler=ar?new rr(this):new Wn,this.shareScopeMap=this.sharedHandler.shareScopeMap,this.registerPlugins([...n.plugins,...e.plugins||[]]),this.options=this.formatOptions(n,e)}initOptions(e){e.name&&e.name!==this.options.name&&S(de(tn,U)),this.registerPlugins(e.plugins);let t=this.formatOptions(this.options,e);return this.options=t,t}async loadShare(e,t){return this.sharedHandler.loadShare(e,t)}loadShareSync(e,t){return this.sharedHandler.loadShareSync(e,t)}initializeSharing(e=At,t){return this.sharedHandler.initializeSharing(e,t)}initRawContainer(e,t,n){return this.remoteHandler.initRawContainer(e,t,n)}async loadRemote(e,t){return this.remoteHandler.loadRemote(e,t)}async preloadRemote(e){return this.remoteHandler.preloadRemote(e)}initShareScopeMap(e,t,n={}){this.sharedHandler.initShareScopeMap(e,t,n)}formatOptions(e,t){let n=or?Nt(e,t).allShareInfos:{},{userOptions:r,options:i}=this.hooks.lifecycle.beforeInit.emit({origin:this,userOptions:t,options:e,shareInfo:n}),a=this.remoteHandler.formatAndRegisterRemote(i,r),{allShareInfos:o}=this.sharedHandler.registerShared(i,r),s=[...i.plugins];r.plugins&&r.plugins.forEach(e=>{s.includes(e)||s.push(e)});let c={...e,...t,plugins:s,remotes:a,shared:o,id:r.id||e.id};return this.hooks.lifecycle.init.emit({origin:this,options:c}),c}registerPlugins(e){this.options.plugins=On(e,this)}registerRemotes(e,t){return this.remoteHandler.registerRemotes(e,t)}registerShared(e){this.sharedHandler.registerShared(this.options,{...this.options,shared:e})}},cr=zn;function lr(){return typeof FEDERATION_BUILD_IDENTIFIER<`u`?FEDERATION_BUILD_IDENTIFIER:``}function ur(e,t){let n=lr();return T.__FEDERATION__.__INSTANCES__.find(r=>!!(n&&r.options.id===n||r.options.name===e&&!r.options.version&&!t||r.options.name===e&&t&&r.options.version===t))}export{Ae as a,ke as i,cr as n,Oe as o,sr as r,ur as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=function(e,t){return new URL(e,t).href},t={},n=function(e){return e.pathname.endsWith(`.css`)},r=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},i=function(i,a,o){let s=Promise.resolve();if(a&&a.length>0){let i,c=document.querySelector(`meta[property=csp-nonce]`),l=(c==null?void 0:c.nonce)||(c==null?void 0:c.getAttribute(`nonce`));function u(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function d(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}s=u(a.map(a=>{a=e(a,o);let s=d(a),c=n(s);return r(t,s.href,()=>{if(i===void 0){i={all:new Set,styles:new Set};let e=document.getElementsByTagName(`link`);for(let t=e.length-1;t>=0;t--){let n=e[t];i.all.add(n.href),n.rel===`stylesheet`&&i.styles.add(n.href)}}if((c?i.styles:i.all).has(s.href))return;let e=document.createElement(`link`);if(e.rel=c?`stylesheet`:`modulepreload`,c||(e.as=`script`),e.crossOrigin=``,e.href=s.href,l&&e.setAttribute(`nonce`,l),document.head.appendChild(e),c)return new Promise((t,n)=>{e.addEventListener(`load`,t),e.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${s}`)))})})}).filter(e=>e!==void 0))}function c(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return s.then(e=>{for(let t of e||[])t.status===`rejected`&&c(t.reason);return i().catch(c)})};export{i as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./vite-preload-helper-BbbETgeG.js";import"./dist-BkS8HKl2.js";var t=e=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`||Object.keys(e).length===0)break;let n=Object.getPrototypeOf(e);if(n!==null&&n!==Object.prototype)break;let r=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(r.length>0&&r.some(e=>e!==void 0))break;t=e}return t},n={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__ShoppingRouteCatalogSet__mf_owner__212380770976295__prebuild__react__prebuild__-CTXDWPi7.js`),[],import.meta.url)},r={react:{name:`react`,version:`19.3.1`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`ShoppingRouteCatalogSet`,canLiveRebind:!0,get(){let e=r.react;return e.lib?e.lib:(e.loading||=(async()=>{try{let{react:r}=n,i=t({...await r()});return i.__esModule!==!0&&Object.defineProperty(i,"__esModule",{value:!0,enumerable:!1}),e.lib=function(){return i},e.loaded=!0,e.lib}finally{e.loading=void 0}})(),e.loading)},shareConfig:{singleton:!0,requiredVersion:`>=18`,strictVersion:!1,eager:!1}}},i=[];export{i as usedRemotes,r as usedShared};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-XKyaHtl9.js";import{t}from"./vite-preload-helper-BbbETgeG.js";var n=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},r=Symbol.for(`module-federation.shared-cache-listeners`),i=e=>{let t=e[r];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,r,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},a=(e,t,n)=>{let r=i(e);(r[t.canonical]||=new Set).add(n)},o=Symbol.for(`module-federation.shared-cache-owners`),ee=e=>{let t=e[o];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,o,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},s=e=>{let t=[e,e==null?void 0:e.default];for(let e of t)if(e&&typeof e==`object`){for(let t of[`__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE`,`__TEST_INTERNALS`,`__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`]){let n=e[t];if(n&&typeof n==`object`)return{internals:n}}if(typeof e.useState==`function`)return{hook:e.useState}}},te=(e,t)=>{if(e===t)return!0;let n=s(e),r=s(t);if(!n||!r)return!1;let i=n.internals,a=r.internals;return i!==void 0||a!==void 0?i!==void 0&&i===a:typeof n.hook==`function`&&n.hook===r.hook},c=(e,t,i,a)=>{var s;let c=n(e,t);if(c!==void 0&&te(c,i))return i;e[t.canonical]=i;let l=t.aliases||[];for(let t of l)Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0});let u=e[o];a===void 0?u&&delete u[t.canonical]:ee(e)[t.canonical]=a;let d=(s=e[r])==null?void 0:s[t.canonical];if(d)for(let e of d)e(i);return i},l=e({Activity:()=>h,Children:()=>g,Component:()=>_,Fragment:()=>v,Profiler:()=>y,PureComponent:()=>b,StrictMode:()=>x,Suspense:()=>S,ViewTransition:()=>C,__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE:()=>w,__COMPILER_RUNTIME:()=>T,__moduleExports:()=>$,addTransitionType:()=>E,cache:()=>D,cacheSignal:()=>O,cloneElement:()=>k,createContext:()=>A,createElement:()=>j,createRef:()=>M,default:()=>m,forwardRef:()=>N,isValidElement:()=>P,lazy:()=>F,memo:()=>ae,startTransition:()=>I,unstable_useCacheRefresh:()=>L,use:()=>R,useActionState:()=>z,useCallback:()=>B,useContext:()=>V,useDebugValue:()=>H,useDeferredValue:()=>U,useEffect:()=>W,useEffectEvent:()=>G,useId:()=>K,useImperativeHandle:()=>q,useInsertionEffect:()=>J,useLayoutEffect:()=>Y,useMemo:()=>X,useOptimistic:()=>oe,useReducer:()=>se,useRef:()=>ce,useState:()=>Z,useSyncExternalStore:()=>le,useTransition:()=>ue,version:()=>de}),u=`__mf_init__virtual:mf:__mfe_internal__ShoppingRouteCatalogSet__mf_owner__212380770976295__mf_v__runtimeInit__mf_v__.js__`,d=globalThis[u];if(!d){let e,t,n=new Promise((n,r)=>{e=n,t=r});d=globalThis[u]={initPromise:n,initResolve:e,initReject:t}}var ne=d.initPromise,f=`__mf_module_cache__`;globalThis[f]||={share:{},remote:{}},globalThis[f].share||={},globalThis[f].remote||={};var p=globalThis[f],re=e=>{let t=p.pendingShareLoads||=[];t.push(e);let n=()=>{let n=t.indexOf(e);n!==-1&&t.splice(n,1)};return e.then(n,n),e};for(let e of Object.keys(p.share))if(e.startsWith(`default:`)){let t=e.slice(8);p.share[t]===void 0&&(p.share[t]=p.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;p.share[t]===void 0&&(p.share[t]=p.share[e])}var ie=e=>{let t=(()=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`)break;let n=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(n.length>0&&n.some(e=>e!==void 0))break;t=e}return t})();return t&&Object.getPrototypeOf(t)===null?Object.assign({},t):t},m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,ae,I,L,R,z,B,V,H,U,W,G,K,q,J,Y,X,oe,se,ce,Z,le,ue,de,Q=e=>{$=e,h=e.Activity,g=e.Children,_=e.Component,v=e.Fragment,y=e.Profiler,b=e.PureComponent,x=e.StrictMode,S=e.Suspense,C=e.ViewTransition,w=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=e.__COMPILER_RUNTIME,E=e.addTransitionType,D=e.cache,O=e.cacheSignal,k=e.cloneElement,A=e.createContext,j=e.createElement,M=e.createRef,N=e.forwardRef,P=e.isValidElement,F=e.lazy,ae=e.memo,I=e.startTransition,L=e.unstable_useCacheRefresh,R=e.use,z=e.useActionState,B=e.useCallback,V=e.useContext,H=e.useDebugValue,U=e.useDeferredValue,W=e.useEffect,G=e.useEffectEvent,K=e.useId,q=e.useImperativeHandle,J=e.useInsertionEffect,Y=e.useLayoutEffect,X=e.useMemo,oe=e.useOptimistic,se=e.useReducer,ce=e.useRef,Z=e.useState,le=e.useSyncExternalStore,ue=e.useTransition,de=e.version,m=e.default??e};a(p.share,{canonical:`default:react`,aliases:[`react`]},Q);var $=n(p.share,{canonical:`default:react`,aliases:[`react`]});$===void 0?re(ne.then(()=>{if($=n(p.share,{canonical:`default:react`,aliases:[`react`]}),$!==void 0)Q($);else return t(()=>import(`./_virtual_mf___mfe_internal__ShoppingRouteCatalogSet__mf_owner__212380770976295__prebuild__react__prebuild__-CTXDWPi7.js`).then(e=>{$=ie(e),c(p.share,{canonical:`default:react`,aliases:[`react`]},$,`ShoppingRouteCatalogSet`)}),[],import.meta.url)})):Q($);export{l as n,m as t};
|