iobroker.anomaly-detection 0.3.0 → 0.4.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.de.md +4 -0
- package/README.md +4 -0
- package/admin/custom/assets/Components-810Y0-JC.js +3 -0
- package/admin/custom/assets/{TextField-C3oAONXA.js → TextField-Bqyrlhrz.js} +1 -1
- package/admin/custom/assets/{__virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react__loadShare__.js_commonjs-proxy-C6BYFHUa.js → __virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react__loadShare__.js_commonjs-proxy-D2M4lU_1.js} +1 -1
- package/admin/custom/assets/{_virtual_mf-localSharedImportMap___mfe_internal__AnomalyDetectionAdmin__mf_owner__1-BA-4CH8A.js → _virtual_mf-localSharedImportMap___mfe_internal__AnomalyDetectionAdmin__mf_owner__1-DU_nndhM.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-D34feF1M.js → _virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-EnjffE7p.js} +2 -2
- package/admin/custom/assets/{_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.js-gzeYEwNX.js → _virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.js-BvC8z8tz.js} +2 -2
- package/admin/custom/assets/{_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare___mf_0_mui_mf_1_material__loadShare__.js-Czolif-c.js → _virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare___mf_0_mui_mf_1_material__loadShare__.js-Bu-C3Bee.js} +2 -2
- package/admin/custom/assets/{_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react__loadShare__.js-B1BcPa9n.js → _virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react__loadShare__.js-D_6ac7UX.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react_mf_2_dom__loadShare__.js-Ds3-Yu4l.js → _virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react_mf_2_dom__loadShare__.js-DKspmCZo.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__--NubxY40.js → _virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-UiBqnVpJ.js} +68 -68
- package/admin/custom/assets/{_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_mui_mf_1_icons_mf_2_material__prebuild__-BBex2Aqy.js → _virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_mui_mf_1_icons_mf_2_material__prebuild__-C7uH-ue1.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_mui_mf_1_material__prebuild__-I7FRi2ux.js → _virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_mui_mf_1_material__prebuild__-DGn1RJbk.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild__react_mf_2_dom__prebuild__-ab5OrS0v.js → _virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild__react_mf_2_dom__prebuild__-BRYx5VjQ.js} +1 -1
- package/admin/custom/assets/{createSvgIcon-CJqGdhTN.js → createSvgIcon-DfgUKbzv.js} +1 -1
- package/admin/custom/assets/{hostInit-LhP5RTJM.js → hostInit-Fd_000TC.js} +1 -1
- package/admin/custom/assets/{index-B7JZp1OS.js → index-Cci6QH0E.js} +1 -1
- package/admin/custom/assets/{index-CxATVJMB.js → index-iq_CPVaK.js} +1 -1
- package/admin/custom/assets/{mf-entry-bootstrap-0-f129c863.js → mf-entry-bootstrap-0-35238a67.js} +3 -3
- package/admin/custom/assets/{pendingShares-KiQCgcgq.js → pendingShares-DypcLDN7.js} +1 -1
- package/admin/custom/assets/{virtualExposes-CEiOyubF.js → virtualExposes-CnuM1BXj.js} +1 -1
- package/admin/custom/customComponents.js +2 -2
- package/admin/custom/index.html +3 -3
- package/admin/custom/mf-manifest.json +1 -1
- package/admin/custom/mf-stats.json +1 -1
- package/build/lib/object-structure.js +44 -0
- package/build/lib/object-structure.js.map +7 -0
- package/build/lib/predictive.js +105 -23
- package/build/lib/predictive.js.map +3 -3
- package/build/main.js +14 -1
- package/build/main.js.map +2 -2
- package/io-package.json +9 -1
- package/package.json +1 -1
- package/admin/custom/assets/Components-n5uijLJW.js +0 -3
package/README.de.md
CHANGED
|
@@ -244,6 +244,10 @@ Verarbeitung und Modellspeicherung erfolgen vollständig lokal in ioBroker. Kein
|
|
|
244
244
|
|
|
245
245
|
## Changelog
|
|
246
246
|
|
|
247
|
+
### 0.3.1 (2026-09-09)
|
|
248
|
+
|
|
249
|
+
- Persistierte History- und Mixed-Predictive-Modelle werden vor Live-only-Retraining geschützt, wenn die Trainingsbasis nicht wiederhergestellt werden kann.
|
|
250
|
+
|
|
247
251
|
### 0.3.0 (2026-09-08)
|
|
248
252
|
|
|
249
253
|
- Optionale lokale Predictive-Prognosen mit persistenten Modellen und Trainingsbasen ergänzt.
|
package/README.md
CHANGED
|
@@ -327,6 +327,10 @@ Processing and model storage are completely local to ioBroker. No monitored valu
|
|
|
327
327
|
|
|
328
328
|
## Changelog
|
|
329
329
|
|
|
330
|
+
### 0.3.1 (2026-09-09)
|
|
331
|
+
|
|
332
|
+
- Protect persisted history and mixed predictive models from live-only retraining when the training basis cannot be restored.
|
|
333
|
+
|
|
330
334
|
### 0.3.0 (2026-09-08)
|
|
331
335
|
|
|
332
336
|
- Add optional local predictive forecasting with persistent models and training bases.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import"../customComponents.js";import{_ as o,a as r,b as O}from"./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-3izusDYF.js";import{_ as z,a as Me,b as $e,c as ie,d as se,e as de}from"./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react__loadShare__.js-D_6ac7UX.js";import{a as Q,b as H,c as s,d as q,e as re,f as R,g as ye,h as ge,i as be,j as xe,k as Se}from"./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare___mf_0_mui_mf_1_material__loadShare__.js-Bu-C3Bee.js";import{_ as Te,a as we,b as ke}from"./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.js-BvC8z8tz.js";import"./vite-preload-helper-ckwbz45p.js";import"./index-wphymIgy.js";function Ne(e,n=[],d={}){const c=[...e,...n].filter(b=>Number.isFinite(b));if(c.length===0)return{min:0,max:1};const i=Math.min(...c),v=Math.max(...c),l=v-i||Math.max(1,Math.abs(v)*.01),u=i-l*.05;return{min:d.floorAtZero===!1?Math.max(0,u):i>=0?0:u,max:v+l*.05}}function Pe(e){const d=10**Math.floor(Math.log10(e)),c=e/d;return(c<=1?1:c<=2?2:c<=2.5?2.5:c<=5?5:10)*d}function Ae(e,n,d){const c=Pe((n-e)/Math.max(1,d-1)),i=Math.ceil(e/c-1e-10)*c,v=[];for(let l=i;l<=n+c*1e-9&&v.length<8;l+=c)v.push(Number(l.toPrecision(12)));return v.length>=2?v:[e,n]}function Le(e){const n=[1,2,5,10,15,20,30,60,120,180,360,720,1440],d=e/5;return(n.find(c=>c>=d)??n[n.length-1])*6e4}function Be(e){let n=0,d=Math.abs(e);for(;n<8&&Math.abs(d-Math.round(d))>1e-8;)n++,d*=10;return n}function Ee(e,n,d){const c=Number(e.toFixed(n));return new Intl.NumberFormat(d,{minimumFractionDigits:n,maximumFractionDigits:n}).format(c)}function qe(e,n,d,c){const i=c.filter(D=>Number.isFinite(D.value)),v=[...Number.isFinite(e)?[e]:[],...i.map(D=>D.value)],l=v.length?Math.min(...v):0,u=v.length?Math.max(...v):1,b=u-l||Math.max(1,Math.abs(u)*.05),x=l-b*.08,C=u+b*.08,k=l<=0&&u>=0?Math.min(0,x):x,P=l<=0&&u>=0?Math.max(0,C):C,$={min:k,max:P},h=d*6e4,M=Le(Math.max(1,d)),y=[0];for(let D=M;D<h;D+=M)y.push(D);h>0&&y.at(-1)!==h&&y.push(h);const S=Ae(k,P,5),A=Math.abs((S[1]??P)-(S[0]??k));return{startTimestamp:n,endTimestamp:n+d*6e4,actualPoint:Number.isFinite(e)?{timestamp:n,value:e}:void 0,forecastPoints:i,yDomain:$,yTicks:S,yTickDecimals:Be(A),xTicks:y}}const ue={en:{"reason.normal":"The value behaves as expected.","reason.insufficient_training_data":"I am still collecting data before rating this state reliably.","reason.unexpected_value":"The current value is outside the usual range.","reason.unexpected_low":"The current value is unusually low.","reason.unexpected_high":"The current value is unusually high.","reason.context_deviation":"The current value is unusual for this context.","reason.context_low":"The current value is unusually low for this context.","reason.context_high":"The current value is unusually high for this context.","reason.unexpected_rate_change":"The value is changing unusually quickly.","reason.stuck_value":"The value has not changed for longer than expected.","reason.persistent_level_shift":"A persistent change in the normal level was detected.","reason.unusual_trend":"An unusual long-term trend was detected.","reason.multiple_detectors":"Several detectors jointly indicate unusual behavior.","status.learning":"Learning","status.normal":"Normal","status.deviating":"Conspicuous","status.anomaly":"Anomaly","status.insufficient_data":"Insufficient data","status.unavailable":"No current assessment",title:"Current anomaly assessments",refresh:"Refresh",empty:"No assessment is available yet for the configured states.",current:"Current",decisionRange:"MAD decision range",chartValue:"Value",chartExpected:"Expected range",chartAnomaly:"Anomaly",chartStatus:"Status",chartReason:"Reason",chartAssessment:"Assessment",chartDeviation:"Deviation",chartExpectedUnavailable:"Historical expected range not available","deviation.below":"below the expected range","deviation.above":"above the expected range",chartContext:"Assessment context",historicalAnomaliesOne:"%s conspicuous measurement in the selected period",historicalAnomaliesMany:"%s conspicuous measurements in the selected period",chartNoContext:"Historical context information is not available for this period.",chartNow:"Now",chartNormalExplanation:"The value is within the expected range.",chartDeviating:"Conspicuous",pendingExplanation:"The deviation is being observed and has not yet been confirmed as an anomaly.",unavailableExplanation:"No current assessment is available for this state yet.",learned:"%s of at least %s required samples learned",learnedContext:"%s of at least %s required samples learned for this state",basedOn:"Based on %s samples",predictive:"Forecast",predictive_ready:"Ready",predictive_learning:"Learning",predictive_unreliable:"Limited",predictive_error:"Error",predictive_disabled:"Forecast disabled",forecastExpectedIn:"Expected in %s",forecastHoursShort:"+%s h",forecastMinutesShort:"+%s min",forecastQualityGood:"Forecast quality: Good",forecastQualityLimited:"Forecast quality: Limited",forecastQualityPoor:"Forecast quality: Not reliable",forecastQualityUnknown:"Forecast quality: Not yet assessable",qualityGood:"Good",qualityLimited:"Limited",qualityPoor:"Not reliable",qualityUnknown:"Not yet assessable",forecastLimitedExplanation:"The forecast is currently only of limited reliability.",forecastNotReliable:"The forecast is currently not reliable.",forecastError:"The forecast could not be calculated.",forecastNow:"Now",predictiveDetails:"Technical details",model:"Model",selectedModel:"Selected model",modelLevelTrend:"Level/trend",modelSeasonal:"Cyclic",modelTimeOfDay:"Time of day profile",modelInterval:"Model interval",rawInterval:"Raw data interval",historySpan:"History span",requestedHistorySpan:"Requested history span",daysCovered:"Days covered",bucketCount:"Time buckets",bucketCoverage:"Bucket coverage",trainingSamples:"Training samples",lastTraining:"Last training",trainingSource:"Training source",bootstrapReason:"Bootstrap reason",modelVersion:"Model version",sourceHistory:"History",sourcePersisted:"Persisted model",sourceLive:"Live values",sourceMixed:"History + live values",seasonality:"Seasonality",seasonalityMode:"Mode",seasonalityOff:"Off",seasonalityAuto:"Automatic",seasonalityManual:"Manual",periodDetected:"Period detected",detectedPeriod:"Detected period",periodicityScore:"Periodicity score",peakProminence:"Peak prominence",harmonicPeaks:"Confirmed harmonic peaks",secondBestPeriod:"Second-best period",secondBestScore:"Second-best score",detrended:"Detrended before detection",acfNeighbourScores:"ACF around candidate",lowerBoundary:"At lower search boundary",completePeriods:"Complete cycles",seasonalityUsed:"Used for forecast",backtest:"Backtest",levelTrend:"Level/trend",seasonal:"Cyclic",mae:"MAE",normalizedError:"Normalized error",qualityScaleNearZero:"Low historical spread; normalized quality is limited",holdoutSamples:"Holdout samples",notAvailable:"Not available",selection:"Selection",qualityClass:"Quality class",relativeError:"Relative error",qualityScale:"Quality scale",scaleSource:"Scale source",scaleSource_iqr:"IQR",scaleSource_p95p05:"P95–P05",scaleSource_mad:"MAD",scaleSource_range:"Observed range",scaleSource_none:"None",selectionSeasonalBetter:"The cyclic model was more accurate in backtesting.",selectionLevelTrendBetter:"The level/trend model was more accurate in backtesting.",selectionNoPeriodicity:"No sufficiently stable repetition was detected.",selectionInsufficientCycles:"There are not enough complete cycles for reliable detection.",selectionInsufficientSeasonalData:"There are not enough seasonal samples yet.",selectionSeasonalityDisabled:"Seasonality is disabled for this state.",selectionManualSeasonality:"A manually configured period is being used.",selectionSeasonalBacktestFailed:"The cyclic backtest was not available.",selectionSeasonalNotBetterEnough:"The cyclic model was not sufficiently better in backtesting.",minutesShort:"min",yes:"Yes",no:"No",currentView:"Current",forecastView:"Forecast",forecastHorizon:"Forecast horizon",forecastQuality:"Model quality (MAE)",comparisonSamples:"Comparison based on %s similar samples",context:"Compared with context: %s",since:"Anomalous since %s",details:"Technical details",overall:"Overall score",baseline:"Baseline",baseline_context:"Context-based",baseline_time:"Time-based",baseline_global:"Global fallback",baseline_insufficient:"Insufficient baseline",baseline_learning:"still learning",valueDeviation:"Value deviation",contextDeviation:"Context deviation",rateDeviation:"Rate of change",stuckDetection:"Stuck-state detection",levelShift:"Persistent level shift",trendDetection:"Trend detection",samples:"samples",contextSamples:"Context samples",lastEvaluation:"Last evaluation",activeDetectors:"Active detectors",loadError:"The anomaly assessments could not be loaded.",chart:"History & anomalies",chartUnavailable:"No history data is available for this state.",chartNoBounds:"Historical decision bounds are not available for this period.",hour:"1 h",sixHours:"6 h",day:"24 h",week:"7 days"},de:{"reason.normal":"Der Wert verhält sich wie erwartet.","reason.insufficient_training_data":"Ich sammle noch Daten, bevor ich diesen Datenpunkt zuverlässig bewerten kann.","reason.unexpected_value":"Der aktuelle Wert liegt außerhalb des üblichen Bereichs.","reason.unexpected_low":"Der aktuelle Wert ist ungewöhnlich niedrig.","reason.unexpected_high":"Der aktuelle Wert ist ungewöhnlich hoch.","reason.context_deviation":"Der aktuelle Wert ist für diesen Zustand ungewöhnlich.","reason.context_low":"Der aktuelle Wert ist für diesen Zustand ungewöhnlich niedrig.","reason.context_high":"Der aktuelle Wert ist für diesen Zustand ungewöhnlich hoch.","reason.unexpected_rate_change":"Der Wert verändert sich ungewöhnlich schnell.","reason.stuck_value":"Der Wert hat sich länger als erwartet nicht verändert.","reason.persistent_level_shift":"Eine dauerhafte Veränderung des normalen Niveaus wurde erkannt.","reason.unusual_trend":"Ein ungewöhnlicher längerfristiger Trend wurde erkannt.","reason.multiple_detectors":"Mehrere Detektoren weisen gemeinsam auf ein ungewöhnliches Verhalten hin.","status.learning":"Lernt noch","status.normal":"Normal","status.deviating":"Auffällig","status.anomaly":"Anomalie","status.insufficient_data":"Zu wenig Daten","status.unavailable":"Keine aktuelle Bewertung",title:"Aktuelle Anomaliebewertungen",refresh:"Aktualisieren",empty:"Für die konfigurierten Datenpunkte liegt noch keine Bewertung vor.",current:"Aktuell",decisionRange:"Erwarteter Bereich",chartValue:"Messwert",chartExpected:"Erwarteter Bereich",chartAnomaly:"Anomalie",chartStatus:"Status",chartReason:"Grund",chartAssessment:"Bewertung",chartDeviation:"Abweichung",chartExpectedUnavailable:"Historischer erwarteter Bereich nicht verfügbar","deviation.below":"unter dem erwarteten Bereich","deviation.above":"über dem erwarteten Bereich",chartContext:"Bewertungskontext",historicalAnomaliesOne:"%s auffälliger Messpunkt im gewählten Zeitraum",historicalAnomaliesMany:"%s auffällige Messpunkte im gewählten Zeitraum",chartNoContext:"Für diesen Zeitraum sind keine historischen Kontextinformationen verfügbar.",chartNow:"Jetzt",chartNormalExplanation:"Der Wert liegt im erwarteten Bereich.",chartDeviating:"Auffällig",pendingExplanation:"Die Abweichung wird beobachtet und ist noch nicht als Anomalie bestätigt.",unavailableExplanation:"Für diesen Datenpunkt liegt noch keine aktuelle Bewertung vor.",learned:"%s von mindestens %s benötigten Messwerten gelernt",learnedContext:"%s von mindestens %s benötigten Messwerten für diesen Zustand gelernt",basedOn:"Basierend auf %s Messwerten",predictive:"Prognose",predictive_ready:"Bereit",predictive_learning:"Lernt noch",predictive_unreliable:"Eingeschränkt",predictive_error:"Fehler",predictive_disabled:"Prognose deaktiviert",forecastExpectedIn:"In %s voraussichtlich",forecastHoursShort:"+%s h",forecastMinutesShort:"+%s Min.",forecastQualityGood:"Prognosequalität: Gut",forecastQualityLimited:"Prognosequalität: Eingeschränkt",forecastQualityPoor:"Prognosequalität: Nicht zuverlässig",forecastQualityUnknown:"Prognosequalität: Noch nicht bewertbar",qualityGood:"Gut",qualityLimited:"Eingeschränkt",qualityPoor:"Nicht zuverlässig",qualityUnknown:"Noch nicht bewertbar",forecastLimitedExplanation:"Die Prognose ist derzeit nur eingeschränkt zuverlässig.",forecastNotReliable:"Die Prognose ist derzeit nicht zuverlässig.",forecastError:"Die Prognose konnte nicht berechnet werden.",forecastNow:"Jetzt",predictiveDetails:"Technische Details",model:"Modell",selectedModel:"Gewähltes Modell",modelLevelTrend:"Level/Trend",modelSeasonal:"Zyklisch",modelTimeOfDay:"Tageszeitprofil",modelInterval:"Modellintervall",rawInterval:"Rohdatenintervall",historySpan:"History-Zeitraum",requestedHistorySpan:"Angeforderter History-Zeitraum",daysCovered:"Abgedeckte Tage",bucketCount:"Zeit-Buckets",bucketCoverage:"Bucket-Abdeckung",trainingSamples:"Trainingswerte",lastTraining:"Letztes Training",trainingSource:"Trainingsquelle",bootstrapReason:"Bootstrap-Grund",modelVersion:"Modellversion",sourceHistory:"History",sourcePersisted:"Persistiertes Modell",sourceLive:"Live-Werte",sourceMixed:"History + Live-Werte",seasonality:"Saisonalität",seasonalityMode:"Modus",seasonalityOff:"Aus",seasonalityAuto:"Automatisch",seasonalityManual:"Manuell",periodDetected:"Periode erkannt",detectedPeriod:"Erkannte Periode",periodicityScore:"Periodizitätsbewertung",peakProminence:"Peak-Prominenz",harmonicPeaks:"Bestätigte harmonische Peaks",secondBestPeriod:"Zweitbeste Periode",secondBestScore:"Zweitbester Score",detrended:"Vor der Erkennung detrendet",acfNeighbourScores:"ACF um den Kandidaten",lowerBoundary:"Am unteren Suchrand",completePeriods:"Vollständige Zyklen",seasonalityUsed:"Für Prognose verwendet",backtest:"Backtest",levelTrend:"Level/Trend",seasonal:"Zyklisch",mae:"MAE",normalizedError:"Normalisierter Fehler",qualityScaleNearZero:"Sehr geringe historische Streuung; normalisierte Qualität ist eingeschränkt aussagekräftig",holdoutSamples:"Holdout-Testwerte",notAvailable:"Nicht verfügbar",selection:"Auswahl",qualityClass:"Qualitätsklasse",relativeError:"Relativer Fehler",qualityScale:"Qualitätsskala",scaleSource:"Skalenquelle",scaleSource_iqr:"IQR",scaleSource_p95p05:"P95–P05",scaleSource_mad:"MAD",scaleSource_range:"Beobachteter Wertebereich",scaleSource_none:"Keine",selectionSeasonalBetter:"Das zyklische Modell war im Backtest genauer.",selectionLevelTrendBetter:"Das Level-/Trendmodell war im Backtest genauer.",selectionNoPeriodicity:"Es wurde keine ausreichend stabile Wiederholung erkannt.",selectionInsufficientCycles:"Für eine zuverlässige Erkennung liegen noch nicht genügend vollständige Zyklen vor.",selectionInsufficientSeasonalData:"Für eine saisonale Bewertung liegen noch nicht genügend Messwerte vor.",selectionSeasonalityDisabled:"Saisonalität ist für diesen Datenpunkt deaktiviert.",selectionManualSeasonality:"Eine manuell konfigurierte Periode wird verwendet.",selectionSeasonalBacktestFailed:"Der zyklische Backtest war nicht verfügbar.",selectionSeasonalNotBetterEnough:"Das zyklische Modell war im Backtest nicht ausreichend besser.",minutesShort:"Min.",yes:"Ja",no:"Nein",currentView:"Aktuell",forecastView:"Prognose",forecastHorizon:"Prognosehorizont",forecastQuality:"Modellgüte (MAE)",comparisonSamples:"Vergleich basiert auf %s ähnlichen Messungen",context:"Verglichen mit Kontext: %s",since:"Auffällig seit %s",details:"Technische Details",overall:"Gesamtbewertung",baseline:"Baseline",baseline_context:"Kontextbezogen",baseline_time:"Zeitabhängig",baseline_global:"Globale Fallback-Baseline",baseline_insufficient:"Baseline noch nicht reif",baseline_learning:"lernt noch",valueDeviation:"Wertabweichung",contextDeviation:"Abweichung im aktuellen Kontext",rateDeviation:"Änderungsgeschwindigkeit",stuckDetection:"Festhängender Wert",levelShift:"Dauerhafte Pegelverschiebung",trendDetection:"Trenderkennung",samples:"Samples",contextSamples:"Kontext-Samples",lastEvaluation:"Letzte Bewertung",activeDetectors:"Aktive Detektoren",loadError:"Die Anomaliebewertungen konnten nicht geladen werden.",chart:"Verlauf & Anomalien",chartUnavailable:"Für diesen Datenpunkt sind keine Verlaufsdaten verfügbar.",chartNoBounds:"Für diesen Zeitraum sind keine historischen Bewertungsgrenzen verfügbar.",hour:"1 h",sixHours:"6 h",day:"24 h",week:"7 Tage"}};function J(){return(typeof navigator<"u"?navigator.language:"en").slice(0,2).toLowerCase()}function t(e,...n){var i;let c=((i=ue[J()])==null?void 0:i[e])||ue.en[e]||e;for(const v of n)c=c.replace("%s",String(v));return c}function _e(e,n){return e&&t(`reason.${e}`)||n||t("empty")}function he(e){if(e.statusCode==="unavailable")return t("unavailableExplanation");if(e.statusCode==="normal")return t("reason.normal");if((e.reasonCode==="context_deviation"||e.reasonCode==="unexpected_value")&&e.actual!==void 0&&e.expected!==void 0){const n=e.actual<e.expected?"low":"high",d=e.reasonCode==="context_deviation"?`reason.context_${n}`:`reason.unexpected_${n}`,c=t(d);if(c!==d)return c}return _e(e.reasonCode,e.reason)}function Fe(e){return e?t(`baseline_${e}`):"–"}function ze(e){return e.name==="context"||e.reasonCode==="context_deviation"?t("contextDeviation"):e.name==="value"||e.reasonCode==="unexpected_value"?t("valueDeviation"):e.name==="rate"||e.reasonCode==="unexpected_rate_change"?t("rateDeviation"):e.name==="stuck"||e.reasonCode==="stuck_value"?t("stuckDetection"):e.name==="changePoint"||e.reasonCode==="persistent_level_shift"?t("levelShift"):e.name==="trend"||e.reasonCode==="unusual_trend"?t("trendDetection"):e.name}function le(e,n){return e.split("|").map(d=>{const c=d.lastIndexOf("=");if(c<0)return d;const i=d.slice(0,c),v=d.slice(c+1),l=(n==null?void 0:n[i])||i;return v==="true"?`${l} – ${J()==="de"?"eingeschaltet":"on"}`:v==="false"?`${l} – ${J()==="de"?"ausgeschaltet":"off"}`:`${l}=${v}`}).join(", ")}function me(e,n,d){const c=[oe(e.timestamp),`${t("chartValue")}: ${F(e.value)}${d.unit?` ${d.unit}`:""}`];if(!n)return c.join(`
|
|
2
|
+
`);n.decisionLow!==void 0&&n.decisionHigh!==void 0?c.push(`${t("chartExpected")}: ${F(n.decisionLow)}–${F(n.decisionHigh)}${d.unit?` ${d.unit}`:""}`):c.push(t("chartExpectedUnavailable"));const i=n.statusCode||(n.detected?"anomaly":"normal");if(c.push(`${t("chartStatus")}: ${t(`status.${i}`)}`),i!=="normal"){if(c.push(`${t("chartReason")}: ${_e(n.reasonCode)}`),(n.reasonCode==="unexpected_value"||n.reasonCode==="context_deviation")&&n.decisionLow!==void 0&&n.decisionHigh!==void 0){const l=e.value<n.decisionLow?n.decisionLow-e.value:e.value-n.decisionHigh,u=e.value<n.decisionLow?"below":"above";c.push(`${t("chartDeviation")}: ${F(l)}${d.unit?` ${d.unit}`:""} ${t(`deviation.${u}`)}`)}}else c.push(`${t("chartReason")}: ${t("chartNormalExplanation")}`);return n.score!==void 0&&c.push(`${t("chartAssessment")}: ${F(n.score)} %`),n.activeContext&&c.push(`${t("context")}: ${le(n.activeContext,d.contextLabels)}`),c.join(`
|
|
3
|
+
`)}function He({source:e,socket:n,target:d,refreshKey:c}){var K;const[i,v]=z(!1),[l,u]=z(24),[b,x]=z(),[C,k]=z(600),P=de(new Map),$=de(null);ie(()=>{if(!i||!$.current||typeof ResizeObserver>"u")return;const a=()=>{var m;const N=(m=$.current)==null?void 0:m.clientWidth;N&&N>0&&k(N)};a();const p=new ResizeObserver(a);return p.observe($.current),()=>p.disconnect()},[i]),ie(()=>{P.current.clear(),i&&x(void 0)},[c]),ie(()=>{if(!i||!(n!=null&&n.sendTo))return;const a=P.current.get(l);if(a){x(a);return}n.sendTo(d,"chartData",{sourceId:e.id,start:Date.now()-l*36e5,end:Date.now(),limit:500}).then(p=>{P.current.set(l,p.data),x(p.data)})},[l,i,c,n,e.id,d]);const h=(b==null?void 0:b.samples)||[],M=(b==null?void 0:b.diagnostics)||[],y=h.map(a=>a.value);if(!i)return r(q,{size:"small",onClick:()=>v(!0),sx:{mt:1},children:t("chart")});if(!(b!=null&&b.available))return o(Q,{sx:{mt:1},children:[r(q,{size:"small",onClick:()=>v(!1),children:t("chart")}),r(re,{severity:"info",sx:{mt:1},children:t("chartUnavailable")})]});if(!h.length)return o(Q,{sx:{mt:1},children:[r(q,{size:"small",onClick:()=>v(!1),children:t("chart")}),r(re,{severity:"info",sx:{mt:1},children:t("chartUnavailable")})]});const S=M.filter(a=>a.timestamp>=h[0].timestamp&&a.timestamp<=h[h.length-1].timestamp),A=e.evaluation.activeContext,D=[];for(let a=0;a<S.length;a++){const p=S[a];if(!A||p.activeContext!==A)continue;const N=((K=S[a+1])==null?void 0:K.timestamp)??h[h.length-1].timestamp;D.push({start:p.timestamp,end:N})}const w=S.filter(a=>a.decisionLow!==void 0&&a.decisionHigh!==void 0),I=[];let G=!1;for(const a of S){if(a.decisionLow===void 0||a.decisionHigh===void 0){G=!0;continue}const p=I[I.length-1];G||!p||p[p.length-1].timestamp<a.timestamp-7200*1e3?(I.push([a]),G=!1):p.push(a)}const f=Ne(y,w.flatMap(a=>[a.decisionLow,a.decisionHigh])),V=f.min,X=f.max,U=X-V,B=44,W=Math.max(B+40,C-8),T=a=>B+(a-h[0].timestamp)/Math.max(1,h[h.length-1].timestamp-h[0].timestamp)*(W-B),E=a=>84-(a-V)/U*76,ee=a=>{let p,N=Number.POSITIVE_INFINITY;for(const m of S){const g=Math.abs(m.timestamp-a);g<N&&(p=m,N=g)}return p},te=h.map(a=>`${T(a.timestamp)},${E(a.value)}`).join(" "),j=a=>new Date(a).toLocaleString(void 0,{dateStyle:l>24?"short":void 0,timeStyle:"short"}),ne=S.filter((a,p)=>p>0&&a.activeContext!==S[p-1].activeContext),Z=S.filter(a=>a.statusCode==="anomaly"||!a.statusCode&&a.detected).length,ae=S.filter(a=>a.statusCode==="deviating").length;return o(Q,{ref:$,sx:{mt:1,width:"100%"},children:[o(H,{direction:"row",spacing:.5,alignItems:"center",children:[r(q,{size:"small",onClick:()=>v(!1),children:t("chart")}),[[1,"hour"],[6,"sixHours"],[24,"day"],[168,"week"]].map(([a,p])=>r(q,{size:"small",variant:l===a?"contained":"text",onClick:()=>u(Number(a)),children:t(p)},String(a)))]}),o("svg",{viewBox:`0 0 ${C} 100`,width:"100%",height:"220",role:"img","aria-label":t("chart"),style:{background:"rgba(127,127,127,0.08)",marginTop:8},children:[r("line",{x1:B,y1:"8",x2:B,y2:"84",stroke:"currentColor",opacity:"0.35"}),r("line",{x1:B,y1:"84",x2:W,y2:"84",stroke:"currentColor",opacity:"0.35"}),r("text",{x:B,y:"96",fontSize:"3",fill:"currentColor",children:j(h[0].timestamp)}),r("text",{x:W,y:"96",textAnchor:"end",fontSize:"3",fill:"currentColor",children:j(h[h.length-1].timestamp)}),o("text",{x:"1",y:"10",fontSize:"3",fill:"currentColor",children:[F(X),e.unit?` ${e.unit}`:""]}),o("text",{x:"1",y:"84",fontSize:"3",fill:"currentColor",children:[F(V),e.unit?` ${e.unit}`:""]}),I.map((a,p)=>r(se.Fragment,{children:r("polygon",{fill:"#90caf9",opacity:"0.12",points:[...a.map(N=>`${T(N.timestamp)},${E(N.decisionLow)}`),...a.slice().reverse().map(N=>`${T(N.timestamp)},${E(N.decisionHigh)}`)].join(" ")})},`bounds-${p}`)),D.map(a=>r("rect",{x:T(a.start),width:Math.max(.2,T(a.end)-T(a.start)),y:"8",height:"76",fill:"#ab47bc",opacity:"0.08",children:r("title",{children:t("chartContext")})},`context-band-${a.start}`)),r("polyline",{fill:"none",stroke:"#2196f3",strokeWidth:"1.5",points:te,children:r("title",{children:t("chartValue")})}),ne.map(a=>r("line",{x1:T(a.timestamp),x2:T(a.timestamp),y1:"8",y2:"84",stroke:"#ab47bc",strokeDasharray:"1 2",opacity:"0.7",children:r("title",{children:`${t("chartContext")}: ${le(a.activeContext,e.contextLabels)}`})},`context-${a.timestamp}`)),M.filter(a=>(a.statusCode==="anomaly"||!a.statusCode&&a.detected)&&a.timestamp>=h[0].timestamp&&a.timestamp<=h[h.length-1].timestamp).map(a=>r("polygon",{points:`${T(a.timestamp)},${E(a.actual)-2.5} ${T(a.timestamp)-2.5},${E(a.actual)+2} ${T(a.timestamp)+2.5},${E(a.actual)+2}`,fill:"#f44336",role:"img",children:r("title",{children:me({value:a.actual,timestamp:a.timestamp},a,e)})},a.timestamp)),h.map(a=>{const p=ee(a.timestamp);return r("circle",{cx:T(a.timestamp),cy:E(a.value),r:"1.2",fill:(p==null?void 0:p.statusCode)==="deviating"?"#ff9800":"#2196f3",children:r("title",{children:me(a,p,e)})},a.timestamp)}),h.length>0&&r("line",{x1:T(h[h.length-1].timestamp),x2:T(h[h.length-1].timestamp),y1:"8",y2:"84",stroke:"#fff",opacity:"0.5",children:r("title",{children:t("chartNow")})})]}),o(H,{direction:"row",spacing:2,sx:{mt:.5},children:[o(s,{variant:"caption",children:["━ ",t("chartValue")]}),w.length>0&&o(s,{variant:"caption",color:"info.main",children:["┄ ",t("chartExpected")]}),D.length>0&&o(s,{variant:"caption",color:"secondary",children:["▧ ",t("chartContext")]}),S.some(a=>a.statusCode==="anomaly"||!a.statusCode&&a.detected)&&o(s,{variant:"caption",color:"error",children:["▲ ",t("chartAnomaly")]}),ae>0&&o(s,{variant:"caption",color:"warning.main",children:["● ",t("chartDeviating")]})]}),Z>0&&r(s,{variant:"caption",color:"text.secondary",sx:{display:"block",mt:.5},children:t(Z===1?"historicalAnomaliesOne":"historicalAnomaliesMany",Z)}),e.evaluation.activeContext&&D.length===0&&r(s,{variant:"caption",color:"text.secondary",children:t("chartNoContext")}),!w.length&&r(s,{variant:"caption",color:"text.secondary",children:t("chartNoBounds")})]})}function L(e){return typeof e=="number"&&Number.isFinite(e)?new Intl.NumberFormat().format(e):""}function F(e){return typeof e=="number"&&Number.isFinite(e)?new Intl.NumberFormat(void 0,{maximumFractionDigits:1}).format(e):""}function oe(e){return typeof e=="number"&&Number.isFinite(e)?new Date(e).toLocaleString():""}function Ie(e){return t(`status.${e||"learning"}`)}function Oe(e){return e.statusCode==="anomaly"&&e.detected===!1?"deviating":e.statusCode||"learning"}function Re(e){return e==="anomaly"?"error":e==="deviating"?"warning":e==="normal"?"success":e==="insufficient_data"||e==="unavailable"?"warning":"default"}function Ve({source:e,socket:n,target:d,refreshKey:c}){const[i,v]=z(!1),l=e.evaluation||{},u=Oe(l),b=l.decisionLow!==void 0&&l.decisionHigh!==void 0?`${F(l.decisionLow)}–${F(l.decisionHigh)}`:void 0,x=l.relevantSampleCount??(l.baselineScope==="context"?l.contextSampleCount:l.sampleCount),C=l.relevantSampleScope??l.baselineScope,k=l.requiredSamples,P=l.relevantSampleScope??l.baselineScope,$=l.relevantSampleCount??l.baselineSampleCount,h=l.evaluationAvailable??(k!==void 0&&$!==void 0&&$>=k),M=u==="unavailable"||x===void 0?void 0:C==="context"&&k!==void 0?x>=k?t("comparisonSamples",x):t("learnedContext",x,k):k!==void 0&&x<k?t("learned",x,k):t("basedOn",x);return r(ye,{variant:"outlined",sx:{height:"100%"},children:o(ge,{children:[o(H,{direction:"row",sx:{justifyContent:"space-between",alignItems:"center",gap:1},children:[r(s,{variant:"h6",component:"h2",noWrap:!0,title:e.id,children:e.name}),r(be,{label:Ie(u),color:Re(u)})]}),r(s,{variant:"subtitle1",sx:{mt:1},children:he(l)}),o(R,{container:!0,spacing:2,sx:{mt:.5},children:[l.actual!==void 0&&o(R,{item:!0,xs:12,sm:6,children:[r(s,{variant:"body2",color:"text.secondary",children:t("current")}),o(s,{children:[L(l.actual),e.unit?` ${e.unit}`:""]})]}),b&&o(R,{item:!0,xs:12,sm:6,children:[r(s,{variant:"body2",color:"text.secondary",children:t("decisionRange")}),o(s,{children:[b,e.unit?` ${e.unit}`:""]})]})]}),M&&r(s,{variant:"body2",color:"text.secondary",sx:{mt:1},children:M}),u==="deviating"&&r(s,{variant:"body2",sx:{mt:1},children:t("pendingExplanation")}),u==="normal"&&b&&r(s,{variant:"body2",color:"text.secondary",sx:{mt:1},children:t("chartNormalExplanation")}),l.reasonCode&&u!=="normal"&&u!=="deviating"&&r(s,{variant:"body2",sx:{mt:1},children:he(l)}),u==="anomaly"&&l.anomalySince&&r(s,{variant:"body2",color:"text.secondary",sx:{mt:1},children:t("since",oe(l.anomalySince))}),l.activeContext&&r(s,{variant:"body2",color:"text.secondary",sx:{mt:1},children:t("context",le(l.activeContext,e.contextLabels))}),e.predictive&&e.predictive.status!=="disabled"&&o(Q,{sx:{mt:1},children:[o(s,{variant:"body2",color:"text.secondary",children:[t("predictive"),": ",t(`predictive_${e.predictive.status}`)]}),e.predictive.status==="ready"&&e.predictive.points.length>0&&o(s,{variant:"body2",children:[e.predictive.points[0].value.toLocaleString()," (",e.predictive.horizonMinutes," ","min)"]})]}),r(He,{source:e,socket:n,target:d,refreshKey:c}),r(q,{size:"small",onClick:()=>v(y=>!y),endIcon:i?r(we,{}):r(ke,{}),sx:{mt:1},"aria-expanded":i,children:t("details")}),o(xe,{in:i,children:[r(Se,{sx:{my:1}}),o(H,{spacing:.5,children:[o(s,{variant:"body2",children:[t("overall"),":"," ",l.score!==void 0?`${L(l.score)} %`:"–"]}),o(s,{variant:"body2",children:[t("baseline"),": ",Fe(P),!h&&` – ${t("baseline_learning")}`," (",$??0," ",t("samples"),")"]}),l.contextSampleCount!==void 0&&o(s,{variant:"body2",children:[t("contextSamples"),": ",l.contextSampleCount]}),l.lastEvaluated&&o(s,{variant:"body2",children:[t("lastEvaluation"),": ",oe(l.lastEvaluated)]}),(l.detectors||[]).map(y=>o(s,{variant:"body2",children:[ze(y),": ",L(y.score)," %"]},`${y.name}-${y.reasonCode}`))]})]})]})})}function We(e){if(e>=60&&e%60===0){const n=e/60,d=J()==="de"?`${n} ${n===1?"Stunde":"Stunden"}`:`${n} ${n===1?"hour":"hours"}`;return t("forecastExpectedIn",d)}return t("forecastExpectedIn",J()==="de"?`${e} Minuten`:`${e} minutes`)}function ve(e){if(e===0)return t("forecastNow");const n=Math.round(e/6e4);return n>=60&&n%60===0?`+${n/60} h`:`+${n} min`}function Ze(e){return t(e==="seasonal"?"modelSeasonal":e==="timeOfDay"?"modelTimeOfDay":"modelLevelTrend")}function Qe(e){return t(e==="auto"?"seasonalityAuto":e==="manual"?"seasonalityManual":"seasonalityOff")}function fe(e){if(!e)return;const n=`selection${e.split("-").map(c=>c.charAt(0).toUpperCase()+c.slice(1)).join("")}`,d=t(n);return d===n?void 0:d}function pe(e){return e==="history"?t("sourceHistory"):e==="persisted"?t("sourcePersisted"):e==="live"?t("sourceLive"):e==="mixed"?t("sourceMixed"):void 0}function _(e,n=""){return Number.isFinite(e)?`${L(e)}${n}`:void 0}function Ge(e){switch(e){case"iqr":return t("scaleSource_iqr");case"p95-p05":case"p95p05":case"p95_p05":return t("scaleSource_p95p05");case"mad":return t("scaleSource_mad");case"range":return t("scaleSource_range");case"none":return t("scaleSource_none");default:return t("notAvailable")}}function Ue({source:e}){var B,W,T,E,ee,te,j,ne,Z,ae,K,a,p,N;const n=e.predictive,[d,c]=z(!1),i=n.diagnostics,v=e.evaluation.actual,l=n.generatedAt??e.evaluation.lastEvaluated??Date.now(),u=qe(v,l,n.horizonMinutes,n.points),b=u.forecastPoints,x=u.yDomain,C=44,k=278,P=10,$=112,h=k-C,M=m=>$-(m-x.min)/Math.max(.001,x.max-x.min)*($-P),y=b.map((m,g)=>{const Y=u.startTimestamp,ce=u.endTimestamp,Ce=ce>Y?C+Math.max(0,Math.min(1,(m.timestamp-Y)/(ce-Y)))*h:g===0?C:k,De=M(m.value);return`${g?"L":"M"}${Ce.toFixed(1)},${De.toFixed(1)}`}).join(" "),S=b.at(-1),A=((B=i==null?void 0:i.model)==null?void 0:B.selectedType)??n.selectedModelType,D=((W=i==null?void 0:i.model)==null?void 0:W.selectionReason)??n.selectionReason,w=i==null?void 0:i.quality,I=n.qualityClass??((T=w==null?void 0:w.qualityClassification)==null?void 0:T.class)??"unknown",G=(n.status==="ready"||n.status==="unreliable")&&b.length>0,f=i==null?void 0:i.seasonality,V=Number.isFinite(f==null?void 0:f.periodicityScore)?(f==null?void 0:f.periodicityScore)*100:void 0,X=n.status!=="disabled",U=(m,g)=>{const Y=g!=null&&g.available&&Number.isFinite(g.mae)?`${t("mae")} ${L(g.mae)}${g!=null&&g.available&&Number.isFinite(g.normalizedError)?` · ${t("normalizedError")} ${L(g.normalizedError*100)} %`:""}`:t("notAvailable");return o(H,{spacing:.25,sx:{minWidth:0},children:[o(s,{variant:"body2",sx:{overflowWrap:"anywhere"},children:[m,": ",Y]}),(g==null?void 0:g.qualityScaleNearZero)&&r(s,{variant:"body2",color:"text.secondary",sx:{overflowWrap:"anywhere"},children:t("qualityScaleNearZero")})]})};return r(ye,{variant:"outlined",sx:{height:"100%"},children:o(ge,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[o(H,{direction:"row",sx:{justifyContent:"space-between",alignItems:"flex-start",gap:1},children:[r(s,{variant:"h6",sx:{fontWeight:600},children:e.name}),r(be,{label:t(`predictive_${n.status}`),color:n.status==="ready"?"success":n.status==="disabled"?"default":"warning",size:"small"})]}),Number.isFinite(v)&&o(s,{variant:"body2",sx:{mt:1},children:[t("current"),": ",L(v),e.unit?` ${e.unit}`:""]}),n.status==="learning"&&r(s,{variant:"body2",sx:{mt:1},children:t("learned",n.trainingSampleCount,n.minimumTrainingSamples??e.evaluation.requiredSamples??0)}),(n.status==="ready"||n.status==="unreliable")&&S&&o(O,{children:[r(s,{variant:"body2",sx:{mt:1},children:We(n.horizonMinutes)}),o(s,{variant:"body1",sx:{fontWeight:500},children:[L(S.value),e.unit?` ${e.unit}`:""]}),r(s,{variant:"body2",sx:{mt:1},children:t(I==="good"?"forecastQualityGood":I==="limited"?"forecastQualityLimited":I==="poor"?"forecastQualityPoor":"forecastQualityUnknown")})]}),n.status==="error"&&r(s,{variant:"body2",sx:{mt:1},children:t("forecastError")}),G?r(O,{children:o("svg",{viewBox:"0 0 280 140",width:"100%",height:"160",role:"img","aria-label":t("predictive"),children:[u.yTicks.map(m=>o(se.Fragment,{children:[r("line",{x1:C,x2:k,y1:M(m),y2:M(m),stroke:"currentColor",opacity:"0.12"}),r("text",{x:C-4,y:M(m)+3,textAnchor:"end",fontSize:"8",fill:"currentColor",opacity:"0.75",children:Ee(m,u.yTickDecimals)})]},`y-${m}`)),r("text",{x:C,y:"8",fontSize:"7",fill:"currentColor",opacity:"0.65",children:e.unit||t("chartValue")}),u.xTicks.map(m=>{const g=C+m/Math.max(1,u.endTimestamp-u.startTimestamp)*h;return o(se.Fragment,{children:[r("line",{x1:g,x2:g,y1:P,y2:$,stroke:"currentColor",opacity:"0.08"}),r("text",{x:g,y:"130",textAnchor:m===0?"start":m===u.xTicks.at(-1)?"end":"middle",fontSize:"8",fill:"currentColor",opacity:"0.75",children:ve(m)})]},`x-${m}`)}),u.actualPoint&&r("circle",{cx:C,cy:M(u.actualPoint.value),r:"3",fill:"currentColor"}),r("path",{d:y,fill:"none",stroke:"currentColor",strokeWidth:"2",strokeDasharray:"6 4"}),b.map(m=>{const g=C+Math.max(0,Math.min(1,(m.timestamp-u.startTimestamp)/Math.max(1,u.endTimestamp-u.startTimestamp)))*h;return r("circle",{cx:g,cy:M(m.value),r:"2",fill:"currentColor",children:r("title",{children:`${ve(m.timestamp-u.startTimestamp)}: ${F(m.value)}${e.unit?` ${e.unit}`:""}`})},`${m.timestamp}-${m.value}`)})]})}):null,X&&o(O,{children:[r(Q,{sx:{flexGrow:1,minHeight:8}}),r(q,{size:"small",onClick:()=>c(m=>!m),endIcon:d?r(we,{}):r(ke,{}),sx:{mt:1},"aria-expanded":d,children:t("predictiveDetails")}),o(xe,{in:d,children:[r(Se,{sx:{my:1}}),o(H,{spacing:.5,children:[r(s,{variant:"subtitle2",children:t("model")}),A&&o(s,{variant:"body2",children:[t("selectedModel"),": ",Ze(A)]}),Number.isFinite((E=i==null?void 0:i.model)==null?void 0:E.algorithmVersion)&&o(s,{variant:"body2",children:[t("modelVersion"),": ",(ee=i==null?void 0:i.model)==null?void 0:ee.algorithmVersion]}),_((te=i==null?void 0:i.model)==null?void 0:te.intervalMinutes,` ${t("minutesShort")}`)&&o(s,{variant:"body2",children:[t("modelInterval"),":"," ",_((j=i==null?void 0:i.model)==null?void 0:j.intervalMinutes,` ${t("minutesShort")}`)]}),o(s,{variant:"body2",children:[t("trainingSamples"),": ",n.trainingSampleCount]}),pe(n.trainingSource)&&o(s,{variant:"body2",children:[t("trainingSource"),": ",pe(n.trainingSource)]}),_((ne=i==null?void 0:i.model)==null?void 0:ne.rawIntervalMinutes,` ${t("minutesShort")}`)&&o(s,{variant:"body2",children:[t("rawInterval"),":"," ",_((Z=i==null?void 0:i.model)==null?void 0:Z.rawIntervalMinutes,` ${t("minutesShort")}`)]}),_((ae=i==null?void 0:i.model)==null?void 0:ae.historySpanMinutes,` ${t("minutesShort")}`)&&o(s,{variant:"body2",children:[t("historySpan"),":"," ",_((K=i==null?void 0:i.model)==null?void 0:K.historySpanMinutes,` ${t("minutesShort")}`)]}),_((a=i==null?void 0:i.model)==null?void 0:a.requestedHistorySpanMinutes,` ${t("minutesShort")}`)&&o(s,{variant:"body2",children:[t("requestedHistorySpan"),":"," ",_(i.model.requestedHistorySpanMinutes,` ${t("minutesShort")}`)]}),((p=i==null?void 0:i.model)==null?void 0:p.timeOfDayAvailable)!==void 0&&o(O,{children:[o(s,{variant:"body2",children:[t("modelTimeOfDay"),":"," ",i.model.timeOfDayAvailable?t("yes"):t("no")]}),_(i.model.timeOfDayDaysCovered,` ${t("daysCovered")}`)&&o(s,{variant:"body2",children:[t("daysCovered"),": ",i.model.timeOfDayDaysCovered]}),_(i.model.timeOfDayBucketCount,` ${t("bucketCount")}`)&&o(s,{variant:"body2",children:[t("bucketCount"),": ",i.model.timeOfDayBucketCount]}),_(i.model.timeOfDayBucketCoverage!==void 0?i.model.timeOfDayBucketCoverage*100:void 0," %")&&o(s,{variant:"body2",children:[t("bucketCoverage"),":"," ",_((i.model.timeOfDayBucketCoverage??0)*100," %")]})]}),((N=i==null?void 0:i.model)==null?void 0:N.lastTrainingAt)&&o(s,{variant:"body2",children:[t("lastTraining"),": ",oe(i.model.lastTrainingAt)]}),f&&o(O,{children:[r(s,{variant:"subtitle2",sx:{mt:1},children:t("seasonality")}),o(s,{variant:"body2",children:[t("seasonalityMode"),": ",Qe(f.mode)]}),f.periodicityDetected!==void 0&&o(s,{variant:"body2",children:[t("periodDetected"),":"," ",f.periodicityDetected?t("yes"):t("no")]}),_(f.detectedPeriodMinutes,` ${t("minutesShort")}`)&&o(s,{variant:"body2",children:[t("detectedPeriod"),": ca."," ",_(f.detectedPeriodMinutes,` ${t("minutesShort")}`)]}),_(V," %")&&o(s,{variant:"body2",children:[t("periodicityScore"),": ",_(V," %")]}),_(f.peakProminence!==void 0?f.peakProminence*100:void 0," %")&&o(s,{variant:"body2",children:[t("peakProminence"),":"," ",_((f.peakProminence??0)*100," %")]}),f.harmonicPeaks!==void 0&&o(s,{variant:"body2",children:[t("harmonicPeaks"),": ",f.harmonicPeaks]}),_(f.secondBestPeriodMinutes,` ${t("minutesShort")}`)&&o(s,{variant:"body2",children:[t("secondBestPeriod"),":"," ",_(f.secondBestPeriodMinutes,` ${t("minutesShort")}`)]}),_(f.secondBestPeriodicityScore!==void 0?f.secondBestPeriodicityScore*100:void 0," %")&&o(s,{variant:"body2",children:[t("secondBestScore"),":"," ",_((f.secondBestPeriodicityScore??0)*100," %")]}),f.candidateScores&&o(s,{variant:"body2",children:[t("acfNeighbourScores"),":"," ",Object.entries(f.candidateScores).map(([m,g])=>`${m} ${L(g*100)} %`).join(" · ")]}),f.atLowerBoundary!==void 0&&o(s,{variant:"body2",children:[t("lowerBoundary"),": ",f.atLowerBoundary?t("yes"):t("no")]}),Number.isFinite(f.completePeriods)&&o(s,{variant:"body2",children:[t("completePeriods"),": ",f.completePeriods]}),f.used!==void 0&&o(s,{variant:"body2",children:[t("seasonalityUsed"),": ",f.used?t("yes"):t("no")]})]}),w&&o(O,{children:[w.qualityClassification&&o(O,{children:[o(s,{variant:"body2",children:[t("qualityClass"),":"," ",t(w.qualityClassification.class==="good"?"qualityGood":w.qualityClassification.class==="limited"?"qualityLimited":w.qualityClassification.class==="poor"?"qualityPoor":"qualityUnknown")]}),Number.isFinite(w.qualityClassification.relativeError)&&o(s,{variant:"body2",children:[t("relativeError"),":"," ",L(w.qualityClassification.relativeError*100)," ","%"]}),Number.isFinite(w.qualityClassification.scale)&&o(s,{variant:"body2",children:[t("qualityScale"),":"," ",L(w.qualityClassification.scale)]}),o(s,{variant:"body2",children:[t("scaleSource"),":"," ",Ge(w.qualityClassification.scaleSource)]})]}),r(s,{variant:"subtitle2",sx:{mt:1},children:t("backtest")}),U(t("levelTrend"),w.levelTrend),U(t("seasonal"),w.seasonal),U(t("modelTimeOfDay"),w.timeOfDay),w.holdoutSamples!==void 0&&o(s,{variant:"body2",children:[t("holdoutSamples"),": ",w.holdoutSamples]})]}),fe(D)&&o(s,{variant:"body2",sx:{mt:1},children:[t("selection"),": ",fe(D)]})]})]})]})]})})}function je(e){var P,$,h,M;const[n,d]=z(((P=e.data)==null?void 0:P.sources)||[]),[c,i]=z(),[v,l]=z(0),[u,b]=z("current"),x=e.socket||(($=e.oContext)==null?void 0:$.socket),C=Me(()=>{var A,D;const y=e.adapterName||((A=e.oContext)==null?void 0:A.adapterName)||"anomaly-detection",S=e.instance??((D=e.oContext)==null?void 0:D.instance)??0;return String(S).includes(".")?String(S):`${y}.${S}`},[e.adapterName,e.instance,(h=e.oContext)==null?void 0:h.adapterName,(M=e.oContext)==null?void 0:M.instance]),k=$e(async()=>{var y,S;if(!(x!=null&&x.sendTo)){d(((y=e.data)==null?void 0:y.sources)||[]);return}try{l(w=>w+1);const A=await x.sendTo(C,"tab",{}),D=(S=A==null?void 0:A.data)==null?void 0:S.sources;Array.isArray(D)?(d(D),i(void 0)):i(t("loadError"))}catch{i(t("loadError"))}},[x,e.data,C]);return ie(()=>{k()},[k]),o(Q,{sx:{p:2},children:[o(H,{direction:"row",sx:{mb:2,justifyContent:"space-between",alignItems:"center"},children:[r(s,{variant:"h5",component:"h1",children:t("title")}),r(q,{onClick:k,startIcon:r(Te,{}),"aria-label":t("refresh"),children:t("refresh")})]}),o(H,{direction:"row",spacing:1,sx:{mb:2},children:[r(q,{variant:u==="current"?"contained":"text",onClick:()=>b("current"),children:t("currentView")}),r(q,{variant:u==="forecast"?"contained":"text",onClick:()=>b("forecast"),children:t("forecastView")})]}),c&&r(re,{severity:"error",sx:{mb:2},children:t("loadError")}),u==="forecast"?r(R,{container:!0,spacing:2,children:n.map(y=>({...y,predictive:y.predictive??{status:"disabled",horizonMinutes:0,points:[],trainingSampleCount:0}})).map(y=>r(R,{item:!0,xs:12,md:6,xl:4,children:r(Ue,{source:y})},y.id))}):n.length===0?r(re,{severity:"info",children:t("empty")}):r(R,{container:!0,spacing:2,children:n.map(y=>r(R,{item:!0,xs:12,md:6,xl:4,children:r(Ve,{source:y,socket:x,target:C,refreshKey:v})},y.id))})]})}const at={AnomalyDashboard:je};export{je as AnomalyDashboard,at as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as pi}from"./_commonjsHelpers-D6-XlEtG.js";import{ag as fr,ah as ui,T as vr,ai as xn,aj as fi,ak as vi,al as mi,am as gi,k as hi,an as bi,ao as yi,ap as xi,Y as mr,f as z,B as fo,aq as qo,ae as Ci,m as J,H as Z,I as nt,P as gt,a4 as Cn,j as ot,K as F,L as at,i as A,M as gr,A as hr,R as Vt,u as Go,V as Si}from"./createSvgIcon-
|
|
1
|
+
import{g as pi}from"./_commonjsHelpers-D6-XlEtG.js";import{ag as fr,ah as ui,T as vr,ai as xn,aj as fi,ak as vi,al as mi,am as gi,k as hi,an as bi,ao as yi,ap as xi,Y as mr,f as z,B as fo,aq as qo,ae as Ci,m as J,H as Z,I as nt,P as gt,a4 as Cn,j as ot,K as F,L as at,i as A,M as gr,A as hr,R as Vt,u as Go,V as Si}from"./createSvgIcon-DfgUKbzv.js";import{j as te,e as U,n as Sn,t as wi,c as ht,R as br,b as St,a as ae,_ as wt,h as kt,v as Pi,i as ke,d as Zt,l as Tt,g as se,f as q,m as Oe,k as le}from"./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react__loadShare__.js-D_6ac7UX.js";import{a as R,_ as Pt}from"./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-3izusDYF.js";import{b as to,c as Ii}from"./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react_mf_2_dom__loadShare__.js-DKspmCZo.js";var yr={exports:{}},it={};/** @license React v16.13.1
|
|
2
2
|
* react-is.production.min.js
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react__loadShare__.js-
|
|
1
|
+
import"./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__loadShare__react__loadShare__.js-D_6ac7UX.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as a}from"./vite-preload-helper-ckwbz45p.js";import"./index-wphymIgy.js";const o=r=>{let t=r;for(let e=0;e<5;e++){const u=t==null?void 0:t.default;if(!u||typeof u!="object"||Object.keys(u).length===0)break;const l=Object.keys(t).filter(s=>s!=="default").map(s=>t[s]);if(l.length>0&&l.some(s=>s!==void 0))break;t=u}return t},n={react:async()=>await a(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild__react__prebuild__-Cta2Ac0K.js"),[]),"react/jsx-runtime":async()=>await a(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-BKVK5lr0.js"),[]),"react-dom":async()=>await a(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild__react_mf_2_dom__prebuild__-
|
|
1
|
+
import{_ as a}from"./vite-preload-helper-ckwbz45p.js";import"./index-wphymIgy.js";const o=r=>{let t=r;for(let e=0;e<5;e++){const u=t==null?void 0:t.default;if(!u||typeof u!="object"||Object.keys(u).length===0)break;const l=Object.keys(t).filter(s=>s!=="default").map(s=>t[s]);if(l.length>0&&l.some(s=>s!==void 0))break;t=u}return t},n={react:async()=>await a(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild__react__prebuild__-Cta2Ac0K.js"),[]),"react/jsx-runtime":async()=>await a(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-BKVK5lr0.js"),[]),"react-dom":async()=>await a(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild__react_mf_2_dom__prebuild__-BRYx5VjQ.js"),[]),"@iobroker/json-config":async()=>await a(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-UiBqnVpJ.js"),[]),"@mui/material":async()=>await a(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_mui_mf_1_material__prebuild__-DGn1RJbk.js"),[]),"@mui/icons-material":async()=>await a(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_mui_mf_1_icons_mf_2_material__prebuild__-C7uH-ue1.js"),[])},i={react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,materialize:!0,eager:!1,from:"AnomalyDetectionAdmin",canLiveRebind:!0,async get(){i.react.loaded=!0;const{react:r}=n,t=await r(),e=o({...t});return e.__esModule!==!0&&Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),function(){return e}},shareConfig:{singleton:!0,requiredVersion:"*",strictVersion:!1,eager:!1}},"react/jsx-runtime":{name:"react/jsx-runtime",version:"18.3.1",scope:["default"],loaded:!1,materialize:!0,eager:!1,from:"AnomalyDetectionAdmin",canLiveRebind:!0,async get(){i["react/jsx-runtime"].loaded=!0;const{"react/jsx-runtime":r}=n,t=await r(),e=o({...t});return e.__esModule!==!0&&Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),function(){return e}},shareConfig:{singleton:!0,requiredVersion:"*",strictVersion:!1,eager:!1}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,materialize:!0,eager:!1,from:"AnomalyDetectionAdmin",canLiveRebind:!0,async get(){i["react-dom"].loaded=!0;const{"react-dom":r}=n,t=await r(),e=o({...t});return e.__esModule!==!0&&Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),function(){return e}},shareConfig:{singleton:!0,requiredVersion:"*",strictVersion:!1,eager:!1}},"@iobroker/json-config":{name:"@iobroker/json-config",version:"8.0.2",scope:["default"],loaded:!1,materialize:!0,eager:!1,from:"AnomalyDetectionAdmin",canLiveRebind:!0,async get(){i["@iobroker/json-config"].loaded=!0;const{"@iobroker/json-config":r}=n,t=await r(),e=o({...t});return e.__esModule!==!0&&Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),function(){return e}},shareConfig:{singleton:!0,requiredVersion:"*",strictVersion:!1,eager:!1}},"@mui/material":{name:"@mui/material",version:"6.5.0",scope:["default"],loaded:!1,materialize:!0,eager:!1,from:"AnomalyDetectionAdmin",canLiveRebind:!0,async get(){i["@mui/material"].loaded=!0;const{"@mui/material":r}=n,t=await r(),e=o({...t});return e.__esModule!==!0&&Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),function(){return e}},shareConfig:{singleton:!0,requiredVersion:"*",strictVersion:!1,eager:!1}},"@mui/icons-material":{name:"@mui/icons-material",version:"6.5.0",scope:["default"],loaded:!1,materialize:!0,eager:!1,from:"AnomalyDetectionAdmin",canLiveRebind:!0,async get(){i["@mui/icons-material"].loaded=!0;const{"@mui/icons-material":r}=n,t=await r(),e=o({...t});return e.__esModule!==!0&&Object.defineProperty(e,"__esModule",{value:!0,enumerable:!1}),function(){return e}},shareConfig:{singleton:!0,requiredVersion:"*",strictVersion:!1,eager:!1}}},d=[];export{d as usedRemotes,i as usedShared};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_commonjsHelpers-D6-XlEtG.js","assets/createSvgIcon-
|
|
2
|
-
import{_ as O}from"./vite-preload-helper-ckwbz45p.js";function v(e,n){for(var o=0;o<n.length;o++){const t=n[o];if(typeof t!="string"&&!Array.isArray(t)){for(const r in t)if(r!=="default"&&!(r in e)){const a=Object.getOwnPropertyDescriptor(t,r);a&&Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:()=>t[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const h="__mf_init__virtual:mf:__mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__mf_v__runtimeInit__mf_v__.js__";let c=globalThis[h];if(!c){let e,n;const o=new Promise((t,r)=>{e=t,n=r});c=globalThis[h]={initPromise:o,initResolve:e,initReject:n}}const P=c.initPromise,_="__mf_module_cache__";globalThis[_]||={share:{},remote:{}};globalThis[_].share||={};globalThis[_].remote||={};const i=globalThis[_],C=e=>{const n=i.pendingShareLoads||=[];n.push(e);const o=()=>{const t=n.indexOf(e);t!==-1&&n.splice(t,1)};return e.then(o,o),e};for(const e of Object.keys(i.share))if(e.startsWith("default:")){const n=e.slice(8);i.share[n]===void 0&&(i.share[n]=i.share[e])}else if(!e.includes(":")){const n="default:"+e;i.share[n]===void 0&&(i.share[n]=i.share[e])}const b=(e,n)=>{const o=e[n.canonical];if(o!==void 0)return o;const t=n.aliases||[];for(const r of t){if(!Object.prototype.hasOwnProperty.call(e,r))continue;const a=e[r];if(a!==void 0)return e[n.canonical]=a,a}},u=Symbol.for("module-federation.shared-cache-listeners"),k=e=>{let n=e[u];return n===void 0&&(n=Object.create(null),Object.defineProperty(e,u,{value:n,enumerable:!1,configurable:!1,writable:!1})),n},w=(e,n,o)=>{const t=k(e);(t[n.canonical]||=new Set).add(o)},m=Symbol.for("module-federation.shared-cache-owners"),A=e=>{let n=e[m];return n===void 0&&(n=Object.create(null),Object.defineProperty(e,m,{value:n,enumerable:!1,configurable:!1,writable:!1})),n},T=(e,n,o,t)=>{var s;e[n.canonical]=o;const r=n.aliases||[];for(const f of r)Object.defineProperty(e,f,{value:o,enumerable:!0,configurable:!0,writable:!0});e[m],A(e)[n.canonical]=t;const a=(s=e[u])==null?void 0:s[n.canonical];if(a)for(const f of a)f(o);return o},L=e=>{const n=(()=>{let o=e;for(let t=0;t<5;t++){const r=o==null?void 0:o.default;if(!r||typeof r!="object")break;const a=Object.keys(o).filter(s=>s!=="default").map(s=>o[s]);if(a.length>0&&a.some(s=>s!==void 0))break;o=r}return o})();return n&&Object.getPrototypeOf(n)===null?Object.assign({},n):n};let g,y,j,p,S;const d=e=>{y=e.JsonConfig,j=e.JsonConfigComponent,p=e.ConfigPanel,S=e.ConfigGeneric,g=e.default??e};w(i.share,{canonical:"default:@iobroker/json-config"},d);let l=b(i.share,{canonical:"default:@iobroker/json-config",aliases:["@iobroker/json-config"]});l===void 0?C(P.then(()=>{if(l=b(i.share,{canonical:"default:@iobroker/json-config",aliases:["@iobroker/json-config"]}),l!==void 0){d(l);return}return O(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_commonjsHelpers-D6-XlEtG.js","assets/createSvgIcon-DfgUKbzv.js","assets/TextField-Bqyrlhrz.js","assets/index-wphymIgy.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{_ as O}from"./vite-preload-helper-ckwbz45p.js";function v(e,n){for(var o=0;o<n.length;o++){const t=n[o];if(typeof t!="string"&&!Array.isArray(t)){for(const r in t)if(r!=="default"&&!(r in e)){const a=Object.getOwnPropertyDescriptor(t,r);a&&Object.defineProperty(e,r,a.get?a:{enumerable:!0,get:()=>t[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const h="__mf_init__virtual:mf:__mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__mf_v__runtimeInit__mf_v__.js__";let c=globalThis[h];if(!c){let e,n;const o=new Promise((t,r)=>{e=t,n=r});c=globalThis[h]={initPromise:o,initResolve:e,initReject:n}}const P=c.initPromise,_="__mf_module_cache__";globalThis[_]||={share:{},remote:{}};globalThis[_].share||={};globalThis[_].remote||={};const i=globalThis[_],C=e=>{const n=i.pendingShareLoads||=[];n.push(e);const o=()=>{const t=n.indexOf(e);t!==-1&&n.splice(t,1)};return e.then(o,o),e};for(const e of Object.keys(i.share))if(e.startsWith("default:")){const n=e.slice(8);i.share[n]===void 0&&(i.share[n]=i.share[e])}else if(!e.includes(":")){const n="default:"+e;i.share[n]===void 0&&(i.share[n]=i.share[e])}const b=(e,n)=>{const o=e[n.canonical];if(o!==void 0)return o;const t=n.aliases||[];for(const r of t){if(!Object.prototype.hasOwnProperty.call(e,r))continue;const a=e[r];if(a!==void 0)return e[n.canonical]=a,a}},u=Symbol.for("module-federation.shared-cache-listeners"),k=e=>{let n=e[u];return n===void 0&&(n=Object.create(null),Object.defineProperty(e,u,{value:n,enumerable:!1,configurable:!1,writable:!1})),n},w=(e,n,o)=>{const t=k(e);(t[n.canonical]||=new Set).add(o)},m=Symbol.for("module-federation.shared-cache-owners"),A=e=>{let n=e[m];return n===void 0&&(n=Object.create(null),Object.defineProperty(e,m,{value:n,enumerable:!1,configurable:!1,writable:!1})),n},T=(e,n,o,t)=>{var s;e[n.canonical]=o;const r=n.aliases||[];for(const f of r)Object.defineProperty(e,f,{value:o,enumerable:!0,configurable:!0,writable:!0});e[m],A(e)[n.canonical]=t;const a=(s=e[u])==null?void 0:s[n.canonical];if(a)for(const f of a)f(o);return o},L=e=>{const n=(()=>{let o=e;for(let t=0;t<5;t++){const r=o==null?void 0:o.default;if(!r||typeof r!="object")break;const a=Object.keys(o).filter(s=>s!=="default").map(s=>o[s]);if(a.length>0&&a.some(s=>s!==void 0))break;o=r}return o})();return n&&Object.getPrototypeOf(n)===null?Object.assign({},n):n};let g,y,j,p,S;const d=e=>{y=e.JsonConfig,j=e.JsonConfigComponent,p=e.ConfigPanel,S=e.ConfigGeneric,g=e.default??e};w(i.share,{canonical:"default:@iobroker/json-config"},d);let l=b(i.share,{canonical:"default:@iobroker/json-config",aliases:["@iobroker/json-config"]});l===void 0?C(P.then(()=>{if(l=b(i.share,{canonical:"default:@iobroker/json-config",aliases:["@iobroker/json-config"]}),l!==void 0){d(l);return}return O(()=>import("./_virtual_mf___mfe_internal__AnomalyDetectionAdmin__mf_owner__65673490305404__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-UiBqnVpJ.js"),__vite__mapDeps([0,1,2,3])).then(e=>{l=L(e),T(i.share,{canonical:"default:@iobroker/json-config",aliases:["@iobroker/json-config"]},l,"AnomalyDetectionAdmin")})})):d(l);const x=l,D=v({__proto__:null,get ConfigGeneric(){return S},get ConfigPanel(){return p},get JsonConfig(){return y},get JsonConfigComponent(){return j},get default(){return g}},[x]);export{D as _};
|