@agile-team/mach-table-vue 0.5.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/LICENSE +110 -21
  2. package/README.md +72 -7
  3. package/dist/MachTable-BRFSPNPU.js +2 -0
  4. package/dist/MachTable-DH0offab.d.cts +34 -0
  5. package/dist/MachTable-DH0offab.d.ts +34 -0
  6. package/dist/MachTable-QMK4VFAQ.cjs +2 -0
  7. package/dist/MachTable-QMK4VFAQ.cjs.map +1 -0
  8. package/dist/MachTableToolbar-CDkTtitl.d.cts +97 -0
  9. package/dist/MachTableToolbar-CDkTtitl.d.ts +97 -0
  10. package/dist/async.cjs +1 -22
  11. package/dist/async.cjs.map +1 -1
  12. package/dist/async.d.cts +21 -7
  13. package/dist/async.d.ts +21 -7
  14. package/dist/async.js +1 -22
  15. package/dist/async.js.map +1 -1
  16. package/dist/chunk-2PKCB3CZ.js +2 -0
  17. package/dist/chunk-2PKCB3CZ.js.map +1 -0
  18. package/dist/chunk-4SM5YZDC.js +2 -0
  19. package/dist/chunk-4SM5YZDC.js.map +1 -0
  20. package/dist/chunk-6WNTYC5G.js +2 -0
  21. package/dist/chunk-6WNTYC5G.js.map +1 -0
  22. package/dist/chunk-C7C5I2H4.cjs +2 -0
  23. package/dist/chunk-C7C5I2H4.cjs.map +1 -0
  24. package/dist/chunk-H75IY5SP.js +2 -0
  25. package/dist/chunk-H75IY5SP.js.map +1 -0
  26. package/dist/chunk-L6HN564Y.cjs +2 -0
  27. package/dist/chunk-L6HN564Y.cjs.map +1 -0
  28. package/dist/chunk-OMEMLONJ.cjs +2 -0
  29. package/dist/chunk-OMEMLONJ.cjs.map +1 -0
  30. package/dist/chunk-YN3M2NPO.cjs +2 -0
  31. package/dist/chunk-YN3M2NPO.cjs.map +1 -0
  32. package/dist/editors.cjs +2 -0
  33. package/dist/editors.cjs.map +1 -0
  34. package/dist/editors.d.cts +34 -0
  35. package/dist/editors.d.ts +34 -0
  36. package/dist/editors.js +2 -0
  37. package/dist/editors.js.map +1 -0
  38. package/dist/globalRegistration-BhAR-B5k.d.cts +19 -0
  39. package/dist/globalRegistration-DTWLNxPI.d.ts +19 -0
  40. package/dist/index.cjs +1 -110
  41. package/dist/index.cjs.map +1 -1
  42. package/dist/index.d.cts +56 -12
  43. package/dist/index.d.ts +56 -12
  44. package/dist/index.js +1 -110
  45. package/dist/index.js.map +1 -1
  46. package/dist/mach-table.css +517 -3
  47. package/dist/ui.cjs +2 -0
  48. package/dist/ui.cjs.map +1 -0
  49. package/dist/ui.d.cts +10 -0
  50. package/dist/ui.d.ts +10 -0
  51. package/dist/ui.js +2 -0
  52. package/dist/ui.js.map +1 -0
  53. package/dist/workflows-BXccx4zn.d.cts +136 -0
  54. package/dist/workflows-CvAptGOH.d.ts +136 -0
  55. package/dist/workflows.cjs +2 -0
  56. package/dist/workflows.cjs.map +1 -0
  57. package/dist/workflows.d.cts +4 -0
  58. package/dist/workflows.d.ts +4 -0
  59. package/dist/workflows.js +2 -0
  60. package/dist/workflows.js.map +1 -0
  61. package/package.json +34 -4
  62. package/dist/RobotGrid-2KWWM4C4.js +0 -7
  63. package/dist/RobotGrid-LELHEO4W.cjs +0 -7
  64. package/dist/RobotGrid-LELHEO4W.cjs.map +0 -1
  65. package/dist/chunk-345ZEGIE.cjs +0 -21
  66. package/dist/chunk-345ZEGIE.cjs.map +0 -1
  67. package/dist/chunk-CHEQLQW4.js +0 -78
  68. package/dist/chunk-CHEQLQW4.js.map +0 -1
  69. package/dist/chunk-JJQDDIQU.js +0 -21
  70. package/dist/chunk-JJQDDIQU.js.map +0 -1
  71. package/dist/chunk-S3NR7DIG.cjs +0 -78
  72. package/dist/chunk-S3NR7DIG.cjs.map +0 -1
  73. package/dist/globalRegistration-CQ2dTNzy.d.cts +0 -25
  74. package/dist/globalRegistration-CQ2dTNzy.d.ts +0 -25
  75. /package/dist/{RobotGrid-2KWWM4C4.js.map → MachTable-BRFSPNPU.js.map} +0 -0
@@ -67,6 +67,113 @@
67
67
  font-variant-numeric: tabular-nums;
68
68
  }
69
69
 
