myio-js-library 0.1.468 → 0.1.469
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/index.cjs +97 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.js +97 -1
- package/dist/myio-js-library.umd.js +97 -1
- package/dist/myio-js-library.umd.min.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1139,7 +1139,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
1139
1139
|
// package.json
|
|
1140
1140
|
var package_default = {
|
|
1141
1141
|
name: "myio-js-library",
|
|
1142
|
-
version: "0.1.
|
|
1142
|
+
version: "0.1.469",
|
|
1143
1143
|
description: "A clean, standalone JS SDK for MYIO projects",
|
|
1144
1144
|
license: "MIT",
|
|
1145
1145
|
repository: "github:gh-myio/myio-js-library",
|
|
@@ -5638,6 +5638,12 @@ var MyIOSelectionStoreClass = class _MyIOSelectionStoreClass {
|
|
|
5638
5638
|
ingestionId: entity.ingestionId || entityId,
|
|
5639
5639
|
// ⭐ ADD: Store ingestionId for API calls
|
|
5640
5640
|
customerName: entity.customerName || entity.ownerName || entity.centralName || "",
|
|
5641
|
+
// RFC-0157: Operational metrics for comparison modal
|
|
5642
|
+
domain: entity.domain || null,
|
|
5643
|
+
availability: entity.availability ?? null,
|
|
5644
|
+
mtbf: entity.mtbf ?? null,
|
|
5645
|
+
mttr: entity.mttr ?? null,
|
|
5646
|
+
equipmentType: entity.equipmentType || null,
|
|
5641
5647
|
// Optional metadata passthrough (used by alarm comparisons)
|
|
5642
5648
|
meta: entity.meta || entity.alarmMeta || null,
|
|
5643
5649
|
alarm: entity.alarm || null
|
|
@@ -26321,7 +26327,28 @@ async function openRealTimeTelemetryModal(params) {
|
|
|
26321
26327
|
gearBtn.addEventListener("click", openIntervalConfigModal);
|
|
26322
26328
|
}
|
|
26323
26329
|
if (customerId) await loadCheckDeviceInterval();
|
|
26330
|
+
const useCheckDeviceOnOpen = !!centralId && !sessionStorage.getItem("rtt_check_device_disabled");
|
|
26331
|
+
if (useCheckDeviceOnOpen) {
|
|
26332
|
+
startCountdown(checkDeviceWaitMs);
|
|
26333
|
+
try {
|
|
26334
|
+
await fetch(
|
|
26335
|
+
`https://${centralId}.y.myio.com.br/api/check_device/${deviceCheckName}`,
|
|
26336
|
+
{ signal: AbortSignal.timeout(1e4) }
|
|
26337
|
+
);
|
|
26338
|
+
centralStatus = "ok";
|
|
26339
|
+
checkDeviceHistory.push({ ts: Date.now(), status: "ok" });
|
|
26340
|
+
} catch (e) {
|
|
26341
|
+
console.warn("[RTT] check_device (open) error:", e?.message ?? e);
|
|
26342
|
+
centralStatus = "offline";
|
|
26343
|
+
checkDeviceHistory.push({ ts: Date.now(), status: "offline" });
|
|
26344
|
+
}
|
|
26345
|
+
if (checkDeviceHistory.length > MAX_CHECK_DEVICE_HISTORY) checkDeviceHistory.shift();
|
|
26346
|
+
updateStatusBadges();
|
|
26347
|
+
await new Promise((r) => setTimeout(r, checkDeviceWaitMs));
|
|
26348
|
+
clearCountdown();
|
|
26349
|
+
}
|
|
26324
26350
|
await refreshData();
|
|
26351
|
+
isFirstTick = false;
|
|
26325
26352
|
scheduleCheckDeviceTick();
|
|
26326
26353
|
return {
|
|
26327
26354
|
destroy: closeModal2
|
|
@@ -108290,6 +108317,75 @@ var OPERATIONAL_HEADER_DEVICES_GRID_STYLES = `
|
|
|
108290
108317
|
font-size: 18px;
|
|
108291
108318
|
}
|
|
108292
108319
|
|
|
108320
|
+
/* ========== Hover Expand Effect ========== */
|
|
108321
|
+
.ohg-header-v2 .ohg-col,
|
|
108322
|
+
.ohg-header-v2 .ohg-sub-col {
|
|
108323
|
+
transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
|
|
108324
|
+
box-shadow 0.22s ease,
|
|
108325
|
+
background 0.18s ease;
|
|
108326
|
+
position: relative;
|
|
108327
|
+
z-index: 1;
|
|
108328
|
+
cursor: default;
|
|
108329
|
+
}
|
|
108330
|
+
|
|
108331
|
+
.ohg-header-v2 .ohg-col .ohg-col-title,
|
|
108332
|
+
.ohg-header-v2 .ohg-col .ohg-col-value,
|
|
108333
|
+
.ohg-header-v2 .ohg-sub-col .ohg-sub-label,
|
|
108334
|
+
.ohg-header-v2 .ohg-sub-col .ohg-sub-value {
|
|
108335
|
+
transition: font-size 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
108336
|
+
}
|
|
108337
|
+
|
|
108338
|
+
.ohg-header-v2 .ohg-col:hover {
|
|
108339
|
+
transform: scale(1.18);
|
|
108340
|
+
z-index: 20;
|
|
108341
|
+
border-radius: 6px;
|
|
108342
|
+
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(139, 92, 246, 0.35);
|
|
108343
|
+
background: rgba(255, 255, 255, 0.07) !important;
|
|
108344
|
+
}
|
|
108345
|
+
|
|
108346
|
+
.ohg-header-v2 .ohg-col:hover .ohg-col-title {
|
|
108347
|
+
font-size: 10px;
|
|
108348
|
+
}
|
|
108349
|
+
|
|
108350
|
+
.ohg-header-v2 .ohg-col:hover .ohg-col-value {
|
|
108351
|
+
font-size: 22px;
|
|
108352
|
+
}
|
|
108353
|
+
|
|
108354
|
+
.ohg-header-v2 .ohg-col-total:hover .ohg-col-value {
|
|
108355
|
+
font-size: 28px;
|
|
108356
|
+
}
|
|
108357
|
+
|
|
108358
|
+
.ohg-header-v2 .ohg-col-availability:hover .ohg-col-value {
|
|
108359
|
+
font-size: 28px;
|
|
108360
|
+
}
|
|
108361
|
+
|
|
108362
|
+
.ohg-header-v2 .ohg-sub-col:hover {
|
|
108363
|
+
transform: scale(1.22);
|
|
108364
|
+
z-index: 20;
|
|
108365
|
+
border-radius: 5px;
|
|
108366
|
+
box-shadow: 0 6px 22px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
108367
|
+
background: rgba(255, 255, 255, 0.08) !important;
|
|
108368
|
+
}
|
|
108369
|
+
|
|
108370
|
+
.ohg-header-v2 .ohg-sub-col:hover .ohg-sub-label {
|
|
108371
|
+
font-size: 9px;
|
|
108372
|
+
}
|
|
108373
|
+
|
|
108374
|
+
.ohg-header-v2 .ohg-sub-col:hover .ohg-sub-value {
|
|
108375
|
+
font-size: 20px;
|
|
108376
|
+
}
|
|
108377
|
+
|
|
108378
|
+
/* Light mode hover adjustments */
|
|
108379
|
+
.ohg-header-v2.ohg-header--light .ohg-col:hover {
|
|
108380
|
+
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(139, 92, 246, 0.4);
|
|
108381
|
+
background: rgba(0, 0, 0, 0.04) !important;
|
|
108382
|
+
}
|
|
108383
|
+
|
|
108384
|
+
.ohg-header-v2.ohg-header--light .ohg-sub-col:hover {
|
|
108385
|
+
box-shadow: 0 6px 22px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(139, 92, 246, 0.3);
|
|
108386
|
+
background: rgba(0, 0, 0, 0.04) !important;
|
|
108387
|
+
}
|
|
108388
|
+
|
|
108293
108389
|
/* Actions Column */
|
|
108294
108390
|
.ohg-header-v2 .ohg-col-actions {
|
|
108295
108391
|
display: flex;
|
package/dist/index.d.cts
CHANGED
|
@@ -14585,7 +14585,7 @@ declare class OperationalHeaderDevicesGridView {
|
|
|
14585
14585
|
* RFC-0152: OperationalHeaderDevicesGrid Component Styles
|
|
14586
14586
|
* Premium CSS-in-JS styles for the operational stats header
|
|
14587
14587
|
*/
|
|
14588
|
-
declare const OPERATIONAL_HEADER_DEVICES_GRID_STYLES = "\n /* RFC-0152: OperationalHeaderDevicesGrid - Premium Header V2 */\n .ohg-header {\n display: flex !important;\n flex-direction: row !important;\n align-items: stretch;\n gap: 0;\n padding: 0;\n background: var(--card-bg, #1e293b);\n border-radius: 8px;\n margin-bottom: 12px;\n overflow: hidden;\n min-height: 56px;\n }\n\n /* ========== V2 Layout ========== */\n .ohg-header-v2 {\n min-height: auto;\n overflow-x: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--card-bd, #334155) transparent;\n }\n\n .ohg-header-v2::-webkit-scrollbar {\n height: 4px;\n }\n\n .ohg-header-v2::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .ohg-header-v2::-webkit-scrollbar-thumb {\n background: var(--card-bd, #334155);\n border-radius: 2px;\n }\n\n /* Single Column (TOTAL, OFFLINE, MTBF, MTTR, DISP) */\n .ohg-header-v2 .ohg-col {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 6px 8px;\n border-right: 1px solid var(--card-bd, #334155);\n min-width: 60px;\n flex: 1 1 auto;\n }\n\n .ohg-header-v2 .ohg-col-title {\n font-size: 8px;\n font-weight: 600;\n color: var(--ink-2, #94a3b8);\n text-transform: uppercase;\n letter-spacing: 0.2px;\n white-space: nowrap;\n margin-bottom: 2px;\n }\n\n .ohg-header-v2 .ohg-col-value {\n font-size: 14px;\n font-weight: 700;\n color: var(--ink-1, #f1f5f9);\n }\n\n /* Column Groups (ONLINE, MANUTEN\u00C7\u00C3O) */\n .ohg-header-v2 .ohg-col-group {\n display: flex;\n flex-direction: column;\n border-right: 1px solid var(--card-bd, #334155);\n flex: 2 1 auto;\n }\n\n .ohg-header-v2 .ohg-group-title {\n font-size: 8px;\n font-weight: 600;\n color: var(--ink-2, #94a3b8);\n text-transform: uppercase;\n letter-spacing: 0.2px;\n text-align: center;\n padding: 4px 6px 3px;\n border-bottom: 1px solid var(--card-bd, #334155);\n background: rgba(255,255,255,0.02);\n }\n\n .ohg-header-v2 .ohg-group-items {\n display: flex;\n flex: 1;\n }\n\n .ohg-header-v2 .ohg-sub-col {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 4px 6px;\n border-right: 1px solid var(--card-bd, #334155);\n min-width: 45px;\n flex: 1 1 auto;\n }\n\n .ohg-header-v2 .ohg-sub-col:last-child {\n border-right: none;\n }\n\n .ohg-header-v2 .ohg-sub-label {\n font-size: 7px;\n color: var(--ink-2, #94a3b8);\n text-transform: uppercase;\n letter-spacing: 0.1px;\n white-space: nowrap;\n margin-bottom: 1px;\n }\n\n .ohg-header-v2 .ohg-sub-value {\n font-size: 12px;\n font-weight: 700;\n color: var(--ink-1, #f1f5f9);\n }\n\n /* TOTAL Column */\n .ohg-header-v2 .ohg-col-total {\n background: rgba(139, 92, 246, 0.1);\n min-width: 65px;\n }\n .ohg-header-v2 .ohg-col-total .ohg-col-value {\n color: #a78bfa;\n font-size: 18px;\n }\n\n /* ONLINE Group - Green tones */\n .ohg-header-v2 .ohg-col-online {\n background: rgba(34, 197, 94, 0.05);\n }\n .ohg-header-v2 .ohg-col-online .ohg-group-title {\n color: #22c55e;\n background: rgba(34, 197, 94, 0.1);\n }\n .ohg-header-v2 .ohg-sub-col.standby .ohg-sub-value { color: #94a3b8; }\n .ohg-header-v2 .ohg-sub-col.normal .ohg-sub-value { color: #22c55e; }\n .ohg-header-v2 .ohg-sub-col.alert .ohg-sub-value { color: #eab308; }\n .ohg-header-v2 .ohg-sub-col.failure .ohg-sub-value { color: #ef4444; }\n\n /* MANUTEN\u00C7\u00C3O Group - Orange tones */\n .ohg-header-v2 .ohg-col-maintenance {\n background: rgba(249, 115, 22, 0.05);\n }\n .ohg-header-v2 .ohg-col-maintenance .ohg-group-title {\n color: #f97316;\n background: rgba(249, 115, 22, 0.1);\n }\n .ohg-header-v2 .ohg-sub-col.maint-online .ohg-sub-value { color: #22c55e; }\n .ohg-header-v2 .ohg-sub-col.maint-offline .ohg-sub-value { color: #ef4444; }\n\n /* OFFLINE Column */\n .ohg-header-v2 .ohg-col-offline {\n background: rgba(239, 68, 68, 0.05);\n }\n .ohg-header-v2 .ohg-col-offline .ohg-col-value {\n color: #ef4444;\n }\n\n /* MTBF Column */\n .ohg-header-v2 .ohg-col-mtbf {\n background: rgba(59, 130, 246, 0.05);\n }\n .ohg-header-v2 .ohg-col-mtbf .ohg-col-value {\n color: #3b82f6;\n }\n\n /* MTTR Column */\n .ohg-header-v2 .ohg-col-mttr {\n background: rgba(245, 158, 11, 0.05);\n }\n .ohg-header-v2 .ohg-col-mttr .ohg-col-value {\n color: #f59e0b;\n }\n\n /* DISP. M\u00C9DIA Column */\n .ohg-header-v2 .ohg-col-availability {\n background: linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(139, 92, 246, 0.15) 100%);\n }\n .ohg-header-v2 .ohg-col-availability .ohg-col-value {\n color: #8b5cf6;\n font-size: 18px;\n }\n\n /* Actions Column */\n .ohg-header-v2 .ohg-col-actions {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n border-left: 1px solid var(--card-bd, #334155);\n flex: 0 0 auto;\n }\n\n /* ========== Legacy V1 Styles ========== */\n /* Title Section */\n .ohg-header .ohg-title-section {\n display: flex;\n align-items: center;\n padding: 8px 16px;\n border-right: 1px solid var(--card-bd, #334155);\n min-width: 180px;\n }\n\n .ohg-header .ohg-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--ink-1, #f1f5f9);\n white-space: nowrap;\n }\n\n .ohg-header .ohg-count {\n font-size: 11px;\n color: var(--ink-2, #94a3b8);\n margin-left: 8px;\n background: var(--card-bd, #334155);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Stat Items */\n .ohg-header .stat-item {\n display: flex !important;\n flex-direction: column !important;\n justify-content: center;\n gap: 2px;\n flex: 1 1 0;\n min-width: 90px;\n padding: 8px 14px;\n border-right: 1px solid var(--card-bd, #334155);\n }\n\n .ohg-header .stat-item:last-of-type {\n border-right: none;\n }\n\n .ohg-header .stat-label {\n font-size: 9px;\n color: var(--ink-2, #94a3b8);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n white-space: nowrap;\n }\n\n .ohg-header .stat-value {\n font-size: 16px;\n font-weight: 700;\n color: var(--ink-1, #f1f5f9);\n }\n\n /* Status-specific colors */\n .ohg-header .stat-item.online .stat-value {\n color: #22c55e;\n }\n\n .ohg-header .stat-item.offline .stat-value {\n color: #ef4444;\n }\n\n .ohg-header .stat-item.maintenance .stat-value {\n color: #f97316;\n }\n\n .ohg-header .stat-item.warning .stat-value {\n color: #eab308;\n }\n\n /* Availability highlight */\n .ohg-header .stat-item.availability {\n flex: 1.2 1 0;\n background: linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(139, 92, 246, 0.2) 100%);\n border-left: 2px solid #8b5cf6;\n border-right: 2px solid #8b5cf6;\n }\n\n .ohg-header .stat-item.availability .stat-value {\n color: #8b5cf6;\n font-size: 18px;\n }\n\n /* Filter Actions Section */\n .ohg-header .filter-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-left: 1px solid var(--card-bd, #334155);\n margin-left: auto;\n }\n\n /* Search Wrap */\n .ohg-header .search-wrap,\n .ohg-header-v2 .search-wrap {\n display: none;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .ohg-header .search-wrap.active,\n .ohg-header-v2 .search-wrap.active {\n display: block;\n }\n\n .ohg-header .search-wrap input,\n .ohg-header-v2 .search-wrap input {\n padding: 6px 10px;\n border: 1px solid var(--card-bd, #334155);\n border-radius: 6px;\n background: transparent;\n color: var(--ink-1, #f1f5f9);\n font-size: 11px;\n width: 140px;\n }\n\n .ohg-header .search-wrap input:focus,\n .ohg-header-v2 .search-wrap input:focus {\n outline: none;\n border-color: #8b5cf6;\n }\n\n .ohg-header .search-wrap input::placeholder,\n .ohg-header-v2 .search-wrap input::placeholder {\n color: var(--ink-2, #94a3b8);\n }\n\n /* Icon Buttons */\n .ohg-header .icon-btn,\n .ohg-header-v2 .icon-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid var(--card-bd, #334155);\n border-radius: 6px;\n background: transparent;\n color: var(--ink-2, #94a3b8);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .ohg-header .icon-btn.filter-btn,\n .ohg-header-v2 .icon-btn.filter-btn {\n background: #3e1a7d;\n border-color: #3e1a7d;\n color: #ffffff;\n }\n\n .ohg-header .icon-btn.filter-btn:hover,\n .ohg-header-v2 .icon-btn.filter-btn:hover {\n filter: brightness(1.1);\n background: #4b1d96;\n border-color: #4b1d96;\n }\n\n .ohg-header .icon-btn:hover,\n .ohg-header-v2 .icon-btn:hover {\n background: #8b5cf6;\n border-color: #8b5cf6;\n color: white;\n }\n\n .ohg-header .icon-btn svg,\n .ohg-header-v2 .icon-btn svg {\n width: 16px;\n height: 16px;\n fill: currentColor;\n display: block;\n }\n\n .ohg-header .icon-btn .icon-minimize,\n .ohg-header-v2 .icon-btn .icon-minimize {\n display: none;\n }\n\n .ohg-header .icon-btn .icon-maximize,\n .ohg-header-v2 .icon-btn .icon-maximize {\n display: block;\n }\n\n /* Light mode */\n .ohg-header--light {\n background: #ffffff;\n border: 1px solid #e2e8f0;\n }\n\n .ohg-header--light .ohg-title-section {\n border-color: #e2e8f0;\n }\n\n .ohg-header--light .ohg-title {\n color: #1e293b;\n }\n\n .ohg-header--light .ohg-count {\n background: #e2e8f0;\n color: #64748b;\n }\n\n .ohg-header--light .stat-item {\n border-color: #e2e8f0;\n }\n\n .ohg-header--light .stat-item.availability {\n background: linear-gradient(135deg, rgba(139, 92, 246, 0.08) 0%, rgba(139, 92, 246, 0.15) 100%);\n border-left-color: #8b5cf6;\n border-right-color: #8b5cf6;\n }\n\n .ohg-header--light .stat-label {\n color: #64748b;\n }\n\n .ohg-header--light .stat-value {\n color: #1e293b;\n }\n\n .ohg-header--light .filter-actions {\n border-color: #e2e8f0;\n }\n\n .ohg-header--light .search-wrap input {\n background: #f8fafc;\n border-color: #cbd5e1;\n color: #1e293b;\n }\n\n .ohg-header--light .icon-btn {\n border-color: #cbd5e1;\n color: #64748b;\n }\n\n .ohg-header--light .icon-btn.filter-btn {\n background: #e9d5ff;\n border-color: #e9d5ff;\n color: #5b21b6;\n }\n\n .ohg-header--light .icon-btn.filter-btn:hover {\n background: #ddd6fe;\n border-color: #ddd6fe;\n color: #4c1d95;\n }\n\n /* Light mode V2 */\n .ohg-header-v2.ohg-header--light .ohg-col {\n border-color: #e2e8f0;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-col-title,\n .ohg-header-v2.ohg-header--light .ohg-sub-label {\n color: #64748b;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-col-value,\n .ohg-header-v2.ohg-header--light .ohg-sub-value {\n color: #1e293b;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-col-group {\n border-color: #e2e8f0;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-group-title {\n border-color: #e2e8f0;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-sub-col {\n border-color: #e2e8f0;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-col-actions {\n border-color: #e2e8f0;\n }\n\n /* Maximized state */\n .operational-grid-wrap.maximized {\n position: fixed !important;\n inset: 0 !important;\n z-index: 99999 !important;\n width: 100vw !important;\n height: 100vh !important;\n background: var(--card-bg, #0f172a) !important;\n border-radius: 0 !important;\n overflow: auto !important;\n padding: 16px !important;\n }\n\n .operational-grid-wrap.maximized .ohg-header {\n position: sticky;\n top: 0;\n z-index: 10;\n margin-bottom: 16px;\n }\n\n .operational-grid-wrap.maximized .ohg-header .icon-btn .icon-maximize {\n display: none;\n }\n\n .operational-grid-wrap.maximized .ohg-header .icon-btn .icon-minimize {\n display: block;\n }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .ohg-header {\n flex-wrap: wrap;\n }\n\n .ohg-header .ohg-title-section {\n flex: 1 1 100%;\n border-right: none;\n border-bottom: 1px solid var(--card-bd, #334155);\n }\n\n .ohg-header .filter-actions {\n margin-left: 0;\n flex: 1 1 100%;\n justify-content: flex-end;\n border-left: none;\n border-top: 1px solid var(--card-bd, #334155);\n }\n }\n\n @media (max-width: 768px) {\n .ohg-header .stat-item {\n min-width: 60px;\n padding: 6px 10px;\n }\n\n .ohg-header .stat-value {\n font-size: 14px;\n }\n\n .ohg-header .stat-item.availability .stat-value {\n font-size: 16px;\n }\n\n .ohg-header .customer-select {\n min-width: 100px;\n }\n\n .ohg-header .search-wrap input {\n width: 120px;\n }\n }\n";
|
|
14588
|
+
declare const OPERATIONAL_HEADER_DEVICES_GRID_STYLES = "\n /* RFC-0152: OperationalHeaderDevicesGrid - Premium Header V2 */\n .ohg-header {\n display: flex !important;\n flex-direction: row !important;\n align-items: stretch;\n gap: 0;\n padding: 0;\n background: var(--card-bg, #1e293b);\n border-radius: 8px;\n margin-bottom: 12px;\n overflow: hidden;\n min-height: 56px;\n }\n\n /* ========== V2 Layout ========== */\n .ohg-header-v2 {\n min-height: auto;\n overflow-x: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--card-bd, #334155) transparent;\n }\n\n .ohg-header-v2::-webkit-scrollbar {\n height: 4px;\n }\n\n .ohg-header-v2::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .ohg-header-v2::-webkit-scrollbar-thumb {\n background: var(--card-bd, #334155);\n border-radius: 2px;\n }\n\n /* Single Column (TOTAL, OFFLINE, MTBF, MTTR, DISP) */\n .ohg-header-v2 .ohg-col {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 6px 8px;\n border-right: 1px solid var(--card-bd, #334155);\n min-width: 60px;\n flex: 1 1 auto;\n }\n\n .ohg-header-v2 .ohg-col-title {\n font-size: 8px;\n font-weight: 600;\n color: var(--ink-2, #94a3b8);\n text-transform: uppercase;\n letter-spacing: 0.2px;\n white-space: nowrap;\n margin-bottom: 2px;\n }\n\n .ohg-header-v2 .ohg-col-value {\n font-size: 14px;\n font-weight: 700;\n color: var(--ink-1, #f1f5f9);\n }\n\n /* Column Groups (ONLINE, MANUTEN\u00C7\u00C3O) */\n .ohg-header-v2 .ohg-col-group {\n display: flex;\n flex-direction: column;\n border-right: 1px solid var(--card-bd, #334155);\n flex: 2 1 auto;\n }\n\n .ohg-header-v2 .ohg-group-title {\n font-size: 8px;\n font-weight: 600;\n color: var(--ink-2, #94a3b8);\n text-transform: uppercase;\n letter-spacing: 0.2px;\n text-align: center;\n padding: 4px 6px 3px;\n border-bottom: 1px solid var(--card-bd, #334155);\n background: rgba(255,255,255,0.02);\n }\n\n .ohg-header-v2 .ohg-group-items {\n display: flex;\n flex: 1;\n }\n\n .ohg-header-v2 .ohg-sub-col {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 4px 6px;\n border-right: 1px solid var(--card-bd, #334155);\n min-width: 45px;\n flex: 1 1 auto;\n }\n\n .ohg-header-v2 .ohg-sub-col:last-child {\n border-right: none;\n }\n\n .ohg-header-v2 .ohg-sub-label {\n font-size: 7px;\n color: var(--ink-2, #94a3b8);\n text-transform: uppercase;\n letter-spacing: 0.1px;\n white-space: nowrap;\n margin-bottom: 1px;\n }\n\n .ohg-header-v2 .ohg-sub-value {\n font-size: 12px;\n font-weight: 700;\n color: var(--ink-1, #f1f5f9);\n }\n\n /* TOTAL Column */\n .ohg-header-v2 .ohg-col-total {\n background: rgba(139, 92, 246, 0.1);\n min-width: 65px;\n }\n .ohg-header-v2 .ohg-col-total .ohg-col-value {\n color: #a78bfa;\n font-size: 18px;\n }\n\n /* ONLINE Group - Green tones */\n .ohg-header-v2 .ohg-col-online {\n background: rgba(34, 197, 94, 0.05);\n }\n .ohg-header-v2 .ohg-col-online .ohg-group-title {\n color: #22c55e;\n background: rgba(34, 197, 94, 0.1);\n }\n .ohg-header-v2 .ohg-sub-col.standby .ohg-sub-value { color: #94a3b8; }\n .ohg-header-v2 .ohg-sub-col.normal .ohg-sub-value { color: #22c55e; }\n .ohg-header-v2 .ohg-sub-col.alert .ohg-sub-value { color: #eab308; }\n .ohg-header-v2 .ohg-sub-col.failure .ohg-sub-value { color: #ef4444; }\n\n /* MANUTEN\u00C7\u00C3O Group - Orange tones */\n .ohg-header-v2 .ohg-col-maintenance {\n background: rgba(249, 115, 22, 0.05);\n }\n .ohg-header-v2 .ohg-col-maintenance .ohg-group-title {\n color: #f97316;\n background: rgba(249, 115, 22, 0.1);\n }\n .ohg-header-v2 .ohg-sub-col.maint-online .ohg-sub-value { color: #22c55e; }\n .ohg-header-v2 .ohg-sub-col.maint-offline .ohg-sub-value { color: #ef4444; }\n\n /* OFFLINE Column */\n .ohg-header-v2 .ohg-col-offline {\n background: rgba(239, 68, 68, 0.05);\n }\n .ohg-header-v2 .ohg-col-offline .ohg-col-value {\n color: #ef4444;\n }\n\n /* MTBF Column */\n .ohg-header-v2 .ohg-col-mtbf {\n background: rgba(59, 130, 246, 0.05);\n }\n .ohg-header-v2 .ohg-col-mtbf .ohg-col-value {\n color: #3b82f6;\n }\n\n /* MTTR Column */\n .ohg-header-v2 .ohg-col-mttr {\n background: rgba(245, 158, 11, 0.05);\n }\n .ohg-header-v2 .ohg-col-mttr .ohg-col-value {\n color: #f59e0b;\n }\n\n /* DISP. M\u00C9DIA Column */\n .ohg-header-v2 .ohg-col-availability {\n background: linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(139, 92, 246, 0.15) 100%);\n }\n .ohg-header-v2 .ohg-col-availability .ohg-col-value {\n color: #8b5cf6;\n font-size: 18px;\n }\n\n /* ========== Hover Expand Effect ========== */\n .ohg-header-v2 .ohg-col,\n .ohg-header-v2 .ohg-sub-col {\n transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),\n box-shadow 0.22s ease,\n background 0.18s ease;\n position: relative;\n z-index: 1;\n cursor: default;\n }\n\n .ohg-header-v2 .ohg-col .ohg-col-title,\n .ohg-header-v2 .ohg-col .ohg-col-value,\n .ohg-header-v2 .ohg-sub-col .ohg-sub-label,\n .ohg-header-v2 .ohg-sub-col .ohg-sub-value {\n transition: font-size 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);\n }\n\n .ohg-header-v2 .ohg-col:hover {\n transform: scale(1.18);\n z-index: 20;\n border-radius: 6px;\n box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(139, 92, 246, 0.35);\n background: rgba(255, 255, 255, 0.07) !important;\n }\n\n .ohg-header-v2 .ohg-col:hover .ohg-col-title {\n font-size: 10px;\n }\n\n .ohg-header-v2 .ohg-col:hover .ohg-col-value {\n font-size: 22px;\n }\n\n .ohg-header-v2 .ohg-col-total:hover .ohg-col-value {\n font-size: 28px;\n }\n\n .ohg-header-v2 .ohg-col-availability:hover .ohg-col-value {\n font-size: 28px;\n }\n\n .ohg-header-v2 .ohg-sub-col:hover {\n transform: scale(1.22);\n z-index: 20;\n border-radius: 5px;\n box-shadow: 0 6px 22px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.1);\n background: rgba(255, 255, 255, 0.08) !important;\n }\n\n .ohg-header-v2 .ohg-sub-col:hover .ohg-sub-label {\n font-size: 9px;\n }\n\n .ohg-header-v2 .ohg-sub-col:hover .ohg-sub-value {\n font-size: 20px;\n }\n\n /* Light mode hover adjustments */\n .ohg-header-v2.ohg-header--light .ohg-col:hover {\n box-shadow: 0 8px 28px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(139, 92, 246, 0.4);\n background: rgba(0, 0, 0, 0.04) !important;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-sub-col:hover {\n box-shadow: 0 6px 22px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(139, 92, 246, 0.3);\n background: rgba(0, 0, 0, 0.04) !important;\n }\n\n /* Actions Column */\n .ohg-header-v2 .ohg-col-actions {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n border-left: 1px solid var(--card-bd, #334155);\n flex: 0 0 auto;\n }\n\n /* ========== Legacy V1 Styles ========== */\n /* Title Section */\n .ohg-header .ohg-title-section {\n display: flex;\n align-items: center;\n padding: 8px 16px;\n border-right: 1px solid var(--card-bd, #334155);\n min-width: 180px;\n }\n\n .ohg-header .ohg-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--ink-1, #f1f5f9);\n white-space: nowrap;\n }\n\n .ohg-header .ohg-count {\n font-size: 11px;\n color: var(--ink-2, #94a3b8);\n margin-left: 8px;\n background: var(--card-bd, #334155);\n padding: 2px 8px;\n border-radius: 10px;\n }\n\n /* Stat Items */\n .ohg-header .stat-item {\n display: flex !important;\n flex-direction: column !important;\n justify-content: center;\n gap: 2px;\n flex: 1 1 0;\n min-width: 90px;\n padding: 8px 14px;\n border-right: 1px solid var(--card-bd, #334155);\n }\n\n .ohg-header .stat-item:last-of-type {\n border-right: none;\n }\n\n .ohg-header .stat-label {\n font-size: 9px;\n color: var(--ink-2, #94a3b8);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n white-space: nowrap;\n }\n\n .ohg-header .stat-value {\n font-size: 16px;\n font-weight: 700;\n color: var(--ink-1, #f1f5f9);\n }\n\n /* Status-specific colors */\n .ohg-header .stat-item.online .stat-value {\n color: #22c55e;\n }\n\n .ohg-header .stat-item.offline .stat-value {\n color: #ef4444;\n }\n\n .ohg-header .stat-item.maintenance .stat-value {\n color: #f97316;\n }\n\n .ohg-header .stat-item.warning .stat-value {\n color: #eab308;\n }\n\n /* Availability highlight */\n .ohg-header .stat-item.availability {\n flex: 1.2 1 0;\n background: linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(139, 92, 246, 0.2) 100%);\n border-left: 2px solid #8b5cf6;\n border-right: 2px solid #8b5cf6;\n }\n\n .ohg-header .stat-item.availability .stat-value {\n color: #8b5cf6;\n font-size: 18px;\n }\n\n /* Filter Actions Section */\n .ohg-header .filter-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border-left: 1px solid var(--card-bd, #334155);\n margin-left: auto;\n }\n\n /* Search Wrap */\n .ohg-header .search-wrap,\n .ohg-header-v2 .search-wrap {\n display: none;\n overflow: hidden;\n transition: all 0.2s ease;\n }\n\n .ohg-header .search-wrap.active,\n .ohg-header-v2 .search-wrap.active {\n display: block;\n }\n\n .ohg-header .search-wrap input,\n .ohg-header-v2 .search-wrap input {\n padding: 6px 10px;\n border: 1px solid var(--card-bd, #334155);\n border-radius: 6px;\n background: transparent;\n color: var(--ink-1, #f1f5f9);\n font-size: 11px;\n width: 140px;\n }\n\n .ohg-header .search-wrap input:focus,\n .ohg-header-v2 .search-wrap input:focus {\n outline: none;\n border-color: #8b5cf6;\n }\n\n .ohg-header .search-wrap input::placeholder,\n .ohg-header-v2 .search-wrap input::placeholder {\n color: var(--ink-2, #94a3b8);\n }\n\n /* Icon Buttons */\n .ohg-header .icon-btn,\n .ohg-header-v2 .icon-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid var(--card-bd, #334155);\n border-radius: 6px;\n background: transparent;\n color: var(--ink-2, #94a3b8);\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .ohg-header .icon-btn.filter-btn,\n .ohg-header-v2 .icon-btn.filter-btn {\n background: #3e1a7d;\n border-color: #3e1a7d;\n color: #ffffff;\n }\n\n .ohg-header .icon-btn.filter-btn:hover,\n .ohg-header-v2 .icon-btn.filter-btn:hover {\n filter: brightness(1.1);\n background: #4b1d96;\n border-color: #4b1d96;\n }\n\n .ohg-header .icon-btn:hover,\n .ohg-header-v2 .icon-btn:hover {\n background: #8b5cf6;\n border-color: #8b5cf6;\n color: white;\n }\n\n .ohg-header .icon-btn svg,\n .ohg-header-v2 .icon-btn svg {\n width: 16px;\n height: 16px;\n fill: currentColor;\n display: block;\n }\n\n .ohg-header .icon-btn .icon-minimize,\n .ohg-header-v2 .icon-btn .icon-minimize {\n display: none;\n }\n\n .ohg-header .icon-btn .icon-maximize,\n .ohg-header-v2 .icon-btn .icon-maximize {\n display: block;\n }\n\n /* Light mode */\n .ohg-header--light {\n background: #ffffff;\n border: 1px solid #e2e8f0;\n }\n\n .ohg-header--light .ohg-title-section {\n border-color: #e2e8f0;\n }\n\n .ohg-header--light .ohg-title {\n color: #1e293b;\n }\n\n .ohg-header--light .ohg-count {\n background: #e2e8f0;\n color: #64748b;\n }\n\n .ohg-header--light .stat-item {\n border-color: #e2e8f0;\n }\n\n .ohg-header--light .stat-item.availability {\n background: linear-gradient(135deg, rgba(139, 92, 246, 0.08) 0%, rgba(139, 92, 246, 0.15) 100%);\n border-left-color: #8b5cf6;\n border-right-color: #8b5cf6;\n }\n\n .ohg-header--light .stat-label {\n color: #64748b;\n }\n\n .ohg-header--light .stat-value {\n color: #1e293b;\n }\n\n .ohg-header--light .filter-actions {\n border-color: #e2e8f0;\n }\n\n .ohg-header--light .search-wrap input {\n background: #f8fafc;\n border-color: #cbd5e1;\n color: #1e293b;\n }\n\n .ohg-header--light .icon-btn {\n border-color: #cbd5e1;\n color: #64748b;\n }\n\n .ohg-header--light .icon-btn.filter-btn {\n background: #e9d5ff;\n border-color: #e9d5ff;\n color: #5b21b6;\n }\n\n .ohg-header--light .icon-btn.filter-btn:hover {\n background: #ddd6fe;\n border-color: #ddd6fe;\n color: #4c1d95;\n }\n\n /* Light mode V2 */\n .ohg-header-v2.ohg-header--light .ohg-col {\n border-color: #e2e8f0;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-col-title,\n .ohg-header-v2.ohg-header--light .ohg-sub-label {\n color: #64748b;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-col-value,\n .ohg-header-v2.ohg-header--light .ohg-sub-value {\n color: #1e293b;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-col-group {\n border-color: #e2e8f0;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-group-title {\n border-color: #e2e8f0;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-sub-col {\n border-color: #e2e8f0;\n }\n\n .ohg-header-v2.ohg-header--light .ohg-col-actions {\n border-color: #e2e8f0;\n }\n\n /* Maximized state */\n .operational-grid-wrap.maximized {\n position: fixed !important;\n inset: 0 !important;\n z-index: 99999 !important;\n width: 100vw !important;\n height: 100vh !important;\n background: var(--card-bg, #0f172a) !important;\n border-radius: 0 !important;\n overflow: auto !important;\n padding: 16px !important;\n }\n\n .operational-grid-wrap.maximized .ohg-header {\n position: sticky;\n top: 0;\n z-index: 10;\n margin-bottom: 16px;\n }\n\n .operational-grid-wrap.maximized .ohg-header .icon-btn .icon-maximize {\n display: none;\n }\n\n .operational-grid-wrap.maximized .ohg-header .icon-btn .icon-minimize {\n display: block;\n }\n\n /* Responsive */\n @media (max-width: 1024px) {\n .ohg-header {\n flex-wrap: wrap;\n }\n\n .ohg-header .ohg-title-section {\n flex: 1 1 100%;\n border-right: none;\n border-bottom: 1px solid var(--card-bd, #334155);\n }\n\n .ohg-header .filter-actions {\n margin-left: 0;\n flex: 1 1 100%;\n justify-content: flex-end;\n border-left: none;\n border-top: 1px solid var(--card-bd, #334155);\n }\n }\n\n @media (max-width: 768px) {\n .ohg-header .stat-item {\n min-width: 60px;\n padding: 6px 10px;\n }\n\n .ohg-header .stat-value {\n font-size: 14px;\n }\n\n .ohg-header .stat-item.availability .stat-value {\n font-size: 16px;\n }\n\n .ohg-header .customer-select {\n min-width: 100px;\n }\n\n .ohg-header .search-wrap input {\n width: 120px;\n }\n }\n";
|
|
14589
14589
|
declare function injectOperationalHeaderDevicesGridStyles(): void;
|
|
14590
14590
|
declare function removeOperationalHeaderDevicesGridStyles(): void;
|
|
14591
14591
|
|
package/dist/index.js
CHANGED
|
@@ -546,7 +546,7 @@ var init_template_card = __esm({
|
|
|
546
546
|
// package.json
|
|
547
547
|
var package_default = {
|
|
548
548
|
name: "myio-js-library",
|
|
549
|
-
version: "0.1.
|
|
549
|
+
version: "0.1.469",
|
|
550
550
|
description: "A clean, standalone JS SDK for MYIO projects",
|
|
551
551
|
license: "MIT",
|
|
552
552
|
repository: "github:gh-myio/myio-js-library",
|
|
@@ -5045,6 +5045,12 @@ var MyIOSelectionStoreClass = class _MyIOSelectionStoreClass {
|
|
|
5045
5045
|
ingestionId: entity.ingestionId || entityId,
|
|
5046
5046
|
// ⭐ ADD: Store ingestionId for API calls
|
|
5047
5047
|
customerName: entity.customerName || entity.ownerName || entity.centralName || "",
|
|
5048
|
+
// RFC-0157: Operational metrics for comparison modal
|
|
5049
|
+
domain: entity.domain || null,
|
|
5050
|
+
availability: entity.availability ?? null,
|
|
5051
|
+
mtbf: entity.mtbf ?? null,
|
|
5052
|
+
mttr: entity.mttr ?? null,
|
|
5053
|
+
equipmentType: entity.equipmentType || null,
|
|
5048
5054
|
// Optional metadata passthrough (used by alarm comparisons)
|
|
5049
5055
|
meta: entity.meta || entity.alarmMeta || null,
|
|
5050
5056
|
alarm: entity.alarm || null
|
|
@@ -25728,7 +25734,28 @@ async function openRealTimeTelemetryModal(params) {
|
|
|
25728
25734
|
gearBtn.addEventListener("click", openIntervalConfigModal);
|
|
25729
25735
|
}
|
|
25730
25736
|
if (customerId) await loadCheckDeviceInterval();
|
|
25737
|
+
const useCheckDeviceOnOpen = !!centralId && !sessionStorage.getItem("rtt_check_device_disabled");
|
|
25738
|
+
if (useCheckDeviceOnOpen) {
|
|
25739
|
+
startCountdown(checkDeviceWaitMs);
|
|
25740
|
+
try {
|
|
25741
|
+
await fetch(
|
|
25742
|
+
`https://${centralId}.y.myio.com.br/api/check_device/${deviceCheckName}`,
|
|
25743
|
+
{ signal: AbortSignal.timeout(1e4) }
|
|
25744
|
+
);
|
|
25745
|
+
centralStatus = "ok";
|
|
25746
|
+
checkDeviceHistory.push({ ts: Date.now(), status: "ok" });
|
|
25747
|
+
} catch (e) {
|
|
25748
|
+
console.warn("[RTT] check_device (open) error:", e?.message ?? e);
|
|
25749
|
+
centralStatus = "offline";
|
|
25750
|
+
checkDeviceHistory.push({ ts: Date.now(), status: "offline" });
|
|
25751
|
+
}
|
|
25752
|
+
if (checkDeviceHistory.length > MAX_CHECK_DEVICE_HISTORY) checkDeviceHistory.shift();
|
|
25753
|
+
updateStatusBadges();
|
|
25754
|
+
await new Promise((r) => setTimeout(r, checkDeviceWaitMs));
|
|
25755
|
+
clearCountdown();
|
|
25756
|
+
}
|
|
25731
25757
|
await refreshData();
|
|
25758
|
+
isFirstTick = false;
|
|
25732
25759
|
scheduleCheckDeviceTick();
|
|
25733
25760
|
return {
|
|
25734
25761
|
destroy: closeModal2
|
|
@@ -107697,6 +107724,75 @@ var OPERATIONAL_HEADER_DEVICES_GRID_STYLES = `
|
|
|
107697
107724
|
font-size: 18px;
|
|
107698
107725
|
}
|
|
107699
107726
|
|
|
107727
|
+
/* ========== Hover Expand Effect ========== */
|
|
107728
|
+
.ohg-header-v2 .ohg-col,
|
|
107729
|
+
.ohg-header-v2 .ohg-sub-col {
|
|
107730
|
+
transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
|
|
107731
|
+
box-shadow 0.22s ease,
|
|
107732
|
+
background 0.18s ease;
|
|
107733
|
+
position: relative;
|
|
107734
|
+
z-index: 1;
|
|
107735
|
+
cursor: default;
|
|
107736
|
+
}
|
|
107737
|
+
|
|
107738
|
+
.ohg-header-v2 .ohg-col .ohg-col-title,
|
|
107739
|
+
.ohg-header-v2 .ohg-col .ohg-col-value,
|
|
107740
|
+
.ohg-header-v2 .ohg-sub-col .ohg-sub-label,
|
|
107741
|
+
.ohg-header-v2 .ohg-sub-col .ohg-sub-value {
|
|
107742
|
+
transition: font-size 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
107743
|
+
}
|
|
107744
|
+
|
|
107745
|
+
.ohg-header-v2 .ohg-col:hover {
|
|
107746
|
+
transform: scale(1.18);
|
|
107747
|
+
z-index: 20;
|
|
107748
|
+
border-radius: 6px;
|
|
107749
|
+
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(139, 92, 246, 0.35);
|
|
107750
|
+
background: rgba(255, 255, 255, 0.07) !important;
|
|
107751
|
+
}
|
|
107752
|
+
|
|
107753
|
+
.ohg-header-v2 .ohg-col:hover .ohg-col-title {
|
|
107754
|
+
font-size: 10px;
|
|
107755
|
+
}
|
|
107756
|
+
|
|
107757
|
+
.ohg-header-v2 .ohg-col:hover .ohg-col-value {
|
|
107758
|
+
font-size: 22px;
|
|
107759
|
+
}
|
|
107760
|
+
|
|
107761
|
+
.ohg-header-v2 .ohg-col-total:hover .ohg-col-value {
|
|
107762
|
+
font-size: 28px;
|
|
107763
|
+
}
|
|
107764
|
+
|
|
107765
|
+
.ohg-header-v2 .ohg-col-availability:hover .ohg-col-value {
|
|
107766
|
+
font-size: 28px;
|
|
107767
|
+
}
|
|
107768
|
+
|
|
107769
|
+
.ohg-header-v2 .ohg-sub-col:hover {
|
|
107770
|
+
transform: scale(1.22);
|
|
107771
|
+
z-index: 20;
|
|
107772
|
+
border-radius: 5px;
|
|
107773
|
+
box-shadow: 0 6px 22px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
107774
|
+
background: rgba(255, 255, 255, 0.08) !important;
|
|
107775
|
+
}
|
|
107776
|
+
|
|
107777
|
+
.ohg-header-v2 .ohg-sub-col:hover .ohg-sub-label {
|
|
107778
|
+
font-size: 9px;
|
|
107779
|
+
}
|
|
107780
|
+
|
|
107781
|
+
.ohg-header-v2 .ohg-sub-col:hover .ohg-sub-value {
|
|
107782
|
+
font-size: 20px;
|
|
107783
|
+
}
|
|
107784
|
+
|
|
107785
|
+
/* Light mode hover adjustments */
|
|
107786
|
+
.ohg-header-v2.ohg-header--light .ohg-col:hover {
|
|
107787
|
+
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(139, 92, 246, 0.4);
|
|
107788
|
+
background: rgba(0, 0, 0, 0.04) !important;
|
|
107789
|
+
}
|
|
107790
|
+
|
|
107791
|
+
.ohg-header-v2.ohg-header--light .ohg-sub-col:hover {
|
|
107792
|
+
box-shadow: 0 6px 22px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(139, 92, 246, 0.3);
|
|
107793
|
+
background: rgba(0, 0, 0, 0.04) !important;
|
|
107794
|
+
}
|
|
107795
|
+
|
|
107700
107796
|
/* Actions Column */
|
|
107701
107797
|
.ohg-header-v2 .ohg-col-actions {
|
|
107702
107798
|
display: flex;
|
|
@@ -4070,7 +4070,7 @@
|
|
|
4070
4070
|
|
|
4071
4071
|
// package.json
|
|
4072
4072
|
var package_default = {
|
|
4073
|
-
version: "0.1.
|
|
4073
|
+
version: "0.1.469"};
|
|
4074
4074
|
|
|
4075
4075
|
// src/format/energy.ts
|
|
4076
4076
|
function formatPower(value, decimals = 2) {
|
|
@@ -8497,6 +8497,12 @@
|
|
|
8497
8497
|
ingestionId: entity.ingestionId || entityId,
|
|
8498
8498
|
// ⭐ ADD: Store ingestionId for API calls
|
|
8499
8499
|
customerName: entity.customerName || entity.ownerName || entity.centralName || "",
|
|
8500
|
+
// RFC-0157: Operational metrics for comparison modal
|
|
8501
|
+
domain: entity.domain || null,
|
|
8502
|
+
availability: entity.availability ?? null,
|
|
8503
|
+
mtbf: entity.mtbf ?? null,
|
|
8504
|
+
mttr: entity.mttr ?? null,
|
|
8505
|
+
equipmentType: entity.equipmentType || null,
|
|
8500
8506
|
// Optional metadata passthrough (used by alarm comparisons)
|
|
8501
8507
|
meta: entity.meta || entity.alarmMeta || null,
|
|
8502
8508
|
alarm: entity.alarm || null
|
|
@@ -29115,7 +29121,28 @@
|
|
|
29115
29121
|
gearBtn.addEventListener("click", openIntervalConfigModal);
|
|
29116
29122
|
}
|
|
29117
29123
|
if (customerId) await loadCheckDeviceInterval();
|
|
29124
|
+
const useCheckDeviceOnOpen = !!centralId && !sessionStorage.getItem("rtt_check_device_disabled");
|
|
29125
|
+
if (useCheckDeviceOnOpen) {
|
|
29126
|
+
startCountdown(checkDeviceWaitMs);
|
|
29127
|
+
try {
|
|
29128
|
+
await fetch(
|
|
29129
|
+
`https://${centralId}.y.myio.com.br/api/check_device/${deviceCheckName}`,
|
|
29130
|
+
{ signal: AbortSignal.timeout(1e4) }
|
|
29131
|
+
);
|
|
29132
|
+
centralStatus = "ok";
|
|
29133
|
+
checkDeviceHistory.push({ ts: Date.now(), status: "ok" });
|
|
29134
|
+
} catch (e) {
|
|
29135
|
+
console.warn("[RTT] check_device (open) error:", e?.message ?? e);
|
|
29136
|
+
centralStatus = "offline";
|
|
29137
|
+
checkDeviceHistory.push({ ts: Date.now(), status: "offline" });
|
|
29138
|
+
}
|
|
29139
|
+
if (checkDeviceHistory.length > MAX_CHECK_DEVICE_HISTORY) checkDeviceHistory.shift();
|
|
29140
|
+
updateStatusBadges();
|
|
29141
|
+
await new Promise((r) => setTimeout(r, checkDeviceWaitMs));
|
|
29142
|
+
clearCountdown();
|
|
29143
|
+
}
|
|
29118
29144
|
await refreshData();
|
|
29145
|
+
isFirstTick = false;
|
|
29119
29146
|
scheduleCheckDeviceTick();
|
|
29120
29147
|
return {
|
|
29121
29148
|
destroy: closeModal2
|
|
@@ -110894,6 +110921,75 @@ Esta a\xE7\xE3o afeta todos os grupos que utilizam este canal.`
|
|
|
110894
110921
|
font-size: 18px;
|
|
110895
110922
|
}
|
|
110896
110923
|
|
|
110924
|
+
/* ========== Hover Expand Effect ========== */
|
|
110925
|
+
.ohg-header-v2 .ohg-col,
|
|
110926
|
+
.ohg-header-v2 .ohg-sub-col {
|
|
110927
|
+
transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
|
|
110928
|
+
box-shadow 0.22s ease,
|
|
110929
|
+
background 0.18s ease;
|
|
110930
|
+
position: relative;
|
|
110931
|
+
z-index: 1;
|
|
110932
|
+
cursor: default;
|
|
110933
|
+
}
|
|
110934
|
+
|
|
110935
|
+
.ohg-header-v2 .ohg-col .ohg-col-title,
|
|
110936
|
+
.ohg-header-v2 .ohg-col .ohg-col-value,
|
|
110937
|
+
.ohg-header-v2 .ohg-sub-col .ohg-sub-label,
|
|
110938
|
+
.ohg-header-v2 .ohg-sub-col .ohg-sub-value {
|
|
110939
|
+
transition: font-size 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
110940
|
+
}
|
|
110941
|
+
|
|
110942
|
+
.ohg-header-v2 .ohg-col:hover {
|
|
110943
|
+
transform: scale(1.18);
|
|
110944
|
+
z-index: 20;
|
|
110945
|
+
border-radius: 6px;
|
|
110946
|
+
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(139, 92, 246, 0.35);
|
|
110947
|
+
background: rgba(255, 255, 255, 0.07) !important;
|
|
110948
|
+
}
|
|
110949
|
+
|
|
110950
|
+
.ohg-header-v2 .ohg-col:hover .ohg-col-title {
|
|
110951
|
+
font-size: 10px;
|
|
110952
|
+
}
|
|
110953
|
+
|
|
110954
|
+
.ohg-header-v2 .ohg-col:hover .ohg-col-value {
|
|
110955
|
+
font-size: 22px;
|
|
110956
|
+
}
|
|
110957
|
+
|
|
110958
|
+
.ohg-header-v2 .ohg-col-total:hover .ohg-col-value {
|
|
110959
|
+
font-size: 28px;
|
|
110960
|
+
}
|
|
110961
|
+
|
|
110962
|
+
.ohg-header-v2 .ohg-col-availability:hover .ohg-col-value {
|
|
110963
|
+
font-size: 28px;
|
|
110964
|
+
}
|
|
110965
|
+
|
|
110966
|
+
.ohg-header-v2 .ohg-sub-col:hover {
|
|
110967
|
+
transform: scale(1.22);
|
|
110968
|
+
z-index: 20;
|
|
110969
|
+
border-radius: 5px;
|
|
110970
|
+
box-shadow: 0 6px 22px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
110971
|
+
background: rgba(255, 255, 255, 0.08) !important;
|
|
110972
|
+
}
|
|
110973
|
+
|
|
110974
|
+
.ohg-header-v2 .ohg-sub-col:hover .ohg-sub-label {
|
|
110975
|
+
font-size: 9px;
|
|
110976
|
+
}
|
|
110977
|
+
|
|
110978
|
+
.ohg-header-v2 .ohg-sub-col:hover .ohg-sub-value {
|
|
110979
|
+
font-size: 20px;
|
|
110980
|
+
}
|
|
110981
|
+
|
|
110982
|
+
/* Light mode hover adjustments */
|
|
110983
|
+
.ohg-header-v2.ohg-header--light .ohg-col:hover {
|
|
110984
|
+
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(139, 92, 246, 0.4);
|
|
110985
|
+
background: rgba(0, 0, 0, 0.04) !important;
|
|
110986
|
+
}
|
|
110987
|
+
|
|
110988
|
+
.ohg-header-v2.ohg-header--light .ohg-sub-col:hover {
|
|
110989
|
+
box-shadow: 0 6px 22px rgba(0, 0, 0, 0.12), 0 0 0 1px rgba(139, 92, 246, 0.3);
|
|
110990
|
+
background: rgba(0, 0, 0, 0.04) !important;
|
|
110991
|
+
}
|
|
110992
|
+
|
|
110897
110993
|
/* Actions Column */
|
|
110898
110994
|
.ohg-header-v2 .ohg-col-actions {
|
|
110899
110995
|
display: flex;
|