iobroker.govee-smart 2.19.0 → 2.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -46
- package/admin/custom/assets/Components-Hx2QqzWd.js +1 -0
- package/admin/custom/assets/ConfigCustomGoveeSegmentSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-YKsZEIvb.js +1 -0
- package/admin/custom/assets/ConfigCustomGoveeSegmentSet__loadShare___mf_0_mui_mf_1_material__loadShare__-0yRF3k94.js +1 -0
- package/admin/custom/assets/ConfigCustomGoveeSegmentSet__loadShare__react__loadShare__-BqVuZVqv.js +1 -0
- package/admin/custom/assets/ConfigCustomGoveeSegmentSet__mf_v__runtimeInit__mf_v__-C6iLwpvP.js +10 -0
- package/admin/custom/assets/DefaultPropsProvider-C2bmDhBD.js +7 -0
- package/admin/custom/assets/SegmentWizard-ysCOYqFc.js +1 -0
- package/admin/custom/assets/TextField-ufge0E1L.js +103 -0
- package/admin/custom/assets/ThemeProvider-BaIj6OpV.js +29 -0
- package/admin/custom/assets/_commonjsHelpers-D6-XlEtG.js +1 -0
- package/admin/custom/assets/createSvgIcon-D3Quti3O.js +1 -0
- package/admin/custom/assets/createTheme-BOY5sESk.js +16 -0
- package/admin/custom/assets/defaultTheme-BdAqZ7aq.js +1 -0
- package/admin/custom/assets/hostInit-DAQ2zgXM.js +2 -0
- package/admin/custom/assets/index-B0JJ82RR.js +24 -0
- package/admin/custom/assets/index-BLfm-QlB.js +8 -0
- package/admin/custom/assets/index-B_YyiXHW.js +1 -0
- package/admin/custom/assets/index-C4iojJUp.js +904 -0
- package/admin/custom/assets/index-CMybdyHA.js +91 -0
- package/admin/custom/assets/index-Co3YA5NW.js +9 -0
- package/admin/custom/assets/index-D3JPpsgu.js +1404 -0
- package/admin/custom/assets/index-DWwrhfU9.js +31 -0
- package/admin/custom/assets/index-SEBg8QHs.js +1 -0
- package/admin/custom/assets/index-tJdmPg6H.js +3 -0
- package/admin/custom/assets/jsx-runtime-T585gmKY.js +9 -0
- package/admin/custom/assets/preload-helper-C1FmrZbK.js +1 -0
- package/admin/custom/assets/useTheme-DKO5QRHu.js +1 -0
- package/admin/custom/assets/useTheme-taH6tDfa.js +1 -0
- package/admin/custom/assets/virtualExposes-sIbOzaNY.js +2 -0
- package/admin/custom/customComponents.js +2 -0
- package/admin/custom/i18n/de.json +20 -0
- package/admin/custom/i18n/en.json +20 -0
- package/admin/custom/i18n/es.json +20 -0
- package/admin/custom/i18n/fr.json +20 -0
- package/admin/custom/i18n/it.json +20 -0
- package/admin/custom/i18n/nl.json +20 -0
- package/admin/custom/i18n/pl.json +20 -0
- package/admin/custom/i18n/pt.json +20 -0
- package/admin/custom/i18n/ru.json +20 -0
- package/admin/custom/i18n/uk.json +20 -0
- package/admin/custom/i18n/zh-cn.json +20 -0
- package/admin/custom/mf-manifest.json +1 -0
- package/admin/i18n/de.json +26 -26
- package/admin/i18n/en.json +23 -23
- package/admin/i18n/es.json +23 -23
- package/admin/i18n/fr.json +22 -22
- package/admin/i18n/it.json +22 -22
- package/admin/i18n/nl.json +23 -23
- package/admin/i18n/pl.json +22 -22
- package/admin/i18n/pt.json +23 -23
- package/admin/i18n/ru.json +22 -22
- package/admin/i18n/uk.json +22 -22
- package/admin/i18n/zh-cn.json +22 -22
- package/admin/jsonConfig.json +7 -137
- package/build/lib/capability-mapper.js +39 -23
- package/build/lib/capability-mapper.js.map +2 -2
- package/build/lib/command-router.js +22 -13
- package/build/lib/command-router.js.map +2 -2
- package/build/lib/device-manager/library-loader.js +220 -0
- package/build/lib/device-manager/library-loader.js.map +7 -0
- package/build/lib/device-manager.js +45 -276
- package/build/lib/device-manager.js.map +3 -3
- package/build/lib/govee-lan-client.js +46 -5
- package/build/lib/govee-lan-client.js.map +2 -2
- package/build/lib/govee-mqtt-client.js +29 -2
- package/build/lib/govee-mqtt-client.js.map +2 -2
- package/build/lib/handlers/cloud-creds-handler.js +25 -11
- package/build/lib/handlers/cloud-creds-handler.js.map +2 -2
- package/build/lib/handlers/cloud-state-loader.js +36 -29
- package/build/lib/handlers/cloud-state-loader.js.map +2 -2
- package/build/lib/handlers/connection-state.js +9 -1
- package/build/lib/handlers/connection-state.js.map +2 -2
- package/build/lib/handlers/device-events.js +2 -2
- package/build/lib/handlers/device-events.js.map +2 -2
- package/build/lib/handlers/diagnostics-handler.js +3 -2
- package/build/lib/handlers/diagnostics-handler.js.map +2 -2
- package/build/lib/handlers/state-change-router.js +14 -12
- package/build/lib/handlers/state-change-router.js.map +2 -2
- package/build/lib/handlers/wizard-handler.js +2 -8
- package/build/lib/handlers/wizard-handler.js.map +2 -2
- package/build/lib/http-client.js +17 -0
- package/build/lib/http-client.js.map +2 -2
- package/build/lib/message-router.js +37 -22
- package/build/lib/message-router.js.map +2 -2
- package/build/lib/rate-limiter.js +50 -4
- package/build/lib/rate-limiter.js.map +2 -2
- package/build/lib/reconnecting-mqtt-client.js +5 -0
- package/build/lib/reconnecting-mqtt-client.js.map +2 -2
- package/build/lib/segment-wizard.js +95 -35
- package/build/lib/segment-wizard.js.map +2 -2
- package/build/lib/state-manager.js +108 -44
- package/build/lib/state-manager.js.map +2 -2
- package/build/main.js +36 -17
- package/build/main.js.map +2 -2
- package/io-package.json +53 -54
- package/package.json +10 -5
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ Full user documentation lives in the **[Wiki](https://github.com/krobipd/ioBroke
|
|
|
35
35
|
- **Capability-driven** — states are generated from what the Govee API reports for each device. No SKU hardcoding, no hand-maintained device list to fall behind.
|
|
36
36
|
- **LAN-first for lights** — UDP multicast discovery, sub-50 ms commands, status updates via AWS IoT MQTT
|
|
37
37
|
- **Cloud + MQTT push for sensors and appliances** — readings via the App API, events via the OpenAPI MQTT broker
|
|
38
|
-
- **Per-segment color and brightness** for LED strips with the right capability, including batch commands and
|
|
38
|
+
- **Per-segment color and brightness** for LED strips with the right capability, including batch commands and a visual segment-detection wizard (with a live, correctable strip map) for cut strips
|
|
39
39
|
- **Scenes, DIY scenes, music mode, gradient toggle** — activated locally via BLE-over-LAN where possible, Cloud fallback otherwise
|
|
40
40
|
- **Cloud and local snapshots** — Govee-app snapshots and ioBroker-side snapshots side by side
|
|
41
41
|
- **Groups** — bridge Govee groups into ioBroker with capability intersection across members
|
|
@@ -94,6 +94,18 @@ This adapter's MQTT authentication and BLE-over-LAN (ptReal) protocol implementa
|
|
|
94
94
|
Placeholder for the next version (at the beginning of the line):
|
|
95
95
|
### **WORK IN PROGRESS**
|
|
96
96
|
-->
|
|
97
|
+
### 2.21.0 (2026-07-12)
|
|
98
|
+
|
|
99
|
+
- The segment-detection wizard for cut LED strips now has a visual admin interface: a live map of the strip that fills in as you measure each segment and can be corrected before you apply it.
|
|
100
|
+
|
|
101
|
+
### 2.20.0 (2026-07-11)
|
|
102
|
+
|
|
103
|
+
- Channel names and the device-info labels such as Name, Model, Online and IP address now follow the ioBroker system language instead of always showing English.
|
|
104
|
+
- Clearer Cloud API feedback: the admin "test login" button reports the real login result, and a malformed API key now gives a plain "invalid key" message instead of a generic failure.
|
|
105
|
+
- Sensor-only setups are now told, both in the admin and at startup, that a Govee account login is required to receive sensor data.
|
|
106
|
+
- Actions that used to fail quietly now report it — the manual device-sync button surfaces errors, and commands queued behind a rate limit settle with their real success or failure.
|
|
107
|
+
- A network error on a manually pinned LAN interface is now raised as an actionable problem with a fix hint, instead of passing unnoticed.
|
|
108
|
+
|
|
97
109
|
### 2.19.0 (2026-07-04)
|
|
98
110
|
|
|
99
111
|
- Device log lines now consistently name devices as "name (model)" — cache maintenance, command errors and wizard messages included, no more bare model/address labels
|
|
@@ -107,51 +119,6 @@ This adapter's MQTT authentication and BLE-over-LAN (ptReal) protocol implementa
|
|
|
107
119
|
|
|
108
120
|
- Added several new Govee devices to the catalog — 4 more lamps and 3 sensors (including a CO2 monitor). They start as experimental; enable them in the adapter settings to try them.
|
|
109
121
|
|
|
110
|
-
### 2.18.0 (2026-07-03)
|
|
111
|
-
|
|
112
|
-
- Devices you removed from your Govee account (and not reachable on your local network) now disappear from the adapter after a safety delay, instead of lingering forever — deleted groups too.
|
|
113
|
-
- Restored colour control in groups that contain a cloud-only member — `control.color_rgb` and `control.color_temperature` had gone missing from those groups.
|
|
114
|
-
- The persisted MQTT credentials are no longer a visible datapoint (`info.mqttCredentials` is gone) — they moved to an internal, non-loggable store, still encrypted.
|
|
115
|
-
- `info.appVersionDrift` is gone — the adapter now keeps its Govee-app version current on its own, so it keeps working when Govee updates their app (no adapter update needed).
|
|
116
|
-
|
|
117
|
-
### 2.17.0 (2026-07-01)
|
|
118
|
-
|
|
119
|
-
- **Breaking:** colour datapoints renamed to snake_case — e.g. `control.colorRgb` → `control.color_rgb`, and the colour-temperature one likewise (devices + groups). Update your scripts.
|
|
120
|
-
- Security: the Govee Cloud API key can no longer leak into the ioBroker log — it was written in plaintext on the cloud-events connection and is now masked.
|
|
121
|
-
- Security: the diagnostics export (the JSON you paste into a GitHub issue) no longer contains device or gateway secrets — a gateway's secret key and push topic are now masked.
|
|
122
|
-
- Security: a spoofed LAN discovery reply can no longer redirect a device's commands to another IP — the device address is taken from the real network source, not the packet.
|
|
123
|
-
- Robustness: the Admin "Test login" button is now rate-limited, so repeated clicks can no longer trigger a burst of Govee logins that could get your account temporarily locked.
|
|
124
|
-
- Security: a hostile or misbehaving device on your network can no longer flood the adapter with fake device announcements and slow it down — new devices are now bounded.
|
|
125
|
-
- Fixed: a device you delete from your Govee account is now removed from the adapter on the next cloud refresh (e.g. after a restart), instead of lingering as a phantom device for up to two weeks.
|
|
126
|
-
- New: a "Manually sync devices" button (`info.manual_sync_devices`) — set it to true to sync the device list with your Govee account on demand (add new, drop deleted) without a restart.
|
|
127
|
-
- Fixed: multi-colour DIY scenes activated over the local network now load correctly — longer scenes could previously be corrupted and silently fail to apply.
|
|
128
|
-
- Fixed: after you remove a device and add it again, its info states (name, model, …) are recreated correctly instead of leaving "has no existing object" warnings until the next restart.
|
|
129
|
-
- Fixed: if a Govee push/cloud-events connection connects but can't subscribe (a rare server hiccup), the adapter no longer reconnects every few seconds — the retry now backs off normally.
|
|
130
|
-
- Fixed: the admin "Test login" button now waits for the real MQTT connection before reporting — valid Govee account credentials no longer show a false "MQTT not up, restart the adapter" message.
|
|
131
|
-
- Fixed: on lamps whose music modes start at zero, the first mode was unreachable and "off" was missing — the music-mode selector is fixed. **Breaking:** its numbers shift by one, adjust scripts.
|
|
132
|
-
- Fixed: cloud snapshots whose value is a plain number are no longer dropped from the snapshot dropdown, and an entry with an empty value no longer shows up as a phantom option.
|
|
133
|
-
- Fixed: clearing the preset-scene selector no longer fires a spurious empty scene command.
|
|
134
|
-
- Fixed: DIY scenes you create in the Govee app now show up in the DIY dropdown after a reload, instead of only on the very first load.
|
|
135
|
-
- Fixed: a malformed `segments.command` (e.g. `;` instead of `:`) now logs a clear warning with the expected syntax instead of being silently ignored.
|
|
136
|
-
- Fixed: a command to a group with no reachable members (or where every member fails) is no longer reported as successful — it warns and leaves the state un-acknowledged, like a single device.
|
|
137
|
-
- Fixed: setting music sensitivity or auto-color on a LAN-controlled light no longer silently appears to succeed — the adapter now makes clear only the music mode applies locally.
|
|
138
|
-
- Fixed: an out-of-range segment range in `segments.command` (e.g. `0-2000000000`) is now clamped to the protocol limit instead of briefly freezing the adapter while it expands the range.
|
|
139
|
-
- Fixed: the segment-detection wizard now leaves your light off after it finishes or is cancelled if it was off before — it no longer leaves a light on that you had switched off.
|
|
140
|
-
- Fixed: the segment-detection wizard now restores your strip's original per-segment gradient on finish/abort instead of flattening it to a single colour — a uniformly-coloured strip is unaffected.
|
|
141
|
-
- Fixed: starting the segment-detection wizard twice in quick succession can no longer open two overlapping sessions.
|
|
142
|
-
- Fixed: the Govee account email field no longer shows a "valid email" error when you leave it empty — LAN-only and API-key-only setups no longer see a false validation error.
|
|
143
|
-
- Fixed: per-segment colour and brightness now show a default value instead of reading as null in visualizations before the first change.
|
|
144
|
-
- Fixed: sensor readings (temperature/humidity/battery/CO₂) now default to 0 instead of null in visualizations before the first reading arrives.
|
|
145
|
-
- Fixed: device groups no longer expose a meaningless "verified" trust-tier datapoint (the trust tier only applies to real devices, not groups).
|
|
146
|
-
- Fixed: cleaner shutdown/restart — the adapter no longer opens a cloud connection or reports a stray error after it has been told to stop.
|
|
147
|
-
- Fixed: a broken rate-limit reply from Govee no longer causes rapid repeated retries — the adapter now waits at least 5 seconds before trying again.
|
|
148
|
-
- Fixed: under heavy cloud load a fresh control command (power/brightness) is no longer dropped in favour of queued scene activations.
|
|
149
|
-
- Fixed: a LAN light no longer loses its power and colour controls after a cloud data refresh.
|
|
150
|
-
- Added: device catalog entries for the H5109 Pool Thermometer and H1630 Lantern Floor Lamp (user-reported) — they are now recognised instead of logging a "not supported" warning.
|
|
151
|
-
- Fixed: a sensor sending fresh readings now shows `info.online = true` even when Govee's cloud wrongly reports it offline (e.g. gateway thermometers) — online is derived from data freshness.
|
|
152
|
-
- Fixed: temperature-only sensors no longer keep a phantom humidity datapoint stuck at 0 — a device with no humidity sensor drops it, while a real thermo-hygrometer keeps its humidity.
|
|
153
|
-
- Fixed: a rejected Govee API key is now always reported as "API key rejected — check Govee API key" and stops the retry loop, instead of a generic error and retrying a bad key forever.
|
|
154
|
-
|
|
155
122
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
156
123
|
|
|
157
124
|
## Support
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as r}from"./jsx-runtime-T585gmKY.js";import{C as n,i as s}from"./ConfigCustomGoveeSegmentSet__mf_v__runtimeInit__mf_v__-C6iLwpvP.js";import{S as i}from"./SegmentWizard-ysCOYqFc.js";import"./ConfigCustomGoveeSegmentSet__loadShare__react__loadShare__-BqVuZVqv.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./ConfigCustomGoveeSegmentSet__loadShare___mf_0_mui_mf_1_material__loadShare__-0yRF3k94.js";import"./ConfigCustomGoveeSegmentSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-YKsZEIvb.js";const{loadShare:_}=s,{initPromise:m}=n,a=m.then(e=>_("@iobroker/json-config",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),c=await a.then(e=>e());var f=c;class p extends f.ConfigGeneric{renderItem(d,g){const o=this.props.oContext,t=`${o.adapterName}.${o.instance}`;return r.jsx(i,{socket:o.socket,namespace:t})}}const v={SegmentWizardConfig:p};export{v as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as s}from"./_commonjsHelpers-D6-XlEtG.js";import{i as f,C as i}from"./ConfigCustomGoveeSegmentSet__mf_v__runtimeInit__mf_v__-C6iLwpvP.js";function m(e,a){for(var o=0;o<a.length;o++){const t=a[o];if(typeof t!="string"&&!Array.isArray(t)){for(const r in t)if(r!=="default"&&!(r in e)){const _=Object.getOwnPropertyDescriptor(t,r);_&&Object.defineProperty(e,r,_.get?_:{enumerable:!0,get:()=>t[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const{loadShare:c}=f,{initPromise:d}=i,l=d.then(e=>c("@iobroker/adapter-react-v5",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),u=await l.then(e=>e());var n=u;const g=s(n),v=m({__proto__:null,default:g},[n]);export{v as A,n as C};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as t,C as _}from"./ConfigCustomGoveeSegmentSet__mf_v__runtimeInit__mf_v__-C6iLwpvP.js";const{loadShare:o}=t,{initPromise:i}=_,r=i.then(e=>o("@mui/material",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),n=await r.then(e=>e());var s=n;export{s as C};
|
package/admin/custom/assets/ConfigCustomGoveeSegmentSet__loadShare__react__loadShare__-BqVuZVqv.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as i}from"./_commonjsHelpers-D6-XlEtG.js";import{i as _,C as c}from"./ConfigCustomGoveeSegmentSet__mf_v__runtimeInit__mf_v__-C6iLwpvP.js";function f(e,a){for(var o=0;o<a.length;o++){const t=a[o];if(typeof t!="string"&&!Array.isArray(t)){for(const r in t)if(r!=="default"&&!(r in e)){const n=Object.getOwnPropertyDescriptor(t,r);n&&Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const{loadShare:m}=_,{initPromise:u}=c,g=u.then(e=>m("react",{customShareInfo:{shareConfig:{singleton:!0,strictVersion:!1,requiredVersion:"*"}}})),l=await g.then(e=>e());var s=l;const d=i(s),h=f({__proto__:null,default:d},[s]);export{s as C,d as R,h as a};
|
package/admin/custom/assets/ConfigCustomGoveeSegmentSet__mf_v__runtimeInit__mf_v__-C6iLwpvP.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var index_cjs$3={},index_cjs$2={},polyfills_cjs$1={};function _extends$2(){return _extends$2=Object.assign||function(i){for(var d=1;d<arguments.length;d++){var u=arguments[d];for(var p in u)Object.prototype.hasOwnProperty.call(u,p)&&(i[p]=u[p])}return i},_extends$2.apply(this,arguments)}function _object_without_properties_loose(o,i){if(o==null)return{};var d={},u=Object.keys(o),p,S;for(S=0;S<u.length;S++)p=u[S],!(i.indexOf(p)>=0)&&(d[p]=o[p]);return d}polyfills_cjs$1._extends=_extends$2;polyfills_cjs$1._object_without_properties_loose=_object_without_properties_loose;var index_cjs$1={},__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(o,i)=>{for(var d in i)__defProp(o,d,{get:i[d],enumerable:!0})},__copyProps=(o,i,d,u)=>{if(i&&typeof i=="object"||typeof i=="function")for(let p of __getOwnPropNames(i))!__hasOwnProp.call(o,p)&&p!==d&&__defProp(o,p,{get:()=>i[p],enumerable:!(u=__getOwnPropDesc(i,p))||u.enumerable});return o},__toCommonJS=o=>__copyProps(__defProp({},"__esModule",{value:!0}),o),browser_exports={};__export(browser_exports,{createLogger:()=>createLogger2,logger:()=>logger$1});var browser=__toCommonJS(browser_exports),supportsSubstitutions=void 0,supportColor=()=>{if(typeof supportsSubstitutions<"u")return supportsSubstitutions;const o=console.log;try{const i="color test",d="color: red;";supportsSubstitutions=!1,console.log=(...u)=>{u[0]===`%c${i}`&&u[1]===d&&(supportsSubstitutions=!0)},console.log(`%c${i}`,d)}catch{supportsSubstitutions=!1}finally{console.log=o}return supportsSubstitutions},ansiToCss={bold:"font-weight: bold;",red:"color: red;",green:"color: green;",orange:"color: orange;",dodgerblue:"color: dodgerblue;",magenta:"color: magenta;",gray:"color: gray;"},formatter=o=>supportColor()?i=>{if(Array.isArray(i)){const[d,u]=i;return[`%c${d.replace("%c","")}`,u?`${ansiToCss[o]}${u}`:`${ansiToCss[o]||""}`]}return[`%c${String(i).replace("%c","")}`,ansiToCss[o]||""]}:i=>[String(i)],bold=formatter("bold"),red=formatter("red"),green=formatter("green"),orange=formatter("orange"),dodgerblue=formatter("dodgerblue"),magenta=formatter("magenta");formatter("gray");function getLabel(o,i,d){let u=[""];if("label"in i)if(u=[(o!=="log"?d[o]:void 0)||i.label||""],i.color){const S=i.color(u[0]);Array.isArray(S)&&S.length===2?u=bold([S[0],S[1]]):u=bold(S[0]||"")}else u=bold(u[0]);return u=u.filter(Boolean),u}function finalLog(o,i,d,u){o.length?Array.isArray(u)?console.log(...o,...u,...d):console.log(...o,i,...d):Array.isArray(u)?console.log(...u):console.log(i,...d)}var LOG_LEVEL={error:0,warn:1,info:2,log:3,verbose:4},errorStackRegExp=/at\s.*:\d+:\d+[\s\)]*$/,anonymousErrorStackRegExp=/at\s.*\(<anonymous>\)$/,isErrorStackMessage=o=>errorStackRegExp.test(o)||anonymousErrorStackRegExp.test(o);function validateOptions(o){const i={...o};if(o.labels&&typeof o.labels!="object")throw new Error("Labels must be an object");if(o.level&&typeof o.level!="string")throw new Error("Level must be a string");return i}var createLogger$1=(o={},{getLabel:i,handleError:d,finalLog:u,greet:p,LOG_TYPES:S})=>{const b=validateOptions(o);let m=b.level||"log",R=b.labels||{},T=(L,O,...G)=>{if(LOG_LEVEL[S[L].level]>LOG_LEVEL[m])return;if(O==null)return console.log();let Y=S[L],V="";const le=i(L,Y,R);if(O instanceof Error)if(O.stack){let[Z,...B]=O.stack.split(`
|
|
2
|
+
`);Z.startsWith("Error: ")&&(Z=Z.slice(7)),V=`${Z}
|
|
3
|
+
${d(B.join(`
|
|
4
|
+
`))}`}else V=O.message;else Y.level==="error"&&typeof O=="string"?V=O.split(`
|
|
5
|
+
`).map(B=>isErrorStackMessage(B)?d(B):B).join(`
|
|
6
|
+
`):V=`${O}`;u(le,V,G,O)},w={greet:L=>T("log",p(L))};return Object.keys(S).forEach(L=>{w[L]=(...O)=>T(L,...O)}),Object.defineProperty(w,"level",{get:()=>m,set(L){m=L}}),Object.defineProperty(w,"labels",{get:()=>R,set(L){R=L}}),w.override=L=>{Object.assign(w,L)},w},startColor=[189,255,243],endColor=[74,194,154],isWord=o=>!/[\s\n]/.test(o);function gradient(o){if(!supportColor())return[o];const i=[...o],d=i.filter(isWord),u=d.length-1;if(u===0)return console.log(`%c${o}`,`color: rgb(${startColor.join(",")}); font-weight: bold;`),[o];let p="",S=[];return i.forEach(b=>{if(isWord(b)){const m=d.indexOf(b)/u,R=Math.round(startColor[0]+(endColor[0]-startColor[0])*m),T=Math.round(startColor[1]+(endColor[1]-startColor[1])*m),w=Math.round(startColor[2]+(endColor[2]-startColor[2])*m);p+=`%c${b}`,S.push(`color: rgb(${R},${T},${w}); font-weight: bold;`)}else p+=b}),[p,...S]}var LOG_TYPES={error:{label:"error",level:"error",color:red},warn:{label:"warn",level:"warn",color:orange},info:{label:"info",level:"info",color:dodgerblue},start:{label:"start",level:"info",color:dodgerblue},ready:{label:"ready",level:"info",color:green},success:{label:"success",level:"info",color:green},log:{level:"log"},debug:{label:"debug",level:"verbose",color:magenta}};function createLogger2(o={}){return createLogger$1(o,{handleError:i=>i,getLabel,finalLog,LOG_TYPES,greet:i=>gradient(i)})}var logger$1=createLogger2(),polyfills_cjs={};function _extends$1(){return _extends$1=Object.assign||function(i){for(var d=1;d<arguments.length;d++){var u=arguments[d];for(var p in u)Object.prototype.hasOwnProperty.call(u,p)&&(i[p]=u[p])}return i},_extends$1.apply(this,arguments)}polyfills_cjs._extends=_extends$1;var define_process_env_default={},isomorphicRslog=browser,polyfills=polyfills_cjs;const FederationModuleManifest="federation-manifest.json",MANIFEST_EXT=".json",BROWSER_LOG_KEY="FEDERATION_DEBUG",BROWSER_LOG_VALUE="1",NameTransformSymbol={AT:"@",HYPHEN:"-",SLASH:"/"},NameTransformMap={[NameTransformSymbol.AT]:"scope_",[NameTransformSymbol.HYPHEN]:"_",[NameTransformSymbol.SLASH]:"__"},EncodedNameTransformMap={[NameTransformMap[NameTransformSymbol.AT]]:NameTransformSymbol.AT,[NameTransformMap[NameTransformSymbol.HYPHEN]]:NameTransformSymbol.HYPHEN,[NameTransformMap[NameTransformSymbol.SLASH]]:NameTransformSymbol.SLASH},SEPARATOR=":",ManifestFileName="mf-manifest.json",StatsFileName="mf-stats.json",MFModuleType={NPM:"npm",APP:"app"},MODULE_DEVTOOL_IDENTIFIER="__MF_DEVTOOLS_MODULE_INFO__",ENCODE_NAME_PREFIX="ENCODE_NAME_PREFIX",TEMP_DIR=".federation",MFPrefetchCommon={identifier:"MFDataPrefetch",globalKey:"__PREFETCH__",library:"mf-data-prefetch",exportsKey:"__PREFETCH_EXPORTS__",fileName:"bootstrap.js"};var ContainerPlugin=Object.freeze({__proto__:null}),ContainerReferencePlugin=Object.freeze({__proto__:null}),ModuleFederationPlugin=Object.freeze({__proto__:null}),SharePlugin=Object.freeze({__proto__:null});function isBrowserEnv(){return typeof window<"u"}function isBrowserDebug(){try{if(isBrowserEnv()&&window.localStorage)return localStorage.getItem(BROWSER_LOG_KEY)===BROWSER_LOG_VALUE}catch{return!1}return!1}function isDebugMode(){return typeof process<"u"&&define_process_env_default&&define_process_env_default.FEDERATION_DEBUG?!!define_process_env_default.FEDERATION_DEBUG:typeof FEDERATION_DEBUG<"u"&&FEDERATION_DEBUG?!0:isBrowserDebug()}const getProcessEnv=function(){return typeof process<"u"&&define_process_env_default?define_process_env_default:{}},PREFIX="[ Module Federation ]";function setDebug(o){isDebugMode()&&(o.level="verbose")}function setPrefix(o,i){o.labels={warn:`${i} Warn`,error:`${i} Error`,success:`${i} Success`,info:`${i} Info`,ready:`${i} Ready`,debug:`${i} Debug`}}function createLogger(o){const i=isomorphicRslog.createLogger({labels:{warn:`${PREFIX} Warn`,error:`${PREFIX} Error`,success:`${PREFIX} Success`,info:`${PREFIX} Info`,ready:`${PREFIX} Ready`,debug:`${PREFIX} Debug`}});return setDebug(i),setPrefix(i,o),i}const logger=createLogger(PREFIX),LOG_CATEGORY="[ Federation Runtime ]",parseEntry=(o,i,d=SEPARATOR)=>{const u=o.split(d),p=getProcessEnv().NODE_ENV==="development"&&i,S="*",b=m=>m.startsWith("http")||m.includes(MANIFEST_EXT);if(u.length>=2){let[m,...R]=u;o.startsWith(d)&&(R=[p||u.slice(-1)[0]],m=u.slice(0,-1).join(d));let T=p||R.join(d);return b(T)?{name:m,entry:T}:{name:m,version:T||S}}else if(u.length===1){const[m]=u;return p&&b(p)?{name:m,entry:p}:{name:m,version:p||S}}else throw`Invalid entry value: ${o}`},composeKeyWithSeparator=function(...o){return o.length?o.reduce((i,d)=>d?i?`${i}${SEPARATOR}${d}`:d:i,""):""},encodeName=function(o,i="",d=!1){try{const u=d?".js":"";return`${i}${o.replace(new RegExp(`${NameTransformSymbol.AT}`,"g"),NameTransformMap[NameTransformSymbol.AT]).replace(new RegExp(`${NameTransformSymbol.HYPHEN}`,"g"),NameTransformMap[NameTransformSymbol.HYPHEN]).replace(new RegExp(`${NameTransformSymbol.SLASH}`,"g"),NameTransformMap[NameTransformSymbol.SLASH])}${u}`}catch(u){throw u}},decodeName=function(o,i,d){try{let u=o;if(i){if(!u.startsWith(i))return u;u=u.replace(new RegExp(i,"g"),"")}return u=u.replace(new RegExp(`${NameTransformMap[NameTransformSymbol.AT]}`,"g"),EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.AT]]).replace(new RegExp(`${NameTransformMap[NameTransformSymbol.SLASH]}`,"g"),EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.SLASH]]).replace(new RegExp(`${NameTransformMap[NameTransformSymbol.HYPHEN]}`,"g"),EncodedNameTransformMap[NameTransformMap[NameTransformSymbol.HYPHEN]]),d&&(u=u.replace(".js","")),u}catch(u){throw u}},generateExposeFilename=(o,i)=>{if(!o)return"";let d=o;return d==="."&&(d="default_export"),d.startsWith("./")&&(d=d.replace("./","")),encodeName(d,"__federation_expose_",i)},generateShareFilename=(o,i)=>o?encodeName(o,"__federation_shared_",i):"",getResourceUrl=(o,i)=>{if("getPublicPath"in o){let d;return o.getPublicPath.startsWith("function")?d=new Function("return "+o.getPublicPath)()():d=new Function(o.getPublicPath)(),`${d}${i}`}else return"publicPath"in o?`${o.publicPath}${i}`:(console.warn("Cannot get resource URL. If in debug mode, please ignore.",o,i),"")},assert=(o,i)=>{o||error(i)},error=o=>{throw new Error(`${LOG_CATEGORY}: ${o}`)},warn=o=>{console.warn(`${LOG_CATEGORY}: ${o}`)};function safeToString(o){try{return JSON.stringify(o,null,2)}catch{return""}}const VERSION_PATTERN_REGEXP=/^([\d^=v<>~]|[*xX]$)/;function isRequiredVersion(o){return VERSION_PATTERN_REGEXP.test(o)}const simpleJoinRemoteEntry=(o,i)=>{if(!o)return i;const u=(p=>{if(p===".")return"";if(p.startsWith("./"))return p.replace("./","");if(p.startsWith("/")){const S=p.slice(1);return S.endsWith("/")?S.slice(0,-1):S}return p})(o);return u?u.endsWith("/")?`${u}${i}`:`${u}/${i}`:i};function inferAutoPublicPath(o){return o.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/")}function generateSnapshotFromManifest(o,i={}){var d,u;const{remotes:p={},overrides:S={},version:b}=i;let m;const R=()=>"publicPath"in o.metaData?o.metaData.publicPath==="auto"&&b?inferAutoPublicPath(b):o.metaData.publicPath:o.metaData.getPublicPath,T=Object.keys(S);let w={};if(!Object.keys(p).length){var L;w=((L=o.remotes)==null?void 0:L.reduce((v,x)=>{let k;const te=x.federationContainerName;return T.includes(te)?k=S[te]:"version"in x?k=x.version:k=x.entry,v[te]={matchedVersion:k},v},{}))||{}}Object.keys(p).forEach(v=>w[v]={matchedVersion:T.includes(v)?S[v]:p[v]});const{remoteEntry:{path:O,name:G,type:Y},types:V,buildInfo:{buildVersion:le},globalName:Z,ssrRemoteEntry:B}=o.metaData,{exposes:ce}=o;let ee={version:b||"",buildVersion:le,globalName:Z,remoteEntry:simpleJoinRemoteEntry(O,G),remoteEntryType:Y,remoteTypes:simpleJoinRemoteEntry(V.path,V.name),remoteTypesZip:V.zip||"",remoteTypesAPI:V.api||"",remotesInfo:w,shared:o==null?void 0:o.shared.map(v=>({assets:v.assets,sharedName:v.name,version:v.version})),modules:ce==null?void 0:ce.map(v=>({moduleName:v.name,modulePath:v.path,assets:v.assets}))};if((d=o.metaData)!=null&&d.prefetchInterface){const v=o.metaData.prefetchInterface;ee=polyfills._extends({},ee,{prefetchInterface:v})}if((u=o.metaData)!=null&&u.prefetchEntry){const{path:v,name:x,type:k}=o.metaData.prefetchEntry;ee=polyfills._extends({},ee,{prefetchEntry:simpleJoinRemoteEntry(v,x),prefetchEntryType:k})}if("publicPath"in o.metaData?m=polyfills._extends({},ee,{publicPath:R()}):m=polyfills._extends({},ee,{getPublicPath:R()}),B){const v=simpleJoinRemoteEntry(B.path,B.name);m.ssrRemoteEntry=v,m.ssrRemoteEntryType=B.type||"commonjs-module"}return m}function isManifestProvider(o){return!!("remoteEntry"in o&&o.remoteEntry.includes(MANIFEST_EXT))}async function safeWrapper(o,i){try{return await o()}catch(d){!i&&warn(d);return}}function isStaticResourcesEqual(o,i){const d=/^(https?:)?\/\//i,u=o.replace(d,"").replace(/\/$/,""),p=i.replace(d,"").replace(/\/$/,"");return u===p}function createScript(o){let i=null,d=!0,u=2e4,p;const S=document.getElementsByTagName("script");for(let m=0;m<S.length;m++){const R=S[m],T=R.getAttribute("src");if(T&&isStaticResourcesEqual(T,o.url)){i=R,d=!1;break}}if(!i){const m=o.attrs;i=document.createElement("script"),i.type=(m==null?void 0:m.type)==="module"?"module":"text/javascript";let R;o.createScriptHook&&(R=o.createScriptHook(o.url,o.attrs),R instanceof HTMLScriptElement?i=R:typeof R=="object"&&("script"in R&&R.script&&(i=R.script),"timeout"in R&&R.timeout&&(u=R.timeout))),i.src||(i.src=o.url),m&&!R&&Object.keys(m).forEach(T=>{i&&(T==="async"||T==="defer"?i[T]=m[T]:i.getAttribute(T)||i.setAttribute(T,m[T]))})}const b=async(m,R)=>{clearTimeout(p);const T=()=>{(R==null?void 0:R.type)==="error"?o!=null&&o.onErrorCallback&&(o==null||o.onErrorCallback(R)):o!=null&&o.cb&&(o==null||o.cb())};if(i&&(i.onerror=null,i.onload=null,safeWrapper(()=>{const{needDeleteScript:w=!0}=o;w&&i!=null&&i.parentNode&&i.parentNode.removeChild(i)}),m&&typeof m=="function")){const w=m(R);if(w instanceof Promise){const L=await w;return T(),L}return T(),w}T()};return i.onerror=b.bind(null,i.onerror),i.onload=b.bind(null,i.onload),p=setTimeout(()=>{b(null,new Error(`Remote script "${o.url}" time-outed.`))},u),{script:i,needAttach:d}}function createLink(o){let i=null,d=!0;const u=document.getElementsByTagName("link");for(let S=0;S<u.length;S++){const b=u[S],m=b.getAttribute("href"),R=b.getAttribute("ref");if(m&&isStaticResourcesEqual(m,o.url)&&R===o.attrs.ref){i=b,d=!1;break}}if(!i){i=document.createElement("link"),i.setAttribute("href",o.url);let S;const b=o.attrs;o.createLinkHook&&(S=o.createLinkHook(o.url,b),S instanceof HTMLLinkElement&&(i=S)),b&&!S&&Object.keys(b).forEach(m=>{i&&!i.getAttribute(m)&&i.setAttribute(m,b[m])})}const p=(S,b)=>{const m=()=>{(b==null?void 0:b.type)==="error"?o!=null&&o.onErrorCallback&&(o==null||o.onErrorCallback(b)):o!=null&&o.cb&&(o==null||o.cb())};if(i&&(i.onerror=null,i.onload=null,safeWrapper(()=>{const{needDeleteLink:R=!0}=o;R&&i!=null&&i.parentNode&&i.parentNode.removeChild(i)}),S)){const R=S(b);return m(),R}m()};return i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),{link:i,needAttach:d}}function loadScript(o,i){const{attrs:d={},createScriptHook:u}=i;return new Promise((p,S)=>{const{script:b,needAttach:m}=createScript({url:o,cb:p,onErrorCallback:S,attrs:polyfills._extends({fetchpriority:"high"},d),createScriptHook:u,needDeleteScript:!0});m&&document.head.appendChild(b)})}function importNodeModule(o){if(!o)throw new Error("import specifier is required");return new Function("name","return import(name)")(o).then(d=>d).catch(d=>{throw console.error(`Error importing module ${o}:`,d),d})}const loadNodeFetch=async()=>{const o=await importNodeModule("node-fetch");return o.default||o},lazyLoaderHookFetch=async(o,i,d)=>{const p=await((S,b)=>d.lifecycle.fetch.emit(S,b))(o,i||{});return!p||!(p instanceof Response)?(typeof fetch>"u"?await loadNodeFetch():fetch)(o,i||{}):p};function createScriptNode(url,cb,attrs,loaderHook){if(loaderHook!=null&&loaderHook.createScriptHook){const o=loaderHook.createScriptHook(url);o&&typeof o=="object"&&"url"in o&&(url=o.url)}let urlObj;try{urlObj=new URL(url)}catch(o){console.error("Error constructing URL:",o),cb(new Error(`Invalid URL: ${o}`));return}const getFetch=async()=>loaderHook!=null&&loaderHook.fetch?(o,i)=>lazyLoaderHookFetch(o,i,loaderHook):typeof fetch>"u"?loadNodeFetch():fetch,handleScriptFetch=async(f,urlObj)=>{try{var _vm_constants;const res=await f(urlObj.href),data=await res.text(),[path,vm]=await Promise.all([importNodeModule("path"),importNodeModule("vm")]),scriptContext={exports:{},module:{exports:{}}},urlDirname=urlObj.pathname.split("/").slice(0,-1).join("/"),filename=path.basename(urlObj.pathname);var _vm_constants_USE_MAIN_CONTEXT_DEFAULT_LOADER;const script=new vm.Script(`(function(exports, module, require, __dirname, __filename) {${data}
|
|
7
|
+
})`,{filename,importModuleDynamically:(_vm_constants_USE_MAIN_CONTEXT_DEFAULT_LOADER=(_vm_constants=vm.constants)==null?void 0:_vm_constants.USE_MAIN_CONTEXT_DEFAULT_LOADER)!=null?_vm_constants_USE_MAIN_CONTEXT_DEFAULT_LOADER:importNodeModule});script.runInThisContext()(scriptContext.exports,scriptContext.module,eval("require"),urlDirname,filename);const exportedInterface=scriptContext.module.exports||scriptContext.exports;if(attrs&&exportedInterface&&attrs.globalName){const o=exportedInterface[attrs.globalName]||exportedInterface;cb(void 0,o);return}cb(void 0,exportedInterface)}catch(o){cb(o instanceof Error?o:new Error(`Script execution error: ${o}`))}};getFetch().then(async o=>{if((attrs==null?void 0:attrs.type)==="esm"||(attrs==null?void 0:attrs.type)==="module")return loadModule(urlObj.href,{fetch:o,vm:await importNodeModule("vm")}).then(async i=>{await i.evaluate(),cb(void 0,i.namespace)}).catch(i=>{cb(i instanceof Error?i:new Error(`Script execution error: ${i}`))});handleScriptFetch(o,urlObj)}).catch(o=>{cb(o)})}function loadScriptNode(o,i){return new Promise((d,u)=>{createScriptNode(o,(p,S)=>{if(p)u(p);else{var b,m;const R=(i==null||(b=i.attrs)==null?void 0:b.globalName)||`__FEDERATION_${i==null||(m=i.attrs)==null?void 0:m.name}:custom__`,T=globalThis[R]=S;d(T)}},i.attrs,i.loaderHook)})}async function loadModule(o,i){const{fetch:d,vm:u}=i,S=await(await d(o)).text(),b=new u.SourceTextModule(S,{importModuleDynamically:async(m,R)=>{const T=new URL(m,o).href;return loadModule(T,i)}});return await b.link(async m=>{const R=new URL(m,o).href;return await loadModule(R,i)}),b}function normalizeOptions(o,i,d){return function(u){if(u===!1)return!1;if(typeof u>"u")return o?i:!1;if(u===!0)return i;if(u&&typeof u=="object")return polyfills._extends({},i,u);throw new Error(`Unexpected type for \`${d}\`, expect boolean/undefined/object, got: ${typeof u}`)}}index_cjs$1.BROWSER_LOG_KEY=BROWSER_LOG_KEY;index_cjs$1.BROWSER_LOG_VALUE=BROWSER_LOG_VALUE;index_cjs$1.ENCODE_NAME_PREFIX=ENCODE_NAME_PREFIX;index_cjs$1.EncodedNameTransformMap=EncodedNameTransformMap;index_cjs$1.FederationModuleManifest=FederationModuleManifest;index_cjs$1.MANIFEST_EXT=MANIFEST_EXT;index_cjs$1.MFModuleType=MFModuleType;index_cjs$1.MFPrefetchCommon=MFPrefetchCommon;index_cjs$1.MODULE_DEVTOOL_IDENTIFIER=MODULE_DEVTOOL_IDENTIFIER;index_cjs$1.ManifestFileName=ManifestFileName;index_cjs$1.NameTransformMap=NameTransformMap;index_cjs$1.NameTransformSymbol=NameTransformSymbol;index_cjs$1.SEPARATOR=SEPARATOR;index_cjs$1.StatsFileName=StatsFileName;index_cjs$1.TEMP_DIR=TEMP_DIR;index_cjs$1.assert=assert;index_cjs$1.composeKeyWithSeparator=composeKeyWithSeparator;index_cjs$1.containerPlugin=ContainerPlugin;index_cjs$1.containerReferencePlugin=ContainerReferencePlugin;index_cjs$1.createLink=createLink;index_cjs$1.createLogger=createLogger;index_cjs$1.createScript=createScript;index_cjs$1.createScriptNode=createScriptNode;index_cjs$1.decodeName=decodeName;index_cjs$1.encodeName=encodeName;index_cjs$1.error=error;index_cjs$1.generateExposeFilename=generateExposeFilename;index_cjs$1.generateShareFilename=generateShareFilename;index_cjs$1.generateSnapshotFromManifest=generateSnapshotFromManifest;index_cjs$1.getProcessEnv=getProcessEnv;index_cjs$1.getResourceUrl=getResourceUrl;index_cjs$1.inferAutoPublicPath=inferAutoPublicPath;index_cjs$1.isBrowserEnv=isBrowserEnv;index_cjs$1.isDebugMode=isDebugMode;index_cjs$1.isManifestProvider=isManifestProvider;index_cjs$1.isRequiredVersion=isRequiredVersion;index_cjs$1.isStaticResourcesEqual=isStaticResourcesEqual;index_cjs$1.loadScript=loadScript;index_cjs$1.loadScriptNode=loadScriptNode;index_cjs$1.logger=logger;index_cjs$1.moduleFederationPlugin=ModuleFederationPlugin;index_cjs$1.normalizeOptions=normalizeOptions;index_cjs$1.parseEntry=parseEntry;index_cjs$1.safeToString=safeToString;index_cjs$1.safeWrapper=safeWrapper;index_cjs$1.sharePlugin=SharePlugin;index_cjs$1.simpleJoinRemoteEntry=simpleJoinRemoteEntry;index_cjs$1.warn=warn;var index_cjs={};const RUNTIME_001="RUNTIME-001",RUNTIME_002="RUNTIME-002",RUNTIME_003="RUNTIME-003",RUNTIME_004="RUNTIME-004",RUNTIME_005="RUNTIME-005",RUNTIME_006="RUNTIME-006",RUNTIME_007="RUNTIME-007",RUNTIME_008="RUNTIME-008",TYPE_001="TYPE-001",BUILD_001="BUILD-001",getDocsUrl=o=>`https://module-federation.io/guide/troubleshooting/${o.split("-")[0].toLowerCase()}/${o}`,getShortErrorMsg=(o,i,d,u)=>{const p=[`${[i[o]]} #${o}`];return d&&p.push(`args: ${JSON.stringify(d)}`),p.push(getDocsUrl(o)),u&&p.push(`Original Error Message:
|
|
8
|
+
${u}`),p.join(`
|
|
9
|
+
`)};function _extends(){return _extends=Object.assign||function(i){for(var d=1;d<arguments.length;d++){var u=arguments[d];for(var p in u)Object.prototype.hasOwnProperty.call(u,p)&&(i[p]=u[p])}return i},_extends.apply(this,arguments)}const runtimeDescMap={[RUNTIME_001]:"Failed to get remoteEntry exports.",[RUNTIME_002]:'The remote entry interface does not contain "init"',[RUNTIME_003]:"Failed to get manifest.",[RUNTIME_004]:"Failed to locate remote.",[RUNTIME_005]:"Invalid loadShareSync function call from bundler runtime",[RUNTIME_006]:"Invalid loadShareSync function call from runtime",[RUNTIME_007]:"Failed to get remote snapshot.",[RUNTIME_008]:"Failed to load script resources."},typeDescMap={[TYPE_001]:"Failed to generate type declaration."},buildDescMap={[BUILD_001]:"Failed to find expose module."},errorDescMap=_extends({},runtimeDescMap,typeDescMap,buildDescMap);index_cjs.BUILD_001=BUILD_001;index_cjs.RUNTIME_001=RUNTIME_001;index_cjs.RUNTIME_002=RUNTIME_002;index_cjs.RUNTIME_003=RUNTIME_003;index_cjs.RUNTIME_004=RUNTIME_004;index_cjs.RUNTIME_005=RUNTIME_005;index_cjs.RUNTIME_006=RUNTIME_006;index_cjs.RUNTIME_007=RUNTIME_007;index_cjs.RUNTIME_008=RUNTIME_008;index_cjs.TYPE_001=TYPE_001;index_cjs.buildDescMap=buildDescMap;index_cjs.errorDescMap=errorDescMap;index_cjs.getShortErrorMsg=getShortErrorMsg;index_cjs.runtimeDescMap=runtimeDescMap;index_cjs.typeDescMap=typeDescMap;(function(o){var i=polyfills_cjs$1,d=index_cjs$1,u=index_cjs;const p="[ Federation Runtime ]",S=d.createLogger(p);function b(t,e){t||m(e)}function m(t){throw t instanceof Error?(t.message=`${p}: ${t.message}`,t):new Error(`${p}: ${t}`)}function R(t){t instanceof Error&&(t.message=`${p}: ${t.message}`),S.warn(t)}function T(t,e){return t.findIndex(r=>r===e)===-1&&t.push(e),t}function w(t){return"version"in t&&t.version?`${t.name}:${t.version}`:"entry"in t&&t.entry?`${t.name}:${t.entry}`:`${t.name}`}function L(t){return typeof t.entry<"u"}function O(t){return!t.entry.includes(".json")&&t.entry.includes(".js")}async function G(t,e){try{return await t()}catch(r){!e&&R(r);return}}function Y(t){return t&&typeof t=="object"}const V=Object.prototype.toString;function le(t){return V.call(t)==="[object Object]"}function Z(t,e){const r=/^(https?:)?\/\//i,n=t.replace(r,"").replace(/\/$/,""),s=e.replace(r,"").replace(/\/$/,"");return n===s}function B(t){return Array.isArray(t)?t:[t]}function ce(t){const e={url:"",type:"global",globalName:""};return d.isBrowserEnv()?"remoteEntry"in t?{url:t.remoteEntry,type:t.remoteEntryType,globalName:t.globalName}:e:"ssrRemoteEntry"in t?{url:t.ssrRemoteEntry||e.url,type:t.ssrRemoteEntryType||e.type,globalName:t.globalName}:e}const ee=(t,e)=>{let r;return t.endsWith("/")?r=t.slice(0,-1):r=t,e.startsWith(".")&&(e=e.slice(1)),r=r+e,r},v=typeof globalThis=="object"?globalThis:window,x=(()=>{try{return document.defaultView}catch{return v}})(),k=x;function te(t,e,r){Object.defineProperty(t,e,{value:r,configurable:!1,writable:!0})}function ye(t,e){return Object.hasOwnProperty.call(t,e)}ye(v,"__GLOBAL_LOADING_REMOTE_ENTRY__")||te(v,"__GLOBAL_LOADING_REMOTE_ENTRY__",{});const re=v.__GLOBAL_LOADING_REMOTE_ENTRY__;function xe(t){var e,r,n,s,c,a;ye(t,"__VMOK__")&&!ye(t,"__FEDERATION__")&&te(t,"__FEDERATION__",t.__VMOK__),ye(t,"__FEDERATION__")||(te(t,"__FEDERATION__",{__GLOBAL_PLUGIN__:[],__INSTANCES__:[],moduleInfo:{},__SHARE__:{},__MANIFEST_LOADING__:{},__PRELOADED_MAP__:new Map}),te(t,"__VMOK__",t.__FEDERATION__));var l;(l=(e=t.__FEDERATION__).__GLOBAL_PLUGIN__)!=null||(e.__GLOBAL_PLUGIN__=[]);var h;(h=(r=t.__FEDERATION__).__INSTANCES__)!=null||(r.__INSTANCES__=[]);var _;(_=(n=t.__FEDERATION__).moduleInfo)!=null||(n.moduleInfo={});var g;(g=(s=t.__FEDERATION__).__SHARE__)!=null||(s.__SHARE__={});var y;(y=(c=t.__FEDERATION__).__MANIFEST_LOADING__)!=null||(c.__MANIFEST_LOADING__={});var E;(E=(a=t.__FEDERATION__).__PRELOADED_MAP__)!=null||(a.__PRELOADED_MAP__=new Map)}xe(v),xe(x);function je(){v.__FEDERATION__.__GLOBAL_PLUGIN__=[],v.__FEDERATION__.__INSTANCES__=[],v.__FEDERATION__.moduleInfo={},v.__FEDERATION__.__SHARE__={},v.__FEDERATION__.__MANIFEST_LOADING__={},Object.keys(re).forEach(t=>{delete re[t]})}function Ce(t){v.__FEDERATION__.__INSTANCES__.push(t)}function ke(){return v.__FEDERATION__.__DEBUG_CONSTRUCTOR__}function He(t,e=d.isDebugMode()){e&&(v.__FEDERATION__.__DEBUG_CONSTRUCTOR__=t,v.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__="0.6.20")}function ne(t,e){if(typeof e=="string"){if(t[e])return{value:t[e],key:e};{const n=Object.keys(t);for(const s of n){const[c,a]=s.split(":"),l=`${c}:${e}`,h=t[l];if(h)return{value:h,key:l}}return{value:void 0,key:e}}}else throw new Error("key must be string")}const ge=()=>x.__FEDERATION__.moduleInfo,Ue=(t,e)=>{const r=w(t),n=ne(e,r).value;if(n&&!n.version&&"version"in t&&t.version&&(n.version=t.version),n)return n;if("version"in t&&t.version){const{version:s}=t,c=i._object_without_properties_loose(t,["version"]),a=w(c),l=ne(x.__FEDERATION__.moduleInfo,a).value;if((l==null?void 0:l.version)===s)return l}},ue=t=>Ue(t,x.__FEDERATION__.moduleInfo),$e=(t,e)=>{const r=w(t);return x.__FEDERATION__.moduleInfo[r]=e,x.__FEDERATION__.moduleInfo},Ne=t=>(x.__FEDERATION__.moduleInfo=i._extends({},x.__FEDERATION__.moduleInfo,t),()=>{const e=Object.keys(t);for(const r of e)delete x.__FEDERATION__.moduleInfo[r]}),fe=(t,e)=>{const r=e||`__FEDERATION_${t}:custom__`,n=v[r];return{remoteEntryKey:r,entryExports:n}},Ge=t=>{const{__GLOBAL_PLUGIN__:e}=x.__FEDERATION__;t.forEach(r=>{e.findIndex(n=>n.name===r.name)===-1?e.push(r):R(`The plugin ${r.name} has been registered.`)})},Be=()=>x.__FEDERATION__.__GLOBAL_PLUGIN__,Ve=t=>v.__FEDERATION__.__PRELOADED_MAP__.get(t),We=t=>v.__FEDERATION__.__PRELOADED_MAP__.set(t,!0),de="default",Xe="global",Ke="[0-9A-Za-z-]+",Ie=`(?:\\+(${Ke}(?:\\.${Ke})*))`,he="0|[1-9]\\d*",be="[0-9]+",qe="\\d*[a-zA-Z-][a-zA-Z0-9-]*",Ye=`(?:${be}|${qe})`,dt=`(?:-?(${Ye}(?:\\.${Ye})*))`,ze=`(?:${he}|${qe})`,Je=`(?:-(${ze}(?:\\.${ze})*))`,Te=`${he}|x|X|\\*`,ie=`[v=\\s]*(${Te})(?:\\.(${Te})(?:\\.(${Te})(?:${Je})?${Ie}?)?)?`,ht=`^\\s*(${ie})\\s+-\\s+(${ie})\\s*$`,_t=`[v=\\s]*${`(${be})\\.(${be})\\.(${be})`}${dt}?${Ie}?`,Oe="((?:<|>)?=?)",pt=`(\\s*)${Oe}\\s*(${_t}|${ie})`,Ze="(?:~>?)",mt=`(\\s*)${Ze}\\s+`,Qe="(?:\\^)",Et=`(\\s*)${Qe}\\s+`,yt="(<|>)?=?\\s*\\*",gt=`^${Qe}${ie}$`,bt=`v?${`(${he})\\.(${he})\\.(${he})`}${Je}?${Ie}?`,St=`^${Ze}${ie}$`,Rt=`^${Oe}\\s*${ie}$`,vt=`^${Oe}\\s*(${bt})$|^$`,$t="^\\s*>=\\s*0.0.0\\s*$";function z(t){return new RegExp(t)}function j(t){return!t||t.toLowerCase()==="x"||t==="*"}function et(...t){return e=>t.reduce((r,n)=>n(r),e)}function tt(t){return t.match(z(vt))}function rt(t,e,r,n){const s=`${t}.${e}.${r}`;return n?`${s}-${n}`:s}function Nt(t){return t.replace(z(ht),(e,r,n,s,c,a,l,h,_,g,y,E)=>(j(n)?r="":j(s)?r=`>=${n}.0.0`:j(c)?r=`>=${n}.${s}.0`:r=`>=${r}`,j(_)?h="":j(g)?h=`<${Number(_)+1}.0.0-0`:j(y)?h=`<${_}.${Number(g)+1}.0-0`:E?h=`<=${_}.${g}.${y}-${E}`:h=`<=${h}`,`${r} ${h}`.trim()))}function It(t){return t.replace(z(pt),"$1$2$3")}function Tt(t){return t.replace(z(mt),"$1~")}function Ot(t){return t.replace(z(Et),"$1^")}function Mt(t){return t.trim().split(/\s+/).map(e=>e.replace(z(gt),(r,n,s,c,a)=>j(n)?"":j(s)?`>=${n}.0.0 <${Number(n)+1}.0.0-0`:j(c)?n==="0"?`>=${n}.${s}.0 <${n}.${Number(s)+1}.0-0`:`>=${n}.${s}.0 <${Number(n)+1}.0.0-0`:a?n==="0"?s==="0"?`>=${n}.${s}.${c}-${a} <${n}.${s}.${Number(c)+1}-0`:`>=${n}.${s}.${c}-${a} <${n}.${Number(s)+1}.0-0`:`>=${n}.${s}.${c}-${a} <${Number(n)+1}.0.0-0`:n==="0"?s==="0"?`>=${n}.${s}.${c} <${n}.${s}.${Number(c)+1}-0`:`>=${n}.${s}.${c} <${n}.${Number(s)+1}.0-0`:`>=${n}.${s}.${c} <${Number(n)+1}.0.0-0`)).join(" ")}function Pt(t){return t.trim().split(/\s+/).map(e=>e.replace(z(St),(r,n,s,c,a)=>j(n)?"":j(s)?`>=${n}.0.0 <${Number(n)+1}.0.0-0`:j(c)?`>=${n}.${s}.0 <${n}.${Number(s)+1}.0-0`:a?`>=${n}.${s}.${c}-${a} <${n}.${Number(s)+1}.0-0`:`>=${n}.${s}.${c} <${n}.${Number(s)+1}.0-0`)).join(" ")}function At(t){return t.split(/\s+/).map(e=>e.trim().replace(z(Rt),(r,n,s,c,a,l)=>{const h=j(s),_=h||j(c),g=_||j(a);return n==="="&&g&&(n=""),l="",h?n===">"||n==="<"?"<0.0.0-0":"*":n&&g?(_&&(c=0),a=0,n===">"?(n=">=",_?(s=Number(s)+1,c=0,a=0):(c=Number(c)+1,a=0)):n==="<="&&(n="<",_?s=Number(s)+1:c=Number(c)+1),n==="<"&&(l="-0"),`${n+s}.${c}.${a}${l}`):_?`>=${s}.0.0${l} <${Number(s)+1}.0.0-0`:g?`>=${s}.${c}.0${l} <${s}.${Number(c)+1}.0-0`:r})).join(" ")}function wt(t){return t.trim().replace(z(yt),"")}function Lt(t){return t.trim().replace(z($t),"")}function Se(t,e){return t=Number(t)||t,e=Number(e)||e,t>e?1:t===e?0:-1}function Dt(t,e){const{preRelease:r}=t,{preRelease:n}=e;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 s=0,c=r.length;s<=c;s++){const a=r[s],l=n[s];if(a!==l)return a===void 0&&l===void 0?0:a?l?Se(a,l):-1:1}return 0}function Re(t,e){return Se(t.major,e.major)||Se(t.minor,e.minor)||Se(t.patch,e.patch)||Dt(t,e)}function Me(t,e){return t.version===e.version}function Ft(t,e){switch(t.operator){case"":case"=":return Me(t,e);case">":return Re(t,e)<0;case">=":return Me(t,e)||Re(t,e)<0;case"<":return Re(t,e)>0;case"<=":return Me(t,e)||Re(t,e)>0;case void 0:return!0;default:return!1}}function xt(t){return et(Mt,Pt,At,wt)(t)}function jt(t){return et(Nt,It,Tt,Ot)(t.trim()).split(/\s+/).join(" ")}function _e(t,e){if(!t)return!1;const s=jt(e).split(" ").map(E=>xt(E)).join(" ").split(/\s+/).map(E=>Lt(E)),c=tt(t);if(!c)return!1;const[,a,,l,h,_,g]=c,y={version:rt(l,h,_,g),major:l,minor:h,patch:_,preRelease:g==null?void 0:g.split(".")};for(const E of s){const $=tt(E);if(!$)return!1;const[,I,,P,N,M,F]=$,A={operator:I,version:rt(P,N,M,F),major:P,minor:N,patch:M,preRelease:F==null?void 0:F.split(".")};if(!Ft(A,y))return!1}return!0}function Ct(t,e,r,n){let s;"get"in t?s=t.get:"lib"in t?s=()=>Promise.resolve(t.lib):s=()=>Promise.resolve(()=>{throw new Error(`Can not get shared '${r}'!`)}),t.strategy&&R('"shared.strategy is deprecated, please set in initOptions.shareStrategy instead!"');var c,a,l;return i._extends({deps:[],useIn:[],from:e,loading:null},t,{shareConfig:i._extends({requiredVersion:`^${t.version}`,singleton:!1,eager:!1,strictVersion:!1},t.shareConfig),get:s,loaded:t!=null&&t.loaded||"lib"in t?!0:void 0,version:(c=t.version)!=null?c:"0",scope:Array.isArray(t.scope)?t.scope:[(a=t.scope)!=null?a:"default"],strategy:((l=t.strategy)!=null?l:n)||"version-first"})}function nt(t,e){const r=e.shared||{},n=e.name,s=Object.keys(r).reduce((a,l)=>{const h=B(r[l]);return a[l]=a[l]||[],h.forEach(_=>{a[l].push(Ct(_,n,l,e.shareStrategy))}),a},{}),c=i._extends({},t.shared);return Object.keys(s).forEach(a=>{c[a]?s[a].forEach(l=>{c[a].find(_=>_.version===l.version)||c[a].push(l)}):c[a]=s[a]}),{shared:c,shareInfos:s}}function pe(t,e){const r=n=>{if(!Number.isNaN(Number(n))){const c=n.split(".");let a=n;for(let l=0;l<3-c.length;l++)a+=".0";return a}return n};return!!_e(r(t),`<=${r(e)}`)}const Pe=(t,e)=>{const r=e||function(n,s){return pe(n,s)};return Object.keys(t).reduce((n,s)=>!n||r(n,s)||n==="0"?s:n,0)},Ae=t=>!!t.loaded||typeof t.lib=="function",kt=t=>!!t.loading;function Ht(t,e,r){const n=t[e][r],s=function(c,a){return!Ae(n[c])&&pe(c,a)};return Pe(t[e][r],s)}function Ut(t,e,r){const n=t[e][r],s=function(c,a){const l=h=>Ae(h)||kt(h);return l(n[a])?l(n[c])?!!pe(c,a):!0:l(n[c])?!1:pe(c,a)};return Pe(t[e][r],s)}function Gt(t){return t==="loaded-first"?Ut:Ht}function oe(t,e,r,n){if(!t)return;const{shareConfig:s,scope:c=de,strategy:a}=r,l=Array.isArray(c)?c:[c];for(const h of l)if(s&&t[h]&&t[h][e]){const{requiredVersion:_}=s,y=Gt(a)(t,h,e),E=()=>{if(s.singleton){if(typeof _=="string"&&!_e(y,_)){const P=`Version ${y} from ${y&&t[h][e][y].from} of shared singleton module ${e} does not satisfy the requirement of ${r.from} which needs ${_})`;s.strictVersion?m(P):R(P)}return t[h][e][y]}else{if(_===!1||_==="*"||_e(y,_))return t[h][e][y];for(const[P,N]of Object.entries(t[h][e]))if(_e(P,_))return N}},$={shareScopeMap:t,scope:h,pkgName:e,version:y,GlobalFederation:k.__FEDERATION__,resolver:E};return(n.emit($)||$).resolver()}}function we(){return k.__FEDERATION__.__SHARE__}function ot(t){const{pkgName:e,extraOptions:r,shareInfos:n}=t,s=l=>{if(!l)return;const h={};l.forEach(y=>{h[y.version]=y});const g=Pe(h,function(y,E){return!Ae(h[y])&&pe(y,E)});return h[g]};var c;const a=(c=r==null?void 0:r.resolver)!=null?c:s;return Object.assign({},a(n[e]),r==null?void 0:r.customShareInfo)}var Bt={global:{Global:k,nativeGlobal:x,resetFederationGlobalInfo:je,setGlobalFederationInstance:Ce,getGlobalFederationConstructor:ke,setGlobalFederationConstructor:He,getInfoWithoutType:ne,getGlobalSnapshot:ge,getTargetSnapshotInfoByModuleInfo:Ue,getGlobalSnapshotInfoByModuleInfo:ue,setGlobalSnapshotInfoByModuleInfo:$e,addGlobalSnapshot:Ne,getRemoteEntryExports:fe,registerGlobalPlugins:Ge,getGlobalHostPlugins:Be,getPreloaded:Ve,setPreloaded:We},share:{getRegisteredShare:oe,getGlobalShareScope:we}};function Vt(){return typeof FEDERATION_BUILD_IDENTIFIER<"u"?FEDERATION_BUILD_IDENTIFIER:""}function st(t,e){for(const r of t){const n=e.startsWith(r.name);let s=e.replace(r.name,"");if(n){if(s.startsWith("/")){const l=r.name;return s=`.${s}`,{pkgNameOrAlias:l,expose:s,remote:r}}else if(s==="")return{pkgNameOrAlias:r.name,expose:".",remote:r}}const c=r.alias&&e.startsWith(r.alias);let a=r.alias&&e.replace(r.alias,"");if(r.alias&&c){if(a&&a.startsWith("/")){const l=r.alias;return a=`.${a}`,{pkgNameOrAlias:l,expose:a,remote:r}}else if(a==="")return{pkgNameOrAlias:r.alias,expose:".",remote:r}}}}function Wt(t,e){for(const r of t)if(e===r.name||r.alias&&e===r.alias)return r}function Xt(t,e){const r=Be();return r.length>0&&r.forEach(n=>{t!=null&&t.find(s=>s.name!==n.name)&&t.push(n)}),t&&t.length>0&&t.forEach(n=>{e.forEach(s=>{s.applyPlugin(n)})}),t}async function Kt({entry:t,remoteEntryExports:e}){return new Promise((r,n)=>{try{e?r(e):typeof FEDERATION_ALLOW_NEW_FUNCTION<"u"?new Function("callbacks",`import("${t}").then(callbacks[0]).catch(callbacks[1])`)([r,n]):import(t).then(r).catch(n)}catch(s){n(s)}})}async function qt({entry:t,remoteEntryExports:e}){return new Promise((r,n)=>{try{e?r(e):typeof __system_context__>"u"?System.import(t).then(r).catch(n):new Function("callbacks",`System.import("${t}").then(callbacks[0]).catch(callbacks[1])`)([r,n])}catch(s){n(s)}})}async function Yt({name:t,globalName:e,entry:r,loaderHook:n}){const{entryExports:s}=fe(t,e);return s||d.loadScript(r,{attrs:{},createScriptHook:(c,a)=>{const l=n.lifecycle.createScript.emit({url:c,attrs:a});if(l&&(l instanceof HTMLScriptElement||"script"in l||"timeout"in l))return l}}).then(()=>{const{remoteEntryKey:c,entryExports:a}=fe(t,e);return b(a,u.getShortErrorMsg(u.RUNTIME_001,u.runtimeDescMap,{remoteName:t,remoteEntryUrl:r,remoteEntryKey:c})),a}).catch(c=>{throw b(void 0,u.getShortErrorMsg(u.RUNTIME_008,u.runtimeDescMap,{remoteName:t,resourceUrl:r})),c})}async function zt({remoteInfo:t,remoteEntryExports:e,loaderHook:r}){const{entry:n,entryGlobalName:s,name:c,type:a}=t;switch(a){case"esm":case"module":return Kt({entry:n,remoteEntryExports:e});case"system":return qt({entry:n,remoteEntryExports:e});default:return Yt({entry:n,globalName:s,name:c,loaderHook:r})}}async function Jt({remoteInfo:t,loaderHook:e}){const{entry:r,entryGlobalName:n,name:s,type:c}=t,{entryExports:a}=fe(s,n);return a||d.loadScriptNode(r,{attrs:{name:s,globalName:n,type:c},loaderHook:{createScriptHook:(l,h={})=>{const _=e.lifecycle.createScript.emit({url:l,attrs:h});if(_&&"url"in _)return _}}}).then(()=>{const{remoteEntryKey:l,entryExports:h}=fe(s,n);return b(h,u.getShortErrorMsg(u.RUNTIME_001,u.runtimeDescMap,{remoteName:s,remoteEntryUrl:r,remoteEntryKey:l})),h}).catch(l=>{throw l})}function Le(t){const{entry:e,name:r}=t;return d.composeKeyWithSeparator(r,e)}async function me({origin:t,remoteEntryExports:e,remoteInfo:r}){const n=Le(r);if(e)return e;if(!re[n]){const s=t.remoteHandler.hooks.lifecycle.loadEntry,c=t.loaderHook;re[n]=s.emit({loaderHook:c,remoteInfo:r,remoteEntryExports:e}).then(a=>a||(d.isBrowserEnv()?zt({remoteInfo:r,remoteEntryExports:e,loaderHook:c}):Jt({remoteInfo:r,loaderHook:c})))}return re[n]}function ve(t){return i._extends({},t,{entry:"entry"in t?t.entry:"",type:t.type||Xe,entryGlobalName:t.entryGlobalName||t.name,shareScope:t.shareScope||de})}let De=class{async getEntry(){if(this.remoteEntryExports)return this.remoteEntryExports;let e;try{e=await me({origin:this.host,remoteInfo:this.remoteInfo,remoteEntryExports:this.remoteEntryExports})}catch{const n=Le(this.remoteInfo);e=await this.host.loaderHook.lifecycle.loadEntryError.emit({getRemoteEntry:me,origin:this.host,remoteInfo:this.remoteInfo,remoteEntryExports:this.remoteEntryExports,globalLoading:re,uniqueKey:n})}return b(e,`remoteEntryExports is undefined
|
|
10
|
+
${d.safeToString(this.remoteInfo)}`),this.remoteEntryExports=e,this.remoteEntryExports}async get(e,r,n,s){const{loadFactory:c=!0}=n||{loadFactory:!0},a=await this.getEntry();if(!this.inited){const y=this.host.shareScopeMap,E=this.remoteInfo.shareScope||"default";y[E]||(y[E]={});const $=y[E],I=[],P={version:this.remoteInfo.version||""};Object.defineProperty(P,"shareScopeMap",{value:y,enumerable:!1});const N=await this.host.hooks.lifecycle.beforeInitContainer.emit({shareScope:$,remoteEntryInitOptions:P,initScope:I,remoteInfo:this.remoteInfo,origin:this.host});typeof(a==null?void 0:a.init)>"u"&&m(u.getShortErrorMsg(u.RUNTIME_002,u.runtimeDescMap,{remoteName:name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName})),await a.init(N.shareScope,N.initScope,N.remoteEntryInitOptions),await this.host.hooks.lifecycle.initContainer.emit(i._extends({},N,{id:e,remoteSnapshot:s,remoteEntryExports:a}))}this.lib=a,this.inited=!0;let l;l=await this.host.loaderHook.lifecycle.getModuleFactory.emit({remoteEntryExports:a,expose:r,moduleInfo:this.remoteInfo}),l||(l=await a.get(r)),b(l,`${w(this.remoteInfo)} remote don't export ${r}.`);const h=ee(this.remoteInfo.name,r),_=this.wraperFactory(l,h);return c?await _():_}wraperFactory(e,r){function n(s,c){s&&typeof s=="object"&&Object.isExtensible(s)&&!Object.getOwnPropertyDescriptor(s,Symbol.for("mf_module_id"))&&Object.defineProperty(s,Symbol.for("mf_module_id"),{value:c,enumerable:!1})}return e instanceof Promise?async()=>{const s=await e();return n(s,r),s}:()=>{const s=e();return n(s,r),s}}constructor({remoteInfo:e,host:r}){this.inited=!1,this.lib=void 0,this.remoteInfo=e,this.host=r}};class W{on(e){typeof e=="function"&&this.listeners.add(e)}once(e){const r=this;this.on(function n(...s){return r.remove(n),e.apply(null,s)})}emit(...e){let r;return this.listeners.size>0&&this.listeners.forEach(n=>{r=n(...e)}),r}remove(e){this.listeners.delete(e)}removeAll(){this.listeners.clear()}constructor(e){this.type="",this.listeners=new Set,e&&(this.type=e)}}class K extends W{emit(...e){let r;const n=Array.from(this.listeners);if(n.length>0){let s=0;const c=a=>a===!1?!1:s<n.length?Promise.resolve(n[s++].apply(null,e)).then(c):a;r=c()}return Promise.resolve(r)}}function it(t,e){if(!Y(e))return!1;if(t!==e){for(const r in t)if(!(r in e))return!1}return!0}class Ee extends W{emit(e){Y(e)||m(`The data for the "${this.type}" hook should be an object.`);for(const r of this.listeners)try{const n=r(e);if(it(e,n))e=n;else{this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);break}}catch(n){R(n),this.onerror(n)}return e}constructor(e){super(),this.onerror=m,this.type=e}}class se extends W{emit(e){Y(e)||m(`The response data for the "${this.type}" hook must be an object.`);const r=Array.from(this.listeners);if(r.length>0){let n=0;const s=a=>(R(a),this.onerror(a),e),c=a=>{if(it(e,a)){if(e=a,n<r.length)try{return Promise.resolve(r[n++](e)).then(c,s)}catch(l){return s(l)}}else this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`);return e};return Promise.resolve(c(e))}return Promise.resolve(e)}constructor(e){super(),this.onerror=m,this.type=e}}class ae{applyPlugin(e){b(le(e),"Plugin configuration is invalid.");const r=e.name;b(r,"A name must be provided by the plugin."),this.registerPlugins[r]||(this.registerPlugins[r]=e,Object.keys(this.lifecycle).forEach(n=>{const s=e[n];s&&this.lifecycle[n].on(s)}))}removePlugin(e){b(e,"A name is required.");const r=this.registerPlugins[e];b(r,`The plugin "${e}" is not registered.`),Object.keys(r).forEach(n=>{n!=="name"&&this.lifecycle[n].remove(r[n])})}inherit({lifecycle:e,registerPlugins:r}){Object.keys(e).forEach(n=>{b(!this.lifecycle[n],`The hook "${n}" has a conflict and cannot be inherited.`),this.lifecycle[n]=e[n]}),Object.keys(r).forEach(n=>{b(!this.registerPlugins[n],`The plugin "${n}" has a conflict and cannot be inherited.`),this.applyPlugin(r[n])})}constructor(e){this.registerPlugins={},this.lifecycle=e,this.lifecycleKeys=Object.keys(e)}}function at(t){return i._extends({resourceCategory:"sync",share:!0,depsRemote:!0,prefetchInterface:!1},t)}function Zt(t,e){return e.map(r=>{const n=Wt(t,r.nameOrAlias);return b(n,`Unable to preload ${r.nameOrAlias} as it is not included in ${!n&&d.safeToString({remoteInfo:n,remotes:t})}`),{remote:n,preloadConfig:at(r)}})}function Qt(t){return t?t.map(e=>e==="."?e:e.startsWith("./")?e.replace("./",""):e):[]}function lt(t,e,r,n=!0){const{cssAssets:s,jsAssetsWithoutEntry:c,entryAssets:a}=r;if(e.options.inBrowser){if(a.forEach(l=>{const{moduleInfo:h}=l,_=e.moduleCache.get(t.name);me(_?{origin:e,remoteInfo:h,remoteEntryExports:_.remoteEntryExports}:{origin:e,remoteInfo:h,remoteEntryExports:void 0})}),n){const l={rel:"preload",as:"style"};s.forEach(h=>{const{link:_,needAttach:g}=d.createLink({url:h,cb:()=>{},attrs:l,createLinkHook:(y,E)=>{const $=e.loaderHook.lifecycle.createLink.emit({url:y,attrs:E});if($ instanceof HTMLLinkElement)return $}});g&&document.head.appendChild(_)})}else{const l={rel:"stylesheet",type:"text/css"};s.forEach(h=>{const{link:_,needAttach:g}=d.createLink({url:h,cb:()=>{},attrs:l,createLinkHook:(y,E)=>{const $=e.loaderHook.lifecycle.createLink.emit({url:y,attrs:E});if($ instanceof HTMLLinkElement)return $},needDeleteLink:!1});g&&document.head.appendChild(_)})}if(n){const l={rel:"preload",as:"script"};c.forEach(h=>{const{link:_,needAttach:g}=d.createLink({url:h,cb:()=>{},attrs:l,createLinkHook:(y,E)=>{const $=e.loaderHook.lifecycle.createLink.emit({url:y,attrs:E});if($ instanceof HTMLLinkElement)return $}});g&&document.head.appendChild(_)})}else{const l={fetchpriority:"high",type:(t==null?void 0:t.type)==="module"?"module":"text/javascript"};c.forEach(h=>{const{script:_,needAttach:g}=d.createScript({url:h,cb:()=>{},attrs:l,createScriptHook:(y,E)=>{const $=e.loaderHook.lifecycle.createScript.emit({url:y,attrs:E});if($ instanceof HTMLScriptElement)return $},needDeleteScript:!0});g&&document.head.appendChild(_)})}}}function ct(t,e){const r=ce(e);r.url||m(`The attribute remoteEntry of ${t.name} must not be undefined.`);let n=d.getResourceUrl(e,r.url);!d.isBrowserEnv()&&!n.startsWith("http")&&(n=`https:${n}`),t.type=r.type,t.entryGlobalName=r.globalName,t.entry=n,t.version=e.version,t.buildVersion=e.buildVersion}function er(){return{name:"snapshot-plugin",async afterResolve(t){const{remote:e,pkgNameOrAlias:r,expose:n,origin:s,remoteInfo:c}=t;if(!L(e)||!O(e)){const{remoteSnapshot:a,globalSnapshot:l}=await s.snapshotHandler.loadRemoteSnapshotInfo(e);ct(c,a);const h={remote:e,preloadConfig:{nameOrAlias:r,exposes:[n],resourceCategory:"sync",share:!1,depsRemote:!1}},_=await s.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({origin:s,preloadOptions:h,remoteInfo:c,remote:e,remoteSnapshot:a,globalSnapshot:l});return _&<(c,s,_,!1),i._extends({},t,{remoteSnapshot:a})}return t}}}function tr(t){const e=t.split(":");return e.length===1?{name:e[0],version:void 0}:e.length===2?{name:e[0],version:e[1]}:{name:e[1],version:e[2]}}function ut(t,e,r,n,s={},c){const a=w(e),{value:l}=ne(t,a),h=c||l;if(h&&!d.isManifestProvider(h)&&(r(h,e,n),h.remotesInfo)){const _=Object.keys(h.remotesInfo);for(const g of _){if(s[g])continue;s[g]=!0;const y=tr(g),E=h.remotesInfo[g];ut(t,{name:y.name,version:E.matchedVersion},r,!1,s,void 0)}}}function rr(t,e,r,n,s){const c=[],a=[],l=[],h=new Set,_=new Set,{options:g}=t,{preloadConfig:y}=e,{depsRemote:E}=y;if(ut(n,r,(N,M,F)=>{let A;if(F)A=y;else if(Array.isArray(E)){const q=E.find(X=>X.nameOrAlias===M.name||X.nameOrAlias===M.alias);if(!q)return;A=at(q)}else if(E===!0)A=y;else return;const D=d.getResourceUrl(N,ce(N).url);D&&l.push({name:M.name,moduleInfo:{name:M.name,entry:D,type:"remoteEntryType"in N?N.remoteEntryType:"global",entryGlobalName:"globalName"in N?N.globalName:M.name,shareScope:"",version:"version"in N?N.version:void 0},url:D});let H="modules"in N?N.modules:[];const U=Qt(A.exposes);if(U.length&&"modules"in N){var Q;H=N==null||(Q=N.modules)==null?void 0:Q.reduce((q,X)=>((U==null?void 0:U.indexOf(X.moduleName))!==-1&&q.push(X),q),[])}function C(q){const X=q.map(J=>d.getResourceUrl(N,J));return A.filter?X.filter(A.filter):X}if(H){const q=H.length;for(let X=0;X<q;X++){const J=H[X],Fe=`${M.name}/${J.moduleName}`;t.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({id:J.moduleName==="."?M.name:Fe,name:M.name,remoteSnapshot:N,preloadConfig:A,remote:M,origin:t}),!Ve(Fe)&&(A.resourceCategory==="all"?(c.push(...C(J.assets.css.async)),c.push(...C(J.assets.css.sync)),a.push(...C(J.assets.js.async)),a.push(...C(J.assets.js.sync))):(A.resourceCategory="sync")&&(c.push(...C(J.assets.css.sync)),a.push(...C(J.assets.js.sync))),We(Fe))}}},!0,{},s),s.shared){const N=(M,F)=>{const A=oe(t.shareScopeMap,F.sharedName,M,t.sharedHandler.hooks.lifecycle.resolveShare);A&&typeof A.lib=="function"&&(F.assets.js.sync.forEach(D=>{h.add(D)}),F.assets.css.sync.forEach(D=>{_.add(D)}))};s.shared.forEach(M=>{var F;const A=(F=g.shared)==null?void 0:F[M.sharedName];if(!A)return;const D=M.version?A.find(U=>U.version===M.version):A;if(!D)return;B(D).forEach(U=>{N(U,M)})})}const I=a.filter(N=>!h.has(N));return{cssAssets:c.filter(N=>!_.has(N)),jsAssetsWithoutEntry:I,entryAssets:l}}const nr=function(){return{name:"generate-preload-assets-plugin",async generatePreloadAssets(t){const{origin:e,preloadOptions:r,remoteInfo:n,remote:s,globalSnapshot:c,remoteSnapshot:a}=t;return L(s)&&O(s)?{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[{name:s.name,url:s.entry,moduleInfo:{name:n.name,entry:s.entry,type:n.type||"global",entryGlobalName:"",shareScope:""}}]}:(ct(n,a),rr(e,r,n,c,a))}}};function ft(t,e){const r=ue({name:e.options.name,version:e.options.version}),n=r&&"remotesInfo"in r&&r.remotesInfo&&ne(r.remotesInfo,t.name).value;return n&&n.matchedVersion?{hostGlobalSnapshot:r,globalSnapshot:ge(),remoteSnapshot:ue({name:t.name,version:n.matchedVersion})}:{hostGlobalSnapshot:void 0,globalSnapshot:ge(),remoteSnapshot:ue({name:t.name,version:"version"in t?t.version:void 0})}}class or{async loadSnapshot(e){const{options:r}=this.HostInstance,{hostGlobalSnapshot:n,remoteSnapshot:s,globalSnapshot:c}=this.getGlobalRemoteInfo(e),{remoteSnapshot:a,globalSnapshot:l}=await this.hooks.lifecycle.loadSnapshot.emit({options:r,moduleInfo:e,hostGlobalSnapshot:n,remoteSnapshot:s,globalSnapshot:c});return{remoteSnapshot:a,globalSnapshot:l}}async loadRemoteSnapshotInfo(e){const{options:r}=this.HostInstance;await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({options:r,moduleInfo:e});let n=ue({name:this.HostInstance.options.name,version:this.HostInstance.options.version});n||(n={version:this.HostInstance.options.version||"",remoteEntry:"",remotesInfo:{}},Ne({[this.HostInstance.options.name]:n})),n&&"remotesInfo"in n&&!ne(n.remotesInfo,e.name).value&&("version"in e||"entry"in e)&&(n.remotesInfo=i._extends({},n==null?void 0:n.remotesInfo,{[e.name]:{matchedVersion:"version"in e?e.version:e.entry}}));const{hostGlobalSnapshot:s,remoteSnapshot:c,globalSnapshot:a}=this.getGlobalRemoteInfo(e),{remoteSnapshot:l,globalSnapshot:h}=await this.hooks.lifecycle.loadSnapshot.emit({options:r,moduleInfo:e,hostGlobalSnapshot:s,remoteSnapshot:c,globalSnapshot:a});let _,g;if(l)if(d.isManifestProvider(l)){const y=d.isBrowserEnv()?l.remoteEntry:l.ssrRemoteEntry||l.remoteEntry||"",E=await this.getManifestJson(y,e,{}),$=$e(i._extends({},e,{entry:y}),E);_=E,g=$}else{const{remoteSnapshot:y}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:l,from:"global"});_=y,g=h}else if(L(e)){const y=await this.getManifestJson(e.entry,e,{}),E=$e(e,y),{remoteSnapshot:$}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:y,from:"global"});_=$,g=E}else m(u.getShortErrorMsg(u.RUNTIME_007,u.runtimeDescMap,{hostName:e.name,hostVersion:e.version,globalSnapshot:JSON.stringify(h)}));return await this.hooks.lifecycle.afterLoadSnapshot.emit({options:r,moduleInfo:e,remoteSnapshot:_}),{remoteSnapshot:_,globalSnapshot:g}}getGlobalRemoteInfo(e){return ft(e,this.HostInstance)}async getManifestJson(e,r,n){const s=async()=>{let a=this.manifestCache.get(e);if(a)return a;try{let l=await this.loaderHook.lifecycle.fetch.emit(e,{});(!l||!(l instanceof Response))&&(l=await fetch(e,{})),a=await l.json()}catch(l){a=await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:m,from:"runtime",lifecycle:"afterResolve",origin:this.HostInstance}),a||(delete this.manifestLoading[e],m(u.getShortErrorMsg(u.RUNTIME_003,u.runtimeDescMap,{manifestUrl:e,moduleName:r.name},`${l}`)))}return b(a.metaData&&a.exposes&&a.shared,`${e} is not a federation manifest`),this.manifestCache.set(e,a),a},c=async()=>{const a=await s(),l=d.generateSnapshotFromManifest(a,{version:e}),{remoteSnapshot:h}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:r,manifestJson:a,remoteSnapshot:l,manifestUrl:e,from:"manifest"});return h};return this.manifestLoading[e]||(this.manifestLoading[e]=c().then(a=>a)),this.manifestLoading[e]}constructor(e){this.loadingHostSnapshot=null,this.manifestCache=new Map,this.hooks=new ae({beforeLoadRemoteSnapshot:new K("beforeLoadRemoteSnapshot"),loadSnapshot:new se("loadGlobalSnapshot"),loadRemoteSnapshot:new se("loadRemoteSnapshot"),afterLoadSnapshot:new se("afterLoadSnapshot")}),this.manifestLoading=k.__FEDERATION__.__MANIFEST_LOADING__,this.HostInstance=e,this.loaderHook=e.loaderHook}}class sr{registerShared(e,r){const{shareInfos:n,shared:s}=nt(e,r);return Object.keys(n).forEach(a=>{n[a].forEach(h=>{!oe(this.shareScopeMap,a,h,this.hooks.lifecycle.resolveShare)&&h&&h.lib&&this.setShared({pkgName:a,lib:h.lib,get:h.get,loaded:!0,shared:h,from:r.name})})}),{shareInfos:n,shared:s}}async loadShare(e,r){const{host:n}=this,s=ot({pkgName:e,extraOptions:r,shareInfos:n.options.shared});s!=null&&s.scope&&await Promise.all(s.scope.map(async _=>{await Promise.all(this.initializeSharing(_,{strategy:s.strategy}))}));const c=await this.hooks.lifecycle.beforeLoadShare.emit({pkgName:e,shareInfo:s,shared:n.options.shared,origin:n}),{shareInfo:a}=c;b(a,`Cannot find ${e} Share in the ${n.options.name}. Please ensure that the ${e} Share parameters have been injected`);const l=oe(this.shareScopeMap,e,a,this.hooks.lifecycle.resolveShare),h=_=>{_.useIn||(_.useIn=[]),T(_.useIn,n.options.name)};if(l&&l.lib)return h(l),l.lib;if(l&&l.loading&&!l.loaded){const _=await l.loading;return l.loaded=!0,l.lib||(l.lib=_),h(l),_}else if(l){const g=(async()=>{const y=await l.get();a.lib=y,a.loaded=!0,h(a);const E=oe(this.shareScopeMap,e,a,this.hooks.lifecycle.resolveShare);return E&&(E.lib=y,E.loaded=!0),y})();return this.setShared({pkgName:e,loaded:!1,shared:l,from:n.options.name,lib:null,loading:g}),g}else{if(r!=null&&r.customShareInfo)return!1;const g=(async()=>{const y=await a.get();a.lib=y,a.loaded=!0,h(a);const E=oe(this.shareScopeMap,e,a,this.hooks.lifecycle.resolveShare);return E&&(E.lib=y,E.loaded=!0),y})();return this.setShared({pkgName:e,loaded:!1,shared:a,from:n.options.name,lib:null,loading:g}),g}}initializeSharing(e=de,r){const{host:n}=this,s=r==null?void 0:r.from,c=r==null?void 0:r.strategy;let a=r==null?void 0:r.initScope;const l=[];if(s!=="build"){const{initTokens:I}=this;a||(a=[]);let P=I[e];if(P||(P=I[e]={from:this.host.name}),a.indexOf(P)>=0)return l;a.push(P)}const h=this.shareScopeMap,_=n.options.name;h[e]||(h[e]={});const g=h[e],y=(I,P)=>{var N;const{version:M,eager:F}=P;g[I]=g[I]||{};const A=g[I],D=A[M],H=!!(D&&(D.eager||(N=D.shareConfig)!=null&&N.eager));(!D||D.strategy!=="loaded-first"&&!D.loaded&&(!F!=!H?F:_>D.from))&&(A[M]=P)},E=I=>I&&I.init&&I.init(h[e],a),$=async I=>{const{module:P}=await n.remoteHandler.getRemoteModuleAndOptions({id:I});if(P.getEntry){let N;try{N=await P.getEntry()}catch(M){N=await n.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:I,error:M,from:"runtime",lifecycle:"beforeLoadShare",origin:n})}P.inited||(await E(N),P.inited=!0)}};return Object.keys(n.options.shared).forEach(I=>{n.options.shared[I].forEach(N=>{N.scope.includes(e)&&y(I,N)})}),(n.options.shareStrategy==="version-first"||c==="version-first")&&n.options.remotes.forEach(I=>{I.shareScope===e&&l.push($(I.name))}),l}loadShareSync(e,r){const{host:n}=this,s=ot({pkgName:e,extraOptions:r,shareInfos:n.options.shared});s!=null&&s.scope&&s.scope.forEach(l=>{this.initializeSharing(l,{strategy:s.strategy})});const c=oe(this.shareScopeMap,e,s,this.hooks.lifecycle.resolveShare),a=l=>{l.useIn||(l.useIn=[]),T(l.useIn,n.options.name)};if(c){if(typeof c.lib=="function")return a(c),c.loaded||(c.loaded=!0,c.from===n.options.name&&(s.loaded=!0)),c.lib;if(typeof c.get=="function"){const l=c.get();if(!(l instanceof Promise))return a(c),this.setShared({pkgName:e,loaded:!0,from:n.options.name,lib:l,shared:c}),l}}if(s.lib)return s.loaded||(s.loaded=!0),s.lib;if(s.get){const l=s.get();if(l instanceof Promise){const h=(r==null?void 0:r.from)==="build"?u.RUNTIME_005:u.RUNTIME_006;throw new Error(u.getShortErrorMsg(h,u.runtimeDescMap,{hostName:n.options.name,sharedPkgName:e}))}return s.lib=l,this.setShared({pkgName:e,loaded:!0,from:n.options.name,lib:s.lib,shared:s}),s.lib}throw new Error(u.getShortErrorMsg(u.RUNTIME_006,u.runtimeDescMap,{hostName:n.options.name,sharedPkgName:e}))}initShareScopeMap(e,r,n={}){const{host:s}=this;this.shareScopeMap[e]=r,this.hooks.lifecycle.initContainerShareScopeMap.emit({shareScope:r,options:s.options,origin:s,scopeName:e,hostShareScopeMap:n.hostShareScopeMap})}setShared({pkgName:e,shared:r,from:n,lib:s,loading:c,loaded:a,get:l}){const{version:h,scope:_="default"}=r,g=i._object_without_properties_loose(r,["version","scope"]);(Array.isArray(_)?_:[_]).forEach(E=>{if(this.shareScopeMap[E]||(this.shareScopeMap[E]={}),this.shareScopeMap[E][e]||(this.shareScopeMap[E][e]={}),!this.shareScopeMap[E][e][h]){this.shareScopeMap[E][e][h]=i._extends({version:h,scope:["default"]},g,{lib:s,loaded:a,loading:c}),l&&(this.shareScopeMap[E][e][h].get=l);return}const $=this.shareScopeMap[E][e][h];c&&!$.loading&&($.loading=c)})}_setGlobalShareScopeMap(e){const r=we(),n=e.id||e.name;n&&!r[n]&&(r[n]=this.shareScopeMap)}constructor(e){this.hooks=new ae({afterResolve:new se("afterResolve"),beforeLoadShare:new se("beforeLoadShare"),loadShare:new K,resolveShare:new Ee("resolveShare"),initContainerShareScopeMap:new Ee("initContainerShareScopeMap")}),this.host=e,this.shareScopeMap={},this.initTokens={},this._setGlobalShareScopeMap(e.options)}}class ir{formatAndRegisterRemote(e,r){return(r.remotes||[]).reduce((s,c)=>(this.registerRemote(c,s,{force:!1}),s),e.remotes)}setIdToRemoteMap(e,r){const{remote:n,expose:s}=r,{name:c,alias:a}=n;if(this.idToRemoteMap[e]={name:n.name,expose:s},a&&e.startsWith(c)){const l=e.replace(c,a);this.idToRemoteMap[l]={name:n.name,expose:s};return}if(a&&e.startsWith(a)){const l=e.replace(a,c);this.idToRemoteMap[l]={name:n.name,expose:s}}}async loadRemote(e,r){const{host:n}=this;try{const{loadFactory:s=!0}=r||{loadFactory:!0},{module:c,moduleOptions:a,remoteMatchInfo:l}=await this.getRemoteModuleAndOptions({id:e}),{pkgNameOrAlias:h,remote:_,expose:g,id:y,remoteSnapshot:E}=l,$=await c.get(y,g,r,E),I=await this.hooks.lifecycle.onLoad.emit({id:y,pkgNameOrAlias:h,expose:g,exposeModule:s?$:void 0,exposeModuleFactory:s?void 0:$,remote:_,options:a,moduleInstance:c,origin:n});return this.setIdToRemoteMap(e,l),typeof I=="function"?I:$}catch(s){const{from:c="runtime"}=r||{from:"runtime"},a=await this.hooks.lifecycle.errorLoadRemote.emit({id:e,error:s,from:c,lifecycle:"onLoad",origin:n});if(!a)throw s;return a}}async preloadRemote(e){const{host:r}=this;await this.hooks.lifecycle.beforePreloadRemote.emit({preloadOps:e,options:r.options,origin:r});const n=Zt(r.options.remotes,e);await Promise.all(n.map(async s=>{const{remote:c}=s,a=ve(c),{globalSnapshot:l,remoteSnapshot:h}=await r.snapshotHandler.loadRemoteSnapshotInfo(c),_=await this.hooks.lifecycle.generatePreloadAssets.emit({origin:r,preloadOptions:s,remote:c,remoteInfo:a,globalSnapshot:l,remoteSnapshot:h});_&<(a,r,_)}))}registerRemotes(e,r){const{host:n}=this;e.forEach(s=>{this.registerRemote(s,n.options.remotes,{force:r==null?void 0:r.force})})}async getRemoteModuleAndOptions(e){const{host:r}=this,{id:n}=e;let s;try{s=await this.hooks.lifecycle.beforeRequest.emit({id:n,options:r.options,origin:r})}catch(I){if(s=await this.hooks.lifecycle.errorLoadRemote.emit({id:n,options:r.options,origin:r,from:"runtime",error:I,lifecycle:"beforeRequest"}),!s)throw I}const{id:c}=s,a=st(r.options.remotes,c);b(a,u.getShortErrorMsg(u.RUNTIME_004,u.runtimeDescMap,{hostName:r.options.name,requestId:c}));const{remote:l}=a,h=ve(l),_=await r.sharedHandler.hooks.lifecycle.afterResolve.emit(i._extends({id:c},a,{options:r.options,origin:r,remoteInfo:h})),{remote:g,expose:y}=_;b(g&&y,`The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${c}.`);let E=r.moduleCache.get(g.name);const $={host:r,remoteInfo:h};return E||(E=new De($),r.moduleCache.set(g.name,E)),{module:E,moduleOptions:$,remoteMatchInfo:_}}registerRemote(e,r,n){const{host:s}=this,c=()=>{if(e.alias){const l=r.find(h=>{var _;return e.alias&&(h.name.startsWith(e.alias)||((_=h.alias)==null?void 0:_.startsWith(e.alias)))});b(!l,`The alias ${e.alias} of remote ${e.name} is not allowed to be the prefix of ${l&&l.name} name or alias`)}"entry"in e&&d.isBrowserEnv()&&!e.entry.startsWith("http")&&(e.entry=new URL(e.entry,window.location.origin).href),e.shareScope||(e.shareScope=de),e.type||(e.type=Xe)};this.hooks.lifecycle.beforeRegisterRemote.emit({remote:e,origin:s});const a=r.find(l=>l.name===e.name);if(!a)c(),r.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:s});else{const l=[`The remote "${e.name}" is already registered.`,"Please note that overriding it may cause unexpected errors."];n!=null&&n.force&&(this.removeRemote(a),c(),r.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:s}),d.warn(l.join(" ")))}}removeRemote(e){try{const{host:n}=this,{name:s}=e,c=n.options.remotes.findIndex(l=>l.name===s);c!==-1&&n.options.remotes.splice(c,1);const a=n.moduleCache.get(e.name);if(a){const l=a.remoteInfo,h=l.entryGlobalName;if(v[h]){var r;(r=Object.getOwnPropertyDescriptor(v,h))!=null&&r.configurable?delete v[h]:v[h]=void 0}const _=Le(a.remoteInfo);re[_]&&delete re[_],n.snapshotHandler.manifestCache.delete(l.entry);let g=l.buildVersion?d.composeKeyWithSeparator(l.name,l.buildVersion):l.name;const y=v.__FEDERATION__.__INSTANCES__.findIndex($=>l.buildVersion?$.options.id===g:$.name===g);if(y!==-1){const $=v.__FEDERATION__.__INSTANCES__[y];g=$.options.id||g;const I=we();let P=!0;const N=[];Object.keys(I).forEach(M=>{const F=I[M];F&&Object.keys(F).forEach(A=>{const D=F[A];D&&Object.keys(D).forEach(H=>{const U=D[H];U&&Object.keys(U).forEach(Q=>{const C=U[Q];C&&typeof C=="object"&&C.from===l.name&&(C.loaded||C.loading?(C.useIn=C.useIn.filter(q=>q!==l.name),C.useIn.length?P=!1:N.push([M,A,H,Q])):N.push([M,A,H,Q]))})})})}),P&&($.shareScopeMap={},delete I[g]),N.forEach(([M,F,A,D])=>{var H,U,Q;(Q=I[M])==null||(U=Q[F])==null||(H=U[A])==null||delete H[D]}),v.__FEDERATION__.__INSTANCES__.splice(y,1)}const{hostGlobalSnapshot:E}=ft(e,n);if(E){const $=E&&"remotesInfo"in E&&E.remotesInfo&&ne(E.remotesInfo,e.name).key;$&&(delete E.remotesInfo[$],k.__FEDERATION__.__MANIFEST_LOADING__[$]&&delete k.__FEDERATION__.__MANIFEST_LOADING__[$])}n.moduleCache.delete(e.name)}}catch(n){S.log("removeRemote fail: ",n)}}constructor(e){this.hooks=new ae({beforeRegisterRemote:new Ee("beforeRegisterRemote"),registerRemote:new Ee("registerRemote"),beforeRequest:new se("beforeRequest"),onLoad:new K("onLoad"),handlePreloadModule:new W("handlePreloadModule"),errorLoadRemote:new K("errorLoadRemote"),beforePreloadRemote:new K("beforePreloadRemote"),generatePreloadAssets:new K("generatePreloadAssets"),afterPreloadRemote:new K,loadEntry:new K}),this.host=e,this.idToRemoteMap={}}}class ar{initOptions(e){this.registerPlugins(e.plugins);const r=this.formatOptions(this.options,e);return this.options=r,r}async loadShare(e,r){return this.sharedHandler.loadShare(e,r)}loadShareSync(e,r){return this.sharedHandler.loadShareSync(e,r)}initializeSharing(e=de,r){return this.sharedHandler.initializeSharing(e,r)}initRawContainer(e,r,n){const s=ve({name:e,entry:r}),c=new De({host:this,remoteInfo:s});return c.remoteEntryExports=n,this.moduleCache.set(e,c),c}async loadRemote(e,r){return this.remoteHandler.loadRemote(e,r)}async preloadRemote(e){return this.remoteHandler.preloadRemote(e)}initShareScopeMap(e,r,n={}){this.sharedHandler.initShareScopeMap(e,r,n)}formatOptions(e,r){const{shared:n}=nt(e,r),{userOptions:s,options:c}=this.hooks.lifecycle.beforeInit.emit({origin:this,userOptions:r,options:e,shareInfo:n}),a=this.remoteHandler.formatAndRegisterRemote(c,s),{shared:l}=this.sharedHandler.registerShared(c,s),h=[...c.plugins];s.plugins&&s.plugins.forEach(g=>{h.includes(g)||h.push(g)});const _=i._extends({},e,r,{plugins:h,remotes:a,shared:l});return this.hooks.lifecycle.init.emit({origin:this,options:_}),_}registerPlugins(e){const r=Xt(e,[this.hooks,this.remoteHandler.hooks,this.sharedHandler.hooks,this.snapshotHandler.hooks,this.loaderHook,this.bridgeHook]);this.options.plugins=this.options.plugins.reduce((n,s)=>(s&&n&&!n.find(c=>c.name===s.name)&&n.push(s),n),r||[])}registerRemotes(e,r){return this.remoteHandler.registerRemotes(e,r)}constructor(e){this.hooks=new ae({beforeInit:new Ee("beforeInit"),init:new W,beforeInitContainer:new se("beforeInitContainer"),initContainer:new se("initContainer")}),this.version="0.6.20",this.moduleCache=new Map,this.loaderHook=new ae({getModuleInfo:new W,createScript:new W,createLink:new W,fetch:new K,loadEntryError:new K,getModuleFactory:new K}),this.bridgeHook=new ae({beforeBridgeRender:new W,afterBridgeRender:new W,beforeBridgeDestroy:new W,afterBridgeDestroy:new W});const r={id:Vt(),name:e.name,plugins:[er(),nr()],remotes:[],shared:{},inBrowser:d.isBrowserEnv()};this.name=e.name,this.options=r,this.snapshotHandler=new or(this),this.sharedHandler=new sr(this),this.remoteHandler=new ir(this),this.shareScopeMap=this.sharedHandler.shareScopeMap,this.registerPlugins([...r.plugins,...e.plugins||[]]),this.options=this.formatOptions(r,e)}}var lr=Object.freeze({__proto__:null});Object.defineProperty(o,"loadScript",{enumerable:!0,get:function(){return d.loadScript}}),Object.defineProperty(o,"loadScriptNode",{enumerable:!0,get:function(){return d.loadScriptNode}}),o.CurrentGlobal=v,o.FederationHost=ar,o.Global=k,o.Module=De,o.addGlobalSnapshot=Ne,o.assert=b,o.getGlobalFederationConstructor=ke,o.getGlobalSnapshot=ge,o.getInfoWithoutType=ne,o.getRegisteredShare=oe,o.getRemoteEntry=me,o.getRemoteInfo=ve,o.helpers=Bt,o.isStaticResourcesEqual=Z,o.matchRemoteWithNameAndExpose=st,o.registerGlobalPlugins=Ge,o.resetFederationGlobalInfo=je,o.safeWrapper=G,o.satisfy=_e,o.setGlobalFederationConstructor=He,o.setGlobalFederationInstance=Ce,o.types=lr})(index_cjs$2);var utils_cjs={},runtimeCore=index_cjs$2;function getBuilderId(){return typeof FEDERATION_BUILD_IDENTIFIER<"u"?FEDERATION_BUILD_IDENTIFIER:""}function getGlobalFederationInstance(o,i){const d=getBuilderId();return runtimeCore.CurrentGlobal.__FEDERATION__.__INSTANCES__.find(u=>!!(d&&u.options.id===getBuilderId()||u.options.name===o&&!u.options.version&&!i||u.options.name===o&&i&&u.options.version===i))}utils_cjs.getGlobalFederationInstance=getGlobalFederationInstance;(function(o){var i=index_cjs$2,d=utils_cjs;let u=null;function p(O){const G=d.getGlobalFederationInstance(O.name,O.version);if(G)return G.initOptions(O),u||(u=G),G;{const Y=i.getGlobalFederationConstructor()||i.FederationHost;return u=new Y(O),i.setGlobalFederationInstance(u),u}}function S(...O){return i.assert(u,"Please call init first"),u.loadRemote.apply(u,O)}function b(...O){return i.assert(u,"Please call init first"),u.loadShare.apply(u,O)}function m(...O){return i.assert(u,"Please call init first"),u.loadShareSync.apply(u,O)}function R(...O){return i.assert(u,"Please call init first"),u.preloadRemote.apply(u,O)}function T(...O){return i.assert(u,"Please call init first"),u.registerRemotes.apply(u,O)}function w(...O){return i.assert(u,"Please call init first"),u.registerPlugins.apply(u,O)}function L(){return u}i.setGlobalFederationConstructor(i.FederationHost),Object.defineProperty(o,"FederationHost",{enumerable:!0,get:function(){return i.FederationHost}}),Object.defineProperty(o,"Module",{enumerable:!0,get:function(){return i.Module}}),Object.defineProperty(o,"getRemoteEntry",{enumerable:!0,get:function(){return i.getRemoteEntry}}),Object.defineProperty(o,"getRemoteInfo",{enumerable:!0,get:function(){return i.getRemoteInfo}}),Object.defineProperty(o,"loadScript",{enumerable:!0,get:function(){return i.loadScript}}),Object.defineProperty(o,"loadScriptNode",{enumerable:!0,get:function(){return i.loadScriptNode}}),Object.defineProperty(o,"registerGlobalPlugins",{enumerable:!0,get:function(){return i.registerGlobalPlugins}}),o.getInstance=L,o.init=p,o.loadRemote=S,o.loadShare=b,o.loadShareSync=m,o.preloadRemote=R,o.registerPlugins=w,o.registerRemotes=T})(index_cjs$3);let initResolve;const initPromise=new Promise((o,i)=>{initResolve=o});var ConfigCustomGoveeSegmentSet__mf_v__runtimeInit__mf_v__={initPromise,initResolve};export{ConfigCustomGoveeSegmentSet__mf_v__runtimeInit__mf_v__ as C,index_cjs$3 as i};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{a6 as D,$ as N,X as j,a7 as H,a0 as E,a8 as U,a9 as q,a2 as X}from"./createTheme-BOY5sESk.js";import{C as u}from"./ConfigCustomGoveeSegmentSet__loadShare__react__loadShare__-BqVuZVqv.js";import{j as B}from"./jsx-runtime-T585gmKY.js";function S(){return S=Object.assign?Object.assign.bind():function(r){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var a in n)({}).hasOwnProperty.call(n,a)&&(r[a]=n[a])}return r},S.apply(null,arguments)}var V=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,W=D(function(r){return V.test(r)||r.charCodeAt(0)===111&&r.charCodeAt(1)===110&&r.charCodeAt(2)<91}),G=W,Y=function(e){return e!=="theme"},R=function(e){return typeof e=="string"&&e.charCodeAt(0)>96?G:Y},F=function(e,n,a){var t;if(n){var o=n.shouldForwardProp;t=e.__emotion_forwardProp&&o?function(s){return e.__emotion_forwardProp(s)&&o(s)}:o}return typeof t!="function"&&a&&(t=e.__emotion_forwardProp),t},K=function(e){var n=e.cache,a=e.serialized,t=e.isStringTag;return U(n,a,t),q(function(){return X(n,a,t)}),null},$=function r(e,n){var a=e.__emotion_real===e,t=a&&e.__emotion_base||e,o,s;n!==void 0&&(o=n.label,s=n.target);var p=F(e,n,a),m=p||R(t),P=!m("as");return function(){var f=arguments,c=a&&e.__emotion_styles!==void 0?e.__emotion_styles.slice(0):[];if(o!==void 0&&c.push("label:"+o+";"),f[0]==null||f[0].raw===void 0)c.push.apply(c,f);else{var C=f[0];c.push(C[0]);for(var L=f.length,g=1;g<L;g++)c.push(f[g],C[g])}var l=N(function(i,d,y){var x=P&&i.as||t,h="",T=[],v=i;if(i.theme==null){v={};for(var O in i)v[O]=i[O];v.theme=u.useContext(j)}typeof i.className=="string"?h=H(d.registered,T,i.className):i.className!=null&&(h=i.className+" ");var A=E(c.concat(T),d.registered,v);h+=d.key+"-"+A.name,s!==void 0&&(h+=" "+s);var M=P&&p===void 0?R(x):m,b={};for(var k in i)P&&k==="as"||M(k)&&(b[k]=i[k]);return b.className=h,y&&(b.ref=y),u.createElement(u.Fragment,null,u.createElement(K,{cache:d,serialized:A,isStringTag:typeof x=="string"}),u.createElement(x,b))});return l.displayName=o!==void 0?o:"Styled("+(typeof t=="string"?t:t.displayName||t.name||"Component")+")",l.defaultProps=e.defaultProps,l.__emotion_real=l,l.__emotion_base=t,l.__emotion_styles=c,l.__emotion_forwardProp=p,Object.defineProperty(l,"toString",{value:function(){return"."+s}}),l.withComponent=function(i,d){var y=r(i,S({},n,d,{shouldForwardProp:F(l,d,!0)}));return y.apply(void 0,c)},l}},Z=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"],_=$.bind(null);Z.forEach(function(r){_[r]=_(r)});/**
|
|
2
|
+
* @mui/styled-engine v6.5.0
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/function re(r,e){return _(r,e)}function ne(r,e){Array.isArray(r.__emotion_styles)&&(r.__emotion_styles=e(r.__emotion_styles))}const z=[];function ae(r){return z[0]=r,E(z)}function w(r,e){const n={...e};for(const a in r)if(Object.prototype.hasOwnProperty.call(r,a)){const t=a;if(t==="components"||t==="slots")n[t]={...r[t],...n[t]};else if(t==="componentsProps"||t==="slotProps"){const o=r[t],s=e[t];if(!s)n[t]=o||{};else if(!o)n[t]=s;else{n[t]={...s};for(const p in o)if(Object.prototype.hasOwnProperty.call(o,p)){const m=p;n[t][m]=w(o[m],s[m])}}}else n[t]===void 0&&(n[t]=r[t])}return n}const I=u.createContext(void 0);function oe({value:r,children:e}){return B.jsx(I.Provider,{value:r,children:e})}function J(r){const{theme:e,name:n,props:a}=r;if(!e||!e.components||!e.components[n])return a;const t=e.components[n];return t.defaultProps?w(t.defaultProps,a):!t.styleOverrides&&!t.variants?w(t,a):a}function ie({props:r,name:e}){const n=u.useContext(I);return J({props:r,name:e,theme:{components:n}})}export{oe as D,S as _,ne as a,ae as i,w as r,re as s,ie as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as t}from"./jsx-runtime-T585gmKY.js";import{R as u}from"./ConfigCustomGoveeSegmentSet__loadShare__react__loadShare__-BqVuZVqv.js";import{C as n}from"./ConfigCustomGoveeSegmentSet__loadShare___mf_0_mui_mf_1_material__loadShare__-0yRF3k94.js";import{C as r}from"./ConfigCustomGoveeSegmentSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-YKsZEIvb.js";const N={confirmed:{bgcolor:"success.main",color:"success.contrastText"},flashing:{bgcolor:"warning.light",color:"#000",boxShadow:3},gap:{bgcolor:"error.main",color:"error.contrastText"},open:{bgcolor:"action.disabledBackground",color:"text.secondary"}};function $(o,i,c,s){return c===o?"flashing":i.has(o)?"confirmed":s.has(o)?"gap":"open"}function B(o){const{total:i,confirmed:c,flashing:s,gaps:a,editable:g,onToggle:x}=o,p=new Set(c),f=new Set(a);return t.jsx(n.Box,{sx:{display:"flex",flexWrap:"wrap",gap:.5},children:Array.from({length:Math.max(0,i)},(y,d)=>{const w=$(d,p,s,f);return t.jsx(n.Box,{"data-testid":`seg-cell-${d}`,className:`seg-cell ${w}`,onClick:g?()=>x==null?void 0:x(d):void 0,sx:{width:34,height:34,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:1,fontSize:12,userSelect:"none",cursor:g?"pointer":"default",...N[w]},children:d},d)})})}function q(o,i){let c="";const s=(a,g,x)=>{const p={action:a,device:g};return x&&(p.indices=x),o.sendTo(i,"segmentWizard",p)};return{async listDevices(){const a=await o.sendTo(i,"getSegmentDevices",{});return Array.isArray(a)?a:[]},start(a){return c=a,s("start",a)},yes:()=>s("yes",c),no:()=>s("no",c),done:()=>s("done",c),abort:()=>s("abort",c),apply:(a,g)=>s("apply",a,g)}}function T(o,i){const c=new Set(i),s=[];for(let a=0;a<o;a++)c.has(a)||s.push(a);return s}function K(o){const i=u.useMemo(()=>q(o.socket,o.namespace),[o.socket,o.namespace]),[c,s]=u.useState("select"),[a,g]=u.useState([]),[x,p]=u.useState(!1),[f,y]=u.useState(""),[d,w]=u.useState(null),[b,A]=u.useState(0),[m,C]=u.useState([]),[W,D]=u.useState(0),[I,_]=u.useState("");u.useEffect(()=>{let e=!0;return i.listDevices().then(l=>{e&&(g(l),y(l.length?l[0].value:""),p(!0))}),()=>{e=!1}},[i]);const S=()=>{w(null),s("select")},v=e=>e.error?(_(e.error),S(),!0):e.aborted?(_(""),S(),!0):e.applied||e.done?(D(e.segmentCount??0),w(null),s("success"),!0):(_(""),e.snapshot&&w(e.snapshot),!1),R=async()=>{if(!f)return;_("");const e=await i.start(f);v(e)||s("measure")},k=async e=>{v(await(e?i.yes():i.no()))},G=()=>{const e=d;if(!e||e.currentIndex<1)return;const l=e.currentIndex;A(l),C(e.confirmed.filter(h=>h<l).sort((h,j)=>h-j)),s("review")},L=e=>{C(l=>l.includes(e)?l.filter(h=>h!==e):[...l,e].sort((h,j)=>h-j))},E=async()=>{m.length&&v(await i.apply(f,m))},F=async()=>{await i.abort();const e=await i.start(f);v(e)||s("measure")},z=async()=>{await i.abort(),S()},M=()=>{_(""),s("select")},H=I?t.jsx(n.Alert,{severity:"error","data-testid":"wiz-error",sx:{mb:2},children:r.I18n.t("gsw_error",I)}):null;if(c==="select")return t.jsxs(n.Box,{sx:{maxWidth:520},children:[t.jsx(n.Typography,{variant:"h6",sx:{mb:2},children:r.I18n.t("gsw_title")}),H,x?a.length===0?t.jsx(n.Alert,{severity:"info","data-testid":"wiz-no-devices",children:r.I18n.t("gsw_noDevices")}):t.jsxs(n.Stack,{spacing:2,children:[t.jsxs(n.FormControl,{fullWidth:!0,children:[t.jsx(n.InputLabel,{children:r.I18n.t("gsw_deviceLabel")}),t.jsx(n.Select,{"data-testid":"wiz-device-select",value:f,label:r.I18n.t("gsw_deviceLabel"),onChange:e=>y(e.target.value),children:a.map(e=>t.jsx(n.MenuItem,{value:e.value,children:e.label},e.value))})]}),t.jsx(n.Box,{children:t.jsx(n.Button,{variant:"contained","data-testid":"wiz-start",disabled:!f,onClick:()=>void R(),children:r.I18n.t("gsw_start")})})]}):t.jsx(n.CircularProgress,{size:24})]});if(c==="measure"&&d){const e=d.currentIndex;return t.jsxs(n.Box,{sx:{maxWidth:520},children:[t.jsx(n.Typography,{variant:"h6",sx:{mb:1},children:r.I18n.t("gsw_measureHint")}),t.jsx(B,{total:e+1,confirmed:d.confirmed,flashing:e,gaps:T(e,d.confirmed),editable:!1}),t.jsx(n.Typography,{sx:{my:2},children:r.I18n.t("gsw_question",e)}),t.jsxs(n.Stack,{direction:"row",spacing:1,flexWrap:"wrap",useFlexGap:!0,children:[t.jsx(n.Button,{variant:"contained",color:"success","data-testid":"wiz-lit",onClick:()=>void k(!0),children:r.I18n.t("gsw_lit")}),t.jsx(n.Button,{variant:"outlined","data-testid":"wiz-dark",onClick:()=>void k(!1),children:r.I18n.t("gsw_dark")}),t.jsx(n.Button,{variant:"contained","data-testid":"wiz-finish",disabled:e<1,onClick:G,children:r.I18n.t("gsw_finish")}),t.jsx(n.Button,{variant:"text",color:"secondary","data-testid":"wiz-cancel",onClick:()=>void z(),children:r.I18n.t("gsw_cancel")})]})]})}if(c==="review"){const e=m.length?Math.max(...m)+1:0,l=e-m.length,h=l>0?r.I18n.t("gsw_resultGaps",e,l):r.I18n.t("gsw_resultNoGaps",e);return t.jsxs(n.Box,{sx:{maxWidth:520},children:[t.jsx(n.Typography,{variant:"h6",sx:{mb:1},children:h}),t.jsx(n.Typography,{variant:"body2",sx:{mb:1,opacity:.8},children:r.I18n.t("gsw_reviewHint")}),t.jsx(B,{total:b,confirmed:m,flashing:null,gaps:T(b,m),editable:!0,onToggle:L}),t.jsxs(n.Stack,{direction:"row",spacing:1,sx:{mt:2},flexWrap:"wrap",useFlexGap:!0,children:[t.jsx(n.Button,{variant:"contained","data-testid":"wiz-apply",disabled:!m.length,onClick:()=>void E(),children:r.I18n.t("gsw_apply")}),t.jsx(n.Button,{variant:"outlined","data-testid":"wiz-remeasure",onClick:()=>void F(),children:r.I18n.t("gsw_remeasure")}),t.jsx(n.Button,{variant:"text",color:"secondary","data-testid":"wiz-cancel",onClick:()=>void z(),children:r.I18n.t("gsw_cancel")})]})]})}return t.jsxs(n.Box,{sx:{maxWidth:520},"data-testid":"wiz-success",children:[t.jsx(n.Alert,{severity:"success",sx:{mb:2},children:r.I18n.t("gsw_applied",W)}),t.jsx(n.Button,{variant:"contained","data-testid":"wiz-close",onClick:M,children:r.I18n.t("gsw_close")})]})}export{K as S};
|