70
+ .mach-root.mach-dom-layout--auto-height {
71
+ height: auto;
72
+ min-height: 0;
73
+ }
74
+
75
+ .mach-root.mach-dom-layout--auto-height .mach-body {
76
+ flex: none;
77
+ }
78
+
79
+ .mach-root.mach-dom-layout--auto-height .mach-body-viewport--scroll {
80
+ overflow-y: hidden;
81
+ }
82
+
83
+ .mach-toolbar {
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: space-between;
87
+ gap: 10px;
88
+ min-height: 44px;
89
+ padding: 6px 8px;
90
+ font: 13px/1.4 var(--mach-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
91
+ color: var(--mach-body-fg, #26303f);
92
+ background: var(--mach-body-bg, #fff);
93
+ border: 1px solid var(--mach-border-color, #e6eaf0);
94
+ border-bottom: 0;
95
+ border-radius: var(--mach-radius-lg, 8px) var(--mach-radius-lg, 8px) 0 0;
96
+ }
97
+
98
+ .mach-toolbar__main,
99
+ .mach-toolbar__aside {
100
+ display: flex;
101
+ align-items: center;
102
+ gap: 6px;
103
+ min-width: 0;
104
+ }
105
+
106
+ .mach-toolbar__search {
107
+ display: flex;
108
+ align-items: center;
109
+ gap: 6px;
110
+ width: min(240px, 32vw);
111
+ height: 32px;
112
+ padding: 0 9px;
113
+ color: #64748b;
114
+ background: var(--mach-header-bg, #fafbfd);
115
+ border: 1px solid var(--mach-border-color, #e6eaf0);
116
+ border-radius: 6px;
117
+ transition: border-color var(--mach-transition, .15s ease), box-shadow var(--mach-transition, .15s ease);
118
+ }
119
+
120
+ .mach-toolbar__search:focus-within {
121
+ border-color: var(--mach-primary, #2563eb);
122
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--mach-primary, #2563eb) 12%, transparent);
123
+ }
124
+
125
+ .mach-toolbar__search input {
126
+ min-width: 0;
127
+ width: 100%;
128
+ color: inherit;
129
+ background: transparent;
130
+ border: 0;
131
+ outline: 0;
132
+ }
133
+
134
+ .mach-toolbar__button,
135
+ .mach-toolbar__select,
136
+ .mach-toolbar__selection {
137
+ height: 32px;
138
+ padding: 0 10px;
139
+ color: inherit;
140
+ background: var(--mach-body-bg, #fff);
141
+ border: 1px solid var(--mach-border-color, #e6eaf0);
142
+ border-radius: 6px;
143
+ cursor: pointer;
144
+ transition: color var(--mach-transition, .15s ease), border-color var(--mach-transition, .15s ease), background var(--mach-transition, .15s ease);
145
+ }
146
+
147
+ .mach-toolbar__button {
148
+ min-width: 32px;
149
+ padding: 0 8px;
150
+ font-size: 16px;
151
+ }
152
+
153
+ .mach-toolbar__button:hover:not(:disabled),
154
+ .mach-toolbar__select:hover {
155
+ color: var(--mach-primary, #2563eb);
156
+ border-color: var(--mach-primary, #2563eb);
157
+ }
158
+
159
+ .mach-toolbar__button:disabled {
160
+ cursor: not-allowed;
161
+ opacity: .45;
162
+ }
163
+
164
+ .mach-toolbar__selection {
165
+ color: var(--mach-primary, #2563eb);
166
+ background: var(--mach-primary-weak, #dbeafe);
167
+ border-color: transparent;
168
+ font-size: 12px;
169
+ }
170
+
171
+ @media (max-width: 640px) {
172
+ .mach-toolbar { align-items: stretch; flex-direction: column; }
173
+ .mach-toolbar__main, .mach-toolbar__aside { flex-wrap: wrap; }
174
+ .mach-toolbar__search { flex: 1; width: auto; }
175
+ }
176
+
70
177
  .mach-size--compact {
71
178
  --mach-font-size: 12px;
72
179
  --mach-cell-padding: 6px;
@@ -531,6 +638,23 @@ input.mach-select-all {
531
638
  transform: rotate(90deg);
532
639
  }
533
640
 
641
+ .mach-detail-toggle--loading {
642
+ animation: mach-tree-spin 0.8s linear infinite;
643
+ color: var(--mach-primary);
644
+ }
645
+
646
+ .mach-detail-toggle--error {
647
+ color: #dc2626;
648
+ }
649
+
650
+ @keyframes mach-tree-spin {
651
+ to { transform: rotate(360deg); }
652
+ }
653
+
654
+ @media (prefers-reduced-motion: reduce) {
655
+ .mach-detail-toggle--loading { animation: none; }
656
+ }
657
+
534
658
  .mach-cell--group {
535
659
  cursor: pointer;
536
660
  background: var(--mach-header-bg);
@@ -637,6 +761,11 @@ input.mach-select-all {
637
761
  box-shadow: 0 0 0 1px rgba(239, 68, 68, 0.35);
638
762
  }
639
763
 
764
+ .mach-editor-validating {
765
+ cursor: progress;
766
+ opacity: 0.72;
767
+ }
768
+
640
769
  .mach-footer {
641
770
  display: flex;
642
771
  flex-shrink: 0;
@@ -1025,11 +1154,33 @@ input.mach-select-all {
1025
1154
  }
1026
1155
 
1027
1156
  .mach-column-panel {
1028
- min-width: 200px;
1157
+ min-width: 220px;
1029
1158
  max-height: 70vh;
1030
1159
  overflow: auto;
1031
1160
  }
1032
1161
 
1162
+ .mach-column-panel[role="dialog"] {
1163
+ width: min(440px, calc(100vw - 16px));
1164
+ }
1165
+
1166
+ .mach-column-workbench-search {
1167
+ box-sizing: border-box;
1168
+ width: 100%;
1169
+ height: 30px;
1170
+ padding: 0 9px;
1171
+ border: 1px solid var(--mach-border-color);
1172
+ border-radius: var(--mach-radius);
1173
+ background: var(--mach-body-bg);
1174
+ color: var(--mach-body-fg);
1175
+ font: inherit;
1176
+ outline: none;
1177
+ }
1178
+
1179
+ .mach-column-workbench-search:focus {
1180
+ border-color: var(--mach-primary);
1181
+ box-shadow: 0 0 0 2px var(--mach-primary-weak);
1182
+ }
1183
+
1033
1184
  .mach-column-panel-title {
1034
1185
  font-weight: 600;
1035
1186
  color: var(--mach-header-fg);
@@ -1076,7 +1227,7 @@ input.mach-select-all {
1076
1227
  }
1077
1228
 
1078
1229
  .mach-column-panel-list {
1079
- max-height: 180px;
1230
+ max-height: 280px;
1080
1231
  overflow: auto;
1081
1232
  display: flex;
1082
1233
  flex-direction: column;
@@ -1086,6 +1237,54 @@ input.mach-select-all {
1086
1237
  padding: 4px;
1087
1238
  }
1088
1239
 
1240
+ .mach-column-workbench-item {
1241
+ display: grid;
1242
+ grid-template-columns: minmax(120px, 1fr) 108px 26px 26px;
1243
+ align-items: center;
1244
+ gap: 4px;
1245
+ min-height: 32px;
1246
+ padding: 2px 3px;
1247
+ border-radius: var(--mach-radius);
1248
+ }
1249
+
1250
+ .mach-column-workbench-item:hover {
1251
+ background: var(--mach-row-hover-bg);
1252
+ }
1253
+
1254
+ .mach-column-workbench-label {
1255
+ display: flex;
1256
+ min-width: 0;
1257
+ align-items: center;
1258
+ gap: 7px;
1259
+ cursor: pointer;
1260
+ }
1261
+
1262
+ .mach-column-workbench-name {
1263
+ overflow: hidden;
1264
+ text-overflow: ellipsis;
1265
+ white-space: nowrap;
1266
+ }
1267
+
1268
+ .mach-column-workbench-pin,
1269
+ .mach-column-workbench-move {
1270
+ height: 26px;
1271
+ border: 1px solid var(--mach-border-color);
1272
+ border-radius: var(--mach-radius);
1273
+ background: var(--mach-body-bg);
1274
+ color: inherit;
1275
+ font: inherit;
1276
+ }
1277
+
1278
+ .mach-column-workbench-move {
1279
+ padding: 0;
1280
+ cursor: pointer;
1281
+ }
1282
+
1283
+ .mach-column-workbench-move:disabled {
1284
+ cursor: not-allowed;
1285
+ opacity: 0.35;
1286
+ }
1287
+
1089
1288
  .mach-tag {
1090
1289
  display: inline-flex;
1091
1290
  align-items: center;
@@ -1177,6 +1376,18 @@ input.mach-select-all {
1177
1376
  gap: 2px;
1178
1377
  }
1179
1378
 
1379
+ .mach-sr-only {
1380
+ position: absolute !important;
1381
+ width: 1px !important;
1382
+ height: 1px !important;
1383
+ padding: 0 !important;
1384
+ margin: -1px !important;
1385
+ overflow: hidden !important;
1386
+ clip: rect(0, 0, 0, 0) !important;
1387
+ white-space: nowrap !important;
1388
+ border: 0 !important;
1389
+ }
1390
+
1180
1391
  .mach-action-btn {
1181
1392
  display: inline-flex;
1182
1393
  align-items: center;
@@ -1203,6 +1414,50 @@ input.mach-select-all {
1203
1414
  color: var(--mach-danger);
1204
1415
  }
1205
1416
 
1417
+ .mach-action-btn--primary {
1418
+ color: var(--mach-primary);
1419
+ }
1420
+
1421
+ .mach-action-btn--warning {
1422
+ color: var(--mach-warning);
1423
+ }
1424
+
1425
+ .mach-action-btn--success,
1426
+ .mach-edit-control--confirm {
1427
+ color: var(--mach-success);
1428
+ }
1429
+
1430
+ .mach-action-btn--danger {
1431
+ color: var(--mach-danger);
1432
+ }
1433
+
1434
+ .mach-action-btn:focus-visible,
1435
+ .mach-edit-control:focus-visible,
1436
+ .mach-cell-edit-trigger:focus-visible,
1437
+ .mach-action-drawer__close:focus-visible {
1438
+ outline: 2px solid color-mix(in srgb, var(--mach-primary) 65%, transparent);
1439
+ outline-offset: 1px;
1440
+ }
1441
+
1442
+ .mach-action-btn:disabled {
1443
+ cursor: not-allowed;
1444
+ opacity: 0.4;
1445
+ }
1446
+
1447
+ .mach-action-btn--loading svg {
1448
+ animation: mach-spin 0.8s linear infinite;
1449
+ }
1450
+
1451
+ .mach-dictionary-value--loading {
1452
+ color: var(--mach-header-fg);
1453
+ opacity: 0.72;
1454
+ }
1455
+
1456
+ .mach-dictionary-value--error {
1457
+ text-decoration: underline dotted;
1458
+ text-underline-offset: 3px;
1459
+ }
1460
+
1206
1461
  .mach-action-btn--icon {
1207
1462
  padding: 0;
1208
1463
  width: 24px;
@@ -1210,7 +1465,262 @@ input.mach-select-all {
1210
1465
 
1211
1466
  .mach-context-menu-item--danger {
1212
1467
  color: var(--mach-danger);
1213
- }
1468
+ }
1469
+
1470
+ .mach-context-menu-item,
1471
+ .mach-action-drawer__item {
1472
+ display: flex;
1473
+ align-items: center;
1474
+ gap: 9px;
1475
+ }
1476
+
1477
+ .mach-context-menu-item--primary,
1478
+ .mach-action-drawer__item--primary {
1479
+ color: var(--mach-primary);
1480
+ }
1481
+
1482
+ .mach-context-menu-item--warning,
1483
+ .mach-action-drawer__item--warning {
1484
+ color: var(--mach-warning);
1485
+ }
1486
+
1487
+ .mach-context-menu-item--success,
1488
+ .mach-action-drawer__item--success {
1489
+ color: var(--mach-success);
1490
+ }
1491
+
1492
+ .mach-context-menu-item--danger,
1493
+ .mach-action-drawer__item--danger {
1494
+ color: var(--mach-danger);
1495
+ }
1496
+
1497
+ .mach-action-drawer-backdrop {
1498
+ position: fixed;
1499
+ inset: 0;
1500
+ z-index: calc(var(--mach-z-menu) + 2);
1501
+ background: rgba(15, 23, 42, 0.2);
1502
+ backdrop-filter: blur(1px);
1503
+ }
1504
+
1505
+ .mach-action-drawer {
1506
+ position: absolute;
1507
+ top: 0;
1508
+ right: 0;
1509
+ display: flex;
1510
+ flex-direction: column;
1511
+ width: min(340px, calc(100vw - 24px));
1512
+ height: 100%;
1513
+ background: var(--mach-body-bg);
1514
+ color: var(--mach-body-fg);
1515
+ border-left: 1px solid var(--mach-border-color);
1516
+ box-shadow: -16px 0 40px rgba(15, 23, 42, 0.14);
1517
+ font-family: var(--mach-font-family);
1518
+ animation: mach-drawer-in 0.18s ease-out;
1519
+ }
1520
+
1521
+ .mach-action-drawer__header {
1522
+ display: flex;
1523
+ align-items: center;
1524
+ justify-content: space-between;
1525
+ min-height: 56px;
1526
+ padding: 0 16px 0 20px;
1527
+ border-bottom: 1px solid var(--mach-border-color);
1528
+ }
1529
+
1530
+ .mach-action-drawer__close {
1531
+ display: inline-flex;
1532
+ align-items: center;
1533
+ justify-content: center;
1534
+ width: 30px;
1535
+ height: 30px;
1536
+ padding: 0;
1537
+ border: 0;
1538
+ border-radius: var(--mach-radius);
1539
+ background: transparent;
1540
+ color: var(--mach-header-fg);
1541
+ cursor: pointer;
1542
+ }
1543
+
1544
+ .mach-action-drawer__close:hover {
1545
+ color: var(--mach-primary);
1546
+ background: var(--mach-row-hover-bg);
1547
+ }
1548
+
1549
+ .mach-action-drawer__body {
1550
+ display: flex;
1551
+ flex-direction: column;
1552
+ gap: 4px;
1553
+ padding: 12px;
1554
+ overflow: auto;
1555
+ }
1556
+
1557
+ .mach-action-drawer__item {
1558
+ width: 100%;
1559
+ min-height: 40px;
1560
+ padding: 0 12px;
1561
+ border: 0;
1562
+ border-radius: var(--mach-radius);
1563
+ background: transparent;
1564
+ font: inherit;
1565
+ text-align: left;
1566
+ cursor: pointer;
1567
+ }
1568
+
1569
+ .mach-action-drawer__item:hover:not(:disabled) {
1570
+ background: var(--mach-row-hover-bg);
1571
+ }
1572
+
1573
+ .mach-action-drawer__item:disabled {
1574
+ opacity: 0.4;
1575
+ cursor: not-allowed;
1576
+ }
1577
+
1578
+ @keyframes mach-drawer-in {
1579
+ from { transform: translateX(18px); opacity: 0; }
1580
+ to { transform: translateX(0); opacity: 1; }
1581
+ }
1582
+
1583
+ @media (max-width: 640px) {
1584
+ .mach-action-drawer {
1585
+ top: auto;
1586
+ bottom: 0;
1587
+ width: 100%;
1588
+ height: auto;
1589
+ max-height: min(70vh, 520px);
1590
+ border-top: 1px solid var(--mach-border-color);
1591
+ border-left: 0;
1592
+ border-radius: var(--mach-radius-lg) var(--mach-radius-lg) 0 0;
1593
+ animation-name: mach-drawer-up;
1594
+ }
1595
+ }
1596
+
1597
+ @keyframes mach-drawer-up {
1598
+ from { transform: translateY(18px); opacity: 0; }
1599
+ to { transform: translateY(0); opacity: 1; }
1600
+ }
1601
+
1602
+ .mach-cell:has(.mach-cell-edit-trigger) {
1603
+ padding-right: 29px;
1604
+ }
1605
+
1606
+ .mach-cell-edit-trigger {
1607
+ position: absolute;
1608
+ right: 5px;
1609
+ top: 50%;
1610
+ display: inline-flex;
1611
+ align-items: center;
1612
+ justify-content: center;
1613
+ width: 20px;
1614
+ height: 20px;
1615
+ padding: 0;
1616
+ transform: translateY(-50%);
1617
+ border: 0;
1618
+ border-radius: var(--mach-radius-sm);
1619
+ background: transparent;
1620
+ color: var(--mach-header-fg);
1621
+ cursor: pointer;
1622
+ opacity: 0;
1623
+ transition: opacity var(--mach-transition), color var(--mach-transition), background-color var(--mach-transition);
1624
+ }
1625
+
1626
+ .mach-cell-edit-trigger svg {
1627
+ width: 13px;
1628
+ height: 13px;
1629
+ }
1630
+
1631
+ .mach-cell:hover .mach-cell-edit-trigger--hover,
1632
+ .mach-cell:focus-within .mach-cell-edit-trigger--hover,
1633
+ .mach-cell-edit-trigger--always {
1634
+ opacity: 0.72;
1635
+ }
1636
+
1637
+ .mach-cell-edit-trigger:hover {
1638
+ opacity: 1;
1639
+ color: var(--mach-primary);
1640
+ background: color-mix(in srgb, var(--mach-primary) 9%, transparent);
1641
+ }
1642
+
1643
+ .mach-cell--editing {
1644
+ overflow: visible;
1645
+ z-index: 4;
1646
+ }
1647
+
1648
+ .mach-cell-editor-shell,
1649
+ .mach-row-editor-shell {
1650
+ display: flex;
1651
+ align-items: center;
1652
+ width: 100%;
1653
+ min-width: 0;
1654
+ gap: 5px;
1655
+ }
1656
+
1657
+ .mach-cell-editor-shell > .mach-editor-input,
1658
+ .mach-cell-editor-shell > .mach-editor-select,
1659
+ .mach-cell-editor-shell > :not(.mach-cell-editor-controls),
1660
+ .mach-row-editor-shell > * {
1661
+ flex: 1 1 auto;
1662
+ min-width: 0;
1663
+ }
1664
+
1665
+ .mach-cell-editor-controls {
1666
+ display: inline-flex;
1667
+ flex: 0 0 auto;
1668
+ align-items: center;
1669
+ padding: 2px;
1670
+ border: 1px solid var(--mach-border-color);
1671
+ border-radius: var(--mach-radius);
1672
+ background: var(--mach-body-bg);
1673
+ box-shadow: var(--mach-shadow-sm);
1674
+ }
1675
+
1676
+ .mach-edit-control {
1677
+ display: inline-flex;
1678
+ align-items: center;
1679
+ justify-content: center;
1680
+ width: 23px;
1681
+ height: 23px;
1682
+ padding: 0;
1683
+ border: 0;
1684
+ border-radius: var(--mach-radius-sm);
1685
+ background: transparent;
1686
+ color: var(--mach-header-fg);
1687
+ cursor: pointer;
1688
+ }
1689
+
1690
+ .mach-edit-control svg {
1691
+ width: 14px;
1692
+ height: 14px;
1693
+ }
1694
+
1695
+ .mach-edit-control--confirm {
1696
+ color: var(--mach-primary);
1697
+ }
1698
+
1699
+ .mach-edit-control:hover {
1700
+ background: var(--mach-row-hover-bg);
1701
+ }
1702
+
1703
+ .mach-edit-control:disabled {
1704
+ opacity: 0.35;
1705
+ cursor: wait;
1706
+ }
1707
+
1708
+ .mach-row--editing,
1709
+ .mach-row--editing .mach-cell {
1710
+ background: color-mix(in srgb, var(--mach-primary) 3%, var(--mach-body-bg));
1711
+ }
1712
+
1713
+ .mach-cell--row-editing .mach-editor-input,
1714
+ .mach-cell--row-editing .mach-editor-select {
1715
+ border-color: color-mix(in srgb, var(--mach-primary) 45%, var(--mach-border-color));
1716
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
1717
+ }
1718
+
1719
+ .mach-cell--row-editing .mach-editor-input:focus,
1720
+ .mach-cell--row-editing .mach-editor-select:focus {
1721
+ border-color: var(--mach-primary);
1722
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--mach-primary) 12%, transparent);
1723
+ }
1214
1724
 
1215
1725
  .mach-tooltip {
1216
1726
  position: fixed;
@@ -1381,4 +1891,8 @@ input.mach-select-all {
1381
1891
  animation-iteration-count: 1 !important;
1382
1892
  transition-duration: 0.01ms !important;
1383
1893
  }
1894
+
1895
+ .mach-action-drawer {
1896
+ animation: none !important;
1897
+ }
1384
1898
  }
package/dist/ui.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _vue = require('vue');var b={search:!0,refresh:!0,columns:!0,density:!0,export:!0,undoRedo:!1,fullscreen:!1},d= exports.MachTableToolbar =_vue.defineComponent.call(void 0, {name:"MachTableToolbar",props:{api:{type:Object,default:null},commands:{type:Object,default:null},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1},selectedCount:{type:Number,default:0},searchPlaceholder:{type:String,default:"\u641C\u7D22\u5F53\u524D\u7ED3\u679C"},exportFilename:{type:String,default:"mach-table.csv"},features:{type:Object,default:()=>({})}},emits:["update:modelValue","refresh","clearSelection"],setup(e,{emit:r,slots:s}){let c=a=>_nullishCoalesce(e.features[a], () => (b[a])),t=(a,...o)=>{let n=e.commands?Reflect.get(e.commands,a):void 0;return typeof n=="function"&&e.commands?Reflect.apply(n,e.commands,o):void 0},i=(a,o,n,h=!1)=>_vue.h.call(void 0, "button",{type:"button",class:"mach-toolbar__button",title:a,"aria-label":a,disabled:h,onClick:n},o),u=()=>{let a=[..._nullishCoalesce(_optionalChain([s, 'access', _ => _.start, 'optionalCall', _2 => _2()]), () => ([]))];return c("search")&&a.push(_vue.h.call(void 0, "label",{class:"mach-toolbar__search"},[_vue.h.call(void 0, "span",{class:"mach-sr-only"},e.searchPlaceholder),_vue.h.call(void 0, "span",{"aria-hidden":"true"},"\u2315"),_vue.h.call(void 0, "input",{value:e.modelValue,type:"search",placeholder:e.searchPlaceholder,onInput:o=>{let n=o.target.value;r("update:modelValue",n),e.commands?t("search",n||null):_optionalChain([e, 'access', _3 => _3.api, 'optionalAccess', _4 => _4.setQuickFilter, 'call', _5 => _5(n||null)])}})])),c("refresh")&&a.push(i("\u5237\u65B0",e.loading?"\u2026":"\u21BB",()=>{r("refresh"),e.commands?t("refresh"):_optionalChain([e, 'access', _6 => _6.api, 'optionalAccess', _7 => _7.isInfinite, 'call', _8 => _8()])?e.api.reload():_optionalChain([e, 'access', _9 => _9.api, 'optionalAccess', _10 => _10.refreshCells, 'call', _11 => _11()])},e.loading)),c("columns")&&a.push(i("\u5217\u8BBE\u7F6E","\u2637",o=>{let n=o.currentTarget;n instanceof HTMLElement&&(e.commands?t("openColumns",n):_optionalChain([e, 'access', _12 => _12.api, 'optionalAccess', _13 => _13.openColumnWorkbench, 'call', _14 => _14(n)]))})),c("density")&&a.push(_vue.h.call(void 0, "select",{class:"mach-toolbar__select",value:_nullishCoalesce(_optionalChain([e, 'access', _15 => _15.api, 'optionalAccess', _16 => _16.getGridOption, 'call', _17 => _17("size")]), () => ("normal")),"aria-label":"\u8868\u683C\u5BC6\u5EA6",onChange:o=>{let n=o.target.value;e.commands?t("setDensity",n):_optionalChain([e, 'access', _18 => _18.api, 'optionalAccess', _19 => _19.setGridOption, 'call', _20 => _20("size",n)])}},[_vue.h.call(void 0, "option",{value:"compact"},"\u7D27\u51D1"),_vue.h.call(void 0, "option",{value:"normal"},"\u6807\u51C6"),_vue.h.call(void 0, "option",{value:"large"},"\u5BBD\u677E")])),a.push(..._nullishCoalesce(_optionalChain([s, 'access', _21 => _21.default, 'optionalCall', _22 => _22()]), () => ([]))),_vue.h.call(void 0, "div",{class:"mach-toolbar__main"},a)},m=()=>{let a=[];return e.selectedCount>0&&a.push(_vue.h.call(void 0, "button",{type:"button",class:"mach-toolbar__selection",onClick:()=>r("clearSelection")},`\u5DF2\u9009 ${e.selectedCount} \u9879 \xD7`)),c("undoRedo")&&(a.push(i("\u64A4\u9500","\u21B6",()=>{e.commands?t("undo"):_optionalChain([e, 'access', _23 => _23.api, 'optionalAccess', _24 => _24.undo, 'call', _25 => _25()])},e.commands?!e.commands.canUndo():!_optionalChain([e, 'access', _26 => _26.api, 'optionalAccess', _27 => _27.canUndo, 'call', _28 => _28()]))),a.push(i("\u91CD\u505A","\u21B7",()=>{e.commands?t("redo"):_optionalChain([e, 'access', _29 => _29.api, 'optionalAccess', _30 => _30.redo, 'call', _31 => _31()])},e.commands?!e.commands.canRedo():!_optionalChain([e, 'access', _32 => _32.api, 'optionalAccess', _33 => _33.canRedo, 'call', _34 => _34()])))),c("export")&&a.push(i("\u5BFC\u51FA CSV","\u21E9",()=>{e.commands&&t("exportCsv",e.exportFilename)},!e.commands)),c("fullscreen")&&a.push(i("\u5168\u5C4F","\u26F6",()=>{t("toggleFullscreen")},!e.commands)),a.push(..._nullishCoalesce(_optionalChain([s, 'access', _35 => _35.end, 'optionalCall', _36 => _36()]), () => ([]))),_vue.h.call(void 0, "div",{class:"mach-toolbar__aside"},a)};return()=>_vue.h.call(void 0, "div",{class:"mach-toolbar",role:"toolbar","aria-label":"\u8868\u683C\u5DE5\u5177\u680F"},[u(),m()])}});var T={install(e){e.component("MachTableToolbar")||e.component("MachTableToolbar",d)}};var M=T;exports.MachTableToolbar = d; exports.MachTableUiPlugin = T; exports.default = M;
2
+ //# sourceMappingURL=ui.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["d:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\ui.cjs"],"names":[],"mappings":"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","file":"D:\\office-project\\wl\\MachTable\\packages\\vue\\dist\\ui.cjs","sourcesContent":[null]}
package/dist/ui.d.cts ADDED
@@ -0,0 +1,10 @@
1
+ import { App } from 'vue';
2
+ export { M as MachTableToolbar, a as MachTableToolbarFeatures } from './MachTableToolbar-CDkTtitl.cjs';
3
+ import '@agile-team/mach-table';
4
+
5
+ /** Optional UI layer. Install once only when the standard toolbar is desired. */
6
+ declare const MachTableUiPlugin: {
7
+ install(app: App): void;
8
+ };
9
+
10
+ export { MachTableUiPlugin, MachTableUiPlugin as default };
package/dist/ui.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { App } from 'vue';
2
+ export { M as MachTableToolbar, a as MachTableToolbarFeatures } from './MachTableToolbar-CDkTtitl.js';
3
+ import '@agile-team/mach-table';
4
+
5
+ /** Optional UI layer. Install once only when the standard toolbar is desired. */
6
+ declare const MachTableUiPlugin: {
7
+ install(app: App): void;
8
+ };
9
+
10
+ export { MachTableUiPlugin, MachTableUiPlugin as default };
package/dist/ui.js ADDED
@@ -0,0 +1,2 @@
1
+ import{defineComponent as f,h as l}from"vue";var b={search:!0,refresh:!0,columns:!0,density:!0,export:!0,undoRedo:!1,fullscreen:!1},d=f({name:"MachTableToolbar",props:{api:{type:Object,default:null},commands:{type:Object,default:null},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1},selectedCount:{type:Number,default:0},searchPlaceholder:{type:String,default:"\u641C\u7D22\u5F53\u524D\u7ED3\u679C"},exportFilename:{type:String,default:"mach-table.csv"},features:{type:Object,default:()=>({})}},emits:["update:modelValue","refresh","clearSelection"],setup(e,{emit:r,slots:s}){let c=a=>e.features[a]??b[a],t=(a,...o)=>{let n=e.commands?Reflect.get(e.commands,a):void 0;return typeof n=="function"&&e.commands?Reflect.apply(n,e.commands,o):void 0},i=(a,o,n,h=!1)=>l("button",{type:"button",class:"mach-toolbar__button",title:a,"aria-label":a,disabled:h,onClick:n},o),u=()=>{let a=[...s.start?.()??[]];return c("search")&&a.push(l("label",{class:"mach-toolbar__search"},[l("span",{class:"mach-sr-only"},e.searchPlaceholder),l("span",{"aria-hidden":"true"},"\u2315"),l("input",{value:e.modelValue,type:"search",placeholder:e.searchPlaceholder,onInput:o=>{let n=o.target.value;r("update:modelValue",n),e.commands?t("search",n||null):e.api?.setQuickFilter(n||null)}})])),c("refresh")&&a.push(i("\u5237\u65B0",e.loading?"\u2026":"\u21BB",()=>{r("refresh"),e.commands?t("refresh"):e.api?.isInfinite()?e.api.reload():e.api?.refreshCells()},e.loading)),c("columns")&&a.push(i("\u5217\u8BBE\u7F6E","\u2637",o=>{let n=o.currentTarget;n instanceof HTMLElement&&(e.commands?t("openColumns",n):e.api?.openColumnWorkbench(n))})),c("density")&&a.push(l("select",{class:"mach-toolbar__select",value:e.api?.getGridOption("size")??"normal","aria-label":"\u8868\u683C\u5BC6\u5EA6",onChange:o=>{let n=o.target.value;e.commands?t("setDensity",n):e.api?.setGridOption("size",n)}},[l("option",{value:"compact"},"\u7D27\u51D1"),l("option",{value:"normal"},"\u6807\u51C6"),l("option",{value:"large"},"\u5BBD\u677E")])),a.push(...s.default?.()??[]),l("div",{class:"mach-toolbar__main"},a)},m=()=>{let a=[];return e.selectedCount>0&&a.push(l("button",{type:"button",class:"mach-toolbar__selection",onClick:()=>r("clearSelection")},`\u5DF2\u9009 ${e.selectedCount} \u9879 \xD7`)),c("undoRedo")&&(a.push(i("\u64A4\u9500","\u21B6",()=>{e.commands?t("undo"):e.api?.undo()},e.commands?!e.commands.canUndo():!e.api?.canUndo())),a.push(i("\u91CD\u505A","\u21B7",()=>{e.commands?t("redo"):e.api?.redo()},e.commands?!e.commands.canRedo():!e.api?.canRedo()))),c("export")&&a.push(i("\u5BFC\u51FA CSV","\u21E9",()=>{e.commands&&t("exportCsv",e.exportFilename)},!e.commands)),c("fullscreen")&&a.push(i("\u5168\u5C4F","\u26F6",()=>{t("toggleFullscreen")},!e.commands)),a.push(...s.end?.()??[]),l("div",{class:"mach-toolbar__aside"},a)};return()=>l("div",{class:"mach-toolbar",role:"toolbar","aria-label":"\u8868\u683C\u5DE5\u5177\u680F"},[u(),m()])}});var T={install(e){e.component("MachTableToolbar")||e.component("MachTableToolbar",d)}};var M=T;export{d as MachTableToolbar,T as MachTableUiPlugin,M as default};
2
+ //# sourceMappingURL=ui.js.map
package/dist/ui.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/MachTableToolbar.ts","../src/ui.ts"],"sourcesContent":["import { defineComponent, h, type PropType, type VNodeChild } from \"vue\";\nimport type { GridApi, GridSize, MachTableCommands } from \"@agile-team/mach-table\";\n\nexport interface MachTableToolbarFeatures {\n search?: boolean;\n refresh?: boolean;\n columns?: boolean;\n density?: boolean;\n export?: boolean;\n undoRedo?: boolean;\n fullscreen?: boolean;\n}\n\nconst DEFAULT_FEATURES: Required<MachTableToolbarFeatures> = {\n search: true, refresh: true, columns: true, density: true,\n export: true, undoRedo: false, fullscreen: false\n};\n\nexport const MachTableToolbar = defineComponent({\n name: \"MachTableToolbar\",\n props: {\n api: { type: Object as PropType<GridApi<any> | null>, default: null },\n commands: { type: Object as PropType<MachTableCommands | null>, default: null },\n modelValue: { type: String, default: \"\" },\n loading: { type: Boolean, default: false },\n selectedCount: { type: Number, default: 0 },\n searchPlaceholder: { type: String, default: \"搜索当前结果\" },\n exportFilename: { type: String, default: \"mach-table.csv\" },\n features: { type: Object as PropType<MachTableToolbarFeatures>, default: () => ({}) }\n },\n emits: [\"update:modelValue\", \"refresh\", \"clearSelection\"],\n setup(props, { emit, slots }) {\n const enabled = (key: keyof MachTableToolbarFeatures): boolean => props.features[key] ?? DEFAULT_FEATURES[key];\n const command = (key: keyof MachTableCommands, ...args: unknown[]): unknown => {\n const fn = props.commands ? Reflect.get(props.commands, key) as unknown : undefined;\n return typeof fn === \"function\" && props.commands ? Reflect.apply(fn, props.commands, args) : undefined;\n };\n const button = (label: string, icon: string, click: (event: MouseEvent) => void, disabled = false) =>\n h(\"button\", { type: \"button\", class: \"mach-toolbar__button\", title: label, \"aria-label\": label, disabled, onClick: click }, icon);\n\n const renderMain = () => {\n const children: VNodeChild[] = [...(slots.start?.() ?? [])];\n if (enabled(\"search\")) children.push(h(\"label\", { class: \"mach-toolbar__search\" }, [\n h(\"span\", { class: \"mach-sr-only\" }, props.searchPlaceholder),\n h(\"span\", { \"aria-hidden\": \"true\" }, \"⌕\"),\n h(\"input\", {\n value: props.modelValue,\n type: \"search\",\n placeholder: props.searchPlaceholder,\n onInput: (event: Event) => {\n const value = (event.target as HTMLInputElement).value;\n emit(\"update:modelValue\", value);\n if (props.commands) command(\"search\", value || null);\n else props.api?.setQuickFilter(value || null);\n }\n })\n ]));\n if (enabled(\"refresh\")) children.push(button(\"刷新\", props.loading ? \"…\" : \"↻\", () => {\n emit(\"refresh\");\n if (props.commands) void command(\"refresh\");\n else if (props.api?.isInfinite()) void props.api.reload();\n else props.api?.refreshCells();\n }, props.loading));\n if (enabled(\"columns\")) children.push(button(\"列设置\", \"☷\", (event) => {\n const anchor = event.currentTarget;\n if (!(anchor instanceof HTMLElement)) return;\n if (props.commands) command(\"openColumns\", anchor);\n else props.api?.openColumnWorkbench(anchor);\n }));\n if (enabled(\"density\")) children.push(h(\"select\", {\n class: \"mach-toolbar__select\",\n value: props.api?.getGridOption(\"size\") ?? \"normal\",\n \"aria-label\": \"表格密度\",\n onChange: (event: Event) => {\n const size = (event.target as HTMLSelectElement).value as GridSize;\n if (props.commands) command(\"setDensity\", size);\n else props.api?.setGridOption(\"size\", size);\n }\n }, [h(\"option\", { value: \"compact\" }, \"紧凑\"), h(\"option\", { value: \"normal\" }, \"标准\"), h(\"option\", { value: \"large\" }, \"宽松\")]));\n children.push(...(slots.default?.() ?? []));\n return h(\"div\", { class: \"mach-toolbar__main\" }, children);\n };\n\n const renderAside = () => {\n const children: VNodeChild[] = [];\n if (props.selectedCount > 0) children.push(h(\"button\", {\n type: \"button\", class: \"mach-toolbar__selection\", onClick: () => emit(\"clearSelection\")\n }, `已选 ${props.selectedCount} 项 ×`));\n if (enabled(\"undoRedo\")) {\n children.push(button(\"撤销\", \"↶\", () => {\n if (props.commands) command(\"undo\"); else props.api?.undo();\n }, props.commands ? !props.commands.canUndo() : !props.api?.canUndo()));\n children.push(button(\"重做\", \"↷\", () => {\n if (props.commands) command(\"redo\"); else props.api?.redo();\n }, props.commands ? !props.commands.canRedo() : !props.api?.canRedo()));\n }\n if (enabled(\"export\")) children.push(button(\"导出 CSV\", \"⇩\", () => { if (props.commands) command(\"exportCsv\", props.exportFilename); }, !props.commands));\n if (enabled(\"fullscreen\")) children.push(button(\"全屏\", \"⛶\", () => { void command(\"toggleFullscreen\"); }, !props.commands));\n children.push(...(slots.end?.() ?? []));\n return h(\"div\", { class: \"mach-toolbar__aside\" }, children);\n };\n\n return () => h(\"div\", { class: \"mach-toolbar\", role: \"toolbar\", \"aria-label\": \"表格工具栏\" }, [\n renderMain(), renderAside()\n ]);\n }\n});\n","import type { App } from \"vue\";\nimport { MachTableToolbar } from \"./MachTableToolbar\";\n\n/** Optional UI layer. Install once only when the standard toolbar is desired. */\nexport const MachTableUiPlugin = {\n install(app: App): void {\n if (!app.component(\"MachTableToolbar\")) app.component(\"MachTableToolbar\", MachTableToolbar);\n }\n};\n\nexport { MachTableToolbar };\nexport type { MachTableToolbarFeatures } from \"./MachTableToolbar\";\nexport default MachTableUiPlugin;\n"],"mappings":"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","names":["defineComponent","h","DEFAULT_FEATURES","MachTableToolbar","props","emit","slots","enabled","key","command","args","fn","button","label","icon","click","disabled","renderMain","children","event","value","anchor","size","renderAside","MachTableUiPlugin","app","MachTableToolbar","ui_default","MachTableUiPlugin"]}