@basic-genomics/hivtrace-viz 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/embed/hivtrace.css +341 -0
- package/dist/embed/hivtrace.css.map +1 -1
- package/dist/embed/hivtrace.js +1 -1
- package/dist/embed/hivtrace.js.map +1 -1
- package/dist/embed/index.html +268 -13
- package/dist/embed/locales/en-US.json +5 -2
- package/dist/embed/locales/zh-CN.json +5 -2
- package/dist/hivtrace.css +341 -0
- package/dist/hivtrace.css.map +1 -1
- package/dist/hivtrace.js +1 -1
- package/dist/hivtrace.js.map +1 -1
- package/package.json +2 -2
package/dist/embed/hivtrace.css
CHANGED
|
@@ -11958,6 +11958,10 @@ circle.cluster {
|
|
|
11958
11958
|
margin-top: 5px;
|
|
11959
11959
|
}
|
|
11960
11960
|
|
|
11961
|
+
.input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn{
|
|
11962
|
+
height: 36px !important;
|
|
11963
|
+
}
|
|
11964
|
+
|
|
11961
11965
|
#network_ui_bar > .input-group-btn {
|
|
11962
11966
|
padding-bottom: 5px;
|
|
11963
11967
|
height: 36px !important;
|
|
@@ -12162,6 +12166,343 @@ circle.injected_object {
|
|
|
12162
12166
|
font-size: 10px;
|
|
12163
12167
|
}
|
|
12164
12168
|
|
|
12169
|
+
/* Attribute binned table: prevent text wrapping in headers and row labels */
|
|
12170
|
+
[data-hivtrace-ui-role="attribute_table"] th,
|
|
12171
|
+
[data-hivtrace-ui-role="attribute_table"] td:first-child {
|
|
12172
|
+
white-space: nowrap;
|
|
12173
|
+
}
|
|
12174
|
+
|
|
12175
|
+
/* Download button styles - minimal design */
|
|
12176
|
+
a[data-type="download-button"] {
|
|
12177
|
+
display: inline-flex;
|
|
12178
|
+
align-items: center;
|
|
12179
|
+
justify-content: center;
|
|
12180
|
+
padding: 4px;
|
|
12181
|
+
color: #9ca3af;
|
|
12182
|
+
text-decoration: none;
|
|
12183
|
+
transition: color 0.15s ease;
|
|
12184
|
+
cursor: pointer;
|
|
12185
|
+
}
|
|
12186
|
+
|
|
12187
|
+
a[data-type="download-button"]:hover {
|
|
12188
|
+
color: #374151;
|
|
12189
|
+
text-decoration: none;
|
|
12190
|
+
}
|
|
12191
|
+
|
|
12192
|
+
a[data-type="download-button"] i.fa-download,
|
|
12193
|
+
a[data-type="download-button"] i.fa-2x {
|
|
12194
|
+
font-size: 16px;
|
|
12195
|
+
}
|
|
12196
|
+
|
|
12197
|
+
/* Table section title spacing */
|
|
12198
|
+
#trace-nodes .lead,
|
|
12199
|
+
#trace-clusters .lead ,
|
|
12200
|
+
#trace-graph .lead{
|
|
12201
|
+
margin-top: 12px;
|
|
12202
|
+
margin-bottom: 0 !important;
|
|
12203
|
+
}
|
|
12204
|
+
|
|
12205
|
+
/* Cluster list modal - content area */
|
|
12206
|
+
[data-hivtrace-ui-role="cluster_list_payload"] {
|
|
12207
|
+
padding: 12px !important;
|
|
12208
|
+
max-height: calc(100vh - 180px); /* 占满大部分高度,减去 header 和 footer */
|
|
12209
|
+
overflow-y: auto;
|
|
12210
|
+
margin: 0;
|
|
12211
|
+
}
|
|
12212
|
+
|
|
12213
|
+
/* Global primary button theme color override */
|
|
12214
|
+
.btn-primary {
|
|
12215
|
+
background-color: #2563EB !important;
|
|
12216
|
+
border-color: #2563EB !important;
|
|
12217
|
+
}
|
|
12218
|
+
|
|
12219
|
+
.btn-primary:hover,
|
|
12220
|
+
.btn-primary:focus,
|
|
12221
|
+
.btn-primary:active,
|
|
12222
|
+
.btn-primary.active {
|
|
12223
|
+
background-color: #1d4ed8 !important;
|
|
12224
|
+
border-color: #1d4ed8 !important;
|
|
12225
|
+
}
|
|
12226
|
+
|
|
12227
|
+
.btn-primary:disabled,
|
|
12228
|
+
.btn-primary.disabled {
|
|
12229
|
+
background-color: #93c5fd !important;
|
|
12230
|
+
border-color: #93c5fd !important;
|
|
12231
|
+
}
|
|
12232
|
+
|
|
12233
|
+
/* Cluster list modal styles */
|
|
12234
|
+
[data-hivtrace-ui-role="cluster_list"] .modal-content {
|
|
12235
|
+
border-radius: 12px;
|
|
12236
|
+
border: none;
|
|
12237
|
+
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
|
|
12238
|
+
overflow: hidden;
|
|
12239
|
+
}
|
|
12240
|
+
|
|
12241
|
+
[data-hivtrace-ui-role="cluster_list"] .modal-header {
|
|
12242
|
+
background: #f8fafc;
|
|
12243
|
+
border-bottom: 1px solid #e5e7eb;
|
|
12244
|
+
padding: 16px 20px;
|
|
12245
|
+
display: flex;
|
|
12246
|
+
align-items: center;
|
|
12247
|
+
flex-wrap: wrap;
|
|
12248
|
+
gap: 12px;
|
|
12249
|
+
}
|
|
12250
|
+
|
|
12251
|
+
[data-hivtrace-ui-role="cluster_list"] .modal-title {
|
|
12252
|
+
font-size: 16px;
|
|
12253
|
+
font-weight: 600;
|
|
12254
|
+
color: #1f2937;
|
|
12255
|
+
margin: 0;
|
|
12256
|
+
flex: 1;
|
|
12257
|
+
}
|
|
12258
|
+
|
|
12259
|
+
[data-hivtrace-ui-role="cluster_list"] .modal-header .close {
|
|
12260
|
+
order: 10;
|
|
12261
|
+
margin: 0;
|
|
12262
|
+
padding: 0;
|
|
12263
|
+
font-size: 24px;
|
|
12264
|
+
color: #9ca3af;
|
|
12265
|
+
opacity: 1;
|
|
12266
|
+
}
|
|
12267
|
+
|
|
12268
|
+
[data-hivtrace-ui-role="cluster_list"] .modal-header .close:hover {
|
|
12269
|
+
color: #374151;
|
|
12270
|
+
}
|
|
12271
|
+
|
|
12272
|
+
[data-hivtrace-ui-role="cluster_list"] .modal-header .btn {
|
|
12273
|
+
font-size: 13px;
|
|
12274
|
+
padding: 6px 12px;
|
|
12275
|
+
border-radius: 6px;
|
|
12276
|
+
}
|
|
12277
|
+
|
|
12278
|
+
|
|
12279
|
+
|
|
12280
|
+
[data-hivtrace-ui-role="cluster_list"] .modal-footer {
|
|
12281
|
+
background: #f8fafc;
|
|
12282
|
+
border-top: 1px solid #e5e7eb;
|
|
12283
|
+
padding: 12px 20px;
|
|
12284
|
+
}
|
|
12285
|
+
|
|
12286
|
+
[data-hivtrace-ui-role="cluster_list"] .modal-footer .btn {
|
|
12287
|
+
border-radius: 6px;
|
|
12288
|
+
padding: 8px 16px;
|
|
12289
|
+
}
|
|
12290
|
+
|
|
12291
|
+
/* Cluster and Node table styles - following Attributes tab pattern */
|
|
12292
|
+
#trace-clusters .table,
|
|
12293
|
+
#trace-nodes .table {
|
|
12294
|
+
border-collapse: separate;
|
|
12295
|
+
border-spacing: 0;
|
|
12296
|
+
margin: 0;
|
|
12297
|
+
}
|
|
12298
|
+
|
|
12299
|
+
/* Table header - sticky */
|
|
12300
|
+
#trace-clusters .table thead th,
|
|
12301
|
+
#trace-nodes .table thead th {
|
|
12302
|
+
background: #f9fafb;
|
|
12303
|
+
border-bottom: 1px solid #e5e7eb;
|
|
12304
|
+
font-weight: 600;
|
|
12305
|
+
color: #374151;
|
|
12306
|
+
padding: 8px 6px;
|
|
12307
|
+
white-space: nowrap;
|
|
12308
|
+
position: sticky;
|
|
12309
|
+
top: 0;
|
|
12310
|
+
z-index: 2;
|
|
12311
|
+
}
|
|
12312
|
+
|
|
12313
|
+
/* First column - sticky left */
|
|
12314
|
+
#trace-clusters .table tbody td:first-child,
|
|
12315
|
+
#trace-clusters .table thead th:first-child,
|
|
12316
|
+
#trace-nodes .table tbody td:first-child,
|
|
12317
|
+
#trace-nodes .table thead th:first-child {
|
|
12318
|
+
position: sticky;
|
|
12319
|
+
left: 0;
|
|
12320
|
+
z-index: 1;
|
|
12321
|
+
background: #f9fafb;
|
|
12322
|
+
}
|
|
12323
|
+
|
|
12324
|
+
/* Top-left corner cell - highest z-index */
|
|
12325
|
+
#trace-clusters .table thead th:first-child,
|
|
12326
|
+
#trace-nodes .table thead th:first-child {
|
|
12327
|
+
z-index: 3;
|
|
12328
|
+
}
|
|
12329
|
+
|
|
12330
|
+
/* Table body cells */
|
|
12331
|
+
#trace-clusters .table tbody td,
|
|
12332
|
+
#trace-nodes .table tbody td {
|
|
12333
|
+
padding: 6px;
|
|
12334
|
+
border-bottom: 1px solid #f3f4f6;
|
|
12335
|
+
vertical-align: middle;
|
|
12336
|
+
background: #fff;
|
|
12337
|
+
white-space: nowrap;
|
|
12338
|
+
}
|
|
12339
|
+
|
|
12340
|
+
/* Row hover */
|
|
12341
|
+
#trace-clusters .table tbody tr:hover td,
|
|
12342
|
+
#trace-nodes .table tbody tr:hover td {
|
|
12343
|
+
background: #f9fafb;
|
|
12344
|
+
}
|
|
12345
|
+
|
|
12346
|
+
/* ========================================
|
|
12347
|
+
Global Table Styles - Unified across all tabs
|
|
12348
|
+
======================================== */
|
|
12349
|
+
|
|
12350
|
+
|
|
12351
|
+
.tab-pane .table {
|
|
12352
|
+
border-collapse: separate;
|
|
12353
|
+
border-spacing: 0;
|
|
12354
|
+
margin: 0;
|
|
12355
|
+
width: 100%;
|
|
12356
|
+
}
|
|
12357
|
+
|
|
12358
|
+
.tab-pane .table thead th {
|
|
12359
|
+
background: #f9fafb;
|
|
12360
|
+
border-bottom: 1px solid #e5e7eb;
|
|
12361
|
+
font-weight: 600;
|
|
12362
|
+
color: #374151;
|
|
12363
|
+
padding: 8px 6px;
|
|
12364
|
+
white-space: nowrap;
|
|
12365
|
+
position: sticky;
|
|
12366
|
+
top: 0;
|
|
12367
|
+
z-index: 2;
|
|
12368
|
+
}
|
|
12369
|
+
|
|
12370
|
+
.tab-pane .table tbody td {
|
|
12371
|
+
padding: 6px;
|
|
12372
|
+
border-bottom: 1px solid #f3f4f6;
|
|
12373
|
+
vertical-align: middle;
|
|
12374
|
+
background: #fff;
|
|
12375
|
+
white-space: nowrap;
|
|
12376
|
+
}
|
|
12377
|
+
|
|
12378
|
+
.tab-pane .table tbody tr:hover td {
|
|
12379
|
+
background: #f9fafb;
|
|
12380
|
+
}
|
|
12381
|
+
|
|
12382
|
+
/* First column sticky */
|
|
12383
|
+
.tab-pane .table thead th:first-child,
|
|
12384
|
+
.tab-pane .table tbody td:first-child {
|
|
12385
|
+
position: sticky;
|
|
12386
|
+
left: 0;
|
|
12387
|
+
z-index: 1;
|
|
12388
|
+
background: #f9fafb;
|
|
12389
|
+
}
|
|
12390
|
+
|
|
12391
|
+
.tab-pane .table tbody td:first-child {
|
|
12392
|
+
background: #fff;
|
|
12393
|
+
}
|
|
12394
|
+
|
|
12395
|
+
.tab-pane .table tbody tr:hover td:first-child {
|
|
12396
|
+
background: #f9fafb;
|
|
12397
|
+
}
|
|
12398
|
+
|
|
12399
|
+
/* Top-left corner cell */
|
|
12400
|
+
.tab-pane .table thead th:first-child {
|
|
12401
|
+
z-index: 3;
|
|
12402
|
+
}
|
|
12403
|
+
|
|
12404
|
+
/* Keep action buttons in one row */
|
|
12405
|
+
#cluster_table td:first-child,
|
|
12406
|
+
#node_table td:first-child {
|
|
12407
|
+
min-width: 120px;
|
|
12408
|
+
}
|
|
12409
|
+
|
|
12410
|
+
#cluster_table td .btn.pull-right,
|
|
12411
|
+
#node_table td .btn.pull-right {
|
|
12412
|
+
float: none !important;
|
|
12413
|
+
display: inline-block;
|
|
12414
|
+
margin-left: 4px;
|
|
12415
|
+
}
|
|
12416
|
+
|
|
12417
|
+
/* ========================================
|
|
12418
|
+
Statistics Tab - Consistent with Attributes Tab
|
|
12419
|
+
======================================== */
|
|
12420
|
+
|
|
12421
|
+
/* 统计容器 - 与属性 tab 一致的布局 */
|
|
12422
|
+
.hivtrace-stats-container {
|
|
12423
|
+
display: flex;
|
|
12424
|
+
flex-direction: column;
|
|
12425
|
+
height: 100%;
|
|
12426
|
+
min-height: 400px;
|
|
12427
|
+
padding: 12px;
|
|
12428
|
+
gap: 12px;
|
|
12429
|
+
}
|
|
12430
|
+
|
|
12431
|
+
/* 顶部:选择器区域 */
|
|
12432
|
+
.hivtrace-stats-header {
|
|
12433
|
+
flex-shrink: 0;
|
|
12434
|
+
background: #f9fafb;
|
|
12435
|
+
border: 1px solid #e5e7eb;
|
|
12436
|
+
border-radius: 8px;
|
|
12437
|
+
padding: 12px;
|
|
12438
|
+
}
|
|
12439
|
+
|
|
12440
|
+
/* 下方:统计表格和直方图 - 响应式布局 */
|
|
12441
|
+
.hivtrace-stats-content {
|
|
12442
|
+
flex: 1;
|
|
12443
|
+
display: flex;
|
|
12444
|
+
flex-direction: column;
|
|
12445
|
+
gap: 16px;
|
|
12446
|
+
min-height: 0;
|
|
12447
|
+
}
|
|
12448
|
+
|
|
12449
|
+
/* 大屏幕(≥996px):左右布局 */
|
|
12450
|
+
@media (min-width: 996px) {
|
|
12451
|
+
.hivtrace-stats-content {
|
|
12452
|
+
flex-direction: row;
|
|
12453
|
+
}
|
|
12454
|
+
}
|
|
12455
|
+
|
|
12456
|
+
/* 统计面板 */
|
|
12457
|
+
.hivtrace-stats-panel {
|
|
12458
|
+
flex: 1;
|
|
12459
|
+
min-width: 0;
|
|
12460
|
+
}
|
|
12461
|
+
|
|
12462
|
+
/* 直方图面板特殊居中 */
|
|
12463
|
+
.hivtrace-stats-panel:last-child {
|
|
12464
|
+
display: flex;
|
|
12465
|
+
flex-direction: column;
|
|
12466
|
+
align-items: center;
|
|
12467
|
+
}
|
|
12468
|
+
|
|
12469
|
+
|
|
12470
|
+
/* Statistics table styling */
|
|
12471
|
+
#graph_summary_table {
|
|
12472
|
+
margin-top: 8px;
|
|
12473
|
+
}
|
|
12474
|
+
|
|
12475
|
+
#graph_summary_table tbody td:first-child {
|
|
12476
|
+
color: #6b7280;
|
|
12477
|
+
}
|
|
12478
|
+
|
|
12479
|
+
#graph_summary_table tbody td:last-child {
|
|
12480
|
+
font-weight: 500;
|
|
12481
|
+
color: #1f2937;
|
|
12482
|
+
text-align: right;
|
|
12483
|
+
}
|
|
12484
|
+
|
|
12485
|
+
/* Histogram container styling */
|
|
12486
|
+
#histogram_tag {
|
|
12487
|
+
margin-top: 8px;
|
|
12488
|
+
min-height: 200px;
|
|
12489
|
+
display: flex;
|
|
12490
|
+
justify-content: center;
|
|
12491
|
+
align-items: flex-start;
|
|
12492
|
+
}
|
|
12493
|
+
|
|
12494
|
+
#histogram_label {
|
|
12495
|
+
margin-top: 12px;
|
|
12496
|
+
margin-bottom: 8px !important;
|
|
12497
|
+
text-align: center;
|
|
12498
|
+
}
|
|
12499
|
+
|
|
12500
|
+
/* Ensure histogram SVG is responsive */
|
|
12501
|
+
#histogram_tag svg {
|
|
12502
|
+
max-width: 100%;
|
|
12503
|
+
height: auto;
|
|
12504
|
+
}
|
|
12505
|
+
|
|
12165
12506
|
/*!
|
|
12166
12507
|
* Bootstrap v3.4.1 (https://getbootstrap.com/)
|
|
12167
12508
|
* Copyright 2011-2019 Twitter, Inc.
|