seqeyes-python 0.3.15__py3-none-any.whl → 0.3.16__py3-none-any.whl

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.
seqeyes/__init__.py CHANGED
@@ -29,4 +29,4 @@ from seqeyes._plot import set, reset
29
29
  from seqeyes._renderer import SeqEyesViewer
30
30
 
31
31
  __all__ = ["set", "reset", "SeqEyesViewer"]
32
- __version__ = "0.3.15"
32
+ __version__ = "0.3.16"
@@ -90,7 +90,7 @@ var Pulseq = (() => {
90
90
  });
91
91
 
92
92
  // package.json
93
- var version = "0.3.15";
93
+ var version = "0.3.16";
94
94
 
95
95
  // src/pulseq/decompressor.ts
96
96
  function decompressShape(compressed, numSamples) {
@@ -1313,6 +1313,33 @@ buildLegend();
1313
1313
  tuSel.value=timeUnit;guSel.value=gradUnit;
1314
1314
  tuSel.onchange=function(){timeUnit=tuSel.value;SeqEyesPrefs.set(SeqEyesPrefs.KEYS.timeUnit,timeUnit);draw();};
1315
1315
  guSel.onchange=function(){gradUnit=guSel.value;SeqEyesPrefs.set(SeqEyesPrefs.KEYS.gradUnit,gradUnit);draw();};
1316
+ /**
1317
+ * Fill a hover readout, one row per line, hanging each wrapped row under the
1318
+ * content rather than the margin.
1319
+ *
1320
+ * A row like "Labels: SLC=30 SEG=5 ..." that does not fit continues under the
1321
+ * "SLC=30", not under the "Labels:", so a continuation cannot be mistaken for a
1322
+ * new field. The indent is that line's own label width — four columns for
1323
+ * "RF: ", eight for "Labels: " — which `ch` gives exactly, the readout being
1324
+ * monospace.
1325
+ *
1326
+ * It takes the element rather than reaching for one, because the standalone
1327
+ * viewer calls this with its own `tt` from inside its own scope.
1328
+ */
1329
+ function renderTooltipLines(target,lines){
1330
+ target.textContent='';
1331
+ for(var i=0;i<lines.length;i++){
1332
+ var row=document.createElement('div');
1333
+ row.textContent=lines[i];
1334
+ var marker=lines[i].indexOf(': ');
1335
+ if(marker>0){
1336
+ var indent=(marker+2)+'ch';
1337
+ row.style.paddingLeft=indent;
1338
+ row.style.textIndent='-'+indent;
1339
+ }
1340
+ target.appendChild(row);
1341
+ }
1342
+ }
1316
1343
  function setExportButtonEnabled(enabled){if(exportBtn)exportBtn.disabled=!enabled;}
1317
1344
  /* Throws rather than drawing an empty panel when a trajectory arrives without
1318
1345
  its ADC samples. A reply that lost its arrays in transit used to clear the
@@ -7421,7 +7448,7 @@ function showTooltipAt(cx,cy,ct){
7421
7448
  }
7422
7449
  appendDerivedTooltipLines(lines,ct);
7423
7450
  if(lines.length>1||found){
7424
- tt.textContent=lines.join('\n');tt.style.display='block';
7451
+ renderTooltipLines(tt,lines);tt.style.display='block';
7425
7452
  placeTooltip(cx,cy);
7426
7453
  // Auto-dismiss on touch devices
7427
7454
  if(_touchTooltipTimer)clearTimeout(_touchTooltipTimer);
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: seqeyes-python
3
- Version: 0.3.15
3
+ Version: 0.3.16
4
4
  Summary: Interactive Pulseq MRI sequence viewer for Jupyter — lightweight, beautiful, replaces seq.plot() in pypulseq.
5
5
  Project-URL: Homepage, https://github.com/bughht/seqeyes_plugin
6
6
  Project-URL: Repository, https://github.com/bughht/seqeyes_plugin
@@ -0,0 +1,10 @@
1
+ seqeyes/__init__.py,sha256=5RLKLf76BMFAcXE_TlB80SCBRZD91BMEbXG1SJGk5tQ,945
2
+ seqeyes/_plot.py,sha256=v5cPAn3mO017lQlNR4bthC0QgIBK1YxjygJTAPFUz1E,8114
3
+ seqeyes/_renderer.py,sha256=wGLMnQvajBXFrbMBO5RPchnWNplxwAR0i5uv8FkNMcs,11100
4
+ seqeyes/resources/pulseq-bundle.js,sha256=cuIycmnOARm6iDjoLPAnkn0MWZORzrWCQDhGTbNQ8Mk,227199
5
+ seqeyes/resources/seqeyes-labels.js,sha256=6L30ejjaMLFW-0RnjAEXLm2hXireKAioVkKSUh6TeXM,21986
6
+ seqeyes/resources/viewer.html,sha256=jtVGcMnnsL3csxuD-IA8BXvRYlTEney_o3mz0_wSJsY,95919
7
+ seqeyes/resources/webview-bundle.js,sha256=S1381m8x66n9m0d9znk5VEZyWfJVM6hEueCsqKryvWQ,342856
8
+ seqeyes_python-0.3.16.dist-info/METADATA,sha256=FUMv9dX22SfWxkklraqgqjlTg-Jm0pOodUICxIhSwaQ,4503
9
+ seqeyes_python-0.3.16.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
10
+ seqeyes_python-0.3.16.dist-info/RECORD,,
@@ -1,10 +0,0 @@
1
- seqeyes/__init__.py,sha256=C973CBYCEWHhxrUJFUDcGi9SkbpYxhdbRkWDVq8vtko,945
2
- seqeyes/_plot.py,sha256=v5cPAn3mO017lQlNR4bthC0QgIBK1YxjygJTAPFUz1E,8114
3
- seqeyes/_renderer.py,sha256=wGLMnQvajBXFrbMBO5RPchnWNplxwAR0i5uv8FkNMcs,11100
4
- seqeyes/resources/pulseq-bundle.js,sha256=V1Tn-0yu1fT2uXVlYaCkQXZgILGacz48Md1pfT5BgJs,227199
5
- seqeyes/resources/seqeyes-labels.js,sha256=6L30ejjaMLFW-0RnjAEXLm2hXireKAioVkKSUh6TeXM,21986
6
- seqeyes/resources/viewer.html,sha256=jtVGcMnnsL3csxuD-IA8BXvRYlTEney_o3mz0_wSJsY,95919
7
- seqeyes/resources/webview-bundle.js,sha256=cSYEInL_Paj6q3KQ4c_dQE6pPM_FA6E7t1MDaeyiZX8,341873
8
- seqeyes_python-0.3.15.dist-info/METADATA,sha256=OVDGVW1IUNw4Q7RVpmTIAhqjr156u5uanLjeLA2tKXc,4503
9
- seqeyes_python-0.3.15.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
10
- seqeyes_python-0.3.15.dist-info/RECORD,,