gramene-search 1.7.14 → 1.7.16

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 (33) hide show
  1. package/.claude/settings.local.json +47 -1
  2. package/.parcel-cache/83e7562660f7cc15-BundleGraph +0 -0
  3. package/.parcel-cache/9a0d07555444f4da-AssetGraph +0 -0
  4. package/.parcel-cache/d3a1b9507cb44047-AssetGraph +0 -0
  5. package/.parcel-cache/data.mdb +0 -0
  6. package/.parcel-cache/dc1da35000e13623-RequestGraph +0 -0
  7. package/.parcel-cache/lock.mdb +0 -0
  8. package/.parcel-cache/snapshot-dc1da35000e13623.txt +2 -2
  9. package/dist/index.css +370 -0
  10. package/dist/index.css.map +1 -1
  11. package/dist/index.js +6967 -4758
  12. package/dist/index.js.map +1 -1
  13. package/package.json +1 -1
  14. package/src/bundles/exporter.js +234 -0
  15. package/src/bundles/index.js +4 -1
  16. package/src/bundles/ontologies.js +84 -0
  17. package/src/bundles/swaggerFields.js +575 -0
  18. package/src/bundles/views.js +6 -0
  19. package/src/components/exporter/ExportFooter.js +103 -0
  20. package/src/components/exporter/ExporterView.js +62 -0
  21. package/src/components/exporter/FieldTree.js +201 -0
  22. package/src/components/exporter/Preview.js +151 -0
  23. package/src/components/exporter/SelectedFields.js +87 -0
  24. package/src/components/exporter/ancestorsResolver.js +134 -0
  25. package/src/components/exporter/downloadRunner.js +140 -0
  26. package/src/components/exporter/expressionResolver.js +79 -0
  27. package/src/components/exporter/formatters.js +144 -0
  28. package/src/components/exporter/styles.css +380 -0
  29. package/src/components/geneSearchUI.js +3 -1
  30. package/src/components/results/details/VEP.js +1 -25
  31. package/src/demo.js +3 -0
  32. package/src/fieldCatalog.overlay.json +172 -0
  33. package/src/vepStudyInfo.js +25 -0
