iobroker.shoppingroute 0.5.3 → 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.
Files changed (164) hide show
  1. package/README.md +37 -2
  2. package/README_DE.md +50 -2
  3. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteAdminSet__mf_owner__1-B8ehY5g2.js +1 -0
  4. package/admin/custom/assets/_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__138890973911960__loadShare__shared-DZTxWNS7.js +1 -0
  5. package/admin/custom/assets/_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__138890973911960__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
  6. package/admin/custom/assets/dist-BkS8HKl2.js +1 -0
  7. package/admin/custom/assets/helpers-ClFTp7rx.js +1 -0
  8. package/admin/custom/assets/hostInit-BOeMz1zp.js +1 -0
  9. package/admin/custom/assets/pendingShares-pgb2SN6l.js +2 -0
  10. package/admin/custom/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  11. package/admin/custom/assets/route-editor-components-BqBsw0ZO.js +64 -0
  12. package/admin/custom/assets/utils-D1AcFl0O.js +4 -0
  13. package/admin/custom/assets/vite-preload-helper-BbbETgeG.js +1 -0
  14. package/admin/custom/catalogManager/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteCatalogSet__mf_owner__1-BpyKyGXk.js +1 -0
  15. package/admin/custom/catalogManager/assets/_virtual_mf___mfe_internal__ShoppingRouteCatalogSet__mf_owner__212380770976295__loadShare__shared-DsBXfGks.js +1 -0
  16. package/admin/custom/catalogManager/assets/_virtual_mf___mfe_internal__ShoppingRouteCatalogSet__mf_owner__212380770976295__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
  17. package/admin/custom/catalogManager/assets/catalog-manager-components-CFKVExet.js +156 -0
  18. package/admin/custom/catalogManager/assets/dist-BkS8HKl2.js +1 -0
  19. package/admin/custom/catalogManager/assets/helpers-ClFTp7rx.js +1 -0
  20. package/admin/custom/catalogManager/assets/hostInit-BZ0mepnS.js +1 -0
  21. package/admin/custom/catalogManager/assets/pendingShares-CKZoF8J7.js +2 -0
  22. package/admin/custom/catalogManager/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  23. package/admin/custom/catalogManager/assets/utils-D1AcFl0O.js +4 -0
  24. package/admin/custom/catalogManager/assets/vite-preload-helper-BbbETgeG.js +1 -0
  25. package/admin/custom/catalogManager/catalogManager.js +2 -3
  26. package/admin/custom/catalogManager/mf-manifest.json +1 -1
  27. package/admin/custom/catalogManager/mf-stats.json +1 -1
  28. package/admin/custom/markets/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteMarketsSet__mf_owner__1-D0qi__tw.js +1 -0
  29. package/admin/custom/markets/assets/_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__73495435433483__loadShare__shared-BtDUBZDl.js +1 -0
  30. package/admin/custom/markets/assets/_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__73495435433483__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
  31. package/admin/custom/markets/assets/dist-BkS8HKl2.js +1 -0
  32. package/admin/custom/markets/assets/helpers-ClFTp7rx.js +1 -0
  33. package/admin/custom/markets/assets/hostInit-Bi42FhDI.js +1 -0
  34. package/admin/custom/markets/assets/markets-editor-components-BV2GcNV2.js +67 -0
  35. package/admin/custom/markets/assets/pendingShares-CRAxj_6i.js +2 -0
  36. package/admin/custom/markets/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  37. package/admin/custom/markets/assets/utils-D1AcFl0O.js +4 -0
  38. package/admin/custom/markets/assets/vite-preload-helper-BbbETgeG.js +1 -0
  39. package/admin/custom/markets/marketsEditor.js +2 -3
  40. package/admin/custom/markets/mf-manifest.json +1 -1
  41. package/admin/custom/markets/mf-stats.json +1 -1
  42. package/admin/custom/mf-manifest.json +1 -1
  43. package/admin/custom/mf-stats.json +1 -1
  44. package/admin/custom/productGroups/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__1-BGTAKiy6.js +1 -0
  45. package/admin/custom/productGroups/assets/_virtual_mf___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__235177594606940__loadShare__shared-CoePXK3R.js +1 -0
  46. package/admin/custom/productGroups/assets/_virtual_mf___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__235177594606940__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
  47. package/admin/custom/productGroups/assets/dist-BkS8HKl2.js +1 -0
  48. package/admin/custom/productGroups/assets/helpers-ClFTp7rx.js +1 -0
  49. package/admin/custom/productGroups/assets/hostInit-sTqINWmb.js +1 -0
  50. package/admin/custom/productGroups/assets/pendingShares-pXbOc5sm.js +2 -0
  51. package/admin/custom/productGroups/assets/product-groups-editor-components-CBZnA_fZ.js +44 -0
  52. package/admin/custom/productGroups/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  53. package/admin/custom/productGroups/assets/utils-D1AcFl0O.js +4 -0
  54. package/admin/custom/productGroups/assets/vite-preload-helper-BbbETgeG.js +1 -0
  55. package/admin/custom/productGroups/mf-manifest.json +1 -1
  56. package/admin/custom/productGroups/mf-stats.json +1 -1
  57. package/admin/custom/productGroups/productGroupsEditor.js +2 -3
  58. package/admin/custom/review/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-KfOzwFEK.js +1 -0
  59. package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__268299877205720__loadShare__shared-CrhGiAgf.js +1 -0
  60. package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__268299877205720__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
  61. package/admin/custom/review/assets/dist-BkS8HKl2.js +1 -0
  62. package/admin/custom/review/assets/helpers-ClFTp7rx.js +1 -0
  63. package/admin/custom/review/assets/hostInit-_7Su3ma3.js +1 -0
  64. package/admin/custom/review/assets/pendingShares-Cr47Emqi.js +2 -0
  65. package/admin/custom/review/assets/review-editor-components-DYzZeptf.js +30 -0
  66. package/admin/custom/review/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  67. package/admin/custom/review/assets/utils-D1AcFl0O.js +4 -0
  68. package/admin/custom/review/assets/vite-preload-helper-BbbETgeG.js +1 -0
  69. package/admin/custom/review/mf-manifest.json +1 -1
  70. package/admin/custom/review/mf-stats.json +1 -1
  71. package/admin/custom/review/reviewEditor.js +2 -3
  72. package/admin/custom/routeEditor.js +2 -3
  73. package/admin/custom/shoppingList/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-CeTtKHTc.js +1 -0
  74. package/admin/custom/shoppingList/assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__88072081547630__loadShare__shared-DnxN9Y7t.js +1 -0
  75. package/admin/custom/shoppingList/assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__88072081547630__prebuild__react__prebuild__-CTXDWPi7.js +1 -0
  76. package/admin/custom/shoppingList/assets/dist-BkS8HKl2.js +1 -0
  77. package/admin/custom/shoppingList/assets/helpers-ClFTp7rx.js +1 -0
  78. package/admin/custom/shoppingList/assets/hostInit-DWH9o7-L.js +1 -0
  79. package/admin/custom/shoppingList/assets/pendingShares--q_HS9jG.js +2 -0
  80. package/admin/custom/shoppingList/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  81. package/admin/custom/shoppingList/assets/shopping-list-editor-components-x_Khx0cM.js +73 -0
  82. package/admin/custom/shoppingList/assets/utils-D1AcFl0O.js +4 -0
  83. package/admin/custom/shoppingList/assets/vite-preload-helper-BbbETgeG.js +1 -0
  84. package/admin/custom/shoppingList/mf-manifest.json +1 -1
  85. package/admin/custom/shoppingList/mf-stats.json +1 -1
  86. package/admin/custom/shoppingList/shoppingListEditor.js +2 -3
  87. package/admin/i18n/de.json +12 -1
  88. package/admin/i18n/en.json +12 -1
  89. package/admin/i18n/es.json +12 -1
  90. package/admin/i18n/fr.json +12 -1
  91. package/admin/i18n/it.json +12 -1
  92. package/admin/i18n/nl.json +12 -1
  93. package/admin/i18n/pl.json +12 -1
  94. package/admin/i18n/pt.json +12 -1
  95. package/admin/i18n/ru.json +12 -1
  96. package/admin/i18n/uk.json +12 -1
  97. package/admin/i18n/zh-cn.json +12 -1
  98. package/admin/jsonConfig.json +89 -0
  99. package/build/lib/bring-io.js +20 -0
  100. package/build/lib/bring-sync.js +177 -0
  101. package/build/lib/parser.js +43 -11
  102. package/build/main.js +306 -38
  103. package/io-package.json +28 -37
  104. package/package.json +4 -4
  105. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteAdminSet__mf_owner__1-u-WAs2m5.js +0 -1
  106. package/admin/custom/assets/_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__loadShare__shared-Cn8eOhIC.js +0 -1
  107. package/admin/custom/assets/_virtual_mf___mfe_internal__ShoppingRouteAdminSet__mf_owner__195137731327240__prebuild__react__prebuild__-Dj6dAy_K.js +0 -9
  108. package/admin/custom/assets/helpers-rsP3EuoI.js +0 -1
  109. package/admin/custom/assets/hostInit-C9k-trSr.js +0 -1
  110. package/admin/custom/assets/index-CWGnoEzs.js +0 -7
  111. package/admin/custom/assets/index-CqrYeeB9.js +0 -1
  112. package/admin/custom/assets/pendingShares-BhyJ1VpE.js +0 -2
  113. package/admin/custom/assets/route-editor-components-Bl6m1_2H.js +0 -64
  114. package/admin/custom/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
  115. package/admin/custom/catalogManager/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteCatalogSet__mf_owner__1-CAPCB9Xc.js +0 -1
  116. package/admin/custom/catalogManager/assets/_virtual_mf___mfe_internal__ShoppingRouteCatalogSet__mf_owner__270978611965008__loadShare__shared-jSwkJZrB.js +0 -1
  117. package/admin/custom/catalogManager/assets/_virtual_mf___mfe_internal__ShoppingRouteCatalogSet__mf_owner__270978611965008__prebuild__react__prebuild__-B27G_6sf.js +0 -9
  118. package/admin/custom/catalogManager/assets/catalog-manager-components-0s0iqtJs.js +0 -156
  119. package/admin/custom/catalogManager/assets/helpers-rsP3EuoI.js +0 -1
  120. package/admin/custom/catalogManager/assets/hostInit-CHVxebwT.js +0 -1
  121. package/admin/custom/catalogManager/assets/index-CWGnoEzs.js +0 -7
  122. package/admin/custom/catalogManager/assets/index-CqrYeeB9.js +0 -1
  123. package/admin/custom/catalogManager/assets/pendingShares-CjAiEeBw.js +0 -2
  124. package/admin/custom/catalogManager/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
  125. package/admin/custom/markets/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteMarketsSet__mf_owner__1-CzqI6H3Y.js +0 -1
  126. package/admin/custom/markets/assets/_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__loadShare__shared-Ci7WxzQy.js +0 -1
  127. package/admin/custom/markets/assets/_virtual_mf___mfe_internal__ShoppingRouteMarketsSet__mf_owner__240489627525110__prebuild__react__prebuild__-B3doRuSR.js +0 -9
  128. package/admin/custom/markets/assets/helpers-rsP3EuoI.js +0 -1
  129. package/admin/custom/markets/assets/hostInit-C2rD9w0N.js +0 -1
  130. package/admin/custom/markets/assets/index-CWGnoEzs.js +0 -7
  131. package/admin/custom/markets/assets/index-CqrYeeB9.js +0 -1
  132. package/admin/custom/markets/assets/markets-editor-components-DFBAhACl.js +0 -67
  133. package/admin/custom/markets/assets/pendingShares-DQ3krbvN.js +0 -2
  134. package/admin/custom/markets/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
  135. package/admin/custom/productGroups/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__1-D92JU0oD.js +0 -1
  136. package/admin/custom/productGroups/assets/_virtual_mf___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__260837768108578__loadShare__shared-gSY_bOGR.js +0 -1
  137. package/admin/custom/productGroups/assets/_virtual_mf___mfe_internal__ShoppingRouteProductGroupsSet__mf_owner__260837768108578__prebuild__react__prebuild__-DzLn5BC6.js +0 -9
  138. package/admin/custom/productGroups/assets/helpers-rsP3EuoI.js +0 -1
  139. package/admin/custom/productGroups/assets/hostInit-D3L2o0WN.js +0 -1
  140. package/admin/custom/productGroups/assets/index-CWGnoEzs.js +0 -7
  141. package/admin/custom/productGroups/assets/index-CqrYeeB9.js +0 -1
  142. package/admin/custom/productGroups/assets/pendingShares-JH5TAaZe.js +0 -2
  143. package/admin/custom/productGroups/assets/product-groups-editor-components-B5P8jYvF.js +0 -44
  144. package/admin/custom/productGroups/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
  145. package/admin/custom/review/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-DxF4tUV2.js +0 -1
  146. package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__252153816870476__loadShare__shared-BMk8_6UE.js +0 -1
  147. package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__252153816870476__prebuild__react__prebuild__-BJ0P2qtm.js +0 -9
  148. package/admin/custom/review/assets/helpers-rsP3EuoI.js +0 -1
  149. package/admin/custom/review/assets/hostInit-g6dZHhG7.js +0 -1
  150. package/admin/custom/review/assets/index-CWGnoEzs.js +0 -7
  151. package/admin/custom/review/assets/index-CqrYeeB9.js +0 -1
  152. package/admin/custom/review/assets/pendingShares-CEtt_VY7.js +0 -2
  153. package/admin/custom/review/assets/review-editor-components-Fq4TZE0H.js +0 -30
  154. package/admin/custom/review/assets/vite-preload-helper-Dp1pzeXC.js +0 -1
  155. package/admin/custom/shoppingList/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-Cnw_rV5D.js +0 -1
  156. package/admin/custom/shoppingList/assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__46505510294969__loadShare__shared-CsjZ4mES.js +0 -1
  157. package/admin/custom/shoppingList/assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__46505510294969__prebuild__react__prebuild__-wqzjuP-r.js +0 -9
  158. package/admin/custom/shoppingList/assets/helpers-rsP3EuoI.js +0 -1
  159. package/admin/custom/shoppingList/assets/hostInit-DwkVTjxn.js +0 -1
  160. package/admin/custom/shoppingList/assets/index-CWGnoEzs.js +0 -7
  161. package/admin/custom/shoppingList/assets/index-CqrYeeB9.js +0 -1
  162. package/admin/custom/shoppingList/assets/pendingShares-Cezvw3_2.js +0 -2
  163. package/admin/custom/shoppingList/assets/shopping-list-editor-components-DkvnBuqv.js +0 -73
  164. 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
