@nar-bus/ui-shared 1.1.0 → 1.2.1
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/dist/adapters/live-traffic-flow-slices.d.ts +112 -0
- package/dist/adapters/live-traffic-flow-slices.d.ts.map +1 -0
- package/dist/adapters/locations-map.d.ts +33 -0
- package/dist/adapters/locations-map.d.ts.map +1 -0
- package/dist/adapters/network-health-map-scope.d.ts +27 -0
- package/dist/adapters/network-health-map-scope.d.ts.map +1 -0
- package/dist/adapters/network-health-map-slices.d.ts +112 -0
- package/dist/adapters/network-health-map-slices.d.ts.map +1 -0
- package/dist/adapters/network-health-map.d.ts +36 -0
- package/dist/adapters/network-health-map.d.ts.map +1 -0
- package/dist/adapters/work-performance-problem-slices.d.ts.map +1 -1
- package/dist/adapters/work-performance-push-slices.d.ts.map +1 -1
- package/dist/api/queryKeys.d.ts +4 -0
- package/dist/api/queryKeys.d.ts.map +1 -1
- package/dist/components/TimelineView.d.ts +11 -0
- package/dist/components/TimelineView.d.ts.map +1 -1
- package/dist/components/dashboard/zone-a/RegionInsightPanel.d.ts +2 -1
- package/dist/components/dashboard/zone-a/RegionInsightPanel.d.ts.map +1 -1
- package/dist/components/dashboard/zone-a/provinceHelpers.d.ts +5 -3
- package/dist/components/dashboard/zone-a/provinceHelpers.d.ts.map +1 -1
- package/dist/components/dashboard/zone-a/views/KesintiView.d.ts +2 -1
- package/dist/components/dashboard/zone-a/views/KesintiView.d.ts.map +1 -1
- package/dist/components/dashboard/zone-a/views/SimView.d.ts +8 -6
- package/dist/components/dashboard/zone-a/views/SimView.d.ts.map +1 -1
- package/dist/components/dashboard/zone-a/views/SinyalView.d.ts +1 -1
- package/dist/components/dashboard/zone-a/views/SinyalView.d.ts.map +1 -1
- package/dist/components/dashboard/zone-a/views/SlaView.d.ts +1 -1
- package/dist/components/dashboard/zone-a/views/SlaView.d.ts.map +1 -1
- package/dist/components/dashboard/zone-b/SimOpRanking.d.ts.map +1 -1
- package/dist/components/detail-glass/DetailSection.d.ts.map +1 -1
- package/dist/components/detail-glass/index.d.ts.map +1 -1
- package/dist/components/form-glass/FormFieldRow.d.ts +30 -0
- package/dist/components/form-glass/FormFieldRow.d.ts.map +1 -0
- package/dist/components/form-glass/FormSection.d.ts.map +1 -1
- package/dist/components/form-glass/index.d.ts +2 -0
- package/dist/components/form-glass/index.d.ts.map +1 -1
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.d.ts.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +14 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9190 -8671
- package/dist/mocks/turkeyProvincesGeo.d.ts +30 -0
- package/dist/mocks/turkeyProvincesGeo.d.ts.map +1 -0
- package/dist/types/dashboard.d.ts +2 -2
- package/dist/types/dashboard.d.ts.map +1 -1
- package/dist/types/management.types.d.ts +4 -4
- package/dist/types/management.types.d.ts.map +1 -1
- package/dist/types/region.d.ts +14 -9
- package/dist/types/region.d.ts.map +1 -1
- package/package.json +68 -67
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* STORY-235 / STORY-244 — Canlı Trafik pipeline-flow edge-rate adapter.
|
|
3
|
+
*
|
|
4
|
+
* ┌─ LIVE_TRAFFIC_FLOW_MOCK ─────────────────────────────────────────────────┐
|
|
5
|
+
* │ Residual mock-retirement anchor (greppable debt marker — keep this string).│
|
|
6
|
+
* │ │
|
|
7
|
+
* │ As of STORY-244 the BE emits a real per-edge rate for 11 of the 13 edges │
|
|
8
|
+
* │ (the 4 core magnitudes + the 7 extended live fields). `buildFlowEdgeRates` │
|
|
9
|
+
* │ now PASSES THOSE THROUGH when present. Only TWO edges remain mock-derived: │
|
|
10
|
+
* │ │
|
|
11
|
+
* │ • `omsDeliver` — OMS delivery rate. No OMS subsystem exists yet. FIX-459: │
|
|
12
|
+
* │ the PRODUCTION (non-critical) path now emits 0 — pending integrations │
|
|
13
|
+
* │ must not animate fabricated flow. The factor derivation (inbound×0.02) │
|
|
14
|
+
* │ survives ONLY in the Storybook critical state (saturated-diagram demo). │
|
|
15
|
+
* │ • `wfmDeliver` — WFM delivery rate. No WFM subsystem exists yet → same │
|
|
16
|
+
* │ FIX-459 rule: 0 in production, inbound × 0.01 only in critical mode. │
|
|
17
|
+
* │ │
|
|
18
|
+
* │ ABSENT-KEY ROLLING-DEPLOY FALLBACK (why the derivation pipeline survives): │
|
|
19
|
+
* │ During a rolling deploy an OLD BE (or a legacy 4-field caller / Storybook │
|
|
20
|
+
* │ story) supplies ONLY the four core magnitudes and OMITS the 7 extended │
|
|
21
|
+
* │ keys. For those callers the 7 now-real edges fall back to their original │
|
|
22
|
+
* │ deterministic factor derivation so the diagram is never blank mid-deploy. │
|
|
23
|
+
* │ Presence is decided by KEY PRESENCE + numeric type (`key in rates && │
|
|
24
|
+
* │ typeof === "number"`), NOT truthiness — a real `0` from an idle live BE │
|
|
25
|
+
* │ is a legitimate value and MUST pass through as 0, not fall back. │
|
|
26
|
+
* │ │
|
|
27
|
+
* │ Retirement recipe (3 steps): │
|
|
28
|
+
* │ 1. [DONE — STORY-244] BE emits real per-edge rates on the live-traffic │
|
|
29
|
+
* │ SSE / poll payload (the 7 extended fields below). │
|
|
30
|
+
* │ 2. [DONE — STORY-244] FE passes the real rates through here; only the │
|
|
31
|
+
* │ omsDeliver / wfmDeliver residual factors remain mock-derived. │
|
|
32
|
+
* │ 3. [DEFERRED] Full delete of this MOCK section + anchor — blocked until │
|
|
33
|
+
* │ real OMS/WFM subsystems exist and emit `omsDeliver` / `wfmDeliver`. │
|
|
34
|
+
* │ When that lands, `grep LIVE_TRAFFIC_FLOW_MOCK` must return zero hits. │
|
|
35
|
+
* └────────────────────────────────────────────────────────────────────────────┘
|
|
36
|
+
*
|
|
37
|
+
* Pure numbers — no React, no JSX, no i18n.
|
|
38
|
+
*/
|
|
39
|
+
export type FlowRealEdgeId = "inboundPerSec" | "parsePerSec" | "orderCreatedPerSec" | "orderCompletedPerSec";
|
|
40
|
+
export type FlowMockEdgeId = "clickhouseWrite" | "parsedFanout" | "mongoStore" | "omsDeliver" | "wfmDeliver" | "mqttConn" | "sseSub" | "pushPerSec" | "orderResponsePerSec";
|
|
41
|
+
export type FlowEdgeId = FlowRealEdgeId | FlowMockEdgeId;
|
|
42
|
+
/** The 4 real magnitudes surfaced by the frozen `useLiveTraffic` transform. */
|
|
43
|
+
export interface FlowRealRates {
|
|
44
|
+
inboundPerSec: number;
|
|
45
|
+
parsePerSec: number;
|
|
46
|
+
orderCreatedPerSec: number;
|
|
47
|
+
orderCompletedPerSec: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* STORY-244 — the 7 now-real per-edge rates the BE emits alongside the core 4.
|
|
51
|
+
* Each key name matches its `FlowEdgeId` exactly (wire parity, PAT-082/085).
|
|
52
|
+
* `omsDeliver` / `wfmDeliver` are intentionally ABSENT here — no subsystem emits
|
|
53
|
+
* them, so they are never passed through (always derived).
|
|
54
|
+
*/
|
|
55
|
+
export interface FlowLiveRates {
|
|
56
|
+
mqttConn: number;
|
|
57
|
+
sseSub: number;
|
|
58
|
+
mongoStore: number;
|
|
59
|
+
pushPerSec: number;
|
|
60
|
+
orderResponsePerSec: number;
|
|
61
|
+
clickhouseWrite: number;
|
|
62
|
+
parsedFanout: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Accepted input: the 4 core magnitudes (required) plus, optionally, any of the
|
|
66
|
+
* 7 now-real live edge rates. Legacy 4-field callers omit the live fields and
|
|
67
|
+
* keep compiling unchanged; the live page supplies all 11.
|
|
68
|
+
*/
|
|
69
|
+
export type FlowInputRates = FlowRealRates & Partial<FlowLiveRates>;
|
|
70
|
+
export interface BuildFlowOptions {
|
|
71
|
+
/**
|
|
72
|
+
* Storybook "Critical" state. When true, all outputs are scaled toward the
|
|
73
|
+
* high-traffic ceiling so the diagram shows max-rate (saturated) edges.
|
|
74
|
+
*/
|
|
75
|
+
critical?: boolean;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Normalization ceiling for downstream `r = clamp(rate / FLOW_RATE_CEILING, 0, 1)`.
|
|
79
|
+
* Edges at or above this rate render fully saturated.
|
|
80
|
+
*/
|
|
81
|
+
export declare const FLOW_RATE_CEILING = 2000;
|
|
82
|
+
/**
|
|
83
|
+
* Build the full edge-rate map (msg/s) keyed by edge magnitude id.
|
|
84
|
+
*
|
|
85
|
+
* REAL edges (`inboundPerSec`, `parsePerSec`, `orderCreatedPerSec`,
|
|
86
|
+
* `orderCompletedPerSec`) pass the supplied live magnitudes straight through.
|
|
87
|
+
*
|
|
88
|
+
* The 7 now-real edges (`mqttConn`, `sseSub`, `mongoStore`, `pushPerSec`,
|
|
89
|
+
* `orderResponsePerSec`, `clickhouseWrite`, `parsedFanout`) PASS THROUGH the
|
|
90
|
+
* supplied live value when the key is present (key-presence + numeric type — a
|
|
91
|
+
* live `0` passes through as 0). When the key is ABSENT (legacy 4-field caller
|
|
92
|
+
* or an old BE during a rolling deploy) they fall back to their deterministic
|
|
93
|
+
* factor derivation (LIVE_TRAFFIC_FLOW_MOCK).
|
|
94
|
+
*
|
|
95
|
+
* `omsDeliver` / `wfmDeliver`: no subsystem emits them. FIX-459 — the
|
|
96
|
+
* production (non-critical) path emits 0 for both (pending integrations carry
|
|
97
|
+
* no traffic); the factor derivation runs only in critical mode.
|
|
98
|
+
*
|
|
99
|
+
* `opts.critical` (Storybook-only path — the live page never sets it) lifts
|
|
100
|
+
* every real base to a high-traffic floor AND runs the legacy derivation for
|
|
101
|
+
* ALL 9 mock edges, IGNORING any supplied live fields. This keeps every
|
|
102
|
+
* existing Storybook "Critical" story byte-identical.
|
|
103
|
+
*
|
|
104
|
+
* BYTE-COMPAT INVARIANT (critical mode): with `opts.critical` the output is
|
|
105
|
+
* BYTE-IDENTICAL to the pre-STORY-244 implementation for every input — all 13
|
|
106
|
+
* edges. Non-critical callers differ from the pre-FIX-459 baseline ONLY on
|
|
107
|
+
* `omsDeliver` / `wfmDeliver` (now 0). Storybook PNG baselines + tests lock this.
|
|
108
|
+
*
|
|
109
|
+
* Deterministic: same `rates` + same `opts` → byte-equal output. No randomness.
|
|
110
|
+
*/
|
|
111
|
+
export declare function buildFlowEdgeRates(rates: FlowInputRates, opts?: BuildFlowOptions): Record<FlowEdgeId, number>;
|
|
112
|
+
//# sourceMappingURL=live-traffic-flow-slices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-traffic-flow-slices.d.ts","sourceRoot":"","sources":["../../src/adapters/live-traffic-flow-slices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,MAAM,MAAM,cAAc,GACtB,eAAe,GACf,aAAa,GACb,oBAAoB,GACpB,sBAAsB,CAAC;AAO3B,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,cAAc,GACd,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,qBAAqB,CAAC;AAE1B,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC;AAEzD,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAmFtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,IAAI,GAAE,gBAAqB,GAC1B,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAyE5B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { NetworkModemPoint } from './network-health-map-slices';
|
|
2
|
+
/** Wire shape of one `GET /api/locations/map` row (lena-api DTO, NON_NULL). */
|
|
3
|
+
export interface MapLocationResponse {
|
|
4
|
+
modemId: number;
|
|
5
|
+
modemSlug: string;
|
|
6
|
+
/** BigDecimal on the wire — arrives as a JSON number; tolerate strings. */
|
|
7
|
+
latitude?: number | string | null;
|
|
8
|
+
longitude?: number | string | null;
|
|
9
|
+
lifecycleStatus?: string | null;
|
|
10
|
+
networkStatus?: string | null;
|
|
11
|
+
/** STORY-248-D additive — province plate code (rolling-deploy optional). */
|
|
12
|
+
cityCode?: string | null;
|
|
13
|
+
/** STORY-248-D additive — `modem_locations.town_code` (= GeoJSON district_code). */
|
|
14
|
+
districtCode?: string | null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Fetch the raw locations-map rows. Standard-envelope unwrap; ANY failure
|
|
18
|
+
* (error envelope, thrown transport error, non-array data) → `[]` so the
|
|
19
|
+
* cockpit's modem layer degrades to the mock fallback instead of crashing.
|
|
20
|
+
*/
|
|
21
|
+
export declare function fetchLocationsMap(groupId?: number): Promise<MapLocationResponse[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Map the wire rows to cockpit modem points (lat=latitude, lng=longitude,
|
|
24
|
+
* status passthrough). Rows with missing / non-numeric coordinates are
|
|
25
|
+
* DROPPED — the live map cannot place them; the coordless-cluster treatment
|
|
26
|
+
* needs the district codes STORY-248-D adds (OR-A interim).
|
|
27
|
+
*
|
|
28
|
+
* STORY-248-D: `cityCode` / `districtCode` pass through when the BE sends
|
|
29
|
+
* them (PAT-082 key-presence guard — old BE omits, fields stay undefined).
|
|
30
|
+
* `operator` is intentionally left undefined — not in this DTO.
|
|
31
|
+
*/
|
|
32
|
+
export declare function mapToModemPoints(rows: MapLocationResponse[]): NetworkModemPoint[];
|
|
33
|
+
//# sourceMappingURL=locations-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locations-map.d.ts","sourceRoot":"","sources":["../../src/adapters/locations-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,+EAA+E;AAC/E,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAKD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAahC;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,mBAAmB,EAAE,GAC1B,iBAAiB,EAAE,CA2BrB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* STORY-246 — network-health map mock SCOPE FIXTURE (NETWORK_HEALTH_MAP_MOCK).
|
|
3
|
+
*
|
|
4
|
+
* The 10 `hes.location_refs`-seeded cities + their districts with REAL
|
|
5
|
+
* centroids copied verbatim from `V012`-era seed `V020__location_refs.sql`
|
|
6
|
+
* ([lng, lat] GeoJSON axis order). Extracted from
|
|
7
|
+
* `network-health-map-slices.ts` for the 400-line clean-code budget — this
|
|
8
|
+
* module is part of the SAME mock (retired together with the slice when
|
|
9
|
+
* STORY-248 lands; see the anchor header in network-health-map-slices.ts).
|
|
10
|
+
*
|
|
11
|
+
* District codes are the V020 `town_code` values — they MUST match the
|
|
12
|
+
* `district_code` property of the committed district GeoJSON chunks
|
|
13
|
+
* (lena-hes-ui `src/assets/geo/districts/<cityCode>.json`).
|
|
14
|
+
*/
|
|
15
|
+
export interface NetworkScopeDistrictSeed {
|
|
16
|
+
code: string;
|
|
17
|
+
name: string;
|
|
18
|
+
/** [lng, lat]. */
|
|
19
|
+
centroid: [number, number];
|
|
20
|
+
}
|
|
21
|
+
export interface NetworkScopeCitySeed {
|
|
22
|
+
cityCode: string;
|
|
23
|
+
cityName: string;
|
|
24
|
+
districts: NetworkScopeDistrictSeed[];
|
|
25
|
+
}
|
|
26
|
+
export declare const NETWORK_SCOPE_CITIES: NetworkScopeCitySeed[];
|
|
27
|
+
//# sourceMappingURL=network-health-map-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-health-map-scope.d.ts","sourceRoot":"","sources":["../../src/adapters/network-health-map-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,wBAAwB,EAAE,CAAC;CACvC;AAED,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,EAyGtD,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* STORY-246 — Ağ Sağlığı map-cockpit district×operator×window aggregate adapter.
|
|
3
|
+
*
|
|
4
|
+
* ┌─ NETWORK_HEALTH_MAP_MOCK ──────────────────────────────────────────────────┐
|
|
5
|
+
* │ Mock-retirement anchor. NO BE endpoint serves district×operator×window │
|
|
6
|
+
* │ signal aggregates today (winner operator / signal score / silent density / │
|
|
7
|
+
* │ outage density / per-district comparison rows / histogram / worst-N). │
|
|
8
|
+
* │ This file builds them DETERMINISTICALLY (seeded xorshift32 PRNG keyed on │
|
|
9
|
+
* │ the window — same window → byte-equal JSON, Playwright PNG-baseline │
|
|
10
|
+
* │ stable). The shapes below ARE the proposed STORY-248 API contract: │
|
|
11
|
+
* │ GET /api/monitoring/network-health/map?window=1h|24h|7d|30d&groupId=<opt> │
|
|
12
|
+
* │ → { status, data: { window, scopeProvinces, districts[], kpis } } │
|
|
13
|
+
* │ (full field list: docs/stories/phase-15/STORY-246-plan.md §"Proposed │
|
|
14
|
+
* │ STORY-248 API Contract"). │
|
|
15
|
+
* │ │
|
|
16
|
+
* │ Retirement recipe (target: STORY-248): │
|
|
17
|
+
* │ 1. [x] DONE (STORY-248) — BE aggregate endpoint above landed + (C) │
|
|
18
|
+
* │ operator normalization + (D) MapLocationResponse │
|
|
19
|
+
* │ cityCode/districtCode (additive). │
|
|
20
|
+
* │ 2. [x] DONE (STORY-248 FE) — `useNetworkHealthMap` (lena-hes-ui) now │
|
|
21
|
+
* │ fetches the real endpoint via `adapters/network-health-map.ts`; │
|
|
22
|
+
* │ `buildNetworkHealthMap` remains ONLY as the loading/error fallback │
|
|
23
|
+
* │ + the Storybook fixture. The modem point set is the real │
|
|
24
|
+
* │ `GET /api/locations/map` response (STORY-247). │
|
|
25
|
+
* │ 3. [ ] Delete this file + its barrel exports once the Storybook │
|
|
26
|
+
* │ dependency is re-pointed; `grep -r NETWORK_HEALTH_MAP_MOCK` must │
|
|
27
|
+
* │ return zero hits when retirement is complete. │
|
|
28
|
+
* │ │
|
|
29
|
+
* │ PAT-082/085 note (RESOLVED by STORY-248-D): the LIVE `MapLocationResponse` │
|
|
30
|
+
* │ now exposes additive `cityCode`/`districtCode`; `mapToModemPoints` passes │
|
|
31
|
+
* │ them through key-presence-guarded (old BE omits → undefined, scope then │
|
|
32
|
+
* │ comes from the aggregate payload's `scopeProvinces`). │
|
|
33
|
+
* └─────────────────────────────────────────────────────────────────────────────┘
|
|
34
|
+
*
|
|
35
|
+
* Types duplicated from lena-hes-ui `networkHealthMapTypes.ts` — the slice file
|
|
36
|
+
* is self-contained (mirrors data-performance-mock-slices convention; ui-shared
|
|
37
|
+
* cannot import from hes-ui). Pure data — no React, no JSX, no i18n.
|
|
38
|
+
*/
|
|
39
|
+
export type NetworkMapWindow = "1h" | "24h" | "7d" | "30d";
|
|
40
|
+
export type NetworkOperatorCode = "TURKCELL" | "VODAFONE" | "TT";
|
|
41
|
+
export interface NetworkDistrictOperatorRow {
|
|
42
|
+
operator: NetworkOperatorCode;
|
|
43
|
+
avgRsrp: number | null;
|
|
44
|
+
avgRsrq: number | null;
|
|
45
|
+
avgSinr: number | null;
|
|
46
|
+
modemCount: number;
|
|
47
|
+
silentRatio: number;
|
|
48
|
+
outageCount: number;
|
|
49
|
+
}
|
|
50
|
+
export interface NetworkSignalHistogramBucket {
|
|
51
|
+
bucketLabel: string;
|
|
52
|
+
count: number;
|
|
53
|
+
}
|
|
54
|
+
export interface NetworkWorstModem {
|
|
55
|
+
modemId: number;
|
|
56
|
+
modemSlug: string;
|
|
57
|
+
networkStatus: string;
|
|
58
|
+
signalScore: number;
|
|
59
|
+
operator: NetworkOperatorCode | null;
|
|
60
|
+
}
|
|
61
|
+
export interface NetworkDistrictAggregate {
|
|
62
|
+
districtCode: string;
|
|
63
|
+
cityCode: string;
|
|
64
|
+
districtName: string;
|
|
65
|
+
/** [lng, lat] — GeoJSON axis order. */
|
|
66
|
+
centroid: [number, number];
|
|
67
|
+
winnerOperator: NetworkOperatorCode | null;
|
|
68
|
+
signalScore: number | null;
|
|
69
|
+
signalScoreByOperator: Record<NetworkOperatorCode, number | null>;
|
|
70
|
+
silentRatio: number;
|
|
71
|
+
outageCount: number;
|
|
72
|
+
modemCount: number;
|
|
73
|
+
operators: NetworkDistrictOperatorRow[];
|
|
74
|
+
signalHistogram: NetworkSignalHistogramBucket[];
|
|
75
|
+
worstModems: NetworkWorstModem[];
|
|
76
|
+
}
|
|
77
|
+
export interface NetworkModemPoint {
|
|
78
|
+
modemId: number;
|
|
79
|
+
modemSlug: string;
|
|
80
|
+
lat: number;
|
|
81
|
+
lng: number;
|
|
82
|
+
networkStatus: string;
|
|
83
|
+
lifecycleStatus: string;
|
|
84
|
+
operator?: NetworkOperatorCode | null;
|
|
85
|
+
cityCode?: string;
|
|
86
|
+
districtCode?: string;
|
|
87
|
+
coordless?: boolean;
|
|
88
|
+
}
|
|
89
|
+
export interface NetworkHealthMapKpis {
|
|
90
|
+
onlinePercent: number;
|
|
91
|
+
silentCount: number;
|
|
92
|
+
activeOutages: number;
|
|
93
|
+
avgSignalScore: number | null;
|
|
94
|
+
modemCount: number;
|
|
95
|
+
}
|
|
96
|
+
export interface NetworkHealthMapPayload {
|
|
97
|
+
window: NetworkMapWindow;
|
|
98
|
+
scopeProvinces: string[];
|
|
99
|
+
districts: NetworkDistrictAggregate[];
|
|
100
|
+
points: NetworkModemPoint[];
|
|
101
|
+
kpis: NetworkHealthMapKpis;
|
|
102
|
+
}
|
|
103
|
+
export interface BuildNetworkHealthMapOptions {
|
|
104
|
+
/** All-Türkiye fallback path: no scope, no districts, no points. */
|
|
105
|
+
empty?: boolean;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Build the full network-health map payload for a window. Deterministic:
|
|
109
|
+
* same `window` + same `opts` → byte-equal output (no Date.now, no random).
|
|
110
|
+
*/
|
|
111
|
+
export declare function buildNetworkHealthMap(window: NetworkMapWindow, opts?: BuildNetworkHealthMapOptions): NetworkHealthMapPayload;
|
|
112
|
+
//# sourceMappingURL=network-health-map-slices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-health-map-slices.d.ts","sourceRoot":"","sources":["../../src/adapters/network-health-map-slices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAQH,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;AAC3D,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;AAEjE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,cAAc,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,0BAA0B,EAAE,CAAC;IACxC,eAAe,EAAE,4BAA4B,EAAE,CAAC;IAChD,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,IAAI,EAAE,oBAAoB,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsKD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,IAAI,GAAE,4BAAiC,GACtC,uBAAuB,CA+FzB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { NetworkDistrictOperatorRow, NetworkHealthMapKpis, NetworkHealthMapPayload, NetworkMapWindow, NetworkOperatorCode, NetworkSignalHistogramBucket, NetworkWorstModem } from './network-health-map-slices';
|
|
2
|
+
/**
|
|
3
|
+
* Wire shape of one `districts[]` row (lena-api DTO, `@JsonInclude(NON_NULL)`)
|
|
4
|
+
* — every non-identity field may be OMITTED on the wire (PAT-082/085).
|
|
5
|
+
*/
|
|
6
|
+
export interface NetworkHealthMapWireDistrict {
|
|
7
|
+
districtCode: string;
|
|
8
|
+
cityCode: string;
|
|
9
|
+
districtName?: string | null;
|
|
10
|
+
/** [lng, lat] — OMITTED when the BE has no centroid for the district. */
|
|
11
|
+
centroid?: [number, number] | null;
|
|
12
|
+
winnerOperator?: NetworkOperatorCode | null;
|
|
13
|
+
signalScore?: number | null;
|
|
14
|
+
signalScoreByOperator?: Partial<Record<NetworkOperatorCode, number | null>> | null;
|
|
15
|
+
silentRatio?: number | null;
|
|
16
|
+
outageCount?: number | null;
|
|
17
|
+
modemCount?: number | null;
|
|
18
|
+
operators?: NetworkDistrictOperatorRow[] | null;
|
|
19
|
+
signalHistogram?: NetworkSignalHistogramBucket[] | null;
|
|
20
|
+
worstModems?: NetworkWorstModem[] | null;
|
|
21
|
+
}
|
|
22
|
+
/** Wire shape of the envelope `data` field (NON_NULL — lists may be absent). */
|
|
23
|
+
export interface NetworkHealthMapResponse {
|
|
24
|
+
window?: NetworkMapWindow | null;
|
|
25
|
+
scopeProvinces?: string[] | null;
|
|
26
|
+
districts?: NetworkHealthMapWireDistrict[] | null;
|
|
27
|
+
kpis?: NetworkHealthMapKpis | null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Fetch the real district×operator×window aggregate payload.
|
|
31
|
+
* THROWS on envelope error / transport failure / malformed payload
|
|
32
|
+
* (D-249-D9-TD) — callers surface `isError`; the mock fallback decision
|
|
33
|
+
* belongs to the consuming hook, NOT this adapter.
|
|
34
|
+
*/
|
|
35
|
+
export declare function fetchNetworkHealthMap(window: NetworkMapWindow, groupId?: number): Promise<NetworkHealthMapPayload>;
|
|
36
|
+
//# sourceMappingURL=network-health-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-health-map.d.ts","sourceRoot":"","sources":["../../src/adapters/network-health-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAEV,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,4BAA4B,EAC5B,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAErC;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACnF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC;IAChD,eAAe,CAAC,EAAE,4BAA4B,EAAE,GAAG,IAAI,CAAC;IACxD,WAAW,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;CAC1C;AAED,gFAAgF;AAChF,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,4BAA4B,EAAE,GAAG,IAAI,CAAC;IAClD,IAAI,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACpC;AAwED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,uBAAuB,CAAC,CA6BlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-performance-problem-slices.d.ts","sourceRoot":"","sources":["../../src/adapters/work-performance-problem-slices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"work-performance-problem-slices.d.ts","sourceRoot":"","sources":["../../src/adapters/work-performance-problem-slices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-performance-push-slices.d.ts","sourceRoot":"","sources":["../../src/adapters/work-performance-push-slices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAML,KAAK,kBAAkB,EAGvB,KAAK,eAAe,EAEpB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAE1B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EACjC,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,8BAA8B,EAC9B,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAQrE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,GAAG,mBAAmB,GAAG,aAAa,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CAC1C;AACD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,kBAAkB,CAAC;IAClC,UAAU,EAAE,eAAe,CAAC;IAC5B,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,EAAE,2BAA2B,CAAC;CACzC;AAiCD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EACpB,IAAI,EAAE,CAAC,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,EAClC,UAAU,EAAE,2BAA2B,EACvC,QAAQ,EAAE,OAAO,GAChB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"work-performance-push-slices.d.ts","sourceRoot":"","sources":["../../src/adapters/work-performance-push-slices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAML,KAAK,kBAAkB,EAGvB,KAAK,eAAe,EAEpB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAE1B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EACjC,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,8BAA8B,EAC9B,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAQrE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,GAAG,mBAAmB,GAAG,aAAa,CAAC;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CAC1C;AACD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,kBAAkB,CAAC;IAClC,UAAU,EAAE,eAAe,CAAC;IAC5B,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,kBAAkB,EAAE,sBAAsB,EAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,UAAU,EAAE,2BAA2B,CAAC;CACzC;AAiCD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EACpB,IAAI,EAAE,CAAC,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,EAClC,UAAU,EAAE,2BAA2B,EACvC,QAAQ,EAAE,OAAO,GAChB,kBAAkB,CAkCpB;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,EACpB,IAAI,EAAE,CAAC,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,EAClC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,GAChB,eAAe,CAejB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,IAAI,CACX,mBAAmB,EACnB,eAAe,GAAG,mBAAmB,GAAG,eAAe,GAAG,YAAY,CACvE,EACD,UAAU,EAAE,2BAA2B,GACtC,sBAAsB,EAAE,CA+F1B;AAID,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,gBAAqB,GAC7B,mBAAmB,CA4BrB"}
|
package/dist/api/queryKeys.d.ts
CHANGED
|
@@ -265,6 +265,10 @@ export declare const queryKeys: {
|
|
|
265
265
|
readonly workPerformance: () => readonly ["monitoring", "work-performance"];
|
|
266
266
|
readonly liveTraffic: () => readonly ["monitoring", "live-traffic"];
|
|
267
267
|
readonly networkHealth: () => readonly ["monitoring", "network-health"];
|
|
268
|
+
/** STORY-248 — real district×operator×window aggregate feed (map-cockpit). */
|
|
269
|
+
readonly networkHealthMap: (window: string) => readonly ["monitoring", "network-health", "map", string];
|
|
270
|
+
/** STORY-247 — real `/api/locations/map` modem-points feed (network-health cockpit). */
|
|
271
|
+
readonly locationsMap: () => readonly ["monitoring", "locations-map"];
|
|
268
272
|
readonly calendarExecution: () => readonly ["monitoring", "calendar-execution"];
|
|
269
273
|
};
|
|
270
274
|
readonly dlq: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryKeys.d.ts","sourceRoot":"","sources":["../../src/api/queryKeys.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"queryKeys.d.ts","sourceRoot":"","sources":["../../src/api/queryKeys.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,16 @@ export interface TimelineViewProps {
|
|
|
8
8
|
isLoading?: boolean;
|
|
9
9
|
className?: string;
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Timeline event-type filter options — VALUES are the raw BE enum families
|
|
13
|
+
* (kept English), labels are the Turkish display copy. Exported so consumers
|
|
14
|
+
* (e.g. the modem Özet timeline panel) reuse the same Turkish labels instead of
|
|
15
|
+
* hardcoding English ones. The leading `{ value: "", ... }` "all" entry is the
|
|
16
|
+
* default placeholder; consumers may swap its label for their own i18n key.
|
|
17
|
+
*/
|
|
18
|
+
export declare const EVENT_TYPE_OPTIONS: {
|
|
19
|
+
value: string;
|
|
20
|
+
label: string;
|
|
21
|
+
}[];
|
|
11
22
|
export declare function TimelineView({ events, onFilterChange, isLoading, className, }: TimelineViewProps): import("react").JSX.Element;
|
|
12
23
|
//# sourceMappingURL=TimelineView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimelineView.d.ts","sourceRoot":"","sources":["../../src/components/TimelineView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TimelineView.d.ts","sourceRoot":"","sources":["../../src/components/TimelineView.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4ED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;GAS9B,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,cAAc,EACd,SAAS,EACT,SAAS,GACV,EAAE,iBAAiB,+BA0HnB"}
|
|
@@ -8,7 +8,8 @@ export interface RegionInsightDetail extends KesintiViewRegionDetail, SlaViewReg
|
|
|
8
8
|
modemCount: number;
|
|
9
9
|
meterCount: number;
|
|
10
10
|
rssiByOperator: SinyalViewOperatorBar[];
|
|
11
|
-
|
|
11
|
+
/** FIX-464: null/absent when no operator data. */
|
|
12
|
+
simWinner?: SimViewSimWinner | null;
|
|
12
13
|
}
|
|
13
14
|
export interface RegionInsightPanelProps {
|
|
14
15
|
province: Province;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegionInsightPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/zone-a/RegionInsightPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAe,KAAK,uBAAuB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7G,OAAO,EAAc,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAW,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AASzD,MAAM,WAAW,mBACf,SAAQ,uBAAuB,EAC7B,mBAAmB;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,qBAAqB,EAAE,CAAC;IACxC,SAAS,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"RegionInsightPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/zone-a/RegionInsightPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAe,KAAK,uBAAuB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7G,OAAO,EAAc,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAW,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAW,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AASzD,MAAM,WAAW,mBACf,SAAQ,uBAAuB,EAC7B,mBAAmB;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,qBAAqB,EAAE,CAAC;IACxC,kDAAkD;IAClD,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA2CD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,KAAK,EACL,SAAiB,EACjB,YAAY,EACZ,WAAW,EACX,eAAe,EAAE,gBAAwB,GAC1C,EAAE,uBAAuB,+BA0LzB"}
|
|
@@ -13,7 +13,8 @@ export declare const PROVINCE_NAMES: Record<string, string>;
|
|
|
13
13
|
/** Resolve a Province object from il_kodu + the mock slice. Falls back to the
|
|
14
14
|
* PROVINCE_NAMES table if geoJsonNames lookup is empty. */
|
|
15
15
|
export declare function resolveProvince(ilKodu: string, mapLayers: MapLayersSlice, geoJsonNames?: Record<string, string>): Province;
|
|
16
|
-
/** Deterministic stats derived from il_kodu + outage severity. Pure function.
|
|
16
|
+
/** Deterministic stats derived from il_kodu + outage severity. Pure function.
|
|
17
|
+
* FIX-464: STORYBOOK / TEST FIXTURE ONLY — never a live no-data fallback. */
|
|
17
18
|
export declare function getProvinceStats(province: Province): {
|
|
18
19
|
modemCount: number;
|
|
19
20
|
meterCount: number;
|
|
@@ -23,7 +24,7 @@ export declare function getProvinceStats(province: Province): {
|
|
|
23
24
|
};
|
|
24
25
|
/** 7-day kesinti trend (deterministic, pure). Day labels are DD.MM relative to
|
|
25
26
|
* a fixed clock 2026-05-13 so storybook / test snapshots stay stable.
|
|
26
|
-
*
|
|
27
|
+
* FIX-464: STORYBOOK / TEST FIXTURE ONLY — never a live no-data fallback. */
|
|
27
28
|
export declare function getProvinceTrend7d(province: Province): Array<{
|
|
28
29
|
day: string;
|
|
29
30
|
count: number;
|
|
@@ -32,7 +33,8 @@ export declare function getProvinceTrend7d(province: Province): Array<{
|
|
|
32
33
|
/** Active outage rows for the panel. Modem id is numeric and deterministic so
|
|
33
34
|
* the drill-down route `/device-management/modems/:id` resolves cleanly.
|
|
34
35
|
* `reasonCode` carries the BE-supplied UPPER_SNAKE_CASE code (e.g. POWER_LOSS)
|
|
35
|
-
* or null when no active outage. Frontend translates via i18n.
|
|
36
|
+
* or null when no active outage. Frontend translates via i18n.
|
|
37
|
+
* FIX-464: STORYBOOK / TEST FIXTURE ONLY — never a live no-data fallback. */
|
|
36
38
|
export declare function getProvinceActiveOutages(province: Province): Array<{
|
|
37
39
|
modemId: number;
|
|
38
40
|
modem: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provinceHelpers.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/zone-a/provinceHelpers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"provinceHelpers.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/zone-a/provinceHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAM9E;;2DAE2D;AAC3D,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CAC9B;AAMD;0EAC0E;AAC1E,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4BjD,CAAC;AAMF;4DAC4D;AAC5D,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,EACzB,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACxC,QAAQ,CAKV;AAMD;8EAC8E;AAC9E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,CASA;AAED;;8EAE8E;AAC9E,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,GACjB,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB/D;AAED;;;;8EAI8E;AAC9E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAiCD;AAMD,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOnD"}
|
|
@@ -7,7 +7,8 @@ export interface KesintiViewTopOutage {
|
|
|
7
7
|
}
|
|
8
8
|
export interface KesintiViewRegionDetail {
|
|
9
9
|
outageCount: number;
|
|
10
|
-
|
|
10
|
+
/** FIX-464: null/absent when affected-meter count cannot be sourced. */
|
|
11
|
+
outageAffected?: number | null;
|
|
11
12
|
longestMin: number;
|
|
12
13
|
longestModemSlug?: string | null;
|
|
13
14
|
topOutages: KesintiViewTopOutage[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KesintiView.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/zone-a/views/KesintiView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAgB5B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"KesintiView.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/zone-a/views/KesintiView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAKL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAgB5B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,QAAQ,EAAE,QAAQ,CAAC;IACnB;8EAC0E;IAC1E,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,4EAA4E;IAC5E,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACxC;AAMD,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,YAAY,EACZ,WAAW,GACZ,EAAE,gBAAgB,+BAmQlB"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { Province } from '../provinceHelpers';
|
|
2
2
|
import { SimOperator } from '../../../../types/dashboard';
|
|
3
3
|
/** FIX-376: structural type for BE simWinner. Mirrors RegionDetail.simWinner
|
|
4
|
-
* without depending on lena-hes-ui (preserves shared→host direction).
|
|
4
|
+
* without depending on lena-hes-ui (preserves shared→host direction).
|
|
5
|
+
* FIX-464: signal nullable (no RSSI sample for the winner). */
|
|
5
6
|
export interface SimViewSimWinner {
|
|
6
7
|
op: SimOperator;
|
|
7
8
|
online: number;
|
|
8
|
-
|
|
9
|
-
* footer; falls back to province rssi when absent. */
|
|
10
|
-
signal?: number;
|
|
9
|
+
signal?: number | null;
|
|
11
10
|
}
|
|
12
11
|
export interface SimViewProps {
|
|
13
12
|
province: Province;
|
|
14
|
-
simWinner?: SimViewSimWinner;
|
|
13
|
+
simWinner?: SimViewSimWinner | null;
|
|
14
|
+
/** FIX-464: true when the real BE path is active but has no operator data →
|
|
15
|
+
* render "veri yok" instead of the SIM_RANKING mock. */
|
|
16
|
+
noData?: boolean;
|
|
15
17
|
}
|
|
16
|
-
export declare function SimView({ province, simWinner }: SimViewProps): import("react").JSX.Element;
|
|
18
|
+
export declare function SimView({ province, simWinner, noData }: SimViewProps): import("react").JSX.Element;
|
|
17
19
|
//# sourceMappingURL=SimView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimView.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/zone-a/views/SimView.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SimView.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/zone-a/views/SimView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAY/D;;gEAEgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,WAAW,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAaD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC;6DACyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAMD,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAc,EAAE,EAAE,YAAY,+BA6F5E"}
|
|
@@ -2,7 +2,7 @@ import { Province } from '../provinceHelpers';
|
|
|
2
2
|
import { SimOperator } from '../../../../types/dashboard';
|
|
3
3
|
export interface SinyalViewOperatorBar {
|
|
4
4
|
op: SimOperator;
|
|
5
|
-
signalDbm
|
|
5
|
+
signalDbm?: number | null;
|
|
6
6
|
sampleCount: number;
|
|
7
7
|
}
|
|
8
8
|
export interface SinyalViewProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SinyalView.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/zone-a/views/SinyalView.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SinyalView.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/zone-a/views/SinyalView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAmB/D,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,WAAW,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,yDAAyD;IACzD,cAAc,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC1C;AAED,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,eAAe,+BAuHvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlaView.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/zone-a/views/SlaView.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"SlaView.d.ts","sourceRoot":"","sources":["../../../../../src/components/dashboard/zone-a/views/SlaView.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAMrE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAID,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,YAAY,+BAsG/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimOpRanking.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/zone-b/SimOpRanking.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAgBlC,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;CAC7C;AAoBD,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,iBAAiB,+
|
|
1
|
+
{"version":3,"file":"SimOpRanking.d.ts","sourceRoot":"","sources":["../../../../src/components/dashboard/zone-b/SimOpRanking.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAgBlC,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;CAC7C;AAoBD,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,iBAAiB,+BA2HnF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailSection.d.ts","sourceRoot":"","sources":["../../../src/components/detail-glass/DetailSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DetailSection.d.ts","sourceRoot":"","sources":["../../../src/components/detail-glass/DetailSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,oBAAoB,CAAC;AAE5B,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,kBAAkB,+BAUvF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/detail-glass/index.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/detail-glass/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|