daiquiri-ui 2025.12.5__py3-none-any.whl → 2026.2.0__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.
Files changed (143) hide show
  1. daiquiri_ui/__init__.py +0 -1
  2. daiquiri_ui/static/assets/Anchor-0b4a3d33.js +1 -0
  3. daiquiri_ui/static/assets/AutoscaleOption-3cb99678.js +1 -0
  4. daiquiri_ui/static/assets/{BPMVideoStream-5e8c0121.js → BPMVideoStream-c3e09e8b.js} +1 -1
  5. daiquiri_ui/static/assets/{CanvasEnhancer-abaa5025.js → CanvasEnhancer-dd82c090.js} +1 -1
  6. daiquiri_ui/static/assets/ColorMap-be59ad21.js +1 -0
  7. daiquiri_ui/static/assets/CompositeMap-c93f5466.js +1 -0
  8. daiquiri_ui/static/assets/{ConnectUtils-bd734a4a.js → ConnectUtils-3923fa2f.js} +1 -1
  9. daiquiri_ui/static/assets/{Console-4f2397f7.js → Console-d0028912.js} +1 -1
  10. daiquiri_ui/static/assets/{Cross-80ee2b29.js → Cross-d5df0df3.js} +1 -1
  11. daiquiri_ui/static/assets/{CrossMarker-cc495eca.js → CrossMarker-71cd11cf.js} +2 -2
  12. daiquiri_ui/static/assets/DraggableRect-25d91c7d.js +1 -0
  13. daiquiri_ui/static/assets/DropdownButton-29cc265b.js +1 -0
  14. daiquiri_ui/static/assets/DropdownDetector-5016908a.js +1 -0
  15. daiquiri_ui/static/assets/{Editor-b897e35a.js → Editor-7b500b85.js} +9 -9
  16. daiquiri_ui/static/assets/EditorTree-7fc000d8.js +1 -0
  17. daiquiri_ui/static/assets/H5Viewer-d1305c58.js +1 -0
  18. daiquiri_ui/static/assets/{H5WebCurvePlot-acd3b964.js → H5WebCurvePlot-61b08211.js} +1 -1
  19. daiquiri_ui/static/assets/HSegment-8d2c001e.js +43 -0
  20. daiquiri_ui/static/assets/HardwareButton-af41c610.js +1 -0
  21. daiquiri_ui/static/assets/Hdf5Plot-bbffc65f.js +1 -0
  22. daiquiri_ui/static/assets/{HistogramDomainSlider-9c6d3e2d.js → HistogramDomainSlider-304bdab4.js} +1 -1
  23. daiquiri_ui/static/assets/Image-ee61818a.js +1 -0
  24. daiquiri_ui/static/assets/Label-9d8979b3.js +1 -0
  25. daiquiri_ui/static/assets/{LoadingMessage-072bb4e8.js → LoadingMessage-03b4fa4f.js} +1 -1
  26. daiquiri_ui/static/assets/NewScanButton-0051d220.js +1 -0
  27. daiquiri_ui/static/assets/NewScanButton-57cf0c17.js +1 -0
  28. daiquiri_ui/static/assets/OptionsProcess-da629bfb.js +1 -0
  29. daiquiri_ui/static/assets/ParametersList-2d01832f.js +1 -0
  30. daiquiri_ui/static/assets/RectRoi-3693cc65.js +1 -0
  31. daiquiri_ui/static/assets/RectRuler-1fee3fd8.js +543 -0
  32. daiquiri_ui/static/assets/RulerButton-a95a6035.js +139 -0
  33. daiquiri_ui/static/assets/SampleDCList-dce0bd2b.js +1 -0
  34. daiquiri_ui/static/assets/SampleRegistration-544aa4bd.js +1 -0
  35. daiquiri_ui/static/assets/SavingButton-c3efc92c.js +1 -0
  36. daiquiri_ui/static/assets/ScanDataService-16f29ecd.js +1 -0
  37. daiquiri_ui/static/assets/ScanPlot0d-67c76bfe.js +1 -0
  38. daiquiri_ui/static/assets/ScanPlot0dValue-c0dd01b5.js +1 -0
  39. daiquiri_ui/static/assets/ScanPlot1d-3c930b95.js +1 -0
  40. daiquiri_ui/static/assets/ScanPlot1d-ee33c98b.js +1 -0
  41. daiquiri_ui/static/assets/{ScanPlot2d-c857bbd7.js → ScanPlot2d-af57d8ad.js} +1 -1
  42. daiquiri_ui/static/assets/{ScanTable-11f74702.js → ScanTable-bc13760e.js} +1 -1
  43. daiquiri_ui/static/assets/ScanValue-00aab91b.js +1 -0
  44. daiquiri_ui/static/assets/SceneScale-e2a42af2.js +1 -0
  45. daiquiri_ui/static/assets/SchemaForm-7d897a32.js +1 -0
  46. daiquiri_ui/static/assets/{ScreenScale-fdd43179.js → ScreenScale-b2417934.js} +1 -1
  47. daiquiri_ui/static/assets/{SelectionPoint-7fbd4e1f.js → SelectionPoint-a2cb4dfc.js} +1 -1
  48. daiquiri_ui/static/assets/{StackedNameState-94be4a7b.js → StackedNameState-4e8dc742.js} +1 -1
  49. daiquiri_ui/static/assets/Statistics.worker-54a0d965.js +46 -0
  50. daiquiri_ui/static/assets/{Synoptic-d291a77a.js → Synoptic-8a3c67f3.js} +5 -5
  51. daiquiri_ui/static/assets/TomoAlign-b80a68c3.js +7 -0
  52. daiquiri_ui/static/assets/TomoBeamShaping-65a115e9.js +1 -0
  53. daiquiri_ui/static/assets/TomoDetector-500d46af.js +1 -0
  54. daiquiri_ui/static/assets/TomoDetector-e04a5a8b.js +1 -0
  55. daiquiri_ui/static/assets/TomoDetectorView-952499e6.js +64 -0
  56. daiquiri_ui/static/assets/TomoHolo-db2c8449.js +1 -0
  57. daiquiri_ui/static/assets/TomoPusherView-a50e2acd.js +1 -0
  58. daiquiri_ui/static/assets/TomoReconstructedSinogram-deee0779.js +191 -0
  59. daiquiri_ui/static/assets/TomoScanInfo-972a690b.js +1 -0
  60. daiquiri_ui/static/assets/{TomoScanList-66ecaec4.js → TomoScanList-ede05c2a.js} +1 -1
  61. daiquiri_ui/static/assets/TomoService-e9741d6a.js +1 -0
  62. daiquiri_ui/static/assets/TomoSinogram-dce5808e.js +1 -0
  63. daiquiri_ui/static/assets/TomoTiling-04701bb7.js +69 -0
  64. daiquiri_ui/static/assets/TwoD-fee9523f.js +3 -0
  65. daiquiri_ui/static/assets/TwoDObject-2f30deac.js +1 -0
  66. daiquiri_ui/static/assets/TwoDObjectList-458e4824.js +1 -0
  67. daiquiri_ui/static/assets/{UseMouseModeInteraction-9b6c111c.js → UseMouseModeInteraction-51c6269c.js} +1 -1
  68. daiquiri_ui/static/assets/VLineRoi-b38fe841.js +1 -0
  69. daiquiri_ui/static/assets/{VSegment-5d77576e.js → VSegment-f0d42c9a.js} +2 -2
  70. daiquiri_ui/static/assets/VSegmentRoi-d5e035cc.js +1 -0
  71. daiquiri_ui/static/assets/{VideoStream-b33f5afc.js → VideoStream-a5200b21.js} +1 -1
  72. daiquiri_ui/static/assets/{VisViewpointRestore-3a80fbce.js → VisViewpointRestore-4aa338ea.js} +3 -3
  73. daiquiri_ui/static/assets/{WorldScale-862ee5ba.js → WorldScale-23bd1dfb.js} +1 -1
  74. daiquiri_ui/static/assets/{ZoomPanCanvas-1365066d.js → ZoomPanCanvas-23b61dbb.js} +1 -1
  75. daiquiri_ui/static/assets/{colormap-0981f7dc.js → colormap-6e43299c.js} +1 -1
  76. daiquiri_ui/static/assets/fontawesomemore-webfont-6ae56ae3.woff2 +0 -0
  77. daiquiri_ui/static/assets/{geometry-252a228f.js → geometry-cd448ec1.js} +1 -1
  78. daiquiri_ui/static/assets/hooks-171c0765.js +1 -0
  79. daiquiri_ui/static/assets/{hooks-e8b12550.js → hooks-e0d9229c.js} +1 -1
  80. daiquiri_ui/static/assets/index-779a56ef.css +9 -0
  81. daiquiri_ui/static/assets/{index-19c84627.js → index-a9bb7636.js} +7 -7
  82. daiquiri_ui/static/assets/index-b3c0133a.js +3576 -0
  83. daiquiri_ui/static/assets/{plotly-basic-4f8b68a8.js → plotly-basic-ccc5794d.js} +1 -1
  84. daiquiri_ui/static/assets/{plotly-gl2d-14b9dcce.js → plotly-gl2d-345cb34a.js} +1 -1
  85. daiquiri_ui/static/assets/store-5d136a2c.js +1 -0
  86. daiquiri_ui/static/assets/{types-0be7083b.js → types-c366a377.js} +1 -1
  87. daiquiri_ui/static/index.html +2 -2
  88. daiquiri_ui/static/meta.json +1 -1
  89. {daiquiri_ui-2025.12.5.dist-info → daiquiri_ui-2026.2.0.dist-info}/METADATA +1 -1
  90. daiquiri_ui-2026.2.0.dist-info/RECORD +134 -0
  91. {daiquiri_ui-2025.12.5.dist-info → daiquiri_ui-2026.2.0.dist-info}/WHEEL +1 -1
  92. daiquiri_ui/static/assets/Anchor-f3716b7b.js +0 -1
  93. daiquiri_ui/static/assets/AutoscaleOption-e2ee098d.js +0 -1
  94. daiquiri_ui/static/assets/DraggableRect-8e897252.js +0 -1
  95. daiquiri_ui/static/assets/DropdownButton-9a594aef.js +0 -1
  96. daiquiri_ui/static/assets/DropdownDetector-705d3a9d.js +0 -1
  97. daiquiri_ui/static/assets/EditorTree-792b2d33.js +0 -1
  98. daiquiri_ui/static/assets/H5Viewer-6c3d85e4.js +0 -1
  99. daiquiri_ui/static/assets/HSegment-26c3fd51.js +0 -43
  100. daiquiri_ui/static/assets/HardwareButton-905ce384.js +0 -1
  101. daiquiri_ui/static/assets/Hdf5Plot-7b8f8e0f.js +0 -1
  102. daiquiri_ui/static/assets/Image-c1578ac2.js +0 -1
  103. daiquiri_ui/static/assets/Label-7daca8b6.js +0 -1
  104. daiquiri_ui/static/assets/NewScanButton-3ccc3031.js +0 -1
  105. daiquiri_ui/static/assets/NewScanButton-ed1679d8.js +0 -1
  106. daiquiri_ui/static/assets/OptionsProcess-9e8d1dd6.js +0 -1
  107. daiquiri_ui/static/assets/ParametersList-39837f0d.js +0 -1
  108. daiquiri_ui/static/assets/RectRoi-a627d206.js +0 -1
  109. daiquiri_ui/static/assets/RulerButton-ebbb7ca3.js +0 -139
  110. daiquiri_ui/static/assets/SampleDCList-03813f5f.js +0 -1
  111. daiquiri_ui/static/assets/SampleRegistration-6fad78fb.js +0 -1
  112. daiquiri_ui/static/assets/SavingButton-a220fa1e.js +0 -1
  113. daiquiri_ui/static/assets/ScanPlot0d-c78ff27c.js +0 -1
  114. daiquiri_ui/static/assets/ScanPlot0dValue-daa69216.js +0 -1
  115. daiquiri_ui/static/assets/ScanPlot1d-bdb2fdb1.js +0 -1
  116. daiquiri_ui/static/assets/ScanPlot1d-c0e49d26.js +0 -1
  117. daiquiri_ui/static/assets/ScanValue-a38a2ca1.js +0 -1
  118. daiquiri_ui/static/assets/SceneScale-47e8e288.js +0 -1
  119. daiquiri_ui/static/assets/SchemaForm-4a3d737e.js +0 -1
  120. daiquiri_ui/static/assets/TomoAlign-19546c0c.js +0 -5
  121. daiquiri_ui/static/assets/TomoBeamShaping-303f1af7.js +0 -1
  122. daiquiri_ui/static/assets/TomoDetector-42a6e14c.js +0 -1
  123. daiquiri_ui/static/assets/TomoDetectorView-bc556465.js +0 -64
  124. daiquiri_ui/static/assets/TomoHolo-dc83668f.js +0 -1
  125. daiquiri_ui/static/assets/TomoReconstructedSinogram-3aba7e83.js +0 -191
  126. daiquiri_ui/static/assets/TomoScanInfo-7235514b.js +0 -1
  127. daiquiri_ui/static/assets/TomoSinogram-3202ac53.js +0 -1
  128. daiquiri_ui/static/assets/TomoTiling-42ab8b24.js +0 -69
  129. daiquiri_ui/static/assets/TwoD-a488b0f5.js +0 -3
  130. daiquiri_ui/static/assets/TwoDObject-fbaffc6f.js +0 -1
  131. daiquiri_ui/static/assets/TwoDObjectList-7de7fa1d.js +0 -1
  132. daiquiri_ui/static/assets/VLineRoi-75cfdd39.js +0 -1
  133. daiquiri_ui/static/assets/colors-5bf0897d.js +0 -1
  134. daiquiri_ui/static/assets/fontawesomemore-webfont-97d0220a.woff2 +0 -0
  135. daiquiri_ui/static/assets/hooks-e7539055.js +0 -1
  136. daiquiri_ui/static/assets/index-4cf586ed.js +0 -3576
  137. daiquiri_ui/static/assets/index-f085dfca.css +0 -9
  138. daiquiri_ui/static/assets/store-2462c975.js +0 -1
  139. daiquiri_ui/static/resources/shaders/compare.frag.glsl +0 -386
  140. daiquiri_ui/static/resources/shaders/compare.vert.glsl +0 -11
  141. daiquiri_ui-2025.12.5.dist-info/RECORD +0 -128
  142. {daiquiri_ui-2025.12.5.dist-info → daiquiri_ui-2026.2.0.dist-info}/licenses/LICENSE +0 -0
  143. {daiquiri_ui-2025.12.5.dist-info → daiquiri_ui-2026.2.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,139 @@
1
+ import{P as S,r as b,j as e,aH as j,as as K,B as ee,aU as H,ag as z,bZ as ae,aX as N,b5 as O,aV as V,aW as _,b_ as L,aG as te,aL as $}from"./index-b3c0133a.js";import{O as X,h as T,b as U,Q}from"./index-a9bb7636.js";import{t as q}from"./QtyHelper-8429914f.js";import{k as Z}from"./hooks-171c0765.js";import{c as Y}from"./Label-9d8979b3.js";import{A as E}from"./Anchor-0b4a3d33.js";import{u as oe}from"./UseMouseModeInteraction-51c6269c.js";import{a as ne}from"./types-c366a377.js";const se={id:S.string,toggleLabel:S.string,href:S.string,target:S.string,onClick:S.func,title:S.node.isRequired,type:S.string,disabled:S.bool,align:ne,menuRole:S.string,renderMenuOnMount:S.bool,rootCloseEvent:S.string,flip:S.bool,bsPrefix:S.string,variant:S.string,size:S.string},B=b.forwardRef(({id:u,bsPrefix:a,size:t,variant:n,title:h,type:l="button",toggleLabel:x="Toggle dropdown",children:o,onClick:s,href:i,target:r,menuRole:v,renderMenuOnMount:g,rootCloseEvent:c,flip:f,...p},m)=>e.jsxs(j,{ref:m,...p,as:K,children:[e.jsx(ee,{size:t,variant:n,disabled:p.disabled,bsPrefix:a,href:i,target:r,onClick:s,type:l,children:h}),e.jsx(j.Toggle,{split:!0,id:u,size:t,variant:n,disabled:p.disabled,childBsPrefix:a,children:e.jsx("span",{className:"visually-hidden",children:x})}),e.jsx(j.Menu,{role:v,renderOnMount:g,rootCloseEvent:c,flip:f,children:o})]}));B.propTypes=se;B.displayName="SplitButton";const re=B;class ie extends V{constructor(){super({uniforms:{color:{value:new _},gapColor:{value:new _},dashSize:{value:0},gapSize:{value:0},scaleX:{value:0},scaleY:{value:0},origin:{value:new z},direction:{value:new z},lineWidth:{value:0}},vertexShader:`
2
+ uniform float scaleX; // signed scale
3
+ uniform float scaleY; // signed scale
4
+ uniform vec2 origin;
5
+ uniform vec2 direction;
6
+ out vec2 pixelCoord;
7
+
8
+ void main() {
9
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
10
+ vec2 p = vec2(position.x, position.y) - origin;
11
+ float l = dot(p, direction);
12
+ float d = dot(p, vec2(-direction.y, direction.x));
13
+ float scale = (abs(scaleX) + abs(scaleY)) * 0.5;
14
+ pixelCoord = vec2(l, d / scale);
15
+ }
16
+ `,fragmentShader:`
17
+ uniform vec4 color;
18
+ uniform vec4 gapColor;
19
+ uniform float gapSize;
20
+ uniform float dashSize;
21
+ uniform float lineWidth;
22
+
23
+ in vec2 pixelCoord;
24
+
25
+ void main() {
26
+ float alpha;
27
+ if (lineWidth >= 1.0) {
28
+ alpha = smoothstep(0.5, 0.0, abs(pixelCoord.y) - lineWidth * 0.5);
29
+ } else {
30
+ // simulate line thiner than 1px with alpha
31
+ alpha = lineWidth;
32
+ }
33
+
34
+ if (dashSize == 0.0) {
35
+ gl_FragColor = vec4(color.r, color.g, color.b, alpha * color.a);
36
+ return;
37
+ }
38
+
39
+ float dist = abs(pixelCoord.x);
40
+ dist = mod(dist, (dashSize + gapSize));
41
+ if (dist <= dashSize) {
42
+ gl_FragColor = vec4(color.r, color.g, color.b, alpha * color.a);
43
+ } else {
44
+ gl_FragColor = vec4(gapColor.r, gapColor.g, gapColor.b, alpha * gapColor.a);
45
+ }
46
+ }
47
+ `})}}H({LineWithDataDashMaterial:ie});function W(u){const{p1:a,p2:t,lineWidth:n=1,color:h="black",gapColor:l,dashSize:x=0,gapSize:o=x,opacity:s=1,zIndex:i=0}=u,r=b.useRef(null),v=Z(),[g,c,f]=b.useMemo(()=>{const p=new z(t[0]-a[0],t[1]-a[1]).normalize(),d=new z(-p.y,p.x).multiplyScalar(n+1),y=new ae;return y.moveTo(a[0]-d.x,a[1]-d.y),y.lineTo(a[0]+d.x,a[1]+d.y),y.lineTo(t[0]+d.x,t[1]+d.y),y.lineTo(t[0]-d.x,t[1]-d.y),y.closePath(),[y,new z(a[0],a[1]),p]},[a,t,n]);return b.useEffect(()=>{const p=Y(h,s),m=Y(l??"transparent",s);if(r.current){const d=r.current.uniforms;d.color.value=p,d.gapColor.value=m,d.dashSize.value=x,d.gapSize.value=o,d.origin.value=c,d.direction.value=f,d.lineWidth.value=n,N()}},[h,l,x,o,s,c,f,n]),O(({camera:p})=>{if(r.current===null)return;const m=p.scale.x/v.sx,d=p.scale.y/v.sy,y=r.current.uniforms;y.scaleX.value=m,y.scaleY.value=d,N()}),e.jsx("group",{"position-z":i,children:e.jsxs("mesh",{children:[e.jsx("ambientLight",{}),e.jsx("shapeGeometry",{attach:"geometry",args:[g]}),e.jsx("lineWithDataDashMaterial",{attach:"material",transparent:!0,ref:r})]})})}class le extends V{constructor(){super({uniforms:{color:{value:new _},gapColor:{value:new _},radius:{value:0},startAngle:{value:0},angleRange:{value:0},dashSize:{value:0},gapSize:{value:0},scaleX:{value:0},scaleY:{value:0},lineWidth:{value:0}},vertexShader:`
48
+ uniform float scaleX; // signed scale
49
+ uniform float scaleY; // signed scale
50
+ out vec2 pixelCoord;
51
+ // out vec2 dataCoord;
52
+
53
+ void main() {
54
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
55
+ vec2 pixelScale = abs(vec2(scaleX, scaleY));
56
+ // dataCoord = vec2(position.x, position.y);
57
+ pixelCoord = vec2(position.x, position.y) / pixelScale;
58
+ }
59
+ `,fragmentShader:`
60
+ uniform vec4 color;
61
+ uniform vec4 gapColor;
62
+ uniform float gapSize;
63
+ uniform float dashSize;
64
+ uniform float lineWidth;
65
+ uniform float scaleX; // signed scale
66
+ uniform float scaleY; // signed scale
67
+ uniform float radius;
68
+ uniform float startAngle;
69
+ uniform float angleRange;
70
+ in vec2 pixelCoord;
71
+
72
+ const float M_PI = 3.1415926535897932384626433832795;
73
+ const float AA_DASH = 0.5;
74
+
75
+ /**
76
+ * Antialiasing following the line of dash and gap.
77
+ *
78
+ * The distances have to be in pixel.
79
+ */
80
+ vec4 aa_dash_gap(float dist, float alpha, float dashSize, float gapSize) {
81
+ dist = mod(dist, (gapSize + dashSize));
82
+ float sd1 = (dist < dashSize) ? dist : dist - (dashSize + gapSize);
83
+ float sd2 = -(dist - dashSize);
84
+ if (abs(sd1) <= AA_DASH || abs(sd2) <= AA_DASH) {
85
+ if (abs(sd1) < abs(sd2)) {
86
+ float c = (sd1 + AA_DASH) * (0.5 / AA_DASH);
87
+ return (
88
+ vec4(color.r, color.g, color.b, alpha * color.a) * c
89
+ + vec4(gapColor.r, gapColor.g, gapColor.b, alpha * gapColor.a) * (1.0 - c)
90
+ );
91
+ } else {
92
+ float c = (sd2 + AA_DASH) * (0.5 / AA_DASH);
93
+ return (
94
+ vec4(color.r, color.g, color.b, alpha * color.a) * c
95
+ + vec4(gapColor.r, gapColor.g, gapColor.b, alpha * gapColor.a) * (1.0 - c)
96
+ );
97
+ }
98
+ }
99
+ if (dist <= dashSize) {
100
+ return vec4(color.r, color.g, color.b, alpha * color.a);
101
+ }
102
+ return vec4(gapColor.r, gapColor.g, gapColor.b, alpha * gapColor.a);
103
+ }
104
+
105
+ void main() {
106
+ float r = length(pixelCoord);
107
+ float s = (abs(scaleX) + abs(scaleY)) * 0.5;
108
+ float ss = 1.0 / s;
109
+ float d = abs(r - radius * ss) - lineWidth * 0.5;
110
+ if (d > 1.5) {
111
+ discard;
112
+ }
113
+
114
+ float sAngleRange = sign(angleRange);
115
+ float nAngleRange = abs(angleRange);
116
+ float rawA = atan(pixelCoord.x, pixelCoord.y);
117
+ float aa = mod(sAngleRange * (rawA - startAngle) + 8.0 * M_PI, 2.0 * M_PI);
118
+
119
+ if (nAngleRange < 2.0 * M_PI && aa < 0.0 || aa > nAngleRange) {
120
+ discard;
121
+ }
122
+
123
+ float alpha;
124
+ if (lineWidth >= 1.0) {
125
+ alpha = smoothstep(0.25, 0.0, d);
126
+ } else {
127
+ // simulate line thiner than 1px with alpha
128
+ alpha = lineWidth;
129
+ }
130
+
131
+ if (dashSize == 0.0) {
132
+ gl_FragColor = vec4(color.r, color.g, color.b, alpha * color.a);
133
+ return;
134
+ }
135
+
136
+ float dist = aa * radius;
137
+ gl_FragColor = aa_dash_gap(dist * ss, alpha, dashSize * ss, gapSize * ss);
138
+ }
139
+ `})}}H({ArcDashMaterial:le});function ce(u){const{center:a,radius:t,startAngle:n,angleRange:h,lineWidth:l=1,color:x="black",gapColor:o,dashSize:s=0,gapSize:i=s,opacity:r=1,zIndex:v=0}=u,g=b.useRef(null),c=Z();return b.useEffect(()=>{const f=Y(x,r),p=Y(o??"transparent",r);if(g.current){const m=g.current.uniforms;m.color.value=f,m.radius.value=t,m.startAngle.value=((n+180)%360-180)*Math.PI/180,m.angleRange.value=h*Math.PI/180,m.gapColor.value=p,m.dashSize.value=s,m.gapSize.value=i,m.lineWidth.value=l,N()}},[x,t,n,h,o,s,i,r,l]),O(({camera:f})=>{if(g.current===null)return;const p=f.scale.x/c.sx,m=f.scale.y/c.sy,d=g.current.uniforms;d.scaleX.value=p,d.scaleY.value=m}),e.jsx("group",{position:[a[0],a[1],v],children:e.jsxs("mesh",{children:[e.jsx("ambientLight",{}),e.jsx("planeGeometry",{attach:"geometry",args:[(t+l)*2,(t+l)*2,1,1]}),e.jsx("arcDashMaterial",{attach:"material",transparent:!0,ref:g})]})})}function de(u){const{geometry:a,onGeometryChanged:t,zIndex:n,lineWidth:h=1,color:l="blue",opacity:x=1,readOnly:o=!1,visible:s=!0}=u,{x:i,y:r,angle:v,angleRange:g,radius:c}=a,f=v*Math.PI/180,p=(v-g*.5)*Math.PI/180,m=(v+g*.5)*Math.PI/180,d={x:i+Math.sin(p)*c,y:r+Math.cos(p)*c},y={x:i+Math.sin(m)*c,y:r+Math.cos(m)*c},D={x:i+Math.sin(f)*c*.5,y:r+Math.cos(f)*c*.5},P=`${g.toFixed(2)} deg`,R=10*c/(Math.PI*18),A=b.useCallback((M,w)=>{const I=new z(M.x-a.x,M.y-a.y),k=Math.atan2(I.x,I.y)*180/Math.PI,F=L(a.angle-a.angleRange*.5,k);t==null||t({...a,radius:I.length(),angle:a.angle+F*.5,angleRange:a.angleRange-F},w)},[a,t]),C=b.useCallback((M,w)=>{const I=new z(M.x-a.x,M.y-a.y),k=Math.atan2(I.x,I.y)*180/Math.PI,F=L(a.angle+a.angleRange*.5,k);t==null||t({...a,radius:I.length(),angle:a.angle+F*.5,angleRange:a.angleRange+F},w)},[a,t]);return s?e.jsxs(e.Fragment,{children:[e.jsx(ce,{center:[i,r],radius:c,startAngle:v-g*.5,angleRange:g,lineWidth:h,color:l,opacity:x,gapColor:"#F0F0F0",dashSize:R,gapSize:R,zIndex:n}),e.jsx(W,{p1:[i,r],p2:[d.x,d.y],lineWidth:h,color:l,opacity:x,zIndex:n}),e.jsx(W,{p1:[i,r],p2:[y.x,y.y],lineWidth:h,color:l,opacity:x,zIndex:n}),e.jsx(E,{geometry:{x:i,y:r},onGeometryChanged:(M,w)=>{t==null||t({...u.geometry,x:M.x,y:M.y},w)},color:l,readOnly:o,opacity:x,zIndex:n}),e.jsx(E,{geometry:d,onGeometryChanged:A,color:l,readOnly:o,opacity:x,zIndex:n}),e.jsx(E,{geometry:y,onGeometryChanged:C,color:l,readOnly:o,opacity:x,zIndex:n}),e.jsx(X,{x:D.x,y:D.y,style:{zIndex:100},center:!0,children:e.jsx("div",{className:"text-light p-1 rounded",style:{backgroundColor:"#000000A0"},children:P})})]}):e.jsx(e.Fragment,{})}function J(u){const t=10**Math.ceil(Math.log10(u)),n=u/t;return n>=1?Number(t):n>=.5?.5*t:n>=.25?.25*t:n>=.1?.1*t:u}function ue(u){const{data:a,plotUnit:t}=u,[n,h]=a,l=U(),{width:x}=l.canvasSize,o=Q(c=>{const f=l.getVisibleDomains(c),p=f.xVisibleDomain[1]-f.xVisibleDomain[0];return Math.abs(p)},[x]),s=b.useMemo(()=>J(o/15),[o]),i=n.distanceTo(h),r=n.clone().add(h).multiplyScalar(.5);function v(c,f){return f?f==="px"?`${c.toFixed(2)} px`:q(new $(c,f)).toPrec(.01).toString():c.toFixed(2)}const g=v(i,t);return e.jsxs(e.Fragment,{children:[e.jsx(W,{p1:[n.x,n.y],p2:[h.x,h.y],color:"red",gapColor:"#F0F0F0",dashSize:s,gapSize:s,lineWidth:2,zIndex:3,opacity:.75}),e.jsx(X,{x:r.x,y:r.y,style:{zIndex:100},center:!0,children:e.jsx("div",{className:"bg-dark text-light p-1 rounded",children:g})})]})}function ge(u){const{data:a,plotUnit:t}=u,[n,h]=a,l=U(),{width:x}=l.canvasSize,o=Q(A=>{const C=l.getVisibleDomains(A),M=C.xVisibleDomain[1]-C.xVisibleDomain[0];return Math.abs(M)},[x]),s=b.useMemo(()=>J(o/15),[o]),i=n,r=new te(h.x,n.y),v=r,g=h,c=Math.abs(i.x-r.x),f=Math.abs(v.y-g.y),p=i.clone().add(r).multiplyScalar(.5),m=v.clone().add(g).multiplyScalar(.5);function d(A,C){return C?C==="px"?`${A.toFixed(2)} px`:q(new $(A,C)).toPrec(.01).toString():A.toFixed(2)}const y=d(c,t),D=d(f,t),P=c>f*.05,R=f>c*.05;return e.jsxs(e.Fragment,{children:[P&&e.jsx(W,{p1:[i.x,i.y],p2:[r.x,r.y],color:"red",gapColor:"#F0F0F0",dashSize:s,gapSize:s,lineWidth:2,zIndex:3,opacity:.75}),R&&e.jsx(W,{p1:[v.x,v.y],p2:[g.x,g.y],color:"red",gapColor:"#F0F0F0",dashSize:s,gapSize:s,lineWidth:2,zIndex:3,opacity:.75}),P&&e.jsx(X,{x:p.x,y:p.y,style:{zIndex:100},center:!0,children:e.jsx("div",{className:"bg-dark text-light p-1 rounded",children:y})}),R&&e.jsx(X,{x:m.x,y:m.y,style:{zIndex:100},center:!0,children:e.jsx("div",{className:"bg-dark text-light p-1 rounded",children:D})})]})}function G(u,a){const t=new z(a.x-u.x,a.y-u.y),n=Math.atan2(t.x,t.y)*180/Math.PI;return{x:u.x,y:u.y,radius:t.length(),angle:n,angleRange:30}}function be(u){const{mouseMode:a,disabled:t=!1,plotUnit:n}=u,h=a==="measure-angle",[l,x]=b.useState({x:0,y:0,radius:0,angle:0,angleRange:0}),o=oe();return e.jsxs(e.Fragment,{children:[e.jsx(T,{id:"ruler3-selection-tool",disabled:a!=="measure-angle"||t,onSelectionChange:s=>{if(s===void 0)return;const i=G(s.data[0],s.data[1]);x(i)},onSelectionStart:()=>{o==null||o.actions.captureMouseInteraction()},onSelectionEnd:()=>{o==null||o.actions.releaseMouseInteraction()},onValidSelection:s=>{const i=G(s.data[0],s.data[1]);x(i)},children:s=>e.jsx(e.Fragment,{})}),h&&e.jsx(de,{geometry:l,onGeometryChanged:s=>{x(s)},color:"red",lineWidth:2,zIndex:2,opacity:.75}),e.jsx(T,{id:"ruler-selection-tool",disabled:a!=="measure-distance"||t,onSelectionStart:()=>{o==null||o.actions.captureMouseInteraction()},onSelectionEnd:()=>{o==null||o.actions.releaseMouseInteraction()},children:s=>e.jsx(ue,{...s,plotUnit:n})}),e.jsx(T,{id:"ruler2-selection-tool",disabled:a!=="measure-ortho"||t,onSelectionStart:()=>{o==null||o.actions.captureMouseInteraction()},onSelectionEnd:()=>{o==null||o.actions.releaseMouseInteraction()},children:s=>e.jsx(ge,{...s,plotUnit:n})})]})}function Me(u){const{mouseModeInteraction:a,disabled:t=!1,dropDirection:n,extraMouseModes:h={},onClear:l,children:x}=u,{mouseMode:o,setOrResetMouseMode:s,setMouseMode:i,resetMouseMode:r}=a,[v,g]=b.useState("measure-distance"),c={"measure-distance":"fa-ruler","measure-ortho":"fa-ruler-combined","measure-angle":"fam-protractor"};b.useEffect(()=>{o in h&&g(o)},[h,o]);const f=h[v]??c[v]??"",p=o==="measure-distance"||o==="measure-ortho"||o==="measure-angle"||o in h;return e.jsxs(re,{title:e.jsx("i",{className:`fa ${f} fa-lg"`}),variant:p?"primary":"secondary",align:{lg:"start"},className:n==="up"?"dropup":void 0,autoClose:!0,onClick:()=>{p?r():s(v)},disabled:t,children:[e.jsxs(j.Item,{active:o==="measure-distance",onClick:()=>{g("measure-distance"),i("measure-distance")},title:"Measure the distance between 2 points",children:[e.jsx("i",{className:"fa fa-fw fa-ruler fa-lg"})," Measure distance"]}),e.jsxs(j.Item,{active:o==="measure-ortho",onClick:()=>{g("measure-ortho"),i("measure-ortho")},title:"Measure the orthogonal distance between 2 points",children:[e.jsx("i",{className:"fa fa-fw fa-ruler-combined fa-lg"})," Measure orthogonal"]}),e.jsxs(j.Item,{active:o==="measure-angle",onClick:()=>{g("measure-angle"),i("measure-angle")},title:"Measure an angle",children:[e.jsx("i",{className:"fa fa-fw fam-protractor fa-lg"})," Measure angle"]}),x,e.jsx(j.Divider,{}),e.jsxs(j.Item,{onClick:()=>{l==null||l(),r()},title:"Clear measure indicators, if some",children:[e.jsx("i",{className:"fa fa-fw fa-xmark"})," Clear indicators"]})]})}export{W as L,Me as R,re as S,be as a};
@@ -0,0 +1 @@
1
+ import{j as a,r as l,dX as c,G as i,Z as d,dS as p,$ as m,c as u,V as S,m as n,H as C,aF as f}from"./index-b3c0133a.js";import{S as x}from"./SavingButton-c3efc92c.js";function L(e){const s=c();return a.jsx(i,{children:a.jsx(d,{children:a.jsxs("div",{className:"object",children:[a.jsxs("h5",{children:["Sample: ",s?s.name:"Create a sample first",a.jsx(p,{sampleid:(s==null?void 0:s.sampleid)??0,disabled:!e.operator}),a.jsx(x,{})]}),a.jsx(m,{sampleid:(s==null?void 0:s.sampleid)??0,pages:1,page:0,fetching:!1,per_page:15,total:0,filter:!0,scan:!0,createScalarMap:!1,selectable:e.selectable,selected:e.selected,actions:e.actions})]})})})}function j(e){return a.jsx(l.Suspense,{fallback:"Loading...",children:a.jsx(L,{...e})})}function E(e,s){return{operator:S.selector("operator",e),selected:n.selector("selectedDataCollections",e)}}function h(e,s){return{actions:{addSelection:t=>n.dispatch("SELECT_DATA_COLLECTION",t),removeSelection:t=>n.dispatch("UNSELECT_DATA_COLLECTION",t),resetSelection:()=>n.dispatch("RESET_DATA_COLLECTION_SELECTION")}}}const T=u(E,h)(j);function N(e){const{providers:s,yamlNode:t,selectable:o,...r}=e;return C(t,r),f(t,"selectable",o),a.jsx(T,{providers:s,selectable:o})}export{N as default};
@@ -0,0 +1 @@
1
+ var ne=Object.defineProperty;var oe=(t,s,a)=>s in t?ne(t,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[s]=a;var u=(t,s,a)=>(oe(t,typeof s!="symbol"?s+"":s,a),a);import{o as N,j as e,J as ie,n as V,K as re,E as I,a1 as ce,v as z,ae as le,r as m,T as L,B as H,af as U,ag as w,ah as de,ai as me,aj as Y,b as pe,d as ue,N as xe,F as G,h as D,ak as q,al as fe,am as he,a as ge,an as je,w as ye,c as ve,t as Se,H as we}from"./index-b3c0133a.js";import{u as F,S as M,a as A,B as Ce,T as be}from"./store-5d136a2c.js";import{T as Me,I as Te,R as ke,a as B,$ as Re,m as De,U as Ie,j as Fe,B as Ae,C as Ee,Y as Pe,b as Be}from"./index-a9bb7636.js";import{P as W}from"./SelectionPoint-a2cb4dfc.js";import{L as Le}from"./hooks-171c0765.js";import{C as $}from"./CrossMarker-71cd11cf.js";import{L as Ne}from"./Label-9d8979b3.js";import{f as Ve,H as ze,V as $e}from"./VisViewpointRestore-4aa338ea.js";import{L as Oe}from"./LoadingMessage-03b4fa4f.js";import"./ScreenScale-b2417934.js";function _e({sampleactionpositionid:t}){const{fetch:s}=V();function a(){s(M.delete,{sampleactionpositionid:t})}return e.jsx(re,{id:t,onClick:()=>a(),confirm:!0,show:!0})}function He(t,s){return s.sampleactionpositionid&&e.jsx(_e,{sampleactionpositionid:s.sampleactionpositionid})}function Ue(){const{selectedSampleActionId:t}=F(),s=N(M.getList,t?{sampleactionid:t}:null),a=[{dataField:"id",text:"#"},{dataField:"type",text:"Type"},{dataField:"posx",text:"X"},{dataField:"posy",text:"Y"},{dataField:"",text:"",formatter:He,classes:"text-end"}];return e.jsx(e.Fragment,{children:e.jsx(ie,{keyField:"sampleactionpositionid",data:s.rows||[],columns:a,noDataIndication:"No reference positions",overlay:!0})})}class Ye{constructor(){u(this,"actiontype");u(this,"has_result");u(this,"message");u(this,"positions");u(this,"sampleactionid");u(this,"status")}}class Ge extends I(Ye,{pk:"sampleactionid",key:"SampleAction"}){}const We=ce({path:"/metadata/samples/actions/:sampleactionid",schema:Ge,searchParams:{}});class qe{constructor(){u(this,"matrixid")}}class Ke extends I(qe,{pk:"matrixid",key:"SetReferenceMatrix"}){}const Je=new z({method:"POST",path:"/imageviewer/move/reference/matrix",schema:Ke,searchParams:{}});class Xe{constructor(){u(this,"crop");u(this,"sampleactionid")}}class Qe extends Xe{constructor(){super(...arguments);u(this,"exportid",0)}}class Ze extends I(Qe,{pk:"exportid",key:"ExportToSampleImage"}){}const et=new z({method:"POST",path:"/imageviewer/reference/export",schema:Ze,searchParams:{}});var j=(t=>(t.error="error",t.warning="warning",t.success="success",t.info="info",t))(j||{});function tt({sampleactionid:t,addToast:s}){const{visibleDomain:a}=A(),{fetch:n}=V(),[i,o]=m.useState(!1),[r,c]=m.useState(!1),p=m.useCallback(async()=>{if(t){o(!0);try{await n(Je,{sampleactionid:t}),s({type:j.success,title:"Matrix calculated",text:"Transformation matrix successfully calculated"})}catch(d){const x=await d.response.json();s({type:j.error,title:"Couldn't calculate matrix",text:x.error})}o(!1)}},[t]),l=m.useCallback(async()=>{if(t){c(!0);try{await n(et,{sampleactionid:t,crop:{x:a.xVisibleDomain.map(d=>Math.max(0,Math.round(d))),y:a.yVisibleDomain.map(d=>Math.max(0,Math.round(d)))}}),s({type:j.success,title:"Reference Exported",text:"Exported reference to sample image"})}catch(d){const x=await d.response.json();s({type:j.error,title:"Couldn't export reference to sample image",text:x.error})}c(!1)}},[t]);return e.jsxs(e.Fragment,{children:[e.jsx(L,{tooltip:"Select this reference for coordinate transform",children:e.jsxs(H,{size:"sm",onClick:()=>void p(),disabled:i,children:[i&&e.jsx("i",{className:"fa fa-spinner fa-spin"}),!i&&e.jsx("i",{className:"fa fa-th"})]})}),e.jsx(L,{tooltip:"Export this image transform to the 2d view",children:e.jsxs(H,{size:"sm",onClick:()=>void l(),className:"ms-1",disabled:r,children:[r&&e.jsx("i",{className:"fa fa-spinner fa-spin"}),!r&&e.jsx("i",{className:"fa fa-file-export"})]})})]})}function st(t,s,a,n){return e.jsx(e.Fragment,{children:s.has_result&&e.jsx(tt,{...s,...n})})}function at({sampleid:t,addToast:s}){const{selectedSampleActionId:a,setSelectedSampleActionId:n,setSelectedSampleActionHasResult:i}=F(),o=N(We.getList,t?{actiontype:"reference",sampleid:t}:null),r=[{dataField:"sampleactionid",text:"Id"},{dataField:"status",text:"Status"},{dataField:"message",text:"Message",classes:"text-break"},{dataField:"has_result",text:"Image",formatter:(c,p)=>p.has_result?"Yes":"No"},{text:"",dataField:"",formatter:st,classes:"text-end text-nowrap",formatExtraData:{addToast:s}}];return e.jsx(e.Fragment,{children:e.jsx(le,{keyField:"sampleactionid",data:o.rows||[],columns:r,noDataIndication:"No reference images",selectedItems:a!==void 0?[a]:[],actions:{addSelection:c=>{var d;const{sampleactionid:p}=c;n(p);const l=(d=o.rows)==null?void 0:d.filter(x=>x.sampleactionid===p);l&&l.length>0&&i(l[0].has_result??!1)},removeSelection:c=>{},resetSelection:()=>{}}})})}function nt(t){const{abscissaConfig:s,ordinateConfig:a,title:n,showAxes:i,children:o}=t;return e.jsx(Me,{abscissaConfig:s,ordinateConfig:a,aspect:"equal",title:n,showAxes:i,children:e.jsx(Le,{children:o})})}class ot{constructor(){u(this,"moveid");u(this,"positions")}}class it extends I(ot,{pk:"moveid",key:"MoveToReference"}){}const rt=new z({method:"POST",path:"/imageviewer/move/reference",schema:it,searchParams:{}}),ct={values:new Float32Array([0]),bins:new Float32Array([0,255])};function lt(t){const s={width:256,height:256},[a,n]=m.useState(void 0),[i,o]=m.useState(new U(new w,new w(1,1))),[r,c]=m.useState(ct);return m.useEffect(()=>{async function p(){if(t)try{const l=await Ve(t,"sample_registration","sample_registration"),{histogram:d,layers:x,yDomain:h,zDomain:y}=l,C=new ze(s,x);n(C),c(d),o(new U(new w(h[0],y[0]),new w(h[1],y[1])))}catch{console.log("Could not fetch dataset")}}p()},[t]),{api:a,histogram:r,tilingBox:i}}function dt({sampleactionid:t}){const[s,a]=m.useState(void 0);return m.useEffect(()=>{a(()=>de.create({baseURL:me(),params:{sampleactionid:t},...Y.getOptions()}))},[Y.token,t]),s}function mt(t){const{currentAction:s,setCurrentAction:a,colorMap:n,setColorMap:i,scaleType:o,setScaleType:r,invertColorMap:c,setInvertColorMap:p,setCustomDomain:l,customDomain:d,doMove:x,setDoMove:h}=A(),y=pe(),C=ue(),{dataDomain:E,histogram:P,currentSampleId:b}=t;return e.jsxs(xe,{bg:"cyan",className:"p-2",style:{zIndex:99},children:[e.jsx(G,{children:e.jsx(Ce,{children:e.jsxs(be,{type:"radio",name:"action",value:s,onChange:f=>a(f),className:"me-1",children:[e.jsxs(D,{id:"reference",value:"reference",size:"sm",disabled:!b,children:[e.jsx("i",{className:"fa fa-map-marker me-1"}),"Reference"]}),e.jsxs(D,{id:"poi",value:"poi",size:"sm",disabled:!b,children:[e.jsx("i",{className:"fa fa-map-pin me-1"}),"POI"]}),e.jsxs(D,{id:"pan",value:"pan",size:"sm",children:[e.jsx("i",{className:"fa fa-arrows me-1"}),"Pan"]}),e.jsxs(D,{id:"move",value:"move",size:"sm",disabled:!y||!!C,children:[e.jsx("i",{className:"fa fa-map-marker me-1"}),"Move",e.jsx(L,{tooltip:"Enable Move",children:e.jsx(G.Check,{className:"d-inline ms-1",type:"checkbox",checked:x,value:"1",onChange:()=>h(!x)})})]})]})})}),e.jsx(Te,{dataDomain:E,customDomain:d,scaleType:o,onCustomDomainChange:f=>l(f),histogram:P}),e.jsx(ke,{value:o,onScaleChange:r,options:[B.Linear,B.SymLog,B.Sqrt]}),e.jsx(Re,{value:n,onValueChange:i,invert:c,onInversionChange:()=>p(!c)})]})}function pt(){return e.jsx($,{x:1e3,y:1e3,color:q.primary,sizeInScreen:20,lineWidth:1})}function ut({beam:t}){return e.jsx(e.Fragment,{children:t&&e.jsx($,{x:t[0],y:t[1],color:q.warning,sizeInScreen:20,lineWidth:1})})}function xt({positions:t}){return e.jsx(e.Fragment,{children:t==null?void 0:t.filter(s=>s.type==="reference").map(s=>e.jsxs(e.Fragment,{children:[e.jsx($,{x:s.posx,y:s.posy,color:"magenta",sizeInScreen:20,lineWidth:1},s.sampleactionpositionid),e.jsx(Ne,{color:"magenta",datapos:[s.posx,s.posy],text:`${s.id}`})]}))})}function ft({currentAction:t,setReference:s,move:a}){return e.jsxs(e.Fragment,{children:[t==="reference"&&e.jsx(W,{onClick:n=>void s(Math.round(n.dataPt.x),Math.round(n.dataPt.y))}),t==="pan"&&e.jsxs(e.Fragment,{children:[e.jsx(Ae,{button:Ee.Left}),e.jsx(Pe,{})]}),t==="move"&&e.jsx(W,{onClick:n=>a(Math.round(n.dataPt.x),Math.round(n.dataPt.y))})]})}function ht(){const{getVisibleDomains:t}=Be(),s=fe(r=>r.camera),{setVisibleDomain:a}=A();function n(r){a(r)}const i=m.useCallback(he(n,200),[]),o=t(s);return i(o),null}function gt(t){const{api:s,tilingBox:a,dataDomain:n,sampleactionid:i,referenceBeam:o,addToast:r}=t,{fetch:c,invalidateAll:p}=V(),l=a.getSize(new w),d=a.getCenter(new w),{colorMap:x,scaleType:h,invertColorMap:y,customDomain:C,currentAction:E,setCurrentAction:P,doMove:b}=A(),[f,K]=m.useState(0);m.useEffect(()=>{const g=setInterval(()=>{const v=s.getPendingTilesCount();v!==f&&K(v)},1e3);return()=>{clearTimeout(g)}},[s,f]);const{cameraViewport:J,setCameraViewport:X}=F(),Q=De(C,n),[Z]=Ie(Q,n,h),ee={sampleactionid:i,type:"reference"},T=N(M.getList,ee),te=m.useCallback(async(g,v)=>{const k=T.rows.length>0?Math.max(...T.rows.map(R=>R.id)):0;await c(M.getList.push,{posx:g,posy:v,sampleactionid:i,type:"reference",id:k+1}),p(M.getList),P("pan")},[T]),se=m.useCallback(async(g,v)=>{var k,R,O,_;try{const S=await c(rt,{x:g,y:v,execute:b});r({type:j.info,title:"Move To Poisiton",text:`${(k=S.positions)==null?void 0:k.x.motor}: ${(R=S.positions)==null?void 0:R.x.destination}, ${(O=S.positions)==null?void 0:O.y.motor}: ${(_=S.positions)==null?void 0:_.y.destination}`})}catch(S){const ae=await S.response.json();r({type:j.error,title:"Couldn't move to position",text:ae.error})}},[i,b]);return e.jsx("div",{style:{flex:"1",display:"flex",flexDirection:"column"},children:e.jsxs(nt,{abscissaConfig:{visDomain:[0,l.x]},ordinateConfig:{visDomain:[0,l.y],flip:!0},children:[e.jsx(Oe,{info:f>0?`Waiting for ${f} tiles`:""}),e.jsx($e,{viewpoint:J,setViewpoint:X}),e.jsx("group",{position:[d.x,d.y,0],children:e.jsx(Fe,{size:{width:l.x,height:l.y},api:s,colorMap:x,invertColorMap:y,domain:Z,scaleType:h,displayLowerResolutions:!1,qualityFactor:0})}),e.jsx(ht,{}),e.jsx(ut,{beam:o==null?void 0:o.beam}),e.jsx(xt,{positions:T.rows}),e.jsx(pt,{}),e.jsx(ft,{currentAction:E,setReference:te,move:(...g)=>void se(...g)})]})})}function jt(t){var p,l;const{selectedSampleActionId:s,selectedSampleActionHasResult:a}=F(),n=dt({sampleactionid:s}),{api:i,tilingBox:o,histogram:r}=lt(n),c=[0,254];return s?a?i?e.jsxs(e.Fragment,{children:[e.jsx(mt,{dataDomain:c,histogram:r,...t}),s&&a&&e.jsx(gt,{sampleactionid:s,dataDomain:c,api:i,tilingBox:o,referenceBeam:(l=(p=t.sources)==null?void 0:p["1"])==null?void 0:l.reference,addToast:t.addToast})]}):null:e.jsx("p",{style:{padding:"10px"},children:"Selected reference does not have an image"}):e.jsx("p",{style:{padding:"10px"},children:"Please select a reference image"})}function yt(t){const{currentSampleId:s}=ge(),a=je();return e.jsxs("div",{className:"h-100",style:{display:"flex",flexDirection:"row"},children:[e.jsx("div",{style:{flex:"1 1 70%",display:"flex",flexDirection:"column",backgroundColor:"#efefef",borderRadius:"3px"},children:e.jsx(jt,{...t,currentSampleId:s,addToast:a})}),e.jsxs("div",{style:{flex:"1 1 30%",padding:"0.5rem"},children:[e.jsx(m.Suspense,{fallback:e.jsx("p",{children:"..."}),children:e.jsx(at,{sampleid:s,addToast:a})}),e.jsx(m.Suspense,{fallback:e.jsx("p",{children:"..."}),children:e.jsx(Ue,{})})]})]})}const vt=(t,s)=>{const{sources:a}=s.providers.twod;return{sources:a.selector("results",t)}},St=(t,s)=>({}),wt=ye({twod:Se})(ve(vt,St)(yt));function Pt(t){const{providers:s,yamlNode:a,datacollectionid:n,fileName:i,...o}=t;return we(a,o),e.jsx(wt,{})}export{Pt as default};
@@ -0,0 +1 @@
1
+ import{a as r,x as c,r as p,j as t,k as l,F as n,l as u,R as d,C as m,w as g,c as S,p as h}from"./index-b3c0133a.js";function v(s){const{currentSampleId:a}=r(),{currentSubSampleId:e}=c();return p.useEffect(()=>{s.actions.fetchSaving({sampleid:a,subsampleid:e})},[a,e]),t.jsx(l,{id:"saving",button:t.jsx("i",{className:"fa fa-cog"}),buttonProps:{className:"me-1 float-end",disabled:s.disabled},title:"Saving Configuration",children:t.jsx(n,{children:u.map(s.saving.arguments,(i,o)=>t.jsxs(n.Group,{as:d,children:[t.jsx(n.Label,{column:!0,sm:3,children:o}),t.jsx(m,{children:i})]},o))})})}const x=(s,a)=>({saving:a.providers.app.saving.selector("results",s)}),f=(s,a)=>({actions:{fetchSaving:e=>a.providers.app.saving.fetch(e)}}),j=g({app:h})(S(x,f)(v));export{j as S};
@@ -0,0 +1 @@
1
+ var A=Object.defineProperty;var R=(i,t,s)=>t in i?A(i,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[t]=s;var r=(i,t,s)=>(R(i,typeof t!="symbol"?t+"":t,s),s);import{r as y,bM as m,aj as b,aw as v}from"./index-b3c0133a.js";import{m as E,p as I,g as z,f as D,n as $,o as C}from"./hooks-171c0765.js";function S(i,t,s){return t===0&&i.length===s?i:i.subarray(t,s)}class N{constructor(t,s,o){r(this,"isAborted");r(this,"isFetching");r(this,"isInitialized");r(this,"cache");r(this,"updateCallback");r(this,"scanId");r(this,"description");r(this,"pendingRequest");r(this,"options");this.isAborted=!1,this.isFetching=!1,this.isInitialized=!1,this.pendingRequest=void 0,this.description=void 0,this.options={asSharedArrayBuffer:o.asSharedArrayBuffer??!1},this.updateCallback=t,this.scanId=s,this.cache={};const n=this.initializeLater();Promise.all([n])}async initializeLater(){const t=this.scanId;await m(1e3);try{const s=await b.get(`/scans/data/${t}`,{headers:{"Cache-Control":"no-cache, no-store, must-revalidate",Pragma:"no-cache",Expires:"0"}});this.setupScan(s.data),this.isInitialized=!0}catch(s){this.updateCallback({loading:!1,data:{},errors:[`Error while requesting the scan ${this.scanId}`,`${s}`]}),this.isAborted=!0}}setupScan(t){this.description=t,this.pendingRequest&&this.fetchPendingRequest()}async fetchData(t,s){for(;!this.isInitialized;){if(this.isAborted)return;await m(1e3)}const o={...t,scanId:this.scanId,errors:s},n=[];this.updateCallback({loading:!0,data:Object.fromEntries(t.channelNames.map(a=>{var e;return[a,(e=this.cache[a])==null?void 0:e.ndarray]})),request:o}),t.channelNames.forEach(a=>{var e;if(!(a in this.cache)){const f=(e=this.description)==null?void 0:e.data[a];if(f!==void 0){const l=f.dtype,p=f.shape;E(p);const h=p.reduce((g,c)=>g*c,1);l!==void 0&&(this.cache[a]={dtype:I(l),safeDtype:I(z(l)),shape:p,elementSize:h,raw:void 0,ndarray:void 0,nbItems:0})}}});const u=t.channelNames.map(async a=>{const e=this.cache[a];if(!e||!e.safeDtype){n.push(`channel name '${a}' in not part of the scan`);return}if(t.stop<=t.start){e.ndarray=void 0;return}const f=e.nbItems??0;if(t.stop<=f){const c=S(e.raw,t.start,t.stop);e.ndarray=v(c,[t.stop-t.start,...e.shape]);return}const l=await b.get(`/scans/data/binary/${this.scanId}`,{channel:a,selection:`${f}:${t.stop}`,dtype:"safe"},!0,"arraybuffer").then(c=>c.data).catch(c=>{const w=c instanceof Error?c.message:String(c);n.push(`Error while fetching '${a}': ${w}`)});if(l===void 0)return;const p=D(l,e.safeDtype.numpy);let h;if(this.options.asSharedArrayBuffer?h=$(e.raw,p):h=C(e.raw,p),e.raw=h,e.nbItems=h.length/e.elementSize,e.nbItems<=t.start){e.ndarray=void 0;return}const g=S(h,t.start*e.elementSize,e.nbItems*e.elementSize);e.ndarray=v(g,[e.nbItems-t.start,...e.shape])});await Promise.all(u);const d=n.length===0?void 0:n;this.pendingRequest===void 0?(this.updateCallback({loading:!1,data:Object.fromEntries(t.channelNames.map(a=>{var e;return[a,(e=this.cache[a])==null?void 0:e.ndarray]})),request:o,errors:d}),this.isFetching=!1):this.fetchPendingRequest(d)}fetchPendingRequest(t){if(this.pendingRequest){const s=this.pendingRequest;this.pendingRequest=void 0,this.fetchData(s,t)}}fetch(t){this.isAborted||(this.description!==void 0&&!this.isFetching?(this.isFetching=!0,this.fetchData(t)):this.pendingRequest=t)}abort(){this.isAborted=!0}}function B(i){const[t,s]=y.useState({loading:i.scanId!==void 0,data:{}}),{scanId:o,channelNames:n,start:u,stop:d,asSharedArrayBuffer:a}=i,e=y.useMemo(()=>{if(o!==void 0)return new N(s,o,{asSharedArrayBuffer:a})},[o,a]);return y.useEffect(()=>()=>{e&&e.abort()},[e]),y.useEffect(()=>{e&&n&&u!==void 0&&d!==void 0&&e.fetch({channelNames:n,start:u,stop:d})},[e,JSON.stringify(n),u,d]),t}export{B as u};
@@ -0,0 +1 @@
1
+ var O=Object.defineProperty;var I=(c,n,s)=>n in c?O(c,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):c[n]=s;var S=(c,n,s)=>(I(c,typeof n!="symbol"?n+"":n,s),s);import{r as b,aw as L,j as e,i as z,R as v,C as x,B as m,F as C,l as j,ax as w,ay as H,I as P,G as M,az as V,Q as W,w as $,c as F,s as p,aA as X,a5 as B,aB as U,H as Y}from"./index-b3c0133a.js";import{F as G,z as T,E as K,c as Q}from"./index-a9bb7636.js";import{h as q,i as J,H as Z}from"./H5WebCurvePlot-61b08211.js";import{D as _}from"./DropdownButton-29cc265b.js";import{m as ee}from"./ConnectUtils-3923fa2f.js";import"./types-c366a377.js";const se=[0,1];function te(c){const{x:n,y:s,dataValues:t,size:a,colorMap:l,title:h,onClick:y}=c,A=G(t)||se,g=t.length,N=T(n,g),k=T(s,g),r=b.useMemo(()=>L(t),[t]);return e.jsx(K,{abscissaParams:{value:N},ordinateParams:{value:k},dataArray:r,domain:A,colorMap:l,size:a,onPointClick:y,title:h})}function ae(c){const{data:n,onClick:s}=c,[t]=n;if(t===void 0)return e.jsx("div",{children:"No data. Please select a scan."});const{marker:a,x:l,y:h}=t,{color:y,colorscale:A,size:g}=a;return q(y)?e.jsx(te,{x:l,y:h,dataValues:y,colorMap:A,size:g,onClick:s,title:t.name}):e.jsx("div",{children:"Values are undefined. Please select a series."})}function ce(c){const{data:n,onClick:s}=c;return n.length===0?e.jsx("div",{children:"No data to display"}):J(n)?e.jsx(ae,{data:n,onClick:s}):e.jsx(Z,{data:n,insetLegend:!0,onClick:s,curveType:Q.LineAndGlyphs})}function ne(c){const n=s=>{c.onChange({type:s.target.name,axis:s.target.value})};return e.jsx(_,{title:"Axes",children:e.jsxs(z,{className:"series-select",children:[e.jsxs(v,{children:[e.jsx(x,{xs:1,children:e.jsx(m,{size:"sm",onClick:()=>c.unselectAxes("x"),className:"mx-auto",children:"x"})}),e.jsx(x,{xs:1,children:e.jsx(m,{size:"sm",onClick:()=>c.unselectAxes("y"),className:"mx-auto",children:"y"})}),e.jsx(x,{className:"text-end",children:e.jsx(m,{size:"sm",onClick:()=>c.resetAxes(),children:"Reset"})})]}),c.series.map(s=>e.jsxs(v,{children:[e.jsx(x,{xs:1,children:e.jsx(C.Check,{checked:s===c.selected.x,name:"x",type:"radio",onChange:n,value:s,className:"my-auto"})}),e.jsx(x,{xs:1,children:e.jsx(C.Check,{checked:s===c.selected.y,name:"y",type:"radio",onChange:n,value:s,className:"my-auto"})}),e.jsx(C.Label,{column:!0,className:"justify-content-start col-10",children:s})]},s))]})})}function ie(c){const n=s=>{c.onChange(s.target.name,s.target.checked)};return e.jsx(_,{title:"Series",children:e.jsxs(z,{className:"series-select",children:[e.jsx("div",{className:"text-end",children:e.jsx(m,{size:"sm",onClick:()=>c.resetSeries(),children:"Reset"})}),c.series.map(s=>e.jsx(C.Check,{className:"justify-content-start",checked:s in c.selected,type:"checkbox",id:`${s}-check`,label:s,onChange:n,name:s},s))]})})}function re(c,n){return c.length===n.length?{xData:c,yData:n}:c.length>n.length?{xData:c.slice(0,n.length),yData:n}:{xData:c,yData:n.slice(0,c.length)}}let oe=class extends b.Component{constructor(s){super(s);S(this,"doSetPageSize");S(this,"doSetPage");S(this,"pageRef");S(this,"onClick",s=>{s!==void 0&&this.props.actions.selectPoint(s)});S(this,"setPageSize",s=>{this.doSetPage(1),this.doSetPageSize(Number.parseInt(s.target.value,10))});S(this,"setPage",s=>{this.doSetPage(Number.parseInt(s.target.value,10),!0)});S(this,"selectSeries",(s,t)=>{t?this.props.actions.selectSeries(s):this.props.actions.unselectSeries(s)});this.doSetPageSize=j.debounce(this.props.actions.setPageSize,500),this.doSetPage=j.debounce(this.props.actions.setPage,500),this.pageRef=b.createRef()}componentDidMount(){const{options:s={},actions:t}=this.props,{preSelectedXAxis:a,preSelectedSeries:l}=s;t.setFollow(),a&&t.selectAxes({type:"x",axis:a}),l&&(Array.isArray(l)?l.forEach(h=>t.selectSeries(h)):t.selectSeries(l))}componentDidUpdate(s){const t=this.props.data[this.props.selectedScan]||{},a=s.data[s.selectedScan]||{};t.page!==a.page&&this.pageRef.current&&(this.pageRef.current.value=`${t.page||1}`),s.selectedSeries!==this.props.selectedSeries&&this.props.actions.setParams({scalars:[...this.props.selectedAxes.x?[this.props.selectedAxes.x]:[],...this.props.selectedAxes.y?[this.props.selectedAxes.y]:[],...Object.keys(this.props.selectedSeries)]},!0),s.selectedAxes!==this.props.selectedAxes&&this.props.actions.setParams({scalars:[...this.props.selectedAxes.x?[this.props.selectedAxes.x]:[],...this.props.selectedAxes.y?[this.props.selectedAxes.y]:[],...Object.keys(this.props.selectedSeries)]},!0)}render(){const s=w(this.props.scans);if(s===null)return e.jsx("span",{children:"No scan loaded."});const t=this.props.selectedScan||s,a=this.props.data[t]||{};if(!a.data)return e.jsx("span",{children:"Waiting for scan data"});const l=Object.keys(this.props.selectedSeries).length>0?Object.keys(this.props.selectedSeries):a.axes.ys.scalars.filter(r=>!r.startsWith("timer")).slice(0,2),h=[];if(a.axes.xs.length===2&&!this.props.selectedAxes.x||this.props.selectedAxes.x&&this.props.selectedAxes.y){let r=[],i=[];if(this.props.selectedAxes.x&&this.props.selectedAxes.y){const o=a.data[this.props.selectedAxes.x],d=a.data[this.props.selectedAxes.y];if(!o||!d)return e.jsxs("span",{children:["The selected axes are not valid for the current scan"," ",e.jsx(m,{size:"sm",onClick:()=>this.props.actions.resetAxes(),children:"Reset"})]});r=o.data,i=d.data}else{const o=a.data[a.axes.xs[0]],d=a.data[a.axes.xs[1]];r=o?o.data:[],i=d?d.data:[]}j.each(l,o=>{var f;if(!a.axes.ys.scalars.includes(o))return;const d=a.data[o];if(d){const u={x:r,y:i,type:"scattergl",name:d.name,mode:"markers",text:(f=d.data)==null?void 0:f.map(E=>E.toPrecision(4)),marker:{size:10,color:d.data&&[...d.data],colorscale:"Viridis"}};h.push(u)}})}else{const r=this.props.selectedScans?[...Object.values(this.props.selectedScans).map(i=>this.props.data[i])]:[a];try{j.each(r,i=>{let o;if(i.axes.xs.length===0&&!this.props.selectedAxes.x)o={data:[0],name:"index",shape:[1]};else{const f=this.props.selectedAxes.x||i.axes.xs[0];o=i.data[f]}const d=this.props.scans[i.scanid];if(!o)throw new Error("The selected axes are not valid for the current scan(s)");if(o.data.length===0)throw new Error("Waiting for data for the selected axes");j.each(l,f=>{if(!i.axes.ys.scalars.includes(f))return;const u=i.data[f];if(!u)return;if(!u.data){console.log(`Data for ${i.scanid} series ${u.name} not loaded yet`);return}o.name==="index"&&(o.data=j.range(u.data.length));const{xData:E,yData:R}=re(o.data,u.data),D={x:[...E],y:R,type:"scattergl",name:i.scanid===t&&d?u.name:`${H.unix(d.start_timestamp).format("DD-MM-YYYY HH:mm:ss")}: ${u.name}`};h.push(D)})})}catch(i){if(i instanceof Error)return e.jsxs("span",{children:[i.message,e.jsx(m,{style:{marginLeft:"1rem"},size:"sm",onClick:()=>this.props.actions.resetAxes(),children:"Reset"})]})}}const{options:A}=this.props,{preSelectedXAxis:g,preSelectedSeries:N}=A,{backend:k="h5web"}=A;return e.jsxs("div",{className:"plot1d-container",children:[e.jsx(z,{children:e.jsxs(v,{children:[e.jsx(x,{xs:"auto",className:"gx-1",children:e.jsx(ne,{onChange:r=>this.props.actions.selectAxes(r),series:[...a.axes.xs,...a.axes.ys.scalars],selected:this.props.selectedAxes,resetAxes:this.props.actions.resetAxes,unselectAxes:this.props.actions.unselectAxes})}),e.jsx(x,{xs:"auto",className:"gx-1",children:e.jsx(ie,{onChange:this.selectSeries,series:a.axes.ys.scalars,selected:this.props.selectedSeries,resetSeries:this.props.actions.resetSeries})}),e.jsx(x,{xs:"auto",className:"gx-1",children:e.jsxs(P,{children:[e.jsx(P.Text,{children:"Points"}),e.jsxs(C.Control,{as:"select",onChange:this.setPageSize,value:this.props.pageSize,children:[[5,10,25,100,1e3].map(r=>a.npoints===null||r<a.npoints?e.jsx("option",{value:r,children:r},r):null),a.npoints!==null&&e.jsx("option",{value:a.npoints,children:`All (${a.npoints})`})]})]})}),e.jsx(x,{xs:"auto",className:"gx-1",children:e.jsxs(P,{children:[e.jsx(P.Text,{children:"Page"}),e.jsx(m,{size:"sm",onClick:()=>this.doSetPage(a.page-1,!0),disabled:a.page===1,children:e.jsx("i",{className:"fa fa-caret-left"})}),e.jsx(C.Control,{ref:this.pageRef,type:"number",onChange:this.setPage,defaultValue:a.page,max:a.pages,min:1}),e.jsx(m,{size:"sm",onClick:()=>this.doSetPage(a.page+1,!0),disabled:a.page===a.pages,children:e.jsx("i",{className:"fa fa-caret-right"})})]})}),this.props.fetching&&e.jsx(x,{xs:"auto",children:e.jsx("i",{className:"fa fa-spin fa-spinner"})})]})}),e.jsx(M,{children:k==="h5web"?e.jsx(V,{children:e.jsx(ce,{data:h,onClick:this.onClick})}):e.jsx(W,{data:h,layout:{},onClick:r=>{var i;return this.onClick((i=r.points[0])==null?void 0:i.pointNumber)}})}),(g||N)&&e.jsxs("span",{children:[N," vs. ",g]})]})}};function le(c,n,s){const{data:t,list:a}=n.providers.scans;return{data:t.selector("results",c),scans:a.selector("results",c),pageSize:t.selector("per_page",c)||25,fetching:t.selector("fetching",c),selectedSeries:p.selector("selectedDataSeries",c),selectedAxes:p.selector("selectedDataAxes",c),selectedScan:p.selector("selectedScan",c),selectedScans:p.selector("selectedScans",c)}}function de(c,n){return{actions:{selectPoint:t=>p.dispatch("SCAN_CURRENT_POINT",Number.parseInt(t.toString(),10)),setPageSize:t=>n.providers.scans.data.setPageSize(t,!0),setPage:(t,a)=>n.providers.scans.data.setPage(t,a),setParams:(t,a)=>n.providers.scans.data.setParams(t,a),fetchScanSpectra:t=>n.providers.scans.spectra.fetch(t),selectSeries:t=>p.dispatch("SCAN_DATA_SELECT_SERIES",t),unselectSeries:t=>p.dispatch("SCAN_DATA_UNSELECT_SERIES",t),resetSeries:t=>p.dispatch("SCAN_DATA_RESET_SERIES",t),selectAxes:t=>p.dispatch("SCAN_DATA_SELECT_AXES",t),unselectAxes:t=>p.dispatch("SCAN_DATA_UNSELECT_AXES",t),resetAxes:t=>p.dispatch("SCAN_DATA_RESET_AXES",t),setFollow:()=>{n.selectedScan===void 0&&p.dispatch("RESET_SCAN_SELECTION")}}}}const pe=$({scans:p})(F(ee(le),de)(oe));function je(c){const{providers:n,yamlNode:s,backend:t,preSelectedXAxis:a,preSelectedSeries:l,...h}=c;return X(s,"backend",t),B(s,"preSelectedXAxis",a),U(s,"preSelectedSeries",l),Y(s,h),e.jsx(pe,{providers:n,options:{backend:t,preSelectedXAxis:a,preSelectedSeries:l}})}export{je as default};
@@ -0,0 +1 @@
1
+ import{ax as v,r as N,j as a,aC as y,R as b,C as j,aD as w,w as E,c as C,s as f,ad as k,a5 as h,aE as O,H as T}from"./index-b3c0133a.js";import{m as R}from"./ConnectUtils-3923fa2f.js";function D(r){const{options:s,selectedScan:e,currentPoint:n,data:i,scans:p,actions:c}=r,{series:t}=s,o=v(p);if(N.useEffect(()=>{c.setFollow(),c.setPage(void 0),c.setParams({scalars:[t]}),o&&c.setParams({scanid:o},!0)},[]),N.useEffect(()=>{let l=e;l||o&&(l=o),l&&c.setParams({scanid:l},!0)},[e]),!t)return a.jsxs("div",{className:"bg-warning rounded p-1",children:[a.jsx("i",{className:"fa fa-warning m-1"}),"Please specify a `series` in the config"]});const g=s.name||t;if(o===null)return a.jsxs("span",{children:[g,": No scan loaded."]});const u=i[e||o]||{};if(!u.data)return a.jsxs("span",{children:[g,": Waiting for scan data"]});if(!u.axes.ys.scalars.includes(t))return a.jsxs("div",{className:"bg-warning rounded p-1",children:["Scan does not include `",t,"`"]});const m=u.data[t];if(!m)return a.jsxs("div",{className:"bg-warning rounded p-1",children:["No y data yet for `",t,"`"]});if(!m.data)return a.jsxs("div",{className:"bg-warning rounded p-1",children:["Data not yet loaded for `",t,"`"]});const x=n!==null?n:m.data.length-1,d=m.data[x];let S="primary";s.comparator&&s.comparison&&(S=y(s.comparator,d,s.comparison)?"success":"danger");let P=String(d);return s.round!==void 0&&d!==void 0&&!Number.isNaN(d)&&(P=d.toFixed(s.round)),a.jsx("div",{className:"scanplot0d-value",children:a.jsxs(b,{children:[a.jsxs(j,{children:[g,":"]}),a.jsxs(j,{children:[a.jsx(w,{bg:S,children:P}),a.jsxs("span",{className:"invisible",children:["[",x,", ",u.page,"]"]})]})]})})}const F=(r,s,e)=>{const{data:n,list:i}=s.providers.scans;return{data:n.selector("results",r),scans:i.selector("results",r),currentPoint:f.selector("currentPoint",r),selectedScan:f.selector("selectedScan",r)}},I=(r,s)=>({actions:{setFollow:()=>{s.selectedScan===void 0&&f.dispatch("RESET_SCAN_SELECTION")},setPageSize:e=>s.providers.scans.data.setPageSize(e,!0),setPage:(e,n)=>s.providers.scans.data.setPage(e,n),setParams:(e,n)=>s.providers.scans.data.setParams(e,n)}}),z=E({scans:f})(C(R(F),I)(D));function W(r){const{yamlNode:s,providers:e,series:n,name:i,round:p,comparison:c,comparator:t,...o}=r;return k(s,"series",n),h(s,"name",i),O(s,"round",p),h(s,"comparison",c),h(s,"comparator",t),T(s,o),a.jsx(z,{providers:e,options:{series:n,name:i,round:p,comparison:c,comparator:t}})}export{W as default};
@@ -0,0 +1 @@
1
+ var P=Object.defineProperty;var v=(c,r,t)=>r in c?P(c,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[r]=t;var h=(c,r,t)=>(v(c,typeof r!="symbol"?r+"":r,t),t);import{r as g,ax as C,l as u,j as n,i as b,F as x,R as w,C as f,B as N,G as R,Q as E}from"./index-b3c0133a.js";import{H as I}from"./H5WebCurvePlot-61b08211.js";class $ extends g.Component{constructor(t){super(t);h(this,"point");h(this,"max");h(this,"lastScanId");h(this,"onChangePoint",t=>{var e;const s=Number(t.target.value);s<this.max&&((e=this.props.actions)==null||e.selectPoint(s))});h(this,"clearSelection",()=>{var t;(t=this.props.actions)==null||t.clearPoint()});this.point=g.createRef(),this.max=0}componentDidUpdate(t){const{currentPoint:s}=this.props,{scanid:e,npoints_avail:a}=this.data();if(!e)return;const o=this.lastScanId!==e;this.lastScanId=e;const i=this.max!==a;this.max=a;const l=s??this.max-1;this.point.current&&(this.point.current.value=`${l}`),l!==-1&&(t.currentPoint!==s&&s!==null&&s!==void 0&&this.fetchScanSpectra(s),s===null&&(o||i||t.currentPoint!==null)&&this.fetchScanSpectra(l))}data(){return this.props.data[this.selectedScan()]||{}}selectedScan(){return this.props.selectedScan?this.props.selectedScan:C(this.props.scans)||0}async fetchScanSpectra(t){var s;if(this.data().scanid&&!(t<0&&this.props.currentPoint&&this.props.currentPoint<0)&&!this.props.fetching)try{await((s=this.props.actions)==null?void 0:s.fetchScanSpectra({scanid:this.selectedScan(),point:t}))}catch(e){console.log("Couldn't load scan spectra",e)}}generateXData(t,s){const{conversion:e}=s;return e?u.range(t.length).map(a=>a*e.scale+e.zero):u.range(t.length)}generateSeries(t,s,e=void 0){if(!t)return;const[a]=t.data;return a?{x:[...e?s.data[e].data[0]:this.generateXData(a,s)],y:[...a],type:"scattergl",name:t.name}:void 0}render(){if(Object.keys(this.props.spectra).length===0)return n.jsx("span",{children:"Waiting for scan spectra"});const{selectable:t=!0,options:s={},spectra:e}=this.props,{backend:a="h5web",preSelectedXAxis:o,preSelectedSeries:i,plotTitle:l,insetLegend:j}=s,p=[];return i?(Array.isArray(i)?i:[i]).forEach(d=>{const y=e.data[d],S=this.generateSeries(y,e,o);S&&p.push(S)}):u.each(e.data,m=>{const d=this.generateSeries(m,e);d&&p.push(d)}),n.jsxs("div",{className:"plot1d-container",children:[t&&n.jsx(b,{children:n.jsxs(x.Group,{as:w,children:[n.jsx(x.Label,{column:!0,sm:3,children:"Point"}),n.jsx(f,{children:n.jsx(x.Control,{type:"number",ref:this.point,onChange:this.onChangePoint,min:"0",max:this.max})}),this.props.currentPoint!==null&&n.jsx(f,{xs:2,children:n.jsx(N,{onClick:this.clearSelection,children:"Follow"})}),this.props.fetching&&n.jsx(f,{xs:1,children:n.jsx("div",{className:"my-auto ms-2",children:n.jsx("i",{className:"fa fa-spin fa-spinner"})})})]})}),n.jsx(R,{children:a==="h5web"?n.jsx(I,{insetLegend:j,data:p,layout:this.props.layout}):n.jsx(E,{className:"plot",data:p,layout:this.props.layout??{}})}),(o||i||l)&&n.jsx("span",{children:l||`${i} vs. ${o}`})]})}}export{$ as S};
@@ -0,0 +1 @@
1
+ import{w as d,c as S,s as r,aA as m,a5 as p,aB as u,aF as h,H as P,j as N}from"./index-b3c0133a.js";import{S as f}from"./ScanPlot1d-3c930b95.js";import{m as g}from"./ConnectUtils-3923fa2f.js";import"./H5WebCurvePlot-61b08211.js";import"./index-a9bb7636.js";function O(s,t,e){return{data:t.providers.scans.data.selector("results",s),scans:t.providers.scans.list.selector("results",s),spectra:t.providers.scans.spectra.selector("results",s),fetching:t.providers.scans.spectra.selector("fetching",s),currentPoint:r.selector("currentPoint",s),currentImageNode:r.selector("currentImageNode",s),selectedScan:r.selector("selectedScan",s)}}function T(s,t){return{actions:{selectPoint:e=>r.dispatch("SCAN_CURRENT_POINT",Number.parseInt(e,10)),clearPoint:()=>r.dispatch("SCAN_CURRENT_POINT",null),fetchScanSpectra:e=>t.providers.scans.spectra.fetch(e),setPage:e=>t.providers.scans.spectra.setPage(e)}}}const v=d({scans:r})(S(g(O),T)(f));function R(s){const{providers:t,yamlNode:e,backend:a,preSelectedXAxis:c,preSelectedSeries:n,plotTitle:o,insetLegend:i,...l}=s;return m(e,"backend",a),p(e,"preSelectedXAxis",c),u(e,"preSelectedSeries",n),p(e,"title",o),h(e,"insetLegend",i),P(e,l),N.jsx(v,{providers:t,options:{backend:a,preSelectedXAxis:c,preSelectedSeries:n,plotTitle:o,insetLegend:i}})}export{R as default};
@@ -1 +1 @@
1
- var j=Object.defineProperty;var S=(a,n,e)=>n in a?j(a,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[n]=e;var c=(a,n,e)=>(S(a,typeof n!="symbol"?n+"":n,e),e);import{j as s,ay as g,r as p,l as N,ao as I,d as C,g as w,R as P,C as m,I as u,F as f,p as R,A as b,w as L,c as y,s as h,a0 as $,q as U}from"./index-4cf586ed.js";import{Z as D}from"./ZoomPanCanvas-1365066d.js";import{D as x}from"./DropdownButton-9a594aef.js";import{I as A}from"./Image-c1578ac2.js";import"./CanvasEnhancer-abaa5025.js";import"./types-0be7083b.js";function E(a){const n=`resources/icons/lut/${a.name}.png`,e=a.active?{border:"2px solid black"}:{border:"2px solid transparent"};return s.jsx(A,{style:e,src:n,roundedCircle:!0})}function M(a){const{as:n,onSelect:e,value:t}=a,o=t.replace(/^\w/,i=>i.toUpperCase()).replace("_r"," (reversed)");function r(i,l){const d=t===i;return s.jsxs(g.Item,{eventKey:i,children:[s.jsx(E,{name:i,active:d}),"  ",l]})}return s.jsxs(x,{as:n,title:o,id:"bg-vertical-dropdown-7",onSelect:e,children:[r("gray","Gray"),r("gray_r","Gray (reversed)"),r("viridis","Viridis"),r("cividis","Cividis"),r("magma","Magma"),r("inferno","Inferno"),r("plasma","Plasma")]})}function Z(a){const{as:n,onSelect:e,value:t}=a,o=t.replace(/^\w/,i=>i.toUpperCase());function r(i,l){const d=t===i?"fa fa-fw fa-dot-circle-o":"fa fa-fw fa-circle-o";return s.jsxs(g.Item,{eventKey:i,children:[s.jsx("i",{className:d}),"  ",l]})}return s.jsxs(x,{as:n,title:o,id:"bg-vertical-dropdown-4",onSelect:e,children:[r("linear","Linear"),r("log","Log"),r("arcsinh","ArcsinH"),r("sqrt","Sqrt")]})}function _(a){const{as:n,onSelect:e,value:t}=a,r={stddev3:"3×std"}[t]||t.replace(/^\w/,l=>l.toUpperCase());function i(l,d){const v=t===l?"fa fa-fw fa-dot-circle-o":"fa fa-fw fa-circle-o";return s.jsxs(g.Item,{eventKey:l,children:[s.jsx("i",{className:v}),"  ",d]})}return s.jsxs(x,{as:n,title:r,id:"bg-vertical-dropdown-3",onSelect:e,children:[i("none","None"),i("minmax","Minmax"),i("stddev3","3×std")]})}let O=class extends p.Component{constructor(e){super(e);c(this,"max");c(this,"selectRef");c(this,"point");c(this,"loadImage");c(this,"onChangeNode",()=>{this.loadImage()});c(this,"onChangePoint",e=>{const{value:t}=e.target,o=Number.parseInt(t,10);o<this.max&&this.props.actions.selectPoint(o)});c(this,"onReady",()=>{this.loadImage()});c(this,"onError",(e,t,o)=>{this.setState({error:o})});c(this,"onZoomChange",e=>{this.setState({zoom:e})});c(this,"onLoadProgress",e=>{e===100?this.setState({loadingMessage:""}):this.setState({loadingMessage:`Loading ${e}%`})});c(this,"onSelectLut",e=>{e!==null&&(this.setState({lut:e}),this.loadImage())});c(this,"onSelectAutoscale",e=>{e!==null&&(this.setState({autoscale:e}),this.loadImage())});c(this,"onSelectNorm",e=>{e!==null&&(this.setState({norm:e}),this.loadImage())});this.state={loadingMessage:"",zoom:1,url:void 0,lut:"gray",autoscale:"minmax",norm:"linear",error:void 0},this.loadImage=N.debounce(this.rawLoadImage.bind(this),1e3),this.max=0,this.selectRef=p.createRef(),this.point=p.createRef()}componentDidMount(){this.loadImage()}componentDidUpdate(e){const t=this.data();if(!t||!t.scanid)return;const o=t.npoints_avail;(e.currentPoint!==this.props.currentPoint||e.selectedScan!==this.props.selectedScan||this.max!==o)&&this.loadImage(),this.max=o}componentWillUnmount(){this.loadImage.cancel()}getNodeOptions(){const e=this.data();return e?e.axes.ys.images.map(t=>s.jsx("option",{children:t},t)):null}data(){const e=this.selectedScan();if(e!==null)return this.props.data[e]}selectedScan(){return this.props.selectedScan||I(this.props.scans)}imageURL(e,t,o,r,i){var l;if((l=this.selectRef.current)!=null&&l.value)return`${C.baseUrl}/scans/image/${e}?node_name=${this.selectRef.current.value}&image_no=${t}&lut=${o}&autoscale=${r}&norm=${i}`}rawLoadImage(){this.setState({error:void 0});const e=this.data(),t=this.props.currentPoint||this.max-1;t<0||e!=null&&e.scanid&&(this.point.current&&(this.point.current.value=`${t}`),this.setState(o=>({...o,loadingMessage:`Loading Image ${t}`,url:this.props.url||this.imageURL(e.scanid,t,o.lut,o.autoscale,o.norm)})))}render(){return s.jsxs("div",{className:"plot2d-container",style:this.props.style,children:[s.jsxs("div",{className:"controls mb-1",children:[s.jsx(w,{children:s.jsxs(P,{children:[s.jsx(m,{xs:"auto",className:"gx-1",children:s.jsx(M,{value:this.state.lut,onSelect:this.onSelectLut})}),s.jsx(m,{xs:"auto",className:"gx-1",children:s.jsx(_,{value:this.state.autoscale,onSelect:this.onSelectAutoscale})}),s.jsx(m,{xs:"auto",className:"gx-1",children:s.jsx(Z,{value:this.state.norm,onSelect:this.onSelectNorm})}),s.jsx(m,{xs:"auto",className:"gx-1",children:s.jsxs(u,{children:[s.jsx(u.Text,{children:"Node"}),s.jsx(f.Control,{as:"select",onChange:this.onChangeNode,ref:this.selectRef,children:this.getNodeOptions()})]})}),s.jsx(m,{xs:"auto",className:"gx-1",children:s.jsxs(u,{children:[s.jsx(u.Text,{children:"Point"}),s.jsx(f.Control,{type:"number",ref:this.point,onChange:this.onChangePoint,min:"0",max:this.max})]})})]})}),s.jsx("div",{className:"message",children:this.state.loadingMessage}),s.jsxs("div",{className:"zoom",children:["Zoom:",(this.state.zoom*100).toFixed(0),"%"]})]}),s.jsx(R,{children:s.jsx(D,{className:"scanimage",url:this.state.url,onZoomChange:this.onZoomChange,onLoadProgress:this.onLoadProgress,onReady:this.onReady,onError:this.onError,maxZoom:4,children:s.jsx("div",{className:"plot-error",children:this.state.error&&s.jsxs(b,{variant:"danger",children:["Error loading image: ",this.state.error]})})})})]})}};function T(a,n){return{scans:n.providers.scans.list.selector("results",a),data:n.providers.scans.data.selector("results",a),spectra:n.providers.scans.spectra.selector("results",a),currentPoint:h.selector("currentPoint",a),currentImageNode:h.selector("currentImageNode",a),selectedScan:h.selector("selectedScan",a)}}function z(a,n){return{actions:{selectPoint:e=>h.dispatch("SCAN_CURRENT_POINT",Number.parseInt(e,10)),fetchScanSpectra:e=>n.providers.scans.spectra.fetch(e)}}}const K=L({scans:h})(y(T,z)(O));function J(a){const{providers:n,yamlNode:e,events:t,...o}=a;return $(e,"events",t),U(e,o),s.jsx(K,{providers:n})}export{J as default};
1
+ var j=Object.defineProperty;var S=(a,n,e)=>n in a?j(a,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[n]=e;var c=(a,n,e)=>(S(a,typeof n!="symbol"?n+"":n,e),e);import{j as s,aH as g,r as p,l as N,ax as I,g as C,i as w,R as P,C as m,I as u,F as f,G as R,A as b,w as L,c as y,s as h,ac as $,H as U}from"./index-b3c0133a.js";import{Z as D}from"./ZoomPanCanvas-23b61dbb.js";import{D as x}from"./DropdownButton-29cc265b.js";import{I as A}from"./Image-ee61818a.js";import"./CanvasEnhancer-dd82c090.js";import"./types-c366a377.js";function E(a){const n=`resources/icons/lut/${a.name}.png`,e=a.active?{border:"2px solid black"}:{border:"2px solid transparent"};return s.jsx(A,{style:e,src:n,roundedCircle:!0})}function M(a){const{as:n,onSelect:e,value:t}=a,o=t.replace(/^\w/,i=>i.toUpperCase()).replace("_r"," (reversed)");function r(i,l){const d=t===i;return s.jsxs(g.Item,{eventKey:i,children:[s.jsx(E,{name:i,active:d}),"  ",l]})}return s.jsxs(x,{as:n,title:o,id:"bg-vertical-dropdown-7",onSelect:e,children:[r("gray","Gray"),r("gray_r","Gray (reversed)"),r("viridis","Viridis"),r("cividis","Cividis"),r("magma","Magma"),r("inferno","Inferno"),r("plasma","Plasma")]})}function Z(a){const{as:n,onSelect:e,value:t}=a,o=t.replace(/^\w/,i=>i.toUpperCase());function r(i,l){const d=t===i?"fa fa-fw fa-dot-circle-o":"fa fa-fw fa-circle-o";return s.jsxs(g.Item,{eventKey:i,children:[s.jsx("i",{className:d}),"  ",l]})}return s.jsxs(x,{as:n,title:o,id:"bg-vertical-dropdown-4",onSelect:e,children:[r("linear","Linear"),r("log","Log"),r("arcsinh","ArcsinH"),r("sqrt","Sqrt")]})}function _(a){const{as:n,onSelect:e,value:t}=a,r={stddev3:"3×std"}[t]||t.replace(/^\w/,l=>l.toUpperCase());function i(l,d){const v=t===l?"fa fa-fw fa-dot-circle-o":"fa fa-fw fa-circle-o";return s.jsxs(g.Item,{eventKey:l,children:[s.jsx("i",{className:v}),"  ",d]})}return s.jsxs(x,{as:n,title:r,id:"bg-vertical-dropdown-3",onSelect:e,children:[i("none","None"),i("minmax","Minmax"),i("stddev3","3×std")]})}let O=class extends p.Component{constructor(e){super(e);c(this,"max");c(this,"selectRef");c(this,"point");c(this,"loadImage");c(this,"onChangeNode",()=>{this.loadImage()});c(this,"onChangePoint",e=>{const{value:t}=e.target,o=Number.parseInt(t,10);o<this.max&&this.props.actions.selectPoint(o)});c(this,"onReady",()=>{this.loadImage()});c(this,"onError",(e,t,o)=>{this.setState({error:o})});c(this,"onZoomChange",e=>{this.setState({zoom:e})});c(this,"onLoadProgress",e=>{e===100?this.setState({loadingMessage:""}):this.setState({loadingMessage:`Loading ${e}%`})});c(this,"onSelectLut",e=>{e!==null&&(this.setState({lut:e}),this.loadImage())});c(this,"onSelectAutoscale",e=>{e!==null&&(this.setState({autoscale:e}),this.loadImage())});c(this,"onSelectNorm",e=>{e!==null&&(this.setState({norm:e}),this.loadImage())});this.state={loadingMessage:"",zoom:1,url:void 0,lut:"gray",autoscale:"minmax",norm:"linear",error:void 0},this.loadImage=N.debounce(this.rawLoadImage.bind(this),1e3),this.max=0,this.selectRef=p.createRef(),this.point=p.createRef()}componentDidMount(){this.loadImage()}componentDidUpdate(e){const t=this.data();if(!t||!t.scanid)return;const o=t.npoints_avail;(e.currentPoint!==this.props.currentPoint||e.selectedScan!==this.props.selectedScan||this.max!==o)&&this.loadImage(),this.max=o}componentWillUnmount(){this.loadImage.cancel()}getNodeOptions(){const e=this.data();return e?e.axes.ys.images.map(t=>s.jsx("option",{children:t},t)):null}data(){const e=this.selectedScan();if(e!==null)return this.props.data[e]}selectedScan(){return this.props.selectedScan||I(this.props.scans)}imageURL(e,t,o,r,i){var l;if((l=this.selectRef.current)!=null&&l.value)return`${C.baseUrl}/scans/image/${e}?node_name=${this.selectRef.current.value}&image_no=${t}&lut=${o}&autoscale=${r}&norm=${i}`}rawLoadImage(){this.setState({error:void 0});const e=this.data(),t=this.props.currentPoint||this.max-1;t<0||e!=null&&e.scanid&&(this.point.current&&(this.point.current.value=`${t}`),this.setState(o=>({...o,loadingMessage:`Loading Image ${t}`,url:this.props.url||this.imageURL(e.scanid,t,o.lut,o.autoscale,o.norm)})))}render(){return s.jsxs("div",{className:"plot2d-container",style:this.props.style,children:[s.jsxs("div",{className:"controls mb-1",children:[s.jsx(w,{children:s.jsxs(P,{children:[s.jsx(m,{xs:"auto",className:"gx-1",children:s.jsx(M,{value:this.state.lut,onSelect:this.onSelectLut})}),s.jsx(m,{xs:"auto",className:"gx-1",children:s.jsx(_,{value:this.state.autoscale,onSelect:this.onSelectAutoscale})}),s.jsx(m,{xs:"auto",className:"gx-1",children:s.jsx(Z,{value:this.state.norm,onSelect:this.onSelectNorm})}),s.jsx(m,{xs:"auto",className:"gx-1",children:s.jsxs(u,{children:[s.jsx(u.Text,{children:"Node"}),s.jsx(f.Control,{as:"select",onChange:this.onChangeNode,ref:this.selectRef,children:this.getNodeOptions()})]})}),s.jsx(m,{xs:"auto",className:"gx-1",children:s.jsxs(u,{children:[s.jsx(u.Text,{children:"Point"}),s.jsx(f.Control,{type:"number",ref:this.point,onChange:this.onChangePoint,min:"0",max:this.max})]})})]})}),s.jsx("div",{className:"message",children:this.state.loadingMessage}),s.jsxs("div",{className:"zoom",children:["Zoom:",(this.state.zoom*100).toFixed(0),"%"]})]}),s.jsx(R,{children:s.jsx(D,{className:"scanimage",url:this.state.url,onZoomChange:this.onZoomChange,onLoadProgress:this.onLoadProgress,onReady:this.onReady,onError:this.onError,maxZoom:4,children:s.jsx("div",{className:"plot-error",children:this.state.error&&s.jsxs(b,{variant:"danger",children:["Error loading image: ",this.state.error]})})})})]})}};function T(a,n){return{scans:n.providers.scans.list.selector("results",a),data:n.providers.scans.data.selector("results",a),spectra:n.providers.scans.spectra.selector("results",a),currentPoint:h.selector("currentPoint",a),currentImageNode:h.selector("currentImageNode",a),selectedScan:h.selector("selectedScan",a)}}function z(a,n){return{actions:{selectPoint:e=>h.dispatch("SCAN_CURRENT_POINT",Number.parseInt(e,10)),fetchScanSpectra:e=>n.providers.scans.spectra.fetch(e)}}}const G=L({scans:h})(y(T,z)(O));function J(a){const{providers:n,yamlNode:e,events:t,...o}=a;return $(e,"events",t),U(e,o),s.jsx(G,{providers:n})}export{J as default};
@@ -1 +1 @@
1
- import{r as o,j as s,p as g,E as S,B as m,a5 as x,az as d,au as h,x as i,O as p,w as E,c as P,s as c,a0 as v,q as N}from"./index-4cf586ed.js";const F={CREATED:"light",PREPARING:"info",RUNNING:"info",FINISHED:"success",ABORTED:"warning",FAILED:"danger"};function b(e){return s.jsx(h,{bg:F[e],children:e})}function j(e){const n=s.jsxs(i,{id:"popover-filename",children:[s.jsx(i.Header,{as:"h3",children:"File Name"}),s.jsx(i.Body,{children:e})]});return e?s.jsx(p,{trigger:"click",placement:"left",overlay:n,rootClose:!0,children:s.jsx(m,{size:"sm",children:s.jsx("i",{className:"fa fa-file"})})}):null}function D(e){const{scans:n,actions:t,selected:a}=e,l=Object.values(n);o.useEffect(()=>{t.setPageSize(10),t.fetch()},[t]),o.useEffect(()=>{a&&t.fetchData(a)},[a]);const f=[{dataField:"scan_number",text:"#"},{dataField:"title",text:"Title",classes:"text-break"},{dataField:"start_timestamp",text:"Start",formatter:d,formatExtraData:{format:"DD-MM-YYYY HH:mm:ss"},classes:"text-nowrap"},{dataField:"end_timestamp",text:"End",formatter:d,formatExtraData:{format:"DD-MM-YYYY HH:mm:ss"},classes:"text-nowrap"},{dataField:"npoints",text:"Points"},{dataField:"count_time",text:"Count Time"},{dataField:"status",text:"Status",formatter:b},{dataField:"filename",text:"File",formatter:j}],u={page:e.page,per_page:e.per_page,total:e.total,setPage:e.actions.setPage,setPageSize:e.actions.setPageSize,fetch:e.actions.fetch};return s.jsx(g,{children:s.jsxs(S,{children:[s.jsx(m,{size:"sm",onClick:()=>{var r;return(r=t.resetSelection)==null?void 0:r.call(t)},disabled:e.selected===null,className:"mb-1",children:"Follow"}),s.jsx(x,{keyField:"scanid",data:l,pages:u,columns:f,bordered:!1,classes:"table-sm scan-table",noDataIndication:"No scans available",loading:e.fetching,overlay:!0,multiple:!0,selectedItems:e.selectedItems,page:e.page,actions:{addSelection:e.actions.addSelection,removeSelection:e.actions.removeSelection,resetSelection:e.actions.resetSelection}})]})})}const T=(e,n)=>{const{list:t}=n.providers.scans;return{selected:c.selector("selectedScan",e),selectedItems:c.selector("selectedScans",e),scans:t.selector("ordered",e),params:t.selector("params",e),per_page:t.selector("per_page",e),page:t.selector("page",e),total:t.selector("total",e),fetching:t.selector("fetching",e)}},C=(e,n)=>{const{list:t}=n.providers.scans;return{actions:{fetchData:a=>(n.providers.scans.data.setPage(1),n.providers.scans.data.setParams({scanid:a},!0)),fetch:()=>t.fetch(),setParams:a=>t.setParams(a,!0),setPage:a=>t.setPage(a),setPageSize:a=>t.setPageSize(a),addSelection:a=>c.dispatch("SELECT_SCAN",a),removeSelection:a=>c.dispatch("UNSELECT_SCAN",a),resetSelection:()=>c.dispatch("RESET_SCAN_SELECTION")}}},_=E({scans:c})(P(T,C)(D));function I(e){const{providers:n,yamlNode:t,events:a,...l}=e;return v(t,"events",a),N(t,l),s.jsx(_,{providers:n})}export{I as default};
1
+ import{r as o,j as s,G as g,Z as S,B as m,ae as x,aI as d,aD as h,L as i,O as p,w as E,c as P,s as c,ac as v,H as N}from"./index-b3c0133a.js";const D={CREATED:"light",PREPARING:"info",RUNNING:"info",FINISHED:"success",ABORTED:"warning",FAILED:"danger"};function F(e){return s.jsx(h,{bg:D[e],children:e})}function b(e){const n=s.jsxs(i,{id:"popover-filename",children:[s.jsx(i.Header,{as:"h3",children:"File Name"}),s.jsx(i.Body,{children:e})]});return e?s.jsx(p,{trigger:"click",placement:"left",overlay:n,rootClose:!0,children:s.jsx(m,{size:"sm",children:s.jsx("i",{className:"fa fa-file"})})}):null}function j(e){const{scans:n,actions:t,selected:a}=e,l=Object.values(n);o.useEffect(()=>{t.setPageSize(10),t.fetch()},[t]),o.useEffect(()=>{a&&t.fetchData(a)},[a]);const f=[{dataField:"scan_number",text:"#"},{dataField:"title",text:"Title",classes:"text-break"},{dataField:"start_timestamp",text:"Start",formatter:d,formatExtraData:{format:"DD-MM-YYYY HH:mm:ss"},classes:"text-nowrap"},{dataField:"end_timestamp",text:"End",formatter:d,formatExtraData:{format:"DD-MM-YYYY HH:mm:ss"},classes:"text-nowrap"},{dataField:"npoints",text:"Points"},{dataField:"count_time",text:"Count Time"},{dataField:"status",text:"Status",formatter:F},{dataField:"filename",text:"File",formatter:b}],u={page:e.page,per_page:e.per_page,total:e.total,setPage:e.actions.setPage,setPageSize:e.actions.setPageSize,fetch:e.actions.fetch};return s.jsx(g,{children:s.jsxs(S,{children:[s.jsx(m,{size:"sm",onClick:()=>{var r;return(r=t.resetSelection)==null?void 0:r.call(t)},disabled:e.selected===null,className:"mb-1",children:"Follow"}),s.jsx(x,{keyField:"scanid",data:l,pages:u,columns:f,bordered:!1,classes:"table-sm scan-table",noDataIndication:"No scans available",loading:e.fetching,overlay:!0,multiple:!0,selectedItems:e.selectedItems,page:e.page,actions:{addSelection:e.actions.addSelection,removeSelection:e.actions.removeSelection,resetSelection:e.actions.resetSelection}})]})})}const T=(e,n)=>{const{list:t}=n.providers.scans;return{selected:c.selector("selectedScan",e),selectedItems:c.selector("selectedScans",e),scans:t.selector("ordered",e),params:t.selector("params",e),per_page:t.selector("per_page",e),page:t.selector("page",e),total:t.selector("total",e),fetching:t.selector("fetching",e)}},C=(e,n)=>{const{list:t}=n.providers.scans;return{actions:{fetchData:a=>(n.providers.scans.data.setPage(1),n.providers.scans.data.setParams({scanid:a},!0)),fetch:()=>t.fetch(),setParams:a=>t.setParams(a,!0),setPage:a=>t.setPage(a),setPageSize:a=>t.setPageSize(a),addSelection:a=>c.dispatch("SELECT_SCAN",a),removeSelection:a=>c.dispatch("UNSELECT_SCAN",a),resetSelection:()=>c.dispatch("RESET_SCAN_SELECTION")}}},_=E({scans:c})(P(T,C)(j));function z(e){const{providers:n,yamlNode:t,events:a,...l}=e;return v(t,"events",a),N(t,l),s.jsx(_,{providers:n})}export{z as default};
@@ -0,0 +1 @@
1
+ import{ax as u,r as x,j as s,R as l,C as c,w as j,c as f,s as d,ad as S,a5 as N,H as v}from"./index-b3c0133a.js";import{m as w}from"./ConnectUtils-3923fa2f.js";function E(n){const{options:a,selectedScan:t,scans:e,actions:o}=n,{scanKey:r,name:p}=a,h=u(e);x.useEffect(()=>{o.setFollow()},[]);const i=p??r;if(h===null)return s.jsx("div",{className:"scan-value",children:s.jsxs(l,{children:[s.jsxs(c,{children:[i,":"]}),s.jsx(c,{children:"No scan loaded"})]})});const m=(e[t||h]||{})[r];return m?s.jsx("div",{className:"scan-value",children:s.jsxs(l,{children:[s.jsxs(c,{children:[i,":"]}),s.jsx(c,{children:m})]})}):s.jsx("div",{className:"scan-value",children:s.jsxs(l,{children:[s.jsxs(c,{children:[i,":"]}),s.jsxs(c,{children:[s.jsx("i",{className:"fa fa-warning me-1"}),"No data for this scan"]})]})})}const C=(n,a,t)=>{const{list:e}=a.providers.scans;return{scans:e.selector("results",n),selectedScan:d.selector("selectedScan",n)}},y=(n,a)=>({actions:{setFollow:()=>{a.selectedScan===void 0&&d.dispatch("RESET_SCAN_SELECTION")}}}),O=j({scans:d})(f(w(C),y)(E));function I(n){const{yamlNode:a,providers:t,scanKey:e,name:o,...r}=n;return S(a,"scanKey",e),N(a,"name",o),v(a,r),s.jsx(O,{providers:t,options:{scanKey:e,name:o}})}export{I as default};
@@ -0,0 +1 @@
1
+ import{r as d,b5 as S,j as t,aL as v}from"./index-b3c0133a.js";import{b as u,Q as F,O as w}from"./index-a9bb7636.js";import{S as k}from"./ScreenScale-b2417934.js";import{t as B}from"./QtyHelper-8429914f.js";const G=d.forwardRef(({children:n,percentLocation:r},s)=>{const i=d.useRef(null);d.useImperativeHandle(s,()=>i.current,[]);const c=u();return S(({camera:l})=>{const e=i.current;if(!e)return;const a=c.getVisibleDomains(l),o=a.xVisibleDomain[0]+(a.xVisibleDomain[1]-a.xVisibleDomain[0])*(r[0]/100),m=a.yVisibleDomain[0]+(a.yVisibleDomain[1]-a.yVisibleDomain[0])*(1-r[1]/100);e.position.x=o,e.position.y=m}),t.jsx("group",{ref:i,children:t.jsx("group",{children:n})})});function C(n){const s=10**Math.ceil(Math.log10(n)),i=n/s;return i>=1?Number(s):i>=.5?.5*s:i>=.25?.25*s:i>=.1?.1*s:n}function q(n){const{unit:r,percentWidth:s=30,percentLocation:i=75}=n,c=u(),{width:l}=c.canvasSize,e=F(m=>{const b=c.getVisibleDomains(m),{xVisibleDomain:x,yVisibleDomain:y}=b,h=x[1]-x[0],f=l/Math.abs(h),p=C(Math.abs(h)*s/100),R=p*f,D=x[0]+h*i/100,L=y[1];function M(j,g){return g==="px"?`${j} ${g}`:`${B(new v(j,g)).toPrec(.1)}`}const V=M(p,r);return{pixelRange:R,dataRange:p,dataX:D,dataY:L,text:V}},[r,l,s,i]),a=2,o=10;return t.jsxs(t.Fragment,{children:[t.jsx(w,{x:e.dataX,y:e.dataY,style:{color:"black"},children:t.jsx("div",{style:{top:"50%",left:"50%",position:"relative",transform:"translate(-100%, 0%)",borderRadius:5,paddingLeft:5,paddingRight:5,backgroundColor:"#FFFFFF80",fontWeight:"bold",fontSize:"100%",zIndex:100},children:e.text})}),t.jsx(G,{percentLocation:[i,0],children:t.jsx(k,{children:t.jsxs("group",{"position-y":26,children:[t.jsxs("mesh",{position:[0,0,0],children:[t.jsx("ambientLight",{}),t.jsx("planeGeometry",{attach:"geometry",args:[e.pixelRange,a+2,1,1]}),t.jsx("meshBasicMaterial",{attach:"material",transparent:!0,color:"white",opacity:1})]}),t.jsxs("mesh",{position:[e.pixelRange*.5,0,0],children:[t.jsx("ambientLight",{}),t.jsx("planeGeometry",{attach:"geometry",args:[a+2,o+2,1,1]}),t.jsx("meshBasicMaterial",{attach:"material",transparent:!0,color:"white",opacity:1})]}),t.jsxs("mesh",{position:[-e.pixelRange*.5,0,0],children:[t.jsx("ambientLight",{}),t.jsx("planeGeometry",{attach:"geometry",args:[a+2,o+2,1,1]}),t.jsx("meshBasicMaterial",{attach:"material",transparent:!0,color:"white",opacity:1})]}),t.jsxs("mesh",{position:[0,0,0],children:[t.jsx("ambientLight",{}),t.jsx("planeGeometry",{attach:"geometry",args:[e.pixelRange,a,1,1]}),t.jsx("meshBasicMaterial",{attach:"material",transparent:!0,color:"black",opacity:1})]}),t.jsxs("mesh",{position:[e.pixelRange*.5,0,0],children:[t.jsx("ambientLight",{}),t.jsx("planeGeometry",{attach:"geometry",args:[a,o,1,1]}),t.jsx("meshBasicMaterial",{attach:"material",transparent:!0,color:"black",opacity:1})]}),t.jsxs("mesh",{position:[-e.pixelRange*.5,0,0],children:[t.jsx("ambientLight",{}),t.jsx("planeGeometry",{attach:"geometry",args:[a,o,1,1]}),t.jsx("meshBasicMaterial",{attach:"material",transparent:!0,color:"black",opacity:1})]})]})})})]})}export{q as S};
@@ -0,0 +1 @@
1
+ import{ad as o,aF as u,a5 as p,H as l,j as x,W as c}from"./index-b3c0133a.js";function d(n){const{providers:i,yamlNode:s,schema:a,url:r,requireOperator:t,submitText:e,...m}=n;return o(s,"schema",a),o(s,"url",r),u(s,"requireOperator",t),p(s,"submitText",e),l(s,m),x.jsx(c,{providers:i,options:{schema:a,url:r,requireOperator:t,submitText:e}})}export{d as default};
@@ -1 +1 @@
1
- import{r,b8 as x,j as m}from"./index-4cf586ed.js";import{k as y}from"./hooks-e7539055.js";const d=r.forwardRef((u,i)=>{const{scaleX:l=!0,scaleY:f=!0,screenDirection:t=!0,children:p}=u,e=r.useRef(null);r.useImperativeHandle(i,()=>e.current,[]);const a=y();return x(({camera:c})=>{const s=e.current;if(!s)return;const o=c.scale.x/a.sx,n=c.scale.y/a.sy;l&&(s.scale.x=t?o:Math.abs(o)),f&&(s.scale.y=t?-n:Math.abs(n))}),m.jsx("group",{ref:e,children:p})});export{d as S};
1
+ import{r,b5 as x,j as m}from"./index-b3c0133a.js";import{k as y}from"./hooks-171c0765.js";const d=r.forwardRef((u,i)=>{const{scaleX:l=!0,scaleY:f=!0,screenDirection:t=!0,children:p}=u,e=r.useRef(null);r.useImperativeHandle(i,()=>e.current,[]);const a=y();return x(({camera:c})=>{const s=e.current;if(!s)return;const o=c.scale.x/a.sx,n=c.scale.y/a.sy;l&&(s.scale.x=t?o:Math.abs(o)),f&&(s.scale.y=t?-n:Math.abs(n))}),m.jsx("group",{ref:e,children:p})});export{d as S};
@@ -1 +1 @@
1
- import{b,o as l}from"./index-19c84627.js";import{r as o}from"./index-4cf586ed.js";function k(c){const{onClick:e,threshold:i=4}=c,{worldToData:u}=b(),[n,s]=o.useState(null),p=o.useCallback(t=>{const{htmlPt:a}=t;s(a)},[s]),r=o.useCallback(t=>{if(!n)return!1;const{htmlPt:a}=t;return Math.max(Math.abs(a.x-n.x),Math.abs(a.y-n.y))<=i},[n,i]),P=o.useCallback(t=>{r(t)||s(null)},[r,s]),m=o.useCallback(t=>{r(t)&&e(t)},[r,e,e,u]);return l("pointerdown",p),l("pointermove",P),l("pointerup",m),null}export{k as P};
1
+ import{b,o as l}from"./index-a9bb7636.js";import{r as o}from"./index-b3c0133a.js";function k(c){const{onClick:e,threshold:i=4}=c,{worldToData:u}=b(),[n,s]=o.useState(null),p=o.useCallback(t=>{const{htmlPt:a}=t;s(a)},[s]),r=o.useCallback(t=>{if(!n)return!1;const{htmlPt:a}=t;return Math.max(Math.abs(a.x-n.x),Math.abs(a.y-n.y))<=i},[n,i]),P=o.useCallback(t=>{r(t)||s(null)},[r,s]),m=o.useCallback(t=>{r(t)&&e(t)},[r,e,e,u]);return l("pointerdown",p),l("pointermove",P),l("pointerup",m),null}export{k as P};
@@ -1 +1 @@
1
- import{j as e,au as l}from"./index-4cf586ed.js";function r(t){const{name:s,state:d,stateVariant:a="secondary",description:i}=t,n={display:"inline-block",minWidth:""};return t.minWidth&&(n.minWidth=`${t.minWidth}em`),e.jsxs("div",{className:t.className,style:{textAlign:"center"},children:[e.jsx("strong",{title:i,style:{display:"block",margin:"0px",whiteSpace:"nowrap"},children:s}),e.jsx("div",{style:n,children:e.jsx("div",{style:{position:"relative",top:-5},children:e.jsx(l,{title:i,bg:a,children:t.state})})})]})}export{r as S};
1
+ import{j as e,aD as l}from"./index-b3c0133a.js";function r(t){const{name:s,state:d,stateVariant:a="secondary",description:i}=t,n={display:"inline-block",minWidth:""};return t.minWidth&&(n.minWidth=`${t.minWidth}em`),e.jsxs("div",{className:t.className,style:{textAlign:"center"},children:[e.jsx("strong",{title:i,style:{display:"block",margin:"0px",whiteSpace:"nowrap"},children:s}),e.jsx("div",{style:n,children:e.jsx("div",{style:{position:"relative",top:-5},children:e.jsx(l,{title:i,bg:a,children:t.state})})})]})}export{r as S};