@@ -3,7 +3,53 @@
3
3
  "allow": [
4
4
  "Bash(curl -s 'https://data.gramene.org/v66/taxonomy?subset=gramene&rows=3')",
5
5
  "Bash(git add:*)",
6
- "Bash(git commit -m ':*)"
6
+ "Bash(git commit -m ':*)",
7
+ "WebFetch(domain:data.gramene.org)",
8
+ "Bash(curl -sI https://data.gramene.org/v69/swagger)",
9
+ "Bash(curl -s 'https://data.gramene.org/v69/swagger')",
10
+ "Bash(curl -s 'https://data.gramene.org/v69/swagger' -o /tmp/gramene-swagger.json)",
11
+ "Read(//tmp/**)",
12
+ "Bash(python3 -c ' *)",
13
+ "Bash(curl -s 'https://data.gramene.org/v69/search?q=capabilities:pubs&rows=10&fl=*' -o /tmp/gramene-sample.json)",
14
+ "Bash(python3)",
15
+ "Bash(node -e ' *)",
16
+ "Bash(node --check src/bundles/swaggerFields.js)",
17
+ "Bash(node -e \"JSON.parse\\(require\\('fs'\\).readFileSync\\('src/fieldCatalog.overlay.json'\\)\\);console.log\\('overlay JSON ok'\\)\")",
18
+ "Bash(node --check src/bundles/views.js)",
19
+ "Bash(node --check src/components/exporter/ExporterView.jsx)",
20
+ "Bash(curl -s 'https://data.gramene.org/v69/assays?rows=3')",
21
+ "Bash(python3 -m json.tool)",
22
+ "Bash(curl -s 'https://data.gramene.org/v69/experiments?rows=2')",
23
+ "Bash(curl -s 'https://data.gramene.org/v69/search?q=capabilities:pubs&rows=1&fl=*')",
24
+ "Bash(python3 -c \"import json,sys; d=json.load\\(sys.stdin\\); docs=d.get\\('response',{}\\).get\\('docs',[]\\); print\\('\\\\n'.join\\(sorted\\(docs[0].keys\\(\\)\\)\\) if docs else 'no docs'\\)\")",
25
+ "Bash(curl -s 'https://data.gramene.org/v69/experiments?idList=E-CURD-29')",
26
+ "Bash(curl -s 'https://data.gramene.org/v69/assays?experiment=E-CURD-29&rows=3')",
27
+ "Bash(curl -s 'https://data.gramene.org/v69/experiments?rows=-1')",
28
+ "Bash(curl -s 'https://data.gramene.org/v69/maps?rows=5')",
29
+ "Bash(curl -s 'https://data.gramene.org/v69/search?q=capabilities:pubs&rows=0&facet=true&facet.field=taxon_id&facet.limit=20&facet.mincount=1')",
30
+ "Bash(curl -s 'https://data.gramene.org/v69/search?q=capabilities:expression&rows=0&facet=true&facet.field=taxon_id&facet.limit=20&facet.mincount=1')",
31
+ "Bash(curl -s -o /dev/null -w '%{http_code}\\\\n' 'https://data.gramene.org/v69/schema/fields')",
32
+ "Bash(curl -s 'https://data.gramene.org/v69/')",
33
+ "Bash(curl -s -o /dev/null -w '%{http_code}\\\\n' 'https://data.gramene.org/v69/admin/luke')",
34
+ "Bash(curl -s 'https://data.gramene.org/v69/GO?idList=8150&rows=1')",
35
+ "Bash(curl -s 'https://data.gramene.org/v69/pathways?idList=0&rows=1')",
36
+ "Bash(curl -s 'https://data.gramene.org/v69/GO?idList=8150,0&rows=2')",
37
+ "Bash(curl -s 'https://data.gramene.org/v69/PO?idList=9012,0&rows=2')",
38
+ "Bash(curl -s 'https://data.gramene.org/v69/TO?idList=20,0&rows=2')",
39
+ "Bash(curl -s 'https://data.gramene.org/v69/domains?idList=1,0&rows=2')",
40
+ "Bash(curl -s 'https://data.gramene.org/v69/pathways?idList=R-PLT-1643685,0&rows=2')",
41
+ "Bash(curl -s 'https://data.gramene.org/v69/pathways?idList=8933811,8933729,8933839,0&rows=4')",
42
+ "Bash(curl -s 'https://data.sorghumbase.org/sorghum_v10/QTL_TO?idList=1,0&rows=2')",
43
+ "Bash(curl -s 'https://data.sorghumbase.org/sorghum_v10/swagger')",
44
+ "Bash(python3 -c \"import sys,json; d=json.load\\(sys.stdin\\); print\\([p for p in d.get\\('paths',{}\\).keys\\(\\) if 'QTL' in p or 'TO' in p or 'ontolog' in p.lower\\(\\)]\\)\")",
45
+ "Bash(curl -s 'https://data.sorghumbase.org/sorghum_v10/TO?idList=17,77,1005,0&rows=4')",
46
+ "Bash(git -C /Users/olson/src/warelab/gramene-search status)",
47
+ "Bash(git -C /Users/olson/src/warelab/gramene-search diff --stat)",
48
+ "Bash(git -C /Users/olson/src/warelab/gramene-search log --oneline -n 5)",
49
+ "Bash(git -C /Users/olson/src/warelab/gramene-search diff src/bundles/index.js src/bundles/views.js src/components/geneSearchUI.js src/components/results/details/VEP.js src/demo.js)",
50
+ "Bash(git -C /Users/olson/src/warelab/gramene-search add src/bundles/index.js src/bundles/views.js src/bundles/exporter.js src/bundles/ontologies.js src/bundles/swaggerFields.js src/components/geneSearchUI.js src/components/results/details/VEP.js src/components/exporter/ src/demo.js src/fieldCatalog.overlay.json src/vepStudyInfo.js)",
51
+ "Bash(git -C /Users/olson/src/warelab/gramene-search commit -m ' *)",
52
+ "Bash(git -C /Users/olson/src/warelab/gramene-search add src/bundles/swaggerFields.js)"
7
53
  ]