- > **Current release: 0.5.3**
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,6 +58,25 @@ 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
+ ## 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
+
61
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.**
@@ -84,6 +103,10 @@ This release fixes the saving and moving problems reported with the new manageme
84
103
 
85
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.
86
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
+
87
110
  ## Main features
88
111
 
89
112
  - dedicated **ShoppingRoute management page** in the ioBroker sidebar for shopping list, products, markets, product groups, routes, lists and review items
@@ -102,7 +125,7 @@ Open **ShoppingRoute** in the ioBroker sidebar on your phone. Use the `⋮⋮` h
102
125
  - global, per-list and temporary priority markets
103
126
  - optional market headings such as `═════ ALDI ═════`
104
127
  - optional cross-market consolidation using a minimum-item threshold
105
- - explicit market requests are never moved to another store
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
106
129
 
107
130
  #### Smart store consolidation – fewer stops, shorter shopping trips
108
131
 
@@ -200,6 +223,18 @@ Please use the [ioBroker tester thread](https://forum.iobroker.net/topic/85510/t
200
223
 
201
224
  ## Changelog
202
225
 
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
+
203
238
  ### 0.5.3 (2026-10-17)
204
239
 
205
240
  - Adds bilingual command aliases: W/C temporary store, F/E permanent store, H/U up, R/D down.
package/README_DE.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ![ShoppingRoute](admin/shoppingroute.png)
4
4
 
5
- **Aktuelle Version: 0.5.3 (veröffentlicht)**
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,6 +13,42 @@ 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.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
+
16
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.**
@@ -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 von REWE`)
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,6 +161,18 @@ ShoppingRoute wird unter der **[MIT-Lizenz](LICENSE)** veröffentlicht. Frühere
125
161
 
126
162
  ## Changelog
127
163
 
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
+
128
176
  ### 0.5.3 (2026-10-17)
129
177
 
130
178
  - Deutsche und englische Befehle: W/C temporär, F/E dauerhaft, H/U hoch, R/D runter.
@@ -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};
@@ -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};