iobroker.shoppingroute 0.3.7 → 0.3.9

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 (24) hide show
  1. package/README.md +20 -1
  2. package/README_DE.md +20 -1
  3. package/admin/custom/review/assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-DXSRuGUo.js +1 -0
  4. package/admin/custom/review/assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__1__loadShare__react__loadShare__.js-DDD1Hp7v.js +9 -0
  5. package/admin/custom/review/assets/hostInit-BfEpvyuX.js +1 -0
  6. package/admin/custom/review/assets/index-2HOz3j7B.js +7 -0
  7. package/admin/custom/review/assets/review-editor-components-CWyNDqPF.js +25 -0
  8. package/admin/custom/review/assets/virtualExposes-BDTLizpE.js +1 -0
  9. package/admin/custom/review/assets/vite-preload-helper-Dp1pzeXC.js +1 -0
  10. package/admin/custom/review/mf-manifest.json +1 -0
  11. package/admin/custom/review/mf-stats.json +1 -0
  12. package/admin/custom/review/reviewEditor.js +13 -0
  13. package/admin/custom/shoppingList/assets/shopping-list-editor-components-MoJ1XKOp.js +27 -0
  14. package/admin/custom/shoppingList/assets/{virtualExposes-a309i88F.js → virtualExposes-DgzWcmof.js} +1 -1
  15. package/admin/custom/shoppingList/mf-manifest.json +1 -1
  16. package/admin/custom/shoppingList/mf-stats.json +1 -1
  17. package/admin/custom/shoppingList/shoppingListEditor.js +2 -2
  18. package/admin/jsonConfig.json +11 -16
  19. package/build/lib/market-plan.js +19 -3
  20. package/build/lib/prefix-sort.js +10 -1
  21. package/build/main.js +1 -1
  22. package/io-package.json +27 -40
  23. package/package.json +3 -3
  24. package/admin/custom/shoppingList/assets/shopping-list-editor-components-2ZxXB6jP.js +0 -72
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ![ShoppingRoute](admin/shoppingroute.png)
4
4
 
5
- **Current version: 0.3.7**
5
+ **Current version: 0.3.9**
6
6
 
7
7
  ShoppingRoute sorts Alexa shopping-list entries by market, product group and each store's individual walking route. It assigns visible two-digit keys such as `20> Bananas` and `40> ═════ ALDI ═════`; managed lists must therefore be set to **A–Z** in the Alexa app. ShoppingRoute reuses the local Alexa2 authentication for direct item updates, deletes and batch creates, while Alexa2 list states remain the external change trigger.
8
8
 
@@ -40,6 +40,25 @@ See `README_DE.md` for the detailed German documentation.
40
40
 
41
41
  ## Changelog
42
42
 
43
+ ### 0.3.9 (2026-09-11)
44
+
45
+ - Replaces incomplete 0.3.8 snapshots that may have been installed directly from GitHub with an unambiguous newer version.
46
+ - Includes the final product-market normalization, review cleanup, single-column shopping-list view, structural header filtering, and orphaned-header removal verified in PR #37.
47
+ - No user configuration migration is required; legacy comma/semicolon market values are normalized automatically.
48
+
49
+ ### 0.3.8 (2026-09-11)
50
+
51
+ - “Available markets” is stored consistently as a multi-select array; legacy comma/semicolon strings remain readable and are migrated to arrays at startup.
52
+ - Accepted review entries are removed after saving once the product catalogue has been updated.
53
+ - The current shopping list is presented as a clear single-column sequence of market sections.
54
+ - Structurally formatted market headings are filtered even when their label is unknown or misspelled (for example `═════ DROGERIEMART ═════`).
55
+ - Market headings without associated active items are deleted from the Alexa shopping list during the next sorting run.
56
+ - Fixed the review queue so accepting an item updates the article catalogue and visible status immediately in the same Admin draft.
57
+ - Legacy market headings such as `— LIDL —` are recognized as headings and can no longer enter the shopping items or review queue.
58
+ - Nested internal sort prefixes are stripped recursively from parsing and the Admin shopping-list display.
59
+ - Simplified the current shopping-list view by hiding empty market columns while retaining drag, arrow and market-selector controls.
60
+ - Updated current ioBroker CI/checker compatibility: testing-action-check v2, Node.js 26 matrix coverage, current @iobroker/testing and bounded common.news history.
61
+
43
62
  ### 0.3.7 (2026-09-11)
44
63
 
45
64
  - Added an interactive current shopping-list view to Admin with drag-and-drop plus touch-friendly arrow/market controls.
package/README_DE.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ![ShoppingRoute](admin/shoppingroute.png)
4
4
 
5
- **Aktuelle Version: 0.3.7**
5
+ **Aktuelle Version: 0.3.9**
6
6
 
7
7
  ShoppingRoute sortiert Alexa-Einkaufslisteneinträge nach Markt, Produktgruppe und dem individuellen Laufweg durch den jeweiligen Markt. Dazu vergibt es sichtbare zweistellige Schlüssel wie `20> Bananen` und `40> ═════ ALDI ═════`; verwaltete Listen müssen deshalb in der Alexa-App auf **A–Z** stehen. ShoppingRoute übernimmt lokal die Alexa2-Authentifizierung für direkte Updates, Deletes und Batch-Creates; Alexa2-Listenstates bleiben die Triggerquelle für externe Änderungen.
8
8
 
@@ -73,6 +73,25 @@ ShoppingRoute wird unter der **MIT-Lizenz** veröffentlicht. Frühere bereits ve
73
73
 
74
74
  ## Changelog
75
75
 
76
+ ### 0.3.9 (2026-09-11)
77
+
78
+ - Ersetzt unvollständige 0.3.8-Zwischenstände, die möglicherweise direkt von GitHub installiert wurden, durch eine eindeutig neuere Version.
79
+ - Enthält die in PR #37 abschließend geprüfte Vereinheitlichung der Artikelmärkte, Prüflisten-Bereinigung, einspaltige Einkaufslistenansicht, strukturelle Header-Erkennung und Entfernung verwaister Marktüberschriften.
80
+ - Keine manuelle Konfigurationsmigration erforderlich; ältere Komma-/Semikolon-Marktwerte werden automatisch vereinheitlicht.
81
+
82
+ ### 0.3.8 (2026-09-11)
83
+
84
+ - „Verfügbare Märkte“ wird einheitlich als Mehrfachauswahl gespeichert; ältere Komma-/Semikolon-Strings werden weiterhin gelesen und beim Start in Arrays überführt.
85
+ - Übernommene Prüflisteneinträge werden nach dem Speichern entfernt, nachdem der Artikelstamm aktualisiert wurde.
86
+ - Die aktuelle Einkaufsliste wird als übersichtliche einspaltige Folge von Marktabschnitten dargestellt.
87
+ - Formatierte Marktüberschriften werden anhand ihrer Struktur ausgefiltert, auch wenn der Marktname unbekannt oder vertippt ist (zum Beispiel `═════ DROGERIEMART ═════`).
88
+ - Marktüberschriften ohne zugehörige aktive Artikel werden beim nächsten Sortierlauf aus der Alexa-Einkaufsliste gelöscht.
89
+ - Prüfliste korrigiert: „Übernehmen“ aktualisiert Artikelstamm und sichtbaren Status jetzt sofort im selben Admin-Entwurf.
90
+ - Alte Marktüberschriften wie `— LIDL —` werden sicher als Überschriften erkannt und können nicht mehr als Artikel oder Prüflisteneintrag erscheinen.
91
+ - Verschachtelte interne Sortierpräfixe werden beim Parsen und in der Admin-Einkaufslistenanzeige rekursiv entfernt.
92
+ - Ansicht der aktuellen Einkaufsliste vereinfacht: leere Marktspalten bleiben verborgen; Drag&Drop, Pfeile und Marktauswahl bleiben parallel verfügbar.
93
+ - Aktuelle ioBroker-CI-/Checker-Anforderungen übernommen: testing-action-check v2, Node.js 26 in der Matrix, aktuelles @iobroker/testing und auf sieben Einträge begrenzte common.news-Historie.
94
+
76
95
  ### 0.3.7 (2026-09-11)
77
96
 
78
97
  - Interaktive aktuelle Einkaufsliste im Admin ergänzt: Drag&Drop sowie touch-taugliche Pfeil- und Marktauswahl stehen parallel zur Verfügung.