8
54
  }
9
55
  }
Binary file
Binary file
@@ -1,2 +1,2 @@
1
- 258647257
2
- 1776269033115909000
1
+ 281877745
2
+ 1776798889143349000
package/dist/index.css CHANGED
@@ -2103,4 +2103,374 @@ code.fasta {
2103
2103
  .accordion-button:hover {
2104
2104
  background-color: #dbe8f3;
2105
2105
  }
2106
+
2107
+ .exporter-view {
2108
+ grid-template-columns: minmax(280px, 1fr) minmax(320px, 1fr);
2109
+ gap: 1rem;
2110
+ min-height: 400px;
2111
+ padding: .75rem;
2112
+ display: grid;
2113
+ }
2114
+
2115
+ .exporter-pane {
2116
+ background: #fff;
2117
+ border: 1px solid #e0e0e0;
2118
+ border-radius: 4px;
2119
+ flex-direction: column;
2120
+ max-height: 70vh;
2121
+ display: flex;
2122
+ overflow: hidden;
2123
+ }
2124
+
2125
+ .exporter-pane-header {
2126
+ background: #f8f9fa;
2127
+ border-bottom: 1px solid #e0e0e0;
2128
+ padding: .5rem .75rem;
2129
+ font-size: .9rem;
2130
+ }
2131
+
2132
+ .exporter-pane-body {
2133
+ flex: 1;
2134
+ padding: .5rem;
2135
+ overflow-y: auto;
2136
+ }
2137
+
2138
+ .exporter-panel-empty {
2139
+ color: #888;
2140
+ text-align: center;
2141
+ padding: 1rem;
2142
+ font-size: .9rem;
2143
+ }
2144
+
2145
+ .exporter-field-tree {
2146
+ flex-direction: column;
2147
+ height: 100%;
2148
+ display: flex;
2149
+ }
2150
+
2151
+ .exporter-field-search {
2152
+ margin-bottom: .5rem;
2153
+ font-size: .9rem;
2154
+ }
2155
+
2156
+ .exporter-field-tree-body {
2157
+ flex: 1;
2158
+ overflow-y: auto;
2159
+ }
2160
+
2161
+ .exporter-group {
2162
+ margin-bottom: .25rem;
2163
+ }
2164
+
2165
+ .exporter-group-header {
2166
+ cursor: pointer;
2167
+ user-select: none;
2168
+ background: #eef1f4;
2169
+ border-radius: 3px;
2170
+ align-items: center;
2171
+ gap: .4rem;
2172
+ padding: .25rem .5rem;
2173
+ font-size: .9rem;
2174
+ display: flex;
2175
+ }
2176
+
2177
+ .exporter-group-header:hover {
2178
+ background: #e3e7ec;
2179
+ }
2180
+
2181
+ .exporter-group-chevron {
2182
+ color: #666;
2183
+ align-items: center;
2184
+ display: inline-flex;
2185
+ }
2186
+
2187
+ .exporter-group-count {
2188
+ color: #666;
2189
+ background: #fff;
2190
+ border: 1px solid #ddd;
2191
+ border-radius: 10px;
2192
+ padding: 0 .4rem;
2193
+ font-size: .75rem;
2194
+ }
2195
+
2196
+ .exporter-group-actions {
2197
+ gap: .25rem;
2198
+ margin-left: auto;
2199
+ display: inline-flex;
2200
+ }
2201
+
2202
+ .exporter-group-action {
2203
+ color: #333;
2204
+ cursor: pointer;
2205
+ background: #fff;
2206
+ border: 1px solid #ccc;
2207
+ border-radius: 3px;
2208
+ padding: .05rem .4rem;
2209
+ font-size: .7rem;
2210
+ line-height: 1.4;
2211
+ }
2212
+
2213
+ .exporter-group-action:hover:not(:disabled) {
2214
+ background: #f0f4f8;
2215
+ border-color: #88a;
2216
+ }
2217
+
2218
+ .exporter-group-action:disabled {
2219
+ opacity: .4;
2220
+ cursor: default;
2221
+ }
2222
+
2223
+ .exporter-group-fields {
2224
+ margin: .25rem 0 .5rem 1.25rem;
2225
+ padding: 0;
2226
+ list-style: none;
2227
+ }
2228
+
2229
+ .exporter-group-fields li {
2230
+ padding: .1rem .25rem;
2231
+ font-size: .85rem;
2232
+ }
2233
+
2234
+ .exporter-group-fields label {
2235
+ cursor: pointer;
2236
+ border-radius: 2px;
2237
+ align-items: center;
2238
+ gap: .35rem;
2239
+ width: 100%;
2240
+ margin: 0;
2241
+ padding: .1rem .25rem;
2242
+ display: flex;
2243
+ }
2244
+
2245
+ .exporter-group-fields label:hover {
2246
+ background: #f0f4f8;
2247
+ }
2248
+
2249
+ .exporter-field-label {
2250
+ text-overflow: ellipsis;
2251
+ white-space: nowrap;
2252
+ flex: 1;
2253
+ overflow: hidden;
2254
+ }
2255
+
2256
+ .exporter-field-badge {
2257
+ color: #888;
2258
+ font-family: monospace;
2259
+ font-size: .7rem;
2260
+ }
2261
+
2262
+ .exporter-group-truncated {
2263
+ color: #888;
2264
+ padding-left: .5rem;
2265
+ font-size: .8rem;
2266
+ }
2267
+
2268
+ .exporter-selected {
2269
+ flex-direction: column;
2270
+ height: 100%;
2271
+ display: flex;
2272
+ }
2273
+
2274
+ .exporter-selected-header {
2275
+ border-bottom: 1px solid #eee;
2276
+ align-items: center;
2277
+ gap: .5rem;
2278
+ margin-bottom: .5rem;
2279
+ padding: .25rem 0;
2280
+ display: flex;
2281
+ }
2282
+
2283
+ .exporter-selected-count {
2284
+ color: #666;
2285
+ background: #eef1f4;
2286
+ border-radius: 10px;
2287
+ padding: 0 .5rem;
2288
+ font-size: .75rem;
2289
+ }
2290
+
2291
+ .exporter-clear-btn {
2292
+ margin-left: auto;
2293
+ padding: 0;
2294
+ font-size: .8rem;
2295
+ }
2296
+
2297
+ .exporter-selected-list {
2298
+ flex: 1;
2299
+ margin: 0;
2300
+ padding: 0;
2301
+ list-style: none;
2302
+ overflow-y: auto;
2303
+ }
2304
+
2305
+ .exporter-selected-list li {
2306
+ border-bottom: 1px solid #f0f0f0;
2307
+ align-items: center;
2308
+ gap: .4rem;
2309
+ padding: .25rem .35rem;
2310
+ font-size: .85rem;
2311
+ display: flex;
2312
+ }
2313
+
2314
+ .exporter-selected-index {
2315
+ color: #888;
2316
+ min-width: 1.75rem;
2317
+ font-family: monospace;
2318
+ }
2319
+
2320
+ .exporter-selected-label {
2321
+ text-overflow: ellipsis;
2322
+ white-space: nowrap;
2323
+ flex: 1;
2324
+ overflow: hidden;
2325
+ }
2326
+
2327
+ .exporter-selected-group {
2328
+ color: #888;
2329
+ }
2330
+
2331
+ .exporter-selected-actions {
2332
+ gap: .15rem;
2333
+ display: flex;
2334
+ }
2335
+
2336
+ .exporter-selected-actions button {
2337
+ padding: .1rem .35rem;
2338
+ line-height: 1;
2339
+ }
2340
+
2341
+ .exporter-right-pane {
2342
+ max-height: 70vh;
2343
+ }
2344
+
2345
+ .exporter-right-split {
2346
+ flex-direction: column;
2347
+ flex: 1;
2348
+ display: flex;
2349
+ overflow: hidden;
2350
+ }
2351
+
2352
+ .exporter-selected-section {
2353
+ border-bottom: 1px solid #e0e0e0;
2354
+ flex: none;
2355
+ max-height: 35%;
2356
+ padding: .5rem;
2357
+ overflow-y: auto;
2358
+ }
2359
+
2360
+ .exporter-preview-section {
2361
+ flex-direction: column;
2362
+ flex: 1;
2363
+ padding: .5rem;
2364
+ display: flex;
2365
+ overflow: hidden;
2366
+ }
2367
+
2368
+ .exporter-preview {
2369
+ flex-direction: column;
2370
+ height: 100%;
2371
+ display: flex;
2372
+ }
2373
+
2374
+ .exporter-preview-toolbar {
2375
+ border-bottom: 1px solid #eee;
2376
+ align-items: center;
2377
+ gap: .75rem;
2378
+ margin-bottom: .35rem;
2379
+ padding-bottom: .35rem;
2380
+ font-size: .85rem;
2381
+ display: flex;
2382
+ }
2383
+
2384
+ .exporter-preview-format label {
2385
+ cursor: pointer;
2386
+ margin-right: .5rem;
2387
+ }
2388
+
2389
+ .exporter-preview-format input {
2390
+ margin-right: .25rem;
2391
+ }
2392
+
2393
+ .exporter-preview-status {
2394
+ color: #888;
2395
+ margin-left: auto;
2396
+ }
2397
+
2398
+ .exporter-preview-status.error {
2399
+ color: #c33;
2400
+ }
2401
+
2402
+ .exporter-preview-body {
2403
+ background: #fafbfc;
2404
+ border: 1px solid #eee;
2405
+ border-radius: 3px;
2406
+ flex: 1;
2407
+ overflow: auto;
2408
+ }
2409
+
2410
+ .exporter-preview-empty {
2411
+ color: #888;
2412
+ text-align: center;
2413
+ padding: 1rem;
2414
+ }
2415
+
2416
+ .exporter-preview-tsv-scroll {
2417
+ max-width: 100%;
2418
+ overflow: auto;
2419
+ }
2420
+
2421
+ .exporter-preview-tsv {
2422
+ border-collapse: collapse;
2423
+ width: auto;
2424
+ font-family: -apple-system, BlinkMacSystemFont, sans-serif;
2425
+ font-size: .8rem;
2426
+ }
2427
+
2428
+ .exporter-preview-tsv th, .exporter-preview-tsv td {
2429
+ text-overflow: ellipsis;
2430
+ white-space: nowrap;
2431
+ border: 1px solid #e5e7ea;
2432
+ max-width: 280px;
2433
+ padding: .2rem .5rem;
2434
+ overflow: hidden;
2435
+ }
2436
+
2437
+ .exporter-preview-tsv th {
2438
+ text-align: left;
2439
+ z-index: 1;
2440
+ background: #f0f3f6;
2441
+ position: sticky;
2442
+ top: 0;
2443
+ }
2444
+
2445
+ .exporter-preview-tsv tr:hover td {
2446
+ background: #f4f7fa;
2447
+ }
2448
+
2449
+ .exporter-preview-empty-row {
2450
+ text-align: center;
2451
+ color: #888;
2452
+ padding: 1rem !important;
2453
+ }
2454
+
2455
+ .exporter-preview-json {
2456
+ margin: 0;
2457
+ padding: .5rem;
2458
+ font-size: .75rem;
2459
+ line-height: 1.4;
2460
+ }
2461
+
2462
+ .exporter-footer {
2463
+ background: #f8f9fa;
2464
+ border-top: 1px solid #e0e0e0;
2465
+ flex: none;
2466
+ justify-content: space-between;
2467
+ align-items: center;
2468
+ gap: .75rem;
2469
+ padding: .5rem .75rem;
2470
+ display: flex;
2471
+ }
2472
+
2473
+ .exporter-footer-summary {
2474
+ color: #555;
2475
+ }
2106
2476
  /*# sourceMappingURL=index.css.map */