@imperosoft/cris-webui-components 1.1.2-beta.13 → 1.1.2-beta.15
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.js +143 -30
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +143 -30
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1347,12 +1347,25 @@ function CrisCoDebug({
|
|
|
1347
1347
|
// src/components/CrisCoMatrixListsTie.tsx
|
|
1348
1348
|
var import_cris_webui_ch5_core8 = require("@imperosoft/cris-webui-ch5-core");
|
|
1349
1349
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
1350
|
+
var colors = {
|
|
1351
|
+
itemBg: "#4f5152",
|
|
1352
|
+
itemActiveBg: "#007ca0",
|
|
1353
|
+
vmActiveBg: "#dc2626",
|
|
1354
|
+
text: "#ffffff",
|
|
1355
|
+
headerText: "#6b7280",
|
|
1356
|
+
ioOn: "#4caf50",
|
|
1357
|
+
ioOff: "#f44336",
|
|
1358
|
+
sgOn: "#2196f3",
|
|
1359
|
+
sgOff: "#666666"
|
|
1360
|
+
};
|
|
1350
1361
|
var defaults = {
|
|
1351
1362
|
container: {
|
|
1352
1363
|
display: "flex",
|
|
1353
1364
|
flexDirection: "row",
|
|
1354
|
-
gap:
|
|
1355
|
-
|
|
1365
|
+
gap: "1.5rem",
|
|
1366
|
+
padding: "1rem 2rem",
|
|
1367
|
+
height: "100%",
|
|
1368
|
+
width: "100%"
|
|
1356
1369
|
},
|
|
1357
1370
|
list: {
|
|
1358
1371
|
flex: 1,
|
|
@@ -1362,57 +1375,125 @@ var defaults = {
|
|
|
1362
1375
|
minHeight: 0
|
|
1363
1376
|
},
|
|
1364
1377
|
header: {
|
|
1365
|
-
fontSize:
|
|
1366
|
-
fontWeight:
|
|
1367
|
-
padding: "
|
|
1378
|
+
fontSize: "1.5em",
|
|
1379
|
+
fontWeight: 700,
|
|
1380
|
+
padding: "0.5rem 0.75rem",
|
|
1368
1381
|
textTransform: "uppercase",
|
|
1369
|
-
|
|
1370
|
-
|
|
1382
|
+
letterSpacing: "0.05em",
|
|
1383
|
+
color: colors.headerText,
|
|
1384
|
+
flexShrink: 0,
|
|
1385
|
+
textAlign: "center"
|
|
1371
1386
|
},
|
|
1372
1387
|
scroll: {
|
|
1373
1388
|
flex: 1,
|
|
1374
1389
|
minHeight: 0,
|
|
1375
1390
|
overflow: "auto",
|
|
1391
|
+
scrollbarWidth: "none",
|
|
1376
1392
|
WebkitOverflowScrolling: "touch",
|
|
1377
1393
|
display: "flex",
|
|
1378
1394
|
flexDirection: "column",
|
|
1379
|
-
gap:
|
|
1395
|
+
gap: "0.15rem"
|
|
1380
1396
|
},
|
|
1381
1397
|
item: {
|
|
1382
1398
|
display: "flex",
|
|
1383
|
-
alignItems: "
|
|
1384
|
-
gap:
|
|
1385
|
-
padding: "
|
|
1386
|
-
minHeight:
|
|
1399
|
+
alignItems: "stretch",
|
|
1400
|
+
gap: "0.5rem",
|
|
1401
|
+
padding: "0 0.4rem 0 0",
|
|
1402
|
+
minHeight: "3.7rem",
|
|
1387
1403
|
cursor: "pointer",
|
|
1388
|
-
userSelect: "none"
|
|
1404
|
+
userSelect: "none",
|
|
1405
|
+
background: colors.itemBg,
|
|
1406
|
+
borderRadius: "0.5rem",
|
|
1407
|
+
transition: "background 0.15s"
|
|
1408
|
+
},
|
|
1409
|
+
itemActive: {
|
|
1410
|
+
background: colors.itemActiveBg
|
|
1411
|
+
},
|
|
1412
|
+
itemBtn: {
|
|
1413
|
+
flex: 1,
|
|
1414
|
+
minWidth: 0,
|
|
1415
|
+
background: "transparent",
|
|
1416
|
+
border: "none",
|
|
1417
|
+
padding: "0.5rem 0.9rem",
|
|
1418
|
+
textAlign: "left",
|
|
1419
|
+
color: colors.text,
|
|
1420
|
+
height: "100%",
|
|
1421
|
+
borderRadius: "0.5rem",
|
|
1422
|
+
cursor: "pointer"
|
|
1423
|
+
},
|
|
1424
|
+
itemBtnInner: {
|
|
1425
|
+
display: "flex",
|
|
1426
|
+
alignItems: "center",
|
|
1427
|
+
gap: "0.4rem",
|
|
1428
|
+
width: "100%"
|
|
1429
|
+
},
|
|
1430
|
+
channelNum: {
|
|
1431
|
+
flexShrink: 0,
|
|
1432
|
+
opacity: 0.6,
|
|
1433
|
+
minWidth: "1.7em",
|
|
1434
|
+
textAlign: "right",
|
|
1435
|
+
fontWeight: 400,
|
|
1436
|
+
marginRight: "0.4em"
|
|
1389
1437
|
},
|
|
1390
1438
|
itemLabel: {
|
|
1391
1439
|
flex: 1,
|
|
1392
|
-
fontSize:
|
|
1440
|
+
fontSize: "1.4em",
|
|
1441
|
+
fontWeight: 700,
|
|
1393
1442
|
whiteSpace: "nowrap",
|
|
1394
1443
|
overflow: "hidden",
|
|
1395
|
-
textOverflow: "ellipsis"
|
|
1444
|
+
textOverflow: "ellipsis",
|
|
1445
|
+
color: colors.text
|
|
1396
1446
|
},
|
|
1397
1447
|
indicators: {
|
|
1398
1448
|
display: "flex",
|
|
1399
|
-
gap:
|
|
1449
|
+
gap: "0.25rem",
|
|
1400
1450
|
alignItems: "center"
|
|
1401
1451
|
},
|
|
1402
1452
|
indicator: {
|
|
1403
|
-
width:
|
|
1404
|
-
height:
|
|
1453
|
+
width: "1rem",
|
|
1454
|
+
height: "1rem",
|
|
1405
1455
|
borderRadius: "50%",
|
|
1406
1456
|
flexShrink: 0
|
|
1457
|
+
},
|
|
1458
|
+
vmBtn: {
|
|
1459
|
+
flexShrink: 0,
|
|
1460
|
+
alignSelf: "stretch",
|
|
1461
|
+
display: "flex",
|
|
1462
|
+
alignItems: "center",
|
|
1463
|
+
background: colors.itemBg,
|
|
1464
|
+
color: colors.text,
|
|
1465
|
+
border: "none",
|
|
1466
|
+
borderRadius: "0.4rem",
|
|
1467
|
+
padding: "0 0.6rem",
|
|
1468
|
+
margin: "0.3rem 0.3rem 0.3rem 0",
|
|
1469
|
+
fontSize: "0.85em",
|
|
1470
|
+
fontWeight: 700,
|
|
1471
|
+
cursor: "pointer",
|
|
1472
|
+
transition: "background 0.15s"
|
|
1473
|
+
},
|
|
1474
|
+
vmBtnActive: {
|
|
1475
|
+
background: colors.vmActiveBg,
|
|
1476
|
+
color: colors.text
|
|
1407
1477
|
}
|
|
1408
1478
|
};
|
|
1479
|
+
var SCROLLBAR_CSS = `
|
|
1480
|
+
.cris-co-matrix-scroll::-webkit-scrollbar { display: none; }
|
|
1481
|
+
`;
|
|
1482
|
+
var scrollbarStyleInjected = false;
|
|
1483
|
+
function injectScrollbarStyle() {
|
|
1484
|
+
if (scrollbarStyleInjected) return;
|
|
1485
|
+
scrollbarStyleInjected = true;
|
|
1486
|
+
const style = document.createElement("style");
|
|
1487
|
+
style.textContent = SCROLLBAR_CSS;
|
|
1488
|
+
document.head.appendChild(style);
|
|
1489
|
+
}
|
|
1409
1490
|
function DefaultIoIndicator({ on }) {
|
|
1410
1491
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1411
1492
|
"div",
|
|
1412
1493
|
{
|
|
1413
1494
|
style: {
|
|
1414
1495
|
...defaults.indicator,
|
|
1415
|
-
backgroundColor: on ?
|
|
1496
|
+
backgroundColor: on ? colors.ioOn : colors.ioOff
|
|
1416
1497
|
},
|
|
1417
1498
|
title: on ? "Online" : "Offline"
|
|
1418
1499
|
}
|
|
@@ -1424,7 +1505,7 @@ function DefaultSignalIndicator({ on }) {
|
|
|
1424
1505
|
{
|
|
1425
1506
|
style: {
|
|
1426
1507
|
...defaults.indicator,
|
|
1427
|
-
backgroundColor: on ?
|
|
1508
|
+
backgroundColor: on ? colors.sgOn : colors.sgOff
|
|
1428
1509
|
},
|
|
1429
1510
|
title: on ? "Signal detected" : "No signal"
|
|
1430
1511
|
}
|
|
@@ -1450,20 +1531,37 @@ function MatrixItemRow({
|
|
|
1450
1531
|
}) {
|
|
1451
1532
|
const isActive = active;
|
|
1452
1533
|
const isEnabled = item.sl.en;
|
|
1534
|
+
const useDefaults = !itemClassName;
|
|
1453
1535
|
const classes = [
|
|
1454
1536
|
"cris-co-matrix-item",
|
|
1455
1537
|
itemClassName,
|
|
1456
1538
|
isActive && (itemActiveClassName || "active"),
|
|
1457
1539
|
!isEnabled && (itemDisabledClassName || "disabled")
|
|
1458
1540
|
].filter(Boolean).join(" ");
|
|
1459
|
-
const computedStyle =
|
|
1541
|
+
const computedStyle = useDefaults ? {
|
|
1460
1542
|
...defaults.item,
|
|
1461
1543
|
...itemStyleProp,
|
|
1462
|
-
...isActive ? itemActiveStyle : void 0,
|
|
1544
|
+
...isActive ? { ...defaults.itemActive, ...itemActiveStyle } : void 0,
|
|
1463
1545
|
opacity: isEnabled ? 1 : 0.4
|
|
1464
|
-
};
|
|
1546
|
+
} : { ...itemStyleProp };
|
|
1465
1547
|
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: classes, style: computedStyle, children: [
|
|
1466
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1548
|
+
useDefaults ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: defaults.itemBtn, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1549
|
+
CrisButton,
|
|
1550
|
+
{
|
|
1551
|
+
selected: isActive,
|
|
1552
|
+
enabled: isEnabled,
|
|
1553
|
+
onPress: onSelect,
|
|
1554
|
+
showLocalFeedback: false,
|
|
1555
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: defaults.itemBtnInner, children: [
|
|
1556
|
+
showChannels && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "cris-co-matrix-ch", style: defaults.channelNum, children: item.id }),
|
|
1557
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: defaults.itemLabel, children: item.lb || `${type === "input" ? "Input" : "Output"} ${item.id}` }),
|
|
1558
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: defaults.indicators, children: [
|
|
1559
|
+
item.io.vs && (renderIoIndicator ? renderIoIndicator(item.io.on) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DefaultIoIndicator, { on: item.io.on })),
|
|
1560
|
+
item.sg.vs && (renderSignalIndicator ? renderSignalIndicator(item.sg.on) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DefaultSignalIndicator, { on: item.sg.on }))
|
|
1561
|
+
] })
|
|
1562
|
+
] })
|
|
1563
|
+
}
|
|
1564
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1467
1565
|
CrisButton,
|
|
1468
1566
|
{
|
|
1469
1567
|
selected: isActive,
|
|
@@ -1471,9 +1569,9 @@ function MatrixItemRow({
|
|
|
1471
1569
|
onPress: onSelect,
|
|
1472
1570
|
className: `cris-co-matrix-item-btn ${itemActiveClassName ?? ""}`,
|
|
1473
1571
|
classActive: itemActiveClassName,
|
|
1474
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap:
|
|
1572
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "0.4rem", width: "100%" }, children: [
|
|
1475
1573
|
showChannels && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "cris-co-matrix-ch", style: { flexShrink: 0, opacity: 0.6 }, children: item.id }),
|
|
1476
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style:
|
|
1574
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { style: { flex: 1, whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, children: item.lb || `${type === "input" ? "Input" : "Output"} ${item.id}` }),
|
|
1477
1575
|
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: defaults.indicators, children: [
|
|
1478
1576
|
item.io.vs && (renderIoIndicator ? renderIoIndicator(item.io.on) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DefaultIoIndicator, { on: item.io.on })),
|
|
1479
1577
|
item.sg.vs && (renderSignalIndicator ? renderSignalIndicator(item.sg.on) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DefaultSignalIndicator, { on: item.sg.on }))
|
|
@@ -1481,7 +1579,21 @@ function MatrixItemRow({
|
|
|
1481
1579
|
] })
|
|
1482
1580
|
}
|
|
1483
1581
|
),
|
|
1484
|
-
item.vm.vs && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1582
|
+
item.vm.vs && (useDefaults && !vmButtonClassName ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: {
|
|
1583
|
+
...defaults.vmBtn,
|
|
1584
|
+
...item.vm.on ? defaults.vmBtnActive : void 0,
|
|
1585
|
+
opacity: item.vm.en ? 1 : 0.4,
|
|
1586
|
+
pointerEvents: item.vm.en ? "auto" : "none"
|
|
1587
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1588
|
+
CrisButton,
|
|
1589
|
+
{
|
|
1590
|
+
selected: item.vm.on,
|
|
1591
|
+
enabled: item.vm.en,
|
|
1592
|
+
text: vmText,
|
|
1593
|
+
onPress: onToggleVideoMute,
|
|
1594
|
+
showLocalFeedback: false
|
|
1595
|
+
}
|
|
1596
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1485
1597
|
CrisButton,
|
|
1486
1598
|
{
|
|
1487
1599
|
selected: item.vm.on,
|
|
@@ -1491,7 +1603,7 @@ function MatrixItemRow({
|
|
|
1491
1603
|
className: vmButtonClassName,
|
|
1492
1604
|
classActive: vmButtonActiveClassName
|
|
1493
1605
|
}
|
|
1494
|
-
)
|
|
1606
|
+
))
|
|
1495
1607
|
] });
|
|
1496
1608
|
}
|
|
1497
1609
|
function CrisCoMatrixListsTie({
|
|
@@ -1518,6 +1630,7 @@ function CrisCoMatrixListsTie({
|
|
|
1518
1630
|
}) {
|
|
1519
1631
|
const matrix = (0, import_cris_webui_ch5_core8.useCustomObject)(oid);
|
|
1520
1632
|
const send = (0, import_cris_webui_ch5_core8.useCustomObjectSend)();
|
|
1633
|
+
injectScrollbarStyle();
|
|
1521
1634
|
if (!matrix) return null;
|
|
1522
1635
|
const { si, ip: inputs, op: outputs } = matrix;
|
|
1523
1636
|
const handleSelectInput = (id) => {
|
|
@@ -1549,7 +1662,7 @@ function CrisCoMatrixListsTie({
|
|
|
1549
1662
|
children: inputTitle
|
|
1550
1663
|
}
|
|
1551
1664
|
),
|
|
1552
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: defaults.scroll, children: inputs?.map((item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1665
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "cris-co-matrix-scroll", style: defaults.scroll, children: inputs?.map((item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1553
1666
|
MatrixItemRow,
|
|
1554
1667
|
{
|
|
1555
1668
|
item,
|
|
@@ -1588,7 +1701,7 @@ function CrisCoMatrixListsTie({
|
|
|
1588
1701
|
children: outputTitle
|
|
1589
1702
|
}
|
|
1590
1703
|
),
|
|
1591
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { style: defaults.scroll, children: outputs?.map((item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1704
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "cris-co-matrix-scroll", style: defaults.scroll, children: outputs?.map((item) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1592
1705
|
MatrixItemRow,
|
|
1593
1706
|
{
|
|
1594
1707
|
item,
|