@@ -0,0 +1 @@
1
+ import"./index-2HOz3j7B.js";const o={react:async()=>await import("./_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__1__loadShare__react__loadShare__.js-DDD1Hp7v.js").then(r=>r.b)},s={react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,materialize:!0,eager:!1,from:"ShoppingRouteReviewSet",canLiveRebind:!0,async get(){s.react.loaded=!0;const{react:t}=o,e={...await t()};return e.__esModule!==!0&&Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),function(){return e}},shareConfig:{singleton:!0,requiredVersion:">=18",strictVersion:!1,eager:!1}}},u=[];export{u as usedRemotes,s as usedShared};
@@ -0,0 +1,9 @@
1
+ function q(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const o in n)if(o!=="default"&&!(o in e)){const f=Object.getOwnPropertyDescriptor(n,o);f&&Object.defineProperty(e,o,f.get?f:{enumerable:!0,get:()=>n[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}function B(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var x={exports:{}},u={};/**
2
+ * @license React
3
+ * react.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var d=Symbol.for("react.element"),G=Symbol.for("react.portal"),Y=Symbol.for("react.fragment"),J=Symbol.for("react.strict_mode"),Q=Symbol.for("react.profiler"),X=Symbol.for("react.provider"),Z=Symbol.for("react.context"),ee=Symbol.for("react.forward_ref"),te=Symbol.for("react.suspense"),re=Symbol.for("react.memo"),ne=Symbol.for("react.lazy"),P=Symbol.iterator;function oe(e){return e===null||typeof e!="object"?null:(e=P&&e[P]||e["@@iterator"],typeof e=="function"?e:null)}var D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},$=Object.assign,L={};function y(e,t,r){this.props=e,this.context=t,this.refs=L,this.updater=r||D}y.prototype.isReactComponent={};y.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): 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 N(){}N.prototype=y.prototype;function g(e,t,r){this.props=e,this.context=t,this.refs=L,this.updater=r||D}var w=g.prototype=new N;w.constructor=g;$(w,y.prototype);w.isPureReactComponent=!0;var k=Array.isArray,A=Object.prototype.hasOwnProperty,j={current:null},V={key:!0,ref:!0,__self:!0,__source:!0};function M(e,t,r){var n,o={},f=null,a=null;if(t!=null)for(n in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(f=""+t.key),t)A.call(t,n)&&!V.hasOwnProperty(n)&&(o[n]=t[n]);var c=arguments.length-2;if(c===1)o.children=r;else if(1<c){for(var l=Array(c),_=0;_<c;_++)l[_]=arguments[_+2];o.children=l}if(e&&e.defaultProps)for(n in c=e.defaultProps,c)o[n]===void 0&&(o[n]=c[n]);return{$$typeof:d,type:e,key:f,ref:a,props:o,_owner:j.current}}function ue(e,t){return{$$typeof:d,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function T(e){return typeof e=="object"&&e!==null&&e.$$typeof===d}function se(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var I=/\/+/g;function v(e,t){return typeof e=="object"&&e!==null&&e.key!=null?se(""+e.key):t.toString(36)}function h(e,t,r,n,o){var f=typeof e;(f==="undefined"||f==="boolean")&&(e=null);var a=!1;if(e===null)a=!0;else switch(f){case"string":case"number":a=!0;break;case"object":switch(e.$$typeof){case d:case G:a=!0}}if(a)return a=e,o=o(a),e=n===""?"."+v(a,0):n,k(o)?(r="",e!=null&&(r=e.replace(I,"$&/")+"/"),h(o,t,r,"",function(_){return _})):o!=null&&(T(o)&&(o=ue(o,r+(!o.key||a&&a.key===o.key?"":(""+o.key).replace(I,"$&/")+"/")+e)),t.push(o)),1;if(a=0,n=n===""?".":n+":",k(e))for(var c=0;c<e.length;c++){f=e[c];var l=n+v(f,c);a+=h(f,t,r,l,o)}else if(l=oe(e),typeof l=="function")for(e=l.call(e),c=0;!(f=e.next()).done;)f=f.value,l=n+v(f,c++),a+=h(f,t,r,l,o);else if(f==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return a}function m(e,t,r){if(e==null)return e;var n=[],o=0;return h(e,n,"","",function(f){return t.call(r,f,o++)}),n}function fe(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var i={current:null},S={transition:null},ae={ReactCurrentDispatcher:i,ReactCurrentBatchConfig:S,ReactCurrentOwner:j};function F(){throw Error("act(...) is not supported in production builds of React.")}u.Children={map:m,forEach:function(e,t,r){m(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return m(e,function(){t++}),t},toArray:function(e){return m(e,function(t){return t})||[]},only:function(e){if(!T(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};u.Component=y;u.Fragment=Y;u.Profiler=Q;u.PureComponent=g;u.StrictMode=J;u.Suspense=te;u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ae;u.act=F;u.cloneElement=function(e,t,r){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n=$({},e.props),o=e.key,f=e.ref,a=e._owner;if(t!=null){if(t.ref!==void 0&&(f=t.ref,a=j.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in t)A.call(t,l)&&!V.hasOwnProperty(l)&&(n[l]=t[l]===void 0&&c!==void 0?c[l]:t[l])}var l=arguments.length-2;if(l===1)n.children=r;else if(1<l){c=Array(l);for(var _=0;_<l;_++)c[_]=arguments[_+2];n.children=c}return{$$typeof:d,type:e.type,key:o,ref:f,props:n,_owner:a}};u.createContext=function(e){return e={$$typeof:Z,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:X,_context:e},e.Consumer=e};u.createElement=M;u.createFactory=function(e){var t=M.bind(null,e);return t.type=e,t};u.createRef=function(){return{current:null}};u.forwardRef=function(e){return{$$typeof:ee,render:e}};u.isValidElement=T;u.lazy=function(e){return{$$typeof:ne,_payload:{_status:-1,_result:e},_init:fe}};u.memo=function(e,t){return{$$typeof:re,type:e,compare:t===void 0?null:t}};u.startTransition=function(e){var t=S.transition;S.transition={};try{e()}finally{S.transition=t}};u.unstable_act=F;u.useCallback=function(e,t){return i.current.useCallback(e,t)};u.useContext=function(e){return i.current.useContext(e)};u.useDebugValue=function(){};u.useDeferredValue=function(e){return i.current.useDeferredValue(e)};u.useEffect=function(e,t){return i.current.useEffect(e,t)};u.useId=function(){return i.current.useId()};u.useImperativeHandle=function(e,t,r){return i.current.useImperativeHandle(e,t,r)};u.useInsertionEffect=function(e,t){return i.current.useInsertionEffect(e,t)};u.useLayoutEffect=function(e,t){return i.current.useLayoutEffect(e,t)};u.useMemo=function(e,t){return i.current.useMemo(e,t)};u.useReducer=function(e,t,r){return i.current.useReducer(e,t,r)};u.useRef=function(e){return i.current.useRef(e)};u.useState=function(e){return i.current.useState(e)};u.useSyncExternalStore=function(e,t,r){return i.current.useSyncExternalStore(e,t,r)};u.useTransition=function(){return i.current.useTransition()};u.version="18.3.1";x.exports=u;var U=x.exports;const ce=B(U),R=q({__proto__:null,default:ce},[U]),s=R,le=s.Children,ie=s.Component,_e=s.Fragment,pe=s.Profiler,ye=s.PureComponent,de=s.StrictMode,me=s.Suspense,he=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Se=s.act,be=s.cloneElement,Ee=s.createContext,ve=s.createElement,Re=s.createFactory,Oe=s.createRef,Ce=s.forwardRef,ge=s.isValidElement,we=s.lazy,je=s.memo,Te=s.startTransition,Pe=s.unstable_act,ke=s.useCallback,Ie=s.useContext,xe=s.useDebugValue,De=s.useDeferredValue,$e=s.useEffect,Le=s.useId,Ne=s.useImperativeHandle,Ae=s.useInsertionEffect,Ve=s.useLayoutEffect,Me=s.useMemo,Fe=s.useReducer,Ue=s.useRef,ze=s.useState,We=s.useSyncExternalStore,He=s.useTransition,Ke=s.version,qe=Reflect.get(R,"default")??R,Be=Object.freeze(Object.defineProperty({__proto__:null,Children:le,Component:ie,Fragment:_e,Profiler:pe,PureComponent:ye,StrictMode:de,Suspense:me,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:he,act:Se,cloneElement:be,createContext:Ee,createElement:ve,createFactory:Re,createRef:Oe,default:qe,forwardRef:Ce,isValidElement:ge,lazy:we,memo:je,startTransition:Te,unstable_act:Pe,useCallback:ke,useContext:Ie,useDebugValue:xe,useDeferredValue:De,useEffect:$e,useId:Le,useImperativeHandle:Ne,useInsertionEffect:Ae,useLayoutEffect:Ve,useMemo:Me,useReducer:Fe,useRef:Ue,useState:ze,useSyncExternalStore:We,useTransition:He,version:Ke},Symbol.toStringTag,{value:"Module"})),E="__mf_module_cache__";globalThis[E]||={share:{},remote:{}};globalThis[E].share||={};globalThis[E].remote||={};const p=globalThis[E];for(const e of Object.keys(p.share))if(e.startsWith("default:")){const t=e.slice(8);p.share[t]===void 0&&(p.share[t]=p.share[e])}else if(!e.includes(":")){const t="default:"+e;p.share[t]===void 0&&(p.share[t]=p.share[e])}const Ge=(e,t)=>{const r=e[t.canonical];if(r!==void 0)return r;const n=t.aliases||[];for(const o of n){if(!Object.prototype.hasOwnProperty.call(e,o))continue;const f=e[o];if(f!==void 0)return e[t.canonical]=f,f}},O=Symbol.for("module-federation.shared-cache-listeners"),Ye=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},Je=(e,t,r)=>{const n=Ye(e);(n[t.canonical]||=new Set).add(r)},C=Symbol.for("module-federation.shared-cache-owners"),Qe=e=>{let t=e[C];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,C,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},Xe=(e,t,r,n)=>{var a;e[t.canonical]=r;const o=t.aliases||[];for(const c of o)Object.defineProperty(e,c,{value:r,enumerable:!0,configurable:!0,writable:!0});e[C],Qe(e)[t.canonical]=n;const f=(a=e[O])==null?void 0:a[t.canonical];if(f)for(const c of f)c(r);return r},Ze=e=>{const t=(()=>{let r=e;for(let n=0;n<5;n++){const o=r==null?void 0:r.default;if(!o||typeof o!="object")break;const f=Object.keys(r).filter(a=>a!=="default").map(a=>r[a]);if(f.length>0&&f.some(a=>a!==void 0))break;r=o}return r})();return t&&Object.getPrototypeOf(t)===null?Object.assign({},t):t};let b=Ge(p.share,{canonical:"default:react",aliases:["react"]});b===void 0&&(b=Ze(Be),Xe(p.share,{canonical:"default:react",aliases:["react"]},b,"ShoppingRouteReviewSet"));let z,W,H;const K=e=>{const t=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;if(t&&"A"in t){let r=t.A;Object.defineProperty(t,"A",{configurable:!0,enumerable:!0,get:()=>r,set:n=>{n&&typeof n.getOwner!="function"&&(n.getOwner=()=>null),r=n}}),t.A=r}e.Children,W=e.Component,e.Fragment,e.Profiler,e.PureComponent,e.StrictMode,e.Suspense,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,e.act,e.cloneElement,e.createContext,H=e.createElement,e.createFactory,e.createRef,e.forwardRef,e.isValidElement,e.lazy,e.memo,e.startTransition,e.unstable_act,e.useCallback,e.useContext,e.useDebugValue,e.useDeferredValue,e.useEffect,e.useId,e.useImperativeHandle,e.useInsertionEffect,e.useLayoutEffect,e.useMemo,e.useReducer,e.useRef,e.useState,e.useSyncExternalStore,e.useTransition,e.version,z=(()=>{let r=e;for(let n=0;n<5;n++){const o=r==null?void 0:r.default;if(!o||typeof o!="object")return o??r;r=o}return r})()};Je(p.share,{canonical:"default:react"},K);K(b);const et=Object.freeze(Object.defineProperty({__proto__:null,get Component(){return W},get createElement(){return H},get default(){return z}},Symbol.toStringTag,{value:"Module"}));export{z as _,et as a,Be as b};
@@ -0,0 +1 @@
1
+ import{_}from"./vite-preload-helper-Dp1pzeXC.js";const d="__mf_module_cache__";globalThis[d]||={share:{},remote:{}};globalThis[d].share||={};globalThis[d].remote||={};const s=globalThis[d];for(const i of Object.keys(s.share))if(i.startsWith("default:")){const f=i.slice(8);s.share[f]===void 0&&(s.share[f]=s.share[i])}else if(!i.includes(":")){const f="default:"+i;s.share[f]===void 0&&(s.share[f]=s.share[i])}let h;async function C(){return h||(h=(async()=>{const i=(t,e,a,r)=>{const n=(Array.isArray(r)?r[0]:r)||"default",c=e||!a?t:t+"@"+a,l={canonical:n+":"+c};return n==="default"&&(l.aliases=[c]),l},f=(t,e)=>{const a=t[e.canonical];if(a!==void 0)return a;const r=e.aliases||[];for(const o of r){if(!Object.prototype.hasOwnProperty.call(t,o))continue;const n=t[o];if(n!==void 0)return t[e.canonical]=n,n}},S=Symbol.for("module-federation.shared-cache-listeners"),u=Symbol.for("module-federation.shared-cache-owners"),y=t=>{let e=t[u];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,u,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},b=(t,e)=>{var a;return(a=t[u])==null?void 0:a[e.canonical]},p=(t,e,a,r)=>{var c;t[e.canonical]=a;const o=e.aliases||[];for(const l of o)Object.defineProperty(t,l,{value:a,enumerable:!0,configurable:!0,writable:!0});t[u],y(t)[e.canonical]=r;const n=(c=t[S])==null?void 0:c[e.canonical];if(n)for(const l of n)l(a);return a},m=await(await _(()=>import("../reviewEditor.js"),[],import.meta.url)).init(),{usedShared:w}=await _(async()=>{const{usedShared:t}=await import("./_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-DXSRuGUo.js");return{usedShared:t}},[],import.meta.url),g=t=>{let e=t;for(let a=0;a<5;a++){const r=e==null?void 0:e.default;if(!r||typeof r!="object"||Object.keys(r).length===0)break;const o=Object.keys(e).filter(n=>n!=="default").map(n=>e[n]);if(o.length>0&&o.some(n=>n!==void 0))break;e=r}return e},O=[["react"]];for(const t of O)await Promise.all(t.map(async e=>{var o;const a=w[e];if(!a||a.materialize===!1||a.treeShaking)return;const r=i(e,(o=a.shareConfig)==null?void 0:o.singleton,a.version,a.scope);f(s.share,r)!==void 0&&b(s.share,r)==="ShoppingRouteReviewSet"||await m.loadShare(e,{customShareInfo:{shareConfig:a.shareConfig}}).then(async n=>{const c=typeof n=="function"?n():n;let l=g(await Promise.resolve(c));p(s.share,r,l,"ShoppingRouteReviewSet")})}));return m})()),h}h=C();export{h as hostInitPromise,C as initHost};
@@ -0,0 +1,7 @@
1
+ const Ut=".json",xt="FEDERATION_DEBUG";let $e=(function(e){return e[e.UNKNOWN=1]="UNKNOWN",e[e.CALCULATED=2]="CALCULATED",e[e.NO_USE=0]="NO_USE",e})({});var ge={};const Xe=!0;function Bt(){return Xe}function Wt(){try{if(Bt()&&window.localStorage)return!!localStorage.getItem(xt)}catch{return!1}return!1}function Te(){return typeof process<"u"&&ge&&ge.FEDERATION_DEBUG?!!ge.FEDERATION_DEBUG:typeof FEDERATION_DEBUG<"u"&&FEDERATION_DEBUG?!0:Wt()}const Vt="[ Federation Runtime ]",Ye=function(...e){return e.length?e.reduce((t,r)=>r?t?`${t}:${r}`:r:t,""):""};function Ae(e,t){if("getPublicPath"in e){let r;return e.getPublicPath.startsWith("function")?r=new Function("return "+e.getPublicPath)()():r=new Function(e.getPublicPath)(),`${r}${t}`}else return"publicPath"in e?`${e.publicPath}${t}`:(console.warn("Cannot get resource URL. If in debug mode, please ignore.",e,t),"")}const Qe=e=>{console.warn(`${Vt}: ${e}`)};function et(e){try{return JSON.stringify(e,null,2)}catch{return""}}const _e=(e,t)=>{if(!e)return t;const n=(o=>{if(o===".")return"";if(o.startsWith("./"))return o.replace("./","");if(o.startsWith("/")){const s=o.slice(1);return s.endsWith("/")?s.slice(0,-1):s}return o})(e);return n?n.endsWith("/")?`${n}${t}`:`${n}/${t}`:t};function jt(e){return e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")}function qt(e,t={}){var _;const{remotes:r={},overrides:n={},version:o}=t;let s;const i=()=>"publicPath"in e.metaData?(e.metaData.publicPath==="auto"||e.metaData.publicPath==="")&&o?jt(o):e.metaData.publicPath:e.metaData.getPublicPath,a=Object.keys(n);let c={};Object.keys(r).length||(c=((_=e.remotes)==null?void 0:_.reduce((g,S)=>{let I;const $=S.federationContainerName;return a.includes($)?I=n[$]:"version"in S?I=S.version:I=S.entry,g[$]={matchedVersion:I},g},{}))||{}),Object.keys(r).forEach(g=>c[g]={matchedVersion:a.includes(g)?n[g]:r[g]});const{remoteEntry:{path:l,name:f,type:u},types:h={path:"",name:"",zip:"",api:""},buildInfo:{buildVersion:m},globalName:d,ssrRemoteEntry:p}=e.metaData,{exposes:y}=e;let E={version:o||"",buildVersion:m,globalName:d,remoteEntry:_e(l,f),remoteEntryType:u,remoteTypes:_e(h.path,h.name),remoteTypesZip:h.zip||"",remoteTypesAPI:h.api||"",remotesInfo:c,shared:e==null?void 0:e.shared.map(g=>({assets:g.assets,sharedName:g.name,version:g.version,usedExports:g.referenceExports||[]})),modules:y==null?void 0:y.map(g=>({moduleName:g.name,modulePath:g.path,assets:g.assets}))};if("publicPath"in e.metaData?(s={...E,publicPath:i()},typeof e.metaData.ssrPublicPath=="string"&&(s.ssrPublicPath=e.metaData.ssrPublicPath)):s={...E,getPublicPath:i()},p){const g=_e(p.path,p.name);s.ssrRemoteEntry=g,s.ssrRemoteEntryType=p.type||"commonjs-module"}return s}function tt(e){return!!("remoteEntry"in e&&e.remoteEntry.includes(Ut))}const Kt="[ Module Federation ]",z=console,zt=["logger.ts","logger.js","captureStackTrace","Logger.emit","Logger.log","Logger.info","Logger.warn","Logger.error","Logger.debug"];function Jt(){try{const e=new Error().stack;if(!e)return;const[,...t]=e.split(`
2
+ `),r=t.filter(n=>!zt.some(o=>n.includes(o)));return r.length?`Stack trace:
3
+ ${r.slice(0,5).join(`
4
+ `)}`:void 0}catch{return}}var rt=class{constructor(e,t=z){this.prefix=e,this.delegate=t??z}setPrefix(e){this.prefix=e}setDelegate(e){this.delegate=e??z}emit(e,t){const r=this.delegate,n=Te()?Jt():void 0,o=n?[...t,n]:t,s=(()=>{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(const i of s){const a=r[i];if(typeof a=="function"){a.call(r,this.prefix,...o);return}}for(const i of s){const a=z[i];if(typeof a=="function"){a.call(z,this.prefix,...o);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){Te()&&this.emit("debug",e)}};function Zt(e){return new rt(e)}function Xt(e){const t=new rt(e);return Object.defineProperty(t,"__mf_infrastructure_logger__",{value:!0,enumerable:!1,configurable:!1}),t}Xt(Kt);async function ot(e,t){try{return await e()}catch(r){Qe(r);return}}function Ne(e,t){const r=/^(https?:)?\/\//i;return e.replace(r,"").replace(/\/$/,"")===t.replace(r,"").replace(/\/$/,"")}function nt(e){let t=null,r=!0,n=2e4,o;const s=document.getElementsByTagName("script");for(let l=0;l<s.length;l++){const f=s[l],u=f.getAttribute("src");if(u&&Ne(u,e.url)){t=f,r=!1;break}}if(!t){const l=e.attrs;t=document.createElement("script"),t.type=(l==null?void 0:l.type)==="module"?"module":"text/javascript";let f;e.createScriptHook&&(f=e.createScriptHook(e.url,e.attrs),f instanceof HTMLScriptElement?t=f:typeof f=="object"&&("script"in f&&f.script&&(t=f.script),"timeout"in f&&f.timeout&&(n=f.timeout))),t.src||(t.src=e.url),l&&!f&&Object.keys(l).forEach(u=>{t&&(u==="async"||u==="defer"?t[u]=l[u]:t.getAttribute(u)||t.setAttribute(u,l[u]))})}let i=null;const a=typeof window<"u"?l=>{if(l.filename&&Ne(l.filename,e.url)){const f=new Error(`ScriptExecutionError: Script "${e.url}" loaded but threw a runtime error during execution: ${l.message} (${l.filename}:${l.lineno}:${l.colno})`);f.name="ScriptExecutionError",i=f}}:null;a&&window.addEventListener("error",a);const c=async(l,f)=>{clearTimeout(o),a&&window.removeEventListener("error",a);const u=()=>{if((f==null?void 0:f.type)==="error"){const h=new Error(f!=null&&f.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.)`);h.name="ScriptNetworkError",e!=null&&e.onErrorCallback&&(e==null||e.onErrorCallback(h))}else i?e!=null&&e.onErrorCallback&&(e==null||e.onErrorCallback(i)):e!=null&&e.cb&&(e==null||e.cb())};if(t&&(t.onerror=null,t.onload=null,ot(()=>{const{needDeleteScript:h=!0}=e;h&&t!=null&&t.parentNode&&t.parentNode.removeChild(t)}),l&&typeof l=="function")){const h=l(f);if(h instanceof Promise){const m=await h;return u(),m}return u(),h}u()};return t.onerror=c.bind(null,t.onerror),t.onload=c.bind(null,t.onload),o=setTimeout(()=>{c(null,{type:"error",isTimeout:!0})},n),{script:t,needAttach:r}}function Yt(e){let t=null,r=!0,n=2e4,o;const s=document.getElementsByTagName("link");for(let a=0;a<s.length;a++){const c=s[a],l=c.getAttribute("href"),f=c.getAttribute("rel");if(l&&Ne(l,e.url)&&f===e.attrs.rel){t=c,r=!1;break}}if(!t){t=document.createElement("link"),t.setAttribute("href",e.url);let a,c=!0;const l=e.attrs;e.createLinkHook&&(a=e.createLinkHook(e.url,l),a instanceof HTMLLinkElement?(t=a,c=!1):typeof a=="object"&&("link"in a&&a.link&&(t=a.link,c=!1),"timeout"in a&&a.timeout&&(n=a.timeout))),l&&c&&Object.keys(l).forEach(f=>{t&&!t.getAttribute(f)&&t.setAttribute(f,l[f])})}if(!r)return Promise.resolve().then(()=>{e!=null&&e.cb&&(e==null||e.cb())}),{link:t,needAttach:r};const i=(a,c)=>{o&&clearTimeout(o);const l=()=>{if((c==null?void 0:c.type)==="error"){const f=new Error(c!=null&&c.isTimeout?`LinkNetworkError: Link "${e.url}" timed out.`:`LinkNetworkError: Failed to load link "${e.url}" - the URL is unreachable or the server returned an error.`);f.name="LinkNetworkError",e!=null&&e.onErrorCallback&&(e==null||e.onErrorCallback(f))}else e!=null&&e.cb&&(e==null||e.cb())};if(t&&(t.onerror=null,t.onload=null,ot(()=>{const{needDeleteLink:f=!0}=e;f&&t!=null&&t.parentNode&&t.parentNode.removeChild(t)}),a)){const f=a(c);return l(),f}l()};return t.onerror=i.bind(null,t.onerror),t.onload=i.bind(null,t.onload),o=setTimeout(()=>{i(null,{type:"error",isTimeout:!0})},n),{link:t,needAttach:r}}function Qt(e,t){const{attrs:r={},createScriptHook:n}=t;return new Promise((o,s)=>{const{script:i,needAttach:a}=nt({url:e,cb:o,onErrorCallback:s,attrs:{fetchpriority:"high",...r},createScriptHook:n,needDeleteScript:!0});a&&document.head.appendChild(i)})}const er=e=>`View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${e.split("-")[0].toLowerCase()}#${e.toLowerCase()}`,st=(e,t,r,n)=>{const o=[`${[t[e]]} #${e}`];return r&&o.push(`args: ${JSON.stringify(r)}`),o.push(er(e)),n&&o.push(`Original Error Message:
5
+ ${n}`),o.join(`
6
+ `)};function tr(e,t,r,n,o,s){return n(st(e,t,r,o))}const U="[ Federation Runtime ]",ve=Zt(U);function P(e,t,r,n,o){e||R(t)}function R(e,t,r,n,o){if(t!==void 0)return tr(e,t,r??{},i=>{throw new Error(`${U}: ${i}`)},n);const s=e;throw s instanceof Error?(s.message.startsWith(U)||(s.message=`${U}: ${s.message}`),s):new Error(`${U}: ${s}`)}function Q(e){e instanceof Error&&(e.message.startsWith(U)||(e.message=`${U}: ${e.message}`)),ve.warn(e)}function rr(e,t){return e.findIndex(r=>r===t)===-1&&e.push(t),e}function ee(e){return"version"in e&&e.version?`${e.name}:${e.version}`:"entry"in e&&e.entry?`${e.name}:${e.entry}`:`${e.name}`}function Le(e){return typeof e.entry<"u"}function it(e){return!e.entry.includes(".json")}function Pe(e){return e&&typeof e=="object"}const or=Object.prototype.toString;function at(e){return or.call(e)==="[object Object]"}function ct(e){return Array.isArray(e)?e:[e]}function lt(e){const t={url:"",type:"global",globalName:""};return"remoteEntry"in e?{url:e.remoteEntry,type:e.remoteEntryType,globalName:e.globalName}:t}const nr=(e,t)=>{let r;return e.endsWith("/")?r=e.slice(0,-1):r=e,t.startsWith(".")&&(t=t.slice(1)),r=r+t,r},sr=2e3,b=typeof globalThis=="object"?globalThis:window,M=(()=>{try{return document.defaultView}catch{return b}})(),pe=M;function le(e,t,r){Object.defineProperty(e,t,{value:r,configurable:!1,writable:!0})}function fe(e,t){return Object.hasOwnProperty.call(e,t)}fe(b,"__GLOBAL_LOADING_REMOTE_ENTRY__")||le(b,"__GLOBAL_LOADING_REMOTE_ENTRY__",{});const G=b.__GLOBAL_LOADING_REMOTE_ENTRY__;function ft(e){fe(e,"__VMOK__")&&!fe(e,"__FEDERATION__")&&le(e,"__FEDERATION__",e.__VMOK__),fe(e,"__FEDERATION__")||(le(e,"__FEDERATION__",{__GLOBAL_PLUGIN__:[],__INSTANCES__:[],moduleInfo:{},__SHARE__:{},__MANIFEST_LOADING__:{},__PRELOADED_MAP__:new Map,__PRELOADED_ASSETS__:new Set}),le(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}ft(b);ft(M);function ir(e){b.__FEDERATION__.__INSTANCES__.push(e)}function ar(){return b.__FEDERATION__.__DEBUG_CONSTRUCTOR__}function cr(e,t=Te()){t&&(b.__FEDERATION__.__DEBUG_CONSTRUCTOR__=e,b.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__="2.9.0")}function B(e,t){if(typeof t=="string"){if(e[t])return{value:e[t],key:t};{const r=Object.keys(e);for(const n of r){const[o,s]=n.split(":"),i=`${o}:${t}`,a=e[i];if(a)return{value:a,key:i}}return{value:void 0,key:t}}}else R(`getInfoWithoutType: "key" must be a string, got ${typeof t} (${JSON.stringify(t)}).`)}const Ge=()=>M.__FEDERATION__.moduleInfo,lr=(e,t)=>{const r=B(t,ee(e)).value;if(r&&!r.version&&"version"in e&&e.version&&(r.version=e.version),r)return r;if("version"in e&&e.version){const{version:n,...o}=e,s=ee(o),i=B(M.__FEDERATION__.moduleInfo,s).value;if((i==null?void 0:i.version)===n)return i}},ue=e=>lr(e,M.__FEDERATION__.moduleInfo),Ue=(e,t)=>{const r=ee(e);return M.__FEDERATION__.moduleInfo[r]=t,M.__FEDERATION__.moduleInfo},fr=e=>(M.__FEDERATION__.moduleInfo={...M.__FEDERATION__.moduleInfo,...e},()=>{const t=Object.keys(e);for(const r of t)delete M.__FEDERATION__.moduleInfo[r]}),ut=(e,t)=>{const r=t||`__FEDERATION_${e}:custom__`;return{remoteEntryKey:r,entryExports:b[r]}},ur=()=>M.__FEDERATION__.__GLOBAL_PLUGIN__,hr=e=>b.__FEDERATION__.__PRELOADED_MAP__.get(e),dr=e=>b.__FEDERATION__.__PRELOADED_MAP__.set(e,!0),mr=e=>b.__FEDERATION__.__PRELOADED_ASSETS__.has(e),pr=e=>{const t=b.__FEDERATION__.__PRELOADED_ASSETS__;if(t.add(e),t.size>sr){const r=t.values().next().value;r!==void 0&&t.delete(r)}},xe="[0-9A-Za-z-]+",Me=`(?:\\+(${xe}(?:\\.${xe})*))`,X="0|[1-9]\\d*",he="[0-9]+",ht="\\d*[a-zA-Z-][a-zA-Z0-9-]*",Be=`(?:${he}|${ht})`,yr=`(?:-?(${Be}(?:\\.${Be})*))`,We=`(?:${X}|${ht})`,dt=`(?:-(${We}(?:\\.${We})*))`,Se=`${X}|x|X|\\*`,K=`[v=\\s]*(${Se})(?:\\.(${Se})(?:\\.(${Se})(?:${dt})?${Me}?)?)?`,Er=`^\\s*(${K})\\s+-\\s+(${K})\\s*$`,gr=`[v=\\s]*${`(${he})\\.(${he})\\.(${he})`}${yr}?${Me}?`,Oe="((?:<|>)?=?)",_r=`(\\s*)${Oe}\\s*(${gr}|${K})`,mt="(?:~>?)",Sr=`(\\s*)${mt}\\s+`,pt="(?:\\^)",Rr=`(\\s*)${pt}\\s+`,br="(<|>)?=?\\s*\\*",Ir=`^${pt}${K}$`,wr=`v?${`(${X})\\.(${X})\\.(${X})`}${dt}?${Me}?`,$r=`^${mt}${K}$`,Tr=`^${Oe}\\s*${K}$`,Ar=`^${Oe}\\s*(${wr})$|^$`,Nr="^\\s*>=\\s*0.0.0\\s*$";function O(e){return new RegExp(e)}function v(e){return!e||e.toLowerCase()==="x"||e==="*"}function yt(...e){return t=>e.reduce((r,n)=>n(r),t)}function Ve(e){return e.match(O(Ar))}function je(e,t,r,n){const o=`${e}.${t}.${r}`;return n?`${o}-${n}`:o}function vr(e){return e.replace(O(Er),(t,r,n,o,s,i,a,c,l,f,u,h)=>(v(n)?r="":v(o)?r=`>=${n}.0.0`:v(s)?r=`>=${n}.${o}.0`:r=`>=${r}`,v(l)?c="":v(f)?c=`<${Number(l)+1}.0.0-0`:v(u)?c=`<${l}.${Number(f)+1}.0-0`:h?c=`<=${l}.${f}.${u}-${h}`:c=`<=${c}`,`${r} ${c}`.trim()))}function kr(e){return e.replace(O(_r),"$1$2$3")}function Lr(e){return e.replace(O(Sr),"$1~")}function Pr(e){return e.replace(O(Rr),"$1^")}function Mr(e){return e.trim().split(/\s+/).map(t=>t.replace(O(Ir),(r,n,o,s,i)=>v(n)?"":v(o)?`>=${n}.0.0 <${Number(n)+1}.0.0-0`:v(s)?n==="0"?`>=${n}.${o}.0 <${n}.${Number(o)+1}.0-0`:`>=${n}.${o}.0 <${Number(n)+1}.0.0-0`:i?n==="0"?o==="0"?`>=${n}.${o}.${s}-${i} <${n}.${o}.${Number(s)+1}-0`:`>=${n}.${o}.${s}-${i} <${n}.${Number(o)+1}.0-0`:`>=${n}.${o}.${s}-${i} <${Number(n)+1}.0.0-0`:n==="0"?o==="0"?`>=${n}.${o}.${s} <${n}.${o}.${Number(s)+1}-0`:`>=${n}.${o}.${s} <${n}.${Number(o)+1}.0-0`:`>=${n}.${o}.${s} <${Number(n)+1}.0.0-0`)).join(" ")}function Or(e){return e.trim().split(/\s+/).map(t=>t.replace(O($r),(r,n,o,s,i)=>v(n)?"":v(o)?`>=${n}.0.0 <${Number(n)+1}.0.0-0`:v(s)?`>=${n}.${o}.0 <${n}.${Number(o)+1}.0-0`:i?`>=${n}.${o}.${s}-${i} <${n}.${Number(o)+1}.0-0`:`>=${n}.${o}.${s} <${n}.${Number(o)+1}.0-0`)).join(" ")}function Dr(e){return e.split(/\s+/).map(t=>t.trim().replace(O(Tr),(r,n,o,s,i,a)=>{const c=v(o),l=c||v(s),f=l||v(i);return n==="="&&f&&(n=""),a="",c?n===">"||n==="<"?"<0.0.0-0":"*":n&&f?(l&&(s=0),i=0,n===">"?(n=">=",l?(o=Number(o)+1,s=0,i=0):(s=Number(s)+1,i=0)):n==="<="&&(n="<",l?o=Number(o)+1:s=Number(s)+1),n==="<"&&(a="-0"),`${n+o}.${s}.${i}${a}`):l?`>=${o}.0.0${a} <${Number(o)+1}.0.0-0`:f?`>=${o}.${s}.0${a} <${o}.${Number(s)+1}.0-0`:r})).join(" ")}function Fr(e){return e.trim().replace(O(br),"")}function Hr(e){return e.trim().replace(O(Nr),"")}function de(e,t){return e=Number(e)||e,t=Number(t)||t,e>t?1:e===t?0:-1}function Cr(e,t){const{preRelease:r}=e,{preRelease:n}=t;if(r===void 0&&n)return 1;if(r&&n===void 0)return-1;if(r===void 0&&n===void 0)return 0;for(let o=0,s=r.length;o<=s;o++){const i=r[o],a=n[o];if(i!==a)return i===void 0&&a===void 0?0:i?a?de(i,a):-1:1}return 0}function ne(e,t){return de(e.major,t.major)||de(e.minor,t.minor)||de(e.patch,t.patch)||Cr(e,t)}function Re(e,t){return e.version===t.version}function Gr(e,t){switch(e.operator){case"":case"=":return Re(e,t);case">":return ne(e,t)<0;case">=":return Re(e,t)||ne(e,t)<0;case"<":return ne(e,t)>0;case"<=":return Re(e,t)||ne(e,t)>0;case void 0:return!0;default:return!1}}function Ur(e){return yt(Mr,Or,Dr,Fr)(e)}function xr(e){return yt(vr,kr,Lr,Pr)(e.trim()).split(/\s+/).join(" ")}function Z(e,t){if(!e)return!1;const r=Ve(e);if(!r)return!1;const[,n,,o,s,i,a]=r,c={operator:n,version:je(o,s,i,a),major:o,minor:s,patch:i,preRelease:a==null?void 0:a.split(".")},l=t.split("||");for(const f of l){const u=f.trim();if(!u||u==="*"||u==="x")return!0;try{const h=xr(u);if(!h.trim())return!0;const m=h.split(" ").map(y=>Ur(y)).join(" ");if(!m.trim())return!0;const d=m.split(/\s+/).map(y=>Hr(y)).filter(Boolean);if(d.length===0)continue;let p=!0;for(const y of d){const E=Ve(y);if(!E){p=!1;break}const[,_,,g,S,I,$]=E;if(!Gr({operator:_,version:je(g,S,I,$),major:g,minor:S,patch:I,preRelease:$==null?void 0:$.split(".")},c)){p=!1;break}}if(p)return!0}catch(h){console.error(`[semver] Error processing range part "${u}":`,h);continue}}return!1}const oe="default",Et="global";function Br(e,t,r,n){var s,i;let o;return"get"in e?o=e.get:"lib"in e?o=()=>Promise.resolve(e.lib):o=()=>Promise.resolve(()=>{R(`Cannot get shared "${r}" from "${t}": neither "get" nor "lib" is provided in the share config.`)}),(s=e.shareConfig)!=null&&s.eager&&((i=e.treeShaking)!=null&&i.mode)&&R(`Invalid shared config for "${r}" 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:o,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??n)||"version-first",treeShaking:e.treeShaking?{...e.treeShaking,mode:e.treeShaking.mode??"server-calc",status:e.treeShaking.status??$e.UNKNOWN,useIn:[]}:void 0}}function gt(e,t){const r=t.shared||{},n=t.name,o=Object.keys(r).reduce((i,a)=>{const c=ct(r[a]);return i[a]=i[a]||[],c.forEach(l=>{i[a].push(Br(l,n,a,t.shareStrategy))}),i},{}),s={...e.shared};return Object.keys(o).forEach(i=>{s[i]?o[i].forEach(a=>{s[i].find(c=>c.version===a.version)||s[i].push(a)}):s[i]=o[i]}),{allShareInfos:s,newShareInfos:o}}function te(e,t){if(!e)return!1;const{status:r,mode:n}=e;return r===$e.NO_USE?!1:r===$e.CALCULATED?!0:n==="runtime-infer"?t?Vr(e,t):!0:!1}function x(e,t){const r=n=>{if(!Number.isNaN(Number(n))){const o=n.split(".");let s=n;for(let i=0;i<3-o.length;i++)s+=".0";return s}return n};return!!Z(r(e),`<=${r(t)}`)}const re=(e,t)=>{const r=t||function(n,o){return x(n,o)};return Object.keys(e).reduce((n,o)=>!n||r(n,o)||n==="0"?o:n,0)},me=e=>!!e.loaded||typeof e.lib=="function",Wr=e=>!!e.loading,Vr=(e,t)=>{if(!e||!t)return!1;const{usedExports:r}=e;return r?!!t.every(n=>r.includes(n)):!1};function jr(e,t,r,n){const o=e[t][r];let s="",i=te(n);const a=function(c,l){return i?o[c].treeShaking?o[l].treeShaking?!me(o[c].treeShaking)&&x(c,l):!1:!0:!me(o[c])&&x(c,l)};if(i){if(s=re(e[t][r],a),s)return{version:s,useTreesShaking:i};i=!1}return{version:re(e[t][r],a),useTreesShaking:i}}const W=e=>me(e)||Wr(e);function qr(e,t,r,n){const o=e[t][r];let s="",i=te(n);const a=function(c,l){if(i){if(!o[c].treeShaking)return!0;if(!o[l].treeShaking)return!1;if(W(o[l].treeShaking))return W(o[c].treeShaking)?!!x(c,l):!0;if(W(o[c].treeShaking))return!1}return W(o[l])?W(o[c])?!!x(c,l):!0:W(o[c])?!1:x(c,l)};if(i){if(s=re(e[t][r],a),s)return{version:s,useTreesShaking:i};i=!1}return{version:re(e[t][r],a),useTreesShaking:i}}function Kr(e){return e==="loaded-first"?qr:jr}function Y(e,t,r,n,o){if(!e)return;const{shareConfig:s,scope:i=oe,strategy:a,treeShaking:c}=r,l=Array.isArray(i)?i:[i];for(const f of l)if(s&&e[f]&&e[f][t]){const{requiredVersion:u}=s,{version:h,useTreesShaking:m}=Kr(a)(e,f,t,c),d=()=>{const y=e[f][t][h];if(s.singleton){if(typeof u=="string"&&!Z(h,u)){const E=`Version ${h} from ${h&&y.from} of shared singleton module ${t} does not satisfy the requirement of ${r.from} which needs ${u})`;s.strictVersion?R(E):Q(E)}return{shared:y,useTreesShaking:m}}else{if(u===!1||u==="*")return{shared:y,useTreesShaking:m};if(Z(h,u))return{shared:y,useTreesShaking:m};const E=te(c);if(E){for(const[_,g]of Object.entries(e[f][t]))if(te(g.treeShaking,c==null?void 0:c.usedExports)&&Z(_,u))return{shared:g,useTreesShaking:E}}for(const[_,g]of Object.entries(e[f][t]))if(Z(_,u))return{shared:g,useTreesShaking:!1}}},p={shareScopeMap:e,scope:f,pkgName:t,version:h,GlobalFederation:pe.__FEDERATION__,shareInfo:r,resolver:d,loadContext:o};return(n.emit(p)||p).resolver()}}function De(){return pe.__FEDERATION__.__SHARE__}function qe(e){const{pkgName:t,extraOptions:r,shareInfos:n}=e,o=c=>{if(!c)return;const l={};return c.forEach(u=>{l[u.version]=u}),l[re(l,function(u,h){return!me(l[u])&&x(u,h)})]},s=(r==null?void 0:r.resolver)??o,i=c=>c!==null&&typeof c=="object"&&!Array.isArray(c),a=(...c)=>{const l={};for(const f of c)if(f)for(const[u,h]of Object.entries(f)){const m=l[u];i(m)&&i(h)?l[u]=a(m,h):h!==void 0&&(l[u]=h)}return l};return a(s(n[t]),r==null?void 0:r.customShareInfo)}const V=(e,t)=>{e.useIn||(e.useIn=[]),rr(e.useIn,t)};function se(e,t){return t&&e.treeShaking?e.treeShaking:e}function Fe(e,t){return!t||t==="."?e:`${e}/${t.replace(/^\.\//,"")}`}function Ke(e,t){for(const r of e){const n=t.startsWith(r.name);let o=t.replace(r.name,"");if(n){if(o.startsWith("/")){const a=r.name;return o=`.${o}`,{pkgNameOrAlias:a,expose:o,remote:r}}else if(o==="")return{pkgNameOrAlias:r.name,expose:".",remote:r}}const s=r.alias&&t.startsWith(r.alias);let i=r.alias&&t.replace(r.alias,"");if(r.alias&&s){if(i&&i.startsWith("/")){const a=r.alias;return i=`.${i}`,{pkgNameOrAlias:a,expose:i,remote:r}}else if(i==="")return{pkgNameOrAlias:r.alias,expose:".",remote:r}}}}function zr(e,t){for(const r of e)if(t===r.name||r.alias&&t===r.alias)return r}const _t="RUNTIME-001",St="RUNTIME-002",Rt="RUNTIME-003",bt="RUNTIME-004",It="RUNTIME-005",ke="RUNTIME-006",wt="RUNTIME-007",ye="RUNTIME-008",Jr="RUNTIME-009",$t="RUNTIME-010",Tt="RUNTIME-011",Zr="RUNTIME-012",At="RUNTIME-013",Nt="RUNTIME-014",vt="RUNTIME-015",k={[_t]:"Failed to get remoteEntry exports.",[St]:'The remote entry interface does not contain "init"',[Rt]:"Failed to get manifest.",[bt]:"Failed to locate remote.",[It]:"Invalid loadShareSync function call from bundler runtime",[ke]:"Invalid loadShareSync function call from runtime",[wt]:"Failed to get remote snapshot.",[ye]:"Failed to load script resources.",[Jr]:"Please call createInstance first.",[$t]:'The name option cannot be changed after initialization. If you want to create a new instance with a different name, please use "createInstance" api.',[Tt]:"The remoteEntry URL is missing from the remote snapshot.",[Zr]:'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.',[At]:"The manifest is not a valid Module Federation manifest.",[Nt]:"The remote does not expose the requested module.",[vt]:"Remote container initialization failed."};({...k});const kt=".then(callbacks[0]).catch(callbacks[1])",ze=new WeakMap,Xr=["Failed to fetch dynamically imported module","Importing a module script failed","error loading dynamically imported module"];function Yr(e){return e instanceof TypeError?Xr.some(t=>e.message.includes(t)):!1}function Lt(e){return e==="esm"||e==="module"}async function Qr({entry:e,remoteEntryExports:t,name:r,getEntryUrl:n}){return new Promise((o,s)=>{const i=c=>{if(Yr(c)){const l=c instanceof Error?c.message:String(c);try{R(ye,k,{remoteName:r,resourceUrl:a},l)}catch(f){s(f);return}}s(c)},a=n?n(e):e;try{t?o(t):typeof FEDERATION_ALLOW_NEW_FUNCTION<"u"?new Function("callbacks",`import("${a}")${kt}`)([o,i]):import(a).then(o).catch(i)}catch(c){R(`Failed to load ESM entry from "${a}". ${c instanceof Error?c.message:String(c)}`)}})}async function eo({entry:e,remoteEntryExports:t}){return new Promise((r,n)=>{try{t?r(t):typeof __system_context__>"u"?System.import(e).then(r).catch(n):new Function("callbacks",`System.import("${e}")${kt}`)([r,n])}catch(o){R(`Failed to load SystemJS entry from "${e}". ${o instanceof Error?o.message:String(o)}`)}})}function to(e,t,r){const{remoteEntryKey:n,entryExports:o}=ut(e,t);return o||R(_t,k,{remoteName:e,remoteEntryUrl:r,remoteEntryKey:n}),o}async function ro({name:e,globalName:t,entry:r,remoteInfo:n,loaderHook:o,getEntryUrl:s,resourceContext:i}){const{entryExports:a}=ut(e,t);if(a)return a;const c=s?s(r):r;return Qt(c,{attrs:{},createScriptHook:(l,f)=>{const u=o.lifecycle.createScript.emit({url:l,attrs:f,remoteInfo:n,resourceContext:i?{...i,url:l}:void 0});if(u&&(u instanceof HTMLScriptElement||"script"in u||"timeout"in u))return u}}).then(()=>to(e,t,r),l=>{const f=l instanceof Error?l.message:String(l);R(ye,k,{remoteName:e,resourceUrl:c},f)})}async function oo({remoteInfo:e,remoteEntryExports:t,loaderHook:r,getEntryUrl:n,resourceContext:o}){const{entry:s,entryGlobalName:i,name:a,type:c}=e;return Lt(c)?Qr({entry:s,remoteEntryExports:t,name:a,getEntryUrl:n}):c==="system"?eo({entry:s,remoteEntryExports:t}):ro({entry:s,globalName:i,name:a,remoteInfo:e,loaderHook:r,getEntryUrl:n,resourceContext:o})}function Pt(e){const{entry:t,name:r}=e;return Ye(r,t)}async function He(e){const{origin:t,remoteEntryExports:r,remoteInfo:n,getEntryUrl:o,resourceContext:s,_inErrorHandling:i=!1}=e,a=Pt(n);if(r)return await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:n,remoteEntryExports:r,resourceContext:s,cached:!0}),r;if(!G[a]){const l=t.remoteHandler.hooks.lifecycle.loadEntry,f=t.loaderHook;G[a]=l.emit({origin:t,loaderHook:f,remoteInfo:n,remoteEntryExports:r,resourceContext:s}).then(u=>u||oo({remoteInfo:n,remoteEntryExports:r,loaderHook:f,getEntryUrl:o,resourceContext:s})).then(async u=>(await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:n,remoteEntryExports:u,resourceContext:s}),u)).catch(async u=>{const h=u instanceof Error&&u.message.includes("ScriptExecutionError");if(u instanceof Error&&u.message.includes(ye)&&!h&&!i){const m=p=>He({...p,_inErrorHandling:!0}),d=await t.loaderHook.lifecycle.loadEntryError.emit({getRemoteEntry:m,origin:t,remoteInfo:n,remoteEntryExports:r,globalLoading:G,uniqueKey:a});if(d)return await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:n,remoteEntryExports:d,resourceContext:s,error:u,recovered:!0}),d}throw await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:n,resourceContext:s,error:u}),u}),ze.set(G[a],t)}const c=G[a];if(ze.get(c)!==t)try{const l=await c;return await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:n,remoteEntryExports:l,resourceContext:s}),l}catch(l){throw await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:n,resourceContext:s,error:l}),l}return c}function j(e){return{...e,entry:"entry"in e?e.entry:"",type:e.type||Et,entryGlobalName:e.entryGlobalName||e.name,shareScope:e.shareScope||oe}}function no(){return typeof FEDERATION_BUILD_IDENTIFIER<"u"?FEDERATION_BUILD_IDENTIFIER:""}function so(e){const t=new Map;return[...e||[],...ur()].forEach(r=>{r&&(P(at(r),"Plugin configuration is invalid."),P(r.name,"A name must be provided by the plugin."),t.has(r.name)||t.set(r.name,r))}),Array.from(t.values())}function io(e,t){return t===void 0?e:{...t,name:e.name,version:e.version}}function ao(e,t){const r=new Map;t.options.plugins.forEach(o=>{o&&r.set(o.name,o)});const n=[t.hooks,t.remoteHandler.hooks,t.sharedHandler.hooks,t.snapshotHandler.hooks,t.loaderHook,t.bridgeHook];return so(e).forEach(o=>{var i;if(r.set(o.name,o),t.hooks.registerPlugins[o.name])return;const s=io(o,(i=o.apply)==null?void 0:i.call(o,t));n.forEach(a=>{a.applyPlugin(s)})}),Array.from(r.values())}function co(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 D(e){var r,n,o,s,i,a;const t={};for(const[c,l]of Object.entries(e.shared)){const f=l[0];f&&(t[c]={version:f.version,singleton:(r=f.shareConfig)==null?void 0:r.singleton,requiredVersion:((n=f.shareConfig)==null?void 0:n.requiredVersion)===!1?!1:(o=f.shareConfig)==null?void 0:o.requiredVersion,eager:f.eager,strictVersion:(s=f.shareConfig)==null?void 0:s.strictVersion})}return{project:{name:e.name,mfRole:((i=e.remotes)==null?void 0:i.length)>0?"host":"unknown"},mfConfig:{name:e.name,remotes:((a=e.remotes)==null?void 0:a.map(co))??[],shared:t}}}function Mt(e){return{resourceCategory:"sync",share:!0,depsRemote:!0,recordPreloadedAssets:!0,...e}}function lo(e,t){return t.map(r=>{const n=zr(e,r.nameOrAlias);return P(n,`Unable to preload ${r.nameOrAlias} as it is not included in ${!n&&et({remoteInfo:n,remotes:e})}`),{remote:n,preloadConfig:Mt(r)}})}function fo(e){return e?e.map(t=>t==="."?t:t.startsWith("./")?t.replace("./",""):t):[]}function Ce(e){return e instanceof Error?e.message.includes("timed out")||e.name.includes("Timeout"):!1}function C(e,t,r,n){return{url:t,status:r,resourceType:e.resourceType,initiator:e.initiator,id:e.id,error:n}}function be(e,t,r,n){return r?mr(t)?Promise.resolve(C(e,t,"cached")):(pr(t),n()):n()}async function uo(e,t,r,n){const o=e.moduleCache.get(r.name),s=r.entry;if(o!=null&&o.remoteEntryExports)return C(n,s,"cached");try{if(!await He({origin:e,remoteInfo:r,remoteEntryExports:o==null?void 0:o.remoteEntryExports,resourceContext:{...n,url:s}}))throw new Error(`Failed to load remoteEntry "${s}".`);return C(n,s,"success")}catch(i){return C(n,s,Ce(i)?"timeout":"error",i)}}function ie({host:e,remoteInfo:t,url:r,attrs:n,context:o,needDeleteLink:s}){return new Promise(i=>{const{link:a,needAttach:c}=Yt({url:r,cb:()=>{i(C(o,r,c?"success":"cached"))},onErrorCallback:l=>{i(C(o,r,Ce(l)?"timeout":"error",l))},attrs:n,createLinkHook:(l,f)=>{const u=e.loaderHook.lifecycle.createLink.emit({url:l,attrs:f,remoteInfo:t,resourceContext:{...o,url:l}});return u instanceof HTMLLinkElement,u},needDeleteLink:s});c&&document.head.appendChild(a)})}function ho({host:e,remoteInfo:t,url:r,attrs:n,context:o}){return new Promise(s=>{const{script:i,needAttach:a}=nt({url:r,cb:()=>{s(C(o,r,a?"success":"cached"))},onErrorCallback:c=>{s(C(o,r,Ce(c)?"timeout":"error",c))},attrs:n,createScriptHook:(c,l)=>{const f=e.loaderHook.lifecycle.createScript.emit({url:c,attrs:l,remoteInfo:t,resourceContext:{...o,url:c}});return f instanceof HTMLScriptElement,f},needDeleteScript:!0});a&&document.head.appendChild(i)})}function ae(e,t){return{...e,resourceType:t}}function Ot(e,t,r,n=!0,o={initiator:"preloadRemote",id:e.name},s=!0){const{cssAssets:i,jsAssetsWithoutEntry:a,entryAssets:c}=r,l=[];if(t.options.inBrowser){if(c.forEach(h=>{const{moduleInfo:m}=h;l.push(uo(t,e,m,ae(o,"remoteEntry")))}),n){const h={rel:"preload",as:"style"};i.forEach(m=>{const d=ae(o,"css");l.push(be(d,m,s,()=>ie({host:t,remoteInfo:e,url:m,attrs:h,context:d})))})}else{const h={rel:"stylesheet",type:"text/css"};i.forEach(m=>{const d=ae(o,"css");l.push(be(d,m,s,()=>ie({host:t,remoteInfo:e,url:m,attrs:h,needDeleteLink:!1,context:d})))})}let f=ho,u={fetchpriority:"high",type:"text/javascript"};n?(f=ie,u={rel:"preload",as:"script"}):Lt(e.type)&&(f=ie,u={rel:"modulepreload",fetchpriority:"high"}),a.forEach(h=>{const m=ae(o,"js");l.push(be(m,h,s,()=>f({host:t,remoteInfo:e,url:h,attrs:u,context:m})))})}return Promise.all(l)}const mo={getRegisteredShare:Y,getGlobalShareScope:De};var po={share:mo};function yo(e){if(!e||!("modules"in e)||!Array.isArray(e.modules))return;const t=e.modules.map(r=>r.moduleName).filter(Boolean);return t.length?t.join(","):void 0}function Eo(e,t,r){const n=t,o=Array.isArray(e.shareScope)?e.shareScope:[e.shareScope];o.length||o.push("default"),o.forEach(i=>{n[i]||(n[i]={})});const s={version:e.version||"",shareScopeKeys:Array.isArray(e.shareScope)?o:e.shareScope||"default"};return Object.defineProperty(s,"shareScopeMap",{value:n,enumerable:!1}),{remoteEntryInitOptions:s,shareScope:n[o[0]],initScope:r??[]}}var Je=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){const r=t||{initiator:"loadRemote",id:Fe(this.remoteInfo.name,e),resourceType:"remoteEntry",url:this.remoteInfo.entry,expose:e},n=await He({origin:this.host,remoteInfo:this.remoteInfo,remoteEntryExports:this.remoteEntryExports,resourceContext:r});return P(n,`remoteEntryExports is undefined
7
+ ${et(this.remoteInfo)}`),this.remoteEntryExports=n,this.remoteEntryExports}async init(e,t,r,n,o){const s=await this.getEntry(n,o);if(this.inited)return await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:s,cached:!0,origin:this.host}),s;if(this.initPromise){try{await this.initPromise,await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:s,cached:!0,origin:this.host})}catch(i){throw await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:s,error:i,cached:!0,origin:this.host}),i}return s}this.initing=!0,this.initPromise=(async()=>{await this.host.loaderHook.lifecycle.beforeInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,origin:this.host});const{remoteEntryInitOptions:i,shareScope:a,initScope:c}=Eo(this.remoteInfo,this.host.shareScopeMap,r),l=await this.host.hooks.lifecycle.beforeInitContainer.emit({shareScope:a,remoteEntryInitOptions:i,initScope:c,remoteInfo:this.remoteInfo,origin:this.host});typeof(s==null?void 0:s.init)>"u"&&R(St,k,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName},void 0,D(this.host.options));try{await s.init(l.shareScope,l.initScope,l.remoteEntryInitOptions)}catch(f){R(vt,k,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName,shareScope:this.remoteInfo.shareScope},`${f}`,D(this.host.options))}await this.host.hooks.lifecycle.initContainer.emit({...l,id:e,remoteSnapshot:t,remoteEntryExports:s}),this.inited=!0})();try{await this.initPromise,await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:s,origin:this.host})}catch(i){throw await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:s,error:i,origin:this.host}),i}finally{this.initing=!1,this.initPromise=void 0}return s}async get(e,t,r,n){const{loadFactory:o=!0}=r||{loadFactory:!0},s=await this.init(e,n,void 0,t);this.lib=s,await this.host.loaderHook.lifecycle.beforeGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:s,origin:this.host});let i;try{const l=await this.host.loaderHook.lifecycle.getModuleFactory.emit({remoteEntryExports:s,expose:t,moduleInfo:this.remoteInfo});i=typeof l=="function"?l:void 0,i||(i=await s.get(t)),i||R(Nt,k,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,expose:t,requestId:e,availableExposes:yo(n)},void 0,D(this.host.options)),await this.host.loaderHook.lifecycle.afterGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:s,moduleFactory:i,origin:this.host})}catch(l){throw await this.host.loaderHook.lifecycle.afterGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:s,error:l,origin:this.host}),l}const a=nr(this.remoteInfo.name,t),c=this.wraperFactory(i,a);if(!o)return c;await this.host.loaderHook.lifecycle.beforeExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:o,origin:this.host});try{const l=await c();return await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:o,exposeModule:l,origin:this.host}),l}catch(l){throw await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:o,error:l,origin:this.host}),l}}wraperFactory(e,t){function r(n,o){n&&typeof n=="object"&&Object.isExtensible(n)&&!Object.getOwnPropertyDescriptor(n,Symbol.for("mf_module_id"))&&Object.defineProperty(n,Symbol.for("mf_module_id"),{value:o,enumerable:!1})}return()=>{const n=e();return n instanceof Promise?n.then(o=>(r(o,t),o)):(r(n,t),n)}}},F=class{constructor(e){this.registerPlugins={},this.lifecycle=e,this.lifecycleKeys=Object.keys(e)}applyPlugin(e){P(at(e),"Plugin configuration is invalid.");const t=e.name;P(t,"A name must be provided by the plugin."),this.registerPlugins[t]||(this.registerPlugins[t]=e,this.lifecycleKeys.forEach(r=>{const n=e[r];n&&this.lifecycle[r].on(n)}))}removePlugin(e){P(e,"A name is required.");const t=this.registerPlugins[e];P(t,`The plugin "${e}" is not registered.`),this.lifecycleKeys.forEach(r=>{const n=t[r];n&&this.lifecycle[r].remove(n)}),delete this.registerPlugins[e]}},N=class{constructor(e){this.type="",this.listeners=new Set,e&&(this.type=e)}on(e){typeof e=="function"&&this.listeners.add(e)}once(e){const t=this;this.on(function r(...n){return t.remove(r),e.apply(null,n)})}emit(...e){let t;return this.listeners.size>0&&this.listeners.forEach(r=>{const n=r(...e);n!==void 0&&(t=n)}),t}remove(e){this.listeners.delete(e)}removeAll(){this.listeners.clear()}},w=class extends N{emit(...e){let t;const r=Array.from(this.listeners);if(r.length>0){let n=0;const o=s=>s===!1?!1:n<r.length?Promise.resolve(r[n++].apply(null,e)).then(i=>i===void 0||e.length===1&&i===e[0]?o(s):o(i)):s;t=o()}return Promise.resolve(t)}};function Dt(e,t){if(!Pe(t))return!1;if(e!==t){for(const r in e)if(!(r in t))return!1}return!0}var q=class extends N{constructor(e){super(),this.onerror=R,this.type=e}emit(e){Pe(e)||R(`The data for the "${this.type}" hook should be an object.`);for(const t of this.listeners)try{const r=t(e);if(r===void 0)continue;if(Dt(e,r))e=r;else{this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);break}}catch(r){Q(r),this.onerror(r)}return e}},H=class extends N{constructor(e){super(),this.onerror=R,this.type=e}emit(e){Pe(e)||R(`The response data for the "${this.type}" hook must be an object.`);const t=Array.from(this.listeners);if(t.length>0){let r=0;const n=s=>(Q(s),this.onerror(s),e),o=s=>{if(s!==void 0&&Dt(e,s))e=s;else if(s!==void 0)return this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`),e;if(r<t.length)try{return Promise.resolve(t[r++](e)).then(o,n)}catch(i){return n(i)}return e};return Promise.resolve(o(e))}return Promise.resolve(e)}};const J="Remote loading is disabled by experiments.optimization.disableRemote.";var go=class{constructor(){this.hooks=new F({})}formatAndRegisterRemote(){return[]}loadRemote(){throw new Error(J)}preloadRemote(){throw new Error(J)}registerRemotes(){throw new Error(J)}getRemoteModuleAndOptions(){throw new Error(J)}initRawContainer(){throw new Error(J)}};function Ft(e,t){const r=lt(t);r.url||R(Tt,k,{remoteName:e.name});let n=Ae(t,r.url);e.type=r.type,e.entryGlobalName=r.globalName,e.entry=n,e.version=t.version,e.buildVersion=t.buildVersion}function _o(){return{name:"snapshot-plugin",async afterResolve(e){const{remote:t,pkgNameOrAlias:r,expose:n,origin:o,remoteInfo:s,id:i}=e;if(!Le(t)||!it(t)){const{remoteSnapshot:a,globalSnapshot:c}=await o.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:t,id:Fe(t.name,n)});Ft(s,a);const l=[{nameOrAlias:r,exposes:[n],resourceCategory:"sync",share:!1,depsRemote:!1,recordPreloadedAssets:!0}];await o.remoteHandler.hooks.lifecycle.beforePreloadRemote.emit({preloadOps:l,options:o.options,origin:o});const[f]=l;if(f){const u={remote:t,preloadConfig:f},h=await o.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({origin:o,preloadOptions:u,remoteInfo:s,remote:t,remoteSnapshot:a,globalSnapshot:c});h&&Ot(s,o,h,!1,{initiator:"loadRemote",id:i},f.recordPreloadedAssets).catch(()=>{})}return{...e,remoteSnapshot:a}}return e}}}function So(e){const 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 Ht(e,t,r,n,o={},s){const{value:i}=B(e,ee(t)),a=s||i;if(a&&!tt(a)&&(r(a,t,n),a.remotesInfo)){const c=Object.keys(a.remotesInfo);for(const l of c){if(o[l])continue;o[l]=!0;const f=So(l),u=a.remotesInfo[l];Ht(e,{name:f.name,version:u.matchedVersion},r,!1,o,void 0)}}}const Ie=(e,t)=>document.querySelector(`${e}[${e==="link"?"href":"src"}="${t}"]`);function Ro(e,t,r,n,o){const s=[],i=[],a=[],c=new Set,l=new Set,{options:f}=e,{preloadConfig:u}=t,{depsRemote:h}=u;if(Ht(n,r,(d,p,y)=>{var $;let E;if(y)E=u;else if(Array.isArray(h)){const A=h.find(T=>T.nameOrAlias===p.name||T.nameOrAlias===p.alias);if(!A)return;E=Mt(A)}else if(h===!0)E=u;else return;const _=Ae(d,lt(d).url);_&&a.push({name:p.name,moduleInfo:{name:p.name,entry:_,type:"remoteEntryType"in d?d.remoteEntryType:"global",entryGlobalName:"globalName"in d?d.globalName:p.name,shareScope:"",version:"version"in d?d.version:void 0},url:_});let g="modules"in d?d.modules:[];const S=fo(E.exposes);S.length&&"modules"in d&&(g=($=d==null?void 0:d.modules)==null?void 0:$.reduce((A,T)=>((S==null?void 0:S.indexOf(T.moduleName))!==-1&&A.push(T),A),[]));function I(A){const T=A.map(L=>Ae(d,L));return E.filter?T.filter(E.filter):T}if(g){const A=g.length;for(let T=0;T<A;T++){const L=g[T],Ee=`${p.name}/${L.moduleName}`;e.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({id:L.moduleName==="."?p.name:Ee,name:p.name,remoteSnapshot:d,preloadConfig:E,remote:p,origin:e}),!hr(Ee)&&(E.resourceCategory==="all"?(s.push(...I(L.assets.css.async)),s.push(...I(L.assets.css.sync)),i.push(...I(L.assets.js.async)),i.push(...I(L.assets.js.sync))):E.resourceCategory==="sync"&&(s.push(...I(L.assets.css.sync)),i.push(...I(L.assets.js.sync))),dr(Ee))}}},!0,{},o),o.shared&&o.shared.length>0){const d=(p,y)=>{const{shared:E}=Y(e.shareScopeMap,y.sharedName,p,e.sharedHandler.hooks.lifecycle.resolveShare)||{};E&&typeof E.lib=="function"&&(y.assets.js.sync.forEach(_=>{c.add(_)}),y.assets.css.sync.forEach(_=>{l.add(_)}))};o.shared.forEach(p=>{var _;const y=(_=f.shared)==null?void 0:_[p.sharedName];if(!y)return;const E=p.version?y.find(g=>g.version===p.version):y;E&&ct(E).forEach(g=>{d(g,p)})})}const m=i.filter(d=>!c.has(d)&&!Ie("script",d));return{cssAssets:s.filter(d=>!l.has(d)&&!Ie("link",d)),jsAssetsWithoutEntry:m,entryAssets:a.filter(d=>!Ie("script",d.url))}}const bo=function(){return{name:"generate-preload-assets-plugin",async generatePreloadAssets(e){const{origin:t,preloadOptions:r,remoteInfo:n,remote:o,globalSnapshot:s,remoteSnapshot:i}=e;return Le(o)&&it(o)?{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[{name:o.name,url:o.entry,moduleInfo:{name:n.name,entry:o.entry,type:n.type||"global",entryGlobalName:"",shareScope:""}}]}:(Ft(n,i),Ro(t,r,n,s,i))}}};function Ct(e,t){const r=ue({name:t.name,version:t.options.version}),n=r&&"remotesInfo"in r&&r.remotesInfo&&B(r.remotesInfo,e.name).value;return n&&n.matchedVersion?{hostGlobalSnapshot:r,globalSnapshot:Ge(),remoteSnapshot:ue({name:e.name,version:n.matchedVersion})}:{hostGlobalSnapshot:void 0,globalSnapshot:Ge(),remoteSnapshot:ue({name:e.name,version:"version"in e?e.version:void 0})}}var Io=class{constructor(e){this.loadingHostSnapshot=null,this.manifestCache=new Map,this.hooks=new F({beforeLoadRemoteSnapshot:new w("beforeLoadRemoteSnapshot"),loadSnapshot:new H("loadGlobalSnapshot"),loadRemoteSnapshot:new H("loadRemoteSnapshot"),afterLoadSnapshot:new H("afterLoadSnapshot"),beforeLoadManifest:new w("beforeLoadManifest"),afterLoadManifest:new w("afterLoadManifest")}),this.manifestLoading=pe.__FEDERATION__.__MANIFEST_LOADING__,this.HostInstance=e,this.loaderHook=e.loaderHook}async loadRemoteSnapshotInfo({moduleInfo:e,id:t,initiator:r="loadRemote"}){const{options:n}=this.HostInstance;await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({options:n,moduleInfo:e,origin:this.HostInstance});let o=ue({name:this.HostInstance.options.name,version:this.HostInstance.options.version});o||(o={version:this.HostInstance.options.version||"",remoteEntry:"",remotesInfo:{}},fr({[this.HostInstance.options.name]:o})),o&&"remotesInfo"in o&&!B(o.remotesInfo,e.name).value&&("version"in e||"entry"in e)&&(o.remotesInfo={...o==null?void 0:o.remotesInfo,[e.name]:{matchedVersion:"version"in e?e.version:e.entry}});const{hostGlobalSnapshot:s,remoteSnapshot:i,globalSnapshot:a}=this.getGlobalRemoteInfo(e),{remoteSnapshot:c,globalSnapshot:l}=await this.hooks.lifecycle.loadSnapshot.emit({options:n,moduleInfo:e,hostGlobalSnapshot:s,remoteSnapshot:i,globalSnapshot:a});let f,u;if(c)if(tt(c)){const h=c.remoteEntry,m=await this.loadManifestSnapshot(h,e,{},{initiator:r,id:t||e.name}),d=Ue({...e,entry:h},m);f=m,u=d}else{const{remoteSnapshot:h}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:c,from:"global"});f=h,u=l}else if(Le(e)){const h=await this.loadManifestSnapshot(e.entry,e,{},{initiator:r,id:t||e.name}),m=Ue(e,h);f=h,u=m}else R(wt,k,{remoteName:e.name,remoteVersion:e.version,hostName:this.HostInstance.options.name,globalSnapshot:JSON.stringify(l)},void 0,D(this.HostInstance.options));return await this.hooks.lifecycle.afterLoadSnapshot.emit({id:t,host:this.HostInstance,options:n,moduleInfo:e,remoteSnapshot:f}),{remoteSnapshot:f,globalSnapshot:u}}getGlobalRemoteInfo(e){return Ct(e,this.HostInstance)}async getManifestJson(e,t,r,n){return(async()=>{const s=j(t);let i=this.manifestCache.get(e);if(i)return await this.hooks.lifecycle.afterLoadManifest.emit({manifestUrl:e,moduleInfo:t,resourceOptions:n,manifestJson:i,cached:!0,origin:this.HostInstance}),i;await this.hooks.lifecycle.beforeLoadManifest.emit({manifestUrl:e,moduleInfo:t,resourceOptions:n,origin:this.HostInstance});let a,c,l=!1;try{let h=await this.loaderHook.lifecycle.fetch.emit(e,{},s,n?{...n,url:e,resourceType:"manifest"}:void 0);(!h||!(h instanceof Response))&&(h=await fetch(e,{})),a=h,i=await h.json()}catch(h){c=h,i=await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:h,from:"runtime",lifecycle:"afterResolve",remote:s,origin:this.HostInstance}),i||(delete this.manifestLoading[e],await this.hooks.lifecycle.afterLoadManifest.emit({manifestUrl:e,moduleInfo:t,resourceOptions:n,response:a,error:h,origin:this.HostInstance}),R(Rt,k,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name},`${h}`,D(this.HostInstance.options))),l=!0}const f=[!i.metaData&&"metaData",!i.exposes&&"exposes",!i.shared&&"shared"].filter(Boolean),u=f.length>0?new Error(`"${e}" is not a valid federation manifest for remote "${t.name}". Missing required fields: ${f.join(", ")}.`):void 0;return u&&await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:u,from:"runtime",lifecycle:"afterResolve",remote:s,origin:this.HostInstance}),await this.hooks.lifecycle.afterLoadManifest.emit({manifestUrl:e,moduleInfo:t,resourceOptions:n,manifestJson:i,response:a,error:u||c,recovered:u?void 0:l||void 0,origin:this.HostInstance}),u&&R(At,k,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name,missingFields:f.join(",")},void 0,D(this.HostInstance.options)),this.manifestCache.set(e,i),i})()}async loadManifestSnapshot(e,t,r,n){const o=async()=>{const s=await this.getManifestJson(e,t,r,n),i=qt(s,{version:e}),{remoteSnapshot:a}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:t,manifestJson:s,remoteSnapshot:i,manifestUrl:e,from:"manifest"});return a};return this.manifestLoading[e]||(this.manifestLoading[e]=o().then(s=>s)),this.manifestLoading[e]}},wo=class{constructor(){this.hooks=new F({})}},$o=class{constructor(e){this.hooks=new F({beforeRegisterShare:new q("beforeRegisterShare"),afterRegisterShare:new N("afterRegisterShare"),afterResolve:new H("afterResolve"),beforeLoadShare:new H("beforeLoadShare"),loadShare:new w,afterLoadShare:new N("afterLoadShare"),errorLoadShare:new N("errorLoadShare"),resolveShare:new q("resolveShare"),initContainerShareScopeMap:new q("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:r,selectedShared:n,loadContext:o}){try{this.hooks.lifecycle.afterLoadShare.emit({pkgName:t,shareInfo:r,selectedShared:n,shared:this.host.options.shared,shareScopeMap:this.shareScopeMap,lifecycle:e,loadContext:o,origin:this.host})}catch(s){Q(s)}}emitErrorLoadShare({lifecycle:e,pkgName:t,shareInfo:r,error:n,recovered:o,loadContext:s}){try{this.hooks.lifecycle.errorLoadShare.emit({pkgName:t,shareInfo:r,shared:this.host.options.shared,shareScopeMap:this.shareScopeMap,lifecycle:e,origin:this.host,error:n,recovered:o,loadContext:s})}catch(i){Q(i)}}registerShared(e,t){const{newShareInfos:r,allShareInfos:n}=gt(e,t);return Object.keys(r).forEach(o=>{r[o].forEach(s=>{s.scope.forEach(i=>{var l,f,u;this.hooks.lifecycle.beforeRegisterShare.emit({origin:this.host,pkgName:o,shared:s});const a=(l=this.shareScopeMap[i])==null?void 0:l[o],c=a==null?void 0:a[s.version];a||this.setShared({pkgName:o,lib:s.lib,get:s.get,loaded:s.loaded||!!s.lib,shared:s,from:t.name}),this.emitAfterRegisterShare(o,{scope:i,shared:s,previousShared:c,registeredShared:(u=(f=this.shareScopeMap[i])==null?void 0:f[o])==null?void 0:u[s.version],trigger:"runtime"})})})}),{newShareInfos:r,allShareInfos:n}}async loadShare(e,t){const{host:r}=this;let n=t==null?void 0:t.context;const o=qe({pkgName:e,extraOptions:t,shareInfos:r.options.shared});let s=o;try{o!=null&&o.scope&&await Promise.all(o.scope.map(async f=>{await Promise.all(this.initializeSharing(f,{strategy:o.strategy,context:n}))}));const i=await this.hooks.lifecycle.beforeLoadShare.emit({pkgName:e,shareInfo:o,shared:r.options.shared,origin:r,loadContext:n});s=i.shareInfo,n=i.loadContext||n,P(s,`Cannot find shared "${e}" in host "${r.options.name}". Ensure the shared config for "${e}" is declared in the federation plugin options and the host has been initialized before loading shares.`);const a=s,{shared:c,useTreesShaking:l}=Y(this.shareScopeMap,e,s,this.hooks.lifecycle.resolveShare,n)||{};if(c){const f=se(c,l);if(f.lib)return V(f,r.options.name),this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:a,selectedShared:c,loadContext:n}),f.lib;if(f.loading&&!f.loaded){const u=await f.loading;return f.loaded=!0,f.lib||(f.lib=u),V(f,r.options.name),this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:a,selectedShared:c,loadContext:n}),u}else{const h=(async()=>{const d=await f.get();return V(f,r.options.name),f.loaded=!0,f.lib=d,d})();this.setShared({pkgName:e,loaded:!1,shared:c,from:r.options.name,lib:null,loading:h,treeShaking:l?f:void 0});const m=await h;return this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:a,selectedShared:c,loadContext:n}),m}}else{if(t!=null&&t.customShareInfo)return this.emitErrorLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:a,recovered:!0,loadContext:n}),!1;const f=te(a.treeShaking),u=se(a,f),m=(async()=>{const p=await u.get();u.lib=p,u.loaded=!0,V(u,r.options.name);const{shared:y,useTreesShaking:E}=Y(this.shareScopeMap,e,a,this.hooks.lifecycle.resolveShare,n)||{};if(y){const _=se(y,E);_.lib=p,_.loaded=!0,y.from=a.from}return p})();this.setShared({pkgName:e,loaded:!1,shared:a,from:r.options.name,lib:null,loading:m,treeShaking:f?u:void 0});const d=await m;return this.emitAfterLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:a,selectedShared:a,loadContext:n}),d}}catch(i){throw this.emitErrorLoadShare({lifecycle:"loadShare",pkgName:e,shareInfo:s,error:i,loadContext:n}),i}}initializeSharing(e=oe,t){var m;const{host:r}=this,n=t==null?void 0:t.from,o=t==null?void 0:t.strategy,s=((m=t==null?void 0:t.context)==null?void 0:m.trigger)||n||"runtime";let i=t==null?void 0:t.initScope;const a=[];if(n!=="build"){const{initTokens:d}=this;i||(i=[]);let p=d[e];if(p||(p=d[e]={from:this.host.name}),i.indexOf(p)>=0)return a;i.push(p)}const c=this.shareScopeMap,l=r.options.name;c[e]||(c[e]={});const f=c[e],u=(d,p)=>{var $;const{version:y,eager:E}=p;f[d]=f[d]||{};const _=f[d],g=_[y],S=g&&se(g),I=!!(S&&("eager"in S&&S.eager||"shareConfig"in S&&(($=S.shareConfig)!=null&&$.eager)));(!S||S.strategy!=="loaded-first"&&!S.loaded&&(!E!=!I?E:l>_[y].from))&&(_[y]=p),this.emitAfterRegisterShare(d,{scope:e,shared:p,previousShared:g,registeredShared:_[y],trigger:s})},h=async d=>{const{module:p}=await r.remoteHandler.getRemoteModuleAndOptions({id:d});let y;const E={initiator:"loadShare",id:d,resourceType:"remoteEntry",url:p.remoteInfo.entry};try{y=await p.getEntry(void 0,E)}catch(_){if(y=await r.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:d,error:_,from:"runtime",lifecycle:"beforeLoadShare",remote:p.remoteInfo,origin:r}),!y)return}finally{y!=null&&y.init&&!p.initing&&(p.remoteEntryExports=y,await p.init(void 0,void 0,i,void 0,E))}};return Object.keys(r.options.shared).forEach(d=>{r.options.shared[d].forEach(p=>{p.scope.includes(e)&&u(d,p)})}),(r.options.shareStrategy==="version-first"||o==="version-first")&&r.options.remotes.forEach(d=>{d.shareScope===e&&a.push(h(d.name))}),a}loadShareSync(e,t){const{host:r}=this,n=t==null?void 0:t.context,o=qe({pkgName:e,extraOptions:t,shareInfos:r.options.shared});try{o!=null&&o.scope&&o.scope.forEach(i=>{this.initializeSharing(i,{strategy:o.strategy,from:t==null?void 0:t.from,context:n})});const{shared:s}=Y(this.shareScopeMap,e,o,this.hooks.lifecycle.resolveShare,n)||{};if(s){if(typeof s.lib=="function")return V(s,r.options.name),s.loaded||(s.loaded=!0,s.from===r.options.name&&(o.loaded=!0)),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:o,selectedShared:s,loadContext:n}),s.lib;if(typeof s.get=="function"){const i=s.get();if(!(i instanceof Promise))return V(s,r.options.name),this.setShared({pkgName:e,loaded:!0,from:r.options.name,lib:i,shared:s}),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:o,selectedShared:s,loadContext:n}),i}}if(o.lib)return o.loaded||(o.loaded=!0),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:o,selectedShared:o,loadContext:n}),o.lib;if(o.get){const i=o.get();return i instanceof Promise&&R((t==null?void 0:t.from)==="build"?It:ke,k,{hostName:r.options.name,sharedPkgName:e},void 0,D(r.options)),o.lib=i,this.setShared({pkgName:e,loaded:!0,from:r.options.name,lib:o.lib,shared:o}),this.emitAfterLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:o,selectedShared:o,loadContext:n}),o.lib}R(ke,k,{hostName:r.options.name,sharedPkgName:e},void 0,D(r.options))}catch(s){throw this.emitErrorLoadShare({lifecycle:"loadShareSync",pkgName:e,shareInfo:o,error:s,loadContext:n}),s}}initShareScopeMap(e,t,r={}){const{host:n}=this;this.shareScopeMap[e]=t,this.hooks.lifecycle.initContainerShareScopeMap.emit({shareScope:t,options:n.options,origin:n,scopeName:e,hostShareScopeMap:r.hostShareScopeMap})}setShared({pkgName:e,shared:t,from:r,lib:n,loading:o,loaded:s,get:i,treeShaking:a}){const{version:c,scope:l="default",...f}=t,u=Array.isArray(l)?l:[l],h=m=>{const d=(y,E,_)=>{_&&!y[E]&&(y[E]=_)},p=a?m.treeShaking:m;d(p,"loaded",s),d(p,"loading",o),d(p,"get",i),d(p,"lib",n)};u.forEach(m=>{this.shareScopeMap[m]||(this.shareScopeMap[m]={}),this.shareScopeMap[m][e]||(this.shareScopeMap[m][e]={}),this.shareScopeMap[m][e][c]||(this.shareScopeMap[m][e][c]={version:c,scope:[m],...f,lib:n});const d=this.shareScopeMap[m][e][c];h(d),r&&d.from!==r&&(d.from=r)})}_setGlobalShareScopeMap(e){const t=De(),r=e.id||e.name;r&&!t[r]&&(t[r]=this.shareScopeMap)}},To=class{constructor(){this.shareScopeMap={},this.hooks=new F({afterResolve:new H("afterResolve")})}registerShared(){return{newShareInfos:{},allShareInfos:{}}}loadShare(){throw new Error("Shared dependency loading is disabled by experiments.optimization.disableShared.")}loadShareSync(){throw new Error("Shared dependency loading is disabled by experiments.optimization.disableShared.")}initializeSharing(){return[]}initShareScopeMap(e,t){this.shareScopeMap[e]=t}},Ao=class{constructor(e){this.hooks=new F({beforeRegisterRemote:new q("beforeRegisterRemote"),registerRemote:new q("registerRemote"),beforeRequest:new H("beforeRequest"),afterMatchRemote:new w("afterMatchRemote"),onLoad:new w("onLoad"),afterLoadRemote:new w("afterLoadRemote"),handlePreloadModule:new N("handlePreloadModule"),errorLoadRemote:new w("errorLoadRemote"),beforePreloadRemote:new w("beforePreloadRemote"),generatePreloadAssets:new w("generatePreloadAssets"),afterPreloadRemote:new w("afterPreloadRemote"),loadEntry:new w}),this.host=e,this.idToRemoteMap={}}formatAndRegisterRemote(e,t){return(t.remotes||[]).reduce((r,n)=>(this.registerRemote(n,r,{force:!1}),r),e.remotes)}setIdToRemoteMap(e,t){const{remote:r,expose:n}=t,{name:o,alias:s}=r;if(this.idToRemoteMap[e]={name:r.name,expose:n},s&&e.startsWith(o)){const i=e.replace(o,s);this.idToRemoteMap[i]={name:r.name,expose:n};return}if(s&&e.startsWith(s)){const i=e.replace(s,o);this.idToRemoteMap[i]={name:r.name,expose:n}}}async loadRemote(e,t){const{host:r}=this,n=Ke(r.options.remotes,e);let o=e,s=n==null?void 0:n.expose,i=n?j(n.remote):void 0,a;try{const{loadFactory:c=!0}=t||{loadFactory:!0},{module:l,moduleOptions:f,remoteMatchInfo:u}=await this.getRemoteModuleAndOptions({id:e}),{pkgNameOrAlias:h,remote:m,expose:d,id:p,remoteSnapshot:y}=u;o=p,s=d,i=j(m);const E=await l.get(p,d,t,y),_=await this.hooks.lifecycle.onLoad.emit({id:p,pkgNameOrAlias:h,expose:d,exposeModule:c?E:void 0,exposeModuleFactory:c?void 0:E,remote:m,options:f,moduleInstance:l,origin:r});return this.setIdToRemoteMap(e,u),a={id:o,expose:s,remote:i,options:t,origin:r},typeof _=="function"?_:E}catch(c){const{from:l="runtime"}=t||{from:"runtime"};let f;try{f=await this.hooks.lifecycle.errorLoadRemote.emit({id:e,error:c,from:l,lifecycle:"onLoad",expose:s,remote:i,origin:r})}catch(u){throw a={id:o,expose:s,remote:i,options:t,error:u,origin:r},u}if(!f)throw a={id:o,expose:s,remote:i,options:t,error:c,origin:r},c;return a={id:o,expose:s,remote:i,options:t,error:c,origin:r,recovered:!0},f}finally{a&&await this.hooks.lifecycle.afterLoadRemote.emit(a)}}async preloadRemote(e){const{host:t}=this,r=[];await this.hooks.lifecycle.beforePreloadRemote.emit({preloadOps:e,options:t.options,origin:t});const n=lo(t.options.remotes,e),o=a=>{const{preloadConfig:c,remote:l}=a,f=c.exposes||[];return f.length?f.map(u=>({ops:{...a,preloadConfig:{...c,exposes:[u]}},id:Fe(l.name,u)})):[{ops:a,id:`${l.name}/*`}]};let s;await Promise.all(n.flatMap(o).map(async a=>{const{ops:c,id:l}=a,{remote:f,preloadConfig:u}=c,h=j(f);try{const{globalSnapshot:m,remoteSnapshot:d}=await t.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:f,id:l,initiator:"preloadRemote"}),p=await this.hooks.lifecycle.generatePreloadAssets.emit({origin:t,preloadOptions:c,remote:f,remoteInfo:h,globalSnapshot:m,remoteSnapshot:d});if(!p)return;const y=await Ot(h,t,p,!0,{initiator:"preloadRemote",id:l},u.recordPreloadedAssets);r.push({remote:f,remoteInfo:h,preloadConfig:u,id:l,results:y})}catch(m){r.push({remote:f,remoteInfo:h,preloadConfig:u,id:l,results:[{url:h.entry,status:"error",resourceType:/\.json(?:$|[?#])/i.test(h.entry)?"manifest":"remoteEntry",initiator:"preloadRemote",id:l,error:m}]})}}));const i=r.flatMap(a=>a.results.filter(c=>c.status==="error"||c.status==="timeout"));if(i.length>0&&(s=new Error(`preloadRemote failed to load ${i.length} resource(s).`),Object.assign(s,{results:r,failedResults:i})),await this.hooks.lifecycle.afterPreloadRemote.emit({preloadOps:e,options:t.options,origin:t,results:r,error:s}),s)throw s}registerRemotes(e,t){const{host:r}=this;e.forEach(n=>{this.registerRemote(n,r.options.remotes,{force:t==null?void 0:t.force})})}initRawContainer(e,t,r){const{host:n}=this,o=new Je({host:n,remoteInfo:j({name:e,entry:t})});return o.remoteEntryExports=r,n.moduleCache.set(e,o),o}async getRemoteModuleAndOptions(e){const{host:t}=this,{id:r}=e;let n;try{n=await this.hooks.lifecycle.beforeRequest.emit({id:r,options:t.options,origin:t})}catch(m){if(n=await this.hooks.lifecycle.errorLoadRemote.emit({id:r,options:t.options,origin:t,from:"runtime",error:m,lifecycle:"beforeRequest"}),!n)throw m}const{id:o}=n,s=Ke(t.options.remotes,o);if(!s)try{R(bt,k,{hostName:t.options.name,requestId:o},void 0,D(t.options))}catch(m){throw await this.hooks.lifecycle.afterMatchRemote.emit({id:o,options:t.options,error:m,origin:t}),m}const{remote:i}=s,a=j(i);await this.hooks.lifecycle.afterMatchRemote.emit({id:o,...s,options:t.options,remoteInfo:a,origin:t});const c=await t.sharedHandler.hooks.lifecycle.afterResolve.emit({id:o,...s,options:t.options,origin:t,remoteInfo:a}),{remote:l,expose:f}=c;P(l&&f,`The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${o}.`);let u=t.moduleCache.get(l.name);const h={host:t,remoteInfo:a};return u||(u=new Je(h),t.moduleCache.set(l.name,u)),{module:u,moduleOptions:h,remoteMatchInfo:c}}registerRemote(e,t,r){const{host:n}=this,o=()=>{if(e.alias){const i=t.find(a=>{var c;return e.alias&&(a.name.startsWith(e.alias)||((c=a.alias)==null?void 0:c.startsWith(e.alias)))});P(!i,`The alias ${e.alias} of remote ${e.name} is not allowed to be the prefix of ${i&&i.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||(e.shareScope=oe),e.type||(e.type=Et)};this.hooks.lifecycle.beforeRegisterRemote.emit({remote:e,origin:n});const s=t.find(i=>i.name===e.name);if(!s)o(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:n});else{const i=[`The remote "${e.name}" is already registered.`,"Please note that overriding it may cause unexpected errors."];r!=null&&r.force&&(this.removeRemote(s),o(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:n}),Qe(i.join(" ")))}}removeRemote(e){var t;try{const{host:r}=this,{name:n}=e,o=r.options.remotes.findIndex(c=>c.name===n);o!==-1&&r.options.remotes.splice(o,1);const s=B(b.__FEDERATION__.moduleInfo,ee(e)).key;delete b.__FEDERATION__.moduleInfo[s],"entry"in e&&(r.snapshotHandler.manifestCache.delete(e.entry),delete pe.__FEDERATION__.__MANIFEST_LOADING__[e.entry]);const{hostGlobalSnapshot:i}=Ct(e,r);if(i){const c=i&&"remotesInfo"in i&&i.remotesInfo&&B(i.remotesInfo,e.name).key;c&&delete i.remotesInfo[c]}const a=r.moduleCache.get(e.name);if(a){const c=a.remoteInfo,l=c.entryGlobalName;b[l]&&((t=Object.getOwnPropertyDescriptor(b,l))!=null&&t.configurable?delete b[l]:b[l]=void 0);const f=Pt(a.remoteInfo);G[f]&&delete G[f];let u=c.buildVersion?Ye(c.name,c.buildVersion):c.name;const h=b.__FEDERATION__.__INSTANCES__.findIndex(m=>c.buildVersion?m.options.id===u:m.name===u);if(h!==-1){const m=b.__FEDERATION__.__INSTANCES__[h];u=m.options.id||u;const d=De();let p=!0;const y=[];Object.keys(d).forEach(E=>{const _=d[E];_&&Object.keys(_).forEach(g=>{const S=_[g];S&&Object.keys(S).forEach(I=>{const $=S[I];$&&Object.keys($).forEach(A=>{const T=$[A];T&&typeof T=="object"&&T.from===c.name&&(T.loaded||T.loading?(T.useIn=T.useIn.filter(L=>L!==c.name),T.useIn.length?p=!1:y.push([E,g,I,A])):y.push([E,g,I,A]))})})})}),p&&(m.shareScopeMap={},delete d[u]),y.forEach(([E,_,g,S])=>{var I,$,A;(A=($=(I=d[E])==null?void 0:I[_])==null?void 0:$[g])==null||delete A[S]}),b.__FEDERATION__.__INSTANCES__.splice(h,1)}r.moduleCache.delete(e.name)}}catch(r){ve.error(`removeRemote failed: ${r instanceof Error?r.message:String(r)}`)}}};const No=typeof FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN=="boolean"?!FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN:!0,we=typeof FEDERATION_OPTIMIZE_NO_REMOTE=="boolean"?!FEDERATION_OPTIMIZE_NO_REMOTE:!0,Ze=typeof FEDERATION_OPTIMIZE_NO_SHARED=="boolean"?!FEDERATION_OPTIMIZE_NO_SHARED:!0;var Gt=class{constructor(e){this.hooks=new F({beforeInit:new q("beforeInit"),init:new N,beforeInitContainer:new H("beforeInitContainer"),initContainer:new H("initContainer")}),this.version="2.9.0",this.moduleCache=new Map,this.loaderHook=new F({getModuleInfo:new N,createScript:new N,createLink:new N,fetch:new w,loadEntryError:new w,afterLoadEntry:new w("afterLoadEntry"),beforeInitRemote:new w("beforeInitRemote"),afterInitRemote:new w("afterInitRemote"),beforeGetExpose:new w("beforeGetExpose"),afterGetExpose:new w("afterGetExpose"),beforeExecuteFactory:new w("beforeExecuteFactory"),afterExecuteFactory:new w("afterExecuteFactory"),getModuleFactory:new w}),this.bridgeHook=new F({beforeBridgeRender:new N,afterBridgeRender:new N,beforeBridgeDestroy:new N,afterBridgeDestroy:new N,afterBridgeRouteSync:new N});const t=we&&No?[_o(),bo()]:[],r={id:no(),name:e.name,plugins:t,remotes:[],shared:{},inBrowser:Xe};this.name=e.name,this.options=r,this.snapshotHandler=we?new Io(this):new wo,this.sharedHandler=Ze?new $o(this):new To,this.remoteHandler=we?new Ao(this):new go,this.shareScopeMap=this.sharedHandler.shareScopeMap,this.registerPlugins([...r.plugins,...e.plugins||[]]),this.options=this.formatOptions(r,e)}initOptions(e){e.name&&e.name!==this.options.name&&R(st($t,k)),this.registerPlugins(e.plugins);const 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=oe,t){return this.sharedHandler.initializeSharing(e,t)}initRawContainer(e,t,r){return this.remoteHandler.initRawContainer(e,t,r)}async loadRemote(e,t){return this.remoteHandler.loadRemote(e,t)}async preloadRemote(e){return this.remoteHandler.preloadRemote(e)}initShareScopeMap(e,t,r={}){this.sharedHandler.initShareScopeMap(e,t,r)}formatOptions(e,t){const r=Ze?gt(e,t).allShareInfos:{},{userOptions:n,options:o}=this.hooks.lifecycle.beforeInit.emit({origin:this,userOptions:t,options:e,shareInfo:r}),s=this.remoteHandler.formatAndRegisterRemote(o,n),{allShareInfos:i}=this.sharedHandler.registerShared(o,n),a=[...o.plugins];n.plugins&&n.plugins.forEach(l=>{a.includes(l)||a.push(l)});const c={...e,...t,plugins:a,remotes:s,shared:i,id:n.id||e.id};return this.hooks.lifecycle.init.emit({origin:this,options:c}),c}registerPlugins(e){this.options.plugins=ao(e,this)}registerRemotes(e,t){return this.remoteHandler.registerRemotes(e,t)}registerShared(e){this.sharedHandler.registerShared(this.options,{...this.options,shared:e})}};const Po=po;function vo(){return typeof FEDERATION_BUILD_IDENTIFIER<"u"?FEDERATION_BUILD_IDENTIFIER:""}function ko(e,t){const r=vo();return b.__FEDERATION__.__INSTANCES__.find(n=>!!(r&&n.options.id===r||n.options.name===e&&!n.options.version&&!t||n.options.name===e&&t&&n.options.version===t))}function Lo(e){const t=new(ar()||Gt)({id:`${e.name}@${e.version||Date.now()}`,...e});return ir(t),t}let ce=null;function Mo(e){const t=ko(e.name,e.version),r={...e,id:e.id||""};return t?(t.initOptions(r),ce||(ce=t),t):(ce=Lo(r),ce)}cr(Gt);export{Po as h,Mo as i};
@@ -0,0 +1,25 @@
1
+ import"../reviewEditor.js";import{_ as x,a as A}from"./_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__1__loadShare__react__loadShare__.js-DDD1Hp7v.js";import"./vite-preload-helper-Dp1pzeXC.js";import"./index-2HOz3j7B.js";var g={exports:{}};const y=x||A,s=y.createElement,p=(t,e)=>(typeof navigator<"u"?String(navigator.language||"").toLowerCase():"de").startsWith("de")?t:e,d=t=>String(t||"").trim().toLocaleLowerCase("de"),S=t=>String(t||"").trim().toLocaleLowerCase("de").normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/ß/g,"ss").replace(/[^a-z0-9]+/g," ").trim();function f(t){let e=S(t).replace(/\s+/g,"");return(e.length>6&&e.endsWith("en")||e.length>6&&e.endsWith("n"))&&(e=e.slice(0,-1)),e}function m(t){const e=Array.isArray(t)?t:String(t||"").split(/[;,]/),r=new Set;return e.map(i=>String(i||"").trim()).filter(i=>{const l=d(i);return!l||r.has(l)?!1:(r.add(l),!0)}).join(",")}function C(t){const e=[],r=new Set;for(const i of Array.isArray(t==null?void 0:t.markets)?t.markets:[]){if(!i||i.enabled===!1)continue;const l=String(i.name||"").trim(),o=d(l);!l||r.has(o)||(r.add(o),e.push(l))}return e.sort((i,l)=>i.localeCompare(l,"de",{sensitivity:"base"}))}function _(t){const e=new Set;return(Array.isArray(t==null?void 0:t.productGroups)?t.productGroups:[]).map(r=>String((r==null?void 0:r.name)||"").trim()).filter(r=>{const i=d(r);return!i||e.has(i)?!1:(e.add(i),!0)}).sort((r,i)=>r.localeCompare(i,"de",{sensitivity:"base"}))}function M(t){return[t==null?void 0:t.name,...String((t==null?void 0:t.aliases)||"").split(/[;,]/)].map(f).filter(Boolean)}function k(t,e){const r=f(e);return r?t.findIndex(i=>M(i).includes(r)):-1}function I(t,e){const r=[],i=new Set;for(const l of`${t||""},${e||""}`.split(/[;,]/)){const o=String(l||"").trim(),n=d(o);!o||i.has(n)||(i.add(n),r.push(o))}return r.join(",")}function h(t,e,r){const i=(Array.isArray(t==null?void 0:t.reviewItems)?t.reviewItems:[]).map((l,o)=>o===e?{...l,...r}:{...l});return{...t||{},reviewItems:i}}function v(t,e){const r=new Set(e),i=(Array.isArray(t==null?void 0:t.products)?t.products:[]).map(o=>({...o})),l=(Array.isArray(t==null?void 0:t.reviewItems)?t.reviewItems:[]).map(o=>({...o}));for(let o=0;o<l.length;o++){if(!r.has(o))continue;const n=l[o],c=String(n.product||"").trim();if(!c)continue;const u=k(i,c);if(u>=0){const a={...i[u]};n.category&&(a.category=String(n.category)),n.defaultMarket!==void 0&&(a.defaultMarket=String(n.defaultMarket||"")),n.availableMarkets!==void 0&&(a.availableMarkets=m(n.availableMarkets)),n.aliases&&(a.aliases=I(a.aliases,n.aliases)),i[u]=a}else i.push({name:c,aliases:String(n.aliases||""),category:String(n.category||n.guessedCategory||"Sonstiges"),defaultMarket:String(n.defaultMarket||""),availableMarkets:m(n.availableMarkets)});l[o]={...n,availableMarkets:m(n.availableMarkets),action:"accepted"}}return i.sort((o,n)=>String(o.name||"").localeCompare(String(n.name||""),"de",{sensitivity:"base"})),{...t||{},products:i,reviewItems:l}}const P=`
2
+ .shoppingroute-review-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 14px}
3
+ .shoppingroute-review-button{min-height:38px;padding:7px 16px;border:1px solid currentColor;border-radius:5px;background:transparent;color:inherit;cursor:pointer;font-weight:600}
4
+ .shoppingroute-review-button:disabled{opacity:.45;cursor:default}
5
+ .shoppingroute-review-list{display:flex;flex-direction:column;border:1px solid currentColor;border-radius:8px;overflow:hidden}
6
+ .shoppingroute-review-row{display:grid;grid-template-columns:minmax(190px,1.35fr) minmax(150px,1fr) minmax(125px,.8fr) minmax(155px,1fr) minmax(150px,1fr) minmax(130px,.8fr) 34px;gap:9px;align-items:center;padding:9px 10px;border-bottom:1px solid currentColor}
7
+ .shoppingroute-review-row:last-child{border-bottom:0}
8
+ .shoppingroute-review-row input,.shoppingroute-review-row select{width:100%;min-width:0;min-height:36px;box-sizing:border-box;border:1px solid currentColor;border-radius:4px;background:transparent;color:inherit;padding:6px 8px}
9
+ .shoppingroute-review-row select[multiple]{min-height:58px}
10
+ .shoppingroute-review-product small{display:block;opacity:.65;margin-top:3px;word-break:break-word}
11
+ .shoppingroute-review-delete{width:32px;height:32px;border:1px solid currentColor;border-radius:4px;background:transparent;color:inherit;cursor:pointer}
12
+ .shoppingroute-review-head{font-size:.78rem;font-weight:700;opacity:.68;padding-top:6px;padding-bottom:6px}
13
+ @media(max-width:900px){
14
+ .shoppingroute-review-head{display:none}
15
+ .shoppingroute-review-row{grid-template-columns:1fr 1fr;padding:12px}
16
+ .shoppingroute-review-product{grid-column:1/-1}
17
+ .shoppingroute-review-delete{justify-self:end}
18
+ }
19
+ @media(max-width:600px){
20
+ .shoppingroute-review-row{grid-template-columns:1fr}
21
+ .shoppingroute-review-product,.shoppingroute-review-delete{grid-column:auto}
22
+ .shoppingroute-review-delete{justify-self:start}
23
+ .shoppingroute-review-button{width:100%}
24
+ }
25
+ `;class R extends y.Component{change(e){this.props.onChange(e,!0)}update(e,r){this.change(h(this.props.data||{},e,r))}accept(e){const r=h(this.props.data||{},e,{action:"accept"});this.change(v(r,[e]))}acceptAll(){var i;const e=Array.isArray((i=this.props.data)==null?void 0:i.reviewItems)?this.props.data.reviewItems:[],r=e.map((l,o)=>o).filter(l=>{var o;return((o=e[l])==null?void 0:o.action)!=="accepted"});r.length&&this.change(v(this.props.data||{},r))}remove(e){const r=this.props.data||{},i=(Array.isArray(r.reviewItems)?r.reviewItems:[]).filter((l,o)=>o!==e).map(l=>({...l}));this.change({...r,reviewItems:i})}renderRow(e,r,i,l){const o=new Set(String(e.availableMarkets||"").split(/[;,]/).map(a=>d(a)).filter(Boolean)),n=e.action==="accepted",c=[s("option",{key:"pending",value:"pending"},p("Offen","Pending")),s("option",{key:"accept",value:"accept"},p("Übernehmen","Accept")),n?s("option",{key:"accepted",value:"accepted"},p("Übernommen","Accepted")):null,s("option",{key:"ignore",value:"ignore"},p("Ignorieren","Ignore"))].filter(Boolean),u=n?{opacity:.78}:void 0;return s("div",{key:`${e.key||e.product||"review"}-${r}`,className:"shoppingroute-review-row",style:u},[s("div",{key:"product",className:"shoppingroute-review-product"},[s("input",{key:"input",value:String(e.product||""),"aria-label":p("Artikel","Product"),onChange:a=>this.update(r,{product:a.target.value,action:n?"pending":e.action})}),s("small",{key:"source"},String(e.text||""))]),s("select",{key:"category",value:String(e.category||e.guessedCategory||""),"aria-label":p("Produktgruppe","Product group"),onChange:a=>this.update(r,{category:a.target.value,action:n?"pending":e.action})},[...new Set([String(e.category||e.guessedCategory||""),...i].filter(Boolean))].map(a=>s("option",{key:a,value:a},a))),s("select",{key:"defaultMarket",value:String(e.defaultMarket||""),"aria-label":p("Standardmarkt","Default market"),onChange:a=>this.update(r,{defaultMarket:a.target.value,action:n?"pending":e.action})},[s("option",{key:"__none__",value:""},"—"),...l.map(a=>s("option",{key:a,value:a},a))]),s("select",{key:"availableMarkets",multiple:!0,value:l.filter(a=>o.has(d(a))),"aria-label":p("Verfügbare Märkte","Available markets"),onChange:a=>{const w=[...a.target.selectedOptions].map(b=>b.value);this.update(r,{availableMarkets:w.join(","),action:n?"pending":e.action})}},l.map(a=>s("option",{key:a,value:a},a))),s("input",{key:"aliases",value:String(e.aliases||""),placeholder:p("Aliase","Aliases"),"aria-label":p("Aliase","Aliases"),onChange:a=>this.update(r,{aliases:a.target.value,action:n?"pending":e.action})}),s("select",{key:"action",value:String(e.action||"pending"),"aria-label":p("Aktion","Action"),onChange:a=>{a.target.value==="accept"?this.accept(r):this.update(r,{action:a.target.value})}},c),s("button",{key:"delete",type:"button",className:"shoppingroute-review-delete",title:p("Aus Prüfliste entfernen","Remove from review list"),onClick:()=>this.remove(r)},"×")])}render(){const e=this.props.data||{},r=Array.isArray(e.reviewItems)?e.reviewItems:[],i=_(e),l=C(e),o=r.filter(c=>(c==null?void 0:c.action)!=="accepted").length,n=[s("style",{key:"styles"},P)];return n.push(s("div",{key:"toolbar",className:"shoppingroute-review-toolbar"},[s("button",{key:"acceptAll",type:"button",className:"shoppingroute-review-button",disabled:o===0,onClick:()=>this.acceptAll()},o?p(`Alle übernehmen (${o})`,`Accept all (${o})`):p("Alles übernommen","All accepted")),s("span",{key:"hint",style:{opacity:.7}},p("„Übernehmen“ aktualisiert Artikelstamm und Status sofort; danach normal speichern.","“Accept” updates catalogue and status immediately; then save normally."))])),r.length?(n.push(s("div",{key:"list",className:"shoppingroute-review-list"},[s("div",{key:"head",className:"shoppingroute-review-row shoppingroute-review-head"},[s("div",{key:"product"},p("Artikel / Alexa-Text","Product / Alexa text")),s("div",{key:"group"},p("Produktgruppe","Product group")),s("div",{key:"default"},p("Standardmarkt","Default market")),s("div",{key:"available"},p("Verfügbare Märkte","Available markets")),s("div",{key:"aliases"},p("Aliase","Aliases")),s("div",{key:"action"},p("Status","Status")),s("div",{key:"delete"},"")]),...r.map((c,u)=>this.renderRow(c||{},u,i,l))])),s("div",{style:{width:"100%"}},n)):(n.push(s("div",{key:"empty",style:{opacity:.7,padding:"12px 0"}},p("Keine unbekannten Artikel vorhanden.","No unknown products."))),s("div",{style:{width:"100%"}},n))}}g.exports={Components:{ReviewEditor:R},ReviewEditorModel:{normalizeMarketCsv:m,updateReviewRow:h,acceptReviewRows:v,findProductIndex:k}};const N=(g.exports==null?{}:g.exports).default||g.exports,L=N.Components;export{L as default};
@@ -0,0 +1 @@
1
+ const c={},i=new Set,r=new Map;function m(t,n){let e=r.get(t);return e||(e=Promise.resolve().then(n).catch(o=>{throw r.delete(t),o}),r.set(t,e)),e}async function u(t){if(typeof document>"u")return;const n=c[t]||[];await Promise.all(n.map(e=>{const o=new URL(e,import.meta.url).href;return i.has(o)||(i.add(o),document.querySelector(`link[rel="stylesheet"][href="${o}"]`))?Promise.resolve():new Promise((a,l)=>{const s=document.createElement("link");s.rel="stylesheet",s.href=o,s.onload=()=>a(),s.onerror=()=>l(new Error(`[Module Federation] Failed to load CSS asset: ${o}`)),document.head.appendChild(s)})}))}const f={"./Components":async()=>{await u("./Components"),await Promise.all([]);const t=await m("./Components",()=>import("./review-editor-components-CWyNDqPF.js")),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then=="function"&&await n;const e={};return Object.assign(e,t),Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),e}};export{f as default};
@@ -0,0 +1 @@
1
+ const y="modulepreload",w=function(f,a){return new URL(f,a).href},E={},g=function(a,u,d){let h=Promise.resolve();if(u&&u.length>0){let s=function(e){return Promise.all(e.map(r=>Promise.resolve(r).then(l=>({status:"fulfilled",value:l}),l=>({status:"rejected",reason:l}))))};const t=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),v=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));h=s(u.map(e=>{if(e=w(e,d),e in E)return;E[e]=!0;const r=e.endsWith(".css"),l=r?'[rel="stylesheet"]':"";if(!!d)for(let i=t.length-1;i>=0;i--){const c=t[i];if(c.href===e&&(!r||c.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${e}"]${l}`))return;const n=document.createElement("link");if(n.rel=r?"stylesheet":y,r||(n.as="script"),n.crossOrigin="",n.href=e,v&&n.setAttribute("nonce",v),document.head.appendChild(n),r)return new Promise((i,c)=>{n.addEventListener("load",i),n.addEventListener("error",()=>c(new Error(`Unable to preload CSS for ${e}`)))})}))}function m(s){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=s,window.dispatchEvent(t),!t.defaultPrevented)throw s}return h.then(s=>{for(const t of s||[])t.status==="rejected"&&m(t.reason);return a().catch(m)})};export{g as _};
@@ -0,0 +1 @@
1
+ {"id":"ShoppingRouteReviewSet","name":"ShoppingRouteReviewSet","metaData":{"name":"ShoppingRouteReviewSet","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ShoppingRouteReviewSet"},"remoteEntry":{"name":"reviewEditor.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"reviewEditor.ssr.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ShoppingRouteReviewSet","pluginVersion":"0.2.5","publicPath":"auto"},"shared":[{"id":"ShoppingRouteReviewSet:react","name":"react","version":"18.3.1","singleton":true,"requiredVersion":">=18","assets":{"js":{"async":[],"sync":["assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__1__loadShare__react__loadShare__.js-DDD1Hp7v.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ShoppingRouteReviewSet:Components","name":"Components","assets":{"js":{"async":[],"sync":["assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-DXSRuGUo.js","assets/virtualExposes-BDTLizpE.js","assets/review-editor-components-CWyNDqPF.js","reviewEditor.js","assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__1__loadShare__react__loadShare__.js-DDD1Hp7v.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}]}
@@ -0,0 +1 @@
1
+ {"id":"ShoppingRouteReviewSet","name":"ShoppingRouteReviewSet","metaData":{"name":"ShoppingRouteReviewSet","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ShoppingRouteReviewSet"},"remoteEntry":{"name":"reviewEditor.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"reviewEditor.ssr.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ShoppingRouteReviewSet","pluginVersion":"0.2.5","publicPath":"auto"},"shared":[{"id":"ShoppingRouteReviewSet:react","name":"react","version":"18.3.1","singleton":true,"requiredVersion":">=18","assets":{"js":{"async":[],"sync":["assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__1__loadShare__react__loadShare__.js-DDD1Hp7v.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ShoppingRouteReviewSet:Components","name":"Components","assets":{"js":{"async":[],"sync":["assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-DXSRuGUo.js","assets/virtualExposes-BDTLizpE.js","assets/review-editor-components-CWyNDqPF.js","reviewEditor.js","assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__1__loadShare__react__loadShare__.js-DDD1Hp7v.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}],"buildOutput":[{"fileName":"reviewEditor.js","type":"chunk","isEntry":false,"size":18701},{"fileName":"assets/vite-preload-helper-Dp1pzeXC.js","type":"chunk","isEntry":false,"size":1266},{"fileName":"assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__1__loadShare__react__loadShare__.js-DDD1Hp7v.js","type":"chunk","isEntry":false,"size":11509},{"fileName":"assets/hostInit-BfEpvyuX.js","type":"chunk","isEntry":false,"size":2478},{"fileName":"assets/review-editor-components-CWyNDqPF.js","type":"chunk","isEntry":true,"size":9598},{"fileName":"assets/virtualExposes-BDTLizpE.js","type":"chunk","isEntry":false,"size":1070},{"fileName":"assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-DXSRuGUo.js","type":"chunk","isEntry":false,"size":727},{"fileName":"assets/index-2HOz3j7B.js","type":"chunk","isEntry":false,"size":66321},{"fileName":"mf-manifest.json","type":"asset","isEntry":false,"size":1329}],"assetAnalysis":{"./src-admin/review-editor-components.mjs":{"js":{"sync":["assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-DXSRuGUo.js","assets/virtualExposes-BDTLizpE.js","assets/review-editor-components-CWyNDqPF.js","reviewEditor.js","assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__1__loadShare__react__loadShare__.js-DDD1Hp7v.js"],"async":[]},"css":{"sync":[],"async":[]}},"react":{"js":{"sync":["assets/_virtual_mf___mfe_internal__ShoppingRouteReviewSet__mf_owner__1__loadShare__react__loadShare__.js-DDD1Hp7v.js"],"async":[]},"css":{"sync":[],"async":[]}}}}
@@ -0,0 +1,13 @@
1
+ import{h as ct,i as lt}from"./assets/index-2HOz3j7B.js";const dt=ct.share;typeof __VUE_HMR_RUNTIME__>"u"&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});const Ne="__mf_init__virtual:mf:__mfe_internal__ShoppingRouteReviewSet__mf_owner__1__mf_v__runtimeInit__mf_v__.js__";let de=globalThis[Ne];if(!de){let s,f;const u=new Promise((h,C)=>{s=h,f=C});de=globalThis[Ne]={initPromise:u,initResolve:s,initReject:f}}const ut=de.initResolve,ne="__mf_module_cache__";globalThis[ne]||={share:{},remote:{}};globalThis[ne].share||={};globalThis[ne].remote||={};const d=globalThis[ne];for(const s of Object.keys(d.share))if(s.startsWith("default:")){const f=s.slice(8);d.share[f]===void 0&&(d.share[f]=d.share[s])}else if(!s.includes(":")){const f="default:"+s;d.share[f]===void 0&&(d.share[f]=d.share[s])}const Te={},mt=Array.isArray("default")?"default":["default"],Fe="default",D="ShoppingRouteReviewSet",ce=[["react"]];let ee,te,ue;async function _e(s){for(let f=0;;f++)try{return await s()}catch(u){throw u}}const Le=Symbol("mf.originalSharedProvider"),_t={emit:s=>s},ht=(s,f)=>{if(f!=="version-first")return s;const u={};for(const[h,C]of Object.entries(s))u[h]=Object.assign({},C,{[Le]:C});return u},le=(s,f)=>{if(!f)return;const u=Object.entries(s||{}),h=u.find(([,p])=>p===f);if(h)return{version:h[0],provider:f,registered:!0};if(typeof f.version=="string"&&f.version)return{version:f.version,provider:f,registered:!1};const C=u.filter(([,p])=>p===f||!!(f.from&&(p==null?void 0:p.from)===f.from));if(C.length===1)return{version:C[0][0],provider:f,registered:!1}},me=(s,f,u,h)=>{var E;if(!s||!u)return;const C=Array.isArray(u.scope)?u.scope:[u.scope||"default"],p=ht(s,h),x={};for(const N of C)x[N||"default"]={[f]:p};const P=(E=dt.getRegisteredShare(x,f,{...u,scope:C,strategy:h},_t))==null?void 0:E.shared;return(P==null?void 0:P[Le])||P},U=(s,f,u,h)=>{var P;const C=E=>z(E,u),p=Object.fromEntries(Object.entries(s||{}).filter(([,E])=>{var N;return!C(E)&&((N=E==null?void 0:E.shareConfig)==null?void 0:N.import)!==!1}));u!=null&&u.version&&((P=u.shareConfig)==null?void 0:P.import)!==!1&&(p[u.version]||(p[u.version]=u));const x=me(p,f,u,h);return C(x)?void 0:x},z=(s,f)=>s===f||!!(f!=null&&f.from&&(s==null?void 0:s.from)===f.from),gt=(s,f,u,h,C,p,x,P,E)=>{var B,J,W;if(!P)return;const N=(J=(B=f==null?void 0:f.options)==null?void 0:B.shared)==null?void 0:J[C],K=Array.isArray(N)?N.find(L=>(L==null?void 0:L.version)===p):void 0,V=((P==null?void 0:P.from)===((W=f==null?void 0:f.options)==null?void 0:W.name)?P:void 0)||(z(K,P)?K:f?void 0:P);return V&&s.some(L=>{var q,M;return L!==f&&((q=L==null?void 0:L.options)==null?void 0:q.name)===(x==null?void 0:x.from)&&((M=L==null?void 0:L.shareScopeMap)==null?void 0:M[h])===u})?V:void 0},bt=(s,f,u,h,C,p,x,P,E)=>{const N=p.registered?gt(s,f,u,h,C,p.version,p.provider,P):void 0,K=N||x;if(K&&!(p.registered&&!z(K,P)))return{provider:K,scopeRootProvider:N}};async function yt(){return ee||(ee=_e(()=>import("./assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-DXSRuGUo.js")).catch(s=>{throw ee=void 0,s})),ee}async function St(){return te||(te=_e(()=>import("./assets/virtualExposes-BDTLizpE.js")).then(s=>s.default??s).catch(s=>{throw te=void 0,s})),te}async function Pt(s={},f=[]){var we,je,Re,Ce,Ee;const u=(t,e,n,r)=>{const o=(Array.isArray(r)?r[0]:r)||"default",c=e||!n?t:t+"@"+n,a={canonical:o+":"+c};return o==="default"&&(a.aliases=[c]),a},h=(t,e)=>{const n=t[e.canonical];if(n!==void 0)return n;const r=e.aliases||[];for(const i of r){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const o=t[i];if(o!==void 0)return t[e.canonical]=o,o}},C=Symbol.for("module-federation.shared-cache-listeners"),p=Symbol.for("module-federation.shared-cache-owners"),x=t=>{let e=t[p];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,p,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},P=(t,e)=>{var n;return(n=t[p])==null?void 0:n[e.canonical]},E=(t,e,n,r)=>{var a;t[e.canonical]=n;const i=e.aliases||[];for(const l of i)Object.defineProperty(t,l,{value:n,enumerable:!0,configurable:!0,writable:!0});const o=t[p];r===void 0?o&&delete o[e.canonical]:x(t)[e.canonical]=r;const c=(a=t[C])==null?void 0:a[e.canonical];if(c)for(const l of c)l(n);return n},N=Symbol.for("module-federation.tree-shaking-shared-cache"),K=t=>{let e=t[N];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,N,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},he=(t,e,n,r)=>{if(!Array.isArray(n))return r;const i=[...new Set(n)].sort(),o=K(t),c=o[e.canonical]||=[],a=c.find(l=>l.providedExports.length===i.length&&l.providedExports.every((y,m)=>y===i[m]));return a?a.value=r:c.push({providedExports:i,value:r}),r},V=Symbol.for("module-federation.tree-shaking-shared-selection-cache"),ge=t=>{let e=t[V];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,V,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},B=(t,e,n)=>{var i,o;const r=h(t,e);return r!==void 0?r:(o=(i=t[V])==null?void 0:i[e.canonical])==null?void 0:o[n]},J=(t,e,n,r)=>{const i=ge(t),o=i[e.canonical]||=Object.create(null);return o[n]=r,r},W=((we=globalThis.__FEDERATION__)==null?void 0:we.__INSTANCES__)||[],L=(je=f.find(t=>t==null?void 0:t.from))==null?void 0:je.from,q=W.find(t=>{var e,n;return((e=t==null?void 0:t.options)==null?void 0:e.name)===L&&((n=t==null?void 0:t.shareScopeMap)==null?void 0:n.default)===s})||W.find(t=>{var e,n;return((e=t==null?void 0:t.options)==null?void 0:e.name)!==D&&((n=t==null?void 0:t.shareScopeMap)==null?void 0:n.default)===s}),M=Object.create(null),Ae=t=>{const e=Object.create(null);for(const[n,r]of Object.entries(t||{}))e[n]=Object.assign(Object.create(null),r);return e},De=(t,e)=>{const n=!q&&Object.values(e||{}).some(i=>Object.values(i||{}).some(Q)),r=n?Ae(e):e;return M[t]={host:e,runtime:r,isWebpackScope:n},r},ze=()=>{const t=Object.values(M).filter(({isWebpackScope:e})=>e);if(t.length!==0)for(const{host:e,runtime:n}of t)for(const[r,i]of Object.entries(e||{})){const o=n[r]||=Object.create(null);for(const[c,a]of Object.entries(i||{}))o[c]=a}},k=Object.create(null);for(const[t,e]of Object.entries(s)){const n=k[t]=Object.create(null);for(const[r,i]of Object.entries(e))n[r]=Object.assign({},i)}const{usedShared:I,usedRemotes:ke}=await yt();function Q(t){if(typeof(t==null?void 0:t.get)!="function")return!1;const e=Function.prototype.toString.call(t.get);return e.includes("__webpack_require__")||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(e)}const Ke=Object.values(k).some(t=>Object.values(t||{}).some(Q)),Be=t=>{const e=t.split("/");return t.startsWith("@")?e.slice(0,2).join("/"):e[0]},re=(t,e,n)=>{if(typeof U!="function")return;const r=Be(t),i=r===t?[[t,e]]:[[t,e],[r,I[r]]];for(const[o,c]of i){if(!c)continue;const a=n?o===t?n:k[o]:s[o],l=U(a,o,c,"version-first");if(l&&Q(l)&&!l.lib&&!l.loaded)return l}};var X=Te[Fe];if(X||(X=Te[Fe]={from:D}),f.indexOf(X)>=0)return;f.push(X);const be=t=>{let e=t;for(let n=0;n<5;n++){const r=e==null?void 0:e.default;if(!r||typeof r!="object"||Object.keys(r).length===0)break;const i=Object.keys(e).filter(o=>o!=="default").map(o=>e[o]);if(i.length>0&&i.some(o=>o!==void 0))break;e=r}return e},Ge=[],Ve=typeof globalThis.window>"u"?await Promise.all([]):[],oe="__mf_vite_runtime_share_load_id__";let We=0;const ie=new Map,se=new Map,H=lt({name:D,remotes:ke,shared:I,plugins:[He(),Ue(),...Ge,...Ve],shareStrategy:"version-first"});H.initShareScopeMap("default",De("default",s));function He(){return{name:"vite-share-pin-lifecycle-plugin",resolveShare(t){var i;const e=(i=t.shareInfo)==null?void 0:i[oe],n=e===void 0?void 0:se.get(e);if(!n)return t;const r=t.resolver;return t.resolver=(...o)=>(n.pinned.reapply(),r(...o)),n.pinned.reveal(),t}}}function Ue(){return{name:"vite-real-name-snapshot-plugin",afterLoadSnapshot(t){const e=t&&t.remoteSnapshot,n=e&&e.globalName,r=e&&e.version;if(!n||!r||!e.remoteEntry)return t;const i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,o=n+":"+r;return i&&!i[o]&&(i[o]=e),t}}}const qe=H.sharedHandler.hooks.lifecycle.resolveShare,Y=new WeakMap;qe.on(t=>{var i;const e=(i=t.shareInfo)==null?void 0:i[oe],n=t.resolver;if(typeof n!="function")return t;const r=(...o)=>{const c=n(...o),a=c==null?void 0:c.shared;return a&&(typeof a=="object"||typeof a=="function")&&!Y.has(a)&&Y.set(a,{from:a.from}),e!==void 0&&a&&ie.set(e,a),c};return t.resolver=r,t});const Me=(t,e,n,r)=>{if(!t||t[e]!==n)return;const i=Object.assign({},r,{version:r.version??e,scope:r.scope??(n==null?void 0:n.scope)??["default"],strategy:"loaded-first"}),o=r.from;t[e]=i;const c=()=>n===void 0?t[e]===void 0:t[e]===n;return{provider:i,reveal(){return t[e]!==i?!1:(n===void 0?delete t[e]:t[e]=n,!0)},reapply(){return c()?(t[e]=i,!0):!1},release(a,l=!0){return r.from=o,t[e]!==i?!l&&c():l?a?(i.from=o,a&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete t[e]:t[e]=n,!1):(n===void 0?delete t[e]:t[e]=n,!0)}}},Je=t=>Object.entries(t||{}).map(([e,n])=>({provider:n,version:e,from:n.from,registered:!0})),Qe=(t,e)=>{if(e===void 0)return;let n;for(const r of t){const i=r.provider,o=i.treeShaking||i;if(!(r.loadedFactory!==e&&i.lib!==e&&o.lib!==e)){if(n)return;n=r}}return n},Xe=async(t,e,n)=>{const r=++We;se.set(r,{pinned:n});try{const i=await H.loadShare(t,{customShareInfo:{shareConfig:e,[oe]:r}});return{factory:i===!1?void 0:i,selectedProvider:ie.get(r)}}finally{ie.delete(r),se.delete(r)}},ye=async(t,e,n,r,i,o,c=!0)=>{const a=o.from,l=Me(n,r,i,o);if(!l)return;let y;try{y=await Xe(t,e,l)}catch(j){throw l.release(!1),j}const m=y==null?void 0:y.factory;if(m===void 0){l.release(!1);return}const _=Je(n),g=l.provider.treeShaking||l.provider,R=l.provider.lib===m||g.lib===m;if(!c&&R){const j=_.findIndex(v=>v.provider===l.provider);j!==-1&&_.splice(j,1)}!c&&!_.some(j=>j.provider===o)&&_.push({provider:o,version:r,from:a,registered:!1,loadedFactory:R?m:void 0});const O=!c&&y.selectedProvider===l.provider&&R?o:y.selectedProvider;if(O&&!_.some(j=>j.provider===O)){const j=Y.get(O),v=typeof O.version=="string"&&O.version?O.version:r;_.push({provider:O,version:v,from:j?j.from:O.from,registered:(n==null?void 0:n[v])===O,loadedFactory:m})}const b=_.find(j=>j.provider===O)??Qe(_,m);if(!l.release(!0,(b==null?void 0:b.provider)===l.provider)||!b)return;const S=Y.get(b.provider);b.from=b.provider===o?a:S?S.from:b.provider.from,S&&(b.provider.from=S.from);const A=typeof m=="function"?m():m,w=await Promise.resolve(A);if(!(b.registered&&(n==null?void 0:n[b.version])!==b.provider))return{provider:b.provider,selection:b,resolved:w}},fe=new Set,ae=new Map,Ye=async(t,e,n)=>{var i;const r=!!((i=e.shareConfig)!=null&&i.singleton);if(!r&&e.canLiveRebind!==!1)try{const o=U(n,t,e,"version-first"),c=le(n,o);if(!c)return;const{version:a}=c;if(!r&&a!==e.version||!o.lib&&!o.loading&&!(o.loaded&&typeof o.get=="function"))return;const l=u(t,r,e.version,e.scope);if(h(d.share,l)!==void 0)return;const y=s[t],m=y==null?void 0:y[a];if(c.registered&&!z(m,o))return;let _,g=o.lib;if(!g&&Q(o)||(!g&&o.loading&&(g=await o.loading),!g&&o.loaded&&typeof o.get=="function"&&(g=await o.get()),!g))return;const R=typeof g=="function"?g():g,O=await Promise.resolve(R),b=c.registered?m:o;_={provider:b,selection:{provider:b,version:a,from:o.from,registered:c.registered},resolved:O};const T=_==null?void 0:_.provider,S=_==null?void 0:_.selection;if(!S)return;const A=_==null?void 0:_.resolved;if(A===void 0||h(d.share,l)!==void 0||S.registered&&(y==null?void 0:y[S.version])!==T)return;E(d.share,l,be(A),S.from),fe.add(T)}catch(o){console.error('[Module Federation] Failed to bridge materialized shared module "'+t+'"',o)}},Se=async(t,e,n,r,i)=>{var o,c;try{const a=u(t,(o=e.shareConfig)==null?void 0:o.singleton,e.version,e.scope),l=h(d.share,a),y=P(d.share,a),m=U(n,t,e,"version-first"),_=m||me(n,t,e,"version-first")||e,g=le(n,_);if(!g)return;const R=z(_,e),{version:O}=g;if(!((c=e.shareConfig)!=null&&c.singleton)&&O!==e.version)return;const b=r==null?void 0:r[O],T=bt(W,q,s,"default",t,g,m,b,"version-first");if(!T&&!R)return;const{provider:S,scopeRootProvider:A}=T||{provider:_,scopeRootProvider:void 0};if(e.canLiveRebind===!1||l!==void 0&&y!==D)return;const w=s[t],j=w==null?void 0:w[O];if(g.registered&&!A&&!z(j,S))return;const v=await ye(t,e.shareConfig,w,O,j,S,g.registered&&!R),G=v==null?void 0:v.provider,F=v==null?void 0:v.selection;if(!F||z(G,e)||i&&(i.version!==F.version||!z({from:F.from},i.provider))||fe.has(G))return;const Ie=v==null?void 0:v.resolved;if(Ie===void 0)return;const st=h(d.share,a),ft=P(d.share,a);if(st!==void 0&&ft!==D||F.registered&&(w==null?void 0:w[F.version])!==G)return;i||ae.set(t,{version:F.version,provider:{from:F.from}}),fe.add(G);const at=be(Ie);E(d.share,a,at,F.from)}catch(a){console.error('[Module Federation] Failed to bridge external shared module "'+t+'"',a)}};for(const t of ce)await Promise.all(t.map(async e=>{const n=I[e];!n||n.materialize===!1||n.treeShaking||await Ye(e,n,k[e])}));for(const[t,e]of Object.entries(I)){if(e.treeShaking)continue;const n=u(t,(Re=e.shareConfig)==null?void 0:Re.singleton,e.version,e.scope);if(h(d.share,n)!==void 0)continue;const r=u(t,!0,e.version,e.scope),i=h(d.share,r);i!==void 0&&E(d.share,n,i,P(d.share,r))}const Ze=["react"],$e=[["react"]],Z=Ze.filter(t=>{var e;return I[t]&&(I[t].materialize!==!1||((e=I[t].shareConfig)==null?void 0:e.import)===!1)});d.providerInit||=new Map;const et=(t,e)=>{const n=d.providerInit.get(t);if(n)return n;const r=Promise.resolve().then(e);return d.providerInit.set(t,r),r.catch(()=>d.providerInit.delete(t)),r};var ve=async t=>{const e=new Set(t);for(const n of $e)await Promise.all(n.filter(r=>e.has(r)).map(async r=>{var O,b;const i=I[r],o=u(r,(O=i.shareConfig)==null?void 0:O.singleton,i.version,i.scope);if(((b=i.shareConfig)==null?void 0:b.import)===!1||i.treeShaking||h(d.share,o)!==void 0)return;const c=u(r,!0,i.version,i.scope),a=h(d.share,c);if(a!==void 0){E(d.share,o,a,P(d.share,c));return}const l=typeof re=="function"?re(r,i):void 0;if(l&&!l.lib&&!l.loaded)return;const y=o.canonical,m=await et(y,async()=>{const T=await i.get(),S=typeof T=="function"?T():T;return Promise.resolve(S)}),g=(T=>{let S=T;for(let A=0;A<5;A++){const w=S==null?void 0:S.default;if(!w||typeof w!="object"||Object.keys(w).length===0)break;const j=Object.keys(S).filter(v=>v!=="default").map(v=>S[v]);if(j.length>0&&j.some(v=>v!==void 0))break;S=w}return S})(m),R=g===m?{...m}:g;R.__esModule!==!0&&Object.defineProperty(R,"__esModule",{value:!0,enumerable:!1}),E(d.share,o,R,D)}))};const pe=t=>{var r,i;const e=I[t];if(!e.treeShaking&&((r=e.shareConfig)==null?void 0:r.import)!==!1)return!1;const n=u(t,(i=e.shareConfig)==null?void 0:i.singleton,e.version,e.scope);return e.treeShaking?B(d.share,n,D)===void 0&&h(d.share,n)===void 0:h(d.share,n)===void 0},tt=t=>{var i,o;const e=I[t],n=u(t,(i=e.shareConfig)==null?void 0:i.singleton,e.version,e.scope);return(e.treeShaking?B(d.share,n,D)??h(d.share,n):h(d.share,n))!==void 0?!1:e.treeShaking||((o=e.shareConfig)==null?void 0:o.import)===!1?!0:typeof U!="function"?!1:!!U(k[t],t,e,"version-first")},$=Z.findIndex(tt),nt=$===-1?Z:Z.slice(0,$);var rt=$===-1?[]:Z.slice($);await ve(nt);try{await _e(async()=>{await Promise.all(await H.initializeSharing("default",{strategy:"version-first",from:"build",initScope:f}))})}catch(t){console.error("[Module Federation]",t)}ze();const Pe=async()=>{for(const t of ce)await Promise.all(t.map(async e=>{const n=I[e];!n||n.materialize===!1||n.treeShaking||await Se(e,n,s[e],k[e],void 0)}))};await Pe(),Ke&&(ue=Pe);try{const t=(Ce=globalThis.__FEDERATION__)==null?void 0:Ce.__SHARE__,e=Object.create(null);if(t)for(const[,n]of Object.entries(t))for(const r of mt){const i=n==null?void 0:n[r];if(i)for(const[o,c]of Object.entries(i)){const a=I==null?void 0:I[o],l=k[o],y=ae.get(o);if(!a||!l||!y||a.treeShaking)continue;const m=e[o]||(e[o]=Object.create(null));for(const[_,g]of Object.entries(c)){if(!g.lib||y.version!==_||!z(g,y.provider))continue;const R=l[_];(g===R||R!=null&&R.from&&g.from===R.from)&&(g===a||a.from&&g.from===a.from||m[_]===void 0&&(m[_]=g))}}}for(const n of ce)await Promise.all(n.map(async r=>{const i=e[r];i&&await Se(r,I[r],i,k[r],ae.get(r))}))}catch(t){console.error("[Module Federation] Failed to bridge external shared modules",t)}const ot=async()=>{},it=async(t,e)=>{var T,S;const n=u(t,(T=e.shareConfig)==null?void 0:T.singleton,e.version,e.scope),r=e.treeShaking?B(d.share,n,D):h(d.share,n);if(((S=e.shareConfig)==null?void 0:S.import)!==!1||r!==void 0||re(t,e,k[t]))return;const i=A=>{let w=A;for(let j=0;j<5;j++){const v=w==null?void 0:w.default;if(!v||typeof v!="object"||Object.keys(v).length===0)break;const G=Object.keys(w).filter(F=>F!=="default").map(F=>w[F]);if(G.length>0&&G.some(F=>F!==void 0))break;w=v}return w},o=s==null?void 0:s[t],c=me(o,t,e,"version-first")||e,a=le(o,c);if(!a)return;const{version:l}=a,y=o==null?void 0:o[l],m=await ye(t,e.shareConfig,o,l,y,c,a.registered&&!z(c,e)),_=m==null?void 0:m.selection,g=m==null?void 0:m.provider,R=m==null?void 0:m.resolved;if(!_||z(g,e)||R===void 0||(e.treeShaking?B(d.share,n,D):h(d.share,n))!==void 0||_.registered&&(o==null?void 0:o[_.version])!==g)return;const b=i(R);if(e.treeShaking){const A=e.treeShaking.providedExports??e.treeShaking.usedExports??[];he(d.share,n,A,b),J(d.share,n,D,b)}else E(d.share,n,b,_.from)},Oe=[];for(const t of rt){const e=I[t];if(pe(t))try{e.treeShaking?await ot(t,e):((Ee=e.shareConfig)==null?void 0:Ee.import)===!1&&await it(t,e)}catch(n){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${t}"`,n);break}if(pe(t))break;Oe.push(t)}return await ve(Oe),ut(H),H}async function Ot(s){const f=await St();if(!(s in f))throw new Error(`[Module Federation] Module ${s} does not exist in container.`);return ue&&await ue(),d.pendingShareLoads&&await Promise.all(d.pendingShareLoads),f[s]().then(u=>()=>u)}export{Ot as get,Pt as init};
2
+
3
+ if (typeof document !== 'undefined' && document.head) {
4
+ try {
5
+ for (const __mfWarmupPath of ["assets/virtualExposes-BDTLizpE.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteReviewSet__mf_owner__1-DXSRuGUo.js","assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js"]) {
6
+ const __mfWarmupLink = document.createElement('link');
7
+ __mfWarmupLink.rel = 'modulepreload';
8
+ __mfWarmupLink.crossOrigin = '';
9
+ __mfWarmupLink.href = new URL(__mfWarmupPath, import.meta.url).href;
10
+ document.head.appendChild(__mfWarmupLink);
11
+ }
12
+ } catch (__mfWarmupError) {}
13
+ }
@@ -0,0 +1,27 @@
1
+ import"../shoppingListEditor.js";import{_ as k,a as v}from"./_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js";import"./vite-preload-helper-Dp1pzeXC.js";import"./index-2HOz3j7B.js";var c={exports:{}};const b=k||v,r=b.createElement,p=(n,t)=>(typeof navigator<"u"?String(navigator.language||"").toLowerCase():"de").startsWith("de")?n:t,m=n=>String(n||"").trim().toLocaleLowerCase("de");function g(n){let t=String(n||"").trim();for(let e=0;e<16;e++){const o=t.match(/^(?:\d{2}>|\[\d{2}\])\s+(.+)$/s);if(!(o!=null&&o[1]))break;t=String(o[1]).trim()}return t}function f(n,t){const e=g(n),o=[/^═{5}\s+(.+?)\s+═{5}$/,/^\*\*\*\*\s+(.+?)\s+\*\*\*\*$/,/^[—–-]{1,5}\s+(.+?)\s+[—–-]{1,5}$/];let a="";for(const s of o){const l=e.match(s);if(l!=null&&l[1]){a=String(l[1]).trim();break}}return a?(Array.isArray(t)?t:[]).find(s=>m(s)===m(a))||a:""}function x(n){const t=Array.isArray(n==null?void 0:n.markets)?n.markets:[];return(Array.isArray(n==null?void 0:n.items)?n.items:[]).filter(e=>(e==null?void 0:e.id)&&!f(e.text,t)).map(e=>({...e,text:g(e.text)}))}const w=`
2
+ .shoppingroute-list-toolbar{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:14px}
3
+ .shoppingroute-list-toolbar select,.shoppingroute-list-toolbar button{min-height:36px;box-sizing:border-box}
4
+ .shoppingroute-list-toolbar select{min-width:150px;padding:5px 8px}
5
+ .shoppingroute-market-grid{display:flex;flex-direction:column;gap:0}
6
+ .shoppingroute-market-column{min-width:0;border:1px solid currentColor;border-radius:8px;overflow:hidden}
7
+ .shoppingroute-market-title{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:9px 11px;font-weight:700;border-bottom:1px solid currentColor}
8
+ .shoppingroute-market-count{font-size:.82rem;opacity:.65;font-weight:500}
9
+ .shoppingroute-item-list{display:flex;flex-direction:column}
10
+ .shoppingroute-item-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 9px;border-bottom:1px solid currentColor}
11
+ .shoppingroute-item-row:last-child{border-bottom:0}
12
+ .shoppingroute-drag-handle{font-size:16px;opacity:.5;cursor:grab;user-select:none;text-align:center}
13
+ .shoppingroute-item-name{font-weight:600;word-break:break-word}
14
+ .shoppingroute-item-meta{font-size:.78rem;opacity:.62;margin-top:2px}
15
+ .shoppingroute-item-actions{display:flex;gap:4px;align-items:center;justify-content:flex-end}
16
+ .shoppingroute-list-button{min-width:30px;min-height:30px;padding:4px 8px;border:1px solid currentColor;border-radius:4px;background:transparent;color:inherit;cursor:pointer}
17
+ .shoppingroute-list-button:disabled{cursor:default;opacity:.35}
18
+ .shoppingroute-item-actions select{min-width:92px;max-width:125px;min-height:30px;border:1px solid currentColor;border-radius:4px;background:transparent;color:inherit;padding:3px 5px}
19
+ .shoppingroute-empty{opacity:.58;padding:18px 11px;text-align:center}
20
+ @media (max-width: 600px) {
21
+ .shoppingroute-list-toolbar>*{width:100%;max-width:none}
22
+ .shoppingroute-item-row{grid-template-columns:18px minmax(0,1fr)}
23
+ .shoppingroute-item-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap;margin-top:3px}
24
+ .shoppingroute-item-actions select{flex:1 1 120px;max-width:none}
25
+ .shoppingroute-drag-handle{cursor:default}
26
+ }
27
+ `;class y extends b.Component{constructor(t){super(t),this.state={view:null,loading:!0,busy:"",error:""}}componentDidMount(){this.load()}instanceName(){const t=String(this.props.adapterName||"shoppingroute"),e=Number.isFinite(Number(this.props.instance))?Number(this.props.instance):0;return`${t}.${e}`}async send(t,e){var o;if(!((o=this.props.socket)!=null&&o.sendTo))throw new Error("Admin socket is unavailable.");return this.props.socket.sendTo(this.instanceName(),t,e||{})}async load(t){this.setState({loading:!0,error:""});try{const e=await this.send("getShoppingList",{listName:t});if(!e||e.error)throw new Error((e==null?void 0:e.error)||"Shopping list could not be loaded.");this.setState({view:e,loading:!1,busy:""})}catch(e){this.setState({loading:!1,busy:"",error:e instanceof Error?e.message:String(e)})}}async move(t,e,o){const a=this.state.view;if(!(!a||this.state.busy)){this.setState({busy:t,error:""});try{const s=await this.send("moveShoppingItem",{listName:a.listName,itemId:t,targetMarket:e,targetPosition:o});if(s!=null&&s.view&&this.setState({view:s.view}),!(s!=null&&s.ok))throw new Error((s==null?void 0:s.error)||"The item could not be moved.");this.setState({busy:""})}catch(s){this.setState({busy:"",error:s instanceof Error?s.message:String(s)}),await this.load(a.listName)}}}async clearManual(){const t=this.state.view;if(!(!t||this.state.busy)){this.setState({busy:"__clear__",error:""});try{const e=await this.send("clearManualShoppingOrder",{listName:t.listName});if(e!=null&&e.view&&this.setState({view:e.view}),!(e!=null&&e.ok))throw new Error((e==null?void 0:e.error)||"Manual order could not be cleared.");this.setState({busy:""})}catch(e){this.setState({busy:"",error:e instanceof Error?e.message:String(e)}),await this.load(t.listName)}}}onDragStart(t,e){t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e)}onDrop(t,e,o){t.preventDefault();const a=t.dataTransfer.getData("text/plain");a&&this.move(a,e,o)}renderRow(t,e,o,a,s){const l=!!this.state.busy;return r("div",{key:t.id,className:"shoppingroute-item-row",draggable:!l,onDragStart:i=>this.onDragStart(i,t.id),onDragOver:i=>i.preventDefault(),onDrop:i=>this.onDrop(i,t.market,o)},[r("div",{key:"drag",className:"shoppingroute-drag-handle",title:p("Ziehen","Drag"),"aria-hidden":!0},"⋮⋮"),r("div",{key:"main"},[r("div",{key:"name",className:"shoppingroute-item-name"},g(t.text)),t.category||t.manual?r("div",{key:"meta",className:"shoppingroute-item-meta"},[t.category||p("Ohne Produktgruppe","No product group"),t.manual?` · ${p("manuell","manual")}`:""]):null]),r("div",{key:"actions",className:"shoppingroute-item-actions"},[r("button",{key:"up",type:"button",className:"shoppingroute-list-button",disabled:l||o===0,title:p("Nach oben","Move up"),onClick:()=>void this.move(t.id,t.market,o-1)},"↑"),r("button",{key:"down",type:"button",className:"shoppingroute-list-button",disabled:l||o===e.length-1,title:p("Nach unten","Move down"),onClick:()=>void this.move(t.id,t.market,o+1)},"↓"),r("select",{key:"market",value:t.market,disabled:l,title:p("Markt wechseln","Change market"),"aria-label":p("In einen anderen Markt verschieben","Move to another market"),onChange:i=>{const d=i.target.value,u=s.filter(h=>h.market===d&&h.id!==t.id).length;this.move(t.id,d,u)}},a.markets.map(i=>r("option",{key:i,value:i},i)))])])}render(){const t=this.state.view,e=!!this.state.busy,o=[r("style",{key:"styles"},w)];if(o.push(r("div",{key:"intro",style:{marginBottom:"12px",lineHeight:1.4}},[r("strong",{key:"title"},p("Aktuelle Einkaufsliste","Current shopping list")),r("div",{key:"hint",style:{opacity:.7,marginTop:"3px"}},p("Ziehen verschiebt Artikel direkt. Pfeile und Marktauswahl sind die einfache Alternative für Maus und Handy.","Drag items directly. Arrows and the market selector are the simple alternative for mouse and phone."))])),this.state.error&&o.push(r("div",{key:"error",style:{padding:"9px",border:"1px solid currentColor",borderRadius:"6px",marginBottom:"10px"}},this.state.error)),this.state.loading||!t)return o.push(r("div",{key:"loading"},p("Liste wird geladen …","Loading list …"))),r("div",{style:{width:"100%"}},o);const a=x(t);o.push(r("div",{key:"toolbar",className:"shoppingroute-list-toolbar"},[r("select",{key:"list",value:t.listName,disabled:e,onChange:i=>void this.load(i.target.value),"aria-label":p("Einkaufsliste auswählen","Select shopping list")},t.lists.map(i=>r("option",{key:i,value:i},i))),r("button",{key:"refresh",type:"button",className:"shoppingroute-list-button",disabled:e,onClick:()=>void this.load(t.listName)},p("Aktualisieren","Refresh")),r("button",{key:"clear",type:"button",className:"shoppingroute-list-button",disabled:e,onClick:()=>void this.clearManual()},p("Manuelle Reihenfolge zurücksetzen","Reset manual order")),t.dryRun?r("strong",{key:"dry",style:{marginLeft:"auto"}},p("Dry Run aktiv – Verschieben gesperrt","Dry Run active – moving is disabled")):null]));const s=t.markets.filter(i=>a.some(d=>d.market===i));if(!s.length)return o.push(r("div",{key:"empty-list",style:{opacity:.7,padding:"16px 0"}},p("Die Einkaufsliste ist leer.","The shopping list is empty."))),r("div",{style:{width:"100%"}},o);const l=s.map(i=>{const d=a.filter(u=>u.market===i);return r("section",{key:i,className:"shoppingroute-market-column",onDragOver:u=>u.preventDefault(),onDrop:u=>this.onDrop(u,i,d.length)},[r("div",{key:"title",className:"shoppingroute-market-title"},[r("span",{key:"name"},i),r("span",{key:"count",className:"shoppingroute-market-count"},String(d.length))]),d.length?r("div",{key:"items",className:"shoppingroute-item-list"},d.map((u,h)=>this.renderRow(u,d,h,t,a))):r("div",{key:"empty",className:"shoppingroute-empty"},p("Hierher ziehen","Drop here"))])});return o.push(r("div",{key:"grid",className:"shoppingroute-market-grid"},l)),r("div",{style:{width:"100%"}},o)}}c.exports={Components:{ShoppingListEditor:y},ShoppingListEditorModel:{stripVisiblePrefix:g,headerMarket:f,visibleItems:x},ShoppingListEditor:y};const S=(c.exports==null?{}:c.exports).default||c.exports,M=S.Components;export{M as default};
@@ -1 +1 @@
1
- const c={},i=new Set,r=new Map;function m(t,n){let e=r.get(t);return e||(e=Promise.resolve().then(n).catch(o=>{throw r.delete(t),o}),r.set(t,e)),e}async function u(t){if(typeof document>"u")return;const n=c[t]||[];await Promise.all(n.map(e=>{const o=new URL(e,import.meta.url).href;return i.has(o)||(i.add(o),document.querySelector(`link[rel="stylesheet"][href="${o}"]`))?Promise.resolve():new Promise((a,l)=>{const s=document.createElement("link");s.rel="stylesheet",s.href=o,s.onload=()=>a(),s.onerror=()=>l(new Error(`[Module Federation] Failed to load CSS asset: ${o}`)),document.head.appendChild(s)})}))}const f={"./Components":async()=>{await u("./Components"),await Promise.all([]);const t=await m("./Components",()=>import("./shopping-list-editor-components-2ZxXB6jP.js")),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then=="function"&&await n;const e={};return Object.assign(e,t),Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),e}};export{f as default};
1
+ const c={},i=new Set,r=new Map;function m(t,n){let e=r.get(t);return e||(e=Promise.resolve().then(n).catch(o=>{throw r.delete(t),o}),r.set(t,e)),e}async function u(t){if(typeof document>"u")return;const n=c[t]||[];await Promise.all(n.map(e=>{const o=new URL(e,import.meta.url).href;return i.has(o)||(i.add(o),document.querySelector(`link[rel="stylesheet"][href="${o}"]`))?Promise.resolve():new Promise((a,l)=>{const s=document.createElement("link");s.rel="stylesheet",s.href=o,s.onload=()=>a(),s.onerror=()=>l(new Error(`[Module Federation] Failed to load CSS asset: ${o}`)),document.head.appendChild(s)})}))}const f={"./Components":async()=>{await u("./Components"),await Promise.all([]);const t=await m("./Components",()=>import("./shopping-list-editor-components-MoJ1XKOp.js")),n=t&&t.__mf_remote_dependency_pending;n&&typeof n.then=="function"&&await n;const e={};return Object.assign(e,t),Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),e}};export{f as default};
@@ -1 +1 @@
1
- {"id":"ShoppingRouteShoppingListSet","name":"ShoppingRouteShoppingListSet","metaData":{"name":"ShoppingRouteShoppingListSet","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ShoppingRouteShoppingListSet"},"remoteEntry":{"name":"shoppingListEditor.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"shoppingListEditor.ssr.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ShoppingRouteShoppingListSet","pluginVersion":"0.2.5","publicPath":"auto"},"shared":[{"id":"ShoppingRouteShoppingListSet:react","name":"react","version":"18.3.1","singleton":true,"requiredVersion":">=18","assets":{"js":{"async":[],"sync":["assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ShoppingRouteShoppingListSet:Components","name":"Components","assets":{"js":{"async":[],"sync":["assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js","assets/virtualExposes-a309i88F.js","assets/shopping-list-editor-components-2ZxXB6jP.js","shoppingListEditor.js","assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}]}
1
+ {"id":"ShoppingRouteShoppingListSet","name":"ShoppingRouteShoppingListSet","metaData":{"name":"ShoppingRouteShoppingListSet","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ShoppingRouteShoppingListSet"},"remoteEntry":{"name":"shoppingListEditor.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"shoppingListEditor.ssr.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ShoppingRouteShoppingListSet","pluginVersion":"0.2.5","publicPath":"auto"},"shared":[{"id":"ShoppingRouteShoppingListSet:react","name":"react","version":"18.3.1","singleton":true,"requiredVersion":">=18","assets":{"js":{"async":[],"sync":["assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ShoppingRouteShoppingListSet:Components","name":"Components","assets":{"js":{"async":[],"sync":["assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js","assets/virtualExposes-DgzWcmof.js","assets/shopping-list-editor-components-MoJ1XKOp.js","shoppingListEditor.js","assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}]}
@@ -1 +1 @@
1
- {"id":"ShoppingRouteShoppingListSet","name":"ShoppingRouteShoppingListSet","metaData":{"name":"ShoppingRouteShoppingListSet","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ShoppingRouteShoppingListSet"},"remoteEntry":{"name":"shoppingListEditor.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"shoppingListEditor.ssr.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ShoppingRouteShoppingListSet","pluginVersion":"0.2.5","publicPath":"auto"},"shared":[{"id":"ShoppingRouteShoppingListSet:react","name":"react","version":"18.3.1","singleton":true,"requiredVersion":">=18","assets":{"js":{"async":[],"sync":["assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ShoppingRouteShoppingListSet:Components","name":"Components","assets":{"js":{"async":[],"sync":["assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js","assets/virtualExposes-a309i88F.js","assets/shopping-list-editor-components-2ZxXB6jP.js","shoppingListEditor.js","assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}],"buildOutput":[{"fileName":"shoppingListEditor.js","type":"chunk","isEntry":false,"size":18725},{"fileName":"assets/vite-preload-helper-Dp1pzeXC.js","type":"chunk","isEntry":false,"size":1266},{"fileName":"assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js","type":"chunk","isEntry":false,"size":11515},{"fileName":"assets/hostInit-Bj93C5rF.js","type":"chunk","isEntry":false,"size":2502},{"fileName":"assets/shopping-list-editor-components-2ZxXB6jP.js","type":"chunk","isEntry":true,"size":7745},{"fileName":"assets/virtualExposes-a309i88F.js","type":"chunk","isEntry":false,"size":1077},{"fileName":"assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js","type":"chunk","isEntry":false,"size":739},{"fileName":"assets/index-2HOz3j7B.js","type":"chunk","isEntry":false,"size":66321},{"fileName":"mf-manifest.json","type":"asset","isEntry":false,"size":1414}],"assetAnalysis":{"./src-admin/shopping-list-editor-components.mjs":{"js":{"sync":["assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js","assets/virtualExposes-a309i88F.js","assets/shopping-list-editor-components-2ZxXB6jP.js","shoppingListEditor.js","assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"],"async":[]},"css":{"sync":[],"async":[]}},"react":{"js":{"sync":["assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"],"async":[]},"css":{"sync":[],"async":[]}}}}
1
+ {"id":"ShoppingRouteShoppingListSet","name":"ShoppingRouteShoppingListSet","metaData":{"name":"ShoppingRouteShoppingListSet","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ShoppingRouteShoppingListSet"},"remoteEntry":{"name":"shoppingListEditor.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"shoppingListEditor.ssr.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ShoppingRouteShoppingListSet","pluginVersion":"0.2.5","publicPath":"auto"},"shared":[{"id":"ShoppingRouteShoppingListSet:react","name":"react","version":"18.3.1","singleton":true,"requiredVersion":">=18","assets":{"js":{"async":[],"sync":["assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ShoppingRouteShoppingListSet:Components","name":"Components","assets":{"js":{"async":[],"sync":["assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js","assets/virtualExposes-DgzWcmof.js","assets/shopping-list-editor-components-MoJ1XKOp.js","shoppingListEditor.js","assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}],"buildOutput":[{"fileName":"shoppingListEditor.js","type":"chunk","isEntry":false,"size":18725},{"fileName":"assets/vite-preload-helper-Dp1pzeXC.js","type":"chunk","isEntry":false,"size":1266},{"fileName":"assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js","type":"chunk","isEntry":false,"size":11515},{"fileName":"assets/hostInit-Bj93C5rF.js","type":"chunk","isEntry":false,"size":2502},{"fileName":"assets/shopping-list-editor-components-MoJ1XKOp.js","type":"chunk","isEntry":true,"size":9365},{"fileName":"assets/virtualExposes-DgzWcmof.js","type":"chunk","isEntry":false,"size":1077},{"fileName":"assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js","type":"chunk","isEntry":false,"size":739},{"fileName":"assets/index-2HOz3j7B.js","type":"chunk","isEntry":false,"size":66321},{"fileName":"mf-manifest.json","type":"asset","isEntry":false,"size":1414}],"assetAnalysis":{"./src-admin/shopping-list-editor-components.mjs":{"js":{"sync":["assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js","assets/virtualExposes-DgzWcmof.js","assets/shopping-list-editor-components-MoJ1XKOp.js","shoppingListEditor.js","assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"],"async":[]},"css":{"sync":[],"async":[]}},"react":{"js":{"sync":["assets/_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js"],"async":[]},"css":{"sync":[],"async":[]}}}}
@@ -1,8 +1,8 @@
1
- import{h as ct,i as lt}from"./assets/index-2HOz3j7B.js";const dt=ct.share;typeof __VUE_HMR_RUNTIME__>"u"&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});const xe="__mf_init__virtual:mf:__mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__mf_v__runtimeInit__mf_v__.js__";let de=globalThis[xe];if(!de){let s,f;const u=new Promise((h,C)=>{s=h,f=C});de=globalThis[xe]={initPromise:u,initResolve:s,initReject:f}}const ut=de.initResolve,ne="__mf_module_cache__";globalThis[ne]||={share:{},remote:{}};globalThis[ne].share||={};globalThis[ne].remote||={};const d=globalThis[ne];for(const s of Object.keys(d.share))if(s.startsWith("default:")){const f=s.slice(8);d.share[f]===void 0&&(d.share[f]=d.share[s])}else if(!s.includes(":")){const f="default:"+s;d.share[f]===void 0&&(d.share[f]=d.share[s])}const Te={},mt=Array.isArray("default")?"default":["default"],Fe="default",D="ShoppingRouteShoppingListSet",ce=[["react"]];let ee,te,ue;async function _e(s){for(let f=0;;f++)try{return await s()}catch(u){throw u}}const Ne=Symbol("mf.originalSharedProvider"),_t={emit:s=>s},ht=(s,f)=>{if(f!=="version-first")return s;const u={};for(const[h,C]of Object.entries(s))u[h]=Object.assign({},C,{[Ne]:C});return u},le=(s,f)=>{if(!f)return;const u=Object.entries(s||{}),h=u.find(([,p])=>p===f);if(h)return{version:h[0],provider:f,registered:!0};if(typeof f.version=="string"&&f.version)return{version:f.version,provider:f,registered:!1};const C=u.filter(([,p])=>p===f||!!(f.from&&(p==null?void 0:p.from)===f.from));if(C.length===1)return{version:C[0][0],provider:f,registered:!1}},me=(s,f,u,h)=>{var E;if(!s||!u)return;const C=Array.isArray(u.scope)?u.scope:[u.scope||"default"],p=ht(s,h),L={};for(const x of C)L[x||"default"]={[f]:p};const P=(E=dt.getRegisteredShare(L,f,{...u,scope:C,strategy:h},_t))==null?void 0:E.shared;return(P==null?void 0:P[Ne])||P},U=(s,f,u,h)=>{var P;const C=E=>z(E,u),p=Object.fromEntries(Object.entries(s||{}).filter(([,E])=>{var x;return!C(E)&&((x=E==null?void 0:E.shareConfig)==null?void 0:x.import)!==!1}));u!=null&&u.version&&((P=u.shareConfig)==null?void 0:P.import)!==!1&&(p[u.version]||(p[u.version]=u));const L=me(p,f,u,h);return C(L)?void 0:L},z=(s,f)=>s===f||!!(f!=null&&f.from&&(s==null?void 0:s.from)===f.from),gt=(s,f,u,h,C,p,L,P,E)=>{var B,J,W;if(!P)return;const x=(J=(B=f==null?void 0:f.options)==null?void 0:B.shared)==null?void 0:J[C],K=Array.isArray(x)?x.find(N=>(N==null?void 0:N.version)===p):void 0,V=((P==null?void 0:P.from)===((W=f==null?void 0:f.options)==null?void 0:W.name)?P:void 0)||(z(K,P)?K:f?void 0:P);return V&&s.some(N=>{var q,M;return N!==f&&((q=N==null?void 0:N.options)==null?void 0:q.name)===(L==null?void 0:L.from)&&((M=N==null?void 0:N.shareScopeMap)==null?void 0:M[h])===u})?V:void 0},bt=(s,f,u,h,C,p,L,P,E)=>{const x=p.registered?gt(s,f,u,h,C,p.version,p.provider,P):void 0,K=x||L;if(K&&!(p.registered&&!z(K,P)))return{provider:K,scopeRootProvider:x}};async function yt(){return ee||(ee=_e(()=>import("./assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js")).catch(s=>{throw ee=void 0,s})),ee}async function St(){return te||(te=_e(()=>import("./assets/virtualExposes-a309i88F.js")).then(s=>s.default??s).catch(s=>{throw te=void 0,s})),te}async function Pt(s={},f=[]){var we,je,Re,Ce,Ee;const u=(t,e,n,r)=>{const o=(Array.isArray(r)?r[0]:r)||"default",c=e||!n?t:t+"@"+n,a={canonical:o+":"+c};return o==="default"&&(a.aliases=[c]),a},h=(t,e)=>{const n=t[e.canonical];if(n!==void 0)return n;const r=e.aliases||[];for(const i of r){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const o=t[i];if(o!==void 0)return t[e.canonical]=o,o}},C=Symbol.for("module-federation.shared-cache-listeners"),p=Symbol.for("module-federation.shared-cache-owners"),L=t=>{let e=t[p];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,p,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},P=(t,e)=>{var n;return(n=t[p])==null?void 0:n[e.canonical]},E=(t,e,n,r)=>{var a;t[e.canonical]=n;const i=e.aliases||[];for(const l of i)Object.defineProperty(t,l,{value:n,enumerable:!0,configurable:!0,writable:!0});const o=t[p];r===void 0?o&&delete o[e.canonical]:L(t)[e.canonical]=r;const c=(a=t[C])==null?void 0:a[e.canonical];if(c)for(const l of c)l(n);return n},x=Symbol.for("module-federation.tree-shaking-shared-cache"),K=t=>{let e=t[x];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,x,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},he=(t,e,n,r)=>{if(!Array.isArray(n))return r;const i=[...new Set(n)].sort(),o=K(t),c=o[e.canonical]||=[],a=c.find(l=>l.providedExports.length===i.length&&l.providedExports.every((y,m)=>y===i[m]));return a?a.value=r:c.push({providedExports:i,value:r}),r},V=Symbol.for("module-federation.tree-shaking-shared-selection-cache"),ge=t=>{let e=t[V];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,V,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},B=(t,e,n)=>{var i,o;const r=h(t,e);return r!==void 0?r:(o=(i=t[V])==null?void 0:i[e.canonical])==null?void 0:o[n]},J=(t,e,n,r)=>{const i=ge(t),o=i[e.canonical]||=Object.create(null);return o[n]=r,r},W=((we=globalThis.__FEDERATION__)==null?void 0:we.__INSTANCES__)||[],N=(je=f.find(t=>t==null?void 0:t.from))==null?void 0:je.from,q=W.find(t=>{var e,n;return((e=t==null?void 0:t.options)==null?void 0:e.name)===N&&((n=t==null?void 0:t.shareScopeMap)==null?void 0:n.default)===s})||W.find(t=>{var e,n;return((e=t==null?void 0:t.options)==null?void 0:e.name)!==D&&((n=t==null?void 0:t.shareScopeMap)==null?void 0:n.default)===s}),M=Object.create(null),Ae=t=>{const e=Object.create(null);for(const[n,r]of Object.entries(t||{}))e[n]=Object.assign(Object.create(null),r);return e},De=(t,e)=>{const n=!q&&Object.values(e||{}).some(i=>Object.values(i||{}).some(Q)),r=n?Ae(e):e;return M[t]={host:e,runtime:r,isWebpackScope:n},r},ze=()=>{const t=Object.values(M).filter(({isWebpackScope:e})=>e);if(t.length!==0)for(const{host:e,runtime:n}of t)for(const[r,i]of Object.entries(e||{})){const o=n[r]||=Object.create(null);for(const[c,a]of Object.entries(i||{}))o[c]=a}},k=Object.create(null);for(const[t,e]of Object.entries(s)){const n=k[t]=Object.create(null);for(const[r,i]of Object.entries(e))n[r]=Object.assign({},i)}const{usedShared:I,usedRemotes:ke}=await yt();function Q(t){if(typeof(t==null?void 0:t.get)!="function")return!1;const e=Function.prototype.toString.call(t.get);return e.includes("__webpack_require__")||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(e)}const Ke=Object.values(k).some(t=>Object.values(t||{}).some(Q)),Be=t=>{const e=t.split("/");return t.startsWith("@")?e.slice(0,2).join("/"):e[0]},re=(t,e,n)=>{if(typeof U!="function")return;const r=Be(t),i=r===t?[[t,e]]:[[t,e],[r,I[r]]];for(const[o,c]of i){if(!c)continue;const a=n?o===t?n:k[o]:s[o],l=U(a,o,c,"version-first");if(l&&Q(l)&&!l.lib&&!l.loaded)return l}};var X=Te[Fe];if(X||(X=Te[Fe]={from:D}),f.indexOf(X)>=0)return;f.push(X);const be=t=>{let e=t;for(let n=0;n<5;n++){const r=e==null?void 0:e.default;if(!r||typeof r!="object"||Object.keys(r).length===0)break;const i=Object.keys(e).filter(o=>o!=="default").map(o=>e[o]);if(i.length>0&&i.some(o=>o!==void 0))break;e=r}return e},Ge=[],Ve=typeof globalThis.window>"u"?await Promise.all([]):[],oe="__mf_vite_runtime_share_load_id__";let We=0;const ie=new Map,se=new Map,H=lt({name:D,remotes:ke,shared:I,plugins:[He(),Ue(),...Ge,...Ve],shareStrategy:"version-first"});H.initShareScopeMap("default",De("default",s));function He(){return{name:"vite-share-pin-lifecycle-plugin",resolveShare(t){var i;const e=(i=t.shareInfo)==null?void 0:i[oe],n=e===void 0?void 0:se.get(e);if(!n)return t;const r=t.resolver;return t.resolver=(...o)=>(n.pinned.reapply(),r(...o)),n.pinned.reveal(),t}}}function Ue(){return{name:"vite-real-name-snapshot-plugin",afterLoadSnapshot(t){const e=t&&t.remoteSnapshot,n=e&&e.globalName,r=e&&e.version;if(!n||!r||!e.remoteEntry)return t;const i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,o=n+":"+r;return i&&!i[o]&&(i[o]=e),t}}}const qe=H.sharedHandler.hooks.lifecycle.resolveShare,Y=new WeakMap;qe.on(t=>{var i;const e=(i=t.shareInfo)==null?void 0:i[oe],n=t.resolver;if(typeof n!="function")return t;const r=(...o)=>{const c=n(...o),a=c==null?void 0:c.shared;return a&&(typeof a=="object"||typeof a=="function")&&!Y.has(a)&&Y.set(a,{from:a.from}),e!==void 0&&a&&ie.set(e,a),c};return t.resolver=r,t});const Me=(t,e,n,r)=>{if(!t||t[e]!==n)return;const i=Object.assign({},r,{version:r.version??e,scope:r.scope??(n==null?void 0:n.scope)??["default"],strategy:"loaded-first"}),o=r.from;t[e]=i;const c=()=>n===void 0?t[e]===void 0:t[e]===n;return{provider:i,reveal(){return t[e]!==i?!1:(n===void 0?delete t[e]:t[e]=n,!0)},reapply(){return c()?(t[e]=i,!0):!1},release(a,l=!0){return r.from=o,t[e]!==i?!l&&c():l?a?(i.from=o,a&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete t[e]:t[e]=n,!1):(n===void 0?delete t[e]:t[e]=n,!0)}}},Je=t=>Object.entries(t||{}).map(([e,n])=>({provider:n,version:e,from:n.from,registered:!0})),Qe=(t,e)=>{if(e===void 0)return;let n;for(const r of t){const i=r.provider,o=i.treeShaking||i;if(!(r.loadedFactory!==e&&i.lib!==e&&o.lib!==e)){if(n)return;n=r}}return n},Xe=async(t,e,n)=>{const r=++We;se.set(r,{pinned:n});try{const i=await H.loadShare(t,{customShareInfo:{shareConfig:e,[oe]:r}});return{factory:i===!1?void 0:i,selectedProvider:ie.get(r)}}finally{ie.delete(r),se.delete(r)}},ye=async(t,e,n,r,i,o,c=!0)=>{const a=o.from,l=Me(n,r,i,o);if(!l)return;let y;try{y=await Xe(t,e,l)}catch(j){throw l.release(!1),j}const m=y==null?void 0:y.factory;if(m===void 0){l.release(!1);return}const _=Je(n),g=l.provider.treeShaking||l.provider,R=l.provider.lib===m||g.lib===m;if(!c&&R){const j=_.findIndex(v=>v.provider===l.provider);j!==-1&&_.splice(j,1)}!c&&!_.some(j=>j.provider===o)&&_.push({provider:o,version:r,from:a,registered:!1,loadedFactory:R?m:void 0});const O=!c&&y.selectedProvider===l.provider&&R?o:y.selectedProvider;if(O&&!_.some(j=>j.provider===O)){const j=Y.get(O),v=typeof O.version=="string"&&O.version?O.version:r;_.push({provider:O,version:v,from:j?j.from:O.from,registered:(n==null?void 0:n[v])===O,loadedFactory:m})}const b=_.find(j=>j.provider===O)??Qe(_,m);if(!l.release(!0,(b==null?void 0:b.provider)===l.provider)||!b)return;const S=Y.get(b.provider);b.from=b.provider===o?a:S?S.from:b.provider.from,S&&(b.provider.from=S.from);const A=typeof m=="function"?m():m,w=await Promise.resolve(A);if(!(b.registered&&(n==null?void 0:n[b.version])!==b.provider))return{provider:b.provider,selection:b,resolved:w}},fe=new Set,ae=new Map,Ye=async(t,e,n)=>{var i;const r=!!((i=e.shareConfig)!=null&&i.singleton);if(!r&&e.canLiveRebind!==!1)try{const o=U(n,t,e,"version-first"),c=le(n,o);if(!c)return;const{version:a}=c;if(!r&&a!==e.version||!o.lib&&!o.loading&&!(o.loaded&&typeof o.get=="function"))return;const l=u(t,r,e.version,e.scope);if(h(d.share,l)!==void 0)return;const y=s[t],m=y==null?void 0:y[a];if(c.registered&&!z(m,o))return;let _,g=o.lib;if(!g&&Q(o)||(!g&&o.loading&&(g=await o.loading),!g&&o.loaded&&typeof o.get=="function"&&(g=await o.get()),!g))return;const R=typeof g=="function"?g():g,O=await Promise.resolve(R),b=c.registered?m:o;_={provider:b,selection:{provider:b,version:a,from:o.from,registered:c.registered},resolved:O};const T=_==null?void 0:_.provider,S=_==null?void 0:_.selection;if(!S)return;const A=_==null?void 0:_.resolved;if(A===void 0||h(d.share,l)!==void 0||S.registered&&(y==null?void 0:y[S.version])!==T)return;E(d.share,l,be(A),S.from),fe.add(T)}catch(o){console.error('[Module Federation] Failed to bridge materialized shared module "'+t+'"',o)}},Se=async(t,e,n,r,i)=>{var o,c;try{const a=u(t,(o=e.shareConfig)==null?void 0:o.singleton,e.version,e.scope),l=h(d.share,a),y=P(d.share,a),m=U(n,t,e,"version-first"),_=m||me(n,t,e,"version-first")||e,g=le(n,_);if(!g)return;const R=z(_,e),{version:O}=g;if(!((c=e.shareConfig)!=null&&c.singleton)&&O!==e.version)return;const b=r==null?void 0:r[O],T=bt(W,q,s,"default",t,g,m,b,"version-first");if(!T&&!R)return;const{provider:S,scopeRootProvider:A}=T||{provider:_,scopeRootProvider:void 0};if(e.canLiveRebind===!1||l!==void 0&&y!==D)return;const w=s[t],j=w==null?void 0:w[O];if(g.registered&&!A&&!z(j,S))return;const v=await ye(t,e.shareConfig,w,O,j,S,g.registered&&!R),G=v==null?void 0:v.provider,F=v==null?void 0:v.selection;if(!F||z(G,e)||i&&(i.version!==F.version||!z({from:F.from},i.provider))||fe.has(G))return;const Ie=v==null?void 0:v.resolved;if(Ie===void 0)return;const st=h(d.share,a),ft=P(d.share,a);if(st!==void 0&&ft!==D||F.registered&&(w==null?void 0:w[F.version])!==G)return;i||ae.set(t,{version:F.version,provider:{from:F.from}}),fe.add(G);const at=be(Ie);E(d.share,a,at,F.from)}catch(a){console.error('[Module Federation] Failed to bridge external shared module "'+t+'"',a)}};for(const t of ce)await Promise.all(t.map(async e=>{const n=I[e];!n||n.materialize===!1||n.treeShaking||await Ye(e,n,k[e])}));for(const[t,e]of Object.entries(I)){if(e.treeShaking)continue;const n=u(t,(Re=e.shareConfig)==null?void 0:Re.singleton,e.version,e.scope);if(h(d.share,n)!==void 0)continue;const r=u(t,!0,e.version,e.scope),i=h(d.share,r);i!==void 0&&E(d.share,n,i,P(d.share,r))}const Ze=["react"],$e=[["react"]],Z=Ze.filter(t=>{var e;return I[t]&&(I[t].materialize!==!1||((e=I[t].shareConfig)==null?void 0:e.import)===!1)});d.providerInit||=new Map;const et=(t,e)=>{const n=d.providerInit.get(t);if(n)return n;const r=Promise.resolve().then(e);return d.providerInit.set(t,r),r.catch(()=>d.providerInit.delete(t)),r};var ve=async t=>{const e=new Set(t);for(const n of $e)await Promise.all(n.filter(r=>e.has(r)).map(async r=>{var O,b;const i=I[r],o=u(r,(O=i.shareConfig)==null?void 0:O.singleton,i.version,i.scope);if(((b=i.shareConfig)==null?void 0:b.import)===!1||i.treeShaking||h(d.share,o)!==void 0)return;const c=u(r,!0,i.version,i.scope),a=h(d.share,c);if(a!==void 0){E(d.share,o,a,P(d.share,c));return}const l=typeof re=="function"?re(r,i):void 0;if(l&&!l.lib&&!l.loaded)return;const y=o.canonical,m=await et(y,async()=>{const T=await i.get(),S=typeof T=="function"?T():T;return Promise.resolve(S)}),g=(T=>{let S=T;for(let A=0;A<5;A++){const w=S==null?void 0:S.default;if(!w||typeof w!="object"||Object.keys(w).length===0)break;const j=Object.keys(S).filter(v=>v!=="default").map(v=>S[v]);if(j.length>0&&j.some(v=>v!==void 0))break;S=w}return S})(m),R=g===m?{...m}:g;R.__esModule!==!0&&Object.defineProperty(R,"__esModule",{value:!0,enumerable:!1}),E(d.share,o,R,D)}))};const pe=t=>{var r,i;const e=I[t];if(!e.treeShaking&&((r=e.shareConfig)==null?void 0:r.import)!==!1)return!1;const n=u(t,(i=e.shareConfig)==null?void 0:i.singleton,e.version,e.scope);return e.treeShaking?B(d.share,n,D)===void 0&&h(d.share,n)===void 0:h(d.share,n)===void 0},tt=t=>{var i,o;const e=I[t],n=u(t,(i=e.shareConfig)==null?void 0:i.singleton,e.version,e.scope);return(e.treeShaking?B(d.share,n,D)??h(d.share,n):h(d.share,n))!==void 0?!1:e.treeShaking||((o=e.shareConfig)==null?void 0:o.import)===!1?!0:typeof U!="function"?!1:!!U(k[t],t,e,"version-first")},$=Z.findIndex(tt),nt=$===-1?Z:Z.slice(0,$);var rt=$===-1?[]:Z.slice($);await ve(nt);try{await _e(async()=>{await Promise.all(await H.initializeSharing("default",{strategy:"version-first",from:"build",initScope:f}))})}catch(t){console.error("[Module Federation]",t)}ze();const Pe=async()=>{for(const t of ce)await Promise.all(t.map(async e=>{const n=I[e];!n||n.materialize===!1||n.treeShaking||await Se(e,n,s[e],k[e],void 0)}))};await Pe(),Ke&&(ue=Pe);try{const t=(Ce=globalThis.__FEDERATION__)==null?void 0:Ce.__SHARE__,e=Object.create(null);if(t)for(const[,n]of Object.entries(t))for(const r of mt){const i=n==null?void 0:n[r];if(i)for(const[o,c]of Object.entries(i)){const a=I==null?void 0:I[o],l=k[o],y=ae.get(o);if(!a||!l||!y||a.treeShaking)continue;const m=e[o]||(e[o]=Object.create(null));for(const[_,g]of Object.entries(c)){if(!g.lib||y.version!==_||!z(g,y.provider))continue;const R=l[_];(g===R||R!=null&&R.from&&g.from===R.from)&&(g===a||a.from&&g.from===a.from||m[_]===void 0&&(m[_]=g))}}}for(const n of ce)await Promise.all(n.map(async r=>{const i=e[r];i&&await Se(r,I[r],i,k[r],ae.get(r))}))}catch(t){console.error("[Module Federation] Failed to bridge external shared modules",t)}const ot=async()=>{},it=async(t,e)=>{var T,S;const n=u(t,(T=e.shareConfig)==null?void 0:T.singleton,e.version,e.scope),r=e.treeShaking?B(d.share,n,D):h(d.share,n);if(((S=e.shareConfig)==null?void 0:S.import)!==!1||r!==void 0||re(t,e,k[t]))return;const i=A=>{let w=A;for(let j=0;j<5;j++){const v=w==null?void 0:w.default;if(!v||typeof v!="object"||Object.keys(v).length===0)break;const G=Object.keys(w).filter(F=>F!=="default").map(F=>w[F]);if(G.length>0&&G.some(F=>F!==void 0))break;w=v}return w},o=s==null?void 0:s[t],c=me(o,t,e,"version-first")||e,a=le(o,c);if(!a)return;const{version:l}=a,y=o==null?void 0:o[l],m=await ye(t,e.shareConfig,o,l,y,c,a.registered&&!z(c,e)),_=m==null?void 0:m.selection,g=m==null?void 0:m.provider,R=m==null?void 0:m.resolved;if(!_||z(g,e)||R===void 0||(e.treeShaking?B(d.share,n,D):h(d.share,n))!==void 0||_.registered&&(o==null?void 0:o[_.version])!==g)return;const b=i(R);if(e.treeShaking){const A=e.treeShaking.providedExports??e.treeShaking.usedExports??[];he(d.share,n,A,b),J(d.share,n,D,b)}else E(d.share,n,b,_.from)},Oe=[];for(const t of rt){const e=I[t];if(pe(t))try{e.treeShaking?await ot(t,e):((Ee=e.shareConfig)==null?void 0:Ee.import)===!1&&await it(t,e)}catch(n){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${t}"`,n);break}if(pe(t))break;Oe.push(t)}return await ve(Oe),ut(H),H}async function Ot(s){const f=await St();if(!(s in f))throw new Error(`[Module Federation] Module ${s} does not exist in container.`);return ue&&await ue(),d.pendingShareLoads&&await Promise.all(d.pendingShareLoads),f[s]().then(u=>()=>u)}export{Ot as get,Pt as init};
1
+ import{h as ct,i as lt}from"./assets/index-2HOz3j7B.js";const dt=ct.share;typeof __VUE_HMR_RUNTIME__>"u"&&(globalThis.__VUE_HMR_RUNTIME__={createRecord(){},rerender(){},reload(){}});const xe="__mf_init__virtual:mf:__mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__mf_v__runtimeInit__mf_v__.js__";let de=globalThis[xe];if(!de){let s,f;const u=new Promise((h,C)=>{s=h,f=C});de=globalThis[xe]={initPromise:u,initResolve:s,initReject:f}}const ut=de.initResolve,ne="__mf_module_cache__";globalThis[ne]||={share:{},remote:{}};globalThis[ne].share||={};globalThis[ne].remote||={};const d=globalThis[ne];for(const s of Object.keys(d.share))if(s.startsWith("default:")){const f=s.slice(8);d.share[f]===void 0&&(d.share[f]=d.share[s])}else if(!s.includes(":")){const f="default:"+s;d.share[f]===void 0&&(d.share[f]=d.share[s])}const Te={},mt=Array.isArray("default")?"default":["default"],Fe="default",D="ShoppingRouteShoppingListSet",ce=[["react"]];let ee,te,ue;async function _e(s){for(let f=0;;f++)try{return await s()}catch(u){throw u}}const Ne=Symbol("mf.originalSharedProvider"),_t={emit:s=>s},ht=(s,f)=>{if(f!=="version-first")return s;const u={};for(const[h,C]of Object.entries(s))u[h]=Object.assign({},C,{[Ne]:C});return u},le=(s,f)=>{if(!f)return;const u=Object.entries(s||{}),h=u.find(([,p])=>p===f);if(h)return{version:h[0],provider:f,registered:!0};if(typeof f.version=="string"&&f.version)return{version:f.version,provider:f,registered:!1};const C=u.filter(([,p])=>p===f||!!(f.from&&(p==null?void 0:p.from)===f.from));if(C.length===1)return{version:C[0][0],provider:f,registered:!1}},me=(s,f,u,h)=>{var E;if(!s||!u)return;const C=Array.isArray(u.scope)?u.scope:[u.scope||"default"],p=ht(s,h),L={};for(const x of C)L[x||"default"]={[f]:p};const P=(E=dt.getRegisteredShare(L,f,{...u,scope:C,strategy:h},_t))==null?void 0:E.shared;return(P==null?void 0:P[Ne])||P},U=(s,f,u,h)=>{var P;const C=E=>z(E,u),p=Object.fromEntries(Object.entries(s||{}).filter(([,E])=>{var x;return!C(E)&&((x=E==null?void 0:E.shareConfig)==null?void 0:x.import)!==!1}));u!=null&&u.version&&((P=u.shareConfig)==null?void 0:P.import)!==!1&&(p[u.version]||(p[u.version]=u));const L=me(p,f,u,h);return C(L)?void 0:L},z=(s,f)=>s===f||!!(f!=null&&f.from&&(s==null?void 0:s.from)===f.from),gt=(s,f,u,h,C,p,L,P,E)=>{var B,J,W;if(!P)return;const x=(J=(B=f==null?void 0:f.options)==null?void 0:B.shared)==null?void 0:J[C],K=Array.isArray(x)?x.find(N=>(N==null?void 0:N.version)===p):void 0,V=((P==null?void 0:P.from)===((W=f==null?void 0:f.options)==null?void 0:W.name)?P:void 0)||(z(K,P)?K:f?void 0:P);return V&&s.some(N=>{var q,M;return N!==f&&((q=N==null?void 0:N.options)==null?void 0:q.name)===(L==null?void 0:L.from)&&((M=N==null?void 0:N.shareScopeMap)==null?void 0:M[h])===u})?V:void 0},bt=(s,f,u,h,C,p,L,P,E)=>{const x=p.registered?gt(s,f,u,h,C,p.version,p.provider,P):void 0,K=x||L;if(K&&!(p.registered&&!z(K,P)))return{provider:K,scopeRootProvider:x}};async function yt(){return ee||(ee=_e(()=>import("./assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js")).catch(s=>{throw ee=void 0,s})),ee}async function St(){return te||(te=_e(()=>import("./assets/virtualExposes-DgzWcmof.js")).then(s=>s.default??s).catch(s=>{throw te=void 0,s})),te}async function Pt(s={},f=[]){var we,je,Re,Ce,Ee;const u=(t,e,n,r)=>{const o=(Array.isArray(r)?r[0]:r)||"default",c=e||!n?t:t+"@"+n,a={canonical:o+":"+c};return o==="default"&&(a.aliases=[c]),a},h=(t,e)=>{const n=t[e.canonical];if(n!==void 0)return n;const r=e.aliases||[];for(const i of r){if(!Object.prototype.hasOwnProperty.call(t,i))continue;const o=t[i];if(o!==void 0)return t[e.canonical]=o,o}},C=Symbol.for("module-federation.shared-cache-listeners"),p=Symbol.for("module-federation.shared-cache-owners"),L=t=>{let e=t[p];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,p,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},P=(t,e)=>{var n;return(n=t[p])==null?void 0:n[e.canonical]},E=(t,e,n,r)=>{var a;t[e.canonical]=n;const i=e.aliases||[];for(const l of i)Object.defineProperty(t,l,{value:n,enumerable:!0,configurable:!0,writable:!0});const o=t[p];r===void 0?o&&delete o[e.canonical]:L(t)[e.canonical]=r;const c=(a=t[C])==null?void 0:a[e.canonical];if(c)for(const l of c)l(n);return n},x=Symbol.for("module-federation.tree-shaking-shared-cache"),K=t=>{let e=t[x];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,x,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},he=(t,e,n,r)=>{if(!Array.isArray(n))return r;const i=[...new Set(n)].sort(),o=K(t),c=o[e.canonical]||=[],a=c.find(l=>l.providedExports.length===i.length&&l.providedExports.every((y,m)=>y===i[m]));return a?a.value=r:c.push({providedExports:i,value:r}),r},V=Symbol.for("module-federation.tree-shaking-shared-selection-cache"),ge=t=>{let e=t[V];return e===void 0&&(e=Object.create(null),Object.defineProperty(t,V,{value:e,enumerable:!1,configurable:!1,writable:!1})),e},B=(t,e,n)=>{var i,o;const r=h(t,e);return r!==void 0?r:(o=(i=t[V])==null?void 0:i[e.canonical])==null?void 0:o[n]},J=(t,e,n,r)=>{const i=ge(t),o=i[e.canonical]||=Object.create(null);return o[n]=r,r},W=((we=globalThis.__FEDERATION__)==null?void 0:we.__INSTANCES__)||[],N=(je=f.find(t=>t==null?void 0:t.from))==null?void 0:je.from,q=W.find(t=>{var e,n;return((e=t==null?void 0:t.options)==null?void 0:e.name)===N&&((n=t==null?void 0:t.shareScopeMap)==null?void 0:n.default)===s})||W.find(t=>{var e,n;return((e=t==null?void 0:t.options)==null?void 0:e.name)!==D&&((n=t==null?void 0:t.shareScopeMap)==null?void 0:n.default)===s}),M=Object.create(null),Ae=t=>{const e=Object.create(null);for(const[n,r]of Object.entries(t||{}))e[n]=Object.assign(Object.create(null),r);return e},De=(t,e)=>{const n=!q&&Object.values(e||{}).some(i=>Object.values(i||{}).some(Q)),r=n?Ae(e):e;return M[t]={host:e,runtime:r,isWebpackScope:n},r},ze=()=>{const t=Object.values(M).filter(({isWebpackScope:e})=>e);if(t.length!==0)for(const{host:e,runtime:n}of t)for(const[r,i]of Object.entries(e||{})){const o=n[r]||=Object.create(null);for(const[c,a]of Object.entries(i||{}))o[c]=a}},k=Object.create(null);for(const[t,e]of Object.entries(s)){const n=k[t]=Object.create(null);for(const[r,i]of Object.entries(e))n[r]=Object.assign({},i)}const{usedShared:I,usedRemotes:ke}=await yt();function Q(t){if(typeof(t==null?void 0:t.get)!="function")return!1;const e=Function.prototype.toString.call(t.get);return e.includes("__webpack_require__")||/\.\s*e\s*\([^)]*\)\s*\.then\s*\(/.test(e)}const Ke=Object.values(k).some(t=>Object.values(t||{}).some(Q)),Be=t=>{const e=t.split("/");return t.startsWith("@")?e.slice(0,2).join("/"):e[0]},re=(t,e,n)=>{if(typeof U!="function")return;const r=Be(t),i=r===t?[[t,e]]:[[t,e],[r,I[r]]];for(const[o,c]of i){if(!c)continue;const a=n?o===t?n:k[o]:s[o],l=U(a,o,c,"version-first");if(l&&Q(l)&&!l.lib&&!l.loaded)return l}};var X=Te[Fe];if(X||(X=Te[Fe]={from:D}),f.indexOf(X)>=0)return;f.push(X);const be=t=>{let e=t;for(let n=0;n<5;n++){const r=e==null?void 0:e.default;if(!r||typeof r!="object"||Object.keys(r).length===0)break;const i=Object.keys(e).filter(o=>o!=="default").map(o=>e[o]);if(i.length>0&&i.some(o=>o!==void 0))break;e=r}return e},Ge=[],Ve=typeof globalThis.window>"u"?await Promise.all([]):[],oe="__mf_vite_runtime_share_load_id__";let We=0;const ie=new Map,se=new Map,H=lt({name:D,remotes:ke,shared:I,plugins:[He(),Ue(),...Ge,...Ve],shareStrategy:"version-first"});H.initShareScopeMap("default",De("default",s));function He(){return{name:"vite-share-pin-lifecycle-plugin",resolveShare(t){var i;const e=(i=t.shareInfo)==null?void 0:i[oe],n=e===void 0?void 0:se.get(e);if(!n)return t;const r=t.resolver;return t.resolver=(...o)=>(n.pinned.reapply(),r(...o)),n.pinned.reveal(),t}}}function Ue(){return{name:"vite-real-name-snapshot-plugin",afterLoadSnapshot(t){const e=t&&t.remoteSnapshot,n=e&&e.globalName,r=e&&e.version;if(!n||!r||!e.remoteEntry)return t;const i=globalThis.__FEDERATION__&&globalThis.__FEDERATION__.moduleInfo,o=n+":"+r;return i&&!i[o]&&(i[o]=e),t}}}const qe=H.sharedHandler.hooks.lifecycle.resolveShare,Y=new WeakMap;qe.on(t=>{var i;const e=(i=t.shareInfo)==null?void 0:i[oe],n=t.resolver;if(typeof n!="function")return t;const r=(...o)=>{const c=n(...o),a=c==null?void 0:c.shared;return a&&(typeof a=="object"||typeof a=="function")&&!Y.has(a)&&Y.set(a,{from:a.from}),e!==void 0&&a&&ie.set(e,a),c};return t.resolver=r,t});const Me=(t,e,n,r)=>{if(!t||t[e]!==n)return;const i=Object.assign({},r,{version:r.version??e,scope:r.scope??(n==null?void 0:n.scope)??["default"],strategy:"loaded-first"}),o=r.from;t[e]=i;const c=()=>n===void 0?t[e]===void 0:t[e]===n;return{provider:i,reveal(){return t[e]!==i?!1:(n===void 0?delete t[e]:t[e]=n,!0)},reapply(){return c()?(t[e]=i,!0):!1},release(a,l=!0){return r.from=o,t[e]!==i?!l&&c():l?a?(i.from=o,a&&i.lib&&(i.loaded=!0),r.strategy===void 0?delete i.strategy:i.strategy=r.strategy,!0):(n===void 0?delete t[e]:t[e]=n,!1):(n===void 0?delete t[e]:t[e]=n,!0)}}},Je=t=>Object.entries(t||{}).map(([e,n])=>({provider:n,version:e,from:n.from,registered:!0})),Qe=(t,e)=>{if(e===void 0)return;let n;for(const r of t){const i=r.provider,o=i.treeShaking||i;if(!(r.loadedFactory!==e&&i.lib!==e&&o.lib!==e)){if(n)return;n=r}}return n},Xe=async(t,e,n)=>{const r=++We;se.set(r,{pinned:n});try{const i=await H.loadShare(t,{customShareInfo:{shareConfig:e,[oe]:r}});return{factory:i===!1?void 0:i,selectedProvider:ie.get(r)}}finally{ie.delete(r),se.delete(r)}},ye=async(t,e,n,r,i,o,c=!0)=>{const a=o.from,l=Me(n,r,i,o);if(!l)return;let y;try{y=await Xe(t,e,l)}catch(j){throw l.release(!1),j}const m=y==null?void 0:y.factory;if(m===void 0){l.release(!1);return}const _=Je(n),g=l.provider.treeShaking||l.provider,R=l.provider.lib===m||g.lib===m;if(!c&&R){const j=_.findIndex(v=>v.provider===l.provider);j!==-1&&_.splice(j,1)}!c&&!_.some(j=>j.provider===o)&&_.push({provider:o,version:r,from:a,registered:!1,loadedFactory:R?m:void 0});const O=!c&&y.selectedProvider===l.provider&&R?o:y.selectedProvider;if(O&&!_.some(j=>j.provider===O)){const j=Y.get(O),v=typeof O.version=="string"&&O.version?O.version:r;_.push({provider:O,version:v,from:j?j.from:O.from,registered:(n==null?void 0:n[v])===O,loadedFactory:m})}const b=_.find(j=>j.provider===O)??Qe(_,m);if(!l.release(!0,(b==null?void 0:b.provider)===l.provider)||!b)return;const S=Y.get(b.provider);b.from=b.provider===o?a:S?S.from:b.provider.from,S&&(b.provider.from=S.from);const A=typeof m=="function"?m():m,w=await Promise.resolve(A);if(!(b.registered&&(n==null?void 0:n[b.version])!==b.provider))return{provider:b.provider,selection:b,resolved:w}},fe=new Set,ae=new Map,Ye=async(t,e,n)=>{var i;const r=!!((i=e.shareConfig)!=null&&i.singleton);if(!r&&e.canLiveRebind!==!1)try{const o=U(n,t,e,"version-first"),c=le(n,o);if(!c)return;const{version:a}=c;if(!r&&a!==e.version||!o.lib&&!o.loading&&!(o.loaded&&typeof o.get=="function"))return;const l=u(t,r,e.version,e.scope);if(h(d.share,l)!==void 0)return;const y=s[t],m=y==null?void 0:y[a];if(c.registered&&!z(m,o))return;let _,g=o.lib;if(!g&&Q(o)||(!g&&o.loading&&(g=await o.loading),!g&&o.loaded&&typeof o.get=="function"&&(g=await o.get()),!g))return;const R=typeof g=="function"?g():g,O=await Promise.resolve(R),b=c.registered?m:o;_={provider:b,selection:{provider:b,version:a,from:o.from,registered:c.registered},resolved:O};const T=_==null?void 0:_.provider,S=_==null?void 0:_.selection;if(!S)return;const A=_==null?void 0:_.resolved;if(A===void 0||h(d.share,l)!==void 0||S.registered&&(y==null?void 0:y[S.version])!==T)return;E(d.share,l,be(A),S.from),fe.add(T)}catch(o){console.error('[Module Federation] Failed to bridge materialized shared module "'+t+'"',o)}},Se=async(t,e,n,r,i)=>{var o,c;try{const a=u(t,(o=e.shareConfig)==null?void 0:o.singleton,e.version,e.scope),l=h(d.share,a),y=P(d.share,a),m=U(n,t,e,"version-first"),_=m||me(n,t,e,"version-first")||e,g=le(n,_);if(!g)return;const R=z(_,e),{version:O}=g;if(!((c=e.shareConfig)!=null&&c.singleton)&&O!==e.version)return;const b=r==null?void 0:r[O],T=bt(W,q,s,"default",t,g,m,b,"version-first");if(!T&&!R)return;const{provider:S,scopeRootProvider:A}=T||{provider:_,scopeRootProvider:void 0};if(e.canLiveRebind===!1||l!==void 0&&y!==D)return;const w=s[t],j=w==null?void 0:w[O];if(g.registered&&!A&&!z(j,S))return;const v=await ye(t,e.shareConfig,w,O,j,S,g.registered&&!R),G=v==null?void 0:v.provider,F=v==null?void 0:v.selection;if(!F||z(G,e)||i&&(i.version!==F.version||!z({from:F.from},i.provider))||fe.has(G))return;const Ie=v==null?void 0:v.resolved;if(Ie===void 0)return;const st=h(d.share,a),ft=P(d.share,a);if(st!==void 0&&ft!==D||F.registered&&(w==null?void 0:w[F.version])!==G)return;i||ae.set(t,{version:F.version,provider:{from:F.from}}),fe.add(G);const at=be(Ie);E(d.share,a,at,F.from)}catch(a){console.error('[Module Federation] Failed to bridge external shared module "'+t+'"',a)}};for(const t of ce)await Promise.all(t.map(async e=>{const n=I[e];!n||n.materialize===!1||n.treeShaking||await Ye(e,n,k[e])}));for(const[t,e]of Object.entries(I)){if(e.treeShaking)continue;const n=u(t,(Re=e.shareConfig)==null?void 0:Re.singleton,e.version,e.scope);if(h(d.share,n)!==void 0)continue;const r=u(t,!0,e.version,e.scope),i=h(d.share,r);i!==void 0&&E(d.share,n,i,P(d.share,r))}const Ze=["react"],$e=[["react"]],Z=Ze.filter(t=>{var e;return I[t]&&(I[t].materialize!==!1||((e=I[t].shareConfig)==null?void 0:e.import)===!1)});d.providerInit||=new Map;const et=(t,e)=>{const n=d.providerInit.get(t);if(n)return n;const r=Promise.resolve().then(e);return d.providerInit.set(t,r),r.catch(()=>d.providerInit.delete(t)),r};var ve=async t=>{const e=new Set(t);for(const n of $e)await Promise.all(n.filter(r=>e.has(r)).map(async r=>{var O,b;const i=I[r],o=u(r,(O=i.shareConfig)==null?void 0:O.singleton,i.version,i.scope);if(((b=i.shareConfig)==null?void 0:b.import)===!1||i.treeShaking||h(d.share,o)!==void 0)return;const c=u(r,!0,i.version,i.scope),a=h(d.share,c);if(a!==void 0){E(d.share,o,a,P(d.share,c));return}const l=typeof re=="function"?re(r,i):void 0;if(l&&!l.lib&&!l.loaded)return;const y=o.canonical,m=await et(y,async()=>{const T=await i.get(),S=typeof T=="function"?T():T;return Promise.resolve(S)}),g=(T=>{let S=T;for(let A=0;A<5;A++){const w=S==null?void 0:S.default;if(!w||typeof w!="object"||Object.keys(w).length===0)break;const j=Object.keys(S).filter(v=>v!=="default").map(v=>S[v]);if(j.length>0&&j.some(v=>v!==void 0))break;S=w}return S})(m),R=g===m?{...m}:g;R.__esModule!==!0&&Object.defineProperty(R,"__esModule",{value:!0,enumerable:!1}),E(d.share,o,R,D)}))};const pe=t=>{var r,i;const e=I[t];if(!e.treeShaking&&((r=e.shareConfig)==null?void 0:r.import)!==!1)return!1;const n=u(t,(i=e.shareConfig)==null?void 0:i.singleton,e.version,e.scope);return e.treeShaking?B(d.share,n,D)===void 0&&h(d.share,n)===void 0:h(d.share,n)===void 0},tt=t=>{var i,o;const e=I[t],n=u(t,(i=e.shareConfig)==null?void 0:i.singleton,e.version,e.scope);return(e.treeShaking?B(d.share,n,D)??h(d.share,n):h(d.share,n))!==void 0?!1:e.treeShaking||((o=e.shareConfig)==null?void 0:o.import)===!1?!0:typeof U!="function"?!1:!!U(k[t],t,e,"version-first")},$=Z.findIndex(tt),nt=$===-1?Z:Z.slice(0,$);var rt=$===-1?[]:Z.slice($);await ve(nt);try{await _e(async()=>{await Promise.all(await H.initializeSharing("default",{strategy:"version-first",from:"build",initScope:f}))})}catch(t){console.error("[Module Federation]",t)}ze();const Pe=async()=>{for(const t of ce)await Promise.all(t.map(async e=>{const n=I[e];!n||n.materialize===!1||n.treeShaking||await Se(e,n,s[e],k[e],void 0)}))};await Pe(),Ke&&(ue=Pe);try{const t=(Ce=globalThis.__FEDERATION__)==null?void 0:Ce.__SHARE__,e=Object.create(null);if(t)for(const[,n]of Object.entries(t))for(const r of mt){const i=n==null?void 0:n[r];if(i)for(const[o,c]of Object.entries(i)){const a=I==null?void 0:I[o],l=k[o],y=ae.get(o);if(!a||!l||!y||a.treeShaking)continue;const m=e[o]||(e[o]=Object.create(null));for(const[_,g]of Object.entries(c)){if(!g.lib||y.version!==_||!z(g,y.provider))continue;const R=l[_];(g===R||R!=null&&R.from&&g.from===R.from)&&(g===a||a.from&&g.from===a.from||m[_]===void 0&&(m[_]=g))}}}for(const n of ce)await Promise.all(n.map(async r=>{const i=e[r];i&&await Se(r,I[r],i,k[r],ae.get(r))}))}catch(t){console.error("[Module Federation] Failed to bridge external shared modules",t)}const ot=async()=>{},it=async(t,e)=>{var T,S;const n=u(t,(T=e.shareConfig)==null?void 0:T.singleton,e.version,e.scope),r=e.treeShaking?B(d.share,n,D):h(d.share,n);if(((S=e.shareConfig)==null?void 0:S.import)!==!1||r!==void 0||re(t,e,k[t]))return;const i=A=>{let w=A;for(let j=0;j<5;j++){const v=w==null?void 0:w.default;if(!v||typeof v!="object"||Object.keys(v).length===0)break;const G=Object.keys(w).filter(F=>F!=="default").map(F=>w[F]);if(G.length>0&&G.some(F=>F!==void 0))break;w=v}return w},o=s==null?void 0:s[t],c=me(o,t,e,"version-first")||e,a=le(o,c);if(!a)return;const{version:l}=a,y=o==null?void 0:o[l],m=await ye(t,e.shareConfig,o,l,y,c,a.registered&&!z(c,e)),_=m==null?void 0:m.selection,g=m==null?void 0:m.provider,R=m==null?void 0:m.resolved;if(!_||z(g,e)||R===void 0||(e.treeShaking?B(d.share,n,D):h(d.share,n))!==void 0||_.registered&&(o==null?void 0:o[_.version])!==g)return;const b=i(R);if(e.treeShaking){const A=e.treeShaking.providedExports??e.treeShaking.usedExports??[];he(d.share,n,A,b),J(d.share,n,D,b)}else E(d.share,n,b,_.from)},Oe=[];for(const t of rt){const e=I[t];if(pe(t))try{e.treeShaking?await ot(t,e):((Ee=e.shareConfig)==null?void 0:Ee.import)===!1&&await it(t,e)}catch(n){console.error(`[Module Federation] Failed to resolve runtime-only shared module "${t}"`,n);break}if(pe(t))break;Oe.push(t)}return await ve(Oe),ut(H),H}async function Ot(s){const f=await St();if(!(s in f))throw new Error(`[Module Federation] Module ${s} does not exist in container.`);return ue&&await ue(),d.pendingShareLoads&&await Promise.all(d.pendingShareLoads),f[s]().then(u=>()=>u)}export{Ot as get,Pt as init};
2
2
 
3
3
  if (typeof document !== 'undefined' && document.head) {
4
4
  try {
5
- for (const __mfWarmupPath of ["assets/virtualExposes-a309i88F.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js","assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js"]) {
5
+ for (const __mfWarmupPath of ["assets/virtualExposes-DgzWcmof.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1-BkReJy06.js","assets/vite-preload-helper-Dp1pzeXC.js","assets/index-2HOz3j7B.js"]) {
6
6
  const __mfWarmupLink = document.createElement('link');
7
7
  __mfWarmupLink.rel = 'modulepreload';
8
8
  __mfWarmupLink.crossOrigin = '';
@@ -608,23 +608,17 @@
608
608
  "marginBottom": "4px"
609
609
  }
610
610
  },
611
- "reviewAcceptAll": {
612
- "type": "sendTo",
613
- "command": "markAllReviewItemsAccept",
614
- "label": {
615
- "en": "Set all to accept",
616
- "de": "Alle auf Übernehmen stellen"
617
- },
618
- "variant": "outlined",
619
- "showProcess": true,
620
- "useNative": true,
621
- "newLine": true,
611
+ "reviewEditor": {
612
+ "type": "custom",
613
+ "url": "custom/review/reviewEditor.js",
614
+ "name": "ShoppingRouteReviewSet/Components/ReviewEditor",
615
+ "guiApi": 2,
616
+ "i18n": false,
622
617
  "xs": 12,
623
618
  "sm": 12,
624
- "md": 6,
625
- "lg": 4,
626
- "xl": 3,
627
- "jsonData": "{\"native\":${JSON.stringify(data)}}"
619
+ "md": 12,
620
+ "lg": 12,
621
+ "xl": 12
628
622
  },
629
623
  "reviewItems": {
630
624
  "type": "table",
@@ -714,7 +708,8 @@
714
708
  "xl": 12,
715
709
  "onChange": {
716
710
  "calculateFunc": "(data.reviewItems || []).map(row => ({...row,availableMarkets:Array.isArray(row.availableMarkets)?row.availableMarkets.map(v=>typeof v==='string'?v.trim():'').filter(Boolean).join(','):String(row.availableMarkets || '')}))"
717
- }
711
+ },
712
+ "hidden": "true"
718
713
  }
719
714
  }
720
715
  },
@@ -9,6 +9,17 @@ const parser_1 = require("./parser");
9
9
  const HEADER_PATTERN = /^═{5}\s+(.+?)\s+═{5}$/;
10
10
  const STAR_HEADER_PATTERN = /^\*\*\*\*\s+(.+?)\s+\*\*\*\*$/;
11
11
  const DASH_HEADER_PATTERN = /^----\s+(.+?)\s+----$/;
12
+ const SHORT_DASH_HEADER_PATTERN = /^[—–-]{1,5}\s+(.+?)\s+[—–-]{1,5}$/;
13
+ function stripManagedPrefixes(value) {
14
+ let text = String(value || '').trim();
15
+ for (let depth = 0; depth < 16; depth++) {
16
+ const match = text.match(/^(?:\d{2}>|\[\d{2}\])\s+(.+)$/s);
17
+ if (!match?.[1])
18
+ break;
19
+ text = String(match[1]).trim();
20
+ }
21
+ return text;
22
+ }
12
23
  function formatMarketHeader(market) {
13
24
  return `═════ ${String(market || '').trim().toLocaleUpperCase('de-DE')} ═════`;
14
25
  }
@@ -19,15 +30,20 @@ function formatMarketHeader(market) {
19
30
  * @param markets Configured active markets.
20
31
  */
21
32
  function marketNameFromHeader(value, markets) {
22
- const text = String(value || '').trim();
23
- const match = text.match(HEADER_PATTERN) || text.match(STAR_HEADER_PATTERN) || text.match(DASH_HEADER_PATTERN);
33
+ const text = stripManagedPrefixes(value);
34
+ const match = text.match(HEADER_PATTERN) || text.match(STAR_HEADER_PATTERN) || text.match(DASH_HEADER_PATTERN) || text.match(SHORT_DASH_HEADER_PATTERN);
24
35
  if (!match?.[1])
25
36
  return undefined;
26
37
  const wanted = (0, parser_1.normalize)(match[1]);
27
38
  return markets.find(market => market.enabled !== false && (0, parser_1.normalize)(market.name) === wanted)?.name;
28
39
  }
29
40
  function isMarketHeader(value, markets) {
30
- return Boolean(marketNameFromHeader(value, markets));
41
+ const text = stripManagedPrefixes(value);
42
+ return Boolean(text.match(HEADER_PATTERN) ||
43
+ text.match(STAR_HEADER_PATTERN) ||
44
+ text.match(DASH_HEADER_PATTERN) ||
45
+ text.match(SHORT_DASH_HEADER_PATTERN) ||
46
+ marketNameFromHeader(value, markets));
31
47
  }
32
48
  function realActiveItems(list, markets) {
33
49
  return list.filter(item => item &&
@@ -24,7 +24,14 @@ function parseSortPrefix(text) {
24
24
  return { number, originalText };
25
25
  }
26
26
  function stripSortPrefix(text) {
27
- return parseSortPrefix(text)?.originalText ?? String(text || '').trim();
27
+ let value = String(text || '').trim();
28
+ for (let depth = 0; depth < 16; depth++) {
29
+ const parsed = parseSortPrefix(value);
30
+ if (!parsed)
31
+ break;
32
+ value = parsed.originalText;
33
+ }
34
+ return value;
28
35
  }
29
36
  function formatSortPrefix(number, originalText) {
30
37
  if (!Number.isInteger(number) || number < 0 || number > 99) {
@@ -84,6 +91,8 @@ function buildPrefixTargets(items, markets, routes, products, fallbackMarket, pr
84
91
  }
85
92
  continue;
86
93
  }
94
+ if ((0, market_plan_1.isMarketHeader)(text, markets))
95
+ continue;
87
96
  real.push({ ...item, value: text });
88
97
  }
89
98
  const manualById = new Map((0, manual_order_1.overridesForList)(manualOverrides, listName).map(entry => [entry.itemId, entry]));
package/build/main.js CHANGED
@@ -49,7 +49,7 @@ const review_tools_1 = require("./lib/review-tools");
49
49
  const manual_order_1 = require("./lib/manual-order");
50
50
  const state_change_1 = require("./lib/state-change");
51
51
  const direct_sort_lifecycle_1 = require("./lib/direct-sort-lifecycle");
52
- const VERSION = '0.3.7';
52
+ const VERSION = '0.3.9';
53
53
  const COLLECT_WINDOW_MS = 5000;
54
54
  const MAX_ACTIVE_ITEMS = 99;
55
55
  const OWN_REFRESH_MAX_MS = 30000;
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "shoppingroute",
4
- "version": "0.3.7",
4
+ "version": "0.3.9",
5
5
  "titleLang": {
6
6
  "en": "ShoppingRoute",
7
7
  "de": "ShoppingRoute",
@@ -60,6 +60,32 @@
60
60
  "icon": "shoppingroute.png",
61
61
  "tier": 3,
62
62
  "news": {
63
+ "0.3.9": {
64
+ "en": "Replaces incomplete GitHub-installed 0.3.8 snapshots. Normalizes available-market selections, removes accepted review rows and orphaned market headings, and delivers the corrected single-column shopping-list view.",
65
+ "de": "Ersetzt unvollständige, direkt von GitHub installierte 0.3.8-Zwischenstände. Vereinheitlicht verfügbare Märkte, entfernt übernommene Prüflistenzeilen und verwaiste Marktüberschriften und liefert die korrigierte einspaltige Einkaufslistenansicht.",
66
+ "ru": "Заменяет неполные сборки 0.3.8, установленные напрямую с GitHub. Нормализует выбор доступных магазинов, удаляет принятые строки проверки и пустые заголовки магазинов и исправляет одноколоночный список покупок.",
67
+ "pt": "Substitui versões incompletas 0.3.8 instaladas diretamente do GitHub. Normaliza mercados disponíveis, remove linhas de revisão aceites e cabeçalhos de mercado órfãos e corrige a lista de compras numa coluna.",
68
+ "nl": "Vervangt onvolledige 0.3.8-versies die rechtstreeks van GitHub zijn geïnstalleerd. Normaliseert beschikbare winkels, verwijdert geaccepteerde controleregels en verweesde winkelkoppen en levert de gecorrigeerde boodschappenlijst in één kolom.",
69
+ "fr": "Remplace les versions 0.3.8 incomplètes installées directement depuis GitHub. Normalise les magasins disponibles, supprime les lignes de vérification acceptées et les en-têtes orphelins, et corrige la liste de courses sur une colonne.",
70
+ "it": "Sostituisce le versioni 0.3.8 incomplete installate direttamente da GitHub. Normalizza i negozi disponibili, rimuove le righe di revisione accettate e le intestazioni orfane e corregge la lista della spesa a colonna singola.",
71
+ "es": "Sustituye versiones 0.3.8 incompletas instaladas directamente desde GitHub. Normaliza los mercados disponibles, elimina filas de revisión aceptadas y encabezados huérfanos y corrige la lista de compra en una sola columna.",
72
+ "pl": "Zastępuje niepełne wersje 0.3.8 instalowane bezpośrednio z GitHub. Normalizuje dostępne sklepy, usuwa zaakceptowane wiersze weryfikacji i osierocone nagłówki oraz poprawia jednokolumnową listę zakupów.",
73
+ "uk": "Замінює неповні версії 0.3.8, установлені безпосередньо з GitHub. Нормалізує доступні магазини, видаляє прийняті рядки перевірки й осиротілі заголовки та виправляє одноколонковий список покупок.",
74
+ "zh-cn": "替换直接从 GitHub 安装的不完整 0.3.8 版本。统一可用商店选择,删除已接受的审核行和孤立商店标题,并修正单列购物清单视图。"
75
+ },
76
+ "0.3.8": {
77
+ "en": "Fixes the review queue so accepted items immediately update the article catalogue and remain “Accepted”, filters legacy market headers and nested sort prefixes, simplifies the current shopping-list Admin view, and updates CI/checker compatibility.",
78
+ "de": "Behebt die Prüfliste: Übernommene Einträge aktualisieren den Artikelstamm sofort und bleiben „Übernommen“. Außerdem werden alte Marktüberschriften und verschachtelte Sortierpräfixe gefiltert, die aktuelle Einkaufsliste im Admin vereinfacht und CI/Checker-Kompatibilität aktualisiert.",
79
+ "ru": "Исправлена очередь проверки: принятые позиции сразу обновляют каталог товаров и сохраняют статус «Принято». Также фильтруются старые заголовки магазинов и вложенные префиксы сортировки, упрощено отображение текущего списка покупок в Admin и обновлена совместимость CI/проверок.",
80
+ "pt": "Corrige a fila de revisão: os itens aceites atualizam imediatamente o catálogo de artigos e mantêm o estado “Aceite”. Também filtra cabeçalhos de mercado antigos e prefixos de ordenação aninhados, simplifica a lista de compras atual no Admin e atualiza a compatibilidade de CI/verificador.",
81
+ "nl": "Verbetert de controlelijst: geaccepteerde items werken de artikelcatalogus direct bij en blijven op “Overgenomen”. Ook worden oude winkelkoppen en geneste sorteerprefixen gefilterd, de actuele boodschappenlijst in Admin vereenvoudigd en de CI/checker-compatibiliteit bijgewerkt.",
82
+ "fr": "Corrige la file de vérification : les éléments acceptés mettent immédiatement à jour le catalogue et conservent l’état « Accepté ». Filtre aussi les anciens en-têtes de magasin et les préfixes de tri imbriqués, simplifie la liste de courses actuelle dans Admin et met à jour la compatibilité CI/vérificateur.",
83
+ "it": "Corregge la coda di revisione: gli elementi accettati aggiornano subito il catalogo e mantengono lo stato “Accettato”. Filtra inoltre le vecchie intestazioni dei negozi e i prefissi di ordinamento annidati, semplifica la lista della spesa corrente in Admin e aggiorna la compatibilità CI/checker.",
84
+ "es": "Corrige la cola de revisión: los elementos aceptados actualizan inmediatamente el catálogo y conservan el estado «Aceptado». También filtra encabezados antiguos de tiendas y prefijos de ordenación anidados, simplifica la lista de compra actual en Admin y actualiza la compatibilidad de CI/verificador.",
85
+ "pl": "Naprawia kolejkę weryfikacji: zaakceptowane pozycje natychmiast aktualizują katalog artykułów i zachowują status „Zaakceptowano”. Filtruje też stare nagłówki sklepów i zagnieżdżone prefiksy sortowania, upraszcza bieżącą listę zakupów w Adminie oraz aktualizuje zgodność CI/checkera.",
86
+ "uk": "Виправлено чергу перевірки: прийняті позиції одразу оновлюють каталог товарів і зберігають статус «Прийнято». Також фільтруються старі заголовки магазинів і вкладені префікси сортування, спрощено поточний список покупок в Admin та оновлено сумісність CI/перевірок.",
87
+ "zh-cn": "修复审核队列:已接受的条目会立即更新商品目录并保持“已接受”状态。同时过滤旧版商店标题和嵌套排序前缀,简化 Admin 中的当前购物清单视图,并更新 CI/检查器兼容性。"
88
+ },
63
89
  "0.3.7": {
64
90
  "en": "Adds an interactive Admin shopping list with drag-and-drop/manual movement between markets, persistent per-item manual overrides, responsive Admin improvements, and a retained “accepted” review status after normal Save.",
65
91
  "de": "Ergänzt eine interaktive Einkaufsliste im Admin mit Drag&Drop/manuellem Verschieben zwischen Märkten, dauerhaften manuellen Artikel-Overrides, Responsive-Verbesserungen und einem erhaltenen Status „Übernommen“ nach normalem Speichern.",
@@ -124,45 +150,6 @@
124
150
  "pl": "Nowe bezpośrednie sortowanie prefiksami 00>–99> dla list Alexa w trybie A–Z, z bardzo szybkim wstawianiem przyrostowym w wolne luki numeracji, przebudową sufiksu tylko po wyczerpaniu luki, bezpośrednim potwierdzeniem Amazon i końcową weryfikacją.",
125
151
  "uk": "Нове пряме сортування за префіксами 00>–99> для списків Alexa в режимі A–Z: дуже швидке інкрементне вставлення у вільні числові проміжки, перебудова суфікса лише за відсутності місця, пряме підтвердження Amazon і фінальна перевірка.",
126
152
  "zh-cn": "全新的 Alexa A–Z 列表直接 00>–99> 前缀排序:可快速增量插入空闲编号间隙,仅在间隙耗尽时重建后缀,并使用 Amazon 直接确认和最终校验。"
127
- },
128
- "0.3.0": {
129
- "en": "Development preview for automatic market headings and minimum-items-per-market route consolidation. Explicit market requests always remain unchanged.",
130
- "de": "Entwicklungsvorschau mit automatischen Marktüberschriften und marktübergreifender Zusammenlegung anhand einer Mindestartikelzahl. Explizite Marktangaben bleiben immer unverändert.",
131
- "ru": "Предварительная версия с автоматическими заголовками магазинов и объединением маршрута по минимальному количеству товаров. Явно указанные магазины никогда не изменяются.",
132
- "pt": "Prévia com cabeçalhos automáticos de mercados e consolidação de rota por quantidade mínima de itens. Mercados indicados explicitamente nunca são alterados.",
133
- "nl": "Ontwikkelversie met automatische winkelkoppen en routeconsolidatie op basis van een minimumaantal artikelen. Expliciet opgegeven winkels blijven altijd ongewijzigd.",
134
- "fr": "Aperçu de développement avec en-têtes automatiques de magasins et consolidation selon un nombre minimum d’articles. Les magasins explicitement indiqués ne sont jamais modifiés.",
135
- "it": "Anteprima di sviluppo con intestazioni automatiche dei negozi e consolidamento in base a un numero minimo di articoli. I negozi indicati esplicitamente non vengono mai modificati.",
136
- "es": "Vista previa con encabezados automáticos de tiendas y consolidación según un número mínimo de artículos. Las tiendas indicadas explícitamente nunca se modifican.",
137
- "pl": "Wersja rozwojowa z automatycznymi nagłówkami sklepów i konsolidacją na podstawie minimalnej liczby artykułów. Jawnie wskazane sklepy nigdy nie są zmieniane.",
138
- "uk": "Попередня версія з автоматичними заголовками магазинів і об’єднанням маршруту за мінімальною кількістю товарів. Явно вказані магазини ніколи не змінюються.",
139
- "zh-cn": "开发预览版:自动商店标题,并按每个商店的最少商品数量合并路线。明确指定的商店永远不会被更改。"
140
- },
141
- "0.2.0": {
142
- "en": "First stable release of ShoppingRoute with complete Admin translations, improved walking-route help, protected npm publishing and verified Alexa2/alexa-remote2 compatibility.",
143
- "de": "Erste stabile Veröffentlichung von ShoppingRoute mit vollständigen Admin-Übersetzungen, korrigiertem Laufwege-Hilfetext, geschützter npm-Veröffentlichung und geprüfter Alexa2/alexa-remote2-Kompatibilität.",
144
- "ru": "Первый стабильный выпуск ShoppingRoute с полными переводами интерфейса администратора, улучшенной справкой по маршрутам, защищённой публикацией npm и проверенной совместимостью Alexa2/alexa-remote2.",
145
- "pt": "Primeira versão estável do ShoppingRoute com traduções completas da interface de administração, ajuda aprimorada para percursos, publicação npm protegida e compatibilidade Alexa2/alexa-remote2 verificada.",
146
- "nl": "Eerste stabiele release van ShoppingRoute met volledige Admin-vertalingen, verbeterde hulp voor looproutes, beveiligde npm-publicatie en gecontroleerde Alexa2/alexa-remote2-compatibiliteit.",
147
- "fr": "Première version stable de ShoppingRoute avec traductions complètes de l’interface Admin, aide améliorée pour les parcours, publication npm sécurisée et compatibilité Alexa2/alexa-remote2 vérifiée.",
148
- "it": "Prima versione stabile di ShoppingRoute con traduzioni complete dell'interfaccia Admin, guida migliorata per i percorsi, pubblicazione npm protetta e compatibilità Alexa2/alexa-remote2 verificata.",
149
- "es": "Primera versión estable de ShoppingRoute con traducciones completas de la interfaz de administración, ayuda mejorada para los recorridos, publicación npm protegida y compatibilidad Alexa2/alexa-remote2 verificada.",
150
- "pl": "Pierwsze stabilne wydanie ShoppingRoute z pełnymi tłumaczeniami panelu administracyjnego, ulepszoną pomocą dla tras, zabezpieczonym publikowaniem npm i zweryfikowaną zgodnością Alexa2/alexa-remote2.",
151
- "uk": "Перший стабільний випуск ShoppingRoute з повними перекладами інтерфейсу Admin, покращеною довідкою для маршрутів, захищеною публікацією npm та перевіреною сумісністю Alexa2/alexa-remote2.",
152
- "zh-cn": "ShoppingRoute 首个稳定版本,包含完整的 Admin 翻译、改进的行走路线帮助、安全的 npm 发布流程以及经过验证的 Alexa2/alexa-remote2 兼容性。"
153
- },
154
- "0.3.1": {
155
- "en": "Fixed a restart loop in review learning mode.",
156
- "de": "Neustartschleife im Lernmodus Prüfliste behoben.",
157
- "ru": "Исправлен цикл перезапуска в режиме проверки обучения.",
158
- "pt": "Corrigido um ciclo de reinicialização no modo de revisão.",
159
- "nl": "Herstartlus in de controle-leermodus opgelost.",
160
- "fr": "Correction d'une boucle de redémarrage en mode de vérification.",
161
- "it": "Risolto un ciclo di riavvio nella modalità di revisione.",
162
- "es": "Corregido un bucle de reinicio en el modo de revisión.",
163
- "pl": "Naprawiono pętlę restartów w trybie weryfikacji.",
164
- "uk": "Виправлено цикл перезапуску в режимі перевірки.",
165
- "zh-cn": "修复审核学习模式中的重启循环。"
166
153
  }
167
154
  },
168
155
  "extIcon": "https://raw.githubusercontent.com/RaviniZib/ioBroker.shoppingroute/main/admin/shoppingroute.png",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.shoppingroute",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
4
4
  "description": "Smart Alexa shopping-list routing by market, product group and individual store walking route with learning, multi-list support and API protection.",
5
5
  "author": "RaviniZib",
6
6
  "license": "MIT",
@@ -34,7 +34,7 @@
34
34
  "README_DE.md"
35
35
  ],
36
36
  "scripts": {
37
- "build": "npm run build:admin && tsc -p tsconfig.json",
37
+ "build": "tsc -p tsconfig.json && npm run build:admin",
38
38
  "build:admin": "node scripts/build-admin.js",
39
39
  "check": "tsc -p tsconfig.json --noEmit",
40
40
  "test": "npm run build && node --test test/*.test.js",
@@ -50,7 +50,7 @@
50
50
  },
51
51
  "devDependencies": {
52
52
  "@iobroker/eslint-config": "^2.3.4",
53
- "@iobroker/testing": "^5.2.2",
53
+ "@iobroker/testing": "^6.1.0",
54
54
  "@module-federation/vite": "^1.4.1",
55
55
  "@tsconfig/node22": "^22.0.5",
56
56
  "@types/node": "^22.15.0",
@@ -1,72 +0,0 @@
1
- import"../shoppingListEditor.js";import{_ as m,a as b}from"./_virtual_mf___mfe_internal__ShoppingRouteShoppingListSet__mf_owner__1__loadShare__react__loadShare__.js-DKxc1wk0.js";import"./vite-preload-helper-Dp1pzeXC.js";import"./index-2HOz3j7B.js";var p={exports:{}};const g=m||b,o=g.createElement,i=(u,t)=>(typeof navigator<"u"?String(navigator.language||"").toLowerCase():"de").startsWith("de")?u:t,y=`
2
- .shoppingroute-list-toolbar {
3
- display: flex;
4
- flex-wrap: wrap;
5
- gap: 10px;
6
- align-items: center;
7
- margin-bottom: 14px;
8
- }
9
- .shoppingroute-list-toolbar select,
10
- .shoppingroute-list-toolbar button,
11
- .shoppingroute-card select {
12
- min-height: 38px;
13
- box-sizing: border-box;
14
- }
15
- .shoppingroute-market-grid {
16
- display: grid;
17
- grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
18
- gap: 12px;
19
- align-items: start;
20
- }
21
- .shoppingroute-market-column {
22
- min-width: 0;
23
- border: 1px solid currentColor;
24
- border-radius: 8px;
25
- padding: 10px;
26
- opacity: 0.94;
27
- }
28
- .shoppingroute-card {
29
- border: 1px solid currentColor;
30
- border-radius: 6px;
31
- padding: 9px;
32
- margin: 8px 0;
33
- background: rgba(127, 127, 127, 0.08);
34
- cursor: grab;
35
- }
36
- .shoppingroute-card-controls {
37
- display: flex;
38
- flex-wrap: wrap;
39
- gap: 6px;
40
- margin-top: 8px;
41
- align-items: center;
42
- }
43
- .shoppingroute-card-controls select {
44
- min-width: 0;
45
- flex: 1 1 130px;
46
- }
47
- .shoppingroute-list-button {
48
- min-width: 38px;
49
- min-height: 34px;
50
- border: 1px solid currentColor;
51
- border-radius: 4px;
52
- background: transparent;
53
- color: inherit;
54
- cursor: pointer;
55
- }
56
- .shoppingroute-list-button:disabled {
57
- cursor: default;
58
- opacity: 0.4;
59
- }
60
- @media (max-width: 600px) {
61
- .shoppingroute-market-grid {
62
- grid-template-columns: 1fr;
63
- }
64
- .shoppingroute-list-toolbar > * {
65
- width: 100%;
66
- max-width: none;
67
- }
68
- .shoppingroute-card {
69
- cursor: default;
70
- }
71
- }
72
- `;class c extends g.Component{constructor(t){super(t),this.state={view:null,loading:!0,busy:"",error:""}}componentDidMount(){this.load()}instanceName(){const t=String(this.props.adapterName||"shoppingroute"),e=Number.isFinite(Number(this.props.instance))?Number(this.props.instance):0;return`${t}.${e}`}async send(t,e){var s;if(!((s=this.props.socket)!=null&&s.sendTo))throw new Error("Admin socket is unavailable.");return this.props.socket.sendTo(this.instanceName(),t,e||{})}async load(t){this.setState({loading:!0,error:""});try{const e=await this.send("getShoppingList",{listName:t});if(!e||e.error)throw new Error((e==null?void 0:e.error)||"Shopping list could not be loaded.");this.setState({view:e,loading:!1,busy:""})}catch(e){this.setState({loading:!1,busy:"",error:e instanceof Error?e.message:String(e)})}}async move(t,e,s){const n=this.state.view;if(!(!n||this.state.busy)){this.setState({busy:t,error:""});try{const r=await this.send("moveShoppingItem",{listName:n.listName,itemId:t,targetMarket:e,targetPosition:s});if(r!=null&&r.view&&this.setState({view:r.view}),!(r!=null&&r.ok))throw new Error((r==null?void 0:r.error)||"The item could not be moved.");this.setState({busy:""})}catch(r){this.setState({busy:"",error:r instanceof Error?r.message:String(r)}),await this.load(n.listName)}}}async clearManual(){const t=this.state.view;if(!(!t||this.state.busy)){this.setState({busy:"__clear__",error:""});try{const e=await this.send("clearManualShoppingOrder",{listName:t.listName});if(e!=null&&e.view&&this.setState({view:e.view}),!(e!=null&&e.ok))throw new Error((e==null?void 0:e.error)||"Manual order could not be cleared.");this.setState({busy:""})}catch(e){this.setState({busy:"",error:e instanceof Error?e.message:String(e)}),await this.load(t.listName)}}}onDragStart(t,e){t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e)}onDrop(t,e,s){t.preventDefault();const n=t.dataTransfer.getData("text/plain");n&&this.move(n,e,s)}renderCard(t,e,s,n){const r=!!this.state.busy;return o("div",{key:t.id,className:"shoppingroute-card",draggable:!r,onDragStart:a=>this.onDragStart(a,t.id),onDragOver:a=>a.preventDefault(),onDrop:a=>this.onDrop(a,t.market,s),title:i("Ziehen oder die Schaltflächen benutzen","Drag or use the buttons")},[o("div",{key:"text",style:{fontWeight:600,wordBreak:"break-word"}},t.text),o("div",{key:"meta",style:{fontSize:"0.82rem",opacity:.72,marginTop:"3px"}},(t.category||i("Ohne Produktgruppe","No product group"))+(t.manual?` · ${i("manuell","manual")}`:"")),o("div",{key:"controls",className:"shoppingroute-card-controls"},[o("button",{key:"up",type:"button",className:"shoppingroute-list-button",disabled:r||s===0,title:i("Nach oben","Move up"),onClick:()=>void this.move(t.id,t.market,s-1)},"↑"),o("button",{key:"down",type:"button",className:"shoppingroute-list-button",disabled:r||s===e.length-1,title:i("Nach unten","Move down"),onClick:()=>void this.move(t.id,t.market,s+1)},"↓"),o("select",{key:"market",value:t.market,disabled:r,"aria-label":i("In einen anderen Markt verschieben","Move to another market"),onChange:a=>{const l=a.target.value,d=n.items.filter(h=>h.market===l&&h.id!==t.id).length;this.move(t.id,l,d)}},n.markets.map(a=>o("option",{key:a,value:a},a)))])])}render(){const t=this.state.view,e=!!this.state.busy,s=[o("style",{key:"styles"},y)];if(s.push(o("div",{key:"intro",style:{marginBottom:"12px",lineHeight:1.45}},[o("strong",{key:"title"},i("Aktuelle Einkaufsliste","Current shopping list")),o("div",{key:"hint",style:{opacity:.75,marginTop:"3px"}},i("Artikel können gezogen oder mit Pfeilen und Marktauswahl verschoben werden. Änderungen werden direkt in Alexa bestätigt.","Items can be dragged or moved with the arrows and market selector. Changes are confirmed directly in Alexa."))])),this.state.error&&s.push(o("div",{key:"error",style:{padding:"9px",border:"1px solid currentColor",borderRadius:"6px",marginBottom:"10px"}},this.state.error)),this.state.loading||!t)return s.push(o("div",{key:"loading"},i("Liste wird geladen …","Loading list …"))),o("div",{style:{width:"100%"}},s);s.push(o("div",{key:"toolbar",className:"shoppingroute-list-toolbar"},[o("select",{key:"list",value:t.listName,disabled:e,onChange:r=>void this.load(r.target.value),"aria-label":i("Einkaufsliste auswählen","Select shopping list")},t.lists.map(r=>o("option",{key:r,value:r},r))),o("button",{key:"refresh",type:"button",className:"shoppingroute-list-button",disabled:e,onClick:()=>void this.load(t.listName)},i("Aktualisieren","Refresh")),o("button",{key:"clear",type:"button",className:"shoppingroute-list-button",disabled:e,onClick:()=>void this.clearManual()},i("Manuelle Reihenfolge zurücksetzen","Reset manual order")),t.dryRun?o("strong",{key:"dry",style:{marginLeft:"auto"}},i("Dry Run aktiv – Verschieben gesperrt","Dry Run active – moving is disabled")):null]));const n=t.markets.map(r=>{const a=t.items.filter(l=>l.market===r);return o("section",{key:r,className:"shoppingroute-market-column",onDragOver:l=>l.preventDefault(),onDrop:l=>this.onDrop(l,r,a.length)},[o("h3",{key:"title",style:{margin:"0 0 6px"}},`${r} (${a.length})`),a.length?a.map((l,d)=>this.renderCard(l,a,d,t)):o("div",{key:"empty",style:{opacity:.62,padding:"12px 0"}},i("Hierher ziehen","Drop here"))])});return s.push(o("div",{key:"grid",className:"shoppingroute-market-grid"},n)),o("div",{style:{width:"100%"}},s)}}p.exports={Components:{ShoppingListEditor:c},ShoppingListEditor:c};const v=(p.exports==null?{}:p.exports).default||p.exports,S=v.Components;export{S as default};