quantized-lab 0.8.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 (233) hide show
  1. quantized/__init__.py +11 -0
  2. quantized/__main__.py +14 -0
  3. quantized/api.py +220 -0
  4. quantized/app.py +206 -0
  5. quantized/calc/__init__.py +8 -0
  6. quantized/calc/_clipfit.py +76 -0
  7. quantized/calc/_natural_neighbor.py +219 -0
  8. quantized/calc/aggregate.py +159 -0
  9. quantized/calc/backgrounds.py +353 -0
  10. quantized/calc/baseline.py +349 -0
  11. quantized/calc/batch_fit.py +148 -0
  12. quantized/calc/constants.py +27 -0
  13. quantized/calc/corrections.py +192 -0
  14. quantized/calc/crystallography.py +400 -0
  15. quantized/calc/diffusion.py +120 -0
  16. quantized/calc/electrical.py +248 -0
  17. quantized/calc/electrochemistry.py +176 -0
  18. quantized/calc/element_data.json +1 -0
  19. quantized/calc/element_data.py +59 -0
  20. quantized/calc/errors.py +246 -0
  21. quantized/calc/figure.py +417 -0
  22. quantized/calc/figure_break.py +152 -0
  23. quantized/calc/figure_categorical.py +156 -0
  24. quantized/calc/figure_corner.py +229 -0
  25. quantized/calc/figure_facets.py +127 -0
  26. quantized/calc/figure_field.py +137 -0
  27. quantized/calc/figure_hitmap.py +116 -0
  28. quantized/calc/figure_labels.py +62 -0
  29. quantized/calc/figure_map.py +287 -0
  30. quantized/calc/figure_overrides.py +159 -0
  31. quantized/calc/figure_page.py +266 -0
  32. quantized/calc/figure_scale.py +125 -0
  33. quantized/calc/figure_statplots.py +167 -0
  34. quantized/calc/figure_styles.py +131 -0
  35. quantized/calc/figure_ternary.py +239 -0
  36. quantized/calc/figure_ticks.py +217 -0
  37. quantized/calc/fit_autoguess.py +156 -0
  38. quantized/calc/fit_bootstrap.py +163 -0
  39. quantized/calc/fit_bumps.py +258 -0
  40. quantized/calc/fit_constraints.py +114 -0
  41. quantized/calc/fit_equation.py +264 -0
  42. quantized/calc/fit_findxy.py +80 -0
  43. quantized/calc/fit_models.py +195 -0
  44. quantized/calc/fit_models_special.py +189 -0
  45. quantized/calc/fit_odr.py +99 -0
  46. quantized/calc/fit_scan.py +243 -0
  47. quantized/calc/fit_stats.py +215 -0
  48. quantized/calc/fitting.py +199 -0
  49. quantized/calc/formula.py +90 -0
  50. quantized/calc/global_curve_fit.py +305 -0
  51. quantized/calc/global_fit.py +181 -0
  52. quantized/calc/interp2d.py +260 -0
  53. quantized/calc/linecut.py +269 -0
  54. quantized/calc/magnetic.py +414 -0
  55. quantized/calc/magnetometry.py +464 -0
  56. quantized/calc/map.py +228 -0
  57. quantized/calc/mcmc.py +177 -0
  58. quantized/calc/optics.py +228 -0
  59. quantized/calc/pawley.py +251 -0
  60. quantized/calc/peak_batch.py +128 -0
  61. quantized/calc/peak_fit.py +259 -0
  62. quantized/calc/peak_integrate.py +104 -0
  63. quantized/calc/peak_multifit.py +260 -0
  64. quantized/calc/peak_track.py +134 -0
  65. quantized/calc/peaks.py +298 -0
  66. quantized/calc/peakshapes.py +85 -0
  67. quantized/calc/plotting.py +147 -0
  68. quantized/calc/processing.py +232 -0
  69. quantized/calc/qspace.py +48 -0
  70. quantized/calc/reductions.py +155 -0
  71. quantized/calc/reductions_fft.py +383 -0
  72. quantized/calc/refl_sld_presets.json +1 -0
  73. quantized/calc/reflectivity.py +80 -0
  74. quantized/calc/registry.py +303 -0
  75. quantized/calc/relaxation.py +119 -0
  76. quantized/calc/report.py +253 -0
  77. quantized/calc/report_emit.py +227 -0
  78. quantized/calc/resample.py +142 -0
  79. quantized/calc/rsm.py +91 -0
  80. quantized/calc/rsm_analyze.py +245 -0
  81. quantized/calc/semiconductor.py +488 -0
  82. quantized/calc/sld.py +131 -0
  83. quantized/calc/sld_formula.py +138 -0
  84. quantized/calc/spectral.py +357 -0
  85. quantized/calc/statplots.py +214 -0
  86. quantized/calc/stats.py +399 -0
  87. quantized/calc/stats_anova2.py +202 -0
  88. quantized/calc/stats_anova_ext.py +338 -0
  89. quantized/calc/stats_dist.py +196 -0
  90. quantized/calc/stats_glm.py +245 -0
  91. quantized/calc/stats_multivar.py +289 -0
  92. quantized/calc/stats_roc.py +157 -0
  93. quantized/calc/stats_survival.py +261 -0
  94. quantized/calc/stats_tests.py +380 -0
  95. quantized/calc/substrates.py +181 -0
  96. quantized/calc/superconductor.py +359 -0
  97. quantized/calc/surface_fit.py +290 -0
  98. quantized/calc/surface_models.py +156 -0
  99. quantized/calc/thermal.py +119 -0
  100. quantized/calc/thin_film.py +425 -0
  101. quantized/calc/unit_convert.py +259 -0
  102. quantized/calc/units.py +80 -0
  103. quantized/calc/vacuum.py +290 -0
  104. quantized/calc/xray.py +169 -0
  105. quantized/cli.py +214 -0
  106. quantized/datastruct.py +153 -0
  107. quantized/io/__init__.py +11 -0
  108. quantized/io/_hdf5_layout.py +308 -0
  109. quantized/io/_jcamp_asdf.py +135 -0
  110. quantized/io/_xrdml_scan.py +291 -0
  111. quantized/io/base.py +82 -0
  112. quantized/io/bruker_brml.py +177 -0
  113. quantized/io/bruker_raw.py +158 -0
  114. quantized/io/cif.py +266 -0
  115. quantized/io/consolidated.py +122 -0
  116. quantized/io/delimited.py +222 -0
  117. quantized/io/excel.py +135 -0
  118. quantized/io/hdf5.py +192 -0
  119. quantized/io/import_filters.py +178 -0
  120. quantized/io/import_preview.py +262 -0
  121. quantized/io/jcamp.py +179 -0
  122. quantized/io/lakeshore.py +163 -0
  123. quantized/io/ncnr.py +278 -0
  124. quantized/io/netcdf.py +195 -0
  125. quantized/io/opus.py +231 -0
  126. quantized/io/origin.py +346 -0
  127. quantized/io/origin_com.py +194 -0
  128. quantized/io/origin_project/__init__.py +221 -0
  129. quantized/io/origin_project/annotation_marks.py +288 -0
  130. quantized/io/origin_project/container.py +262 -0
  131. quantized/io/origin_project/curve_style_color.py +359 -0
  132. quantized/io/origin_project/figure_geometry.py +108 -0
  133. quantized/io/origin_project/figure_layers.py +333 -0
  134. quantized/io/origin_project/figure_text.py +258 -0
  135. quantized/io/origin_project/figures.py +210 -0
  136. quantized/io/origin_project/figures_opju.py +440 -0
  137. quantized/io/origin_project/notes.py +302 -0
  138. quantized/io/origin_project/opj.py +459 -0
  139. quantized/io/origin_project/opj_curves.py +297 -0
  140. quantized/io/origin_project/opj_shapes.py +148 -0
  141. quantized/io/origin_project/opju.py +146 -0
  142. quantized/io/origin_project/opju_axis_real_form.py +418 -0
  143. quantized/io/origin_project/opju_axis_specimen_form.py +167 -0
  144. quantized/io/origin_project/opju_codec.py +370 -0
  145. quantized/io/origin_project/opju_curves.py +497 -0
  146. quantized/io/origin_project/opju_curves_allcols.py +258 -0
  147. quantized/io/origin_project/opju_figure_curves.py +302 -0
  148. quantized/io/origin_project/opju_figure_text.py +245 -0
  149. quantized/io/origin_project/opju_reports.py +129 -0
  150. quantized/io/origin_project/origin_richtext.py +145 -0
  151. quantized/io/origin_project/preview.py +132 -0
  152. quantized/io/origin_project/templates.py +314 -0
  153. quantized/io/origin_project/tree.py +379 -0
  154. quantized/io/origin_project/tree_opju.py +228 -0
  155. quantized/io/origin_project/windows.py +238 -0
  156. quantized/io/origin_project/windows_opju.py +393 -0
  157. quantized/io/origin_project/writer.py +156 -0
  158. quantized/io/origin_project/writer_blocks.py +282 -0
  159. quantized/io/qd.py +380 -0
  160. quantized/io/refl1d.py +132 -0
  161. quantized/io/registry.py +210 -0
  162. quantized/io/report_export.py +347 -0
  163. quantized/io/rigaku.py +100 -0
  164. quantized/io/sims.py +398 -0
  165. quantized/io/spc.py +311 -0
  166. quantized/io/xrd_csv.py +308 -0
  167. quantized/io/xrdml.py +394 -0
  168. quantized/jobs.py +173 -0
  169. quantized/plugins/__init__.py +50 -0
  170. quantized/plugins/contract.py +111 -0
  171. quantized/plugins/loader.py +394 -0
  172. quantized/plugins/steps.py +90 -0
  173. quantized/routes/__init__.py +7 -0
  174. quantized/routes/_bookcache.py +62 -0
  175. quantized/routes/_export_common.py +27 -0
  176. quantized/routes/_payload.py +58 -0
  177. quantized/routes/_uploadcache.py +59 -0
  178. quantized/routes/aggregate.py +46 -0
  179. quantized/routes/baseline.py +210 -0
  180. quantized/routes/books.py +117 -0
  181. quantized/routes/calc.py +56 -0
  182. quantized/routes/corrections.py +78 -0
  183. quantized/routes/crystallography.py +80 -0
  184. quantized/routes/diffusion.py +58 -0
  185. quantized/routes/electrical.py +101 -0
  186. quantized/routes/electrochemistry.py +83 -0
  187. quantized/routes/export.py +280 -0
  188. quantized/routes/export_facets.py +83 -0
  189. quantized/routes/export_figures.py +471 -0
  190. quantized/routes/export_page.py +125 -0
  191. quantized/routes/fitting.py +379 -0
  192. quantized/routes/fitting_bumps.py +97 -0
  193. quantized/routes/import_template.py +97 -0
  194. quantized/routes/import_wizard.py +150 -0
  195. quantized/routes/jobs_api.py +59 -0
  196. quantized/routes/magnetic.py +135 -0
  197. quantized/routes/magnetometry.py +133 -0
  198. quantized/routes/optics.py +98 -0
  199. quantized/routes/parsers.py +281 -0
  200. quantized/routes/peaks.py +184 -0
  201. quantized/routes/plot.py +103 -0
  202. quantized/routes/reductions.py +121 -0
  203. quantized/routes/reference.py +58 -0
  204. quantized/routes/reflectivity.py +91 -0
  205. quantized/routes/report_export.py +119 -0
  206. quantized/routes/rsm.py +136 -0
  207. quantized/routes/samples.py +32 -0
  208. quantized/routes/semiconductor.py +207 -0
  209. quantized/routes/sld.py +42 -0
  210. quantized/routes/spectral.py +54 -0
  211. quantized/routes/statplots.py +99 -0
  212. quantized/routes/stats.py +418 -0
  213. quantized/routes/stats_design.py +321 -0
  214. quantized/routes/substrates.py +46 -0
  215. quantized/routes/superconductor.py +139 -0
  216. quantized/routes/thermal.py +57 -0
  217. quantized/routes/thin_film.py +153 -0
  218. quantized/routes/vacuum.py +113 -0
  219. quantized/routes/xray.py +32 -0
  220. quantized/samples/demo_vsm.csv +42 -0
  221. quantized/server_launch.py +251 -0
  222. quantized/web/assets/JetBrainsMono-Bold-CUogYd9I.woff2 +0 -0
  223. quantized/web/assets/JetBrainsMono-Regular-CA-Os4ii.woff2 +0 -0
  224. quantized/web/assets/index-BHmmCL-x.js +27 -0
  225. quantized/web/assets/index-BiZzN7J6.css +1 -0
  226. quantized/web/index.html +13 -0
  227. quantized/web/loading.html +69 -0
  228. quantized_lab-0.8.0.dist-info/METADATA +122 -0
  229. quantized_lab-0.8.0.dist-info/RECORD +233 -0
  230. quantized_lab-0.8.0.dist-info/WHEEL +4 -0
  231. quantized_lab-0.8.0.dist-info/entry_points.txt +4 -0
  232. quantized_lab-0.8.0.dist-info/licenses/LICENSE +201 -0
  233. quantized_lab-0.8.0.dist-info/licenses/NOTICE +11 -0
@@ -0,0 +1,27 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=N(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=N(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return N(M(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function P(e,t,n){if(e==null)return e;var r=[],i=0;return N(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function F(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var I=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},L={map:P,forEach:function(e,t,n){P(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return P(e,function(){t++}),t},toArray:function(e){return P(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=L,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:F}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,I)}catch(e){I(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),u=o(((e,t)=>{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function D(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`)if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??i.d.M(e)},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`)if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else i.d.m(e)},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.7`})),m=o(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function d(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(e),t!==null)return t;e=e.sibling}return null}var h=Object.assign,g=Symbol.for(`react.element`),_=Symbol.for(`react.transitional.element`),v=Symbol.for(`react.portal`),y=Symbol.for(`react.fragment`),b=Symbol.for(`react.strict_mode`),x=Symbol.for(`react.profiler`),S=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),D=Symbol.for(`react.memo`),O=Symbol.for(`react.lazy`),k=Symbol.for(`react.activity`),A=Symbol.for(`react.memo_cache_sentinel`),j=Symbol.iterator;function M(e){return typeof e!=`object`||!e?null:(e=j&&e[j]||e[`@@iterator`],typeof e==`function`?e:null)}var N=Symbol.for(`react.client.reference`);function P(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===N?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case y:return`Fragment`;case x:return`Profiler`;case b:return`StrictMode`;case T:return`Suspense`;case E:return`SuspenseList`;case k:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case v:return`Portal`;case C:return e.displayName||`Context`;case S:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case D:return t=e.displayName||null,t===null?P(e.type)||`Memo`:t;case O:t=e._payload,e=e._init;try{return P(e(t))}catch{}}return null}var F=Array.isArray,I=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R={pending:!1,data:null,method:null,action:null},z=[],B=-1;function V(e){return{current:e}}function H(e){0>B||(e.current=z[B],z[B]=null,B--)}function U(e,t){B++,z[B]=e.current,e.current=t}var ee=V(null),W=V(null),te=V(null),ne=V(null);function re(e,t){switch(U(te,t),U(W,e),U(ee,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Ud(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Ud(t),e=Wd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}H(ee),U(ee,e)}function ie(){H(ee),H(W),H(te)}function ae(e){e.memoizedState!==null&&U(ne,e);var t=ee.current,n=Wd(t,e.type);t!==n&&(U(W,e),U(ee,n))}function oe(e){W.current===e&&(H(ee),H(W)),ne.current===e&&(H(ne),Qf._currentValue=R)}var se,ce;function le(e){if(se===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);se=t&&t[1]||``,ce=-1<e.stack.indexOf(`
2
+ at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
3
+ `+se+e+ce}var ue=!1;function de(e,t){if(!e||ue)return``;ue=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
4
+ `),l=s.split(`
5
+ `);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
6
+ `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ue=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?le(n):``}function fe(e,t){switch(e.tag){case 26:case 27:case 5:return le(e.type);case 16:return le(`Lazy`);case 13:return e.child!==t&&t!==null?le(`Suspense Fallback`):le(`Suspense`);case 19:return le(`SuspenseList`);case 0:case 15:return de(e.type,!1);case 11:return de(e.type.render,!1);case 1:return de(e.type,!0);case 31:return le(`Activity`);default:return``}}function pe(e){try{var t=``,n=null;do t+=fe(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
7
+ Error generating stack: `+e.message+`
8
+ `+e.stack}}var me=Object.prototype.hasOwnProperty,he=t.unstable_scheduleCallback,ge=t.unstable_cancelCallback,_e=t.unstable_shouldYield,ve=t.unstable_requestPaint,ye=t.unstable_now,be=t.unstable_getCurrentPriorityLevel,G=t.unstable_ImmediatePriority,xe=t.unstable_UserBlockingPriority,Se=t.unstable_NormalPriority,Ce=t.unstable_LowPriority,we=t.unstable_IdlePriority,Te=t.log,Ee=t.unstable_setDisableYieldValue,K=null,q=null;function De(e){if(typeof Te==`function`&&Ee(e),q&&typeof q.setStrictMode==`function`)try{q.setStrictMode(K,e)}catch{}}var Oe=Math.clz32?Math.clz32:je,ke=Math.log,Ae=Math.LN2;function je(e){return e>>>=0,e===0?32:31-(ke(e)/Ae|0)|0}var Me=256,Ne=262144,Pe=4194304;function Fe(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ie(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Fe(n))):i=Fe(o):i=Fe(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Fe(n))):i=Fe(o)):i=Fe(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Le(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Re(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ze(){var e=Pe;return Pe<<=1,!(Pe&62914560)&&(Pe=4194304),e}function Be(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ve(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function He(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-Oe(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&Ue(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function Ue(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Oe(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function J(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-Oe(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function We(e,t){var n=t&-t;return n=n&42?1:Ge(n),(n&(e.suspendedLanes|t))===0?n:0}function Ge(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Ke(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function qe(){var e=L.p;return e===0?(e=window.event,e===void 0?32:mp(e.type)):e}function Je(e,t){var n=L.p;try{return L.p=e,t()}finally{L.p=n}}var Ye=Math.random().toString(36).slice(2),Xe=`__reactFiber$`+Ye,Ze=`__reactProps$`+Ye,Qe=`__reactContainer$`+Ye,$e=`__reactEvents$`+Ye,et=`__reactListeners$`+Ye,tt=`__reactHandles$`+Ye,nt=`__reactResources$`+Ye,rt=`__reactMarker$`+Ye;function it(e){delete e[Xe],delete e[Ze],delete e[$e],delete e[et],delete e[tt]}function at(e){var t=e[Xe];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Qe]||n[Xe]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=df(e);e!==null;){if(n=e[Xe])return n;e=df(e)}return t}e=n,n=e.parentNode}return null}function ot(e){if(e=e[Xe]||e[Qe]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function st(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function ct(e){var t=e[nt];return t||=e[nt]={hoistableStyles:new Map,hoistableScripts:new Map},t}function lt(e){e[rt]=!0}var ut=new Set,dt={};function ft(e,t){pt(e,t),pt(e+`Capture`,t)}function pt(e,t){for(dt[e]=t,e=0;e<t.length;e++)ut.add(t[e])}var mt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),ht={},gt={};function _t(e){return me.call(gt,e)?!0:me.call(ht,e)?!1:mt.test(e)?gt[e]=!0:(ht[e]=!0,!1)}function vt(e,t,n){if(_t(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function yt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function bt(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function xt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function St(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Ct(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function wt(e){if(!e._valueTracker){var t=St(e)?`checked`:`value`;e._valueTracker=Ct(e,t,``+e[t])}}function Tt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=St(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function Et(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Dt=/[\n"\\]/g;function Ot(e){return e.replace(Dt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function kt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+xt(t)):e.value!==``+xt(t)&&(e.value=``+xt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):jt(e,o,xt(n)):jt(e,o,xt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+xt(s):e.removeAttribute(`name`)}function At(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){wt(e);return}n=n==null?``:``+xt(n),t=t==null?n:``+xt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),wt(e)}function jt(e,t,n){t===`number`&&Et(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Mt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+xt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Nt(e,t,n){if(t!=null&&(t=``+xt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+xt(n)}function Pt(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(F(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=xt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),wt(e)}function Ft(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var It=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function Lt(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||It.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Rt(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&Lt(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&Lt(e,o,t[o])}function zt(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var Bt=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),Vt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Ht(e){return Vt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function Ut(){}var Wt=null;function Gt(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Kt=null,qt=null;function Jt(e){var t=ot(e);if(t&&(e=t.stateNode)){var n=e[Ze]||null;a:switch(e=t.stateNode,t.type){case`input`:if(kt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+Ot(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[Ze]||null;if(!a)throw Error(i(90));kt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Tt(r)}break a;case`textarea`:Nt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Mt(e,!!n.multiple,t,!1)}}}var Yt=!1;function Xt(e,t,n){if(Yt)return e(t,n);Yt=!0;try{return e(t)}finally{if(Yt=!1,(Kt!==null||qt!==null)&&(bu(),Kt&&(t=Kt,e=qt,qt=Kt=null,Jt(t),e)))for(t=0;t<e.length;t++)Jt(e[t])}}function Zt(e,t){var n=e.stateNode;if(n===null)return null;var r=n[Ze]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=!(e===`button`||e===`input`||e===`select`||e===`textarea`)),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var Qt=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),$t=!1;if(Qt)try{var en={};Object.defineProperty(en,"passive",{get:function(){$t=!0}}),window.addEventListener(`test`,en,en),window.removeEventListener(`test`,en,en)}catch{$t=!1}var tn=null,nn=null,rn=null;function an(){if(rn)return rn;var e,t=nn,n=t.length,r,i=`value`in tn?tn.value:tn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return rn=i.slice(e,1<r?1-r:void 0)}function on(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function sn(){return!0}function cn(){return!1}function ln(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?sn:cn,this.isPropagationStopped=cn,this}return h(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=sn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=sn)},persist:function(){},isPersistent:sn}),t}var un={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},dn=ln(un),fn=h({},un,{view:0,detail:0}),pn=ln(fn),mn,hn,gn,_n=h({},fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:On,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==gn&&(gn&&e.type===`mousemove`?(mn=e.screenX-gn.screenX,hn=e.screenY-gn.screenY):hn=mn=0,gn=e),mn)},movementY:function(e){return`movementY`in e?e.movementY:hn}}),vn=ln(_n),yn=ln(h({},_n,{dataTransfer:0})),bn=ln(h({},fn,{relatedTarget:0})),xn=ln(h({},un,{animationName:0,elapsedTime:0,pseudoElement:0})),Sn=ln(h({},un,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Cn=ln(h({},un,{data:0})),wn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Tn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},En={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Dn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=En[e])?!!t[e]:!1}function On(){return Dn}var kn=ln(h({},fn,{key:function(e){if(e.key){var t=wn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=on(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Tn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:On,charCode:function(e){return e.type===`keypress`?on(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?on(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),An=ln(h({},_n,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),jn=ln(h({},fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:On})),Mn=ln(h({},un,{propertyName:0,elapsedTime:0,pseudoElement:0})),Nn=ln(h({},_n,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Pn=ln(h({},un,{newState:0,oldState:0})),Fn=[9,13,27,32],In=Qt&&`CompositionEvent`in window,Ln=null;Qt&&`documentMode`in document&&(Ln=document.documentMode);var Rn=Qt&&`TextEvent`in window&&!Ln,zn=Qt&&(!In||Ln&&8<Ln&&11>=Ln),Bn=` `,Vn=!1;function Hn(e,t){switch(e){case`keyup`:return Fn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Un(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Wn=!1;function Gn(e,t){switch(e){case`compositionend`:return Un(t);case`keypress`:return t.which===32?(Vn=!0,Bn):null;case`textInput`:return e=t.data,e===Bn&&Vn?null:e;default:return null}}function Kn(e,t){if(Wn)return e===`compositionend`||!In&&Hn(e,t)?(e=an(),rn=nn=tn=null,Wn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return zn&&t.locale!==`ko`?null:t.data;default:return null}}var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Jn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!qn[e.type]:t===`textarea`}function Yn(e,t,n,r){Kt?qt?qt.push(r):qt=[r]:Kt=r,t=Dd(t,`onChange`),0<t.length&&(n=new dn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var Xn=null,Zn=null;function Qn(e){yd(e,0)}function $n(e){if(Tt(st(e)))return e}function er(e,t){if(e===`change`)return t}var tr=!1;if(Qt){var nr;if(Qt){var rr=`oninput`in document;if(!rr){var ir=document.createElement(`div`);ir.setAttribute(`oninput`,`return;`),rr=typeof ir.oninput==`function`}nr=rr}else nr=!1;tr=nr&&(!document.documentMode||9<document.documentMode)}function ar(){Xn&&(Xn.detachEvent(`onpropertychange`,or),Zn=Xn=null)}function or(e){if(e.propertyName===`value`&&$n(Zn)){var t=[];Yn(t,Zn,e,Gt(e)),Xt(Qn,t)}}function sr(e,t,n){e===`focusin`?(ar(),Xn=t,Zn=n,Xn.attachEvent(`onpropertychange`,or)):e===`focusout`&&ar()}function cr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return $n(Zn)}function lr(e,t){if(e===`click`)return $n(t)}function ur(e,t){if(e===`input`||e===`change`)return $n(t)}function dr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var fr=typeof Object.is==`function`?Object.is:dr;function pr(e,t){if(fr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!me.call(t,i)||!fr(e[i],t[i]))return!1}return!0}function mr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function hr(e,t){var n=mr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=mr(n)}}function gr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?gr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function _r(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Et(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Et(e.document)}return t}function vr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var yr=Qt&&`documentMode`in document&&11>=document.documentMode,br=null,xr=null,Sr=null,Cr=!1;function wr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Cr||br==null||br!==Et(r)||(r=br,`selectionStart`in r&&vr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Sr&&pr(Sr,r)||(Sr=r,r=Dd(xr,`onSelect`),0<r.length&&(t=new dn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=br)))}function Tr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Er={animationend:Tr(`Animation`,`AnimationEnd`),animationiteration:Tr(`Animation`,`AnimationIteration`),animationstart:Tr(`Animation`,`AnimationStart`),transitionrun:Tr(`Transition`,`TransitionRun`),transitionstart:Tr(`Transition`,`TransitionStart`),transitioncancel:Tr(`Transition`,`TransitionCancel`),transitionend:Tr(`Transition`,`TransitionEnd`)},Dr={},Or={};Qt&&(Or=document.createElement(`div`).style,`AnimationEvent`in window||(delete Er.animationend.animation,delete Er.animationiteration.animation,delete Er.animationstart.animation),`TransitionEvent`in window||delete Er.transitionend.transition);function kr(e){if(Dr[e])return Dr[e];if(!Er[e])return e;var t=Er[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Or)return Dr[e]=t[n];return e}var Ar=kr(`animationend`),jr=kr(`animationiteration`),Mr=kr(`animationstart`),Nr=kr(`transitionrun`),Pr=kr(`transitionstart`),Fr=kr(`transitioncancel`),Ir=kr(`transitionend`),Lr=new Map,Rr=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);Rr.push(`scrollEnd`);function zr(e,t){Lr.set(e,t),ft(t,[e])}var Br=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},Vr=[],Hr=0,Ur=0;function Wr(){for(var e=Hr,t=Ur=Hr=0;t<e;){var n=Vr[t];Vr[t++]=null;var r=Vr[t];Vr[t++]=null;var i=Vr[t];Vr[t++]=null;var a=Vr[t];if(Vr[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&Jr(n,i,a)}}function Gr(e,t,n,r){Vr[Hr++]=e,Vr[Hr++]=t,Vr[Hr++]=n,Vr[Hr++]=r,Ur|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function Kr(e,t,n,r){return Gr(e,t,n,r),Yr(e)}function qr(e,t){return Gr(e,null,null,t),Yr(e)}function Jr(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-Oe(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function Yr(e){if(50<du)throw du=0,fu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Xr={};function Zr(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Qr(e,t,n,r){return new Zr(e,t,n,r)}function $r(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ei(e,t){var n=e.alternate;return n===null?(n=Qr(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function ti(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function ni(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)$r(e)&&(s=1);else if(typeof e==`string`)s=Uf(e,n,ee.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case k:return e=Qr(31,n,t,a),e.elementType=k,e.lanes=o,e;case y:return ri(n.children,a,o,t);case b:s=8,a|=24;break;case x:return e=Qr(12,n,t,a|2),e.elementType=x,e.lanes=o,e;case T:return e=Qr(13,n,t,a),e.elementType=T,e.lanes=o,e;case E:return e=Qr(19,n,t,a),e.elementType=E,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case C:s=10;break a;case S:s=9;break a;case w:s=11;break a;case D:s=14;break a;case O:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=Qr(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function ri(e,t,n,r){return e=Qr(7,e,r,t),e.lanes=n,e}function ii(e,t,n){return e=Qr(6,e,null,t),e.lanes=n,e}function ai(e){var t=Qr(18,null,null,0);return t.stateNode=e,t}function Y(e,t,n){return t=Qr(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var oi=new WeakMap;function si(e,t){if(typeof e==`object`&&e){var n=oi.get(e);return n===void 0?(t={value:e,source:t,stack:pe(t)},oi.set(e,t),t):n}return{value:e,source:t,stack:pe(t)}}var ci=[],li=0,ui=null,di=0,fi=[],pi=0,mi=null,hi=1,gi=``;function _i(e,t){ci[li++]=di,ci[li++]=ui,ui=e,di=t}function vi(e,t,n){fi[pi++]=hi,fi[pi++]=gi,fi[pi++]=mi,mi=e;var r=hi;e=gi;var i=32-Oe(r)-1;r&=~(1<<i),n+=1;var a=32-Oe(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,hi=1<<32-Oe(t)+i|n<<i|r,gi=a+e}else hi=1<<a|n<<i|r,gi=e}function yi(e){e.return!==null&&(_i(e,1),vi(e,1,0))}function bi(e){for(;e===ui;)ui=ci[--li],ci[li]=null,di=ci[--li],ci[li]=null;for(;e===mi;)mi=fi[--pi],fi[pi]=null,gi=fi[--pi],fi[pi]=null,hi=fi[--pi],fi[pi]=null}function xi(e,t){fi[pi++]=hi,fi[pi++]=gi,fi[pi++]=mi,hi=t.id,gi=t.overflow,mi=e}var Si=null,Ci=null,wi=!1,Ti=null,Ei=!1,Di=Error(i(519));function Oi(e){throw Pi(si(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Di}function ki(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[Xe]=e,t[Ze]=r,n){case`dialog`:bd(`cancel`,t),bd(`close`,t);break;case`iframe`:case`object`:case`embed`:bd(`load`,t);break;case`video`:case`audio`:for(n=0;n<_d.length;n++)bd(_d[n],t);break;case`source`:bd(`error`,t);break;case`img`:case`image`:case`link`:bd(`error`,t),bd(`load`,t);break;case`details`:bd(`toggle`,t);break;case`input`:bd(`invalid`,t),At(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:bd(`invalid`,t);break;case`textarea`:bd(`invalid`,t),Pt(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Nd(t.textContent,n)?(r.popover!=null&&(bd(`beforetoggle`,t),bd(`toggle`,t)),r.onScroll!=null&&bd(`scroll`,t),r.onScrollEnd!=null&&bd(`scrollend`,t),r.onClick!=null&&(t.onclick=Ut),t=!0):t=!1,t||Oi(e,!0)}function Ai(e){for(Si=e.return;Si;)switch(Si.tag){case 5:case 31:case 13:Ei=!1;return;case 27:case 3:Ei=!0;return;default:Si=Si.return}}function ji(e){if(e!==Si)return!1;if(!wi)return Ai(e),wi=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!==`form`&&n!==`button`)||Gd(e.type,e.memoizedProps)),n=!n),n&&Ci&&Oi(e),Ai(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Ci=uf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));Ci=uf(e)}else t===27?(t=Ci,$d(e.type)?(e=lf,lf=null,Ci=e):Ci=t):Ci=Si?$(e.stateNode.nextSibling):null;return!0}function Mi(){Ci=Si=null,wi=!1}function Ni(){var e=Ti;return e!==null&&(Zl===null?Zl=e:Zl.push.apply(Zl,e),Ti=null),e}function Pi(e){Ti===null?Ti=[e]:Ti.push(e)}var Fi=V(null),Ii=null,Li=null;function Ri(e,t,n){U(Fi,t._currentValue),t._currentValue=n}function zi(e){e._currentValue=Fi.current,H(Fi)}function Bi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Vi(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Bi(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),Bi(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function Hi(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;fr(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===ne.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[Qf]:e.push(Qf))}a=a.return}e!==null&&Vi(t,e,n,r),t.flags|=262144}function Ui(e){for(e=e.firstContext;e!==null;){if(!fr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Wi(e){Ii=e,Li=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Gi(e){return qi(Ii,e)}function Ki(e,t){return Ii===null&&Wi(e),qi(e,t)}function qi(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Li===null){if(e===null)throw Error(i(308));Li=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Li=Li.next=t;return n}var Ji=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},Yi=t.unstable_scheduleCallback,Xi=t.unstable_NormalPriority,Zi={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Qi(){return{controller:new Ji,data:new Map,refCount:0}}function $i(e){e.refCount--,e.refCount===0&&Yi(Xi,function(){e.controller.abort()})}var ea=null,ta=0,na=0,ra=null;function ia(e,t){if(ea===null){var n=ea=[];ta=0,na=fd(),ra={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return ta++,t.then(aa,aa),t}function aa(){if(--ta===0&&ea!==null){ra!==null&&(ra.status=`fulfilled`);var e=ea;ea=null,na=0,ra=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function oa(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var sa=I.S;I.S=function(e,t){eu=ye(),typeof t==`object`&&t&&typeof t.then==`function`&&ia(e,t),sa!==null&&sa(e,t)};var ca=V(null);function la(){var e=ca.current;return e===null?Fl.pooledCache:e}function ua(e,t){t===null?U(ca,ca.current):U(ca,t.pool)}function da(){var e=la();return e===null?null:{parent:Zi._currentValue,pool:e}}var fa=Error(i(460)),pa=Error(i(474)),ma=Error(i(542)),ha={then:function(){}};function ga(e){return e=e.status,e===`fulfilled`||e===`rejected`}function _a(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(Ut,Ut),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,xa(e),e;default:if(typeof t.status==`string`)t.then(Ut,Ut);else{if(e=Fl,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,xa(e),e}throw ya=t,fa}}function va(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(ya=e,fa):e}}var ya=null;function ba(){if(ya===null)throw Error(i(459));var e=ya;return ya=null,e}function xa(e){if(e===fa||e===ma)throw Error(i(483))}var Sa=null,Ca=0;function wa(e){var t=Ca;return Ca+=1,Sa===null&&(Sa=[]),_a(Sa,e,t)}function Ta(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Ea(e,t){throw t.$$typeof===g?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Da(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=ei(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=ii(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===y?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===O&&va(i)===t.type)?(t=a(t,n.props),Ta(t,n),t.return=e,t):(t=ni(n.type,n.key,n.props,null,e.mode,r),Ta(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=Y(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=ri(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=ii(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=ni(t.type,t.key,t.props,null,e.mode,n),Ta(n,t),n.return=e,n;case v:return t=Y(t,e.mode,n),t.return=e,t;case O:return t=va(t),f(e,t,n)}if(F(t)||M(t))return t=ri(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,wa(t),n);if(t.$$typeof===C)return f(e,Ki(e,t),n);Ea(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case _:return n.key===i?l(e,t,n,r):null;case v:return n.key===i?u(e,t,n,r):null;case O:return n=va(n),p(e,t,n,r)}if(F(n)||M(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,wa(n),r);if(n.$$typeof===C)return p(e,t,Ki(e,n),r);Ea(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case _:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case v:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case O:return r=va(r),m(e,t,n,r,i)}if(F(r)||M(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,wa(r),i);if(r.$$typeof===C)return m(e,t,n,Ki(t,r),i);Ea(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),wi&&_i(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return wi&&_i(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),wi&&_i(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),wi&&_i(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return wi&&_i(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),wi&&_i(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&va(l)===r.type){n(e,r.sibling),c=a(r,o.props),Ta(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=ri(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ni(o.type,o.key,o.props,null,e.mode,c),Ta(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=Y(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=va(o),b(e,r,o,c)}if(F(o))return h(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,wa(o),c);if(o.$$typeof===C)return b(e,r,Ki(e,o),c);Ea(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=ii(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ca=0;var i=b(e,t,n,r);return Sa=null,i}catch(t){if(t===fa||t===ma)throw t;var a=Qr(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Oa=Da(!0),ka=Da(!1),Aa=!1;function ja(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ma(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Na(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Pa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Pl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Yr(e),Jr(e,null,n),t}return Gr(e,r,t,n),Yr(e)}function Fa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,J(e,n)}}function Ia(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var La=!1;function Ra(){if(La){var e=ra;if(e!==null)throw e}}function za(e,t,n,r){La=!1;var i=e.updateQueue;Aa=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Ll&f)===f:(r&f)===f){f!==0&&f===na&&(La=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Aa=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Gl|=o,e.lanes=o,e.memoizedState=d}}function Ba(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Va(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Ba(n[e],t)}var Ha=V(null),Ua=V(0);function Wa(e,t){e=Ul,U(Ua,e),U(Ha,t),Ul=e|t.baseLanes}function Ga(){U(Ua,Ul),U(Ha,Ha.current)}function Ka(){Ul=Ua.current,H(Ha),H(Ua)}var qa=V(null),Ja=null;function Ya(e){var t=e.alternate;U(eo,eo.current&1),U(qa,e),Ja===null&&(t===null||Ha.current!==null||t.memoizedState!==null)&&(Ja=e)}function Xa(e){U(eo,eo.current),U(qa,e),Ja===null&&(Ja=e)}function Za(e){e.tag===22?(U(eo,eo.current),U(qa,e),Ja===null&&(Ja=e)):Qa(e)}function Qa(){U(eo,eo.current),U(qa,qa.current)}function $a(e){H(qa),Ja===e&&(Ja=null),H(eo)}var eo=V(0);function to(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||sf(n)||cf(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var no=0,ro=null,io=null,ao=null,oo=!1,so=!1,co=!1,lo=0,uo=0,fo=null,po=0;function mo(){throw Error(i(321))}function ho(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!fr(e[n],t[n]))return!1;return!0}function go(e,t,n,r,i,a){return no=a,ro=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,I.H=e===null||e.memoizedState===null?Ns:Ps,co=!1,a=n(r,i),co=!1,so&&(a=vo(t,n,r,i)),_o(e),a}function _o(e){I.H=Ms;var t=io!==null&&io.next!==null;if(no=0,ao=io=ro=null,oo=!1,uo=0,fo=null,t)throw Error(i(300));e===null||Zs||(e=e.dependencies,e!==null&&Ui(e)&&(Zs=!0))}function vo(e,t,n,r){ro=e;var a=0;do{if(so&&(fo=null),uo=0,so=!1,25<=a)throw Error(i(301));if(a+=1,ao=io=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}I.H=Fs,o=t(n,r)}while(so);return o}function yo(){var e=I.H,t=e.useState()[0];return t=typeof t.then==`function`?Eo(t):t,e=e.useState()[0],(io===null?null:io.memoizedState)!==e&&(ro.flags|=1024),t}function bo(){var e=lo!==0;return lo=0,e}function xo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function So(e){if(oo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}oo=!1}no=0,ao=io=ro=null,so=!1,uo=lo=0,fo=null}function Co(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ao===null?ro.memoizedState=ao=e:ao=ao.next=e,ao}function wo(){if(io===null){var e=ro.alternate;e=e===null?null:e.memoizedState}else e=io.next;var t=ao===null?ro.memoizedState:ao.next;if(t!==null)ao=t,io=e;else{if(e===null)throw ro.alternate===null?Error(i(467)):Error(i(310));io=e,e={memoizedState:io.memoizedState,baseState:io.baseState,baseQueue:io.baseQueue,queue:io.queue,next:null},ao===null?ro.memoizedState=ao=e:ao=ao.next=e}return ao}function To(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Eo(e){var t=uo;return uo+=1,fo===null&&(fo=[]),e=_a(fo,e,t),t=ro,(ao===null?t.memoizedState:ao.next)===null&&(t=t.alternate,I.H=t===null||t.memoizedState===null?Ns:Ps),e}function Do(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Eo(e);if(e.$$typeof===C)return Gi(e)}throw Error(i(438,String(e)))}function Oo(e){var t=null,n=ro.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=ro.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=To(),ro.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=A;return t.index++,n}function ko(e,t){return typeof t==`function`?t(e):t}function Ao(e){return jo(wo(),io,e)}function jo(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(no&f)===f:(Ll&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===na&&(d=!0);else if((no&p)===p){u=u.next,p===na&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,ro.lanes|=p,Gl|=p;f=u.action,co&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,ro.lanes|=f,Gl|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!fr(o,e.memoizedState)&&(Zs=!0,d&&(n=ra,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Mo(e){var t=wo(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);fr(o,t.memoizedState)||(Zs=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function No(e,t,n){var r=ro,a=wo(),o=wi;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!fr((io||a).memoizedState,n);if(s&&(a.memoizedState=n,Zs=!0),a=a.queue,is(Io.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||ao!==null&&ao.memoizedState.tag&1){if(r.flags|=2048,$o(9,{destroy:void 0},Fo.bind(null,r,a,n,t),null),Fl===null)throw Error(i(349));o||no&127||Po(r,t,n)}return n}function Po(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=ro.updateQueue,t===null?(t=To(),ro.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Fo(e,t,n,r){t.value=n,t.getSnapshot=r,Lo(t)&&Ro(e)}function Io(e,t,n){return n(function(){Lo(t)&&Ro(e)})}function Lo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!fr(e,n)}catch{return!0}}function Ro(e){var t=qr(e,2);t!==null&&hu(t,e,2)}function zo(e){var t=Co();if(typeof e==`function`){var n=e;if(e=n(),co){De(!0);try{n()}finally{De(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ko,lastRenderedState:e},t}function Bo(e,t,n,r){return e.baseState=n,jo(e,io,typeof r==`function`?r:ko)}function Vo(e,t,n,r,a){if(ks(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};I.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Ho(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Ho(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=I.T,o={};I.T=o;try{var s=n(i,r),c=I.S;c!==null&&c(o,s),Uo(e,t,s)}catch(n){Go(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),I.T=a}}else try{a=n(i,r),Uo(e,t,a)}catch(n){Go(e,t,n)}}function Uo(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Wo(e,t,n)},function(n){return Go(e,t,n)}):Wo(e,t,n)}function Wo(e,t,n){t.status=`fulfilled`,t.value=n,Ko(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Ho(e,n)))}function Go(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,Ko(t),t=t.next;while(t!==r)}e.action=null}function Ko(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function qo(e,t){return t}function Jo(e,t){if(wi){var n=Fl.formState;if(n!==null){a:{var r=ro;if(wi){if(Ci){b:{for(var i=Ci,a=Ei;i.nodeType!==8;){if(!a){i=null;break b}if(i=$(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){Ci=$(i.nextSibling),r=i.data===`F!`;break a}}Oi(r)}r=!1}r&&(t=n[0])}}return n=Co(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:qo,lastRenderedState:t},n.queue=r,n=Es.bind(null,ro,r),r.dispatch=n,r=zo(!1),a=Os.bind(null,ro,!1,r.queue),r=Co(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Vo.bind(null,ro,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function Yo(e){return Xo(wo(),io,e)}function Xo(e,t,n){if(t=jo(e,t,qo)[0],e=Ao(ko)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Eo(t)}catch(e){throw e===fa?ma:e}else r=t;t=wo();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(ro.flags|=2048,$o(9,{destroy:void 0},Zo.bind(null,i,n),null)),[r,a,e]}function Zo(e,t){e.action=t}function Qo(e){var t=wo(),n=io;if(n!==null)return Xo(t,n,e);wo(),t=t.memoizedState,n=wo();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function $o(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=ro.updateQueue,t===null&&(t=To(),ro.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function es(){return wo().memoizedState}function ts(e,t,n,r){var i=Co();ro.flags|=e,i.memoizedState=$o(1|t,{destroy:void 0},n,r===void 0?null:r)}function ns(e,t,n,r){var i=wo();r=r===void 0?null:r;var a=i.memoizedState.inst;io!==null&&r!==null&&ho(r,io.memoizedState.deps)?i.memoizedState=$o(t,a,n,r):(ro.flags|=e,i.memoizedState=$o(1|t,a,n,r))}function rs(e,t){ts(8390656,8,e,t)}function is(e,t){ns(2048,8,e,t)}function as(e){ro.flags|=4;var t=ro.updateQueue;if(t===null)t=To(),ro.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function os(e){var t=wo().memoizedState;return as({ref:t,nextImpl:e}),function(){if(Pl&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function ss(e,t){return ns(4,2,e,t)}function cs(e,t){return ns(4,4,e,t)}function ls(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function us(e,t,n){n=n==null?null:n.concat([e]),ns(4,4,ls.bind(null,t,e),n)}function ds(){}function fs(e,t){var n=wo();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&ho(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function ps(e,t){var n=wo();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&ho(t,r[1]))return r[0];if(r=e(),co){De(!0);try{e()}finally{De(!1)}}return n.memoizedState=[r,t],r}function ms(e,t,n){return n===void 0||no&1073741824&&!(Ll&261930)?e.memoizedState=t:(e.memoizedState=n,e=mu(),ro.lanes|=e,Gl|=e,n)}function hs(e,t,n,r){return fr(n,t)?n:Ha.current===null?!(no&42)||no&1073741824&&!(Ll&261930)?(Zs=!0,e.memoizedState=n):(e=mu(),ro.lanes|=e,Gl|=e,t):(e=ms(e,n,r),fr(e,t)||(Zs=!0),e)}function gs(e,t,n,r,i){var a=L.p;L.p=a!==0&&8>a?a:8;var o=I.T,s={};I.T=s,Os(e,!1,t,n);try{var c=i(),l=I.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ds(e,t,oa(c,r),pu(e)):Ds(e,t,r,pu(e))}catch(n){Ds(e,t,{then:function(){},status:`rejected`,reason:n},pu())}finally{L.p=a,o!==null&&s.types!==null&&(o.types=s.types),I.T=o}}function _s(){}function vs(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=ys(e).queue;gs(e,a,t,R,n===null?_s:function(){return bs(e),n(r)})}function ys(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:R,baseState:R,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ko,lastRenderedState:R},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ko,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function bs(e){var t=ys(e);t.next===null&&(t=e.alternate.memoizedState),Ds(e,t.next.queue,{},pu())}function xs(){return Gi(Qf)}function Ss(){return wo().memoizedState}function Cs(){return wo().memoizedState}function ws(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=pu();e=Na(n);var r=Pa(t,e,n);r!==null&&(hu(r,t,n),Fa(r,t,n)),t={cache:Qi()},e.payload=t;return}t=t.return}}function Ts(e,t,n){var r=pu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},ks(e)?As(t,n):(n=Kr(e,t,n,r),n!==null&&(hu(n,e,r),js(n,t,r)))}function Es(e,t,n){Ds(e,t,n,pu())}function Ds(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(ks(e))As(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,fr(s,o))return Gr(e,t,i,0),Fl===null&&Wr(),!1}catch{}if(n=Kr(e,t,i,r),n!==null)return hu(n,e,r),js(n,t,r),!0}return!1}function Os(e,t,n,r){if(r={lane:2,revertLane:fd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},ks(e)){if(t)throw Error(i(479))}else t=Kr(e,n,r,2),t!==null&&hu(t,e,2)}function ks(e){var t=e.alternate;return e===ro||t!==null&&t===ro}function As(e,t){so=oo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function js(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,J(e,n)}}var Ms={readContext:Gi,use:Do,useCallback:mo,useContext:mo,useEffect:mo,useImperativeHandle:mo,useLayoutEffect:mo,useInsertionEffect:mo,useMemo:mo,useReducer:mo,useRef:mo,useState:mo,useDebugValue:mo,useDeferredValue:mo,useTransition:mo,useSyncExternalStore:mo,useId:mo,useHostTransitionStatus:mo,useFormState:mo,useActionState:mo,useOptimistic:mo,useMemoCache:mo,useCacheRefresh:mo};Ms.useEffectEvent=mo;var Ns={readContext:Gi,use:Do,useCallback:function(e,t){return Co().memoizedState=[e,t===void 0?null:t],e},useContext:Gi,useEffect:rs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ts(4194308,4,ls.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ts(4194308,4,e,t)},useInsertionEffect:function(e,t){ts(4,2,e,t)},useMemo:function(e,t){var n=Co();t=t===void 0?null:t;var r=e();if(co){De(!0);try{e()}finally{De(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Co();if(n!==void 0){var i=n(t);if(co){De(!0);try{n(t)}finally{De(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ts.bind(null,ro,e),[r.memoizedState,e]},useRef:function(e){var t=Co();return e={current:e},t.memoizedState=e},useState:function(e){e=zo(e);var t=e.queue,n=Es.bind(null,ro,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ds,useDeferredValue:function(e,t){return ms(Co(),e,t)},useTransition:function(){var e=zo(!1);return e=gs.bind(null,ro,e.queue,!0,!1),Co().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=ro,a=Co();if(wi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Fl===null)throw Error(i(349));Ll&127||Po(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,rs(Io.bind(null,r,o,e),[e]),r.flags|=2048,$o(9,{destroy:void 0},Fo.bind(null,r,o,n,t),null),n},useId:function(){var e=Co(),t=Fl.identifierPrefix;if(wi){var n=gi,r=hi;n=(r&~(1<<32-Oe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=lo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=po++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:xs,useFormState:Jo,useActionState:Jo,useOptimistic:function(e){var t=Co();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Os.bind(null,ro,!0,n),n.dispatch=t,[e,t]},useMemoCache:Oo,useCacheRefresh:function(){return Co().memoizedState=ws.bind(null,ro)},useEffectEvent:function(e){var t=Co(),n={impl:e};return t.memoizedState=n,function(){if(Pl&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Ps={readContext:Gi,use:Do,useCallback:fs,useContext:Gi,useEffect:is,useImperativeHandle:us,useInsertionEffect:ss,useLayoutEffect:cs,useMemo:ps,useReducer:Ao,useRef:es,useState:function(){return Ao(ko)},useDebugValue:ds,useDeferredValue:function(e,t){return hs(wo(),io.memoizedState,e,t)},useTransition:function(){var e=Ao(ko)[0],t=wo().memoizedState;return[typeof e==`boolean`?e:Eo(e),t]},useSyncExternalStore:No,useId:Ss,useHostTransitionStatus:xs,useFormState:Yo,useActionState:Yo,useOptimistic:function(e,t){return Bo(wo(),io,e,t)},useMemoCache:Oo,useCacheRefresh:Cs};Ps.useEffectEvent=os;var Fs={readContext:Gi,use:Do,useCallback:fs,useContext:Gi,useEffect:is,useImperativeHandle:us,useInsertionEffect:ss,useLayoutEffect:cs,useMemo:ps,useReducer:Mo,useRef:es,useState:function(){return Mo(ko)},useDebugValue:ds,useDeferredValue:function(e,t){var n=wo();return io===null?ms(n,e,t):hs(n,io.memoizedState,e,t)},useTransition:function(){var e=Mo(ko)[0],t=wo().memoizedState;return[typeof e==`boolean`?e:Eo(e),t]},useSyncExternalStore:No,useId:Ss,useHostTransitionStatus:xs,useFormState:Qo,useActionState:Qo,useOptimistic:function(e,t){var n=wo();return io===null?(n.baseState=e,[e,n.queue.dispatch]):Bo(n,io,e,t)},useMemoCache:Oo,useCacheRefresh:Cs};Fs.useEffectEvent=os;function Is(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:h({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ls={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pu(),i=Na(r);i.payload=t,n!=null&&(i.callback=n),t=Pa(e,i,r),t!==null&&(hu(t,e,r),Fa(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pu(),i=Na(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Pa(e,i,r),t!==null&&(hu(t,e,r),Fa(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pu(),r=Na(n);r.tag=2,t!=null&&(r.callback=t),t=Pa(e,r,n),t!==null&&(hu(t,e,n),Fa(t,e,n))}};function Rs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!pr(n,r)||!pr(i,a):!0}function zs(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ls.enqueueReplaceState(t,t.state,null)}function Bs(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=h({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Vs(e){Br(e)}function Hs(e){console.error(e)}function Us(e){Br(e)}function Ws(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Gs(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Ks(e,t,n){return n=Na(n),n.tag=3,n.payload={element:null},n.callback=function(){Ws(e,t)},n}function qs(e){return e=Na(e),e.tag=3,e}function Js(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Gs(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Gs(t,n,r),typeof i!=`function`&&(ru===null?ru=new Set([this]):ru.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function Ys(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Hi(t,n,a,!0),n=qa.current,n!==null){switch(n.tag){case 31:case 13:return Ja===null?Du():n.alternate===null&&Wl===0&&(Wl=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===ha?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Ku(e,r,a)),!1;case 22:return n.flags|=65536,r===ha?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Ku(e,r,a)),!1}throw Error(i(435,n.tag))}return Ku(e,r,a),Du(),!1}if(wi)return t=qa.current,t===null?(r!==Di&&(t=Error(i(423),{cause:r}),Pi(si(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=si(r,n),a=Ks(e.stateNode,r,a),Ia(e,a),Wl!==4&&(Wl=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Di&&(e=Error(i(422),{cause:r}),Pi(si(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=si(o,n),Xl===null?Xl=[o]:Xl.push(o),Wl!==4&&(Wl=2),t===null)return!0;r=si(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=Ks(n.stateNode,r,e),Ia(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(ru===null||!ru.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=qs(a),Js(a,e,n,r),Ia(n,a),!1}n=n.return}while(n!==null);return!1}var Xs=Error(i(461)),Zs=!1;function Qs(e,t,n,r){t.child=e===null?ka(t,null,n,r):Oa(t,e.child,n,r)}function $s(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return Wi(t),r=go(e,t,n,o,a,i),s=bo(),e!==null&&!Zs?(xo(e,t,i),Cc(e,t,i)):(wi&&s&&yi(t),t.flags|=1,Qs(e,t,r,i),t.child)}function ec(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!$r(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,tc(e,t,a,r,i)):(e=ni(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!wc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?pr:n,n(o,r)&&e.ref===t.ref)return Cc(e,t,i)}return t.flags|=1,e=ei(a,r),e.ref=t.ref,e.return=t,t.child=e}function tc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(pr(a,r)&&e.ref===t.ref)if(Zs=!1,t.pendingProps=r=a,wc(e,i))e.flags&131072&&(Zs=!0);else return t.lanes=e.lanes,Cc(e,t,i)}return lc(e,t,n,r,i)}function nc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return ic(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&ua(t,a===null?null:a.cachePool),a===null?Ga():Wa(t,a),Za(t);else return r=t.lanes=536870912,ic(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&ua(t,null),Ga(),Qa(t)):(ua(t,a.cachePool),Wa(t,a),Qa(t),t.memoizedState=null);return Qs(e,t,i,n),t.child}function rc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function ic(e,t,n,r,i){var a=la();return a=a===null?null:{parent:Zi._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&ua(t,null),Ga(),Za(t),e!==null&&Hi(e,t,r,!0),t.childLanes=i,null}function ac(e,t){return t=vc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function oc(e,t,n){return Oa(t,e.child,null,n),e=ac(t,t.pendingProps),e.flags|=2,$a(t),t.memoizedState=null,e}function sc(e,t,n){var r=t.pendingProps,a=(t.flags&128)!=0;if(t.flags&=-129,e===null){if(wi){if(r.mode===`hidden`)return e=ac(t,r),t.lanes=536870912,rc(null,e);if(Xa(t),(e=Ci)?(e=of(e,Ei),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:mi===null?null:{id:hi,overflow:gi},retryLane:536870912,hydrationErrors:null},n=ai(e),n.return=t,t.child=n,Si=t,Ci=null)):e=null,e===null)throw Oi(t);return t.lanes=536870912,null}return ac(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(Xa(t),a)if(t.flags&256)t.flags&=-257,t=oc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558));else if(Zs||Hi(e,t,n,!1),a=(n&e.childLanes)!==0,Zs||a){if(r=Fl,r!==null&&(s=We(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,qr(e,s),hu(r,e,s),Xs;Du(),t=oc(e,t,n)}else e=o.treeContext,Ci=$(s.nextSibling),Si=t,wi=!0,Ti=null,Ei=!1,e!==null&&xi(t,e),t=ac(t,r),t.flags|=4096;return t}return e=ei(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function cc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function lc(e,t,n,r,i){return Wi(t),n=go(e,t,n,r,void 0,i),r=bo(),e!==null&&!Zs?(xo(e,t,i),Cc(e,t,i)):(wi&&r&&yi(t),t.flags|=1,Qs(e,t,n,i),t.child)}function uc(e,t,n,r,i,a){return Wi(t),t.updateQueue=null,n=vo(t,r,n,i),_o(e),r=bo(),e!==null&&!Zs?(xo(e,t,a),Cc(e,t,a)):(wi&&r&&yi(t),t.flags|=1,Qs(e,t,n,a),t.child)}function dc(e,t,n,r,i){if(Wi(t),t.stateNode===null){var a=Xr,o=n.contextType;typeof o==`object`&&o&&(a=Gi(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Ls,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},ja(t),o=n.contextType,a.context=typeof o==`object`&&o?Gi(o):Xr,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Is(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Ls.enqueueReplaceState(a,a.state,null),za(t,r,a,i),Ra(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Bs(n,s);a.props=c;var l=a.context,u=n.contextType;o=Xr,typeof u==`object`&&u&&(o=Gi(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&zs(t,a,r,o),Aa=!1;var f=t.memoizedState;a.state=f,za(t,r,a,i),Ra(),l=t.memoizedState,s||f!==l||Aa?(typeof d==`function`&&(Is(t,n,d,r),l=t.memoizedState),(c=Aa||Rs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Ma(e,t),o=t.memoizedProps,u=Bs(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=Xr,typeof l==`object`&&l&&(c=Gi(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&zs(t,a,r,c),Aa=!1,f=t.memoizedState,a.state=f,za(t,r,a,i),Ra();var p=t.memoizedState;o!==d||f!==p||Aa||e!==null&&e.dependencies!==null&&Ui(e.dependencies)?(typeof s==`function`&&(Is(t,n,s,r),p=t.memoizedState),(u=Aa||Rs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Ui(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,cc(e,t),r=(t.flags&128)!=0,a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Oa(t,e.child,null,i),t.child=Oa(t,null,n,i)):Qs(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Cc(e,t,i),e}function fc(e,t,n,r){return Mi(),t.flags|=256,Qs(e,t,n,r),t.child}var pc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function mc(e){return{baseLanes:e,cachePool:da()}}function hc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Jl),e}function gc(e,t,n){var r=t.pendingProps,a=!1,o=(t.flags&128)!=0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(eo.current&2)!=0),s&&(a=!0,t.flags&=-129),s=(t.flags&32)!=0,t.flags&=-33,e===null){if(wi){if(a?Ya(t):Qa(t),(e=Ci)?(e=of(e,Ei),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:mi===null?null:{id:hi,overflow:gi},retryLane:536870912,hydrationErrors:null},n=ai(e),n.return=t,t.child=n,Si=t,Ci=null)):e=null,e===null)throw Oi(t);return cf(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(Qa(t),a=t.mode,c=vc({mode:`hidden`,children:c},a),r=ri(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=mc(n),r.childLanes=hc(e,s,n),t.memoizedState=pc,rc(null,r)):(Ya(t),_c(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(Ya(t),t.flags&=-257,t=yc(e,t,n)):t.memoizedState===null?(Qa(t),c=r.fallback,a=t.mode,r=vc({mode:`visible`,children:r.children},a),c=ri(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Oa(t,e.child,null,n),r=t.child,r.memoizedState=mc(n),r.childLanes=hc(e,s,n),t.memoizedState=pc,t=rc(null,r)):(Qa(t),t.child=e.child,t.flags|=128,t=null);else if(Ya(t),cf(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Pi({value:r,source:null,stack:null}),t=yc(e,t,n)}else if(Zs||Hi(e,t,n,!1),s=(n&e.childLanes)!==0,Zs||s){if(s=Fl,s!==null&&(r=We(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,qr(e,r),hu(s,e,r),Xs;sf(c)||Du(),t=yc(e,t,n)}else sf(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,Ci=$(c.nextSibling),Si=t,wi=!0,Ti=null,Ei=!1,e!==null&&xi(t,e),t=_c(t,r.children),t.flags|=4096);return t}return a?(Qa(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=ei(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=ri(c,a,n,null),c.flags|=2):c=ei(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,rc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=mc(n):(a=c.cachePool,a===null?a=da():(l=Zi._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=hc(e,s,n),t.memoizedState=pc,rc(e.child,r)):(Ya(t),n=e.child,e=n.sibling,n=ei(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function _c(e,t){return t=vc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function vc(e,t){return e=Qr(22,e,null,t),e.lanes=0,e}function yc(e,t,n){return Oa(t,e.child,null,n),e=_c(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function bc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Bi(e.return,t,n)}function xc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Sc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=eo.current,s=(o&2)!=0;if(s?(o=o&1|2,t.flags|=128):o&=1,U(eo,o),Qs(e,t,r,n),r=wi?di:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&bc(e,n,t);else if(e.tag===19)bc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&to(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),xc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&to(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}xc(t,!0,n,null,a,r);break;case`together`:xc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Cc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Gl|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(Hi(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=ei(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=ei(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function wc(e,t){return(e.lanes&t)===0?(e=e.dependencies,!!(e!==null&&Ui(e))):!0}function Tc(e,t,n){switch(t.tag){case 3:re(t,t.stateNode.containerInfo),Ri(t,Zi,e.memoizedState.cache),Mi();break;case 27:case 5:ae(t);break;case 4:re(t,t.stateNode.containerInfo);break;case 10:Ri(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Xa(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(Ya(t),e=Cc(e,t,n),e===null?null:e.sibling):gc(e,t,n):(Ya(t),t.flags|=128,null);Ya(t);break;case 19:var i=(e.flags&128)!=0;if(r=(n&t.childLanes)!==0,r||=(Hi(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Sc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),U(eo,eo.current),r)break;return null;case 22:return t.lanes=0,nc(e,t,n,t.pendingProps);case 24:Ri(t,Zi,e.memoizedState.cache)}return Cc(e,t,n)}function Ec(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)Zs=!0;else{if(!wc(e,n)&&!(t.flags&128))return Zs=!1,Tc(e,t,n);Zs=!!(e.flags&131072)}else Zs=!1,wi&&t.flags&1048576&&vi(t,di,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=va(t.elementType),t.type=e,typeof e==`function`)$r(e)?(r=Bs(e,r),t.tag=1,t=dc(null,t,e,r,n)):(t.tag=0,t=lc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===w){t.tag=11,t=$s(null,t,e,r,n);break a}else if(a===D){t.tag=14,t=ec(null,t,e,r,n);break a}}throw t=P(e)||e,Error(i(306,t,``))}}return t;case 0:return lc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=Bs(r,t.pendingProps),dc(e,t,r,a,n);case 3:a:{if(re(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,Ma(e,t),za(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Ri(t,Zi,r),r!==o.cache&&Vi(t,[Zi],n,!0),Ra(),r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=fc(e,t,r,n);break a}else if(r!==a){a=si(Error(i(424)),t),Pi(a),t=fc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(Ci=$(e.firstChild),Si=t,wi=!0,Ti=null,Ei=!0,n=ka(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Mi(),r===a){t=Cc(e,t,n);break a}Qs(e,t,r,n)}t=t.child}return t;case 26:return cc(e,t),e===null?(n=kf(t.type,null,t.pendingProps,null))?t.memoizedState=n:wi||(n=t.type,e=t.pendingProps,r=Hd(te.current).createElement(n),r[Xe]=t,r[Ze]=e,Id(r,n,e),lt(r),t.stateNode=r):t.memoizedState=kf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return ae(t),e===null&&wi&&(r=t.stateNode=ff(t.type,t.pendingProps,te.current),Si=t,Ei=!0,a=Ci,$d(t.type)?(lf=a,Ci=$(r.firstChild)):Ci=a),Qs(e,t,t.pendingProps.children,n),cc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&wi&&((a=r=Ci)&&(r=rf(r,t.type,t.pendingProps,Ei),r===null?a=!1:(t.stateNode=r,Si=t,Ci=$(r.firstChild),Ei=!1,a=!0)),a||Oi(t)),ae(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Gd(a,o)?r=null:s!==null&&Gd(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=go(e,t,yo,null,null,n),Qf._currentValue=a),cc(e,t),Qs(e,t,r,n),t.child;case 6:return e===null&&wi&&((e=n=Ci)&&(n=af(n,t.pendingProps,Ei),n===null?e=!1:(t.stateNode=n,Si=t,Ci=null,e=!0)),e||Oi(t)),null;case 13:return gc(e,t,n);case 4:return re(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Oa(t,null,r,n):Qs(e,t,r,n),t.child;case 11:return $s(e,t,t.type,t.pendingProps,n);case 7:return Qs(e,t,t.pendingProps,n),t.child;case 8:return Qs(e,t,t.pendingProps.children,n),t.child;case 12:return Qs(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Ri(t,t.type,r.value),Qs(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,Wi(t),a=Gi(a),r=r(a),t.flags|=1,Qs(e,t,r,n),t.child;case 14:return ec(e,t,t.type,t.pendingProps,n);case 15:return tc(e,t,t.type,t.pendingProps,n);case 19:return Sc(e,t,n);case 31:return sc(e,t,n);case 22:return nc(e,t,n,t.pendingProps);case 24:return Wi(t),r=Gi(Zi),e===null?(a=la(),a===null&&(a=Fl,o=Qi(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},ja(t),Ri(t,Zi,a)):((e.lanes&n)!==0&&(Ma(e,t),za(t,null,null,n),Ra()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,Ri(t,Zi,r),r!==a.cache&&Vi(t,[Zi],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),Ri(t,Zi,r))),Qs(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Dc(e){e.flags|=4}function Oc(e,t,n,r,i){if((t=(e.mode&32)!=0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(wu())e.flags|=8192;else throw ya=ha,pa}else e.flags&=-16777217}function kc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Wf(t))if(wu())e.flags|=8192;else throw ya=ha,pa}function Ac(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:ze(),e.lanes|=t,Yl|=t)}function jc(e,t){if(!wi)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Mc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Nc(e,t,n){var r=t.pendingProps;switch(bi(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Mc(t),null;case 1:return Mc(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),zi(Zi),ie(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(ji(t)?Dc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ni())),Mc(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(Dc(t),o===null?(Mc(t),Oc(t,a,null,r,n)):(Mc(t),kc(t,o))):o?o===e.memoizedState?(Mc(t),t.flags&=-16777217):(Dc(t),Mc(t),kc(t,o)):(e=e.memoizedProps,e!==r&&Dc(t),Mc(t),Oc(t,a,e,r,n)),null;case 27:if(oe(t),n=te.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Dc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Mc(t),null}e=ee.current,ji(t)?ki(t,e):(e=ff(a,r,n),t.stateNode=e,Dc(t))}return Mc(t),null;case 5:if(oe(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Dc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return Mc(t),null}if(o=ee.current,ji(t))ki(t,o);else{var s=Hd(te.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[Xe]=t,o[Ze]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Id(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Dc(t)}}return Mc(t),Oc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Dc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=te.current,ji(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Si,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Xe]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Nd(e.nodeValue,n)),e||Oi(t,!0)}else e=Hd(e).createTextNode(r),e[Xe]=t,t.stateNode=e}return Mc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=ji(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[Xe]=t}else Mi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Mc(t),e=!1}else n=Ni(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?($a(t),t):($a(t),null);if(t.flags&128)throw Error(i(558))}return Mc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=ji(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[Xe]=t}else Mi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Mc(t),a=!1}else a=Ni(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?($a(t),t):($a(t),null)}return $a(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Ac(t,t.updateQueue),Mc(t),null);case 4:return ie(),e===null&&Cd(t.stateNode.containerInfo),Mc(t),null;case 10:return zi(t.type),Mc(t),null;case 19:if(H(eo),r=t.memoizedState,r===null)return Mc(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)jc(r,!1);else{if(Wl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=to(e),o!==null){for(t.flags|=128,jc(r,!1),e=o.updateQueue,t.updateQueue=e,Ac(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ti(n,e),n=n.sibling;return U(eo,eo.current&1|2),wi&&_i(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&ye()>tu&&(t.flags|=128,a=!0,jc(r,!1),t.lanes=4194304)}else{if(!a)if(e=to(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Ac(t,e),jc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!wi)return Mc(t),null}else 2*ye()-r.renderingStartTime>tu&&n!==536870912&&(t.flags|=128,a=!0,jc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Mc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ye(),e.sibling=null,n=eo.current,U(eo,a?n&1|2:n&1),wi&&_i(t,r.treeForkCount),e);case 22:case 23:return $a(t),Ka(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Mc(t),t.subtreeFlags&6&&(t.flags|=8192)):Mc(t),n=t.updateQueue,n!==null&&Ac(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&H(ca),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),zi(Zi),Mc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Pc(e,t){switch(bi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return zi(Zi),ie(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return oe(t),null;case 31:if(t.memoizedState!==null){if($a(t),t.alternate===null)throw Error(i(340));Mi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if($a(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Mi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return H(eo),null;case 4:return ie(),null;case 10:return zi(t.type),null;case 22:case 23:return $a(t),Ka(),e!==null&&H(ca),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return zi(Zi),null;case 25:return null;default:return null}}function Fc(e,t){switch(bi(t),t.tag){case 3:zi(Zi),ie();break;case 26:case 27:case 5:oe(t);break;case 4:ie();break;case 31:t.memoizedState!==null&&$a(t);break;case 13:$a(t);break;case 19:H(eo);break;case 10:zi(t.type);break;case 22:case 23:$a(t),Ka(),e!==null&&H(ca);break;case 24:zi(Zi)}}function Ic(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Gu(t,t.return,e)}}function Lc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Gu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Gu(t,t.return,e)}}function Rc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Va(t,n)}catch(t){Gu(e,e.return,t)}}}function zc(e,t,n){n.props=Bs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Gu(e,t,n)}}function Bc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Gu(e,t,n)}}function Vc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Gu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Gu(e,t,n)}else n.current=null}function Hc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Gu(e,e.return,t)}}function Uc(e,t,n){try{var r=e.stateNode;Ld(r,e.type,n,t),r[Ze]=t}catch(t){Gu(e,e.return,t)}}function Wc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&$d(e.type)||e.tag===4}function Gc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Wc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&$d(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Kc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ut));else if(r!==4&&(r===27&&$d(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Kc(e,t,n),e=e.sibling;e!==null;)Kc(e,t,n),e=e.sibling}function qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&$d(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(qc(e,t,n),e=e.sibling;e!==null;)qc(e,t,n),e=e.sibling}function Jc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Id(t,r,n),t[Xe]=e,t[Ze]=n}catch(t){Gu(e,e.return,t)}}var Yc=!1,Xc=!1,Zc=!1,Qc=typeof WeakSet==`function`?WeakSet:Set,$c=null;function el(e,t){if(e=e.containerInfo,Bd=sp,e=_r(e),vr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Vd={focusedElem:e,selectionRange:n},sp=!1,$c=t;$c!==null;)if(t=$c,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,$c=e;else for(;$c!==null;){switch(t=$c,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=Bs(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Gu(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)nf(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:nf(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(i(163))}if(e=t.sibling,e!==null){e.return=t.return,$c=e;break}$c=t.return}}function tl(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:hl(e,n),r&4&&Ic(5,n);break;case 1:if(hl(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Gu(n,n.return,e)}else{var i=Bs(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Gu(n,n.return,e)}}r&64&&Rc(n),r&512&&Bc(n,n.return);break;case 3:if(hl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Va(e,t)}catch(e){Gu(n,n.return,e)}}break;case 27:t===null&&r&4&&Jc(n);case 26:case 5:hl(e,n),t===null&&r&4&&Hc(n),r&512&&Bc(n,n.return);break;case 12:hl(e,n);break;case 31:hl(e,n),r&4&&sl(e,n);break;case 13:hl(e,n),r&4&&cl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Yu.bind(null,n),Q(e,n))));break;case 22:if(r=n.memoizedState!==null||Yc,!r){t=t!==null&&t.memoizedState!==null||Xc,i=Yc;var a=Xc;Yc=r,(Xc=t)&&!a?_l(e,n,(n.subtreeFlags&8772)!=0):hl(e,n),Yc=i,Xc=a}break;case 30:break;default:hl(e,n)}}function nl(e){var t=e.alternate;t!==null&&(e.alternate=null,nl(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&it(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var rl=null,il=!1;function al(e,t,n){for(n=n.child;n!==null;)ol(e,t,n),n=n.sibling}function ol(e,t,n){if(q&&typeof q.onCommitFiberUnmount==`function`)try{q.onCommitFiberUnmount(K,n)}catch{}switch(n.tag){case 26:Xc||Vc(n,t),al(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:Xc||Vc(n,t);var r=rl,i=il;$d(n.type)&&(rl=n.stateNode,il=!1),al(e,t,n),pf(n.stateNode),rl=r,il=i;break;case 5:Xc||Vc(n,t);case 6:if(r=rl,i=il,rl=null,al(e,t,n),rl=r,il=i,rl!==null)if(il)try{(rl.nodeType===9?rl.body:rl.nodeName===`HTML`?rl.ownerDocument.body:rl).removeChild(n.stateNode)}catch(e){Gu(n,t,e)}else try{rl.removeChild(n.stateNode)}catch(e){Gu(n,t,e)}break;case 18:rl!==null&&(il?(e=rl,ef(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Np(e)):ef(rl,n.stateNode));break;case 4:r=rl,i=il,rl=n.stateNode.containerInfo,il=!0,al(e,t,n),rl=r,il=i;break;case 0:case 11:case 14:case 15:Lc(2,n,t),Xc||Lc(4,n,t),al(e,t,n);break;case 1:Xc||(Vc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&zc(n,t,r)),al(e,t,n);break;case 21:al(e,t,n);break;case 22:Xc=(r=Xc)||n.memoizedState!==null,al(e,t,n),Xc=r;break;default:al(e,t,n)}}function sl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Np(e)}catch(e){Gu(t,t.return,e)}}}function cl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Np(e)}catch(e){Gu(t,t.return,e)}}function ll(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Qc),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Qc),t;default:throw Error(i(435,e.tag))}}function ul(e,t){var n=ll(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Xu.bind(null,e,t);t.then(r,r)}})}function dl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if($d(c.type)){rl=c.stateNode,il=!1;break a}break;case 5:rl=c.stateNode,il=!1;break a;case 3:case 4:rl=c.stateNode.containerInfo,il=!0;break a}c=c.return}if(rl===null)throw Error(i(160));ol(o,s,a),rl=null,il=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)pl(t,e),t=t.sibling}var fl=null;function pl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:dl(t,e),ml(e),r&4&&(Lc(3,e,e.return),Ic(3,e),Lc(5,e,e.return));break;case 1:dl(t,e),ml(e),r&512&&(Xc||n===null||Vc(n,n.return)),r&64&&Yc&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var a=fl;if(dl(t,e),ml(e),r&512&&(Xc||n===null||Vc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[rt]||o[Xe]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),Id(o,r,n),o[Xe]=e,lt(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),Id(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=Vf(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),Id(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[Xe]=e,lt(o),r=o}e.stateNode=r}else Hf(a,e.type,e.stateNode);else e.stateNode=If(a,r,e.memoizedProps);else o===r?r===null&&e.stateNode!==null&&Uc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Hf(a,e.type,e.stateNode):If(a,r,e.memoizedProps))}break;case 27:dl(t,e),ml(e),r&512&&(Xc||n===null||Vc(n,n.return)),n!==null&&r&4&&Uc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(dl(t,e),ml(e),r&512&&(Xc||n===null||Vc(n,n.return)),e.flags&32){a=e.stateNode;try{Ft(a,``)}catch(t){Gu(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,Uc(e,a,n===null?a:n.memoizedProps)),r&1024&&(Zc=!0);break;case 6:if(dl(t,e),ml(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Gu(e,e.return,t)}}break;case 3:if(Bf=null,a=fl,fl=gf(t.containerInfo),dl(t,e),fl=a,ml(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Np(t.containerInfo)}catch(t){Gu(e,e.return,t)}Zc&&(Zc=!1,X(e));break;case 4:r=fl,fl=gf(e.stateNode.containerInfo),dl(t,e),ml(e),fl=r;break;case 12:dl(t,e),ml(e);break;case 31:dl(t,e),ml(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ul(e,r)));break;case 13:dl(t,e),ml(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&($l=ye()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ul(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=Yc,d=Xc;if(Yc=u||a,Xc=d||l,dl(t,e),Xc=d,Yc=u,ml(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||Yc||Xc||gl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Gu(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){Gu(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?tf(m,!0):tf(l.stateNode,!1)}catch(e){Gu(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,ul(e,n))));break;case 19:dl(t,e),ml(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,ul(e,r)));break;case 30:break;case 21:break;default:dl(t,e),ml(e)}}function ml(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Wc(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;qc(e,Gc(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(Ft(o,``),n.flags&=-33),qc(e,Gc(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;Kc(e,Gc(e),s);break;default:throw Error(i(161))}}catch(t){Gu(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function X(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;X(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function hl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)tl(e,t.alternate,t),t=t.sibling}function gl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Lc(4,t,t.return),gl(t);break;case 1:Vc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&zc(t,t.return,n),gl(t);break;case 27:pf(t.stateNode);case 26:case 5:Vc(t,t.return),gl(t);break;case 22:t.memoizedState===null&&gl(t);break;case 30:gl(t);break;default:gl(t)}e=e.sibling}}function _l(e,t,n){for(n&&=(t.subtreeFlags&8772)!=0,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:_l(i,a,n),Ic(4,a);break;case 1:if(_l(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Gu(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)Ba(c[i],s)}catch(e){Gu(r,r.return,e)}}n&&o&64&&Rc(a),Bc(a,a.return);break;case 27:Jc(a);case 26:case 5:_l(i,a,n),n&&r===null&&o&4&&Hc(a),Bc(a,a.return);break;case 12:_l(i,a,n);break;case 31:_l(i,a,n),n&&o&4&&sl(i,a);break;case 13:_l(i,a,n),n&&o&4&&cl(i,a);break;case 22:a.memoizedState===null&&_l(i,a,n),Bc(a,a.return);break;case 30:break;default:_l(i,a,n)}t=t.sibling}}function vl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&$i(n))}function yl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&$i(e))}function bl(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)xl(e,t,n,r),t=t.sibling}function xl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:bl(e,t,n,r),i&2048&&Ic(9,t);break;case 1:bl(e,t,n,r);break;case 3:bl(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&$i(e)));break;case 12:if(i&2048){bl(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Gu(t,t.return,e)}}else bl(e,t,n,r);break;case 31:bl(e,t,n,r);break;case 13:bl(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?bl(e,t,n,r):(a._visibility|=2,Sl(e,t,n,r,(t.subtreeFlags&10256)!=0||!1)):a._visibility&2?bl(e,t,n,r):Cl(e,t),i&2048&&vl(o,t);break;case 24:bl(e,t,n,r),i&2048&&yl(t.alternate,t);break;default:bl(e,t,n,r)}}function Sl(e,t,n,r,i){for(i&&=(t.subtreeFlags&10256)!=0||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Sl(a,o,s,c,i),Ic(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Sl(a,o,s,c,i)):u._visibility&2?Sl(a,o,s,c,i):Cl(a,o),i&&l&2048&&vl(o.alternate,o);break;case 24:Sl(a,o,s,c,i),i&&l&2048&&yl(o.alternate,o);break;default:Sl(a,o,s,c,i)}t=t.sibling}}function Cl(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Cl(n,r),i&2048&&vl(r.alternate,r);break;case 24:Cl(n,r),i&2048&&yl(r.alternate,r);break;default:Cl(n,r)}t=t.sibling}}var wl=8192;function Tl(e,t,n){if(e.subtreeFlags&wl)for(e=e.child;e!==null;)El(e,t,n),e=e.sibling}function El(e,t,n){switch(e.tag){case 26:Tl(e,t,n),e.flags&wl&&e.memoizedState!==null&&Gf(n,fl,e.memoizedState,e.memoizedProps);break;case 5:Tl(e,t,n);break;case 3:case 4:var r=fl;fl=gf(e.stateNode.containerInfo),Tl(e,t,n),fl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=wl,wl=16777216,Tl(e,t,n),wl=r):Tl(e,t,n));break;default:Tl(e,t,n)}}function Dl(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Ol(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];$c=r,jl(r,e)}Dl(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)kl(e),e=e.sibling}function kl(e){switch(e.tag){case 0:case 11:case 15:Ol(e),e.flags&2048&&Lc(9,e,e.return);break;case 3:Ol(e);break;case 12:Ol(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Al(e)):Ol(e);break;default:Ol(e)}}function Al(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];$c=r,jl(r,e)}Dl(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Lc(8,t,t.return),Al(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Al(t));break;default:Al(t)}e=e.sibling}}function jl(e,t){for(;$c!==null;){var n=$c;switch(n.tag){case 0:case 11:case 15:Lc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:$i(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,$c=r;else a:for(n=e;$c!==null;){r=$c;var i=r.sibling,a=r.return;if(nl(r),r===n){$c=null;break a}if(i!==null){i.return=a,$c=i;break a}$c=a}}}var Ml={getCacheForType:function(e){var t=Gi(Zi),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Gi(Zi).controller.signal}},Nl=typeof WeakMap==`function`?WeakMap:Map,Pl=0,Fl=null,Il=null,Ll=0,Rl=0,zl=null,Bl=!1,Vl=!1,Hl=!1,Ul=0,Wl=0,Gl=0,Kl=0,ql=0,Jl=0,Yl=0,Xl=null,Zl=null,Ql=!1,$l=0,eu=0,tu=1/0,nu=null,ru=null,iu=0,au=null,ou=null,su=0,cu=0,lu=null,uu=null,du=0,fu=null;function pu(){return Pl&2&&Ll!==0?Ll&-Ll:I.T===null?qe():fd()}function mu(){if(Jl===0)if(!(Ll&536870912)||wi){var e=Ne;Ne<<=1,!(Ne&3932160)&&(Ne=262144),Jl=e}else Jl=536870912;return e=qa.current,e!==null&&(e.flags|=32),Jl}function hu(e,t,n){(e===Fl&&(Rl===2||Rl===9)||e.cancelPendingCommit!==null)&&(Su(e,0),yu(e,Ll,Jl,!1)),Ve(e,n),(!(Pl&2)||e!==Fl)&&(e===Fl&&(!(Pl&2)&&(Kl|=n),Wl===4&&yu(e,Ll,Jl,!1)),id(e))}function gu(e,t,n){if(Pl&6)throw Error(i(327));var r=!n&&(t&127)==0&&(t&e.expiredLanes)===0||Le(e,t),a=r?Au(e,t):Ou(e,t,!0),o=r;do{if(a===0){Vl&&!r&&yu(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!vu(n)){a=Ou(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=Xl;var l=c.current.memoizedState.isDehydrated;if(l&&(Su(c,s).flags|=256),s=Ou(c,s,!1),s!==2){if(Hl&&!l){c.errorRecoveryDisabledLanes|=o,Kl|=o,a=4;break a}o=Zl,Zl=a,o!==null&&(Zl===null?Zl=o:Zl.push.apply(Zl,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Su(e,0),yu(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:yu(r,t,Jl,!Bl);break a;case 2:Zl=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=$l+300-ye(),10<a)){if(yu(r,t,Jl,!Bl),Ie(r,0,!0)!==0)break a;su=t,r.timeoutHandle=Jd(_u.bind(null,r,n,Zl,nu,Ql,t,Jl,Kl,Yl,Bl,o,`Throttled`,-0,0),a);break a}_u(r,n,Zl,nu,Ql,t,Jl,Kl,Yl,Bl,o,null,-0,0)}}break}while(1);id(e)}function _u(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Ut},El(t,a,d);var m=(a&62914560)===a?$l-ye():(a&4194048)===a?eu-ye():0;if(m=qf(d,m),m!==null){su=a,e.cancelPendingCommit=m(Lu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),yu(e,a,o,!l);return}}Lu(e,t,a,n,r,i,o,s,c)}function vu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!fr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function yu(e,t,n,r){t&=~ql,t&=~Kl,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-Oe(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&Ue(e,n,t)}function bu(){return Pl&6?!0:(ad(0,!1),!1)}function xu(){if(Il!==null){if(Rl===0)var e=Il.return;else e=Il,Li=Ii=null,So(e),Sa=null,Ca=0,e=Il;for(;e!==null;)Fc(e.alternate,e),e=e.return;Il=null}}function Su(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Yd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),su=0,xu(),Fl=e,Il=n=ei(e.current,null),Ll=t,Rl=0,zl=null,Bl=!1,Vl=Le(e,t),Hl=!1,Yl=Jl=ql=Kl=Gl=Wl=0,Zl=Xl=null,Ql=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-Oe(r),a=1<<i;t|=e[i],r&=~a}return Ul=t,Wr(),n}function Cu(e,t){ro=null,I.H=Ms,t===fa||t===ma?(t=ba(),Rl=3):t===pa?(t=ba(),Rl=4):Rl=t===Xs?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,zl=t,Il===null&&(Wl=1,Ws(e,si(t,e.current)))}function wu(){var e=qa.current;return e===null?!0:(Ll&4194048)===Ll?Ja===null:(Ll&62914560)===Ll||Ll&536870912?e===Ja:!1}function Tu(){var e=I.H;return I.H=Ms,e===null?Ms:e}function Eu(){var e=I.A;return I.A=Ml,e}function Du(){Wl=4,Bl||(Ll&4194048)!==Ll&&qa.current!==null||(Vl=!0),!(Gl&134217727)&&!(Kl&134217727)||Fl===null||yu(Fl,Ll,Jl,!1)}function Ou(e,t,n){var r=Pl;Pl|=2;var i=Tu(),a=Eu();(Fl!==e||Ll!==t)&&(nu=null,Su(e,t)),t=!1;var o=Wl;a:do try{if(Rl!==0&&Il!==null){var s=Il,c=zl;switch(Rl){case 8:xu(),o=6;break a;case 3:case 2:case 9:case 6:qa.current===null&&(t=!0);var l=Rl;if(Rl=0,zl=null,Pu(e,s,c,l),n&&Vl){o=0;break a}break;default:l=Rl,Rl=0,zl=null,Pu(e,s,c,l)}}ku(),o=Wl;break}catch(t){Cu(e,t)}while(1);return t&&e.shellSuspendCounter++,Li=Ii=null,Pl=r,I.H=i,I.A=a,Il===null&&(Fl=null,Ll=0,Wr()),o}function ku(){for(;Il!==null;)Mu(Il)}function Au(e,t){var n=Pl;Pl|=2;var r=Tu(),a=Eu();Fl!==e||Ll!==t?(nu=null,tu=ye()+500,Su(e,t)):Vl=Le(e,t);a:do try{if(Rl!==0&&Il!==null){t=Il;var o=zl;b:switch(Rl){case 1:Rl=0,zl=null,Pu(e,t,o,1);break;case 2:case 9:if(ga(o)){Rl=0,zl=null,Nu(t);break}t=function(){Rl!==2&&Rl!==9||Fl!==e||(Rl=7),id(e)},o.then(t,t);break a;case 3:Rl=7;break a;case 4:Rl=5;break a;case 7:ga(o)?(Rl=0,zl=null,Nu(t)):(Rl=0,zl=null,Pu(e,t,o,7));break;case 5:var s=null;switch(Il.tag){case 26:s=Il.memoizedState;case 5:case 27:var c=Il;if(s?Wf(s):c.stateNode.complete){Rl=0,zl=null;var l=c.sibling;if(l!==null)Il=l;else{var u=c.return;u===null?Il=null:(Il=u,Fu(u))}break b}}Rl=0,zl=null,Pu(e,t,o,5);break;case 6:Rl=0,zl=null,Pu(e,t,o,6);break;case 8:xu(),Wl=6;break a;default:throw Error(i(462))}}ju();break}catch(t){Cu(e,t)}while(1);return Li=Ii=null,I.H=r,I.A=a,Pl=n,Il===null?(Fl=null,Ll=0,Wr(),Wl):0}function ju(){for(;Il!==null&&!_e();)Mu(Il)}function Mu(e){var t=Ec(e.alternate,e,Ul);e.memoizedProps=e.pendingProps,t===null?Fu(e):Il=t}function Nu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=uc(n,t,t.pendingProps,t.type,void 0,Ll);break;case 11:t=uc(n,t,t.pendingProps,t.type.render,t.ref,Ll);break;case 5:So(t);default:Fc(n,t),t=Il=ti(t,Ul),t=Ec(n,t,Ul)}e.memoizedProps=e.pendingProps,t===null?Fu(e):Il=t}function Pu(e,t,n,r){Li=Ii=null,So(t),Sa=null,Ca=0;var i=t.return;try{if(Ys(e,i,t,n,Ll)){Wl=1,Ws(e,si(n,e.current)),Il=null;return}}catch(t){if(i!==null)throw Il=i,t;Wl=1,Ws(e,si(n,e.current)),Il=null;return}t.flags&32768?(wi||r===1?e=!0:Vl||Ll&536870912?e=!1:(Bl=e=!0,(r===2||r===9||r===3||r===6)&&(r=qa.current,r!==null&&r.tag===13&&(r.flags|=16384))),Iu(t,e)):Fu(t)}function Fu(e){var t=e;do{if(t.flags&32768){Iu(t,Bl);return}e=t.return;var n=Nc(t.alternate,t,Ul);if(n!==null){Il=n;return}if(t=t.sibling,t!==null){Il=t;return}Il=t=e}while(t!==null);Wl===0&&(Wl=5)}function Iu(e,t){do{var n=Pc(e.alternate,e);if(n!==null){n.flags&=32767,Il=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){Il=e;return}Il=e=n}while(e!==null);Wl=6,Il=null}function Lu(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Hu();while(iu!==0);if(Pl&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=Ur,He(e,n,o,s,c,l),e===Fl&&(Il=Fl=null,Ll=0),ou=t,au=e,su=n,cu=o,lu=a,uu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,Zu(Se,function(){return Uu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!=0,t.subtreeFlags&13878||r){r=I.T,I.T=null,a=L.p,L.p=2,s=Pl,Pl|=4;try{el(e,t,n)}finally{Pl=s,L.p=a,I.T=r}}iu=1,Ru(),zu(),Bu()}}function Ru(){if(iu===1){iu=0;var e=au,t=ou,n=(t.flags&13878)!=0;if(t.subtreeFlags&13878||n){n=I.T,I.T=null;var r=L.p;L.p=2;var i=Pl;Pl|=4;try{pl(t,e);var a=Vd,o=_r(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&gr(s.ownerDocument.documentElement,s)){if(c!==null&&vr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=hr(s,h),v=hr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}sp=!!Bd,Vd=Bd=null}finally{Pl=i,L.p=r,I.T=n}}e.current=t,iu=2}}function zu(){if(iu===2){iu=0;var e=au,t=ou,n=(t.flags&8772)!=0;if(t.subtreeFlags&8772||n){n=I.T,I.T=null;var r=L.p;L.p=2;var i=Pl;Pl|=4;try{tl(e,t.alternate,t)}finally{Pl=i,L.p=r,I.T=n}}iu=3}}function Bu(){if(iu===4||iu===3){iu=0,ve();var e=au,t=ou,n=su,r=uu;t.subtreeFlags&10256||t.flags&10256?iu=5:(iu=0,ou=au=null,Vu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(ru=null),Ke(n),t=t.stateNode,q&&typeof q.onCommitFiberRoot==`function`)try{q.onCommitFiberRoot(K,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=I.T,i=L.p,L.p=2,I.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{I.T=t,L.p=i}}su&3&&Hu(),id(e),i=e.pendingLanes,n&261930&&i&42?e===fu?du++:(du=0,fu=e):du=0,ad(0,!1)}}function Vu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,$i(t)))}function Hu(){return Ru(),zu(),Bu(),Uu()}function Uu(){if(iu!==5)return!1;var e=au,t=cu;cu=0;var n=Ke(su),r=I.T,a=L.p;try{L.p=32>n?32:n,I.T=null,n=lu,lu=null;var o=au,s=su;if(iu=0,ou=au=null,su=0,Pl&6)throw Error(i(331));var c=Pl;if(Pl|=4,kl(o.current),xl(o,o.current,s,n),Pl=c,ad(0,!1),q&&typeof q.onPostCommitFiberRoot==`function`)try{q.onPostCommitFiberRoot(K,o)}catch{}return!0}finally{L.p=a,I.T=r,Vu(e,t)}}function Wu(e,t,n){t=si(n,t),t=Ks(e.stateNode,t,2),e=Pa(e,t,2),e!==null&&(Ve(e,2),id(e))}function Gu(e,t,n){if(e.tag===3)Wu(e,e,n);else for(;t!==null;){if(t.tag===3){Wu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ru===null||!ru.has(r))){e=si(n,e),n=qs(2),r=Pa(t,n,2),r!==null&&(Js(n,r,t,e),Ve(r,2),id(r));break}}t=t.return}}function Ku(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Nl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Hl=!0,i.add(n),e=qu.bind(null,e,t,n),t.then(e,e))}function qu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Fl===e&&(Ll&n)===n&&(Wl===4||Wl===3&&(Ll&62914560)===Ll&&300>ye()-$l?!(Pl&2)&&Su(e,0):ql|=n,Yl===Ll&&(Yl=0)),id(e)}function Ju(e,t){t===0&&(t=ze()),e=qr(e,t),e!==null&&(Ve(e,t),id(e))}function Yu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ju(e,n)}function Xu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),Ju(e,n)}function Zu(e,t){return he(e,t)}var Qu=null,$u=null,ed=!1,td=!1,nd=!1,rd=0;function id(e){e!==$u&&e.next===null&&($u===null?Qu=$u=e:$u=$u.next=e),td=!0,ed||(ed=!0,dd())}function ad(e,t){if(!nd&&td){nd=!0;do for(var n=!1,r=Qu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Oe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ud(r,a))}else a=Ll,a=Ie(r,r===Fl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Le(r,a)||(n=!0,ud(r,a));r=r.next}while(n);nd=!1}}function od(){sd()}function sd(){td=ed=!1;var e=0;rd!==0&&qd()&&(e=rd);for(var t=ye(),n=null,r=Qu;r!==null;){var i=r.next,a=cd(r,t);a===0?(r.next=null,n===null?Qu=i:n.next=i,i===null&&($u=n)):(n=r,(e!==0||a&3)&&(td=!0)),r=i}iu!==0&&iu!==5||ad(e,!1),rd!==0&&(rd=0)}function cd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-Oe(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=Re(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=Fl,n=Ll,n=Ie(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Rl===2||Rl===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&ge(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||Le(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&ge(r),Ke(n)){case 2:case 8:n=xe;break;case 32:n=Se;break;case 268435456:n=we;break;default:n=Se}return r=ld.bind(null,e),n=he(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&ge(r),e.callbackPriority=2,e.callbackNode=null,2}function ld(e,t){if(iu!==0&&iu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Hu()&&e.callbackNode!==n)return null;var r=Ll;return r=Ie(e,e===Fl?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(gu(e,r,t),cd(e,ye()),e.callbackNode!=null&&e.callbackNode===n?ld.bind(null,e):null)}function ud(e,t){if(Hu())return null;gu(e,t,!0)}function dd(){Zd(function(){Pl&6?he(G,od):sd()})}function fd(){if(rd===0){var e=na;e===0&&(e=Me,Me<<=1,!(Me&261888)&&(Me=256)),rd=e}return rd}function Z(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Ht(``+e)}function pd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function md(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=Z((i[Ze]||null).action),o=r.submitter;o&&(t=(t=o[Ze]||null)?Z(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new dn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(rd!==0){var e=o?pd(i,o):new FormData(i);vs(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?pd(i,o):new FormData(i),vs(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var hd=0;hd<Rr.length;hd++){var gd=Rr[hd];zr(gd.toLowerCase(),`on`+(gd[0].toUpperCase()+gd.slice(1)))}zr(Ar,`onAnimationEnd`),zr(jr,`onAnimationIteration`),zr(Mr,`onAnimationStart`),zr(`dblclick`,`onDoubleClick`),zr(`focusin`,`onFocus`),zr(`focusout`,`onBlur`),zr(Nr,`onTransitionRun`),zr(Pr,`onTransitionStart`),zr(Fr,`onTransitionCancel`),zr(Ir,`onTransitionEnd`),pt(`onMouseEnter`,[`mouseout`,`mouseover`]),pt(`onMouseLeave`,[`mouseout`,`mouseover`]),pt(`onPointerEnter`,[`pointerout`,`pointerover`]),pt(`onPointerLeave`,[`pointerout`,`pointerover`]),ft(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),ft(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),ft(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),ft(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),ft(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),ft(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var _d=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),vd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(_d));function yd(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Br(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Br(e)}i.currentTarget=null,a=c}}}}function bd(e,t){var n=t[$e];n===void 0&&(n=t[$e]=new Set);var r=e+`__bubble`;n.has(r)||(wd(t,e,2,!1),n.add(r))}function xd(e,t,n){var r=0;t&&(r|=4),wd(n,e,r,t)}var Sd=`_reactListening`+Math.random().toString(36).slice(2);function Cd(e){if(!e[Sd]){e[Sd]=!0,ut.forEach(function(t){t!==`selectionchange`&&(vd.has(t)||xd(t,!1,e),xd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Sd]||(t[Sd]=!0,xd(`selectionchange`,!1,t))}}function wd(e,t,n,r){switch(mp(t)){case 2:var i=cp;break;case 8:i=lp;break;default:i=up}n=i.bind(null,t,n,e),i=void 0,!$t||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Td(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=at(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}Xt(function(){var r=a,i=Gt(n),s=[];a:{var c=Lr.get(e);if(c!==void 0){var l=dn,u=e;switch(e){case`keypress`:if(on(n)===0)break a;case`keydown`:case`keyup`:l=kn;break;case`focusin`:u=`focus`,l=bn;break;case`focusout`:u=`blur`,l=bn;break;case`beforeblur`:case`afterblur`:l=bn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=vn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=yn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=jn;break;case Ar:case jr:case Mr:l=xn;break;case Ir:l=Mn;break;case`scroll`:case`scrollend`:l=pn;break;case`wheel`:l=Nn;break;case`copy`:case`cut`:case`paste`:l=Sn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=An;break;case`toggle`:case`beforetoggle`:l=Pn}var d=(t&4)!=0,f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=Zt(m,p),g!=null&&d.push(Ed(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==Wt&&(u=n.relatedTarget||n.fromElement)&&(at(u)||u[Qe]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?at(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=vn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=An,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:st(l),h=u==null?c:st(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,at(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Od,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&kd(s,c,l,d,!1),u!==null&&f!==null&&kd(s,f,u,d,!0)}}a:{if(c=r?st(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=er;else if(Jn(c))if(tr)v=ur;else{v=cr;var y=sr}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&zt(r.elementType)&&(v=er):v=lr;if(v&&=v(e,r)){Yn(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&jt(c,`number`,c.value)}switch(y=r?st(r):window,e){case`focusin`:(Jn(y)||y.contentEditable===`true`)&&(br=y,xr=r,Sr=null);break;case`focusout`:Sr=xr=br=null;break;case`mousedown`:Cr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Cr=!1,wr(s,n,i);break;case`selectionchange`:if(yr)break;case`keydown`:case`keyup`:wr(s,n,i)}var b;if(In)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else Wn?Hn(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(zn&&n.locale!==`ko`&&(Wn||x!==`onCompositionStart`?x===`onCompositionEnd`&&Wn&&(b=an()):(tn=i,nn=`value`in tn?tn.value:tn.textContent,Wn=!0)),y=Dd(r,x),0<y.length&&(x=new Cn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=Un(n),b!==null&&(x.data=b)))),(b=Rn?Gn(e,n):Kn(e,n))&&(x=Dd(r,`onBeforeInput`),0<x.length&&(y=new Cn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),md(s,e,r,n,i)}yd(s,t)})}function Ed(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Dd(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=Zt(e,n),i!=null&&r.unshift(Ed(e,i,a)),i=Zt(e,t),i!=null&&r.push(Ed(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Od(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function kd(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=Zt(n,a),l!=null&&o.unshift(Ed(n,l,c))):i||(l=Zt(n,a),l!=null&&o.push(Ed(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Ad=/\r\n?/g,jd=/\u0000|\uFFFD/g;function Md(e){return(typeof e==`string`?e:``+e).replace(Ad,`
9
+ `).replace(jd,``)}function Nd(e,t){return t=Md(t),Md(e)===t}function Pd(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Ft(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Ft(e,``+r);break;case`className`:yt(e,`class`,r);break;case`tabIndex`:yt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:yt(e,n,r);break;case`style`:Rt(e,r,o);break;case`data`:if(t!==`object`){yt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Ht(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof o==`function`&&(n===`formAction`?(t!==`input`&&Pd(e,t,`name`,a.name,a,null),Pd(e,t,`formEncType`,a.formEncType,a,null),Pd(e,t,`formMethod`,a.formMethod,a,null),Pd(e,t,`formTarget`,a.formTarget,a,null)):(Pd(e,t,`encType`,a.encType,a,null),Pd(e,t,`method`,a.method,a,null),Pd(e,t,`target`,a.target,a,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Ht(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=Ut);break;case`onScroll`:r!=null&&bd(`scroll`,e);break;case`onScrollEnd`:r!=null&&bd(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Ht(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:bd(`beforetoggle`,e),bd(`toggle`,e),vt(e,`popover`,r);break;case`xlinkActuate`:bt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:bt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:bt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:bt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:bt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:bt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:bt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:bt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:bt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:vt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=Bt.get(n)||n,vt(e,n,r))}}function Fd(e,t,n,r,a,o){switch(n){case`style`:Rt(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?Ft(e,r):(typeof r==`number`||typeof r==`bigint`)&&Ft(e,``+r);break;case`onScroll`:r!=null&&bd(`scroll`,e);break;case`onScrollEnd`:r!=null&&bd(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=Ut);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!dt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[Ze]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):vt(e,n,r)}}}function Id(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:bd(`error`,e),bd(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Pd(e,t,o,s,n,null)}}a&&Pd(e,t,`srcSet`,n.srcSet,n,null),r&&Pd(e,t,`src`,n.src,n,null);return;case`input`:bd(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:Pd(e,t,r,d,n,null)}}At(e,o,c,l,u,s,a,!1);return;case`select`:for(a in bd(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:Pd(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Mt(e,!!r,n,!0):Mt(e,!!r,t,!1);return;case`textarea`:for(s in bd(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:Pd(e,t,s,c,n,null)}Pt(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:Pd(e,t,l,r,n,null)}return;case`dialog`:bd(`beforetoggle`,e),bd(`toggle`,e),bd(`cancel`,e),bd(`close`,e);break;case`iframe`:case`object`:bd(`load`,e);break;case`video`:case`audio`:for(r=0;r<_d.length;r++)bd(_d[r],e);break;case`image`:bd(`error`,e),bd(`load`,e);break;case`details`:bd(`toggle`,e);break;case`embed`:case`source`:case`link`:bd(`error`,e),bd(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:Pd(e,t,u,r,n,null)}return;default:if(zt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Fd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&Pd(e,t,c,r,n,null))}function Ld(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||Pd(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:a=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&Pd(e,t,p,m,r,f)}}kt(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||Pd(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&Pd(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Mt(e,!!n,n?[]:``,!1):Mt(e,!!n,t,!0)):Mt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:Pd(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&Pd(e,t,s,a,r,o)}Nt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:Pd(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:Pd(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&Pd(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:Pd(e,t,u,p,r,m)}return;default:if(zt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Fd(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Fd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&Pd(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||Pd(e,t,f,p,r,m)}function Rd(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function zd(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Rd(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Rd(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Bd=null,Vd=null;function Hd(e){return e.nodeType===9?e:e.ownerDocument}function Ud(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Wd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Gd(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Kd=null;function qd(){var e=window.event;return e&&e.type===`popstate`?e===Kd?!1:(Kd=e,!0):(Kd=null,!1)}var Jd=typeof setTimeout==`function`?setTimeout:void 0,Yd=typeof clearTimeout==`function`?clearTimeout:void 0,Xd=typeof Promise==`function`?Promise:void 0,Zd=typeof queueMicrotask==`function`?queueMicrotask:Xd===void 0?Jd:function(e){return Xd.resolve(null).then(e).catch(Qd)};function Qd(e){setTimeout(function(){throw e})}function $d(e){return e===`head`}function ef(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Np(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)pf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,pf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[rt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&pf(e.ownerDocument.body);n=i}while(n);Np(t)}function tf(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function nf(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:nf(n),it(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function rf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[rt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=$(e.nextSibling),e===null)break}return null}function af(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=$(e.nextSibling),e===null))return null;return e}function of(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=$(e.nextSibling),e===null))return null;return e}function sf(e){return e.data===`$?`||e.data===`$~`}function cf(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function Q(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function $(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var lf=null;function uf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return $(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function df(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function ff(e,t,n){switch(t=Hd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function pf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);it(e)}var mf=new Map,hf=new Set;function gf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var _f=L.d;L.d={f:vf,r:yf,D:Sf,C:Cf,L:wf,m:Tf,X:Df,S:Ef,M:Of};function vf(){var e=_f.f(),t=bu();return e||t}function yf(e){var t=ot(e);t!==null&&t.tag===5&&t.type===`form`?bs(t):_f.r(e)}var bf=typeof document>`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=Ot(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Id(t,`link`,e),lt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Ot(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Ot(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Ot(n.imageSizes)+`"]`)):i+=`[href="`+Ot(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Id(t,`link`,e),lt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Ot(r)+`"][href="`+Ot(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Id(r,`link`,e),lt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=ct(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);lt(c),Id(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=ct(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),lt(a),Id(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=ct(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),lt(a),Id(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var a=(a=te.current)?gf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=ct(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=ct(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=ct(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Af(e){return`href="`+Ot(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Id(t,`link`,n),lt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+Ot(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Ot(n.href)+`"]`);if(r)return t.instance=r,lt(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),lt(r),Id(r,`style`,a),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Af(n.href);var o=e.querySelector(jf(a));if(o)return t.state.loading|=4,t.instance=o,lt(o),o;r=Mf(n),(a=mf.get(a))&&Rf(r,a),o=(e.ownerDocument||e).createElement(`link`),lt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Id(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(a=e.querySelector(Ff(o)))?(t.instance=a,lt(a),a):(r=n,(a=mf.get(o))&&(r=h({},n),zf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),lt(a),Id(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Rf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function zf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Bf=null;function Vf(e,t,n){if(Bf===null){var r=new Map,i=Bf=new Map;i.set(n,r)}else i=Bf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[rt]||a[Xe]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Hf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,lt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),lt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Id(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Kf===0&&(Kf=62500*zd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Jf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var Qf={$$typeof:C,Provider:null,Consumer:null,_currentValue:R,_currentValue2:R,_threadCount:0};function $f(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Be(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Be(0),this.hiddenUpdates=Be(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function ep(e,t,n,r,i,a,o,s,c,l,u,d){return e=new $f(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=Qr(3,null,null,t),e.current=a,a.stateNode=e,t=Qi(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},ja(a),e}function tp(e){return e?(e=Xr,e):Xr}function np(e,t,n,r,i,a){i=tp(i),r.context===null?r.context=i:r.pendingContext=i,r=Na(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Pa(e,r,t),n!==null&&(hu(n,e,t),Fa(n,e,t))}function rp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ip(e,t){rp(e,t),(e=e.alternate)&&rp(e,t)}function ap(e){if(e.tag===13||e.tag===31){var t=qr(e,67108864);t!==null&&hu(t,e,67108864),ip(e,67108864)}}function op(e){if(e.tag===13||e.tag===31){var t=pu();t=Ge(t);var n=qr(e,t);n!==null&&hu(n,e,t),ip(e,t)}}var sp=!0;function cp(e,t,n,r){var i=I.T;I.T=null;var a=L.p;try{L.p=2,up(e,t,n,r)}finally{L.p=a,I.T=i}}function lp(e,t,n,r){var i=I.T;I.T=null;var a=L.p;try{L.p=8,up(e,t,n,r)}finally{L.p=a,I.T=i}}function up(e,t,n,r){if(sp){var i=dp(r);if(i===null)Td(e,t,r,fp,n),Cp(e,r);else if(Tp(i,e,t,n,r))r.stopPropagation();else if(Cp(e,r),t&4&&-1<Sp.indexOf(e)){for(;i!==null;){var a=ot(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=Fe(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-Oe(o);s.entanglements[1]|=c,o&=~c}id(a),!(Pl&6)&&(tu=ye()+500,ad(0,!1))}}break;case 31:case 13:s=qr(a,2),s!==null&&hu(s,a,2),bu(),ip(a,2)}if(a=dp(r),a===null&&Td(e,t,r,fp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Td(e,t,r,null,n)}}function dp(e){return e=Gt(e),pp(e)}var fp=null;function pp(e){if(fp=null,e=at(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return fp=e,null}function mp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(be()){case G:return 2;case xe:return 8;case Se:case Ce:return 32;case we:return 268435456;default:return 32}default:return 32}}var hp=!1,gp=null,_p=null,vp=null,yp=new Map,bp=new Map,xp=[],Sp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Cp(e,t){switch(e){case`focusin`:case`focusout`:gp=null;break;case`dragenter`:case`dragleave`:_p=null;break;case`mouseover`:case`mouseout`:vp=null;break;case`pointerover`:case`pointerout`:yp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:bp.delete(t.pointerId)}}function wp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=ot(t),t!==null&&ap(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Tp(e,t,n,r,i){switch(t){case`focusin`:return gp=wp(gp,e,t,n,r,i),!0;case`dragenter`:return _p=wp(_p,e,t,n,r,i),!0;case`mouseover`:return vp=wp(vp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return yp.set(a,wp(yp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,bp.set(a,wp(bp.get(a)||null,e,t,n,r,i)),!0}return!1}function Ep(e){var t=at(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,Je(e.priority,function(){op(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,Je(e.priority,function(){op(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Dp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=dp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Wt=r,n.target.dispatchEvent(r),Wt=null}else return t=ot(n),t!==null&&ap(t),e.blockedOn=n,!1;t.shift()}return!0}function Op(e,t,n){Dp(e)&&n.delete(t)}function kp(){hp=!1,gp!==null&&Dp(gp)&&(gp=null),_p!==null&&Dp(_p)&&(_p=null),vp!==null&&Dp(vp)&&(vp=null),yp.forEach(Op),bp.forEach(Op)}function Ap(e,n){e.blockedOn===n&&(e.blockedOn=null,hp||(hp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,kp)))}var jp=null;function Mp(e){jp!==e&&(jp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){jp===e&&(jp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(pp(r||n)===null)continue;break}var a=ot(n);a!==null&&(e.splice(t,3),t-=3,vs(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Np(e){function t(t){return Ap(t,e)}gp!==null&&Ap(gp,e),_p!==null&&Ap(_p,e),vp!==null&&Ap(vp,e),yp.forEach(t),bp.forEach(t);for(var n=0;n<xp.length;n++){var r=xp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<xp.length&&(n=xp[0],n.blockedOn===null);)Ep(n),n.blockedOn===null&&xp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[Ze]||null;if(typeof a==`function`)o||Mp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[Ze]||null)s=o.formAction;else if(pp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Mp(n)}}}function Pp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Fp(e){this._internalRoot=e}Ip.prototype.render=Fp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;np(n,pu(),e,t,null,null)},Ip.prototype.unmount=Fp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;np(e.current,2,null,e,null,null),bu(),t[Qe]=null}};function Ip(e){this._internalRoot=e}Ip.prototype.unstable_scheduleHydration=function(e){if(e){var t=qe();e={blockedOn:null,target:e,priority:t};for(var n=0;n<xp.length&&t!==0&&t<xp[n].priority;n++);xp.splice(n,0,e),n===0&&Ep(e)}};var Lp=n.version;if(Lp!==`19.2.7`)throw Error(i(527,Lp,`19.2.7`));L.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=d(t),e=e===null?null:p(e),e=e===null?null:e.stateNode,e};var Rp={bundleType:0,version:`19.2.7`,rendererPackageName:`react-dom`,currentDispatcherRef:I,reconcilerVersion:`19.2.7`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var zp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!zp.isDisabled&&zp.supportsFiber)try{K=zp.inject(Rp),q=zp}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Vs,s=Hs,c=Us;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=ep(e,1,!1,null,null,n,r,null,o,s,c,Pp),e[Qe]=t.current,Cd(e),new Fp(t)}})),g=o(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},v=(e=>e?_(e):_),y=c(u(),1),b=e=>e;function x(e,t=b){let n=y.useSyncExternalStore(e.subscribe,y.useCallback(()=>t(e.getState()),[e,t]),y.useCallback(()=>t(e.getInitialState()),[e,t]));return y.useDebugValue(n),n}var S=e=>{let t=v(e),n=e=>x(t,e);return Object.assign(n,t),n},C=(e=>e?S(e):S),w=g();function T(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=T(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function E(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=T(e))&&(r&&(r+=` `),r+=t);return r}var D=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),O=o(((e,t)=>{t.exports=D()}))();function k(e,t,n,r){let i=r>0?t+Math.round((e-t)/r)*r:e;return Math.min(n,Math.max(t,i))}function A(e,t,n,r,i=0){return{lo:Math.min(k(e,n,r,i),t),hi:t}}function j(e,t,n,r,i=0){return{lo:t,hi:Math.max(k(e,n,r,i),t)}}function M({min:e,max:t,lo:n,hi:r,step:i=0,onChange:a,loLabel:o=`minimum`,hiLabel:s=`maximum`}){let c=n=>t>e?(n-e)/(t-e)*100:0,l=i>0?i:`any`;return(0,O.jsxs)(`div`,{className:`qz-range-slider`,style:{"--qz-range-lo":`${c(n)}%`,"--qz-range-hi":`${c(r)}%`},children:[(0,O.jsx)(`div`,{className:`qz-range-track`}),(0,O.jsx)(`div`,{className:`qz-range-fill`}),(0,O.jsx)(`input`,{type:`range`,"aria-label":o,min:e,max:t,step:l,value:n,onChange:n=>{let o=A(Number(n.target.value),r,e,t,i);a(o.lo,o.hi)}}),(0,O.jsx)(`input`,{type:`range`,"aria-label":s,min:e,max:t,step:l,value:r,onChange:r=>{let o=j(Number(r.target.value),n,e,t,i);a(o.lo,o.hi)}})]})}function N(e){return e.includes(`$`)}var P={alpha:[`α`,!0],beta:[`β`,!0],gamma:[`γ`,!0],delta:[`δ`,!0],epsilon:[`ϵ`,!0],varepsilon:[`ε`,!0],zeta:[`ζ`,!0],eta:[`η`,!0],theta:[`θ`,!0],vartheta:[`ϑ`,!0],iota:[`ι`,!0],kappa:[`κ`,!0],lambda:[`λ`,!0],mu:[`μ`,!0],nu:[`ν`,!0],xi:[`ξ`,!0],pi:[`π`,!0],rho:[`ρ`,!0],sigma:[`σ`,!0],varsigma:[`ς`,!0],tau:[`τ`,!0],upsilon:[`υ`,!0],phi:[`ϕ`,!0],varphi:[`φ`,!0],chi:[`χ`,!0],psi:[`ψ`,!0],omega:[`ω`,!0],Gamma:[`Γ`,!1],Delta:[`Δ`,!1],Theta:[`Θ`,!1],Lambda:[`Λ`,!1],Xi:[`Ξ`,!1],Pi:[`Π`,!1],Sigma:[`Σ`,!1],Upsilon:[`Υ`,!1],Phi:[`Φ`,!1],Psi:[`Ψ`,!1],Omega:[`Ω`,!1]},F={AA:`Å`,circ:`∘`,times:`×`,cdot:`⋅`,pm:`±`,prime:`′`},I=new Set([...`+=/()[]|.,:;!*<>`]),L=new Set([...`°Åµ×±⋅∘′″−`]);function R(e){for(let[t,n]of Object.values(P))if(t===e)return n;return null}var z=class extends Error{};function B(e,t,n){if(!t)return;let r=e[e.length-1];r&&r.kind===`text`&&r.italic===n?r.text+=t:e.push({kind:`text`,text:t,italic:n})}function V(e,t,n){if(/[a-zA-Z]/.test(t)){B(e,t,n!==`rm`);return}if(/[0-9]/.test(t)){B(e,t,n===`it`);return}if(t===`-`){B(e,`−`,!1);return}if(t===`'`){B(e,`′`,!1);return}if(I.has(t)){B(e,t,!1);return}let r=R(t);if(r!=null){B(e,t,r);return}if(L.has(t)){B(e,t,!1);return}throw new z(`unsupported character "${t}" in math mode`)}function H(e,t){if(e.src[e.pos]===`,`){e.pos+=1,B(t,` `,!1);return}let n=``;for(;e.pos<e.src.length&&/[a-zA-Z]/.test(e.src[e.pos]);)n+=e.src[e.pos],e.pos+=1;if(!n)throw new z(`stray backslash in math mode`);if(n===`mathrm`||n===`mathit`){if(e.src[e.pos]!==`{`)throw new z(`\\${n} requires a {...} group`);e.pos+=1;let r=W(e,n===`mathrm`?`rm`:`it`,!0);for(let e of r)U(t,e);return}let r=P[n];if(r){B(t,r[0],r[1]);return}let i=F[n];if(i){B(t,i,!1);return}throw new z(`unknown command \\${n}`)}function U(e,t){t.kind===`text`?B(e,t.text,t.italic):e.push(t)}function ee(e,t){for(;e.pos<e.src.length&&/\s/.test(e.src[e.pos]);)e.pos+=1;let n=e.src[e.pos];if(n===void 0)throw new z(`_ or ^ at end of math region`);if(n===`{`)return e.pos+=1,W(e,t,!0);let r=[];return n===`\\`?(e.pos+=1,H(e,r),r):(e.pos+=1,V(r,n,t),r)}function W(e,t,n){let r=[];for(;e.pos<e.src.length;){let i=e.src[e.pos];if(i===`}`){if(n)return e.pos+=1,r;throw new z(`unmatched } in math mode`)}if(/\s/.test(i)){e.pos+=1;continue}if(i===`{`){e.pos+=1;for(let n of W(e,t,!0))U(r,n);continue}if(i===`_`||i===`^`){e.pos+=1;let n=ee(e,t);r.push({kind:i===`_`?`sub`:`sup`,children:n});continue}if(i===`\\`){e.pos+=1,H(e,r);continue}e.pos+=1,V(r,i,t)}if(n)throw new z(`unclosed { group in math mode`);return r}function te(e){let t=[],n=``,r=!1,i=0;for(;i<e.length;){let a=e[i];if(a===`\\`&&e[i+1]===`$`&&!r){n+=`$`,i+=2;continue}if(a===`$`){t.push({math:r,body:n}),n=``,r=!r,i+=1;continue}n+=a,i+=1}if(r)throw new z(`unclosed $ math region`);return t.push({math:!1,body:n}),t}function ne(e){let t=e?[{kind:`text`,text:e,italic:!1}]:[];try{let t=te(e),n=t.some(e=>e.math),r=[];for(let e of t){if(!e.math){if(n&&e.body.includes(`\\`))throw new z(`backslash outside a $...$ math region`);B(r,e.body,!1);continue}if(!e.body.trim())throw new z(`empty $...$ math region`);let t={src:e.body,pos:0};for(let e of W(t,`auto`,!1))U(r,e)}return{ok:!0,error:null,nodes:r}}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e),nodes:t}}}function re(e){if(!e||!N(e))return null;let t=ne(e);return t.ok?t.nodes:null}function ie(e){if(!N(e))return{ok:!0};let t=ne(e);return t.ok?{ok:!0}:{ok:!1,error:t.error??`invalid label markup`}}function ae(e,t){return e.map((e,n)=>{let r=`${t}.${n}`;if(e.kind===`text`)return e.italic?(0,O.jsx)(`i`,{children:e.text},r):(0,O.jsx)(`span`,{children:e.text},r);let i=e.kind;return(0,O.jsx)(i,{style:{fontSize:`0.7em`},children:ae(e.children,r)},r)})}function oe({text:e}){if(!N(e))return(0,O.jsx)(O.Fragment,{children:e});let t=ne(e);return t.ok?(0,O.jsx)(O.Fragment,{children:ae(t.nodes,`rt`)}):(0,O.jsx)(O.Fragment,{children:e})}var se=m();function ce(e){let t=0;for(let n=0;n<e.length;n++)e[n]===`$`&&e[n-1]!==`\\`&&t++;return t}function le(e,t,n,r){let i=e.slice(0,t),a=e.slice(n),o=ce(i)%2==1,s,c=!1;o?(s=r.math??r.text??``,/\\[a-zA-Z]+$/.test(s)&&/^[a-zA-Z]/.test(a)&&(s+=` `)):r.text==null?(s=`$${r.math??``}$`,c=!0):s=r.text;let l=r.caretBack==null?0:r.caretBack+ +!!c;return{value:i+s+a,cursor:t+s.length-l}}function ue(e,t,n,r){if(t===n)return le(e,t,n,r);let i=e.slice(0,t),a=e.slice(t,n),o=e.slice(n);if(ce(a)>0)return le(e,t,t,r);let s=ce(i)%2==1,c=r.math??r.text??``,l=r.caretBack==null?c.length:c.length-r.caretBack,u=c.slice(0,l),d=c.slice(l),f=s?`${u}${a}${d}`:`$${u}${a}${d}$`;return{value:i+f+o,cursor:i.length+f.length}}var de={glyph:`x₂`,math:`_{}`,caretBack:1,title:`Subscript _{ } (Ctrl+=)`},fe={glyph:`x²`,math:`^{}`,caretBack:1,title:`Superscript ^{ } (Ctrl+Shift+=)`},pe={glyph:`𝑎𝑏`,math:`\\mathit{}`,caretBack:1,title:`Italic \\mathit{ } (Ctrl/Cmd+I)`},me=[de,fe,pe,{glyph:`ab`,math:`\\mathrm{}`,caretBack:1,title:`Upright \\mathrm{ }`}],he=[[`α`,`alpha`],[`β`,`beta`],[`γ`,`gamma`],[`δ`,`delta`],[`ε`,`varepsilon`],[`ζ`,`zeta`],[`η`,`eta`],[`θ`,`theta`],[`ι`,`iota`],[`κ`,`kappa`],[`λ`,`lambda`],[`μ`,`mu`],[`ν`,`nu`],[`ξ`,`xi`],[`π`,`pi`],[`ρ`,`rho`],[`σ`,`sigma`],[`τ`,`tau`],[`υ`,`upsilon`],[`ϕ`,`phi`],[`φ`,`varphi`],[`χ`,`chi`],[`ψ`,`psi`],[`ω`,`omega`],[`Γ`,`Gamma`],[`Δ`,`Delta`],[`Θ`,`Theta`],[`Λ`,`Lambda`],[`Ξ`,`Xi`],[`Π`,`Pi`],[`Σ`,`Sigma`],[`Υ`,`Upsilon`],[`Φ`,`Phi`],[`Ψ`,`Psi`],[`Ω`,`Omega`]].map(([e,t])=>({glyph:e,math:`\\${t}`,title:`\\${t}`})),ge=[{glyph:`°`,text:`°`,math:`^\\circ`,title:`Degree (° / ^\\circ in math)`},{glyph:`Å`,text:`Å`,math:`\\AA`,title:`Angstrom (\\AA in math)`},{glyph:`×`,text:`×`,math:`\\times`,title:`Multiplication (\\times)`},{glyph:`⋅`,text:`⋅`,math:`\\cdot`,title:`Center dot (\\cdot)`},{glyph:`±`,text:`±`,math:`\\pm`,title:`Plus-minus (\\pm)`},{glyph:`′`,text:`′`,math:`'`,title:`Prime (' in math)`}],_e=[{glyph:`µ₀H (T)`,text:`$\\mu_0H$ (T)`,title:`Applied field axis`},{glyph:`Å⁻¹`,text:`$\\AA^{-1}$`,title:`Reciprocal angstroms`},{glyph:`10ⁿ`,text:`$10^{n}$`,caretBack:3,title:`Power of ten (edit n)`},{glyph:`χ″`,text:`$\\chi''$`,title:`Imaginary susceptibility`}];function ve({label:e,entries:t,onInsert:n,cols:r}){return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`div`,{className:`qzk-ctx-header`,children:e}),(0,O.jsx)(`div`,{style:{display:`grid`,gridTemplateColumns:`repeat(${r}, 1fr)`,gap:2,padding:`0 6px 4px`},children:t.map(e=>(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:e.title,style:{minWidth:26},onMouseDown:e=>e.preventDefault(),onClick:()=>n(e),children:e.glyph},e.title))})]})}function ye({x:e,y:t,onInsert:n,onClose:r}){let i=(0,y.useRef)(null),[a,o]=(0,y.useState)({x:e,y:t});return(0,y.useLayoutEffect)(()=>{let n=i.current;if(!n)return;let r=n.getBoundingClientRect(),a=e+r.width+8>window.innerWidth?Math.max(8,window.innerWidth-r.width-8):e,s=t+r.height+8>window.innerHeight?Math.max(8,window.innerHeight-r.height-8):t;o({x:a,y:s})},[e,t]),(0,y.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&r()},t=e=>{e.key===`Escape`&&r()};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),window.addEventListener(`scroll`,r,!0),window.addEventListener(`resize`,r),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t),window.removeEventListener(`scroll`,r,!0),window.removeEventListener(`resize`,r)}},[r]),(0,se.createPortal)((0,O.jsxs)(`div`,{ref:i,className:`qzk-menu-pop qzk-ctx`,style:{position:`fixed`,left:a.x,top:a.y,zIndex:1e3,width:248},children:[(0,O.jsx)(ve,{label:`Insert`,entries:me,onInsert:n,cols:4}),(0,O.jsx)(ve,{label:`Greek`,entries:he,onInsert:n,cols:8}),(0,O.jsx)(ve,{label:`Symbols`,entries:ge,onInsert:n,cols:6}),(0,O.jsx)(ve,{label:`Snippets`,entries:_e,onInsert:n,cols:2})]}),document.body)}function be({value:e,onCommit:t,placeholder:n,live:r=!1}){let[i,a]=(0,y.useState)(e),[o,s]=(0,y.useState)(null),c=(0,y.useRef)(null),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{a(e)},[e]);let u=n=>{n!==e&&t(n)},d=e=>{a(e),r&&u(e)},f=(e,t)=>{let n=c.current,r=n?.selectionStart??i.length,o=n?.selectionEnd??i.length,{value:s,cursor:l}=t(i,r,o,e);a(s),u(s),requestAnimationFrame(()=>{n?.focus(),n?.setSelectionRange(l,l)})},p=e=>f(e,le),m=()=>{if(o){s(null);return}let e=(l.current??c.current)?.getBoundingClientRect();e&&s({x:e.left,y:e.bottom+4})},h=N(i)?ie(i):{ok:!0};return(0,O.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[(0,O.jsx)(`input`,{ref:c,className:`qz-input`,style:{flex:1,minWidth:0},value:i,placeholder:n,onChange:e=>d(e.target.value),onBlur:()=>{r||u(i)},onKeyDown:t=>{if(t.key===`Enter`){u(i);return}if(t.key===`Escape`){a(e);return}if(!t.altKey){if((t.ctrlKey||t.metaKey)&&!t.shiftKey&&t.key.toLowerCase()===`i`){t.preventDefault(),f(pe,ue);return}if((t.ctrlKey||t.metaKey)&&!t.shiftKey&&(t.code===`Period`||t.key===`.`)){t.preventDefault(),m();return}t.ctrlKey&&!t.metaKey&&t.code===`Equal`&&(t.preventDefault(),f(t.shiftKey?fe:de,ue))}}}),(0,O.jsx)(`button`,{ref:l,className:`qz-icon-btn`,title:`Insert symbol — Greek, sub/superscript, Å, ° ("$...$" math labels). Ctrl/Cmd+I italic · Ctrl+= subscript · Ctrl+Shift+= superscript · Ctrl+. this palette`,"aria-label":`Insert symbol`,onClick:m,children:`Ω`})]}),N(i)&&(0,O.jsx)(`div`,{style:{marginTop:2,fontSize:`var(--font-size-sm)`,color:h.ok?`var(--text-dim)`:`var(--danger)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:h.ok?(0,O.jsx)(oe,{text:i}):`Invalid markup: ${h.error}`}),o&&(0,O.jsx)(ye,{x:o.x,y:o.y,onInsert:p,onClose:()=>s(null)})]})}function G({children:e,variant:t=`default`,size:n=`regular`,icon:r,className:i,...a}){return(0,O.jsxs)(`button`,{className:E(`qz-btn`,t===`primary`&&`qz-primary`,t===`ghost`&&`qz-ghost`,t===`danger`&&`qz-danger`,n===`sm`&&`qz-sm`,i),...a,children:[r!=null&&(0,O.jsx)(`span`,{className:`qz-btn-icon`,children:r}),e]})}function xe({children:e,active:t=!1,className:n,...r}){return(0,O.jsx)(`button`,{className:E(`qz-icon-btn`,t&&`qz-active`,n),...r,children:e})}function Se({title:e,count:t,defaultOpen:n=!0,children:r}){return(0,O.jsxs)(`details`,{className:`qz-card`,open:n,children:[(0,O.jsxs)(`summary`,{children:[e,t!=null&&(0,O.jsx)(`span`,{className:`qz-badge`,style:{marginLeft:`auto`},children:t})]}),(0,O.jsx)(`div`,{className:`qz-card-body`,children:r})]})}function Ce({label:e,value:t,title:n}){return(0,O.jsxs)(`div`,{className:`qz-meta-row`,children:[(0,O.jsx)(`span`,{className:`qz-k`,children:e}),(0,O.jsx)(`span`,{className:`qz-v`,title:n,children:t})]})}function we({children:e,tone:t=`neutral`,className:n}){return(0,O.jsx)(`span`,{className:E(`qz-badge`,t===`accent`&&`qz-accent`,t===`ok`&&`qz-ok`,t===`danger`&&`qz-danger`,t===`warn`&&`qz-warn`,n),children:e})}function Te({tone:e=`neutral`,label:t}){let n=(0,O.jsx)(`span`,{className:E(`qz-dot`,e===`ok`&&`qz-ok`,e===`danger`&&`qz-danger`,e===`warn`&&`qz-warn`,e===`accent`&&`qz-accent`)});return t==null?n:(0,O.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:7},children:[n,(0,O.jsx)(`span`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--text-dim)`},children:t})]})}function Ee({options:e,value:t,onChange:n,className:r}){return(0,O.jsx)(`div`,{className:E(`qz-seg`,r),role:`tablist`,children:e.map(e=>{let r=typeof e==`string`?e:e.value,i=typeof e==`string`?e:e.label;return(0,O.jsx)(`button`,{role:`tab`,"aria-selected":r===t,className:E(`qz-seg-btn`,r===t&&`qz-active`),onClick:()=>n?.(r),children:i},r)})})}function K({options:e,className:t,...n}){return(0,O.jsx)(`select`,{className:E(`qz-select`,t),...n,children:e.map(e=>(0,O.jsx)(`option`,{value:e.value,children:e.label},e.value))})}function q({value:e,onChange:t,numeric:n=!0,unit:r,width:i=72,className:a,...o}){let s=(0,O.jsx)(`input`,{className:E(`qz-input`,n&&`qz-num`,a),value:e,onChange:e=>t?.(e.target.value),style:{width:i},...o});return r?(0,O.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6},children:[s,(0,O.jsx)(`span`,{style:{fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-sm)`,color:`var(--text-faint)`},children:r})]}):s}function De({checked:e,onChange:t,children:n,disabled:r=!1}){return(0,O.jsxs)(`label`,{className:E(`qz-check`,r&&`qz-disabled`),children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:e,disabled:r,onChange:e=>t?.(e.target.checked)}),n]})}function Oe({checked:e,onChange:t,label:n}){let r=(0,O.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,className:E(`qz-switch`,e&&`qz-on`),onClick:()=>t?.(!e)});return n==null?r:(0,O.jsxs)(`label`,{className:`qz-check`,style:{justifyContent:`space-between`},children:[(0,O.jsx)(`span`,{children:n}),r]})}function ke({label:e,value:t,min:n=0,max:r=100,step:i=1,onChange:a,format:o}){return(0,O.jsxs)(`div`,{className:`qz-slider-row`,children:[(0,O.jsx)(`span`,{className:`qz-k`,children:e}),(0,O.jsx)(`input`,{type:`range`,min:n,max:r,step:i,value:t,onChange:e=>a?.(Number(e.target.value))}),(0,O.jsx)(`span`,{className:`qz-v`,children:o?o(t):t})]})}function Ae({children:e,active:t=!1,className:n,...r}){return(0,O.jsx)(`button`,{className:E(`qz-pill`,t&&`qz-active`,n),"aria-pressed":t,...r,children:e})}function je({columns:e,rows:t}){return(0,O.jsxs)(`table`,{className:`qz-table`,children:[(0,O.jsx)(`thead`,{children:(0,O.jsx)(`tr`,{children:e.map((e,t)=>(0,O.jsx)(`th`,{children:e},t))})}),(0,O.jsx)(`tbody`,{children:t.map((e,t)=>(0,O.jsx)(`tr`,{children:e.map((e,t)=>(0,O.jsx)(`td`,{children:e},t))},t))})]})}var Me=C(e=>({title:null,message:``,confirmLabel:`OK`,danger:!1,resolve:null,open:(t,n,r,i,a)=>e({title:t,message:n,confirmLabel:r,danger:i,resolve:a}),close:()=>e({title:null,message:``,confirmLabel:`OK`,danger:!1,resolve:null})}));function Ne(e,t=``,n=`OK`,r=!1){return new Promise(i=>{Me.getState().open(e,t,n,r,i)})}function Pe(){let e=Me(e=>e.title),t=Me(e=>e.message),n=Me(e=>e.confirmLabel),r=Me(e=>e.danger),i=Me(e=>e.resolve),a=Me(e=>e.close);if((0,y.useEffect)(()=>{if(e===null)return;let t=e=>{e.key!==`Enter`&&e.key!==`Escape`||(e.stopPropagation(),e.preventDefault(),i?.(e.key===`Enter`),a())};return window.addEventListener(`keydown`,t,!0),()=>window.removeEventListener(`keydown`,t,!0)},[e,i,a]),e===null)return null;let o=e=>{i?.(e),a()};return(0,O.jsx)(`div`,{className:`qz-overlay-backdrop`,onMouseDown:()=>o(!1),children:(0,O.jsxs)(`div`,{className:`qzk-glass qz-dialog`,onMouseDown:e=>e.stopPropagation(),children:[(0,O.jsx)(`h2`,{children:e}),t&&(0,O.jsx)(`p`,{children:t}),(0,O.jsxs)(`div`,{className:`qz-btn-row`,children:[(0,O.jsx)(G,{onClick:()=>o(!1),children:`Cancel`}),(0,O.jsx)(G,{variant:r?`danger`:`primary`,onClick:()=>o(!0),children:n})]})]})})}function Fe(e,t){let n={};for(let r of t){let t=e[r.key];if(r.type===`number`&&typeof t==`string`){let e=Number(t);n[r.key]=Number.isFinite(e)?e:r.default}else n[r.key]=t}return n}function Ie({field:e,value:t,onChange:n,autoFocus:r=!1}){let i=e;return(0,O.jsxs)(`div`,{className:`qz-ws-row`,children:[(0,O.jsx)(`span`,{className:`k`,title:i.hint,children:i.label}),i.type===`number`&&(0,O.jsx)(`input`,{autoFocus:r,value:String(t??``),onChange:e=>n(e.target.value),onBlur:e=>{let t=Number(e.target.value);n(Number.isFinite(t)?t:i.default)}}),i.type===`text`&&(0,O.jsx)(`input`,{autoFocus:r,style:{flex:1},value:String(t??``),onChange:e=>n(e.target.value)}),i.type===`select`&&(0,O.jsx)(`select`,{value:String(t),onChange:e=>n(e.target.value),children:(i.options??[]).map(e=>(0,O.jsx)(`option`,{children:e},e))}),i.type===`boolean`&&(0,O.jsx)(`label`,{className:`qz-check`,children:(0,O.jsx)(`input`,{type:`checkbox`,checked:!!t,onChange:e=>n(e.target.checked)})})]})}var Le=C(e=>({title:null,fields:[],resolve:null,open:(t,n,r)=>e({title:t,fields:n,resolve:r}),close:()=>e({title:null,fields:[],resolve:null})}));function Re(e,t){return new Promise(n=>{Le.getState().open(e,t,n)})}function ze(){let e=Le(e=>e.title),t=Le(e=>e.fields),n=Le(e=>e.resolve),r=Le(e=>e.close),[i,a]=(0,y.useState)({});if((0,y.useEffect)(()=>{if(e!==null){let e={};for(let n of t)e[n.key]=n.default;a(e)}},[e,t]),e===null)return null;let o=e=>{n?.(e),r()};return(0,O.jsx)(`div`,{className:`qz-overlay-backdrop`,onMouseDown:()=>o(null),children:(0,O.jsxs)(`div`,{className:`qzk-glass qz-dialog`,onMouseDown:e=>e.stopPropagation(),onKeyDown:e=>{e.key===`Enter`&&o(Fe(i,t)),e.key===`Escape`&&o(null),e.stopPropagation()},children:[(0,O.jsx)(`h2`,{children:e}),t.map((e,t)=>(0,O.jsx)(Ie,{field:e,value:i[e.key],autoFocus:t===0,onChange:t=>a({...i,[e.key]:t})},e.key)),(0,O.jsxs)(`div`,{className:`qz-btn-row`,children:[(0,O.jsx)(G,{onClick:()=>o(null),children:`Cancel`}),(0,O.jsx)(G,{variant:`primary`,onClick:()=>o(Fe(i,t)),children:`Run`})]})]})})}var Be=[{title:`Global`,items:[{keys:`⌘ K`,desc:`Open the command palette`},{keys:`⌘ O`,desc:`Import data files`},{keys:`⌘ [`,desc:`Toggle the Library panel`},{keys:`⌘ ]`,desc:`Toggle the Inspector panel`},{keys:`⌘ ⇧ L`,desc:`Toggle light / dark theme`},{keys:`?`,desc:`Show this shortcuts sheet`},{keys:`Delete`,desc:`Remove the selected dataset(s)`},{keys:`Esc`,desc:`Close a dialog / menu / palette`}]},{title:`Library`,items:[{keys:`Click`,desc:`Plot a dataset (make it active)`},{keys:`↑ / ↓`,desc:`Previous / next dataset (wraps)`},{keys:`⌘ Click`,desc:`Add / remove from the selection`},{keys:`⇧ Click`,desc:`Select a range from the anchor`},{keys:`Double-click`,desc:`Rename a dataset`},{keys:`Right-click`,desc:`Row menu (plot · duplicate · merge · remove…)`}]},{title:`Plot`,items:[{keys:`A`,desc:`Autoscale / reset the view`},{keys:`Z`,desc:`Box-zoom tool`},{keys:`H`,desc:`Pan tool`},{keys:`D`,desc:`Data-cursor tool`},{keys:`M`,desc:`Measure tool`},{keys:`I`,desc:`Integrate tool (area under curve)`},{keys:`W`,desc:`Peak / FWHM tool`},{keys:`Drag`,desc:`Use the active tool over a region`},{keys:`Double-click`,desc:`Reset / auto-scale the view`},{keys:`Right-click`,desc:`Plot menu (log · grid · legend · copy · save…)`},{keys:`Right-click legend`,desc:`Series menu (rename · hide · move to Y2…)`}]},{title:`Analyze`,items:[{keys:`F`,desc:`Curve-fit workshop`},{keys:`Y`,desc:`Hysteresis workshop`},{keys:`P`,desc:`Find peaks`}]},{title:`Window`,items:[{keys:`⌘ ⇧ N`,desc:`New graph window`},{keys:`⌘ ⇧ D`,desc:`Duplicate window`},{keys:`⌘ ⇧ W`,desc:`Close window`},{keys:`⌃ Tab`,desc:`Focus next window`},{keys:`⌃ ⇧ Tab`,desc:`Focus previous window`},{keys:`Click`,desc:`Focus a background window`}]}];function Ve(e){return e?Be:Be.map(e=>({...e,items:e.items.map(e=>({...e,keys:e.keys.replace(/⌘|⌃/g,`Ctrl`)}))}))}function He(e,t){return e&&/filename\*?=(?:UTF-8'')?"?([^";\r\n]+)"?/i.exec(e)?.[1]?.trim()||t}function Ue(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}async function J(e,t){return qe(await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))}async function We(e){return qe(await fetch(e))}async function Ge(e){return qe(await fetch(e,{method:`DELETE`}))}async function Ke(e){if(!e.ok){let t=`${e.status} ${e.statusText}`;try{let n=await e.json();n.detail&&(t=n.detail)}catch{}throw Error(t)}return e}async function qe(e){return await(await Ke(e)).json()}async function Je(e,t){return qe(await fetch(e,{method:`POST`,body:t}))}async function Ye(e,t){return(await Ke(await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}))).blob()}async function Xe(e,t,n){let r=await fetch(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});Ue(await(await Ke(r)).blob(),He(r.headers.get(`Content-Disposition`),n))}async function Ze(){let e=await fetch(`/api/health`);if(!e.ok)throw Error(`health ${e.status}`);return await e.json()}function Qe(e){return J(`/api/parsers/import`,{path:e})}async function $e(e){let t=new FormData;return t.append(`file`,e,e.name),Je(`/api/parsers/upload`,t)}function et(e){return J(`/api/parsers/books/data`,{book_id:e.bookId,...e.kind===`path`?{path:e.path}:{token:e.token}})}function tt(){return We(`/api/samples/demo`)}function nt(e){return J(`/api/import/guess`,{text:e})}function rt(e,t){return J(`/api/import/parse`,{text:e,settings:t})}function it(e){return J(`/api/plot/series`,e)}function at(e){return J(`/api/plot/map`,e)}function ot(e){return J(`/api/rsm/analyze`,e)}function st(e){return J(`/api/rsm/strain`,e)}function ct(e){return J(`/api/corrections/apply`,e)}function lt(){return We(`/api/fitting/models`)}function ut(e,t,n){return J(`/api/fitting/autoguess`,{model:e,x:t,y:n})}function dt(e){return J(`/api/fitting/fit`,e)}function ft(e){return J(`/api/fitting/bootstrap`,e)}function pt(e){return J(`/api/fitting/equation/validate`,{equation:e})}function mt(e){return J(`/api/fitting/equation/fit`,e)}function ht(e){return J(`/api/fitting/find-xy`,e)}function gt(e){return J(`/api/fitting/scan`,e)}function _t(e){return J(`/api/baseline/estimate`,e)}function vt(e){return J(`/api/baseline/als`,e)}function yt(e){return J(`/api/baseline/rollingball`,e)}function bt(e){return J(`/api/baseline/modpoly`,e)}function xt(e){return J(`/api/baseline/anchor`,e)}function St(e){return J(`/api/baseline/shirley`,e)}function Ct(e){return J(`/api/baseline/xrdlowangle`,e)}function wt(e){return J(`/api/baseline/region`,e)}function Tt(e){return J(`/api/stats/descriptive`,{x:e})}function Et(e,t=`fd`,n){return J(`/api/statplots/histogram`,{data:e,bins:t,...n?{fit:n}:{}})}function Dt(e){return J(`/api/stats/shapiro`,{x:e})}function Ot(e){return J(`/api/stats/fit-distribution`,{x:e})}function kt(e,t,n=1.5){return J(`/api/statplots/box`,{groups:e,labels:t,whis:n})}function At(e,t=`scott`,n=128,r=2){return J(`/api/statplots/violin`,{data:e,bw_method:t,n_points:n,cut:r})}function jt(e,t=`norm`){return J(`/api/statplots/qq`,{data:e,dist:t})}function Mt(){return We(`/api/reference/constants`)}function Nt(){return We(`/api/reference/elements`)}function Pt(e,t,n){return J(`/api/reference/convert`,{value:e,from:t,to:n})}function Ft(e,t,n,r=1){return J(`/api/xray/calc`,{mode:e,wavelength:t,value:n,n:r})}function It(e){return J(`/api/crystallography/dspacing`,e)}function Lt(e){return J(`/api/crystallography/cell`,e)}function Rt(e){return J(`/api/sld/formula`,e)}function zt(e,t){return J(`/api/electrical/resistivity`,{rs:e,t})}function Bt(e,t){return J(`/api/electrical/sheet-resistance`,{rho:e,t})}function Vt(e){return J(`/api/electrical/conductivity`,{rho:e})}function Ht(e,t){return J(`/api/electrical/mobility`,{rho:e,n:t})}function Ut(e,t){return J(`/api/electrical/current-density`,{i:e,area:t})}function Wt(e,t,n,r){return J(`/api/electrical/hall`,{v_h:e,i:t,b:n,t:r})}function Gt(e,t,n){return J(`/api/optics/fresnel`,{n1:e,n2:t,theta:n})}function Kt(e,t){return J(`/api/optics/critical-angle`,{n1:e,n2:t})}function qt(e,t){return J(`/api/optics/brewster-angle`,{n1:e,n2:t})}function Jt(e,t,n){return J(`/api/optics/penetration-depth`,{n:e,k:t,wavelength:n})}function Yt(e,t){return J(`/api/optics/skin-depth`,{rho:e,f:t})}function Xt(e,t){return J(`/api/optics/refractive-to-dielectric`,{n:e,k:t})}function Zt(e,t){return J(`/api/optics/dielectric-to-refractive`,{eps1:e,eps2:t})}function Qt(e,t,n){return J(`/api/vacuum/mean-free-path`,{p:e,temperature:t,d:n})}function $t(e,t,n,r){return J(`/api/vacuum/monolayer-time`,{p:e,m:t,temperature:n,a_site:r})}function en(e,t){return J(`/api/vacuum/knudsen`,{mfp:e,length:t})}function tn(e,t,n,r){return J(`/api/vacuum/pump-down`,{v:e,s:t,p0:n,pf:r})}function nn(e,t,n){return J(`/api/vacuum/sputter-yield`,{material:e,energy:t,ion:n})}function rn(e,t,n,r,i,a){return J(`/api/vacuum/gas-flow`,{p1:e,p2:t,d:n,length:r,temperature:i,m:a})}function an(e,t){return J(`/api/thermal/wiedemann-franz`,{sigma:e,temperature:t})}function on(e,t){return J(`/api/thermal/debye`,{v_s:e,n:t})}function sn(e,t,n){return J(`/api/thermal/diffusivity`,{kappa:e,rho:t,cp:n})}function cn(e,t,n){return J(`/api/diffusion/arrhenius`,{d0:e,ea:t,t:n})}function ln(e,t){return J(`/api/diffusion/diffusion-length`,{d:e,t})}function un(e,t,n){return J(`/api/diffusion/fick-flux`,{d:e,dc:t,dx:n})}function dn(e,t,n,r){return J(`/api/electrochemistry/nernst`,{e0:e,n:t,q:n,t:r})}function fn(e,t,n,r){return J(`/api/electrochemistry/butler-volmer`,{j0:e,eta:t,alpha:n,t:r})}function pn(e,t){return J(`/api/electrochemistry/tafel-slope`,{alpha:e,t})}function mn(e,t){return J(`/api/electrochemistry/ohmic-drop`,{i:e,r:t})}function hn(e,t,n){return J(`/api/electrochemistry/double-layer-capacitance`,{epsilon:e,d:t,area:n})}function gn(){return We(`/api/substrates`)}function _n(e,t){return J(`/api/substrates/mismatch`,{a_film:e,a_sub:t})}function vn(e,t,n,r){return J(`/api/semiconductor/intrinsic`,{eg:e,me_star:t,mh_star:n,t:r})}function yn(e,t,n){return J(`/api/semiconductor/carrier-concentration`,{nd:e,na:t,ni:n})}function bn(e,t,n,r){return J(`/api/semiconductor/built-in-potential`,{na:e,nd:t,ni:n,t:r})}function xn(e,t,n,r,i){return J(`/api/semiconductor/depletion-width`,{vbi:e,na:t,nd:n,epsilon_r:r,t:i})}function Sn(e,t){return J(`/api/semiconductor/diffusion-coeff`,{mu:e,t})}function Cn(e,t){return J(`/api/semiconductor/diffusion-length`,{d:e,tau:t})}function wn(e,t,n,r,i,a){return J(`/api/semiconductor/fermi-level`,{eg:e,me_star:t,mh_star:n,nd:r,na:i,t:a})}function Tn(e,t,n){return J(`/api/semiconductor/debye-length`,{n:e,epsilon_r:t,t:n})}function En(e,t){return J(`/api/semiconductor/sheet-carrier-density`,{n:e,t})}function Dn(e,t){return J(`/api/semiconductor/thermal-velocity`,{m_star:e,t})}function On(e,t,n,r){return J(`/api/semiconductor/hall-coefficient`,{n:e,p:t,mu_e:n,mu_h:r})}function kn(e,t,n){return J(`/api/semiconductor/mobility-model`,{material:e,t,n})}function An(e,t){return J(`/api/thin-film/deposition-rate`,{thickness:e,time:t})}function jn(e,t,n,r){return J(`/api/thin-film/sputter-rate`,{y:e,j:t,rho:n,m:r})}function Mn(e,t){return J(`/api/thin-film/diffusion-length`,{d:e,t})}function Nn(e,t,n){return J(`/api/thin-film/dose-from-current`,{current:e,time:t,area:n})}function Pn(e,t,n){return J(`/api/thin-film/dose-to-concentration`,{dose:e,rp:t,delta_rp:n})}function Fn(e,t,n){return J(`/api/thin-film/kiessig-thickness`,{delta_q:e,sld:t,qc:n})}function In(e,t){return J(`/api/thin-film/multilayer-thermal`,{thicknesses:e,kappas:t})}function Ln(e,t,n){return J(`/api/thin-film/projected-range`,{ion:e,target:t,energy:n})}function Rn(e,t,n,r,i){return J(`/api/thin-film/stoney-stress`,{es:e,nus:t,ts:n,tf:r,r:i})}function zn(e,t,n,r,i){return J(`/api/thin-film/thermal-mismatch`,{alpha_film:e,alpha_sub:t,delta_t:n,e:r,nu:i})}function Bn(e,t,n){return J(`/api/superconductor/london-depth`,{lambda0:e,t,tc:n})}function Vn(e,t,n){return J(`/api/superconductor/coherence-length`,{xi0:e,t,tc:n})}function Hn(e,t){return J(`/api/superconductor/gl-parameter`,{lambda_:e,xi:t})}function Un(e,t,n,r){return J(`/api/superconductor/critical-fields`,{hc0:e,tc:t,t:n,material:r})}function Wn(e,t,n,r){return J(`/api/superconductor/depairing-current`,{hc0:e,lambda0:t,tc:n,t:r})}function Gn(e,t){return J(`/api/superconductor/bcs-gap`,{tc:e,t})}function Kn(e,t,n,r){return J(`/api/magnetic/moment-convert`,{value:e,unit:t,volume:n,atoms:r})}function qn(e){return J(`/api/magnetic/demag`,{shape:e})}function Jn(e,t){return J(`/api/magnetic/curie-weiss`,{C:e,theta:t})}function Yn(e,t,n){return J(`/api/magnetic/langevin`,{mu:e,field_oe:t,temperature:n})}function Xn(e,t){return J(`/api/magnetic/domain-wall`,{exchange_a:e,anisotropy_k:t})}function Zn(e){return J(`/api/aggregate/algebra`,e)}function Qn(e){return Xe(`/api/export/xrd-csv`,e,`export.csv`)}function $n(e){return Xe(`/api/export/hdf5`,e,`export.h5`)}function er(e){return Xe(`/api/export/origin`,e,`export.zip`)}function tr(){return We(`/api/export/origin-com/status`)}function nr(e){return J(`/api/export/origin-com`,e)}function rr(e){return Xe(`/api/export/consolidated`,e,`consolidated.csv`)}function ir(e){return Xe(`/api/export/figure`,e,`figure.${e.fmt??`pdf`}`)}function ar(e){return J(`/api/export/figure-hitmap`,e)}function or(e){return Xe(`/api/export/figure-page`,e,`figure_page.${e.fmt??`pdf`}`)}function sr(e){return Ye(`/api/export/figure-page`,e)}function cr(e){return Xe(`/api/export/corner-figure`,e,`corner.${e.fmt??`pdf`}`)}function lr(e){return Xe(`/api/export/statplot-figure`,e,`statplot.${e.fmt??`pdf`}`)}function ur(e){return Xe(`/api/export/categorical-figure`,e,`bar.${e.fmt??`pdf`}`)}function dr(e){return J(`/api/magnetometry/hysteresis`,e)}function fr(e){return J(`/api/magnetometry/subtract-background`,e)}function pr(e){return J(`/api/magnetometry/subtract-hysteresis-background`,e)}function mr(e){return J(`/api/magnetometry/convert-units`,e)}function hr(e){return J(`/api/peaks/find`,e)}function gr(e){return J(`/api/peaks/fit`,e)}function _r(e){return J(`/api/peaks/fit-multi`,e)}function vr(){return We(`/api/reflectivity/presets`)}function yr(e){return J(`/api/reflectivity/simulate`,e)}function br(e){return J(`/api/reflectivity/sld-profile`,e)}function xr(e){return J(`/api/rsm/linecut`,e)}function Sr(e){return J(`/api/rsm/cut-segment`,e)}function Cr(e){return J(`/api/rsm/projection`,e)}function wr(e){return J(`/api/report/emit`,e)}function Tr(e,t,n){return Xe(`/api/report/export`,{report:e,format:t,filename:n},n)}function Er(e){return J(`/api/stats/recommend`,e)}var Dr=new Set([`/api/stats/ttest`,`/api/stats/wilcoxon`,`/api/stats/mann-whitney`,`/api/stats/anova`,`/api/stats/kruskal`]);function Or(e,t){return Dr.has(e)?J(e,t):Promise.reject(Error(`unknown test endpoint: ${e}`))}function kr(e){return J(`/api/peaks/integrate`,e)}function Ar(e){return J(`/api/spectral/fft`,e)}function jr(e){return J(`/api/import/guess`,{text:e})}function Mr(e,t,n=30){return J(`/api/import/preview`,{text:e,settings:t,max_rows:n})}function Nr(e,t){return J(`/api/import/parse`,{text:e,settings:t})}function Pr(){return We(`/api/import/filters`)}function Fr(e,t,n){return J(`/api/import/filters`,{name:e,glob:t,settings:n})}function Ir(e){return Ge(`/api/import/filters/${encodeURIComponent(e)}`)}function Lr(e){return J(`/api/reductions/williamson-hall`,e)}function Rr(e){return J(`/api/reductions/fft-thickness`,e)}function zr(e){return J(`/api/reductions/reflectivity-fft`,e)}function Br(e){return{time:[...e.time],values:e.values.map(e=>[...e]),labels:[...e.labels],units:[...e.units],metadata:{...e.metadata}}}function Vr(e,t){let n=Math.min(e.length,t.length),r=Array.from({length:n},(e,t)=>t).sort((t,n)=>e[t]-e[n]);return{x:r.map(t=>e[t]),y:r.map(e=>t[e])}}function Hr(e,t){let n=Math.min(e.length,t.length);if(n<2)return null;let r=Array.from({length:n},(e,t)=>t).sort((t,n)=>e[t]-e[n]),i=r.map(t=>e[t]),a=r.map(e=>t[e]),o=Array(n);for(let e=0;e<n;e++)if(e===0){let t=i[1]-i[0];o[e]=t===0?NaN:(a[1]-a[0])/t}else if(e===n-1){let t=i[n-1]-i[n-2];o[e]=t===0?NaN:(a[n-1]-a[n-2])/t}else{let t=i[e]-i[e-1],n=i[e+1]-i[e],r=t*n*(t+n);o[e]=r===0?NaN:(t**2*a[e+1]+(n**2-t**2)*a[e]-n**2*a[e-1])/r}let s=Array(n);for(let e=0;e<n;e++)s[r[e]]=o[e];let c=0,l=-1/0;for(let e=0;e<n;e++){let t=Math.abs(o[e]);Number.isFinite(t)&&t>l&&(l=t,c=e)}return{dydx:s,extremumX:i[c],extremumDydx:o[c]}}function Ur(e,t,n,r){let i=n-e,a=r-t;return{x0:e,y0:t,x1:n,y1:r,dx:i,dy:a,slope:i===0?null:a/i}}function Wr(e){if(!Number.isFinite(e))return`—`;if(e===0)return`0`;let t=Math.abs(e);return t>=1e5||t<.001?e.toExponential(2):e.toPrecision(4)}function Gr(e){let t=e.slope==null?`∞ (vertical)`:Wr(e.slope);return`Δx ${Wr(e.dx)} Δy ${Wr(e.dy)} slope ${t}`}function Kr(e,t,n){let r=null,i=1/0,a=Math.min(e.length,t.length);for(let o=0;o<a;o++){let a=e[o],s=t[o];if(!Number.isFinite(a)||!Number.isFinite(s))continue;let c=Math.abs(a-n);c<i&&(i=c,r=s)}return r}function qr(e,t,n){let r=Kr(e,t,n[0]),i=Kr(e,t,n[1]);return r==null||i==null?null:Ur(n[0],r,n[1],i)}var Jr=new Set([`X`,`Y`,`Y-error`,`X-error`,`Label`,`Disregard`]);function Yr(e){let t=e.metadata??{},n=t.origin_column_names;if(!Array.isArray(n))return[];let r=t.column_designations,i=typeof r==`object`&&r?r:{},a=t.column_comments,o=typeof a==`object`&&a?a:{};return n.map(e=>{let t=String(e),n=i[t],r=o[t];return{shortName:t,designation:typeof n==`string`&&Jr.has(n)?n:void 0,comment:typeof r==`string`&&r!==``?r:void 0}})}var Xr={X:`X`,Y:`Y`,"Y-error":`yEr`,"X-error":`xEr`,Label:`Label`,Disregard:`Disregard`};function Zr(e){let t=(e.metadata??{}).origin_text_columns;return!t||typeof t!=`object`||Array.isArray(t)?[]:Object.entries(t).filter(e=>Array.isArray(e[1])).sort(([e],[t])=>e.length-t.length||e.localeCompare(t)).map(([e,t])=>({shortName:e,rows:t.map(String)}))}function Qr(e){let t=(e.metadata??{}).origin_report_sheets;return!!t&&typeof t==`object`&&!Array.isArray(t)&&Object.keys(t).length>0}function $r(e,t,n){let r=new Map;return t.forEach((t,i)=>{let a=n[t];if(a==null)return;let o=e.values.map(e=>{let t=e[a];return Number.isFinite(t)?Math.abs(t):null});r.set(i+1,o)}),r}function ei(e){let t={...ti(e)},n=(e.metadata??{}).error_channels;if(n&&typeof n==`object`&&!Array.isArray(n))for(let[e,r]of Object.entries(n)){let n=Number(e),i=Number(r);Number.isInteger(n)&&Number.isInteger(i)&&n>=0&&i>=0&&(t[n]=i)}return t}function ti(e){let t=Yr(e),n={},r=null;for(let e=0;e<t.length;e++){let i=t[e]?.designation;i===`Y`?r=e:i===`Y-error`&&r!==null&&(n[r]=e)}return n}function ni(e){let t=Yr(e),n=[];for(let e=0;e<t.length;e++){let r=t[e]?.designation;(r===`Y-error`||r===`X-error`||r===`X`)&&n.push(e)}return n}var ri=6,ii=`auto`;function ai(e,t){ri=Math.min(12,Math.max(1,Math.round(e))),ii=t}function Y(e){if(typeof e!=`number`||!Number.isFinite(e))return`—`;if(ii===`scientific`)return e.toExponential(ri-1);if(ii===`fixed`)return e.toFixed(Math.min(ri,20));let t=Math.abs(e);return t!==0&&(t<.001||t>=1e5)?e.toExponential(ri-1):String(Number(e.toPrecision(ri)))}var oi={sin:Math.sin,cos:Math.cos,tan:Math.tan,exp:Math.exp,log:Math.log,ln:Math.log,log10:Math.log10,sqrt:Math.sqrt,abs:Math.abs,min:Math.min,max:Math.max,pow:Math.pow},si={pi:Math.PI,e:Math.E};function ci(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r===` `||r===` `)n++;else if(r>=`0`&&r<=`9`||r===`.`){let r=n+1;for(;r<e.length&&/[0-9.eE+-]/.test(e[r])&&!((e[r]===`+`||e[r]===`-`)&&!/[eE]/.test(e[r-1]));)r++;let i=Number(e.slice(n,r));if(!Number.isFinite(i))throw Error(`bad number "${e.slice(n,r)}"`);t.push({t:`num`,v:i}),n=r}else if(/[a-zA-Z_]/.test(r)){let r=n+1;for(;r<e.length&&/[a-zA-Z0-9_]/.test(e[r]);)r++;t.push({t:`name`,v:e.slice(n,r)}),n=r}else if(`+-*/%^(),`.includes(r))t.push({t:`op`,v:r}),n++;else throw Error(`unexpected character "${r}"`)}return t}function li(e){let t=ci(e),n=0,r=()=>t[n],i=()=>t[n++],a=e=>{let t=i();if(!t||t.t!==`op`||t.v!==e)throw Error(`expected "${e}"`)};function o(){let e=s();for(let t=r();t&&t.t===`op`&&(t.v===`+`||t.v===`-`);t=r()){i();let n=s(),r=t.v,a=e;e=e=>r===`+`?a(e)+n(e):a(e)-n(e)}return e}function s(){let e=c();for(let t=r();t&&t.t===`op`&&`*/%`.includes(t.v);t=r()){i();let n=c(),r=t.v,a=e;e=e=>r===`*`?a(e)*n(e):r===`/`?a(e)/n(e):a(e)%n(e)}return e}function c(){let e=l(),t=r();if(t&&t.t===`op`&&t.v===`^`){i();let t=c();return n=>e(n)**t(n)}return e}function l(){let e=r();if(e&&e.t===`op`&&(e.v===`-`||e.v===`+`)){i();let t=l();return e.v===`-`?e=>-t(e):t}return u()}function u(){let e=i();if(!e)throw Error(`unexpected end of expression`);if(e.t===`num`)return()=>e.v;if(e.t===`op`&&e.v===`(`){let e=o();return a(`)`),e}if(e.t===`name`){let t=r();if(t&&t.t===`op`&&t.v===`(`){i();let t=oi[e.v];if(!t)throw Error(`unknown function "${e.v}"`);let n=[];if(!(r()?.t===`op`&&r()?.v===`)`))for(n.push(o());r()?.t===`op`&&r()?.v===`,`;)i(),n.push(o());return a(`)`),e=>t(...n.map(t=>t(e)))}if(e.v in si){let t=si[e.v];return()=>t}let n=e.v;return e=>{let t=e[n];if(t===void 0)throw Error(`unknown variable "${n}"`);return t}}throw Error(`unexpected token "${e.v}"`)}let d=o();if(n!==t.length)throw Error(`trailing characters in expression`);return d}function ui(e,t){if(t<=0)return e;let n=Math.max(0,e.labels.length-t);return{...e,labels:e.labels.slice(0,n),units:e.units.slice(0,n),values:e.values.map(e=>e.slice(0,n))}}function di(e,t){if(!t.length)return e;let n=[...e.labels],r=[...e.units],i=e.values.map(e=>[...e]);for(let a of t){let t;try{t=li(a.expr)}catch{t=null}for(let r=0;r<e.time.length;r++){let a=NaN;if(t){let o={x:e.time[r]};n.forEach((e,t)=>{o[pi(t)]=i[r]?.[t]});try{a=t(o)}catch{a=NaN}}i[r].push(a)}n.push(a.name),r.push(a.unit??``)}return{...e,labels:n,units:r,values:i}}function fi(e,t){return di(ui(e,t.length),t)}function pi(e){let t=e,n=``;do n=String.fromCharCode(65+t%26)+n,t=Math.floor(t/26)-1;while(t>=0);return n}function mi(e){return e==null?`null`:typeof e==`string`?JSON.stringify(e):Array.isArray(e)?`[${e.map(mi).join(`, `)}]`:typeof e==`object`?`{ ${Object.entries(e).filter(([,e])=>e!==void 0).map(([e,t])=>`${e}: ${mi(t)}`).join(`, `)} }`:String(e)}var hi=0;function gi(e,t,n,r={}){return{id:`step-${++hi}`,kind:e,label:t,code:n,params:r,enabled:!0}}function _i(e){let t=e.params;switch(e.kind){case`expression`:return{...e,label:`Add column ${String(t.name??``)}`,code:`qz.addColumn(${mi(t.name)}, ${mi(t.expr)})`};case`correction`:return{...e,label:`Corrections → active dataset`,code:`qz.applyCorrections("<active>", ${mi(t.params)})`};case`reset`:return{...e,label:`Reset corrections`,code:`qz.resetCorrections("<active>")`};case`fit`:return{...e,label:`Fit ${String(t.model??``)}`,code:`qz.fit(${mi(t.model)})`};default:return e}}function vi(e){let t=[`// Quantized pipeline — reproducible analysis script`,`// ${e.length} step${e.length===1?``:`s`}`,``];if(e.length===0)t.push(`// (no steps recorded)`);else for(let n of e)t.push(n.enabled?n.code:`// off: ${n.code}`);return t.join(`
10
+ `)+`
11
+ `}function yi(e,t){let n;try{n=li(e)}catch(e){return e instanceof Error?e.message:`parse error`}let r={x:1};for(let e=0;e<t;e++)r[String.fromCharCode(65+e%26)]=1;try{let e=n(r);return Number.isFinite(e)||Number.isNaN(e)?null:`expression must yield a number`}catch(e){return e instanceof Error?e.message:`evaluation error`}}var bi={expression:[{key:`name`,label:`column name`},{key:`expr`,label:`expression (x, A, B, …)`}],fit:[{key:`model`,label:`fit model`}]};function xi(e){if(!Array.isArray(e))return[];let t=[`ui`,`import`,`expression`,`correction`,`reset`,`fit`],n=[];for(let r of e){if(typeof r!=`object`||!r)continue;let e=r;typeof e.label!=`string`||typeof e.code!=`string`||!t.includes(String(e.kind))||typeof e.params!=`object`||e.params===null||n.push({...gi(e.kind,e.label,e.code,{...e.params}),enabled:e.enabled!==!1})}return n}function Si(e,t,n){let r=Math.max(0,Math.min(e.length-1,t+n));if(r===t)return[...e];let i=[...e],[a]=i.splice(t,1);return i.splice(r,0,a),i}function Ci(e,t){return e===void 0&&t===void 0?0:t===void 0?e+1:e===void 0?t-1:(e+t)/2}function wi(e,t){let n=e.order,r=t.order;return n===void 0&&r===void 0?0:n===void 0?1:r===void 0?-1:n-r}function Ti(e,t){return e.filter(e=>e.parentId===t).sort(wi)}function Ei(e,t){return e.filter(e=>(e.folderId??null)===t).sort(wi)}function Di(e,t){let n=new Map;for(let t of e){let e=n.get(t.parentId)??[];e.push(t),n.set(t.parentId,e)}let r=new Set,i=[t];for(;i.length;){let e=i.pop();if(!r.has(e)){r.add(e);for(let t of n.get(e)??[])i.push(t.id)}}return r}function Oi(e,t,n){let r=[],i=n=>{for(let t of Ti(e,n))i(t.id);r.push(...Ei(t,n))};return i(n),r}function ki(e,t,n){let r=new Map(e.map(e=>[e.id,e.parentId])),i=n;for(;i!==null;){if(i===t)return!0;i=r.get(i)??null}return!1}function Ai(e,t,n,r){let i=Ci(Ti(e,t).at(-1)?.order,void 0);return[...e,{id:r,name:n.trim()||`New Folder`,parentId:t,order:i}]}function ji(e,t,n){let r=n.trim();return r?e.map(e=>e.id===t?{...e,name:r}:e):e}function Mi(e,t,n,r=`reparent`){let i=e.find(e=>e.id===n);if(!i)return{folders:e,datasets:t};if(r===`reparent`){let r=i.parentId;return{folders:e.filter(e=>e.id!==n).map(e=>e.parentId===n?{...e,parentId:r}:e),datasets:t.map(e=>(e.folderId??null)===n?{...e,folderId:r??void 0}:e)}}let a=Di(e,n);return{folders:e.filter(e=>!a.has(e.id)),datasets:t.map(e=>e.folderId&&a.has(e.folderId)?{...e,folderId:void 0}:e)}}function Ni(e,t,n,r){let i=e.find(e=>e.id===t);if(!i||ki(e,t,n))return e;let a=Ti(e,n).filter(e=>e.id!==t),o=r?a.findIndex(e=>e.id===r):-1,s=o<0?a.length:o,c=[...a.slice(0,s),i,...a.slice(s)],l=new Map(c.map((e,t)=>[e.id,t]));return e.map(e=>{if(e.id===t)return{...e,parentId:n,order:l.get(t)};let r=l.get(e.id);return r===void 0?e:{...e,order:r}})}function Pi(e,t,n,r){let i=e.find(e=>e.id===t);if(!i)return e;let a=Ei(e,n).filter(e=>e.id!==t),o=r?a.findIndex(e=>e.id===r):-1,s=o<0?a.length:o,c=[...a.slice(0,s),i,...a.slice(s)],l=new Map(c.map((e,t)=>[e.id,t]));return e.map(e=>{if(e.id===t)return{...e,folderId:n??void 0,order:l.get(t)};let r=l.get(e.id);return r===void 0?e:{...e,order:r}})}function Fi(e,t){let n=new Set(e.map(e=>e.id)),r=!1,i=t.map(e=>e.folderId&&!n.has(e.folderId)?(r=!0,{...e,folderId:void 0}):e);return r?i:t}function Ii(e,t,n){let r=t.filter(e=>e.folderId==null&&e.group?.trim());if(r.length===0)return{folders:e,datasets:t,createdFolderIds:[]};let i=e,a=[],o=new Map(Ti(e,null).map(e=>[e.name,e.id]));for(let e of r){let t=e.group.trim();if(!o.has(t)){let e=n();i=Ai(i,null,t,e),o.set(t,e),a.push(e)}}let s=t;for(let e of r)s=Pi(s,e.id,o.get(e.group.trim()));let c=new Set(r.map(e=>e.id));return s=s.map(e=>c.has(e.id)?{...e,group:void 0}:e),{folders:i,datasets:s,createdFolderIds:a}}function Li(e,t){return t-e.top<e.height/2?`above`:`below`}function Ri(e,t){let n=Math.min(e.height/3,Math.max(6,e.height*.25)),r=t-e.top;return r<n?`above`:r>e.height-n?`below`:`into`}function zi(e,t,n){if(n===`above`)return t;let r=e.indexOf(t);if(!(r<0))return e[r+1]}function Bi(e){return e.data.metadata?.origin_book!=null}function Vi(e){let t=[],n=new Map;for(let r of e){if(r.data.metadata?.origin_book==null)continue;let e=r.name.indexOf(`:`);if(e<0)continue;let i=r.name.slice(0,e),a=n.get(i);a||(a=[],n.set(i,a),t.push(i)),a.push(r)}return t.map(e=>({stem:e,members:n.get(e)})).filter(e=>e.members.length>1)}function Hi(e){let t=e.name.indexOf(`:`);return t<0?e.name:e.name.slice(0,t)}function Ui(e){let t=e.data.metadata?.origin_book;if(typeof t!=`string`)return 1;let n=t.indexOf(`@`);if(n<0)return 1;let r=Number(t.slice(n+1));return Number.isFinite(r)&&r>0?r:1}function Wi(e){let t=[],n=new Map,r=new Map;for(let i of e){let e=i.data.metadata?.origin_book;if(typeof e!=`string`||!e)continue;let a=e.split(`@`)[0]||e,o=`${Hi(i)}::${a}`,s=n.get(o);s||(s=[],n.set(o,s),r.set(o,a),t.push(o)),s.push(i)}return t.map(e=>({parent:r.get(e),members:[...n.get(e)].sort((e,t)=>Ui(e)-Ui(t))})).filter(e=>e.members.length>1)}function Gi(e){let t=e.name.indexOf(`:`);return t<0?e.name:e.name.slice(t+1)}function Ki(e){let t=[],n=new Map;for(let r of e){let e=r.data.metadata?.origin_book;if(typeof e!=`string`||!e)continue;let i=e.split(`@`)[0]||e,a=n.get(i);a?Ui(r)<Ui(a)&&n.set(i,r):(t.push(i),n.set(i,r))}return t.map(e=>({book:e,representative:n.get(e)}))}function qi(e,t){if(e.length<2)throw Error(`merge needs at least 2 datasets`);let n=e[0].labels.length;for(let r=1;r<e.length;r++)if(e[r].labels.length!==n)throw Error(`merge: column-count mismatch (${t[0]} has ${n}, ${t[r]} has ${e[r].labels.length})`);let r=[],i=[];for(let t of e){for(let e of t.time)r.push(e);for(let e of t.values)i.push([...e])}return{time:r,values:i,labels:[...e[0].labels],units:[...e[0].units],metadata:{...e[0].metadata,merged_from:t.join(` + `),merged_count:e.length}}}function Ji(e){return e.kind===`range`?Number.isFinite(e.min)||Number.isFinite(e.max):Array.isArray(e.values)&&e.values.length>0}function Yi(e,t){return Number.isFinite(t)?e.kind===`range`?!(Number.isFinite(e.min)&&t<e.min||Number.isFinite(e.max)&&t>e.max):(e.values??[]).includes(t):!1}var Xi=(e,t,n)=>t<0?e.time[n]:e.values[n]?.[t];function Zi(e,t,n){if(!e)return!0;for(let r of e)if(Ji(r)&&!Yi(r,Xi(t,r.col,n)))return!1;return!0}function Qi(e,t){let n=new Set;if(!e||!e.some(Ji))return n;let r=t.time.length;for(let i=0;i<r;i++)Zi(e,t,i)||n.add(i);return n}function $i(e,t){if(!Array.isArray(e))return[];let n=[];for(let r of e){if(!r||typeof r!=`object`)continue;let e=r,i=e.col;if(!(typeof i!=`number`||!Number.isInteger(i)||i<-1||i>=t)){if(e.kind===`range`){let t={col:i,kind:`range`};typeof e.min==`number`&&Number.isFinite(e.min)&&(t.min=e.min),typeof e.max==`number`&&Number.isFinite(e.max)&&(t.max=e.max),Ji(t)&&n.push(t)}else if(e.kind===`set`){let t=Array.isArray(e.values)?e.values.filter(e=>typeof e==`number`&&Number.isFinite(e)):[];t.length&&n.push({col:i,kind:`set`,values:t})}}}return n}var ea=(e,t)=>t<0?e.time:e.values.map(e=>e[t]);function ta(e,t){let n=ea(e,t);return[...new Set(n.filter(e=>Number.isFinite(e)))].sort((e,t)=>e-t)}function na(e){return!!e&&typeof e==`object`&&!Array.isArray(e)&&Object.values(e).every(e=>Array.isArray(e))}function ra(e){return[...e].sort((e,t)=>e.length-t.length||e.localeCompare(t))}function ia(e,t,n){let r=(e.metadata??{}).origin_text_columns;if(!na(r))return null;let i=ea(e,t);for(let e of ra(Object.keys(r))){let t=r[e],a=new Map,o=!0;for(let e=0;e<i.length&&o;e++){if(!Number.isFinite(i[e]))continue;let n=String(t[e]??``).trim();if(!n)continue;let r=a.get(i[e]);r===void 0?a.set(i[e],n):r!==n&&(o=!1)}if(o&&n.length>0&&n.every(e=>a.has(e)))return n.map(e=>a.get(e))}return null}function aa(e){return String(Number.isInteger(e)?e:Number(e.toPrecision(6)))}function oa(e,t,n){return ia(e,t,n)??n.map(aa)}function sa(e){let t=e.filter(e=>Number.isFinite(e)),n=t.length;if(n===0)return{mean:NaN,sem:NaN,n:0};let r=t.reduce((e,t)=>e+t,0)/n;if(n<2)return{mean:r,sem:NaN,n};let i=t.reduce((e,t)=>e+(t-r)**2,0)/(n-1);return{mean:r,sem:Math.sqrt(i/n),n}}function ca(e,t,n,r){let i=ea(e,t),a=ta(e,t),o=oa(e,t,a),s=n.map(t=>ea(e,t));return{groups:a.map((e,t)=>({label:o[t],series:s.map(t=>{let n=[];for(let r=0;r<i.length;r++)i[r]===e&&Number.isFinite(t[r])&&n.push(t[r]);return sa(n)})})),seriesLabels:[...r]}}function la(e,t=.15){if(e<=0)return[];let n=1/e*(1-t)/2;return Array.from({length:e},(t,r)=>({offset:(r+.5)/e-.5,halfWidth:n}))}function ua(e){let t=0;return e.map(e=>{let n=Number.isFinite(e.mean)?e.mean:0,r=t;return t+=n,{base:r,top:t}})}function da(e){let t=ua(e);return t.length?t[t.length-1].top:0}var fa=8,pa=12;function ma(e){let t=[];for(let n of e)Number.isFinite(n)&&t.push(n);if(t.length<pa)return`continuous`;let n=new Set(t);return n.size<=fa&&n.size*3<=t.length?`nominal`:`continuous`}function ha(e,t){return e.channelTypes?.[t]||ma(e.data.values.map(e=>e[t]))}function ga(e){return e!==`continuous`}function _a(e,t=null,n=null,r=null){let i=(n==null?e.time:e.values.map(e=>e[n])).map(e=>Number.isFinite(e)?e:null),a=r??xa(e,n),o=new Set(t??[]),s=[i];for(let t of a)s.push(e.values.map(e=>Number.isFinite(e[t])?e[t]:null));return{data:s,series:a.map(t=>({label:e.labels[t],unit:e.units[t]??``,axis:+!!o.has(t)})),xLabel:n==null?String(e.metadata?.x_column_long||e.metadata?.x_column_name||`x`):e.labels[n]??`x`,xUnit:n==null?String(e.metadata?.x_column_unit??``):e.units[n]??``}}function va(e,t,n,r){if(n==null||!ga(r))return e;let i=ta(t,n);if(i.length===0)return e;let a=oa(t,n,i),o=new Map(i.map((e,t)=>[e,t])),[s,...c]=e.data,l=s.map(e=>e==null?null:o.get(e)??null);return{...e,data:[l,...c],xCategories:a}}function ya(e,t){let n=Math.min(e.length,t.length),r=0;for(let i=0;i<n;i++)Number.isFinite(e[i])&&Number.isFinite(t[i])&&r++;return r}var ba=.1;function xa(e,t=null){let n=(e.metadata??{}).default_value_channels;if(Array.isArray(n)){let r=n.filter(n=>typeof n==`number`&&Number.isInteger(n)&&n>=0&&n<e.labels.length&&n!==t);if(r.length>0)return r}let r=t==null?e.time:e.values.map(e=>e[t]),i=e.labels.map((e,t)=>t).filter(e=>e!==t),a=i.map(t=>ya(r,e.values.map(e=>e[t]))),o=a.length?Math.max(...a):0;if(o===0)return i;let s=Math.max(2,o*ba),c=i.filter((e,t)=>a[t]>=s);return c.length>0?c:i}function Sa(e){let t=xa(e,null);return t.length>0?t[0]:null}function Ca(e,t,n,r,i){let a=(t??xa(e,n)).filter(e=>e!==n&&!r?.[e]);if(!i||i.length===0)return a;let o=e=>{let t=i.indexOf(e);return t===-1?i.length+a.indexOf(e):t};return[...a].sort((e,t)=>o(e)-o(t))}function wa(e){return{data:e.data,series:e.series.map(e=>({label:e.label,unit:e.unit,axis:e.axis??0})),xLabel:e.x.label,xUnit:e.x.unit}}function Ta(e,t,n){if(t.size===0)return e;let[r,...i]=e.data,a=i.map(e=>e.map((e,n)=>t.has(n)?null:e));if(n===`hide`)return{...e,data:[r,...a]};let o=i.map(e=>e.map((e,n)=>t.has(n)?e:null));return{...e,data:[r,...a,...o],series:[...e.series,...e.series.map(e=>({...e,label:`${e.label} (excluded)`,kind:`points`,muted:!0}))]}}function Ea(e,t,n){let r=Math.min(t,n),i=Math.max(t,n),a=[];for(let t=0;t<e.length;t++){let n=e[t];n!=null&&Number.isFinite(n)&&n>=r&&n<=i&&a.push(t)}return a}function Da(e,t){if(t.size===0)return e;let[n,...r]=e.data,i=r.map(e=>e.map((e,n)=>t.has(n)?e:null));return{...e,data:[n,...r,...i],series:[...e.series,...e.series.map(e=>({...e,label:`${e.label} (selected)`,kind:`points`,selected:!0}))]}}function Oa(e,t,n){let r=1/0,i=-1/0;for(let t of e)t==null||!Number.isFinite(t)||(t<r&&(r=t),t>i&&(i=t));if(r===1/0)return null;let a=Math.max(r,Math.min(t,n)),o=Math.min(i,Math.max(t,n));return o>a?[a,o]:null}function ka(e,t){let n=Ma(Fa(Pa(ja(Ta(Ia(e,t.waterfall),t.dropped,t.excludedDisplay),t.fitOverlay,t.id),t.baselineOverlay,t.id),t.peakOverlay,t.id),t.derivOverlay,t.id),r=t.selection&&t.id&&t.selection.datasetId===t.id?new Set(t.selection.rows):null;return r?Da(n,r):n}function Aa(e,t){return e.length===t?e:e.length>t?e.slice(0,t):null}function ja(e,t,n){if(!t||t.datasetId!==n)return e;let r=Aa(t.y,e.data[0].length);return r===null?e:{...e,data:[...e.data,r],series:[...e.series,{label:`fit`,unit:``}]}}function Ma(e,t,n){if(!t||t.datasetId!==n)return e;let r=Aa(t.y,e.data[0].length);return r===null?e:{...e,data:[...e.data,r],series:[...e.series,{label:`dy/dx`,unit:``,axis:1}]}}function Na(e,t){let n=Array(e.length).fill(null);for(let r of t){if(!Number.isFinite(r.center))continue;let t=0,i=1/0;for(let n=0;n<e.length;n++){let a=Math.abs(e[n]-r.center);a<i&&(i=a,t=n)}n[t]=r.height}return n}function Pa(e,t,n){if(!t||t.datasetId!==n)return e;let r=Aa(t.y,e.data[0].length);return r===null?e:{...e,data:[...e.data,r],series:[...e.series,{label:`baseline`,unit:``}]}}function Fa(e,t,n){if(!t||t.datasetId!==n)return e;let r=Aa(t.y,e.data[0].length);return r===null?e:{...e,data:[...e.data,r],series:[...e.series,{label:`peaks`,unit:``,kind:`points`}]}}function Ia(e,t){if(t<=0||e.data.length<=2)return e;let n=1/0,r=-1/0;for(let t=1;t<e.data.length;t++)for(let i of e.data[t])i!=null&&Number.isFinite(i)&&(i<n&&(n=i),i>r&&(r=i));let i=t*(r>n?r-n:1),a=e.data.map((e,t)=>t===0?e:e.map(e=>e==null?e:e+(t-1)*i));return{...e,data:a}}function La(e){let t=e.data,n=t[0],r=t.length>1,i=e=>e!=null&&Number.isFinite(e),a=e=>{if(!i(n[e]))return!1;if(!r)return!0;for(let n=1;n<t.length;n++)if(i(t[n][e]))return!0;return!1},o=e=>{if(!r||n[e]!==0)return!1;for(let n=1;n<t.length;n++)if(t[n][e]!==0)return!1;return!0},s=n.length;for(;s>0&&(!a(s-1)||o(s-1));)s--;if(s===n.length)return e;let c=t.map(e=>e.slice(0,s));return{...e,data:c}}async function Ra(e,t,n=!1,r=null,i=null,a=null){try{return La(wa(await it({dataset:e,y_log:t,x_log:n,x_key:a??void 0,y_keys:r??void 0,y2_keys:i??void 0})))}catch{return La(_a(e,i,a,r))}}function za(e){let t=e.data[0];return e.series.map((n,r)=>({data:[t,e.data[r+1]],series:[n],xLabel:e.xLabel,xUnit:e.xUnit}))}function Ba(e,t,n=8){if(e<=0)return[];let r=Math.max(1,Math.floor((t-(e-1)*n)/e));return Array(e).fill(r)}function Va(e){let t=e.hiddenChannels;return t&&t.length>0?e.yKeys.filter(e=>!t.includes(e)):e.yKeys}function Ha(e){return e.length===0?{rows:1,cols:1}:{rows:Math.max(...e.map(e=>e.row))+1,cols:Math.max(...e.map(e=>e.col))+1}}function Ua(e){if(e<=0)return{rows:1,cols:1};let t=Math.ceil(Math.sqrt(e));return{rows:Math.ceil(e/t),cols:t}}function Wa(e,t,n,r=8){return{cellW:Math.max(1,Math.floor((e-(n.cols-1)*r)/n.cols)),cellH:Math.max(1,Math.floor((t-(n.rows-1)*r)/n.rows))}}function Ga(e,t,n=20){if(e<=0)return[];let r=Math.max(1,Math.floor((t-(e-1)*n)/e));return Array(e).fill(r)}function Ka(e){let t=!1;return(n,r)=>{if(r!==`x`||t)return;let{min:i,max:a}=n.scales.x;if(!(i==null||a==null)){t=!0;for(let t of e())t!==n&&t.setScale(`x`,{min:i,max:a});t=!1}}}function qa(e){return new Set(e?.excludedRows??[])}function Ja(e,t){let n=new Set(e??[]);return n.has(t)?n.delete(t):n.add(t),[...n].sort((e,t)=>e-t)}function Ya(e,t){let n=t instanceof Set?t:new Set(t),r=[];for(let t=0;t<e;t++)n.has(t)||r.push(t);return r}function Xa(e,t){let n=t instanceof Set?t:new Set(t);if(n.size===0)return e;let r=Ya(e.time.length,n);return{...e,time:r.map(t=>e.time[t]),values:r.map(t=>e.values[t])}}function Za(e){if(!e)return new Set;let t=qa(e),n=Qi(e.filter,e.data);return n.size===0?t:t.size===0?n:new Set([...t,...n])}function Qa(e){return e?Qi(e.filter,e.data):new Set}function $a(e){if(!e)return null;let t=Za(e);return t.size===0?e.data:Xa(e.data,t)}function eo(e,t,n){let r=Array(n).fill(null);for(let n=0;n<t.length&&n<e.length;n++)r[t[n]]=e[n];return r}function to(e,t){if(!Array.isArray(e))return[];let n=new Set;for(let r of e)typeof r==`number`&&Number.isInteger(r)&&r>=0&&r<t&&n.add(r);return[...n].sort((e,t)=>e-t)}var no=[`row`,`column`,`grid`,`overlay`];function ro(e,t){return t<=0?{rows:1,cols:1}:e===`row`?{rows:1,cols:t}:e===`column`?{rows:t,cols:1}:e===`overlay`?{rows:1,cols:1}:Ua(t)}function io(e,t){let n=e===`overlay`?`Overlay`:`Panel`;return t.length>0?`${n}: ${t.join(`, `)}`:n}function ao(e){return`qz-panel-${e}`}function oo(e,t){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&t.has(e)):[]}function so(e){return no.includes(e)?e:`grid`}var co=`application/x-qz-panel-cell`;function lo(e){return JSON.stringify(e)}function uo(e){if(!e)return null;try{let t=JSON.parse(e);if(typeof t==`object`&&t&&typeof t.windowId==`string`&&typeof t.fromIndex==`number`&&Number.isInteger(t.fromIndex))return t}catch{}return null}function fo(e,t,n){if(t===n||t<0||t>=e.length||n<0||n>=e.length)return[...e];let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}function po(e,t){return e.filter(e=>e!==t)}function mo(e){let t=[];for(let n of e)t.includes(n)||t.push(n);return{families:t,overflow:t.length>2}}function ho(e,t){return+(e.indexOf(t)===1)}function go(e){let t=e.map(e=>{let t=$a(e)??e.data;return{ds:e,data:t,channels:xa(t,null)}}),n=new Set;for(let{data:e}of t)for(let t of e.time)Number.isFinite(t)&&n.add(t);let r=[...n].sort((e,t)=>e-t),i=t.map(({data:e})=>{let t=new Map;return e.time.forEach((e,n)=>{Number.isFinite(e)&&!t.has(e)&&t.set(e,n)}),t}),a=[];for(let{data:e,channels:n}of t)for(let t of n)a.push(e.units[t]??``);let{families:o,overflow:s}=mo(a),c=[],l=[r];t.forEach(({ds:e,data:t,channels:n},a)=>{for(let s of n){let n=t.units[s]??``;l.push(r.map(e=>{let n=i[a].get(e);if(n==null)return null;let r=t.values[n][s];return Number.isFinite(r)?r:null})),c.push({label:`${e.name}: ${t.labels[s]??`ch${s}`}`,unit:n,axis:ho(o,n)})}});let u=t[0]?.data;return{payload:{data:l,series:c,xLabel:String(u?.metadata?.x_column_long||u?.metadata?.x_column_name||`x`),xUnit:String(u?.metadata?.x_column_unit??``)},families:o,overflow:s}}var _o=null;function vo(e){_o=e}function yo(){return _o}function bo(e){return{payload:{data:e.payload.data.map(e=>[...e]),series:e.payload.series.map(e=>({...e})),xLabel:e.payload.xLabel,xUnit:e.payload.xUnit,...e.payload.xCategories?{xCategories:[...e.payload.xCategories]}:{}},styleList:e.styleList?e.styleList.map(e=>e?{...e}:null):null,labelList:e.labelList?e.labelList.map(e=>e??null):null,errorBars:[...e.errorBars.entries()].map(([e,t])=>[e,[...t]]),plotted:[...e.plotted],colorByColumns:[...e.colorByColumns.entries()].map(([e,t])=>[e,{...t,z:[...t.z]}]),hidden:e.hidden?[...e.hidden]:null}}function xo(e){return new Map(e)}function So(e){return new Map(e)}function Co(e){return e?e.map(e=>e??void 0):void 0}function wo(e){return e?e.map(e=>e??void 0):void 0}function To(e){return e===null||typeof e==`number`}function Eo(e){if(typeof e!=`object`||!e)return null;let t=e;if(typeof t.payload!=`object`||t.payload===null)return null;let n=t.payload;if(!Array.isArray(n.data)||!n.data.every(e=>Array.isArray(e))||!Array.isArray(n.series)||n.data.length!==n.series.length+1)return null;let r=[];for(let e of n.series){if(typeof e!=`object`||!e)return null;let t=e;if(typeof t.label!=`string`)return null;r.push({label:t.label,unit:typeof t.unit==`string`?t.unit:``,...t.kind===`line`||t.kind===`points`?{kind:t.kind}:{},...typeof t.axis==`number`?{axis:t.axis}:{},...typeof t.muted==`boolean`?{muted:t.muted}:{},...typeof t.selected==`boolean`?{selected:t.selected}:{}})}let i=n.data.map(e=>e.map(e=>To(e)?e:null)),a=Array.isArray(n.xCategories)?n.xCategories.filter(e=>typeof e==`string`):void 0,o=[];if(Array.isArray(t.errorBars))for(let e of t.errorBars)Array.isArray(e)&&e.length===2&&typeof e[0]==`number`&&Array.isArray(e[1])&&o.push([e[0],e[1].map(e=>To(e)?e:null)]);let s=Array.isArray(t.plotted)?t.plotted.filter(e=>typeof e==`number`):[],c=[];if(Array.isArray(t.colorByColumns)){for(let e of t.colorByColumns)if(Array.isArray(e)&&e.length===2&&typeof e[0]==`number`&&typeof e[1]==`object`&&e[1]!==null){let t=e[1];Array.isArray(t.z)&&typeof t.channel==`number`&&typeof t.colormap==`string`&&typeof t.lo==`number`&&typeof t.hi==`number`&&c.push([e[0],{channel:t.channel,colormap:t.colormap,lo:t.lo,hi:t.hi,z:t.z.map(e=>To(e)?e:null)}])}}return{payload:{data:i,series:r,xLabel:typeof n.xLabel==`string`?n.xLabel:`x`,xUnit:typeof n.xUnit==`string`?n.xUnit:``,...a?{xCategories:a}:{}},styleList:Array.isArray(t.styleList)?t.styleList.map(e=>typeof e==`object`&&e?e:null):null,labelList:Array.isArray(t.labelList)?t.labelList.map(e=>typeof e==`string`?e:null):null,errorBars:o,plotted:s,colorByColumns:c,hidden:Array.isArray(t.hidden)?t.hidden.map(e=>e===!0):null}}function Do(e,t){let n=t<=.5,r=e>=.5;return n?r?`ne`:`nw`:r?`se`:`sw`}var Oo=[`linear`,`log`,`reciprocal`],ko=[`auto`,`fixed`,`sci`,`eng`];function Ao(e){return typeof e==`string`&&Oo.includes(e)}function jo(e){return e?`log`:`linear`}function Mo(e){return Oo[(Oo.indexOf(e)+1)%Oo.length]}function No(e){return ko[(ko.indexOf(e)+1)%ko.length]}function Po(){return{yScale:`linear`,xScale:`linear`,showGrid:!0,showLegend:!0,legendPos:`ne`,legendXY:null,plotTemplate:`screen`,showAxisBox:!1,stackMode:!1,insetMode:!1,polarMode:!1,statMode:!1,xLim:null,yLim:null,xStep:null,yStep:null,xFmt:{mode:`auto`,digits:2},yFmt:{mode:`auto`,digits:2},plotTitle:``,xAxisLabel:``,yAxisLabel:``,xKey:null,yKeys:null,y2Keys:null,y2Lim:null,y2Scale:null,y2Step:null,y2AxisLabel:``,refLines:[],annotations:[],regionShades:[],seriesStyles:{},seriesLabels:{},errKeys:{},seriesOrder:null,hiddenChannels:[],waterfall:0}}var Fo=Object.keys(Po());function Io(e){let t={};for(let n of Fo)t[n]=e[n];return t}function Lo(e){return Io(e)}var Ro=[`theme`,`light`,`dark`];function zo(e){return Ro[(Ro.indexOf(e)+1)%Ro.length]}var Bo=3;function Vo(e){return e===null?1:e>=Bo?null:e+1}var Ho=480,Uo=360,Wo=40,Go=24;function Ko(e){let t=Math.max(0,e);return{x:Wo+t*Go,y:Wo+t*Go,w:Ho,h:Uo}}function qo(e,t,n){return{x:Math.min(Math.max(0,e),Math.max(0,n.width-Ho)),y:Math.min(Math.max(0,t),Math.max(0,n.height-Uo)),w:Ho,h:Uo}}function Jo(e,t,n){if(e.length<2||t===null)return null;let r=e.indexOf(t);return r<0?null:e[(r+n+e.length)%e.length]}function Yo(e,t){return typeof e==`number`&&Number.isFinite(e)?e:t}function Xo(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function Zo(e,t){return typeof e==`boolean`?e:t}function Qo(e,t){return typeof e==`string`?e:t}function $o(e){return Array.isArray(e)&&e.length===2&&typeof e[0]==`number`&&typeof e[1]==`number`&&Number.isFinite(e[0])&&Number.isFinite(e[1])}function es(e){return typeof e==`object`&&!!e&&typeof e.mode==`string`}var ts=[`ne`,`nw`,`se`,`sw`];function ns(e){if(!$o(e))return null;let t=e=>Math.min(1,Math.max(0,e));return[t(e[0]),t(e[1])]}var rs=[`data`,`page`];function is(e){if(!Array.isArray(e))return[];let t=e=>Math.min(1,Math.max(0,e)),n=[];for(let r of e){if(typeof r!=`object`||!r)continue;let e=r;if(typeof e.id!=`string`||typeof e.x!=`number`||typeof e.y!=`number`||!Number.isFinite(e.x)||!Number.isFinite(e.y))continue;let i=rs.includes(e.anchor)?e.anchor:void 0,a=i===`page`;n.push({id:e.id,x:a?t(e.x):e.x,y:a?t(e.y):e.y,text:typeof e.text==`string`?e.text:``,...e.axis===0||e.axis===1?{axis:e.axis}:{},...typeof e.size==`number`&&Number.isFinite(e.size)?{size:e.size}:{},...i?{anchor:i}:{}})}return n}function as(e,t,n){return Ao(e)?e:typeof t==`boolean`?jo(t):n}function os(e,t){return Ao(e)?e:typeof t==`boolean`?jo(t):null}function ss(e){let t=Po();if(typeof e!=`object`||!e)return t;let n=e;return{yScale:as(n.yScale,n.yLog,t.yScale),xScale:as(n.xScale,n.xLog,t.xScale),showGrid:Zo(n.showGrid,t.showGrid),showLegend:Zo(n.showLegend,t.showLegend),legendPos:ts.includes(n.legendPos)?n.legendPos:t.legendPos,legendXY:ns(n.legendXY),plotTemplate:Qo(n.plotTemplate,t.plotTemplate),showAxisBox:Zo(n.showAxisBox,t.showAxisBox),stackMode:Zo(n.stackMode,t.stackMode),insetMode:Zo(n.insetMode,t.insetMode),polarMode:Zo(n.polarMode,t.polarMode),statMode:Zo(n.statMode,t.statMode),xLim:$o(n.xLim)?n.xLim:null,yLim:$o(n.yLim)?n.yLim:null,xStep:Xo(n.xStep),yStep:Xo(n.yStep),xFmt:es(n.xFmt)?n.xFmt:t.xFmt,yFmt:es(n.yFmt)?n.yFmt:t.yFmt,plotTitle:Qo(n.plotTitle,t.plotTitle),xAxisLabel:Qo(n.xAxisLabel,t.xAxisLabel),yAxisLabel:Qo(n.yAxisLabel,t.yAxisLabel),xKey:Xo(n.xKey),yKeys:Array.isArray(n.yKeys)?n.yKeys.filter(e=>typeof e==`number`):null,y2Keys:Array.isArray(n.y2Keys)?n.y2Keys.filter(e=>typeof e==`number`):null,y2Lim:$o(n.y2Lim)?n.y2Lim:null,y2Scale:os(n.y2Scale,n.y2Log),y2Step:Xo(n.y2Step),y2AxisLabel:Qo(n.y2AxisLabel,t.y2AxisLabel),refLines:Array.isArray(n.refLines)?n.refLines:[],annotations:is(n.annotations),regionShades:Array.isArray(n.regionShades)?n.regionShades:[],seriesStyles:typeof n.seriesStyles==`object`&&n.seriesStyles!==null?n.seriesStyles:{},seriesLabels:typeof n.seriesLabels==`object`&&n.seriesLabels!==null?n.seriesLabels:{},errKeys:typeof n.errKeys==`object`&&n.errKeys!==null?n.errKeys:{},seriesOrder:Array.isArray(n.seriesOrder)?n.seriesOrder.filter(e=>typeof e==`number`):null,hiddenChannels:Array.isArray(n.hiddenChannels)?n.hiddenChannels.filter(e=>typeof e==`number`):[],waterfall:Yo(n.waterfall,t.waterfall)}}var cs=[`normal`,`minimized`,`maximized`],ls=[`theme`,`light`,`dark`],us=[`plot`,`snapshot`,`worksheet`,`map`,`panel`],ds=6,fs=200,ps=140;function ms(e,t){if(e<=0)return[];let n=Math.max(1,Math.ceil(Math.sqrt(e))),r=Math.max(1,Math.ceil(e/n)),i=Math.max(fs,(t.width-ds*(n+1))/n),a=Math.max(ps,(t.height-ds*(r+1))/r);return Array.from({length:e},(e,t)=>{let r=Math.floor(t/n);return{x:ds+t%n*(i+ds),y:ds+r*(a+ds),w:i,h:a}})}function hs(e){return Array.from({length:e},(e,t)=>Ko(t))}function gs(e){return[...e].sort((e,t)=>e.z-t.z).map(e=>e.id)}function _s(e,t){return e.title?e.title:(e.datasetId?t.find(t=>t.id===e.datasetId)?.name:void 0)||`Untitled graph`}function vs(e,t){if(!t.includes(e))return e;let n=2;for(;t.includes(`${e} (${n})`);)n++;return`${e} (${n})`}function ys(e,t){if(!Array.isArray(e))return[];let n=[];for(let r of e){if(typeof r!=`object`||!r)continue;let e=r;if(typeof e.id!=`string`||!us.includes(e.kind))continue;let i=e.kind,a=i===`snapshot`?Eo(e.snapshot):null;if(i===`snapshot`&&!a)continue;let o=i===`panel`&&typeof e.panel==`object`&&e.panel!==null?e.panel:null,s=i===`panel`?{datasetIds:oo(o?.datasetIds,t),layout:so(o?.layout)}:null,c=typeof e.geometry==`object`&&e.geometry!==null?e.geometry:{},l=typeof e.datasetId==`string`&&t.has(e.datasetId)?e.datasetId:null;n.push({id:e.id,kind:i,title:Qo(e.title,``),datasetId:i===`snapshot`||i===`panel`?null:l,geometry:{x:Yo(c.x,0),y:Yo(c.y,0),w:Math.max(1,Yo(c.w,Ho)),h:Math.max(1,Yo(c.h,Uo))},z:Yo(e.z,0),winState:cs.includes(e.winState)?e.winState:`normal`,view:ss(e.view),bg:ls.includes(e.bg)?e.bg:`theme`,linkGroup:i===`plot`&&typeof e.linkGroup==`number`&&Number.isInteger(e.linkGroup)&&e.linkGroup>=1&&e.linkGroup<=Bo?e.linkGroup:null,pinned:Zo(e.pinned,!1),...a?{snapshot:a}:{},...s?{panel:s}:{}})}return n}function bs(e,t){return e.map(e=>{let n={};return e.datasetId&&t.has(e.datasetId)&&(n.datasetId=null),e.panel&&e.panel.datasetIds.some(e=>t.has(e))&&(n.panel={...e.panel,datasetIds:e.panel.datasetIds.filter(e=>!t.has(e))}),Object.keys(n).length>0?{...e,...n}:e})}function xs(e,t){let n=e?[0,e.width]:[],r=e?[0,e.height]:[];for(let e of t)n.push(e.x,e.x+e.w),r.push(e.y,e.y+e.h);return{v:n,h:r}}function Ss(e,t,n){let r=0,i=1/0;for(let a of e)for(let e of t){let t=e-a,o=Math.abs(t);o<=n&&o<i&&(i=o,r=t)}return r}function Cs(e,t,n,r=8){let i=xs(t,n);return{x:e.x+Ss([e.x,e.x+e.w],i.v,r),y:e.y+Ss([e.y,e.y+e.h],i.h,r)}}function ws(e,t,n,r=8){let i=xs(t,n);return{w:e.w+Ss([e.x+e.w],i.v,r),h:e.h+Ss([e.y+e.h],i.h,r)}}function Ts(e){if(typeof e!=`object`||!e)return null;let t=e;if(typeof t.style!=`string`||typeof t.fmt!=`string`||typeof t.title!=`string`)return null;let n=Ao(t.xScale)?t.xScale:typeof t.xLog==`boolean`?jo(t.xLog):null,r=Ao(t.yScale)?t.yScale:typeof t.yLog==`boolean`?jo(t.yLog):null;return n===null||r===null?null:{...t,xScale:n,yScale:r}}function Es(e,t){if(!Array.isArray(e))return[];let n=[];for(let r of e){if(typeof r!=`object`||!r)continue;let e=r,i=Ts(e.config);if(typeof e.id!=`string`||typeof e.name!=`string`||!i)continue;let a=typeof e.datasetId==`string`&&t.has(e.datasetId)?e.datasetId:null,o={id:e.id,name:e.name,datasetId:a,config:i,live:e.live!==!1};!o.live&&typeof e.dataSnapshot==`object`&&e.dataSnapshot!==null&&(o.dataSnapshot=e.dataSnapshot),n.push(o)}return n}function Ds(e){return e.live?e.datasetId!==null:e.dataSnapshot!==void 0}var Os=`qz.graphTemplates`;function ks(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.name==`string`&&typeof t.style==`string`}function As(){try{let e=localStorage.getItem(Os);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(ks):[]}catch{return[]}}function js(e){let t=As().filter(t=>t.name!==e.name);t.push(e);try{localStorage.setItem(Os,JSON.stringify(t))}catch{}return t}function Ms(e){let t=As().filter(t=>t.name!==e);try{localStorage.setItem(Os,JSON.stringify(t))}catch{}return t}var Ns=e=>e===null||typeof e==`string`||typeof e==`number`;function Ps(e){if(typeof e!=`object`||!e)return!1;let t=e;switch(t.type){case`text`:return typeof t.text==`string`;case`table`:return Array.isArray(t.columns)&&t.columns.every(e=>typeof e==`string`)&&Array.isArray(t.rows)&&t.rows.every(e=>Array.isArray(e)&&e.length===t.columns.length&&e.every(Ns));case`params`:return Array.isArray(t.params)&&t.params.every(e=>typeof e==`object`&&!!e&&typeof e.name==`string`&&Ns(e.value));case`figure`:return typeof t.name==`string`;default:return!1}}function Fs(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.title!=`string`||!Array.isArray(t.sections)?!1:t.sections.every(e=>{if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.title==`string`&&Array.isArray(t.blocks)&&t.blocks.every(Ps)})}function Is(e,t){if(!Array.isArray(e))return[];let n=[];for(let r of e){if(typeof r!=`object`||!r)continue;let e=r;if(typeof e.id!=`string`||typeof e.name!=`string`||!Fs(e.report))continue;let i=typeof e.datasetId==`string`&&t.has(e.datasetId)?e.datasetId:null;n.push({id:e.id,name:e.name,datasetId:i,report:e.report})}return n}function Ls(e,t){return e.map(e=>e.datasetId&&t.has(e.datasetId)?{...e,datasetId:null}:e)}var Rs=[`tag`,`name`,`format`];function zs(e){let t=[];for(let n of e.trim().split(/\s+/)){if(!n)continue;let e=n.indexOf(`:`),r=e>0?n.slice(0,e).toLowerCase():``;if(Rs.includes(r)){let i=n.slice(e+1).toLowerCase();i&&t.push({field:r,needle:i})}else t.push({field:`any`,needle:n.toLowerCase()})}return t}function Bs(e){let t=e.data.metadata.parser_name;return typeof t==`string`?t:``}function Vs(e,t){let n=e.name.toLowerCase(),r=e.tags??[];switch(t.field){case`name`:return n.includes(t.needle);case`tag`:return r.some(e=>e.toLowerCase().includes(t.needle));case`format`:return Bs(e).toLowerCase().includes(t.needle);default:return n.includes(t.needle)||r.some(e=>e.toLowerCase().includes(t.needle))}}function Hs(e,t){return t.every(t=>Vs(e,t))}function Us(e,t){let n=zs(t.query);return e.filter(e=>Hs(e,n))}function Ws(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=n;typeof e.id==`string`&&typeof e.name==`string`&&e.name.trim()!==``&&typeof e.query==`string`&&t.push({id:e.id,name:e.name,query:e.query})}return t}var Gs=`quantized-workspace`;function Ks(e){let t={format:Gs,version:3,savedAt:new Date().toISOString(),folders:e.folders??[],activeId:e.activeId??null,selectedIds:e.selectedIds??[],expandedFolders:e.expandedFolders??[],originFigures:e.originFigures??[],smartFolders:e.smartFolders??[],reports:e.reports??[],pipeline:e.macroSteps??[],recalcMode:e.recalcMode??`auto`,figureDocs:e.figureDocs??[],plotWindows:e.plotWindows??[],focusedWindowId:e.focusedWindowId??null,datasets:e.datasets.map(e=>({id:e.id,name:e.name,data:e.data,...e.raw?{raw:e.raw}:{},...e.corrections?{corrections:e.corrections}:{},...e.bgRef?{bgRef:e.bgRef}:{},...e.notes?{notes:e.notes}:{},...e.tags?.length?{tags:e.tags}:{},...e.group?.trim()?{group:e.group}:{},...e.folderId?{folderId:e.folderId}:{},...e.order===void 0?{}:{order:e.order},...e.formulas?.length?{formulas:e.formulas}:{},...e.channelRoles&&Object.keys(e.channelRoles).length?{channelRoles:e.channelRoles}:{},...e.channelTypes&&Object.keys(e.channelTypes).length?{channelTypes:e.channelTypes}:{},...e.excludedRows?.length?{excludedRows:e.excludedRows}:{},...e.filter?.length?{filter:e.filter}:{},...e.fitSpec?{fitSpec:e.fitSpec}:{},...e.pending?{pending:e.pending}:{},...e.source?{source:e.source}:{}}))};return JSON.stringify(t,null,2)}function qs(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=n;typeof e.id==`string`&&typeof e.name==`string`&&(e.parentId===null||typeof e.parentId==`string`)&&typeof e.order==`number`&&Number.isFinite(e.order)&&t.push({id:e.id,name:e.name,parentId:e.parentId??null,order:e.order})}let n=new Set(t.map(e=>e.id));return t.map(e=>e.parentId&&!n.has(e.parentId)?{...e,parentId:null}:e)}function Js(e,t){return Array.isArray(e)?e.filter(e=>typeof e==`string`&&t.has(e)):[]}function Ys(e,t){if(!Array.isArray(e))return[];let n=[];for(let r of e){if(typeof r!=`object`||!r)continue;let e=r;if(typeof e.id!=`string`||typeof e.stem!=`string`||typeof e.figure!=`object`||e.figure===null||!(e.datasetId===null||typeof e.datasetId==`string`))continue;let i=typeof e.datasetId==`string`&&t.has(e.datasetId)?e.datasetId:null,a=Array.isArray(e.siblingIds)?e.siblingIds.filter(e=>typeof e==`string`&&t.has(e)):[];n.push({id:e.id,stem:e.stem,figure:e.figure,datasetId:i,siblingIds:a})}return n}function Xs(e){return Array.isArray(e)&&e.every(e=>typeof e==`number`)}function Zs(e){if(typeof e!=`object`||!e)return null;let t=e;if(typeof t.bookId!=`string`||!t.bookId)return null;let n=typeof t.rows==`number`&&Number.isFinite(t.rows)?t.rows:0,r=typeof t.cols==`number`&&Number.isFinite(t.cols)?t.cols:0;return t.kind===`path`&&typeof t.path==`string`&&t.path?{kind:`path`,path:t.path,bookId:t.bookId,rows:n,cols:r}:t.kind===`upload`&&typeof t.token==`string`&&t.token?{kind:`upload`,token:t.token,bookId:t.bookId,rows:n,cols:r}:null}function Qs(e){if(typeof e!=`object`||!e)return null;let t=e;return t.kind===`path`&&typeof t.path==`string`&&t.path?{kind:`path`,path:t.path}:null}function $s(e){if(typeof e!=`object`||!e)return!1;let t=e;return Xs(t.time)&&Array.isArray(t.values)&&t.values.every(e=>Xs(e))&&Array.isArray(t.labels)&&t.labels.every(e=>typeof e==`string`)&&Array.isArray(t.units)&&t.units.every(e=>typeof e==`string`)&&typeof t.metadata==`object`&&t.metadata!==null}function ec(e){let t;try{t=JSON.parse(e)}catch{throw Error(`not a valid workspace file (bad JSON)`)}if(typeof t!=`object`||!t)throw Error(`not a workspace file`);let n=t;if(n.format!==`quantized-workspace`)throw Error(`not a quantized workspace (.dwk) file`);if(n.version!==1&&n.version!==2&&n.version!==3)throw Error(`unsupported workspace version: ${String(n.version)}`);if(!Array.isArray(n.datasets))throw Error(`workspace has no datasets`);let r=n.datasets.map((e,t)=>{if(typeof e!=`object`||!e)throw Error(`dataset ${t} is invalid`);let n=e;if(!$s(n.data))throw Error(`dataset ${t} ("${String(n.name??``)}") has an invalid data structure`);let r={id:typeof n.id==`string`?n.id:`ws-${t}`,name:typeof n.name==`string`?n.name:`dataset ${t+1}`,data:n.data};if($s(n.raw)&&(r.raw=n.raw),n.corrections&&typeof n.corrections==`object`&&(r.corrections=n.corrections),n.bgRef&&typeof n.bgRef==`object`&&typeof n.bgRef.datasetId==`string`&&(r.bgRef=n.bgRef),typeof n.notes==`string`&&(r.notes=n.notes),Array.isArray(n.tags)){let e=n.tags.filter(e=>typeof e==`string`&&e.trim()!==``);e.length&&(r.tags=e)}if(typeof n.group==`string`&&n.group.trim()&&(r.group=n.group),Array.isArray(n.formulas)){let e=n.formulas.filter(e=>typeof e==`object`&&!!e&&typeof e.name==`string`&&typeof e.expr==`string`);e.length&&(r.formulas=e)}if(n.channelRoles&&typeof n.channelRoles==`object`){let e={};for(let[t,r]of Object.entries(n.channelRoles))(r===`label`||r===`ignore`)&&Number.isInteger(Number(t))&&(e[Number(t)]=r);Object.keys(e).length&&(r.channelRoles=e)}if(n.channelTypes&&typeof n.channelTypes==`object`){let e={};for(let[t,r]of Object.entries(n.channelTypes))(r===`continuous`||r===`ordinal`||r===`nominal`)&&Number.isInteger(Number(t))&&(e[Number(t)]=r);Object.keys(e).length&&(r.channelTypes=e)}let i=to(n.excludedRows,r.data.time.length);i.length&&(r.excludedRows=i);let a=$i(n.filter,r.data.labels.length);a.length&&(r.filter=a),n.fitSpec&&typeof n.fitSpec==`object`&&typeof n.fitSpec.model==`string`&&(r.fitSpec={model:n.fitSpec.model});let o=Zs(n.pending);o&&(r.pending=o);let s=Qs(n.source);return s&&(r.source=s),typeof n.folderId==`string`&&(r.folderId=n.folderId),typeof n.order==`number`&&Number.isFinite(n.order)&&(r.order=n.order),r}),i=qs(n.folders),a=Fi(i,r),o=new Set(a.map(e=>e.id)),s=new Set(i.map(e=>e.id)),c=Js(n.selectedIds,o),l=typeof n.activeId==`string`&&o.has(n.activeId)?n.activeId:a[0]?.id??null,u=Js(n.expandedFolders,s),d=Ys(n.originFigures,o),f=Ws(n.smartFolders),p=Is(n.reports,o),m=xi(n.pipeline),h=n.recalcMode===`manual`||n.recalcMode===`off`?n.recalcMode:`auto`,g=Es(n.figureDocs,o),_=ys(n.plotWindows,o);return{datasets:a,folders:i,activeId:l,selectedIds:c,expandedFolders:u,originFigures:d,smartFolders:f,reports:p,macroSteps:m,recalcMode:h,figureDocs:g,plotWindows:_,focusedWindowId:typeof n.focusedWindowId==`string`&&_.some(e=>e.id===n.focusedWindowId&&e.kind===`plot`)?n.focusedWindowId:null}}function tc(e,t,n){let r=new Set(e.map(e=>e.id)),i=new Set(e.map(e=>e.name)),a=[],o=new Map,s=0;for(let e of t.datasets){let t=e.id;if(r.has(t)){do t=n();while(r.has(t));s++}r.add(t),a.push(t),o.set(e.id,t)}let c=0,l=0,u=0,d=t.datasets.map((e,t)=>{let n=a[t],r=e.name;if(i.has(r)){let e=2;for(;i.has(`${r} (${e})`);)e++;r=`${r} (${e})`,c++}i.add(r);let s={...e,id:n,name:r,folderId:void 0};if(e.folderId!==void 0&&u++,e.bgRef){let t=o.get(e.bgRef.datasetId);t?s.bgRef={...e.bgRef,datasetId:t}:(s.bgRef=void 0,l++)}return s});return{datasets:[...e,...d],remapped:s,renamed:c,droppedBgRefs:l,droppedFolderRefs:u}}var nc=.08,rc=.02,ic=.9;function ac(e,t){if(oc(e)||oc(t))return!1;let n=cc(e,t);if(n<=0)return!1;let r=sc(e),i=sc(t);return r<=0||i<=0?!1:n/r>ic&&n/i>ic}function oc(e){return!(e.right>e.left)||!(e.bottom>e.top)}function sc(e){return Math.max(0,e.right-e.left)*Math.max(0,e.bottom-e.top)}function cc(e,t){let n=Math.max(e.left,t.left),r=Math.min(e.right,t.right),i=Math.max(e.top,t.top),a=Math.min(e.bottom,t.bottom);return r<=n||a<=i?0:(r-n)*(a-i)}function lc(e){return{rows:e,cols:1,placements:Array.from({length:e},(e,t)=>({index:t,row:t,col:0})),spatial:!1}}function uc(e,t){let n=e.map((e,t)=>t).sort((t,n)=>e[t]-e[n]),r=Array(e.length).fill(0),i=0,a=e[n[0]];for(let o of n)e[o]-a>t&&(i++,a=e[o]),r[o]=i;return r}var dc=1.1;function fc(e,t){let n=e.length;if(n===0)return{rows:0,cols:0,placements:[],spatial:!1};if(n===1)return{rows:1,cols:1,placements:[{index:0,row:0,col:0}],spatial:!0};if(e.some(e=>!e||oc(e)))return lc(n);let r=e;for(let e=0;e<n;e++)for(let t=e+1;t<n;t++){let i=cc(r[e],r[t]);if(i<=0)continue;let a=Math.min(sc(r[e]),sc(r[t]));if(a>0&&i/a>rc)return lc(n)}if(t&&t.width>0&&t.height>0){let e=Math.max(...r.map(e=>e.right)),i=Math.max(...r.map(e=>e.bottom));if(e>t.width*dc||i>t.height*dc)return lc(n)}let i=Math.max(...r.map(e=>e.right))-Math.min(...r.map(e=>e.left)),a=Math.max(...r.map(e=>e.bottom))-Math.min(...r.map(e=>e.top));if(i<=0||a<=0)return lc(n);let o=uc(r.map(e=>e.top),nc*a),s=uc(r.map(e=>e.left),nc*i);return{rows:Math.max(...o)+1,cols:Math.max(...s)+1,placements:r.map((e,t)=>({index:t,row:o[t],col:s[t]})),spatial:!0}}var pc=new Set([`circle`,`square`,`triangle`,`downtriangle`,`diamond`,`plus`,`cross`,`star`]);function mc(e){if(!e)return null;let t={};return e.style===`scatter`?(t.marker=!0,t.width=0):e.style===`line`&&(t.width=1.5),e.color&&/^#[0-9a-fA-F]{6}$/.test(e.color)&&(t.color=e.color),e.symbol&&pc.has(e.symbol)&&(t.marker=!0,t.markerShape=e.symbol),typeof e.lineWidth==`number`&&e.lineWidth>0&&e.style!==`scatter`&&(t.width=e.lineWidth),typeof e.symbolSize==`number`&&e.symbolSize>0&&t.marker&&(t.markerSize=e.symbolSize),Object.keys(t).length>0?t:null}function hc(e,t,n,r){if(r&&t>0&&n>0&&e>0){let[r,i]=[Math.log10(t),Math.log10(n)];return i===r?NaN:(Math.log10(e)-r)/(i-r)}return n===t?NaN:(e-t)/(n-t)}function gc(e){let t=e.legend_pos;if(!t)return null;let n=hc(t.x,e.x_from,e.x_to,e.x_log),r=hc(t.y,e.y_from,e.y_to,e.y_log);return!Number.isFinite(n)||!Number.isFinite(r)?null:`${r>=.5?`n`:`s`}${n>=.5?`e`:`w`}`}var _c=/\\l\(\d+\)\s*/g,vc=/%\((\d+)\)/g;function yc(e,t,n){let r=(e.data.metadata??{}).column_comments;return(r&&typeof r==`object`?String(r[t]??``):``)||e.data.labels[n]||t}function bc(e,t){return e.replace(_c,``).replace(vc,(e,n)=>t[Number(n)-1]||e)}function xc(e,t){if(t.length===1)return t[0].id;if(t.length===0)return null;for(let n of e.curves??[]){let e=t.find(e=>String((e.data.metadata??{}).origin_book??``)===n.book);if(e)return e.id}let n=(e.source_hint??``).trim().toLowerCase();if(!n)return null;for(let e of t){let t=e.data.metadata??{},r=String(t.origin_book??``).trim().toLowerCase(),i=String(t.origin_book_long??``).trim().toLowerCase();if(r&&(n===r||n.includes(r)||r.includes(n))||i&&(n===i||n.includes(i)||i.includes(n))||e.name.toLowerCase().includes(n))return e.id}return null}function Sc(e,t){let n=t.data.metadata??{},r=String(n.origin_book??``),i=Array.isArray(n.origin_column_names)?n.origin_column_names.map(String):null;if(!i)return null;let a=(e.curves??[]).filter(e=>e.book===r);if(a.length===0)return null;let o=String(n.x_column_name??``),s=[],c={},l={},u=e.legend_labels??[],d=a.filter(e=>i.indexOf(e.y)>=0).map(e=>yc(t,e.y,i.indexOf(e.y))),f=null,p=0;for(let e of a){let t=i.indexOf(e.y);if(t<0)continue;s.includes(t)||s.push(t);let n=mc(e);if(n&&(c[t]=n),e.x&&e.x!==o){let t=i.indexOf(e.x);t>=0&&(f=t)}p<u.length&&u[p]&&(l[t]=bc(u[p],d)),p++}return s.length===0?null:{xKey:f,yKeys:s,styles:c,labels:l,errKeys:ti(t.data),hiddenChannels:ni(t.data)}}function Cc(e,t,n){let r=n.map(e=>e.id),i=r[0]??e;return t.map((t,a)=>({id:`fig-${i}-${a}`,stem:e,figure:t,datasetId:xc(t,n),siblingIds:r}))}function wc(e,t){let n=e.figure.name;if(!n)return[e];let r=e.siblingIds[0];return t.filter(t=>t.stem===e.stem&&t.figure.name===n&&t.siblingIds[0]===r).sort((e,t)=>(e.figure.layer??1)-(t.figure.layer??1))}function Tc(e,t){let n=wc(e,t);if(n.length!==2)return null;let r=n.find(t=>t.id!==e.id);return!r||!e.datasetId||!r.datasetId||e.datasetId!==r.datasetId||(e.figure.curves??[]).length===0||(r.figure.curves??[]).length===0?null:r}function Ec(e,t){let n=[];for(let r of e){if(!r.datasetId)return null;let e=t.find(e=>e.id===r.datasetId);if(!e)return null;let i=Sc(r.figure,e);if(!i)return null;let a=r.figure;n.push({datasetId:r.datasetId,xKey:i.xKey,yKeys:i.yKeys,xLim:[a.x_from,a.x_to],yLim:[a.y_from,a.y_to],xLog:a.x_log,yLog:a.y_log,xAxisLabel:a.x_title===void 0?void 0:a.x_title||null,yAxisLabel:a.y_title||void 0,seriesStyles:i.styles,seriesLabels:i.labels,errKeys:i.errKeys,hiddenChannels:i.hiddenChannels,xStep:a.x_step??null,yStep:a.y_step??null,annotations:Mc([a],r.id)})}return n}function Dc(e,t,n,r){let i=1e-6*Math.max(1,Math.abs(t-e));return Math.abs(e-n)<=i&&Math.abs(t-r)<=i}function Oc(e,t){let n=e.figure,r=t.figure;return!n.frame||!r.frame||!ac(n.frame,r.frame)||!e.datasetId||!t.datasetId||e.datasetId!==t.datasetId||(n.curves??[]).length===0||(r.curves??[]).length===0||Dc(n.y_from,n.y_to,r.y_from,r.y_to)?!1:Dc(n.x_from,n.x_to,r.x_from,r.x_to)}function kc(e){let t=new Set,n=[];for(let r=0;r<e.length;r++)if(!t.has(r))for(let i=r+1;i<e.length;i++){if(t.has(i)||!Oc(e[r],e[i]))continue;let[a,o]=(e[r].figure.layer??1)<=(e[i].figure.layer??1)?[r,i]:[i,r];n.push({hostIndex:a,y2Index:o}),t.add(r),t.add(i);break}return n}function Ac(e,t,n){return{...e,yKeys:[...e.yKeys,...t.yKeys.filter(t=>!e.yKeys.includes(t))],seriesStyles:{...e.seriesStyles,...t.seriesStyles},seriesLabels:{...e.seriesLabels,...t.seriesLabels},y2Keys:t.yKeys,y2Lim:t.yLim,y2Log:t.yLog,y2Step:t.yStep,y2AxisLabel:n.y2_title||n.y_title||``,annotations:[...e.annotations??[],...(t.annotations??[]).map(e=>({...e,axis:1}))]}}function jc(e,t){let n=Ec(e,t);if(!n)return null;let r=kc(e),i=new Map(r.map(e=>[e.hostIndex,e.y2Index])),a=new Set(r.map(e=>e.y2Index)),o=e.map((e,t)=>t).filter(e=>!a.has(e)),s=o.map(t=>{let r=i.get(t);return r==null?n[t]:Ac(n[t],n[r],e[r].figure)}),c=fc(o.map(t=>e[t].figure.frame??null),e[0].figure.page??null);return{panels:s.map((e,t)=>({...e,row:c.placements[t]?.row??t,col:c.placements[t]?.col??0})),spatial:c.spatial}}function Mc(e,t,n){let r=[];return e.forEach((e,i)=>{let a=n?.[i];(e.annotation_marks??[]).forEach((e,n)=>{r.push({id:`figann-${t}-${i}-${n}`,x:e.x,y:e.y,text:e.text,...a===1?{axis:1}:{}})})}),r}function Nc(e,t,n){let r=[];return e.forEach((e,i)=>{let a=n?.[i];(e.region_shades??[]).forEach((e,n)=>{!e.fill||![e.x1,e.x2,e.y1,e.y2].every(Number.isFinite)||r.push({id:`figshade-${t}-${i}-${n}`,x1:e.x1,x2:e.x2,y1:e.y1,y2:e.y2,fill:e.fill,...a===1?{axis:1}:{}})})}),r}function Pc(e){let t=e.figure,n=t.annotations[0]||t.name||`Figure`;return(t.layer??1)>=2?`${n} · layer ${t.layer}`:n}function Fc(e){return e.data.metadata??{}}function Ic(e){let t=Fc(e).origin_book;return typeof t==`string`&&t?t.split(`@`)[0]||t:``}function Lc(e){let t=Fc(e).origin_folder_path;return Array.isArray(t)?t.filter(e=>typeof e==`string`&&e!==``):[]}function Rc(e,t,n){let r=n(),i=[{id:r,name:e||`Project`,parentId:null,order:0}],a={},o=[r],s=new Map([[r,0]]),c=e=>{let t=s.get(e)??0;return s.set(e,t+1),t},l=new Map,u=e=>{let t=r;for(let r of e){let e=JSON.stringify([t,r]),a=l.get(e);a===void 0&&(a=n(),i.push({id:a,name:r,parentId:t,order:c(t)}),o.push(a),l.set(e,a),s.set(a,0)),t=a}return t},d=[],f=new Map;for(let e of t){let t=Lc(e),n=Ic(e),r=n?JSON.stringify([t,n]):`unstamped:${e.id}`,i=f.get(r);i||(i={path:t,datasets:[]},f.set(r,i),d.push(r)),i.datasets.push(e)}for(let e of d){let{path:t,datasets:r}=f.get(e),l=u(t);if(r.length>1){let e=n(),t=Ic(r[0])||`Book`;i.push({id:e,name:t,parentId:l,order:c(l)}),o.push(e),s.set(e,0);for(let t of r)a[t.id]=e}else a[r[0].id]=l}return{folders:i,membership:a,expanded:o}}function zc(e,t){return typeof t==`number`?t:e.labels.indexOf(t)}function Bc(e,t){return e.values.map(e=>e[t])}function Vc(e,t,n){if(n<=1)return[e];let r=Array(n);for(let i=0;i<n;i++)r[i]=e+(t-e)*i/(n-1);return r}function Hc(e,t){let n=e[0],r=e[e.length-1];if(r===n)return 0;let i=(t-n)/(r-n)*(e.length-1);return Math.max(0,Math.min(e.length-1,Math.round(i)))}function Uc(e,t,n,r,i){let a=e=>Number.isFinite(e),o=e.filter((r,i)=>a(e[i])&&a(t[i])&&a(n[i])),s=t.filter((r,i)=>a(e[i])&&a(t[i])&&a(n[i])),c=n.filter((r,i)=>a(e[i])&&a(t[i])&&a(n[i]));if(o.length===0)return{xAxis:[0],yAxis:[0],zGrid:[[null]]};let l=Vc(Math.min(...o),Math.max(...o),r),u=Vc(Math.min(...s),Math.max(...s),i),d=Array.from({length:i},()=>Array(r).fill(null)),f=Array.from({length:i},()=>Array(r).fill(0)),p=Array.from({length:i},()=>Array(r).fill(0));for(let e=0;e<o.length;e++){let t=Hc(l,o[e]),n=Hc(u,s[e]);f[n][t]+=c[e],p[n][t]+=1}for(let e=0;e<i;e++)for(let t=0;t<r;t++)p[e][t]>0&&(d[e][t]=f[e][t]/p[e][t]);return{xAxis:l,yAxis:u,zGrid:d}}function Wc(e){let t=1/0,n=-1/0;for(let r of e)for(let e of r)e!=null&&Number.isFinite(e)&&(e<t&&(t=e),e>n&&(n=e));return t<=n?{min:t,max:n}:{min:null,max:null}}function Gc(e){return{xAxis:e.x_axis,yAxis:e.y_axis,zGrid:e.z_grid,xLabel:e.x.label,xUnit:e.x.unit,yLabel:e.y.label,yUnit:e.y.unit,zLabel:e.z.label,zUnit:e.z.unit,zMin:e.z.min,zMax:e.z.max}}function Kc(e,t,n,r,i=60,a=60){let o=zc(e,t),s=zc(e,n),c=zc(e,r),{xAxis:l,yAxis:u,zGrid:d}=Uc(Bc(e,o),Bc(e,s),Bc(e,c),i,a),{min:f,max:p}=Wc(d);return{xAxis:l,yAxis:u,zGrid:d,xLabel:e.labels[o]??`x`,xUnit:e.units[o]??``,yLabel:e.labels[s]??`y`,yUnit:e.units[s]??``,zLabel:e.labels[c]??`z`,zUnit:e.units[c]??``,zMin:f,zMax:p}}function qc(e){return e.metadata.is2D===!0&&e.labels.length>=3}function Jc(e){return e.includes(`Qx`)&&e.includes(`Qz`)}function Yc(e,t,n){let r=e.indexOf(`Intensity`);if(r<0)return null;if(n===`q`){let t=e.indexOf(`Qx`),n=e.indexOf(`Qz`);return t<0||n<0?null:[t,n,r]}let i=e.indexOf(`2Theta`),a=e.indexOf(t);return i<0||a<0?null:[i,a,r]}async function Xc(e,t,n,r,i={}){try{return Gc(await at({dataset:e,x_key:t,y_key:n,z_key:r,method:i.method,nx:i.nx,ny:i.ny}))}catch{return Kc(e,t,n,r,i.nx,i.ny)}}function Zc(e,t){return t===`worksheet`?t:qc(e.data)?`map`:`plot`}function Qc(e){return qc(e.data)?`map`:`plot`}var $c=0,el=()=>`win-${Date.now().toString(36)}-${++$c}`,tl=e=>e.reduce((e,t)=>Math.max(e,t.z),0);function nl(e){return{id:el(),kind:`plot`,title:``,datasetId:e,geometry:Ko(0),z:0,winState:`maximized`,view:Po(),bg:`theme`,linkGroup:null,pinned:!1}}function rl(){return{spatialPanels:null,facetPanels:null,breakPanels:null,rsmPeaks:null,integral:null,fwhmResult:null,qfitRoi:null,qfitResult:null,qfitBusy:!1,qfitError:null,gadgetBusy:!1,gadgetError:null,gadgetIntegrateResult:null,gadgetStatsResult:null,gadgetDerivResult:null,gadgetFftPreview:null,gadgetCursors:null,gadgetCursorResult:null}}function il(e){return{xKey:null,yKeys:null,y2Keys:null,y2Lim:null,y2Scale:null,y2Step:null,y2AxisLabel:``,seriesStyles:{},seriesLabels:{},errKeys:e?ei(e.data):{},seriesOrder:null,hiddenChannels:e?ni(e.data):[],xLim:null,yLim:null,xStep:null,yStep:null}}function al(e,t){let n=e.datasets.find(e=>e.id===t);return{activeId:t,worksheetId:null,selectedIds:[t],plotWindows:e.plotWindows.map(n=>n.id===e.focusedWindowId?{...n,datasetId:t}:n),stageTab:n?Qc(n):e.stageTab,...il(n),...rl()}}function ol(e,t,n){let r=e.plotWindows.find(t=>t.id===e.focusedWindowId);if(!r?.pinned)return;let i=e.plotWindows.filter(e=>e.kind===`plot`&&e.id!==r.id&&!e.pinned&&e.winState!==`minimized`);if(i.length>0){e.focusWindow(i.reduce((e,t)=>t.z>e.z?t:e).id);return}let a=n===void 0?void 0:vs(n,e.plotWindows.map(t=>_s(t,e.datasets)));e.focusWindow(e.createWindow(t,void 0,a))}var sl=nl(null);function cl(e,t){return{plotWindows:[sl],focusedWindowId:sl.id,plotCanvasBounds:null,createWindow:(t,n,r)=>{let i=el();return e(e=>{let a=t===void 0?e.activeId:t,o=r??vs(a?e.datasets.find(e=>e.id===a)?.name??`Untitled graph`:`Untitled graph`,e.plotWindows.map(t=>_s(t,e.datasets))),s={id:i,kind:`plot`,title:o,datasetId:a,geometry:Ko(e.plotWindows.length),z:tl(e.plotWindows)+1,winState:`normal`,view:n??Po(),bg:`theme`,linkGroup:null,pinned:!1};return{plotWindows:[...e.plotWindows,s]}}),i},createSnapshotWindow:n=>{let r=t(),i=r.plotWindows.find(e=>e.id===r.focusedWindowId);if(!i)return null;let a=el(),o={id:a,kind:`snapshot`,title:vs(`Snapshot — ${_s(i,r.datasets)}`,r.plotWindows.map(e=>_s(e,r.datasets))),datasetId:null,geometry:Ko(r.plotWindows.length),z:tl(r.plotWindows)+1,winState:`normal`,view:Io(r),bg:i.bg,linkGroup:null,pinned:!1,snapshot:n};return e({plotWindows:[...r.plotWindows,o]}),a},createDocumentWindow:(n,r)=>{let i=t(),a=i.datasets.find(e=>e.id===r)??null,o=el(),s={id:o,kind:n,title:vs(a?.name??`Untitled`,i.plotWindows.map(e=>_s(e,i.datasets))),datasetId:a?a.id:null,geometry:Ko(i.plotWindows.length),z:tl(i.plotWindows)+1,winState:`normal`,view:Po(),bg:`theme`,linkGroup:null,pinned:!1};return e({plotWindows:[...i.plotWindows,s]}),o},createWindowAt:(n,r,i)=>{let a=t().createWindow(n);return e(e=>({plotWindows:e.plotWindows.map(t=>t.id===a?{...t,geometry:qo(r,i,e.plotCanvasBounds??{width:1200,height:800})}:t)})),a},rebindWindow:(n,r)=>{let i=t(),a=i.plotWindows.find(e=>e.id===n);if(!(!a||!i.datasets.some(e=>e.id===r))&&!(a.kind===`snapshot`||a.kind===`panel`)){if(a.kind===`worksheet`||a.kind===`map`){e(e=>({plotWindows:e.plotWindows.map(e=>e.id===n?{...e,datasetId:r}:e)})),t().ensureBookData(r);return}if(n===i.focusedWindowId)e(e=>al(e,r));else{let t=i.datasets.find(e=>e.id===r);e(e=>({plotWindows:e.plotWindows.map(e=>e.id===n?{...e,datasetId:r,view:{...e.view,...il(t)}}:e)}))}t().ensureBookData(r)}},closeWindow:t=>e(e=>{let n=e.plotWindows.find(e=>e.id===t);if(!n||n.kind===`plot`&&e.plotWindows.filter(e=>e.kind===`plot`).length<=1)return{};let r=e.plotWindows.filter(e=>e.id!==t);if(e.focusedWindowId!==t)return{plotWindows:r};let i=r.filter(e=>e.kind===`plot`).reduce((e,t)=>t.z>e.z?t:e);return{plotWindows:r,focusedWindowId:i.id,activeId:i.datasetId,selectedIds:i.datasetId?[i.datasetId]:[],...Lo(i.view),...rl()}}),focusWindow:t=>e(e=>{if(t===e.focusedWindowId)return{};let n=e.plotWindows.find(e=>e.id===t);if(!n)return{};if(n.kind!==`plot`){let n=tl(e.plotWindows)+1;return{plotWindows:e.plotWindows.map(e=>e.id===t?{...e,z:n}:e)}}let r=tl(e.plotWindows)+1;return{plotWindows:e.plotWindows.map(n=>n.id===e.focusedWindowId?{...n,view:Io(e)}:n.id===t?{...n,z:r}:n),focusedWindowId:t,activeId:n.datasetId,selectedIds:n.datasetId?[n.datasetId]:[],...Lo(n.view),...rl()}}),duplicateWindow:n=>{let r=t(),i=r.plotWindows.find(e=>e.id===n);if(!i)return null;let a=el(),o=i.id===r.focusedWindowId?Io(r):i.view,s=vs(_s(i,r.datasets),r.plotWindows.map(e=>_s(e,r.datasets))),c={id:a,kind:i.kind,title:s,datasetId:i.datasetId,geometry:Ko(r.plotWindows.length),z:tl(r.plotWindows)+1,winState:`normal`,view:o,bg:i.bg,linkGroup:i.linkGroup,pinned:!1,...i.snapshot?{snapshot:i.snapshot}:i.panel?{panel:i.panel}:{}};return e({plotWindows:[...r.plotWindows,c]}),a},moveWindow:(t,n,r)=>e(e=>({plotWindows:e.plotWindows.map(e=>e.id===t?{...e,geometry:{...e.geometry,x:n,y:r}}:e)})),resizeWindow:(t,n,r)=>e(e=>({plotWindows:e.plotWindows.map(e=>e.id===t?{...e,geometry:{...e.geometry,w:Math.max(1,n),h:Math.max(1,r)}}:e)})),raiseWindow:t=>e(e=>({plotWindows:e.plotWindows.map(n=>n.id===t?{...n,z:tl(e.plotWindows)+1}:n)})),setPlotCanvasBounds:t=>e({plotCanvasBounds:t}),tileWindows:()=>e(e=>{let t=e.plotWindows.filter(e=>e.winState!==`minimized`);if(t.length<2)return{};let n=e.plotCanvasBounds??{width:1200,height:800},r=ms(t.length,n),i=0;return{plotWindows:e.plotWindows.map(e=>{if(e.winState===`minimized`)return e;let t={...e,winState:`normal`,geometry:r[i],z:i+1};return i++,t})}}),cascadeWindows:()=>e(e=>{let t=e.plotWindows.filter(e=>e.winState!==`minimized`);if(t.length<2)return{};let n=hs(t.length),r=0;return{plotWindows:e.plotWindows.map(e=>{if(e.winState===`minimized`)return e;let t={...e,winState:`normal`,geometry:n[r],z:r+1};return r++,t})}}),minimizeWindow:t=>e(e=>{let n=e.plotWindows.find(e=>e.id===t);if(!n||n.winState===`minimized`)return{};let r=e.plotWindows.map(n=>n.id===t?{...n,winState:`minimized`,view:t===e.focusedWindowId?Io(e):n.view}:n);if(e.focusedWindowId!==t)return{plotWindows:r};let i=r.filter(e=>e.id!==t&&e.winState!==`minimized`&&e.kind===`plot`);if(i.length===0)return{plotWindows:r};let a=i.reduce((e,t)=>t.z>e.z?t:e);return{plotWindows:r,focusedWindowId:a.id,activeId:a.datasetId,selectedIds:a.datasetId?[a.datasetId]:[],...Lo(a.view),...rl()}}),restoreWindow:t=>e(e=>{let n=e.plotWindows.find(e=>e.id===t);if(!n||n.winState!==`minimized`)return{};if(n.kind!==`plot`){let n=tl(e.plotWindows)+1;return{plotWindows:e.plotWindows.map(e=>e.id===t?{...e,winState:`normal`,z:n}:e)}}let r=tl(e.plotWindows)+1;return{plotWindows:e.plotWindows.map(n=>n.id===t?{...n,winState:`normal`,z:r}:n.id===e.focusedWindowId?{...n,view:Io(e)}:n),focusedWindowId:t,activeId:n.datasetId,selectedIds:n.datasetId?[n.datasetId]:[],...Lo(n.view),...rl()}}),toggleMaximizeWindow:t=>e(e=>{let n=e.plotWindows.find(e=>e.id===t);if(!n||n.winState===`minimized`)return{};let r=n.winState===`maximized`?`normal`:`maximized`;return{plotWindows:e.plotWindows.map(e=>e.id===t?{...e,winState:r}:e)}}),renameWindow:(t,n)=>e(e=>({plotWindows:e.plotWindows.map(e=>e.id===t?{...e,title:n}:e)})),setWindowBg:(t,n)=>e(e=>({plotWindows:e.plotWindows.map(e=>e.id===t?{...e,bg:n}:e)})),cycleWindowLinkGroup:t=>e(e=>({plotWindows:e.plotWindows.map(e=>e.id===t?{...e,linkGroup:Vo(e.linkGroup)}:e)})),toggleWindowPin:t=>e(e=>({plotWindows:e.plotWindows.map(e=>e.id===t?{...e,pinned:!e.pinned}:e)})),windowsForSave:()=>{let e=t();return e.focusedWindowId===null?e.plotWindows:e.plotWindows.map(t=>t.id===e.focusedWindowId?{...t,view:Io(e)}:t)}}}function ll(e){return{datasets:e.datasets,activeId:e.activeId,selectedIds:e.selectedIds,worksheetId:e.worksheetId,originFigures:e.originFigures,reports:e.reports,figureDocs:e.figureDocs}}function ul(e,t){let n=new Set(t.datasets.map(e=>e.id));return{...t,selection:e.selection&&n.has(e.selection.datasetId)?e.selection:null,plotWindows:e.plotWindows.map(e=>e.datasetId&&!n.has(e.datasetId)?{...e,datasetId:null}:e),...rl()}}function dl(e){return{history:[],future:[],recordHistory:t=>e(e=>({history:[...e.history,{label:t,snapshot:ll(e)}].slice(-50),future:[]})),undo:()=>e(e=>{let t=e.history[e.history.length-1];return t?{history:e.history.slice(0,-1),future:[...e.future,{label:t.label,snapshot:ll(e)}].slice(-50),...ul(e,t.snapshot)}:{}}),redo:()=>e(e=>{let t=e.future[e.future.length-1];return t?{future:e.future.slice(0,-1),history:[...e.history,{label:t.label,snapshot:ll(e)}].slice(-50),...ul(e,t.snapshot)}:{}})}}var fl=0,pl=1900,ml=C((e,t)=>({toasts:[],push:(n,r=`info`)=>{let i=++fl;e(e=>({toasts:[...e.toasts,{id:i,msg:n,kind:r}].slice(-4)})),setTimeout(()=>t().dismiss(i),pl)},dismiss:t=>e(e=>({toasts:e.toasts.filter(e=>e.id!==t)}))}));function X(e,t){ml.getState().push(e,t)}async function hl(e){let t=e().datasets;if(t.length===0){e().setStatus(`no datasets to save`);return}let n=t.filter(e=>e.pending).length;if(n>0){e().setStatus(`fetching ${n} book${n===1?``:`s`} before saving…`);try{await e().resolvePendingDatasets()}catch(t){let n=`save failed — couldn't load full data for every book: ${t instanceof Error?t.message:`error`}`;e().setStatus(n),X(n,`danger`);return}}Ue(new Blob([Ks({...e(),plotWindows:e().windowsForSave()})],{type:`application/json`}),`workspace.dwk`);let r=`saved workspace — ${t.length} dataset${t.length===1?``:`s`}`;e().setStatus(r),X(r,`ok`)}function gl(e){return{reductionsOpen:!1,reductionsMethod:`williamson-hall`,openReductions:t=>e({reductionsOpen:!0,reductionsMethod:t}),setReductionsOpen:t=>e({reductionsOpen:t}),setReductionsMethod:t=>e({reductionsMethod:t})}}var _l=`.dat,.csv,.tsv,.txt,.xrdml,.brml,.raw,.refl,.pnr,.datA,.datB,.datC,.datD,.jdx,.dx,.nc,.cdf,.cif,.xlsx,.xlsm,.xls,.spc,.opus`;function vl(e,t=``){let n=document.createElement(`input`);n.type=`file`,n.multiple=!0,t&&(n.accept=t),n.onchange=()=>{n.files&&n.files.length&&e(Array.from(n.files))},n.click()}function yl(e){return e.lazy===!0}function bl(e){return e.primary===!0}function xl(e){return e.mode===`auto`?void 0:e}function Sl(e){let t=e.data.metadata?.origin_book;return typeof t==`string`&&t?t:null}function Cl(e,t){return e.books?.filter(e=>bl(e)||yl(e)).find(e=>e.id===t)}function wl(e,t=e.labels,n=e.units,r=e.metadata){return{time:e.time,values:e.values,labels:t,units:n,metadata:r}}async function Tl(e,t){let n=Sl(e);if(n==null||!t.books?.length)return wl(t);let r=Cl(t,n);if(!r)throw Error(`book "${n}" no longer exists in the re-imported file`);if(bl(r))return wl(t,r.labels,r.units,r.metadata);if(!t.book_source)throw Error(`re-imported file is missing its book source reference`);return et({...t.book_source,bookId:r.id,rows:r.rows,cols:r.cols})}function El(e,t){let n=Math.max(0,e.data.labels.length-(e.formulas?.length??0));return t.time.length!==e.data.time.length||t.labels.length!==n}async function Dl(e,t,n,r){let i=El(n,r),a=r;if(n.corrections){let e=n.bgRef&&n.bgRef.datasetId!==n.id?await t().resolveDataset(n.bgRef.datasetId):void 0,i={dataset:r,params:n.corrections};e&&(i.bg_dataset=e.data,i.bg_interp=n.bgRef.interp),a=await ct(i)}t().recordHistory(`re-import dataset`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==n.id)return e;let t={...e,data:a,pending:void 0,...n.corrections?{raw:r}:{},...i?{excludedRows:void 0,filter:void 0,channelRoles:void 0,channelTypes:void 0,formulas:void 0}:{}};return t.formulas?.length?{...t,data:fi(t.data,t.formulas)}:t})})),i&&X(`"${n.name}" changed shape on re-import — row/column selections were cleared`,`info`),t().recordMacro(`Re-import "${n.name}"`,`qz.reimportDataset(${mi(n.name)})`),t().touchDataset(n.id)}async function Ol(e,t,n,r){try{t().setStatus(`re-importing ${n.name}…`),await Dl(e,t,n,await Tl(n,await r())),t().setStatus(`re-imported ${n.name}`),X(`re-imported "${n.name}"`,`ok`)}catch(e){let r=e instanceof Error?e.message:`error`;t().setStatus(`re-import failed: ${r}`),X(`re-import "${n.name}" failed: ${r}`,`danger`)}}function kl(){return new Promise(e=>{vl(t=>e(t[0]??null),_l)})}function Al(e,t){return{reimportDataset:async n=>{let r=t().datasets.find(e=>e.id===n);if(!r)return;if(r.source){await Ol(e,t,r,()=>Qe(r.source.path));return}let i=await kl();i&&await Ol(e,t,r,()=>$e(i))}}}var jl=760,Ml=560;function Nl(e){return{createPanelWindow:(t,n)=>{let r=el();return e(e=>{let i=vs(io(n,t.map(t=>e.datasets.find(e=>e.id===t)?.name).filter(e=>!!e)),e.plotWindows.map(t=>_s(t,e.datasets))),a={id:r,kind:`panel`,title:i,datasetId:null,geometry:{...Ko(e.plotWindows.length),w:jl,h:Ml},z:tl(e.plotWindows)+1,winState:`normal`,view:Po(),bg:`theme`,linkGroup:null,pinned:!1,panel:{datasetIds:[...t],layout:n}};return{plotWindows:[...e.plotWindows,a]}}),r},reorderPanelDatasets:(t,n,r)=>{e(e=>{let i=e.plotWindows.find(e=>e.id===t);if(!i?.panel)return{};let a=fo(i.panel.datasetIds,n,r);return{plotWindows:e.plotWindows.map(e=>e.id===t&&e.panel?{...e,panel:{...e.panel,datasetIds:a}}:e)}})},removeFromPanel:(t,n)=>{e(e=>{let r=e.plotWindows.find(e=>e.id===t);if(!r?.panel)return{};let i=po(r.panel.datasetIds,n);return{plotWindows:e.plotWindows.map(e=>e.id===t&&e.panel?{...e,panel:{...e.panel,datasetIds:i}}:e)}})}}}function Pl(e,t,n,r){let i=t.width>0&&e.width>0?e.width/t.width:1,a=t.height>0&&e.height>0?e.height/t.height:i;return{x:e.left+n*i,y:e.top+r*a,scale:i}}function Fl(e,t,n,r){let i=n.width>0&&t.width>0?t.width/n.width:1,a=n.height>0&&t.height>0?t.height/n.height:i;return{x:e.x/i-(r.left-n.left),y:e.y/a-(r.top-n.top)}}function Il(e,t,n=8){let r=null,i=1/0;for(let a of e){if(!Number.isFinite(a.px)||!Number.isFinite(a.py))continue;let e=Math.hypot(a.px-t.x,a.py-t.y);e<=n&&e<i&&(i=e,r=a.id)}if(r)return r;for(let n of e){let{left:e,top:r,width:i,height:a}=n.box;if(!(i<=0||a<=0)&&t.x>=e&&t.x<=e+i&&t.y>=r&&t.y<=r+a)return n.id}return null}function Ll(e,t,n=8){return!!e&&Math.hypot(e.x-t.x,e.y-t.y)<=n}function Rl(e,t){return t.map(t=>({...t,px:e.valToPos(t.x,`x`),py:e.valToPos(t.y,`y`)}))}function zl(e,t,n=8){let r=null,i=1/0;for(let a of e){if(!Number.isFinite(a.px)||!Number.isFinite(a.py))continue;let e=Math.hypot(a.px-t.x,a.py-t.y);e<=n&&e<i&&(i=e,r=a.index)}return r}var Bl={viridis:[[68,1,84],[71,44,122],[59,81,139],[44,113,142],[33,144,141],[39,173,129],[92,200,99],[170,220,50],[253,231,37]],magma:[[0,0,4],[40,11,84],[101,21,110],[159,42,99],[212,72,66],[245,125,21],[250,193,39],[252,255,164]],gray:[[0,0,0],[255,255,255]]};function Vl(e,t){if(!Number.isFinite(t))return e[0];let n=t<=0?0:t>=1?1:t,r=e.length-1,i=n*r,a=Math.min(r-1,Math.floor(i)),o=i-a,s=e[a],c=e[a+1];return[Math.round(s[0]+(c[0]-s[0])*o),Math.round(s[1]+(c[1]-s[1])*o),Math.round(s[2]+(c[2]-s[2])*o)]}function Hl(e,t){return Vl(Bl[e],t)}function Ul(e,t){let[n,r,i]=Hl(e,t);return`rgb(${n}, ${r}, ${i})`}function Wl(e,t,n,r){return Number.isFinite(e)?r?e<=0?null:t<=0||n<=t?0:(Math.log(e)-Math.log(t))/(Math.log(n)-Math.log(t)):n<=t?0:(e-t)/(n-t):null}function Gl(e,t,n=6){let r=null,i=n;for(let n of e){if(!Number.isFinite(n.px))continue;let e=Math.abs((n.axis===`x`?t.x:t.y)-n.px);e<=i&&(i=e,r={id:n.id,axis:n.axis})}return r}function Kl(e,t,n){let r=null,i=0;return{hooks:{ready:n?.interactive&&n.onMove?t=>{let a=t.over,o=n.onMove,s=(n,r)=>{let i=a.getBoundingClientRect();return Gl(e.map(e=>({id:e.id,axis:e.axis,px:t.valToPos(e.value,e.axis===`x`?`x`:`y`)})),{x:n-i.left,y:r-i.top})};a.addEventListener(`mousemove`,e=>{if(r)return;let t=s(e.clientX,e.clientY);a.style.cursor=t?t.axis===`x`?`ew-resize`:`ns-resize`:``}),a.addEventListener(`mousedown`,n=>{if(n.button!==0)return;let c=s(n.clientX,n.clientY);if(!c)return;n.preventDefault(),n.stopPropagation();let l=a.getBoundingClientRect(),u=e=>c.axis===`x`?t.posToVal(e.clientX-l.left,`x`):t.posToVal(e.clientY-l.top,`y`);r=c.id,i=e.find(e=>e.id===c.id)?.value??u(n);let d=e=>{i=u(e),t.redraw()},f=e=>{let t=u(e);document.removeEventListener(`mousemove`,d),document.removeEventListener(`mouseup`,f),r=null,a.style.cursor=``,o(c.id,t)};document.addEventListener(`mousemove`,d),document.addEventListener(`mouseup`,f)},{capture:!0})}:void 0,draw:n=>{let{ctx:a}=n,{left:o,top:s,width:c,height:l}=n.bbox;a.save(),a.strokeStyle=t,a.lineWidth=1,a.setLineDash([5,4]);for(let t of e){let e=t.id===r?i:t.value;if(Number.isFinite(e)){if(a.beginPath(),t.axis===`x`){let t=n.valToPos(e,`x`,!0);if(t<o||t>o+c)continue;a.moveTo(t,s),a.lineTo(t,s+l)}else{let t=n.valToPos(e,`y`,!0);if(t<s||t>s+l)continue;a.moveTo(o,t),a.lineTo(o+c,t)}a.stroke()}}a.restore()}}}}function ql(e){return{hooks:{draw:t=>{let{ctx:n}=t,{left:r,top:i,width:a,height:o}=t.bbox;n.save(),n.strokeStyle=e,n.lineWidth=1,n.strokeRect(r+.5,i+.5,a-1,o-1),n.restore()}}}}function Jl(e){let t=/(\d+(?:\.\d+)?)px/.exec(e);return t?parseFloat(t[1]):11}function Yl(e){return Math.min(72,Math.max(6,Math.round(e)))}function Xl(e,t){return t?e.replace(/\d+(?:\.\d+)?px/,`${t}px`):e}function Zl(e){return Math.min(1,Math.max(0,e))}function Ql(e,t,n,r){return n<=0||r<=0?{x:0,y:0}:{x:Zl(e/n),y:Zl(t/r)}}function $l(e,t,n){return{x:e.x*t,y:e.y*n}}function eu(e,t,n,r,i=6){if(n<=0||r<=0)return{x:e,y:t};let a=i/n,o=1-a,s=i/r,c=1-s;return{x:Math.min(o,Math.max(a,e)),y:Math.min(c,Math.max(s,t))}}function tu(e,t,n){if(!Number.isFinite(t.x)||!Number.isFinite(t.y))return null;let r=e.ctx.canvas?.width??e.bbox.left+e.bbox.width,i=e.ctx.canvas?.height??e.bbox.top+e.bbox.height,a=e.scales.y2!=null,o=t.axis===1&&a?`y2`:`y`,{x:s,y:c}=t.anchor===`page`?$l({x:t.x,y:t.y},r,i):{x:e.valToPos(t.x,`x`,!0),y:e.valToPos(t.y,o,!0)},l=Xl(n,t.size);e.ctx.font=l;let u=t.text?e.ctx.measureText(t.text).width:0,{x:d,align:f}=ru(s,u,6,0,r),p=Jl(l)*1.3;return{px:s,py:c,tx:d,ty:Math.max(c-2,p),textWidth:u,align:f,lineHeight:p}}function nu(e){return{left:e.align===`left`?e.tx:e.tx-e.textWidth,top:e.ty-e.lineHeight,width:e.textWidth,height:e.lineHeight}}function ru(e,t,n,r,i){let a=r+i;return e+n+t<=a?{x:e+n,align:`left`}:e-n-t>=r?{x:e-n,align:`right`}:{x:Math.max(r,Math.min(e+n,a-t)),align:`left`}}function iu(e,t,n){let r=e.ctx.canvas?.width??0,i=e.ctx.canvas?.height??0,a=Ql(n.px,n.py,r,i),o=e.root.getBoundingClientRect(),s=e.over.getBoundingClientRect(),c=Fl({x:n.px,y:n.py},{width:r,height:i},o,s),l=e.scales.y2!=null,u=t.axis===1&&l?`y2`:`y`;return{toPage:a,toData:{x:e.posToVal(c.x,`x`),y:e.posToVal(c.y,u)}}}function au(e,t,n,r){let i=null,a=null,o=!1,s=null,c=0,l=0,u=e=>requestAnimationFrame(()=>{o||e.redraw()}),d=e=>i?.id===e.id?{...e,x:i.x,y:i.y}:a?.id===e.id?{...e,size:a.size}:e;return{hooks:{destroy:()=>{o=!0},ready:r?.interactive?t=>{let o=t.over,f=r,p=()=>e.map(e=>{let r=tu(t,d(e),n);return r?{id:e.id,layout:r}:null}).filter(e=>e!=null),m=e=>e.map(e=>({id:e.id,px:e.layout.px,py:e.layout.py,box:nu(e.layout)})),h=(e,t)=>{let n=t.find(t=>t.id===e);if(!n)return null;let r=nu(n.layout);return r.width>0?{x:r.left+r.width,y:r.top+r.height}:{x:n.layout.px+10,y:n.layout.py+10}},g=t.root,_=(e,n,r)=>Pl({left:0,top:0,width:t.ctx.canvas.width,height:t.ctx.canvas.height},e,n,r),v=(e,n)=>{let r=t.ctx.canvas.width,i=t.ctx.canvas.height;if(r<=0||i<=0)return{x:e,y:n};let a=g.getBoundingClientRect(),s=o.getBoundingClientRect(),c=a.width>0?r/a.width:1,l=Math.min(Math.max(t.valToPos(e,`x`,!0),6),r-6),u=Math.min(Math.max(t.valToPos(n,`y`,!0),6),i-6),d=l/c-(s.left-a.left),f=u/c-(s.top-a.top);return{x:t.posToVal(d,`x`),y:t.posToVal(f,`y`)}},y=e=>{g.style.cursor=e==="default"?``:e,o.style.cursor=e};g.addEventListener(`mousemove`,e=>{if(i||a)return;let t=g.getBoundingClientRect(),n=_(t,e.clientX-t.left,e.clientY-t.top),r=p(),o=f.selectedId??null;if(o&&Ll(h(o,r),n,8*n.scale)){y(`nwse-resize`);return}y(Il(m(r),n,8*n.scale)?`move`:`default`)}),g.addEventListener(`mousedown`,r=>{if(r.button!==0)return;let d=g.getBoundingClientRect(),y={x:r.clientX-d.left,y:r.clientY-d.top},b=_(d,y.x,y.y),x=p(),S=f.selectedId??null,C=S?h(S,x):null;if(S&&Ll(C,b,8*b.scale)){r.preventDefault(),r.stopPropagation();let i=e.find(e=>e.id===S).size??Jl(n);a={id:S,size:i};let o=e=>{let n=e.clientY-d.top-y.y;a={id:S,size:Yl(i+n*.25)},t.redraw()},s=e=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s);let n={x:e.clientX-d.left,y:e.clientY-d.top};a&&Math.hypot(n.x-y.x,n.y-y.y)>=6&&f.onResize?.(a.id,a.size),a=null,t.redraw(),u(t)};document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s);return}let w=Il(m(x),b,8*b.scale);if(w==null){let e=n=>{document.removeEventListener(`mouseup`,e);let r={x:n.clientX-d.left,y:n.clientY-d.top};if(Math.hypot(r.x-y.x,r.y-y.y)>=6)return;let i=Date.now();i-l<400?(l=0,t.setData(t.data),f.onResetView?.()):(l=i,f.onSelect?.(null))};document.addEventListener(`mouseup`,e);return}r.preventDefault(),r.stopPropagation(),f.onSelect?.(w);let T=Date.now(),E=s===w&&T-c<400;if(s=w,c=T,E){f.onEditText?.(w);return}let D=e.find(e=>e.id===w);i={id:w,x:D.x,y:D.y};let O=o.getBoundingClientRect(),k={x:r.clientX-O.left,y:r.clientY-O.top},A=e=>{if(D.anchor===`page`){let n=_(d,e.clientX-d.left,e.clientY-d.top),r=t.ctx.canvas.width,a=t.ctx.canvas.height,o=r>0?(n.x-b.x)/r:0,s=a>0?(n.y-b.y)/a:0,c=eu(D.x+o,D.y+s,r,a);i={id:w,x:c.x,y:c.y},t.redraw();return}let n=e.clientX-O.left,r=e.clientY-O.top,a=t.posToVal(n,`x`)-t.posToVal(k.x,`x`),o=t.posToVal(r,`y`)-t.posToVal(k.y,`y`),s=v(D.x+a,D.y+o);i={id:w,x:s.x,y:s.y},t.redraw()},j=e=>{document.removeEventListener(`mousemove`,A),document.removeEventListener(`mouseup`,j);let n={x:e.clientX-d.left,y:e.clientY-d.top};i&&Math.hypot(n.x-y.x,n.y-y.y)>=6&&f.onMove?.(i.id,i.x,i.y),i=null,t.redraw(),u(t)};document.addEventListener(`mousemove`,A),document.addEventListener(`mouseup`,j)},{capture:!0}),g.addEventListener(`contextmenu`,n=>{let r=g.getBoundingClientRect(),i=_(r,n.clientX-r.left,n.clientY-r.top),a=p(),o=Il(m(a),i,8*i.scale);if(o){n.preventDefault(),n.stopPropagation(),f.onSelect?.(o);let r=e.find(e=>e.id===o),i=a.find(e=>e.id===o);f.onContextMenu?.(o,n.clientX,n.clientY,iu(t,d(r),i.layout))}},{capture:!0})}:void 0,draw:i=>{let{ctx:a}=i,o=a.canvas?.width??i.bbox.left+i.bbox.width,s=a.canvas?.height??i.bbox.top+i.bbox.height;a.save(),a.fillStyle=t,a.textBaseline=`bottom`;for(let c of e){let e=d(c),l=tu(i,e,n);if(!l)continue;let{px:u,py:f,tx:p,ty:m,align:h}=l;if(!(u<0||u>o||f<0||f>s)&&(a.beginPath(),a.arc(u,f,3,0,Math.PI*2),a.fill(),e.text&&(a.font=Xl(n,e.size),a.textAlign=h,a.fillText(e.text,p,m)),r?.interactive&&r.selectedId===c.id)){let e=r.selectColor??t,n=nu(l);a.save(),a.strokeStyle=e,a.lineWidth=1,a.setLineDash([3,2]),a.strokeRect(n.left-3,n.top-3,Math.max(n.width,6)+6,n.height+6),a.setLineDash([]);let i=n.width>0?{x:n.left+n.width,y:n.top+n.height}:{x:u+10,y:f+10};a.fillStyle=e,a.fillRect(i.x-3,i.y-3,6,6),a.restore()}}a.restore()}}}}var ou=.25;function su(e){return{hooks:{drawClear:t=>{let{ctx:n}=t,{left:r,top:i,width:a,height:o}=t.bbox,s=t.scales.y2!=null;n.save(),n.beginPath(),n.rect(r,i,a,o),n.clip(),n.globalAlpha=ou;for(let r of e){if(![r.x1,r.x2,r.y1,r.y2].every(Number.isFinite))continue;let e=r.axis===1&&s?`y2`:`y`,i=t.valToPos(r.x1,`x`,!0),a=t.valToPos(r.x2,`x`,!0),o=t.valToPos(r.y1,e,!0),c=t.valToPos(r.y2,e,!0);[i,a,o,c].every(Number.isFinite)&&(n.fillStyle=r.fill,n.fillRect(Math.min(i,a),Math.min(o,c),Math.abs(a-i),Math.abs(c-o)))}n.restore()}}}}function cu(e,t,n=0){return{hooks:{draw:r=>{let{ctx:i}=r,{left:a,top:o,width:s,height:c}=r.bbox,l=r.data[0];i.save(),i.beginPath(),i.rect(a,o,s,c),i.clip(),i.strokeStyle=t,i.lineWidth=1;for(let[t,a]of e){let e=r.data[t];if(!e)continue;let o=r.series[t]?.scale??`y`;for(let t=0;t<l.length;t++){let s=l[t],c=e[t],u=a[t];if(s==null||c==null||u==null)continue;let d=r.valToPos(s,`x`,!0),f=r.valToPos(c+u,o,!0),p=r.valToPos(c-u,o,!0);i.beginPath(),i.moveTo(d,p),i.lineTo(d,f),n>0&&(i.moveTo(d-n,f),i.lineTo(d+n,f),i.moveTo(d-n,p),i.lineTo(d+n,p)),i.stroke()}}i.restore()}}}}var lu=5;function uu(e){return{hooks:{draw:t=>{if(e.size===0)return;let{ctx:n}=t,{left:r,top:i,width:a,height:o}=t.bbox,s=t.data[0],c=lu/2;n.save(),n.beginPath(),n.rect(r,i,a,o),n.clip();for(let[r,i]of e){let e=t.data[r];if(!e)continue;let a=t.series[r]?.scale??`y`;for(let r=0;r<s.length;r++){let o=s[r],l=e[r];if(o==null||l==null)continue;let u=Wl(i.z[r]??NaN,i.lo,i.hi,!1);if(u==null)continue;let[d,f,p]=Hl(i.colormap,u),m=t.valToPos(o,`x`,!0),h=t.valToPos(l,a,!0);n.beginPath(),n.fillStyle=`rgb(${d}, ${f}, ${p})`,n.arc(m,h,c,0,Math.PI*2),n.fill()}}n.restore()}}}}function du(e){return{legendXY:null,setLegendXY:t=>e({legendXY:t}),selectedAnnotationId:null,setSelectedAnnotationId:t=>e({selectedAnnotationId:t}),updateAnnotation:(t,n)=>e(e=>({annotations:e.annotations.map(e=>e.id===t?{...e,...n,...n.size===void 0?{}:{size:Yl(n.size)}}:e)}))}}function fu(e,t,n,r){let i=t<0?e.time:e.values.map(e=>e[t]),a=ta(e,t);if(a.length===0)return[];let o=oa(e,t,a);return a.map((t,a)=>{let s=[];for(let e=0;e<i.length;e++)i[e]===t&&s.push(e);let c={...e,time:s.map(t=>e.time[t]),values:s.map(t=>e.values[t])};return{label:o[a],payload:_a(c,null,n,r)}})}function pu(e){let t=1/0,n=-1/0;for(let r of e)for(let e of r.payload.data[0])e==null||!Number.isFinite(e)||(e<t&&(t=e),e>n&&(n=e));return t<=n?[t,n]:null}function mu(e,t=4){let n=e.filter(e=>Number.isFinite(e)).sort((e,t)=>e-t);if(n.length<3)return[];let r=[];for(let e=1;e<n.length;e++)r.push(n[e]-n[e-1]);let i=[...r].sort((e,t)=>e-t),a=i[Math.floor(i.length/2)];if(!(a>0))return[];let o=[];for(let e=0;e<r.length;e++)r[e]>=a*t&&o.push([n[e],n[e+1]]);return o}function hu(e,t,n,r){if(r.length===0)return[];let i=[...r].sort((e,t)=>e[0]-t[0]),a=t==null?e.time:e.values.map(e=>e[t]),o=[],s=-1/0;for(let[e,t]of i)o.push([s,e]),s=t;o.push([s,1/0]);let c=[];for(let[r,i]of o){let o=[];for(let e=0;e<a.length;e++){let t=a[e];Number.isFinite(t)&&t>=r&&t<=i&&o.push(e)}if(o.length===0)continue;let s=_a({...e,time:o.map(t=>e.time[t]),values:o.map(t=>e.values[t])},null,t,n),l=o.map(e=>a[e]);c.push({payload:s,xRange:[Math.min(...l),Math.max(...l)]})}return c}function gu(e){let t=1/0,n=-1/0;for(let r of e)for(let e=1;e<r.payload.data.length;e++)for(let i of r.payload.data[e])i==null||!Number.isFinite(i)||(i<t&&(t=i),i>n&&(n=i));return t<=n?[t,n]:null}function _u(e,t){return t&&t===String(e.x_column_name??``)?-2:(Array.isArray(e.origin_column_names)?e.origin_column_names.map(String):[]).indexOf(t)}function vu(e,t){let n=[];for(let r of e.curves??[]){let e=t.find(e=>String((e.data.metadata??{}).origin_book??``)===r.book);e&&!n.includes(e)&&n.push(e)}return n}function yu(e){let t=(e?.metadata??{}).origin_curve_styles;if(!Array.isArray(t))return{};let n={};return t.forEach((e,t)=>{e&&(n[t]=e)}),n}function bu(e){let t=(e?.metadata??{}).origin_curve_labels;if(!Array.isArray(t))return{};let n={};return t.forEach((e,t)=>{e&&(n[t]=e)}),n}function xu(e,t){let n=vu(e,t);if(n.length<2)return null;let r=e.legend_labels??[],i=(e.curves??[]).map(e=>{let t=n.find(t=>String((t.data.metadata??{}).origin_book??``)===e.book);if(!t)return;let r=_u(t.data.metadata??{},e.y);return r>=0?yc(t,e.y,r):void 0}),a=[];if(e.curves?.forEach((e,t)=>{let o=n.find(t=>String((t.data.metadata??{}).origin_book??``)===e.book);if(!o)return;let s=o.data.metadata??{},c=_u(s,e.y);if(c<0)return;let l=e.x?_u(s,e.x):-2,u=o.data.labels[c]||e.y,d=s.column_designations;a.push({ds:o,xCh:l===-1?-2:l,yCh:c,label:`${e.book}: ${u}`,unit:o.data.units[c]??``,style:mc(e),designation:d?String(d[e.y]??`Y`):`Y`,legendLabel:t<r.length&&r[t]?bc(r[t],i):void 0})}),a.length<2)return null;let o=[];for(let e of a)o.includes(e.ds)||o.push(e.ds);if(o.length<2)return null;let s=new Map,c=0;for(let e of o)s.set(e.id,c),c+=e.data.time.length;let l=Array(c).fill(NaN);for(let e of o){let t=s.get(e.id)??0;for(let n=0;n<e.data.time.length;n++)l[t+n]=e.data.time[n]}let u=Array.from({length:c},()=>Array(a.length).fill(NaN));a.forEach((e,t)=>{let n=s.get(e.ds.id)??0,r=e.ds.data.time.length;for(let i=0;i<r;i++)u[n+i][t]=e.ds.data.values[i]?.[e.yCh]??NaN;if(e.xCh>=0)for(let t=0;t<r;t++)l[n+t]=e.ds.data.values[t]?.[e.xCh]??NaN});let d=o[0].data.metadata??{};return{time:l,values:u,labels:a.map(e=>e.label),units:a.map(e=>e.unit),metadata:{source_format:String(d.source_format??`origin`),origin_overlay:!0,origin_overlay_figure:e.name||``,origin_curve_styles:a.map(e=>e.style),origin_curve_labels:a.map(e=>e.legendLabel??null),origin_column_names:a.map((e,t)=>`c${t}`),column_designations:Object.fromEntries(a.map((e,t)=>[`c${t}`,e.designation])),origin_overlay_books:o.map(e=>String((e.data.metadata??{}).origin_book??e.name)),x_column_name:`A`,x_column_long:String(d.x_column_long??``),x_column_unit:String(d.x_column_unit??``)}}}var Su=[{value:`default`,label:`Theme default`,colors:null},{value:`okabe-ito`,label:`Okabe–Ito (CB-safe)`,colors:[`#E69F00`,`#56B4E9`,`#009E73`,`#F0E442`,`#0072B2`,`#D55E00`,`#CC79A7`,`#BBBBBB`]},{value:`tol-bright`,label:`Tol bright (CB-safe)`,colors:[`#4477AA`,`#EE6677`,`#228833`,`#CCBB44`,`#66CCEE`,`#AA3377`,`#BBBBBB`,`#4477AA`]},{value:`tableau10`,label:`Tableau 10`,colors:[`#4E79A7`,`#F28E2B`,`#E15759`,`#76B7B2`,`#59A14F`,`#EDC948`,`#B07AA1`,`#FF9DA7`]},{value:`viridis`,label:`Viridis`,colors:[`#482878`,`#3E4A89`,`#31688E`,`#26828E`,`#1F9E89`,`#35B779`,`#6DCD59`,`#FDE725`]}],Cu=8;function wu(e){let t=document.documentElement,n=Su.find(t=>t.value===e)?.colors??null;for(let e=0;e<Cu;e++){let r=`--series-${e+1}`;n?t.style.setProperty(r,n[e%n.length]):t.style.removeProperty(r)}}function Tu(e){return Su.some(t=>t.value===e)?e:`default`}function Eu(e,t){let n=[],r=new Set([t]),i=[t];for(;i.length;){let t=i.shift();for(let a of e)r.has(a.id)||a.bgRef?.datasetId===t&&a.corrections&&a.raw&&(r.add(a.id),n.push(a.id),i.push(a.id))}return{datasets:n,fits:[t,...n].filter(t=>e.find(e=>e.id===t)?.fitSpec)}}function Du(e,t){let n=t.filter(t=>!e.includes(t));return n.length?[...e,...n]:e}var Ou=[`fit`,`integrate`,`stats`,`differentiate`,`fft`,`cursors`],ku={fit:`Fit`,integrate:`Integrate`,stats:`Stats`,differentiate:`Differentiate`,fft:`FFT`,cursors:`Cursors`},Au=[`Linear`,`Gaussian`,`Exponential Decay`];function ju(e,t,n){let r={x:[],y:[],rows:[]};if(!e||!t||n==null)return r;let i=$a(e);if(!i)return r;let a=e.data.time.length,o=Ya(a,Za(e)),s=Math.min(t[0],t[1]),c=Math.max(t[0],t[1]),l=[],u=[],d=[];for(let e=0;e<i.time.length;e++){let t=i.time[e],r=i.values[e]?.[n];t==null||!Number.isFinite(t)||t<s||t>c||r==null||!Number.isFinite(r)||(l.push(t),u.push(r),d.push(o[e]??e))}return{x:l,y:u,rows:d}}function Mu(e){if(!e)return``;let t=Array.isArray(e.params)?e.params:[],n=Array.isArray(e.errors)?e.errors:[];return t.map((e,t)=>{let r=n[t],i=typeof r==`number`&&Number.isFinite(r)?`±${Y(r)}`:``;return`p${t}=${Y(e)}${i}`}).join(` `)}function Nu(e,t){for(let n of e)if(!t(n))return n;return e.length>0?e[0]:null}var Pu=`qz.recent`,Fu=12;function Iu(e,t,n=Fu){return[t,...e.filter(e=>e.name!==t.name)].slice(0,n)}function Lu(){try{let e=localStorage.getItem(Pu);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>!!e&&typeof e==`object`&&typeof e.name==`string`):[]}catch{return[]}}function Ru(e){try{localStorage.setItem(Pu,JSON.stringify(e))}catch{}}function zu(){try{localStorage.removeItem(Pu)}catch{}}function Bu(e,t){let n=Date.parse(e);if(Number.isNaN(n))return``;let r=Math.max(0,Math.round((t-n)/1e3));if(r<45)return`just now`;let i=Math.round(r/60);if(i<60)return`${i}m ago`;let a=Math.round(i/60);if(a<24)return`${a}h ago`;let o=Math.round(a/24);return o===1?`yesterday`:`${o}d ago`}var Vu=e=>e.formulas?.length?{...e,data:fi(e.data,e.formulas)}:e,Hu=(e,t)=>e.map(e=>e.datasetId&&t.has(e.datasetId)?{...e,datasetId:null}:e),Uu=0,Wu=0,Gu=0,Ku=()=>`ds-${Date.now().toString(36)}-${++Gu}`,qu=()=>`fld-${Date.now().toString(36)}-${++Gu}`,Ju=()=>`rep-${Date.now().toString(36)}-${++Gu}`,Yu=new Map;function Xu(e,t){let n=Yu.get(e);if(n)return n;let r=et(t).then(t=>{Z.setState(n=>({datasets:n.datasets.map(n=>n.id===e?{...n,data:t,pending:void 0,excludedRows:void 0,filter:void 0}:n)}))}).finally(()=>{Yu.delete(e)});return Yu.set(e,r),r}var Zu=0,Qu=null,$u=!1,ed=null,td=`qz.prefs`,nd=[`dark`,`light`],rd=[`violet`,`teal`,`ocean`,`amber`,`rose`],id=[`compact`,`regular`,`comfy`],ad=[`auto`,`scientific`,`fixed`],od=[`Line`,`Line + markers`,`Scatter`,`Step`],sd=[`worksheet`,`plot`],cd={theme:`dark`,accent:`violet`,density:`regular`,palette:`default`,reduceMotion:!1,wheelZoom:!0,defaultTrace:`Line`,defaultLineWidth:1.5,defaultGrid:!0,antialias:!0,sigFigs:6,notation:`auto`,confirmRemove:!1,excludedDisplay:`hide`,originBookClickOpens:`worksheet`};function ld(){let e=cd;try{let t=JSON.parse(localStorage.getItem(td)??`{}`),n=(e,t)=>typeof e==`boolean`?e:t,r=(e,t,n,r)=>typeof e==`number`&&Number.isFinite(e)?Math.min(r,Math.max(n,e)):t;return{theme:nd.includes(t.theme)?t.theme:e.theme,accent:rd.includes(t.accent)?t.accent:e.accent,density:id.includes(t.density)?t.density:e.density,palette:Tu(t.palette),reduceMotion:n(t.reduceMotion,e.reduceMotion),wheelZoom:n(t.wheelZoom,e.wheelZoom),defaultTrace:od.includes(t.defaultTrace)?t.defaultTrace:e.defaultTrace,defaultLineWidth:r(t.defaultLineWidth,e.defaultLineWidth,.5,4),defaultGrid:n(t.defaultGrid,e.defaultGrid),antialias:n(t.antialias,e.antialias),sigFigs:r(t.sigFigs,e.sigFigs,1,12),notation:ad.includes(t.notation)?t.notation:e.notation,confirmRemove:n(t.confirmRemove,e.confirmRemove),excludedDisplay:t.excludedDisplay===`grey`?`grey`:e.excludedDisplay,originBookClickOpens:sd.includes(t.originBookClickOpens)?t.originBookClickOpens:e.originBookClickOpens}}catch{return e}}function ud(e){return{theme:e.theme,accent:e.accent,density:e.density,palette:e.palette,reduceMotion:e.reduceMotion,wheelZoom:e.wheelZoom,defaultTrace:e.defaultTrace,defaultLineWidth:e.defaultLineWidth,defaultGrid:e.defaultGrid,antialias:e.antialias,sigFigs:e.sigFigs,notation:e.notation,confirmRemove:e.confirmRemove,excludedDisplay:e.excludedDisplay,originBookClickOpens:e.originBookClickOpens}}function dd(e){wu(e.palette);let t=document.documentElement;t.dataset.theme=e.theme,t.dataset.accent=e.accent,t.dataset.density=e.density,e.reduceMotion?t.dataset.reduceMotion=``:delete t.dataset.reduceMotion,ai(e.sigFigs,e.notation);try{localStorage.setItem(td,JSON.stringify(ud(e)))}catch{}}var fd=ld(),Z=C((e,t)=>({...cl(e,t),...dl(e),...gl(e),...Al(e,t),...Nl(e),...du(e),datasets:[],activeId:null,worksheetId:null,selectedIds:[],originFigures:[],reports:[],openReportId:null,figureDocs:[],figureDocSeed:null,recalcMode:`auto`,staleDatasets:[],staleFits:[],folders:[],expandedFolders:[],smartFolders:[],leftCollapsed:!1,rightCollapsed:!1,stageTab:`plot`,theme:fd.theme,accent:fd.accent,density:fd.density,palette:fd.palette,reduceMotion:fd.reduceMotion,wheelZoom:fd.wheelZoom,defaultTrace:fd.defaultTrace,defaultLineWidth:fd.defaultLineWidth,defaultGrid:fd.defaultGrid,antialias:fd.antialias,excludedDisplay:fd.excludedDisplay,originBookClickOpens:fd.originBookClickOpens,sigFigs:fd.sigFigs,notation:fd.notation,confirmRemove:fd.confirmRemove,prefsOpen:!1,yScale:`linear`,xScale:`linear`,showGrid:fd.defaultGrid,showLegend:!0,legendPos:`ne`,plotTemplate:`screen`,showAxisBox:!1,stackMode:!1,spatialPanels:null,facetPanels:null,breakPanels:null,insetMode:!1,polarMode:!1,statMode:!1,xLim:null,yLim:null,xStep:null,yStep:null,xFmt:{mode:`auto`,digits:2},yFmt:{mode:`auto`,digits:2},plotTitle:``,xAxisLabel:``,yAxisLabel:``,xKey:null,yKeys:null,y2Keys:null,y2Lim:null,y2Scale:null,y2Step:null,y2AxisLabel:``,refLines:[],annotations:[],regionShades:[],seriesStyles:{},seriesLabels:{},errKeys:{},seriesOrder:null,hiddenChannels:[],waterfall:0,plotTool:`pointer`,regionPicked:null,selection:null,integral:null,fwhmResult:null,qfitRoi:null,qfitModel:`Linear`,qfitBusy:!1,qfitResult:null,qfitError:null,gadgetMode:`fit`,gadgetBusy:!1,gadgetError:null,gadgetIntegrateResult:null,gadgetStatsResult:null,gadgetDerivResult:null,derivOverlay:null,gadgetFftPreview:null,gadgetCursors:null,gadgetCursorResult:null,cmdkOpen:!1,curveFitOpen:!1,hysteresisOpen:!1,peaksOpen:!1,reflectivityOpen:!1,reflectivitySeed:null,baselineOpen:!1,calculatorsOpen:!1,magToolsOpen:!1,rsmOpen:!1,digitizerOpen:!1,datasetMathOpen:!1,tabulateOpen:!1,distributionOpen:!1,dataFilterOpen:!1,statsChooserOpen:!1,peakWizardOpen:!1,importWizardOpen:!1,pipelineOpen:!1,figureBuilderOpen:!1,figurePageOpen:!1,graphBuilderOpen:!1,graphBuilderSeed:null,statStageSeed:null,waterfallOpen:!1,reflViewOpen:!1,columnSwitcherOpen:!1,shortcutsOpen:!1,textFormatHelpOpen:!1,recent:Lu(),fitOverlay:null,peakOverlay:null,baselineOverlay:null,peakWizardEdit:null,baselineAnchorEdit:null,rsmPeaks:null,mapMethod:`linear`,mapRes:200,contourOn:!1,contourLevelCount:8,contourScale:`linear`,macroRecording:!1,macroSteps:[],pipelineRunning:!1,status:`starting…`,addDataset:n=>{t().recordHistory(`add dataset`),ol(t(),n.id,n.name),e(e=>({datasets:[...e.datasets,n],activeId:n.id,selectedIds:[n.id],plotWindows:e.plotWindows.map(t=>t.id===e.focusedWindowId?{...t,datasetId:n.id}:t),stageTab:Zc(n,e.stageTab),...il(n),integral:null,fwhmResult:null,qfitRoi:null,qfitResult:null,qfitBusy:!1,qfitError:null,gadgetBusy:!1,gadgetError:null,gadgetIntegrateResult:null,gadgetStatsResult:null,gadgetDerivResult:null,gadgetFftPreview:null,gadgetCursors:null,gadgetCursorResult:null}))},importFiles:async n=>{let r=0,i=``;for(let a of n){t().setStatus(`importing ${a.name}…`);try{let n=await $e(a),i=a.name.replace(/\.[^.]+$/,``),o=n.figures;delete n.figures;let s=[];if(n.books&&n.books.length>1){let r=n.book_source;for(let e of n.books){let a=e.metadata??{},o=String(a.origin_book??`Book`),c=String(a.origin_book_long??``),l=c&&c!==o?`${o} — ${c}`:o,u=Ku();bl(e)?t().addDataset({id:u,name:`${i}:${l}`,data:{time:n.time,values:n.values,labels:e.labels,units:e.units,metadata:e.metadata}}):yl(e)?t().addDataset({id:u,name:`${i}:${l}`,data:{time:e.preview.time,values:e.preview.values,labels:e.labels,units:e.units,metadata:e.metadata},...r?{pending:{...r,bookId:e.id,rows:e.rows,cols:e.cols}}:{}}):t().addDataset({id:u,name:`${i}:${l}`,data:e}),s.push(u)}let a=new Set(s),o=Rc(i,t().datasets.filter(e=>a.has(e.id)),qu);e(e=>({folders:[...e.folders,...o.folders],expandedFolders:[...new Set([...e.expandedFolders,...o.expanded])],datasets:e.datasets.map(e=>o.membership[e.id]?{...e,folderId:o.membership[e.id]}:e)}))}else{delete n.books,delete n.book_source;let e=Ku();t().addDataset({id:e,name:a.name,data:n}),s.push(e)}o?.length&&t().addOriginFigures(i,o,s),t().recordMacro(`Import ${a.name}`,`qz.import(${mi(a.name)})`,{kind:`import`,params:{name:a.name}}),t().pushRecent(a.name,a.size),r+=1}catch(e){i=`${a.name}: ${e instanceof Error?e.message:`error`}`}}let a=` — try the Import wizard (⌘K → Import wizard…)`,o=i?`imported ${r}/${n.length} — failed ${i}${a}`:`imported ${r} file${r===1?``:`s`}`;t().setStatus(o),r>0&&X(`imported ${r} file${r===1?``:`s`}`,`ok`),i&&X(`${i}${a}`,`danger`)},importFilesAppended:async e=>{if(e.length<2){X(`append needs ≥2 files — use Import data… for one`,`danger`);return}t().setStatus(`importing ${e.length} files to append…`);let n=[],r=``;for(let t of e)try{let e=await $e(t);if(e.books&&e.books.length>1){r=`${t.name} is a multi-workbook Origin project — can't append`;break}n.push({name:t.name,size:t.size,data:e})}catch(e){r=`${t.name}: ${e instanceof Error?e.message:`error`}`;break}if(!r&&n.length===e.length)try{let e=qi(n.map(e=>e.data),n.map(e=>e.name)),r=Ku(),i=`${n[0].name} +${n.length-1} more (appended)`;t().addDataset({id:r,name:i,data:e});for(let e of n)t().pushRecent(e.name,e.size);t().recordMacro(`Import (append) ${n.length} files`,`qz.importAppended(${mi(n.map(e=>e.name))})`,{kind:`import`,params:{names:n.map(e=>e.name)}});let a=`appended ${n.length} files → ${e.time.length} rows`;t().setStatus(a),X(a,`ok`);return}catch(e){r=e instanceof Error?e.message:`append failed (column-count mismatch)`}X(`${r} — importing separately instead`,`danger`),await t().importFiles(e)},ensureBookData:e=>{let n=t().datasets.find(t=>t.id===e);n?.pending&&Xu(e,n.pending).catch(e=>{X(`couldn't load full data for "${n.name}" — ${e instanceof Error?e.message:`error`}`,`danger`)})},resolvePendingDatasets:async()=>{let e=t().datasets.filter(e=>e.pending);await Promise.all(e.map(e=>Xu(e.id,e.pending)))},resolveDataset:async e=>{let n=t().datasets.find(t=>t.id===e);if(!n?.pending)return n;let r=setTimeout(()=>{X(`fetching full data for "${n.name}"…`)},400);try{await Xu(e,n.pending)}finally{clearTimeout(r)}return t().datasets.find(t=>t.id===e)},resolveDatasets:async e=>{let n=Array(e.length),r=0;return await Promise.all(Array.from({length:Math.min(6,e.length)},async()=>{for(;;){let i=r++;if(i>=e.length)return;n[i]=await t().resolveDataset(e[i])}})),n.filter(e=>e!=null)},saveWorkspaceToFile:()=>hl(t),pasteDataFromClipboard:async()=>{let e;try{e=await navigator.clipboard.readText()}catch{let e=`clipboard read failed — check browser permissions`;t().setStatus(e),X(e,`danger`);return}if(!e.trim()){let e=`clipboard is empty`;t().setStatus(e),X(e,`danger`);return}t().setStatus(`parsing pasted data…`);try{let n=await nt(e),r=await rt(e,n);Zu+=1;let i=Ku(),a=`pasted data ${Zu}`;t().addDataset({id:i,name:a,data:r}),t().recordMacro(`Paste ${a}`,`qz.pasteData(${mi(a)})`,{kind:`import`,params:{name:a}});let o=`${a} — ${r.time.length} rows, ${r.labels.length} column${r.labels.length===1?``:`s`}`;t().setStatus(o),X(o,`ok`)}catch(e){let n=e instanceof Error?e.message:`paste import failed`;t().setStatus(n),X(n,`danger`)}},addOriginFigures:(t,n,r)=>e(e=>{let i=Cc(t,n,e.datasets.filter(e=>r.includes(e.id)));return{originFigures:[...e.originFigures,...i]}}),applyOriginFigure:(n,r)=>{let i=t().originFigures.find(e=>e.id===n);if(!i?.datasetId)return;if(r?.newWindow){let e=t(),n=vs(Pc(i),e.plotWindows.map(t=>_s(t,e.datasets))),r=e.createWindow(i.datasetId,void 0,n);e.focusWindow(r)}let a=i.figure,o=`${i.stem}:${Pc(i)} (overlay)`,s=t().datasets.filter(e=>i.siblingIds.includes(e.id)),c=t().datasets.find(e=>(e.data.metadata??{}).origin_overlay_source===i.id),l=c?null:xu(a,s);if(c||l){let r=c?.id??null;if(!c&&l){r=Ku();let e={...l,metadata:{...l.metadata,origin_overlay_source:i.id}};t().addDataset({id:r,name:o,data:e}),X(`built overlay — ${l.labels.length} curves`,`ok`)}if(r){t().setActive(r);let o=c?.data??l,s=o?.labels.length??0;e({showAxisBox:!0,xLim:[a.x_from,a.x_to],yLim:[a.y_from,a.y_to],xStep:a.x_step??null,yStep:a.y_step??null,xScale:jo(a.x_log),yScale:jo(a.y_log),xKey:null,yKeys:Array.from({length:s},(e,t)=>t),seriesStyles:yu(o),seriesLabels:bu(o),xAxisLabel:a.x_title??``,yAxisLabel:a.y_title??``,annotations:Mc([a],i.id),regionShades:Nc([a],i.id),...gc(a)?{legendPos:gc(a)}:{}}),t().recordMacro(`Apply figure ${mi(a.name)}`,`qz.applyFigure(${mi(n)})`);return}}let u=Tc(i,t().originFigures),d=u?t().datasets.find(e=>e.id===i.datasetId):null;if(u&&d){let r=(i.figure.layer??1)<=(u.figure.layer??1)?i:u,o=r===i?u:i,s=Sc(r.figure,d),c=Sc(o.figure,d);if(s&&c){t().setActive(i.datasetId),e({showAxisBox:!0,xLim:[r.figure.x_from,r.figure.x_to],yLim:[r.figure.y_from,r.figure.y_to],xStep:r.figure.x_step??null,yStep:r.figure.y_step??null,xScale:jo(r.figure.x_log),yScale:jo(r.figure.y_log),xKey:s.xKey,yKeys:[...s.yKeys,...c.yKeys.filter(e=>!s.yKeys.includes(e))],y2Keys:c.yKeys,y2Lim:[o.figure.y_from,o.figure.y_to],y2Scale:jo(o.figure.y_log),y2Step:o.figure.y_step??null,y2AxisLabel:o.figure.y_title??``,seriesStyles:{...s.styles,...c.styles},seriesLabels:{...s.labels,...c.labels},xAxisLabel:r.figure.x_title??``,yAxisLabel:r.figure.y_title??``,annotations:Mc([r.figure,o.figure],i.id,[0,1]),regionShades:Nc([r.figure,o.figure],i.id,[0,1]),...gc(r.figure)?{legendPos:gc(r.figure)}:{}}),t().recordMacro(`Apply figure ${mi(a.name)}`,`qz.applyFigure(${mi(n)})`);return}}let f=wc(i,t().originFigures);if(f.length>=2){let r=jc(f,t().datasets);if(r){let{panels:o,spatial:s}=r;t().setActive(i.datasetId),e({stackMode:!0,spatialPanels:o,facetPanels:null,breakPanels:null,showAxisBox:!0,regionShades:[]}),t().recordMacro(`Apply figure ${mi(a.name)}`,`qz.applyFigure(${mi(n)})`),s||X(`applied ${o.length} panels stacked in layer order — page geometry not decoded`,`info`);return}X(`multi-panel layout: not every layer resolved a dataset — showing this layer only`,`info`)}t().setActive(i.datasetId);let p=t().datasets.find(e=>e.id===i.datasetId),m=p?Sc(a,p):null;e({showAxisBox:!0,xLim:[a.x_from,a.x_to],yLim:[a.y_from,a.y_to],xStep:a.x_step??null,yStep:a.y_step??null,xScale:jo(a.x_log),yScale:jo(a.y_log),xAxisLabel:a.x_title??``,yAxisLabel:a.y_title??``,annotations:Mc([a],i.id),regionShades:Nc([a],i.id),...gc(a)?{legendPos:gc(a)}:{},...m?{xKey:m.xKey,yKeys:m.yKeys,seriesStyles:m.styles,seriesLabels:m.labels}:{}}),t().recordMacro(`Apply figure ${mi(a.name)}`,`qz.applyFigure(${mi(n)})`)},facetByColumn:(n,r)=>{let i=t().datasets.find(e=>e.id===n);if(!i)return;let a=$a(i);if(!a||a.time.length===0){X(`no rows to facet (all excluded or filtered out)`,`danger`);return}let o=t().activeId===n,s=fu(a,r,o?t().xKey:null,o?t().yKeys:null);if(s.length===0){X(`that column has no finite levels to facet on`,`danger`);return}t().setActive(n),e({stackMode:!0,spatialPanels:null,facetPanels:s,breakPanels:null}),t().recordMacro(`Facet by ${i.data.labels[r]??`column ${r}`}`,`qz.facetByColumn(${mi(n)}, ${r})`)},breakAtGaps:(n,r,i)=>{let a=t().datasets.find(e=>e.id===n);if(!a)return;let o=$a(a);if(!o||o.time.length===0){X(`no rows to break (all excluded or filtered out)`,`danger`);return}let s=t().activeId===n,c=s?t().xKey:null,l=s?t().yKeys:null,u=c==null?o.time:o.values.map(e=>e[c]),d=r&&r.length>0?r:mu(u,i);if(d.length===0){X(`no large x-gaps found to break at`,`danger`);return}let f=hu(o,c,l,d);if(f.length<2){X(`not enough data on both sides of a break to panel`,`danger`);return}t().setActive(n),e({stackMode:!0,spatialPanels:null,facetPanels:null,breakPanels:f}),t().recordMacro(`Break x-axis at gaps`,`qz.breakAtGaps(${mi(n)})`)},loadWorkspace:t=>e(e=>{let n=Ii(t.folders??[],t.datasets,qu),r=n.datasets,i=t.activeId&&r.some(e=>e.id===t.activeId)?t.activeId:r[0]?.id??null,a=i?r.find(e=>e.id===i)??null:null,o=(t.selectedIds??[]).filter(e=>r.some(t=>t.id===e)),s=nl(i),c=new Set(r.map(e=>e.id)),l=ys(t.plotWindows,c),u=l.some(e=>e.kind===`plot`),d=u?l:[...l,s],f=u&&t.focusedWindowId&&d.some(e=>e.id===t.focusedWindowId&&e.kind===`plot`)?t.focusedWindowId:(d.find(e=>e.kind===`plot`)??d[0]).id,p=u?Lo(d.find(e=>e.id===f).view):null;return{datasets:r,folders:n.folders,expandedFolders:[...new Set([...t.expandedFolders??[],...n.createdFolderIds])],activeId:i,worksheetId:null,selectedIds:o.length?o:i?[i]:[],originFigures:t.originFigures??[],smartFolders:t.smartFolders??[],reports:t.reports??[],openReportId:null,macroSteps:t.macroSteps??[],recalcMode:t.recalcMode??`auto`,figureDocs:t.figureDocs??[],figureDocSeed:null,staleDatasets:[],staleFits:[],stageTab:a?Zc(a,e.stageTab):e.stageTab,xKey:p?p.xKey:null,yKeys:p?p.yKeys:null,y2Keys:p?p.y2Keys:null,y2Lim:p?p.y2Lim:null,y2Scale:p?p.y2Scale:null,y2Step:p?p.y2Step:null,y2AxisLabel:p?p.y2AxisLabel:``,seriesStyles:p?p.seriesStyles:{},seriesLabels:p?p.seriesLabels:{},errKeys:p?p.errKeys:a?ei(a.data):{},seriesOrder:p?p.seriesOrder:null,hiddenChannels:p?p.hiddenChannels:a?ni(a.data):[],xLim:p?p.xLim:null,yLim:p?p.yLim:null,xStep:p?p.xStep:null,yStep:p?p.yStep:null,spatialPanels:null,facetPanels:null,breakPanels:null,fitOverlay:null,peakOverlay:null,baselineOverlay:null,peakWizardEdit:null,rsmPeaks:null,integral:null,fwhmResult:null,qfitRoi:null,qfitResult:null,qfitBusy:!1,qfitError:null,gadgetBusy:!1,gadgetError:null,gadgetIntegrateResult:null,gadgetStatsResult:null,gadgetDerivResult:null,gadgetFftPreview:null,gadgetCursors:null,gadgetCursorResult:null,plotWindows:d,focusedWindowId:f,...p?{yScale:p.yScale,xScale:p.xScale,showGrid:p.showGrid,showLegend:p.showLegend,legendPos:p.legendPos,legendXY:p.legendXY,plotTemplate:p.plotTemplate,showAxisBox:p.showAxisBox,stackMode:p.stackMode,insetMode:p.insetMode,polarMode:p.polarMode,statMode:p.statMode,xFmt:p.xFmt,yFmt:p.yFmt,plotTitle:p.plotTitle,xAxisLabel:p.xAxisLabel,yAxisLabel:p.yAxisLabel,refLines:p.refLines,annotations:p.annotations,regionShades:p.regionShades,waterfall:p.waterfall}:{},status:`loaded workspace — ${r.length} dataset${r.length===1?``:`s`}`}}),appendWorkspace:n=>{let r=n.datasets.length;if(r===0){X(`workspace has no datasets to append`,`danger`);return}t().recordHistory(`append workspace`);let{datasets:i,renamed:a}=tc(t().datasets,n,Ku),o=`appended ${r} dataset${r===1?``:`s`} (${a} renamed)`;e({datasets:i,status:o}),X(o,`ok`)},setActive:n=>{ol(t(),n),e(e=>al(e,n)),t().ensureBookData(n)},activateFromLibrary:n=>{let r=t(),i=r.datasets.find(e=>e.id===n);if(i&&Bi(i)&&r.originBookClickOpens===`worksheet`){e({worksheetId:n,selectedIds:[n],stageTab:`worksheet`}),t().ensureBookData(n);return}t().setActive(n)},toggleSelected:t=>e(e=>({selectedIds:e.selectedIds.includes(t)?e.selectedIds.filter(e=>e!==t):[...e.selectedIds,t]})),selectRange:t=>e(e=>{let n=e.datasets.map(e=>e.id),r=e.activeId??t,i=n.indexOf(r),a=n.indexOf(t);if(i<0||a<0)return{selectedIds:[t]};let[o,s]=i<=a?[i,a]:[a,i];return{selectedIds:n.slice(o,s+1)}}),selectIds:t=>e(e=>{let n=new Set(e.datasets.map(e=>e.id));return{selectedIds:[...new Set(t)].filter(e=>n.has(e))}}),removeDataset:n=>{t().recordHistory(`remove dataset`),e(e=>{let t=e.datasets.filter(e=>e.id!==n),r=e.activeId===n?t[0]?.id??null:e.activeId,i=e.worksheetId===n?null:e.worksheetId,a=e.selectedIds.filter(e=>e!==n),o=new Set([n]);return{datasets:t,activeId:r,worksheetId:i,selectedIds:a,originFigures:Hu(e.originFigures,o),reports:Ls(e.reports,o),figureDocs:e.figureDocs.map(e=>e.datasetId&&o.has(e.datasetId)?{...e,datasetId:null}:e),plotWindows:bs(e.plotWindows,o)}})},removeSelected:()=>{t().recordHistory(`remove selected datasets`),e(e=>{let t=new Set(e.selectedIds.length?e.selectedIds:e.activeId?[e.activeId]:[]);if(t.size===0)return{};let n=e.datasets.filter(e=>!t.has(e.id)),r=e.activeId&&!t.has(e.activeId)?e.activeId:n[0]?.id??null,i=e.worksheetId&&t.has(e.worksheetId)?null:e.worksheetId,a=Hu(e.originFigures,t),o=Ls(e.reports,t),s=e.figureDocs.map(e=>e.datasetId&&t.has(e.datasetId)?{...e,datasetId:null}:e),c=bs(e.plotWindows,t);return{datasets:n,activeId:r,worksheetId:i,selectedIds:r?[r]:[],originFigures:a,reports:o,figureDocs:s,plotWindows:c}})},removeDatasets:n=>{t().recordHistory(`remove datasets`),e(e=>{if(n.length===0)return{};let t=new Set(n),r=e.datasets.filter(e=>!t.has(e.id));return{datasets:r,activeId:e.activeId&&!t.has(e.activeId)?e.activeId:r[0]?.id??null,worksheetId:e.worksheetId&&t.has(e.worksheetId)?null:e.worksheetId,selectedIds:e.selectedIds.filter(e=>!t.has(e)),originFigures:Hu(e.originFigures,t),reports:Ls(e.reports,t),figureDocs:e.figureDocs.map(e=>e.datasetId&&t.has(e.datasetId)?{...e,datasetId:null}:e),plotWindows:bs(e.plotWindows,t)}})},clearAll:()=>{t().recordHistory(`remove all`),t().loadWorkspace({datasets:[],folders:[],activeId:null,selectedIds:[],expandedFolders:[],originFigures:[],reports:[],figureDocs:[]}),e({status:`removed all datasets, folders, figures, and reports`})},mergeSelected:async()=>{let e=t(),n=e.selectedIds.filter(t=>e.datasets.some(e=>e.id===t));if(n.length<2){t().setStatus(`select ≥2 datasets to merge`);return}try{let e=await t().resolveDatasets(n);if(e.length<2){t().setStatus(`select ≥2 datasets to merge`);return}let r=qi(e.map(e=>e.data),e.map(e=>e.name));t().addDataset({id:Ku(),name:`merged (${e.length})`,data:r}),t().setStatus(`merged ${e.length} datasets → ${r.time.length} rows`),X(`merged ${e.length} datasets`,`ok`)}catch(e){let n=e instanceof Error?e.message:`merge failed`;t().setStatus(n),X(n,`danger`)}},duplicateDataset:async n=>{await t().resolveDataset(n),t().recordHistory(`duplicate dataset`),e(e=>{let t=e.datasets.findIndex(e=>e.id===n);if(t<0)return{};let r=e.datasets[t],i={id:Ku(),name:`${r.name} (copy)`,data:Br(r.data),...r.raw?{raw:Br(r.raw)}:{},...r.corrections?{corrections:{...r.corrections}}:{},...r.bgRef?{bgRef:{...r.bgRef}}:{},...r.notes?{notes:r.notes}:{},...r.tags?.length?{tags:[...r.tags]}:{},...r.group?{group:r.group}:{},...r.formulas?.length?{formulas:r.formulas.map(e=>({...e}))}:{},...r.channelRoles?{channelRoles:{...r.channelRoles}}:{},...r.channelTypes?{channelTypes:{...r.channelTypes}}:{}},a=[...e.datasets];return a.splice(t+1,0,i),{datasets:a,activeId:i.id,worksheetId:null,selectedIds:[i.id],stageTab:Zc(i,e.stageTab),xKey:null,yKeys:null,y2Keys:null,y2Lim:null,y2Scale:null,y2Step:null,y2AxisLabel:``,seriesStyles:{},errKeys:{},hiddenChannels:[],xLim:null,yLim:null,xStep:null,yStep:null,spatialPanels:null,facetPanels:null,breakPanels:null,rsmPeaks:null,integral:null,fwhmResult:null,qfitRoi:null,qfitResult:null,qfitBusy:!1,qfitError:null,gadgetBusy:!1,gadgetError:null,gadgetIntegrateResult:null,gadgetStatsResult:null,gadgetDerivResult:null,gadgetFftPreview:null,gadgetCursors:null,gadgetCursorResult:null}})},moveDataset:(n,r)=>{t().recordHistory(`reorder datasets`),e(e=>{let t=e.datasets.findIndex(e=>e.id===n),i=t+r;if(t<0||i<0||i>=e.datasets.length)return{};let a=[...e.datasets];return[a[t],a[i]]=[a[i],a[t]],{datasets:a}})},renameDataset:(n,r)=>{t().recordHistory(`rename dataset`),e(e=>({datasets:e.datasets.map(e=>e.id===n?{...e,name:r.trim()||e.name}:e)}))},setCellValue:(n,r,i,a)=>{let o=t().datasets.find(e=>e.id===n);o&&(i>=o.data.labels.length-(o.formulas?.length??0)||(t().recordHistory(`cell edit`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==n)return e;let t=i<0?{...e.data,time:e.data.time.map((e,t)=>t===r?a:e)}:{...e.data,values:e.data.values.map((e,t)=>t===r?e.map((e,t)=>t===i?a:e):e)};return Vu({...e,data:t})})})),t().recordMacro(`Edit ${o.name} [${r},${i}]`,`qz.setCell(${mi(o.name)}, ${r}, ${i}, ${mi(a)})`),t().touchDataset(n)))},addFormula:(n,r,i)=>{let a=t().datasets.find(e=>e.id===n);t().recordHistory(`add column`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==n)return e;let t=ui(e.data,e.formulas?.length??0),a=[...e.formulas??[],{name:r,expr:i}];return{...e,formulas:a,data:di(t,a)}})})),a&&t().recordMacro(`Add column ${r}`,`qz.addColumn(${mi(r)}, ${mi(i)})`,{kind:`expression`,params:{name:r,expr:i}}),t().touchDataset(n)},removeFormula:(n,r)=>{t().recordHistory(`remove column`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==n||!e.formulas)return e;let t=ui(e.data,e.formulas.length),i=e.formulas.filter((e,t)=>t!==r),a=t.labels.length+r,o=e=>{if(!e)return e;let t={};for(let[n,r]of Object.entries(e)){let e=Number(n);e!==a&&(t[e>a?e-1:e]=r)}return Object.keys(t).length?t:void 0},s=e.filter?.filter(e=>e.col!==a).map(e=>e.col>a?{...e,col:e.col-1}:e);return{...e,formulas:i.length?i:void 0,data:di(t,i),channelRoles:o(e.channelRoles),channelTypes:o(e.channelTypes),filter:s&&s.length?s:void 0}})})),t().touchDataset(n)},setDatasetNotes:(n,r)=>{t().recordHistory(`edit notes`),e(e=>({datasets:e.datasets.map(e=>e.id===n?{...e,notes:r.trim()?r:void 0}:e)}))},addDatasetTag:(n,r)=>{t().recordHistory(`add tag`),e(e=>{let t=r.trim();return t?{datasets:e.datasets.map(e=>{if(e.id!==n)return e;let r=e.tags??[];return r.includes(t)?e:{...e,tags:[...r,t]}})}:{}})},removeDatasetTag:(n,r)=>{t().recordHistory(`remove tag`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==n||!e.tags)return e;let t=e.tags.filter(e=>e!==r);return{...e,tags:t.length?t:void 0}})}))},setDatasetGroup:(n,r)=>{t().recordHistory(`set group`),e(e=>({datasets:e.datasets.map(e=>e.id===n?{...e,group:r.trim()?r.trim():void 0}:e)}))},createFolder:(t,n=`New Folder`)=>{let r=qu();return e(e=>({folders:Ai(e.folders,t,n,r)})),r},renameFolder:(t,n)=>e(e=>({folders:ji(e.folders,t,n)})),deleteFolder:(t,n=`reparent`)=>e(e=>Mi(e.folders,e.datasets,t,n)),moveFolder:(t,n,r)=>e(e=>({folders:Ni(e.folders,t,n,r)})),moveDatasetToFolder:(t,n,r)=>e(e=>({datasets:Pi(e.datasets,t,n,r)})),toggleFolderExpanded:t=>e(e=>({expandedFolders:e.expandedFolders.includes(t)?e.expandedFolders.filter(e=>e!==t):[...e.expandedFolders,t]})),addSmartFolder:(t,n)=>e(e=>{let r=t.trim();return r?{smartFolders:[...e.smartFolders,{id:`smf-${Date.now().toString(36)}-${++Gu}`,name:r,query:n.trim()}]}:{}}),updateSmartFolder:(t,n,r)=>e(e=>({smartFolders:e.smartFolders.map(e=>e.id===t?{...e,name:n.trim()||e.name,query:r.trim()}:e)})),removeSmartFolder:t=>e(e=>({smartFolders:e.smartFolders.filter(e=>e.id!==t)})),applyCorrections:async(n,r,i)=>{try{let a=await t().resolveDataset(n);if(!a)return!1;let o=a.raw??a.data,s=i&&i.datasetId!==n?await t().resolveDataset(i.datasetId):void 0,c=s?{datasetId:s.id,interp:i.interp}:void 0,l={dataset:o,params:r};s&&(l.bg_dataset=s.data,l.bg_interp=i.interp);let u=await ct(l),d=u.time.length!==a.data.time.length;return t().recordHistory(`apply corrections`),e(e=>({datasets:e.datasets.map(e=>e.id===n?Vu({...e,data:u,raw:o,corrections:r,bgRef:c,...d?{excludedRows:void 0}:{}}):e)})),d&&a.excludedRows?.length&&t().setStatus(`Row exclusions cleared: a trim changed the row count, so the saved row indices no longer apply.`),t().recordMacro(`Corrections → ${a.name}`,s?`qz.applyCorrections(${mi(a.name)}, ${mi(r)}, ${mi({bg:s.name,interp:i.interp})})`:`qz.applyCorrections(${mi(a.name)}, ${mi(r)})`,{kind:`correction`,params:{params:r,bg:i}}),t().touchDataset(n),!0}catch(e){return t().setStatus(`corrections failed: ${e instanceof Error?e.message:`error`}`),!1}},resetCorrections:n=>{let r=t().datasets.find(e=>e.id===n);t().recordHistory(`reset corrections`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==n||!e.raw)return e;let t=e.raw.time.length!==e.data.time.length;return Vu({...e,data:e.raw,raw:void 0,corrections:void 0,bgRef:void 0,...t?{excludedRows:void 0}:{}})})})),r?.raw&&t().recordMacro(`Reset corrections → ${r.name}`,`qz.resetCorrections(${mi(r.name)})`,{kind:`reset`,params:{}}),t().touchDataset(n)},applyCorrectionsToMany:async(e,n)=>{let r=t().datasets.find(t=>t.id===e);if(!r?.corrections){t().setStatus(`no corrections on the source dataset to copy`);return}let i=r.bgRef?{datasetId:r.bgRef.datasetId,interp:r.bgRef.interp}:void 0,a=0;for(let o of n){if(o===e)continue;let n=i&&i.datasetId!==o?i:void 0,s={...r.corrections};delete s.bgAnchors,delete s.bgAnchorMethod,await t().applyCorrections(o,s,n),a+=1}t().setStatus(`applied ${r.name}'s corrections to ${a} dataset${a===1?``:`s`}`)},toggleLeft:()=>e(e=>({leftCollapsed:!e.leftCollapsed})),toggleRight:()=>e(e=>({rightCollapsed:!e.rightCollapsed})),setStageTab:t=>e({stageTab:t}),setTheme:n=>{e({theme:n}),dd(t())},setAccent:n=>{e({accent:n}),dd(t())},setDensity:n=>{e({density:n}),dd(t())},setPalette:n=>{e({palette:n}),dd(t())},setPref:(n,r)=>{e({[n]:r}),dd(t())},setPrefsOpen:t=>e({prefsOpen:t}),setYScale:n=>{e({yScale:n}),t().recordMacro(`Y axis ${n}`,`qz.setYScale(${mi(n)})`)},setXScale:n=>{e({xScale:n}),t().recordMacro(`X axis ${n}`,`qz.setXScale(${mi(n)})`)},setShowGrid:t=>e({showGrid:t}),setShowLegend:t=>e({showLegend:t}),setLegendPos:t=>e({legendPos:t}),setPlotTemplate:t=>e({plotTemplate:t}),setShowAxisBox:t=>e({showAxisBox:t}),setStackMode:t=>e({stackMode:t,spatialPanels:null,facetPanels:null,breakPanels:null}),setInsetMode:t=>e({insetMode:t}),setPolarMode:t=>e({polarMode:t}),setStatMode:t=>e({statMode:t}),setXLim:t=>e({xLim:t,xStep:null}),setYLim:t=>e({yLim:t,yStep:null}),setY2Scale:t=>e({y2Scale:t}),setY2Lim:t=>e({y2Lim:t,y2Step:null}),setXFmt:t=>e({xFmt:t}),setYFmt:t=>e({yFmt:t}),setPlotTitle:n=>{e({plotTitle:n}),t().recordMacro(`Title → ${n||`(none)`}`,`qz.setPlotTitle(${mi(n)})`)},setXAxisLabel:t=>e({xAxisLabel:t}),setYAxisLabel:t=>e({yAxisLabel:t}),setY2AxisLabel:t=>e({y2AxisLabel:t}),setXKey:n=>{e({xKey:n}),t().recordMacro(`X axis → channel ${n??`time`}`,`qz.setXKey(${mi(n)})`)},setYKeys:n=>{e({yKeys:n}),t().recordMacro(`Y channels → ${n?n.join(`,`):`all`}`,`qz.setYKeys(${mi(n)})`)},setY2Keys:n=>{e({y2Keys:n,...n?{}:{y2Lim:null,y2Scale:null,y2Step:null,y2AxisLabel:``}}),t().recordMacro(`Y2 channels → ${n?n.join(`,`):`none`}`,`qz.setY2Keys(${mi(n)})`)},addRefLine:(t,n)=>e(e=>({refLines:[...e.refLines,{id:`ref-${++Uu}`,axis:t,value:n}]})),removeRefLine:t=>e(e=>({refLines:e.refLines.filter(e=>e.id!==t)})),updateRefLine:(t,n)=>e(e=>({refLines:e.refLines.map(e=>e.id===t?{...e,value:n}:e)})),addAnnotation:(t,n,r)=>e(e=>({annotations:[...e.annotations,{id:`ann-${++Wu}`,x:t,y:n,text:r}]})),removeAnnotation:t=>e(e=>({annotations:e.annotations.filter(e=>e.id!==t)})),setSeriesStyle:(t,n)=>e(e=>({seriesStyles:{...e.seriesStyles,[t]:{...e.seriesStyles[t],...n}}})),resetSeriesStyle:t=>e(e=>{let n={...e.seriesStyles};return delete n[t],{seriesStyles:n}}),setSeriesLabel:(t,n)=>e(e=>{let r={...e.seriesLabels},i=n.trim();return i?r[t]=i:delete r[t],{seriesLabels:r}}),setErrKey:(t,n)=>e(e=>{let r={...e.errKeys};return n==null?delete r[t]:r[t]=n,{errKeys:r}}),setChannelRole:(n,r)=>{let i=t().activeId;i!=null&&(t().recordHistory(`channel role`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==i)return e;let t={...e.channelRoles??{}};return r==null?delete t[n]:t[n]=r,{...e,channelRoles:Object.keys(t).length?t:void 0}})})),t().recordMacro(`Channel ${n} role → ${r??`data`}`,`qz.setChannelRole(${n}, ${mi(r)})`))},setChannelType:(n,r)=>{let i=t().activeId;i!=null&&(t().recordHistory(`channel type`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==i)return e;let t={...e.channelTypes??{}};return r==null?delete t[n]:t[n]=r,{...e,channelTypes:Object.keys(t).length?t:void 0}})})),t().recordMacro(`Channel ${n} type → ${r??`auto`}`,`qz.setChannelType(${n}, ${mi(r)})`))},toggleRowExcluded:(n,r)=>{t().recordHistory(`row exclusion`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==n)return e;let t=Ja(e.excludedRows,r);return{...e,excludedRows:t.length?t:void 0}})}))},setRowsExcluded:(n,r)=>{t().recordHistory(`row exclusion`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==n)return e;let t=to(r,e.data.time.length);return{...e,excludedRows:t.length?t:void 0}})}))},clearRowExclusions:n=>{t().recordHistory(`clear row exclusions`),e(e=>({datasets:e.datasets.map(e=>e.id===n?{...e,excludedRows:void 0}:e)}))},setDatasetFilter:(t,n)=>e(e=>({datasets:e.datasets.map(e=>{if(e.id!==t)return e;let r=n.filter(Ji);return{...e,filter:r.length?r:void 0}})})),clearDatasetFilter:t=>e(e=>({datasets:e.datasets.map(e=>e.id===t?{...e,filter:void 0}:e)})),toggleRowSelected:n=>{let r=t().activeId;r!=null&&e(e=>{let t=e.selection?.datasetId===r?e.selection.rows:[],i=t.includes(n)?t.filter(e=>e!==n):[...t,n].sort((e,t)=>e-t);return{selection:i.length?{datasetId:r,rows:i}:null}})},setRowSelection:n=>{let r=t().activeId;if(r==null)return;let i=[...new Set(n)].sort((e,t)=>e-t);e({selection:i.length?{datasetId:r,rows:i}:null})},clearRowSelection:()=>e({selection:null}),excludeSelectedRows:()=>{let n=t().activeId,r=t().selection;n==null||r?.datasetId!==n||!r.rows.length||(t().recordHistory(`row exclusion`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==n)return e;let t=[...new Set([...e.excludedRows??[],...r.rows])].sort((e,t)=>e-t);return{...e,excludedRows:t}}),selection:null})))},keepOnlySelectedRows:()=>{let n=t().activeId,r=t().selection;n==null||r?.datasetId!==n||!r.rows.length||(t().recordHistory(`row exclusion`),e(e=>({datasets:e.datasets.map(e=>{if(e.id!==n)return e;let t=new Set(r.rows),i=[];for(let n=0;n<e.data.time.length;n++)t.has(n)||i.push(n);return{...e,excludedRows:i.length?i:void 0}}),selection:null})))},setSeriesOrder:t=>e({seriesOrder:t}),toggleHidden:t=>e(e=>({hiddenChannels:e.hiddenChannels.includes(t)?e.hiddenChannels.filter(e=>e!==t):[...e.hiddenChannels,t]})),soloChannel:t=>e(e=>{if(t==null)return{hiddenChannels:[]};let n=e.datasets.find(t=>t.id===e.activeId);if(!n)return{};let r=Ca(n.data,e.yKeys,e.xKey,n.channelRoles,e.seriesOrder);return r.includes(t)?{hiddenChannels:r.filter(e=>e!==t)}:{}}),setWaterfall:n=>{e({waterfall:n}),t().recordMacro(`Waterfall → ${n}`,`qz.setWaterfall(${n})`)},setPlotTool:t=>e({plotTool:t}),setRegionPicked:t=>e({regionPicked:t}),setIntegral:t=>e({integral:t}),setFwhmResult:t=>e({fwhmResult:t}),setQfitRoi:n=>{if(e({qfitRoi:n}),ed&&=(clearTimeout(ed),null),!n){e(e=>({qfitResult:null,qfitBusy:!1,qfitError:null,fitOverlay:e.qfitResult==null?e.fitOverlay:null,gadgetBusy:!1,gadgetError:null,gadgetIntegrateResult:null,gadgetStatsResult:null,gadgetDerivResult:null,derivOverlay:e.gadgetDerivResult==null?e.derivOverlay:null,gadgetFftPreview:null}));return}ed=setTimeout(()=>{ed=null,t().runGadget()},350)},setQfitModel:n=>{e({qfitModel:n}),t().qfitRoi&&t().setQfitRoi(t().qfitRoi)},runQuickFit:async()=>{let n=t(),r=n.datasets.find(e=>e.id===n.activeId)??null;if(!r||!n.qfitRoi)return;let i=Nu(Ca(r.data,n.yKeys,n.xKey,r.channelRoles,n.seriesOrder),e=>n.hiddenChannels.includes(e)),a=ju(r,n.qfitRoi,i);if(a.x.length<2){e({qfitError:`not enough points in the selected region`,qfitBusy:!1});return}e({qfitBusy:!0,qfitError:null});try{let i=await dt({model:n.qfitModel,x:a.x,y:a.y}),o=t();if(o.activeId!==r.id||!o.qfitRoi)return;e({qfitResult:i,qfitBusy:!1});let s=i.yFit;if(Array.isArray(s)){let t=eo(s,a.rows,r.data.time.length);e({fitOverlay:{datasetId:r.id,y:t}})}}catch(t){e({qfitBusy:!1,qfitError:t instanceof Error?t.message:`fit failed`})}},commitQfit:()=>{let e=t(),n=e.datasets.find(t=>t.id===e.activeId)??null;!n||!e.qfitResult||(t().recordMacro(`Fit ${e.qfitModel}`,`qz.fit(${mi(e.qfitModel)})`,{kind:`fit`,params:{model:e.qfitModel}}),t().setFitSpec(n.id,{model:e.qfitModel}))},setGadgetMode:n=>{let r=t().gadgetMode;if(r!==n){if(e({gadgetMode:n}),n===`cursors`){t().qfitRoi&&t().setQfitRoi(null);return}r===`cursors`&&t().gadgetCursors&&t().setGadgetCursors(null),t().qfitRoi&&t().setQfitRoi(t().qfitRoi)}},runGadget:async()=>{switch(t().gadgetMode){case`fit`:return t().runQuickFit();case`integrate`:return t().runGadgetIntegrate();case`stats`:return t().runGadgetStats();case`differentiate`:return t().runGadgetDifferentiate();case`fft`:return t().runGadgetFft();case`cursors`:return}},runGadgetIntegrate:async()=>{let n=t(),r=n.datasets.find(e=>e.id===n.activeId)??null;if(!r||!n.qfitRoi)return;let i=Nu(Ca(r.data,n.yKeys,n.xKey,r.channelRoles,n.seriesOrder),e=>n.hiddenChannels.includes(e)),a=ju(r,n.qfitRoi,i);if(a.x.length<2){e({gadgetError:`not enough points in the selected region`,gadgetBusy:!1,gadgetIntegrateResult:null});return}let o=Math.min(n.qfitRoi[0],n.qfitRoi[1]),s=Math.max(n.qfitRoi[0],n.qfitRoi[1]);e({gadgetBusy:!0,gadgetError:null});try{let n=await kr({x:a.x,y:a.y,regions:[[o,s]],baseline:`linear`}),i=t();if(i.activeId!==r.id||!i.qfitRoi)return;e({gadgetIntegrateResult:n,gadgetBusy:!1})}catch(t){e({gadgetBusy:!1,gadgetError:t instanceof Error?t.message:`integrate failed`})}},runGadgetStats:async()=>{let n=t(),r=n.datasets.find(e=>e.id===n.activeId)??null;if(!r||!n.qfitRoi)return;let i=Nu(Ca(r.data,n.yKeys,n.xKey,r.channelRoles,n.seriesOrder),e=>n.hiddenChannels.includes(e)),a=ju(r,n.qfitRoi,i);if(a.y.length<1){e({gadgetError:`not enough points in the selected region`,gadgetBusy:!1,gadgetStatsResult:null});return}e({gadgetBusy:!0,gadgetError:null});try{let n=await Tt(a.y),i=t();if(i.activeId!==r.id||!i.qfitRoi)return;e({gadgetStatsResult:n,gadgetBusy:!1})}catch(t){e({gadgetBusy:!1,gadgetError:t instanceof Error?t.message:`stats failed`})}},runGadgetDifferentiate:()=>{let n=t(),r=n.datasets.find(e=>e.id===n.activeId)??null;if(!r||!n.qfitRoi)return;let i=Nu(Ca(r.data,n.yKeys,n.xKey,r.channelRoles,n.seriesOrder),e=>n.hiddenChannels.includes(e)),a=ju(r,n.qfitRoi,i),o=Hr(a.x,a.y);if(!o){e({gadgetError:`not enough points in the selected region`,gadgetDerivResult:null,derivOverlay:null});return}e({gadgetError:null,gadgetDerivResult:o});let s=eo(o.dydx,a.rows,r.data.time.length);e({derivOverlay:{datasetId:r.id,y:s}})},runGadgetFft:async()=>{let n=t(),r=n.datasets.find(e=>e.id===n.activeId)??null;if(!r||!n.qfitRoi)return;let i=Nu(Ca(r.data,n.yKeys,n.xKey,r.channelRoles,n.seriesOrder),e=>n.hiddenChannels.includes(e)),a=ju(r,n.qfitRoi,i);if(a.x.length<4){e({gadgetError:`need at least 4 points in the selected region`,gadgetBusy:!1,gadgetFftPreview:null});return}let o=Vr(a.x,a.y);e({gadgetBusy:!0,gadgetError:null});try{let n=await Ar({x:o.x,y:o.y}),i=t();if(i.activeId!==r.id||!i.qfitRoi)return;e({gadgetFftPreview:n,gadgetBusy:!1})}catch(t){e({gadgetBusy:!1,gadgetError:t instanceof Error?t.message:`FFT failed`})}},commitGadgetFft:()=>{let e=t(),n=e.datasets.find(t=>t.id===e.activeId)??null,r=e.gadgetFftPreview;if(!n||!r)return;let i=Array.isArray(r.freq)?r.freq:[],a=r.magnitude??r.psd??r.phase,o=Array.isArray(a)?a:[],s=r.magnitude?`magnitude`:r.psd?`psd`:`phase`,c={time:i,values:o.map(e=>[e??NaN]),labels:[s],units:[``],metadata:{source:`fft gadget`,sourceDataset:n.name,window:r.windowName}};t().addDataset({id:Ku(),name:`${n.name} — FFT`,data:c}),t().setStatus(`FFT spectrum added to library`),X(`FFT spectrum added to library`,`ok`)},setGadgetCursors:n=>{if(e({gadgetCursors:n}),!n){e({gadgetCursorResult:null});return}let r=t(),i=r.datasets.find(e=>e.id===r.activeId)??null;if(!i){e({gadgetCursorResult:null});return}let a=ju(i,[-1/0,1/0],Nu(Ca(i.data,r.yKeys,r.xKey,i.channelRoles,r.seriesOrder),e=>r.hiddenChannels.includes(e)));e({gadgetCursorResult:qr(a.x,a.y,n)})},clearQfit:()=>{t().setQfitRoi(null),t().setGadgetCursors(null)},setCmdk:t=>e({cmdkOpen:t}),setCurveFitOpen:t=>e({curveFitOpen:t}),setHysteresisOpen:t=>e({hysteresisOpen:t}),setPeaksOpen:t=>e({peaksOpen:t}),setReflectivityOpen:t=>e({reflectivityOpen:t}),seedReflectivityLayer:t=>e({reflectivitySeed:t,reflectivityOpen:!0}),clearReflectivitySeed:()=>e({reflectivitySeed:null}),setBaselineOpen:t=>e({baselineOpen:t}),setCalculatorsOpen:t=>e({calculatorsOpen:t}),setRsmOpen:t=>e({rsmOpen:t}),setDigitizerOpen:t=>e({digitizerOpen:t}),setDatasetMathOpen:t=>e({datasetMathOpen:t}),setTabulateOpen:t=>e({tabulateOpen:t}),setDistributionOpen:t=>e({distributionOpen:t}),setStatsChooserOpen:t=>e({statsChooserOpen:t}),setPeakWizardOpen:t=>e({peakWizardOpen:t}),setImportWizardOpen:t=>e({importWizardOpen:t}),setPipelineOpen:t=>e({pipelineOpen:t}),addReport:(t,n,r)=>e(e=>{let i={id:Ju(),name:t,datasetId:r??null,report:n};return{reports:[...e.reports,i],openReportId:i.id,status:`report "${t}" created`}}),removeReport:t=>e(e=>({reports:e.reports.filter(e=>e.id!==t),openReportId:e.openReportId===t?null:e.openReportId})),renameReport:(t,n)=>e(e=>({reports:e.reports.map(e=>e.id===t?{...e,name:n}:e)})),setOpenReport:t=>e({openReportId:t}),addFigureDoc:t=>e(e=>({figureDocs:[...e.figureDocs,t],status:`figure "${t.name}" saved`})),removeFigureDoc:t=>e(e=>({figureDocs:e.figureDocs.filter(e=>e.id!==t)})),renameFigureDoc:(t,n)=>e(e=>({figureDocs:e.figureDocs.map(e=>e.id===t?{...e,name:n}:e)})),duplicateFigureDoc:t=>e(e=>{let n=e.figureDocs.find(e=>e.id===t);if(!n)return{};let r={...n,id:`figd-${Date.now().toString(36)}-${++Gu}`,name:`${n.name} copy`};return{figureDocs:[...e.figureDocs,r]}}),openFigureDoc:n=>{let r=t().figureDocs.find(e=>e.id===n);!r||!Ds(r)||(r.live&&r.datasetId&&t().setActive(r.datasetId),e({figureDocSeed:r,figureBuilderOpen:!0}))},openFigureDocInWindow:n=>{let r=t().figureDocs.find(e=>e.id===n);if(!r||!r.live||!r.datasetId)return;let i=t(),a=vs(r.name,i.plotWindows.map(e=>_s(e,i.datasets))),o=i.createWindow(r.datasetId,void 0,a);i.focusWindow(o);let s=r.config,c=i.datasets.find(e=>e.id===r.datasetId);e({...c?{stageTab:Qc(c)}:{},xKey:s.xKey,yKeys:s.yKeys,xScale:s.xScale,yScale:s.yScale,plotTitle:s.title,xAxisLabel:s.xLabel,yAxisLabel:s.yLabel}),t().recordMacro(`Open figure "${r.name}" in new window`,`qz.openFigureDocInWindow(${mi(n)})`)},clearFigureDocSeed:()=>e({figureDocSeed:null}),setRecalcMode:t=>e({recalcMode:t}),touchDataset:n=>{if($u)return;let r=t();if(r.recalcMode===`off`)return;let i=Eu(r.datasets,n),a=Du(r.staleDatasets,i.datasets),o=Du(r.staleFits,i.fits);(a!==r.staleDatasets||o!==r.staleFits)&&e({staleDatasets:a,staleFits:o}),r.recalcMode===`auto`&&(a.length||o.length)&&(Qu&&clearTimeout(Qu),Qu=setTimeout(()=>{Qu=null,t().recalcNow()},400))},recalcNow:async()=>{if(!$u){$u=!0;try{for(let n of[...t().staleDatasets]){let r=t().datasets.find(e=>e.id===n);if(r?.corrections&&r.raw)try{await t().applyCorrections(n,r.corrections,r.bgRef),e(e=>({staleDatasets:e.staleDatasets.filter(e=>e!==n)}))}catch{}else e(e=>({staleDatasets:e.staleDatasets.filter(e=>e!==n)}))}for(let n of[...t().staleFits]){let r=t().datasets.find(e=>e.id===n);if(!r?.fitSpec){e(e=>({staleFits:e.staleFits.filter(e=>e!==n)}));continue}try{let i=$a(r);if(!i||i.values.length===0)throw Error(`no data`);let a=(await dt({model:r.fitSpec.model,x:i.time,y:i.values.map(e=>e[0])})).yFit;if(Array.isArray(a)&&t().fitOverlay?.datasetId===n){let t=r.data.time.length,i=Ya(t,Za(r));e({fitOverlay:{datasetId:n,y:i.length===t?a:eo(a,i,t)}})}e(e=>({staleFits:e.staleFits.filter(e=>e!==n)}))}catch(e){t().setStatus(`recalc fit failed: ${e instanceof Error?e.message:`error`}`)}}}finally{$u=!1}}},setFitSpec:(t,n)=>e(e=>({datasets:e.datasets.map(e=>e.id===t?{...e,fitSpec:n??void 0}:e)})),setDataFilterOpen:t=>e({dataFilterOpen:t}),setFigureBuilderOpen:t=>e({figureBuilderOpen:t}),setFigurePageOpen:t=>e({figurePageOpen:t}),setGraphBuilderOpen:t=>e({graphBuilderOpen:t}),openGraphBuilderSeeded:t=>e({graphBuilderSeed:t,graphBuilderOpen:!0}),clearGraphBuilderSeed:()=>e({graphBuilderSeed:null}),seedStatStage:t=>e({statStageSeed:t,statMode:!0}),clearStatStageSeed:()=>e({statStageSeed:null}),setWaterfallOpen:t=>e({waterfallOpen:t}),setReflViewOpen:t=>e({reflViewOpen:t}),setColumnSwitcherOpen:t=>e({columnSwitcherOpen:t}),setShortcutsOpen:t=>e({shortcutsOpen:t}),setTextFormatHelpOpen:t=>e({textFormatHelpOpen:t}),pushRecent:(t,n)=>e(e=>{let r=Iu(e.recent,{name:t,size:n,at:new Date().toISOString()});return Ru(r),{recent:r}}),clearRecent:()=>{zu(),e({recent:[]})},setMagToolsOpen:t=>e({magToolsOpen:t}),setFitOverlay:t=>e({fitOverlay:t}),setPeakOverlay:t=>e({peakOverlay:t}),setBaselineOverlay:t=>e({baselineOverlay:t}),setPeakWizardEdit:t=>e({peakWizardEdit:t}),setBaselineAnchorEdit:t=>e({baselineAnchorEdit:t}),setRsmPeaks:t=>e({rsmPeaks:t}),setMapMethod:t=>e({mapMethod:t}),setMapRes:t=>e({mapRes:t}),setContourOn:t=>e({contourOn:t}),setContourLevelCount:t=>e({contourLevelCount:Math.max(2,Math.round(t))}),setContourScale:t=>e({contourScale:t}),startMacro:()=>e({macroRecording:!0}),stopMacro:()=>e({macroRecording:!1}),clearMacro:()=>e({macroSteps:[],macroRecording:!1}),recordMacro:(t,n,r)=>e(e=>e.macroRecording&&!e.pipelineRunning?{macroSteps:[...e.macroSteps,gi(r?.kind??`ui`,t,n,r?.params??{})]}:{}),updateStepParams:(t,n)=>e(e=>({macroSteps:e.macroSteps.map(e=>e.id===t?_i({...e,params:n}):e)})),toggleStep:t=>e(e=>({macroSteps:e.macroSteps.map(e=>e.id===t?{...e,enabled:!e.enabled}:e)})),removeStep:t=>e(e=>({macroSteps:e.macroSteps.filter(e=>e.id!==t)})),moveStep:(t,n)=>e(e=>{let r=e.macroSteps.findIndex(e=>e.id===t);return r<0?{}:{macroSteps:Si(e.macroSteps,r,n)}}),insertStep:t=>e(e=>({macroSteps:[...e.macroSteps,t]})),loadSteps:t=>e({macroSteps:t}),setPipelineRunning:t=>e({pipelineRunning:t}),setStatus:t=>e({status:t})}));dd(Z.getState());function pd(){return Z(e=>e.datasets.find(t=>t.id===e.activeId)??null)}var md=typeof navigator<`u`&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),hd=[`Appearance`,`Plot`,`Interaction`,`Numbers`,`Keyboard`],gd=[{id:`violet`,c:`oklch(0.7 0.17 295)`},{id:`teal`,c:`oklch(0.74 0.13 185)`},{id:`ocean`,c:`oklch(0.68 0.15 250)`},{id:`amber`,c:`oklch(0.78 0.14 75)`},{id:`rose`,c:`oklch(0.72 0.16 12)`}],_d=[`Line`,`Line + markers`,`Scatter`,`Step`].map(e=>({value:e,label:e})),vd=[{value:`auto`,label:`Auto`},{value:`scientific`,label:`Scientific`},{value:`fixed`,label:`Fixed`}];function yd({label:e,hint:t,children:n}){return(0,O.jsxs)(`div`,{className:`qzk-pref-row`,children:[(0,O.jsxs)(`div`,{className:`qzk-pref-lbl`,children:[e,t&&(0,O.jsx)(`span`,{className:`hint`,children:t})]}),(0,O.jsx)(`div`,{className:`qzk-pref-ctl`,children:n})]})}function bd(){let e=Z(e=>e.prefsOpen),t=Z(e=>e.setPrefsOpen),n=Z(e=>e.setPref),r=Z(e=>e),[i,a]=(0,y.useState)(`Appearance`);return(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.stopPropagation(),t(!1))};return window.addEventListener(`keydown`,n,!0),()=>window.removeEventListener(`keydown`,n,!0)},[e,t]),e?(0,O.jsx)(`div`,{className:`qz-overlay-backdrop qzk-prefs-overlay`,onMouseDown:()=>t(!1),children:(0,O.jsxs)(`div`,{className:`qzk-prefs`,role:`dialog`,"aria-label":`Preferences`,onMouseDown:e=>e.stopPropagation(),children:[(0,O.jsxs)(`div`,{className:`qzk-prefs-head`,children:[(0,O.jsx)(`span`,{className:`ttl`,children:`Preferences`}),(0,O.jsx)(`button`,{className:`qzk-prefs-x`,title:`Close (Esc)`,onClick:()=>t(!1),children:`✕`})]}),(0,O.jsxs)(`div`,{className:`qzk-prefs-body`,children:[(0,O.jsx)(`nav`,{className:`qzk-prefs-nav`,children:hd.map(e=>(0,O.jsx)(`div`,{className:`qzk-prefs-tab${i===e?` active`:``}`,onClick:()=>a(e),children:e},e))}),(0,O.jsxs)(`div`,{className:`qzk-prefs-pane`,children:[i===`Appearance`&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(yd,{label:`Theme`,children:(0,O.jsx)(Ee,{options:[`Dark`,`Light`],value:r.theme===`light`?`Light`:`Dark`,onChange:e=>n(`theme`,e===`Light`?`light`:`dark`)})}),(0,O.jsx)(yd,{label:`Accent color`,hint:`a tint, not a reskin`,children:(0,O.jsx)(`div`,{className:`qzk-accent-swatches`,children:gd.map(e=>(0,O.jsxs)(`button`,{className:`qzk-swatch${r.accent===e.id?` on`:``}`,style:{"--sw":e.c},title:e.id,onClick:()=>n(`accent`,e.id),children:[(0,O.jsx)(`span`,{className:`dot`,style:{background:e.c}}),e.id]},e.id))})}),(0,O.jsx)(yd,{label:`Density`,hint:`row height · padding · text`,children:(0,O.jsx)(Ee,{options:[`Compact`,`Regular`,`Comfy`],value:(e=>e[0].toUpperCase()+e.slice(1))(r.density),onChange:e=>n(`density`,e.toLowerCase())})}),(0,O.jsx)(yd,{label:`Reduce motion`,hint:`disable transitions`,children:(0,O.jsx)(Oe,{checked:r.reduceMotion,onChange:e=>n(`reduceMotion`,e)})})]}),i===`Plot`&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(yd,{label:`Default trace`,children:(0,O.jsx)(K,{options:_d,value:r.defaultTrace,onChange:e=>n(`defaultTrace`,e.target.value)})}),(0,O.jsx)(yd,{label:`Default line width`,children:(0,O.jsx)(`div`,{style:{width:160},children:(0,O.jsx)(ke,{label:`px`,value:r.defaultLineWidth,min:.5,max:4,step:.5,onChange:e=>n(`defaultLineWidth`,e),format:e=>e.toFixed(1)})})}),(0,O.jsx)(yd,{label:`Grid lines`,hint:`default for the plot`,children:(0,O.jsx)(Oe,{checked:r.defaultGrid,onChange:e=>n(`defaultGrid`,e)})}),(0,O.jsx)(yd,{label:`Excluded rows`,hint:`filtered / excluded points on the plot`,children:(0,O.jsx)(Ee,{options:[`Hide`,`Grey`],value:r.excludedDisplay===`grey`?`Grey`:`Hide`,onChange:e=>n(`excludedDisplay`,e===`Grey`?`grey`:`hide`)})}),(0,O.jsx)(yd,{label:`Antialias 2-D map`,hint:`smooth vs crisp heatmap cells`,children:(0,O.jsx)(Oe,{checked:r.antialias,onChange:e=>n(`antialias`,e)})})]}),i===`Interaction`&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(yd,{label:`Mouse wheel`,hint:`over the plot`,children:(0,O.jsx)(Ee,{options:[`Zoom`,`Off`],value:r.wheelZoom?`Zoom`:`Off`,onChange:e=>n(`wheelZoom`,e===`Zoom`)})}),(0,O.jsx)(`div`,{className:`qzk-pref-note`,children:`Drag the plot to box-zoom; double-click to autoscale. Right-click the plot, a dataset, a legend entry, or a worksheet column for context actions.`}),(0,O.jsx)(yd,{label:`Origin book click opens`,hint:`clicking an imported Origin workbook in the Library`,children:(0,O.jsx)(Ee,{options:[`Worksheet`,`Plot`],value:r.originBookClickOpens===`plot`?`Plot`:`Worksheet`,onChange:e=>n(`originBookClickOpens`,e===`Plot`?`plot`:`worksheet`)})}),(0,O.jsx)(yd,{label:`Confirm before removing data`,children:(0,O.jsx)(Oe,{checked:r.confirmRemove,onChange:e=>n(`confirmRemove`,e)})})]}),i===`Numbers`&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(yd,{label:`Significant figures`,children:(0,O.jsx)(`div`,{style:{width:160},children:(0,O.jsx)(ke,{label:`sf`,value:r.sigFigs,min:2,max:8,step:1,onChange:e=>n(`sigFigs`,e),format:e=>String(e)})})}),(0,O.jsx)(yd,{label:`Notation`,children:(0,O.jsx)(K,{options:vd,value:r.notation,onChange:e=>n(`notation`,e.target.value)})}),(0,O.jsx)(`div`,{className:`qzk-pref-note`,children:`Inspector and readout values are JetBrains Mono and right-aligned. Units keep their scientific casing (kOe, Å⁻¹, µ_B/f.u.).`})]}),i===`Keyboard`&&(0,O.jsx)(`div`,{className:`qzk-sc-cols`,children:Ve(md).map(e=>(0,O.jsxs)(`div`,{className:`qzk-sc-group`,children:[(0,O.jsx)(`div`,{className:`qzk-sc-title`,children:e.title}),e.items.map(e=>(0,O.jsxs)(`div`,{className:`qzk-sc-row`,children:[(0,O.jsx)(`kbd`,{className:`qzk-kbd`,children:e.keys}),(0,O.jsx)(`span`,{className:`qzk-sc-desc`,children:e.desc})]},e.keys))]},e.title))})]})]}),(0,O.jsxs)(`div`,{className:`qzk-prefs-foot`,children:[(0,O.jsx)(`span`,{className:`qzk-pref-hint`,children:`Changes apply immediately and persist on this machine.`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>t(!1),children:`Done`})]})]})}):null}var xd=typeof navigator<`u`&&/Mac|iPod|iPhone|iPad/.test(navigator.platform);function Sd(){let e=Z(e=>e.shortcutsOpen),t=Z(e=>e.setShortcutsOpen);if((0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.stopPropagation(),t(!1))};return window.addEventListener(`keydown`,n,!0),()=>window.removeEventListener(`keydown`,n,!0)},[e,t]),!e)return null;let n=Ve(xd);return(0,O.jsx)(`div`,{className:`qz-overlay-backdrop`,onMouseDown:()=>t(!1),children:(0,O.jsxs)(`div`,{className:`qzk-glass qz-dialog qzk-shortcuts`,onMouseDown:e=>e.stopPropagation(),children:[(0,O.jsx)(`h2`,{children:`Keyboard & mouse shortcuts`}),(0,O.jsx)(`div`,{className:`qzk-sc-cols`,children:n.map(e=>(0,O.jsxs)(`div`,{className:`qzk-sc-group`,children:[(0,O.jsx)(`div`,{className:`qzk-sc-title`,children:e.title}),e.items.map(e=>(0,O.jsxs)(`div`,{className:`qzk-sc-row`,children:[(0,O.jsx)(`kbd`,{className:`qzk-kbd`,children:e.keys}),(0,O.jsx)(`span`,{className:`qzk-sc-desc`,children:e.desc})]},e.keys))]},e.title))}),(0,O.jsx)(`div`,{className:`qz-btn-row`,children:(0,O.jsx)(G,{variant:`primary`,onClick:()=>t(!1),children:`Close`})})]})})}var Cd=[[`$\\mu_0H$ (T)`,`applied field axis`],[`Q ($\\AA^{-1}$)`,`reciprocal angstroms`],[`$\\chi''$`,`imaginary susceptibility`],[`$2\\theta$ (°)`,`diffraction angle`],[`$M_{sat}$`,`subscript group`],[`$10^{-6}$`,`superscript exponent`],[`$\\mathrm{R}$ vs $R$`,`upright vs math italic`]],wd=[[`Ctrl / Cmd + I`,`Wrap selection in italic — $\\mathit{...}$`],[`Ctrl + =`,`Wrap selection in subscript — _{...}`],[`Ctrl + Shift + =`,`Wrap selection in superscript — ^{...}`],[`Ctrl / Cmd + .`,`Open the symbol palette`]],Td=[[`$...$`,`math region — all tokens below work only inside it`],[`_x _{...}`,`subscript (single char or group; nesting supported)`],[`^x ^{...}`,`superscript (single char or group; nesting supported)`],[`\\alpha … \\omega`,`lowercase Greek, italic (plus \\varepsilon \\vartheta \\varsigma \\varphi variants)`],[`\\Gamma … \\Omega`,`uppercase Greek, upright`],[`\\AA \\circ \\times \\cdot \\pm \\prime \\,`,`Å ∘ × ⋅ ± ′ and a thin space`],[`\\mathrm{...} \\mathit{...}`,`force upright / italic for a group`],[`a-z 0-9`,`letters render italic, digits upright (mathtext convention)`],[`° Å µ × ± ⋅ ∘ ′ ″ − and Greek`,`literal Unicode also accepted inside math`],[`\\$`,`a literal dollar sign (outside math regions)`]];function Ed(){let e=Z(e=>e.textFormatHelpOpen),t=Z(e=>e.setTextFormatHelpOpen);return(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.stopPropagation(),t(!1))};return window.addEventListener(`keydown`,n,!0),()=>window.removeEventListener(`keydown`,n,!0)},[e,t]),e?(0,O.jsx)(`div`,{className:`qz-overlay-backdrop`,onMouseDown:()=>t(!1),children:(0,O.jsxs)(`div`,{className:`qzk-glass qz-dialog`,style:{maxWidth:620,maxHeight:`80vh`,overflowY:`auto`},onMouseDown:e=>e.stopPropagation(),children:[(0,O.jsx)(`h2`,{children:`Text formatting`}),(0,O.jsxs)(`p`,{style:{color:`var(--text-dim)`,marginTop:6},children:[`Labels, titles, and legend names are plain text with optional`,` `,(0,O.jsx)(`code`,{children:`$...$`}),` math regions in a strict subset of matplotlib mathtext. The same string renders identically on-screen and in vector export. Outside `,(0,O.jsx)(`code`,{children:`$...$`}),`, text (including Unicode like µ or Å) passes through literally.`]}),(0,O.jsx)(`h3`,{style:{marginTop:14},children:`Examples`}),(0,O.jsxs)(`table`,{className:`qz-table`,"data-testid":`tfh-examples`,children:[(0,O.jsx)(`thead`,{children:(0,O.jsxs)(`tr`,{children:[(0,O.jsx)(`th`,{children:`you type`}),(0,O.jsx)(`th`,{children:`you see`}),(0,O.jsx)(`th`,{children:`\xA0`})]})}),(0,O.jsx)(`tbody`,{children:Cd.map(([e,t])=>(0,O.jsxs)(`tr`,{children:[(0,O.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`,whiteSpace:`nowrap`},children:e}),(0,O.jsx)(`td`,{children:(0,O.jsx)(oe,{text:e})}),(0,O.jsx)(`td`,{style:{color:`var(--text-faint)`},children:t})]},e))})]}),(0,O.jsx)(`h3`,{style:{marginTop:14},children:`Inside a math region`}),(0,O.jsx)(`table`,{className:`qz-table`,"data-testid":`tfh-syntax`,children:(0,O.jsx)(`tbody`,{children:Td.map(([e,t])=>(0,O.jsxs)(`tr`,{children:[(0,O.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`,whiteSpace:`nowrap`},children:e}),(0,O.jsx)(`td`,{style:{color:`var(--text-dim)`},children:t})]},e))})}),(0,O.jsx)(`h3`,{style:{marginTop:14},children:`Symbol palette`}),(0,O.jsxs)(`p`,{style:{color:`var(--text-dim)`,marginTop:6},children:[`Every label field has an Ω button that opens the symbol palette — Greek letters, sub/superscript and italic/upright inserters, physics symbols, and common snippets. It inserts the right form for the caret position: the bare command inside a math region, a`,` `,(0,O.jsx)(`code`,{children:`$...$`}),`-wrapped or plain-Unicode form outside.`]}),(0,O.jsx)(`h3`,{style:{marginTop:14},children:`Keyboard shortcuts`}),(0,O.jsx)(`p`,{style:{color:`var(--text-dim)`,marginTop:6},children:`Select text in any label field first, then apply the shortcut to wrap it. With nothing selected, the shortcut inserts an empty token and leaves the cursor inside it, ready to type.`}),(0,O.jsx)(`table`,{className:`qz-table`,"data-testid":`tfh-shortcuts`,children:(0,O.jsx)(`tbody`,{children:wd.map(([e,t])=>(0,O.jsxs)(`tr`,{children:[(0,O.jsx)(`td`,{style:{fontFamily:`var(--font-mono)`,whiteSpace:`nowrap`},children:e}),(0,O.jsx)(`td`,{style:{color:`var(--text-dim)`},children:t})]},e))})}),(0,O.jsx)(`h3`,{style:{marginTop:14},children:`When markup is invalid`}),(0,O.jsxs)(`p`,{style:{color:`var(--text-dim)`,marginTop:6},children:[`Invalid markup (an unclosed `,(0,O.jsx)(`code`,{children:`$`}),`, an unknown`,` `,(0,O.jsx)(`code`,{children:`\\command`}),`, an unmatched brace) never errors: the whole string simply renders literally, everywhere — plot, legend, editors, and export all apply the same fallback. The label editors also show the specific problem live while you type.`]}),(0,O.jsx)(`div`,{className:`qz-btn-row`,children:(0,O.jsx)(G,{variant:`primary`,onClick:()=>t(!1),children:`Close`})})]})}):null}function Dd(){let e=ml(e=>e.toasts),t=ml(e=>e.dismiss);return e.length===0?null:(0,O.jsx)(`div`,{className:`qzk-toaster`,"aria-live":`polite`,children:e.map(e=>(0,O.jsx)(`div`,{className:`qzk-toast${e.kind===`info`?``:` ${e.kind}`}`,onClick:()=>t(e.id),children:e.msg},e.id))})}var Od=350;function kd(){let[e,t]=(0,y.useState)(null);return(0,y.useEffect)(()=>{let e,n=()=>{e&&clearTimeout(e),e=void 0},r=r=>{let i=r.target?.closest(`[data-tip]`);if(!i)return;let a=i.getAttribute(`data-tip`);if(!a)return;let o=i.getAttribute(`data-tip-key`),s=i.getBoundingClientRect();n(),e=setTimeout(()=>{let e=s.top<90;t({label:a,hint:o,x:s.left+s.width/2,y:e?s.bottom+8:s.top-8,below:e})},Od)},i=()=>{n(),t(null)};return document.addEventListener(`mouseover`,r),document.addEventListener(`mouseout`,i),document.addEventListener(`mousedown`,i),()=>{n(),document.removeEventListener(`mouseover`,r),document.removeEventListener(`mouseout`,i),document.removeEventListener(`mousedown`,i)}},[]),e?(0,se.createPortal)((0,O.jsxs)(`div`,{className:`qz-tip`,style:{left:e.x,top:e.y,transform:e.below?`translate(-50%, 0)`:`translate(-50%, -100%)`},children:[(0,O.jsx)(`span`,{children:e.label}),e.hint&&(0,O.jsx)(`kbd`,{className:`qz-tip-key`,children:e.hint})]}),document.body):null}var Ad=0;function jd({title:e,x:t=120,y:n=90,width:r=360,onClose:i,children:a}){let[o,s]=(0,y.useState)({x:t,y:n}),[c,l]=(0,y.useState)(()=>++Ad),u=(0,y.useRef)(null);return(0,O.jsxs)(`div`,{className:`qzk-glass qzk-win`,style:{left:o.x,top:o.y,zIndex:200+c,width:r},onMouseDown:()=>l(++Ad),children:[(0,O.jsxs)(`div`,{className:`qzk-win-title`,onPointerDown:e=>{u.current={dx:e.clientX-o.x,dy:e.clientY-o.y},e.target.setPointerCapture(e.pointerId)},onPointerMove:e=>{u.current&&s({x:Math.max(0,e.clientX-u.current.dx),y:Math.max(0,e.clientY-u.current.dy)})},onPointerUp:e=>{u.current=null,e.target.releasePointerCapture(e.pointerId)},children:[i&&(0,O.jsx)(`button`,{className:`qzk-win-close`,title:`Close`,onPointerDown:e=>e.stopPropagation(),onClick:i}),(0,O.jsx)(`span`,{className:`grow`,children:e})]}),(0,O.jsx)(`div`,{className:`qzk-win-body`,children:a})]})}var Md={lam:1e6,p:.01,radius:100,order:5,maxWindowDeg:2,regionXMin:NaN,regionXMax:NaN,maxIter:50,anchorMethod:`pchip`},Nd=0;function Pd(e,t){return e===`linear`?1:e===`quadratic`?2:t.order}function Fd(e,t,n,r,i){switch(e){case`als`:return vt({y:n,lam:r.lam,p:r.p});case`rollingball`:return yt({y:n,radius:r.radius});case`modpoly`:return bt({y:n,order:r.order});case`snip`:return _t({x:t,y:n,method:`snip`});case`anchor`:return xt({x:t,y:n,anchors:i,method:r.anchorMethod});case`shirley`:return St({x:t,y:n,max_iter:r.maxIter});case`xrdla`:return Ct({x:t,y:n});case`region`:case`linear`:case`quadratic`:case`poly`:{let i=1/0,a=-1/0;for(let e of t)Number.isFinite(e)&&(e<i&&(i=e),e>a&&(a=e));let o=e===`region`;return wt({x:t,y:n,x_min:o&&Number.isFinite(r.regionXMin)?r.regionXMin:i,x_max:o&&Number.isFinite(r.regionXMax)?r.regionXMax:a,order:Pd(e,r)}).then(e=>({baseline:e.background}))}}}function Id(){let e=pd(),t=Z(e=>e.addDataset),n=Z(e=>e.setStatus),r=Z(e=>e.setBaselineOverlay),i=Z(e=>e.setPlotTool),a=Z(e=>e.regionPicked),o=Z(e=>e.setRegionPicked),s=Z(e=>e.setBaselineAnchorEdit),[c,l]=(0,y.useState)(`als`),[u,d]=(0,y.useState)(Md),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)([]),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(null),x=(0,y.useRef)(async()=>{}),S=(0,y.useMemo)(()=>m.map(([e,t],n)=>({index:n,x:e,y:t})),[m]),C=(0,y.useRef)(S);C.current=S,(0,y.useEffect)(()=>{p(null),b(null),h([]),r(null)},[e,r]);let w=e=>d(t=>({...t,...e}));(0,y.useEffect)(()=>{if(!a)return;let[e,t]=a;d(n=>({...n,regionXMin:e,regionXMax:t})),o(null)},[a,o]);let T=()=>i(`region`);async function E(){if(e){if(c===`anchor`&&m.length<2){b(`place at least 2 anchors on the plot`);return}_(!0),b(null);try{let t=await Z.getState().resolveDataset(e.id);if(!t)return;let n=t.data.time,i=t.data.values.map(e=>e[0]),a=await Fd(c,n,i,u,m);p(a.baseline),r({datasetId:t.id,y:a.baseline})}catch(e){b(e instanceof Error?e.message:`baseline failed`)}finally{_(!1)}}}x.current=E,(0,y.useEffect)(()=>{if(c!==`anchor`||!e){s(null);return}return s({getAnchors:()=>C.current,addAnchor:(e,t)=>h(n=>[...n,[e,t]]),moveAnchor:(e,t,n)=>h(r=>r.map((r,i)=>i===e?[t,n]:r)),removeAnchor:e=>h(t=>t.filter((t,n)=>n!==e))}),()=>s(null)},[c,e,s]),(0,y.useEffect)(()=>{if(c!==`anchor`)return;if(!e||m.length<2){p(null),r(null);return}let t=setTimeout(()=>void x.current(),150);return()=>clearTimeout(t)},[c,m,u.anchorMethod,e,r]);async function D(){if(!e||!f)return;let r=await Z.getState().resolveDataset(e.id);if(!r)return;let i=r.data,a=i.values.map((e,t)=>{let n=f[t],r=[...e];return Number.isFinite(e[0])&&n!=null&&(r[0]=e[0]-n),r}),o={...i,values:a,metadata:{...i.metadata,baseline_subtracted:c}},s=r.name.replace(/\.[^.]+$/,``);t({id:`bgsub-${++Nd}`,name:`${s} (bg-sub)`,data:o}),n(`subtracted ${c} baseline`)}async function O(){if(!e||m.length<2)return;let t=await Z.getState().resolveDataset(e.id);if(!t)return;let i=t.corrections??{};if(i.normMethod!=null||i.smoothEnabled===!0||i.yOff!=null&&i.yOff!==0||i.bgSlope!=null&&i.bgSlope!==0||i.bgPoly!=null&&i.bgPoly.length>0||i.derivativeMode!=null&&i.derivativeMode!==`none`||i.isMag===!0){f?(await D(),h([]),n(`subtracted anchor baseline (new dataset - prior corrections active)`)):b(`prior corrections active: wait for the preview, then Apply again`);return}let a={...t.corrections??{},bgAnchors:m,bgAnchorMethod:u.anchorMethod},o=t.bgRef?{datasetId:t.bgRef.datasetId,interp:t.bgRef.interp}:void 0;await Z.getState().applyCorrections(t.id,a,o)&&(r(null),p(null),h([]),n(`subtracted anchor baseline (correction step)`))}function k(){p(null),b(null),r(null)}return{active:e,method:c,params:u,baseline:f,busy:g,error:v,anchors:m,setMethod:l,setParams:w,compute:E,subtract:D,clear:k,pickRegion:T,clearAnchors:()=>h([]),applyAnchors:O}}var Ld=[{value:`als`,label:`Asymmetric least squares`},{value:`rollingball`,label:`Rolling ball`},{value:`modpoly`,label:`Modified polynomial`},{value:`snip`,label:`SNIP`},{value:`region`,label:`Fit from region`},{value:`anchor`,label:`Anchor points`},{value:`shirley`,label:`Shirley (XPS/XAS)`},{value:`xrdla`,label:`XRD low-angle (1/x)`},{value:`linear`,label:`Linear`},{value:`quadratic`,label:`Quadratic`},{value:`poly`,label:`Polynomial (n)`}],Rd=[{value:`pchip`,label:`pchip (shape-preserving)`},{value:`linear`,label:`linear`},{value:`spline`,label:`spline`}],zd={als:[{label:`Smoothness λ`,key:`lam`},{label:`Asymmetry p`,key:`p`,step:.001}],rollingball:[{label:`Radius`,key:`radius`}],modpoly:[{label:`Poly order`,key:`order`}],snip:[{label:`Window (°)`,key:`maxWindowDeg`,step:.1}],region:[{label:`Box x-min`,key:`regionXMin`,allowEmpty:!0,placeholder:`auto`},{label:`Box x-max`,key:`regionXMax`,allowEmpty:!0,placeholder:`auto`},{label:`Poly order`,key:`order`}],anchor:[],shirley:[{label:`Max iterations`,key:`maxIter`}],xrdla:[],linear:[],quadratic:[],poly:[{label:`Poly order`,key:`order`}]};function Bd(){let e=Z(e=>e.setBaselineOpen),{active:t,method:n,params:r,baseline:i,busy:a,error:o,anchors:s,setMethod:c,setParams:l,compute:u,subtract:d,clear:f,pickRegion:p,clearAnchors:m,applyAnchors:h}=Id();return(0,O.jsxs)(jd,{title:`Baseline`,width:320,onClose:()=>{f(),e(!1)},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Method`}),(0,O.jsx)(K,{options:Ld,value:n,onChange:e=>c(e.target.value)}),(0,O.jsx)(`div`,{style:{display:`grid`,gridTemplateColumns:`auto auto`,gap:`6px 12px`,marginTop:10,alignItems:`center`},children:zd[n].map(e=>(0,O.jsxs)(`span`,{style:{display:`contents`},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:e.label}),(0,O.jsx)(q,{value:Number.isFinite(r[e.key])?r[e.key]:``,width:88,step:e.step,placeholder:e.placeholder,onChange:t=>{if(e.allowEmpty&&t.trim()===``){l({[e.key]:NaN});return}l({[e.key]:Number(t)||0})}})]},e.key))}),n===`region`&&(0,O.jsx)(G,{size:`sm`,disabled:!t,onClick:p,style:{marginTop:10,width:`100%`},children:`⬚ Pick range on plot`}),n===`anchor`&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:10},children:`Interpolation`}),(0,O.jsx)(K,{options:Rd,value:r.anchorMethod,onChange:e=>l({anchorMethod:e.target.value})}),(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:8,color:`var(--text-faint)`},children:[`◇ Click the plot to place anchors (`,s.length,` placed). Drag a marker to move it; click one to remove it.`]}),(0,O.jsx)(G,{size:`sm`,disabled:s.length===0,onClick:m,style:{marginTop:8,width:`100%`},children:`Clear anchors`})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:12},children:[(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:!t||a,onClick:()=>void u(),children:a?`Estimating…`:`Estimate`}),n===`anchor`?(0,O.jsx)(G,{size:`sm`,disabled:!t||a||s.length<2,onClick:()=>void h(),children:`Apply −BG`}):(0,O.jsx)(G,{size:`sm`,disabled:!i,onClick:()=>void d(),children:`Subtract →`})]}),!t&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--text-faint)`},children:`Select a dataset first.`}),o&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:o}),i&&!o&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--text-faint)`},children:n===`anchor`?`Baseline overlaid — Apply −BG subtracts it as a correction step.`:`Baseline overlaid — Subtract writes a new dataset.`})]})}function Vd({c:e}){return(0,O.jsx)(`div`,{style:{marginTop:12},children:e.constants?(0,O.jsx)(je,{columns:[`constant`,`value (SI)`],rows:Object.entries(e.constants).map(([e,t])=>[e,(0,O.jsx)(`span`,{style:{fontFamily:`var(--font-mono)`},children:Y(t)},e)])}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`Constants unavailable (backend offline).`})})}var Hd=[{value:`cubic`,label:`Cubic`,lengths:[],angles:[]},{value:`tetragonal`,label:`Tetragonal`,lengths:[`c`],angles:[]},{value:`hexagonal`,label:`Hexagonal`,lengths:[`c`],angles:[]},{value:`rhombohedral`,label:`Rhombohedral`,lengths:[],angles:[`alpha`]},{value:`orthorhombic`,label:`Orthorhombic`,lengths:[`b`,`c`],angles:[]},{value:`monoclinic`,label:`Monoclinic`,lengths:[`b`,`c`],angles:[`beta`]},{value:`triclinic`,label:`Triclinic`,lengths:[`b`,`c`],angles:[`alpha`,`beta`,`gamma`]}];function Ud(e){let t=Hd.find(t=>t.value===e.system),n=(e,t)=>{let n=Number(e);if(!Number.isFinite(n))throw Error(`enter a numeric ${t}`);return n},r=n(e.a,`a`),i=t?.lengths.includes(`b`)?n(e.b,`b`):r,a=t?.lengths.includes(`c`)?n(e.c,`c`):r,o=t?.angles.includes(`alpha`)?n(e.alpha,`α`):90,s=t?.angles.includes(`beta`)?n(e.beta,`β`):90,c=t?.angles.includes(`gamma`)?n(e.gamma,`γ`):90;return e.system===`hexagonal`&&(c=120),e.system===`rhombohedral`&&(s=o,c=o),{a:r,b:i,c:a,alpha:o,beta:s,gamma:c}}var Wd=[{value:`2theta_from_d`,label:`d → 2θ`,inUnit:`Å`},{value:`d_from_2theta`,label:`2θ → d`,inUnit:`°`},{value:`q_from_2theta`,label:`2θ → Q`,inUnit:`°`},{value:`2theta_from_q`,label:`Q → 2θ`,inUnit:`1/Å`}],Gd=[{label:`Cu Kα`,a:1.5406},{label:`Mo Kα`,a:.7107},{label:`Co Kα`,a:1.789},{label:`Cr Kα`,a:2.2897}],Kd=[{label:`Thermal`,a:1.798},{label:`4.75 Å`,a:4.75},{label:`5 Å`,a:5},{label:`6 Å`,a:6}],qd=[{label:`Si`,formula:`Si`,density:2.33},{label:`SiO₂`,formula:`SiO2`,density:2.65},{label:`Al₂O₃`,formula:`Al2O3`,density:3.95},{label:`Fe`,formula:`Fe`,density:7.87},{label:`H₂O`,formula:`H2O`,density:1},{label:`D₂O`,formula:`D2O`,density:1.11}],Jd=[{label:`Oe → T`,from:`Oe`,to:`T`},{label:`T → G`,from:`T`,to:`G`},{label:`eV → nm`,from:`eV`,to:`nm`},{label:`eV → THz`,from:`eV`,to:`THz`},{label:`K → C`,from:`K`,to:`C`},{label:`J → eV`,from:`J`,to:`eV`},{label:`GPa → bar`,from:`GPa`,to:`bar`},{label:`Ang → nm`,from:`Ang`,to:`nm`}];function Yd(){let[e,t]=(0,y.useState)(`units`),[n,r]=(0,y.useState)(`1`),[i,a]=(0,y.useState)(`Oe`),[o,s]=(0,y.useState)(`T`),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(!1),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(`2theta_from_d`),[x,S]=(0,y.useState)(`1.5406`),[C,w]=(0,y.useState)(`3.1356`),[T,E]=(0,y.useState)(null),[D,O]=(0,y.useState)(null),[k,A]=(0,y.useState)(!1),[j,M]=(0,y.useState)({system:`cubic`,a:`5.4309`,b:`5.4309`,c:`5.4309`,alpha:`90`,beta:`90`,gamma:`90`,h:`1`,k:`1`,l:`1`,formula:`Si`,z:`8`}),[N,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(null),[L,R]=(0,y.useState)(!1),[z,B]=(0,y.useState)(null),[V,H]=(0,y.useState)(null),[U,ee]=(0,y.useState)(!1),[W,te]=(0,y.useState)({formula:`Si`,density:`2.33`,neutronWavelength:`1.798`,xrayWavelength:`1.5406`}),[ne,re]=(0,y.useState)(null),[ie,ae]=(0,y.useState)(null),[oe,se]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=!1;return Mt().then(t=>{e||_(t.constants)}).catch(()=>{}),()=>{e=!0}},[]);let ce=(e,t)=>{a(e),s(t),l(null),d(null),p(null)};async function le(){h(!0),p(null);try{let e=Number(n);if(!Number.isFinite(e))throw Error(`enter a numeric value`);let t=await Pt(e,i,o),r=typeof t.result==`number`?t.result:null;l(r),d(typeof t.info?.description==`string`?t.info.description:null)}catch(e){l(null),p(e instanceof Error?e.message:`conversion failed`)}finally{h(!1)}}async function ue(){A(!0),O(null);try{let e=Number(x),t=Number(C);if(!Number.isFinite(e)||!Number.isFinite(t))throw Error(`enter numeric wavelength and value`);E(await Ft(v,e,t))}catch(e){E(null),O(e instanceof Error?e.message:`calculation failed`)}finally{A(!1)}}let de=e=>M(t=>({...t,...e}));async function fe(){R(!0),I(null);try{let e=Ud(j),t=Number(j.h),n=Number(j.k),r=Number(j.l);if([t,n,r].some(e=>!Number.isFinite(e)))throw Error(`enter numeric Miller indices`);P(await It({system:j.system,...e,h:t,k:n,l:r}))}catch(e){P(null),I(e instanceof Error?e.message:`calculation failed`)}finally{R(!1)}}async function pe(){ee(!0),H(null);try{let e=Ud(j),t=j.formula.trim(),n=Number(j.z);if(t&&!(Number.isFinite(n)&&n>=1))throw Error(`Z must be an integer ≥ 1`);B(await Lt({...e,...t?{formula:t,z:n}:{}}))}catch(e){B(null),H(e instanceof Error?e.message:`calculation failed`)}finally{ee(!1)}}let me=e=>te(t=>({...t,...e})),he=(e,t)=>{te(n=>({...n,formula:e,density:String(t)})),re(null),ae(null)},ge=()=>{N&&(w(String(N.d)),b(`2theta_from_d`),E(null),O(null),t(`xray`))},_e=()=>{let e=W.formula.trim();e&&(M(t=>({...t,formula:e})),B(null),H(null),t(`crystal`))},ve=()=>{if(!z||z.density==null)return;let e=j.formula.trim();te(t=>({...t,formula:e||t.formula,density:String(z.density)})),re(null),ae(null),t(`sld`)};async function ye(){se(!0),ae(null);try{let e=Number(W.density),t=Number(W.neutronWavelength),n=Number(W.xrayWavelength);if(!W.formula.trim())throw Error(`enter a chemical formula`);if(!(e>0))throw Error(`enter a positive density`);if(!(t>0&&n>0))throw Error(`enter positive wavelengths`);re(await Rt({formula:W.formula.trim(),density:e,neutron_wavelength:t,xray_wavelength:n}))}catch(e){re(null),ae(e instanceof Error?e.message:`calculation failed`)}finally{se(!1)}}return{tab:e,setTab:t,value:n,from:i,to:o,result:c,description:u,error:f,busy:m,setValue:r,setFrom:a,setTo:s,setPair:ce,convert:le,constants:g,xrayMode:v,wavelength:x,xrayValue:C,xrayResult:T,xrayError:D,xrayBusy:k,setXrayMode:b,setWavelength:S,setXrayValue:w,xrayCompute:ue,crystal:j,crResult:N,crError:F,crBusy:L,updCrystal:de,crCompute:fe,cellResult:z,cellError:V,cellBusy:U,cellCompute:pe,sld:W,sldResult:ne,sldError:ie,sldBusy:oe,updSld:me,setSldPreset:he,sldCompute:ye,sendDToXray:ge,sendFormulaToCrystal:_e,sendCellToSld:ve}}var Xd={alpha:`α`,beta:`β`,gamma:`γ`};function Zd({c:e}){let t=Hd.find(t=>t.value===e.crystal.system),n=t?.lengths??[],r=t?.angles??[];return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(K,{options:Hd.map(e=>({value:e.value,label:e.label})),value:e.crystal.system,onChange:t=>e.updCrystal({system:t.target.value}),"aria-label":`crystal system`}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`,marginTop:10},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`a`}),(0,O.jsx)(q,{value:e.crystal.a,width:64,onChange:t=>e.updCrystal({a:t})}),n.includes(`b`)&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`b`}),(0,O.jsx)(q,{value:e.crystal.b,width:64,onChange:t=>e.updCrystal({b:t})})]}),n.includes(`c`)&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`c`}),(0,O.jsx)(q,{value:e.crystal.c,width:64,onChange:t=>e.updCrystal({c:t})})]}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`Å`})]}),r.length>0&&(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`,marginTop:10},children:[r.map(t=>(0,O.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:8},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:Xd[t]}),(0,O.jsx)(q,{value:e.crystal[t],width:64,onChange:n=>e.updCrystal({[t]:n})})]},t)),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`°`})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,marginTop:10},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`hkl`}),(0,O.jsx)(q,{value:e.crystal.h,width:44,onChange:t=>e.updCrystal({h:t})}),(0,O.jsx)(q,{value:e.crystal.k,width:44,onChange:t=>e.updCrystal({k:t})}),(0,O.jsx)(q,{value:e.crystal.l,width:44,onChange:t=>e.updCrystal({l:t})}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:e.crBusy,onClick:()=>void e.crCompute(),children:`=`})]}),e.crResult&&!e.crError&&(0,O.jsxs)(`div`,{style:{marginTop:10,display:`flex`,alignItems:`center`,gap:10,flexWrap:`wrap`},children:[(0,O.jsxs)(`span`,{style:{fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-lg)`},children:[`d = `,Y(e.crResult.d),` `,(0,O.jsx)(`span`,{style:{color:`var(--text-dim)`},children:`Å`})]}),(0,O.jsx)(G,{variant:`ghost`,size:`sm`,onClick:e.sendDToXray,title:`Use this d in the X-ray tab (d → 2θ → Q)`,children:`→ X-ray`})]}),e.crError&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:e.crError}),(0,O.jsx)(`div`,{className:`qzk-field-lbl`,style:{marginTop:16},children:`Cell volume & density`}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`,marginTop:6},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`formula`}),(0,O.jsx)(q,{numeric:!1,value:e.crystal.formula,width:92,onChange:t=>e.updCrystal({formula:t}),"aria-label":`chemical formula`}),(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`Z`}),(0,O.jsx)(q,{value:e.crystal.z,width:44,onChange:t=>e.updCrystal({z:t})}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:e.cellBusy,onClick:()=>void e.cellCompute(),children:`=`})]}),e.cellResult&&!e.cellError&&(0,O.jsxs)(`div`,{style:{marginTop:10,fontFamily:`var(--font-mono)`},children:[(0,O.jsxs)(`div`,{style:{fontSize:`var(--font-size-lg)`},children:[`V = `,Y(e.cellResult.volume),` `,(0,O.jsx)(`span`,{style:{color:`var(--text-dim)`},children:`ų`})]}),e.cellResult.density!=null&&(0,O.jsxs)(`div`,{style:{marginTop:4,display:`flex`,alignItems:`center`,gap:10,flexWrap:`wrap`},children:[(0,O.jsxs)(`span`,{style:{color:`var(--text-dim)`},children:[`ρ = `,Y(e.cellResult.density),` g/cm³`,e.cellResult.molar_mass!=null&&(0,O.jsxs)(O.Fragment,{children:[` · M = `,Y(e.cellResult.molar_mass),` g/mol`]})]}),(0,O.jsx)(G,{variant:`ghost`,size:`sm`,onClick:e.sendCellToSld,title:`Use this formula + theoretical density in the SLD tab`,children:`→ SLD`})]})]}),e.cellError&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:e.cellError})]})}var Qd=`qz.calcHistory`,$d=100,ef=50,tf={history:[],favorites:[],seq:0};function nf(e){return Array.isArray(e)?e.filter(e=>!!e&&typeof e==`object`&&typeof e.id==`string`&&typeof e.summary==`string`):[]}function rf(){try{let e=localStorage.getItem(Qd);if(!e)return tf;let t=JSON.parse(e);return{history:nf(t.history).slice(0,$d),favorites:nf(t.favorites).slice(0,ef),seq:typeof t.seq==`number`&&Number.isFinite(t.seq)?t.seq:0}}catch{return tf}}function af(e){try{localStorage.setItem(Qd,JSON.stringify(e))}catch{}}var of=rf(),sf=C((e,t)=>({history:of.history,favorites:of.favorites,seq:of.seq,record:t=>e(e=>{let n=e.seq+1,r={history:[{id:`c${n}`,ts:new Date().toISOString(),...t},...e.history].slice(0,$d),favorites:e.favorites,seq:n};return af(r),r}),toggleFavorite:t=>e(e=>{let n;if(e.favorites.some(e=>e.id===t))n=e.favorites.filter(e=>e.id!==t);else{let r=e.history.find(e=>e.id===t);if(!r)return e;n=[r,...e.favorites].slice(0,ef)}let r={history:e.history,favorites:n,seq:e.seq};return af(r),r}),isFavorite:e=>t().favorites.some(t=>t.id===e),clearHistory:()=>e(e=>(af({history:[],favorites:e.favorites,seq:e.seq}),{history:[]}))}));function cf({title:e,children:t}){return(0,O.jsxs)(`div`,{style:{border:`1px solid var(--border-soft)`,borderRadius:6,padding:`8px 10px`,marginTop:10},children:[(0,O.jsx)(`div`,{className:`qzk-field-lbl`,style:{marginTop:0,marginBottom:6},children:e}),t]})}function Q({label:e,value:t,onChange:n,width:r=84,unit:i,numeric:a=!0}){return(0,O.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:e}),(0,O.jsx)(q,{value:t,width:r,onChange:n,unit:i,numeric:a})]})}var $={display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`},lf={marginTop:8,fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-lg)`},uf={marginTop:8,color:`var(--danger)`};function df(e){return e.split(/[\s,]+/).filter(e=>e.length>0).map(Number)}function ff(e){return async function(t,n,r){try{let i=await r();t({text:i}),sf.getState().record({domain:e,label:n,summary:i})}catch(e){t({text:e instanceof Error?e.message:`calculation failed`,err:!0})}}}var pf=e=>e&&(0,O.jsx)(`div`,{style:e.err?uf:lf,children:e.text}),mf=ff(`Diffusion`);function hf(){let[e,t]=(0,y.useState)(`0.1`),[n,r]=(0,y.useState)(`1.0`),[i,a]=(0,y.useState)(`1000`),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(`1e-12`),[u,d]=(0,y.useState)(`3600`),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(`1e-12`),[g,_]=(0,y.useState)(`1e18`),[v,b]=(0,y.useState)(`1e-5`),[x,S]=(0,y.useState)(null);return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(cf,{title:`Arrhenius diffusion coefficient`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`D₀`,value:e,onChange:t,unit:`cm²/s`,width:72}),(0,O.jsx)(Q,{label:`Eₐ`,value:n,onChange:r,unit:`eV`,width:72}),(0,O.jsx)(Q,{label:`T`,value:i,onChange:a,unit:`K`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void mf(s,`Arrhenius diffusion coefficient`,async()=>`D = ${Y((await cn(Number(e),Number(n),Number(i))).D)} cm²/s`),children:`=`})]}),pf(o)]}),(0,O.jsxs)(cf,{title:`Diffusion length`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`D`,value:c,onChange:l,unit:`cm²/s`}),(0,O.jsx)(Q,{label:`t`,value:u,onChange:d,unit:`s`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void mf(p,`Diffusion length`,async()=>{let e=await ln(Number(c),Number(u));return`L = √(Dt) = ${Y(e.L)} cm = ${Y(e.L_um)} µm`}),children:`=`})]}),pf(f)]}),(0,O.jsxs)(cf,{title:`Fick's first law (flux)`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`D`,value:m,onChange:h,unit:`cm²/s`,width:72}),(0,O.jsx)(Q,{label:`ΔC`,value:g,onChange:_,unit:`cm⁻³`,width:72}),(0,O.jsx)(Q,{label:`Δx`,value:v,onChange:b,unit:`cm`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void mf(S,`Fick's first law (flux)`,async()=>`J = -D ∂C/∂x = ${Y((await un(Number(m),Number(g),Number(v))).J)} atoms/(cm²·s)`),children:`=`})]}),pf(x)]})]})}var gf=ff(`Electrical`),_f=1e-7;function vf(){let[e,t]=(0,y.useState)(`100`),[n,r]=(0,y.useState)(`10`),[i,a]=(0,y.useState)(`1e-4`),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(`1e-4`),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(`1e-2`),[m,h]=(0,y.useState)(`1e17`),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(`1e-3`),[x,S]=(0,y.useState)(`1`),[C,w]=(0,y.useState)(null),[T,E]=(0,y.useState)(`1e-3`),[D,k]=(0,y.useState)(`1e-3`),[A,j]=(0,y.useState)(`1`),[M,N]=(0,y.useState)(`100`),[P,F]=(0,y.useState)(null);return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(cf,{title:`Resistivity / Sheet resistance`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`Rs`,value:e,onChange:t,unit:`Ω/sq`}),(0,O.jsx)(Q,{label:`t`,value:n,onChange:r,unit:`nm`}),(0,O.jsx)(G,{size:`sm`,onClick:()=>void gf(s,`Resistivity / Sheet resistance`,async()=>`ρ = ${Y((await zt(Number(e),Number(n)*_f)).rho)} Ω·cm`),children:`Rs → ρ`})]}),(0,O.jsxs)(`div`,{style:{...$,marginTop:8},children:[(0,O.jsx)(Q,{label:`ρ`,value:i,onChange:a,unit:`Ω·cm`}),(0,O.jsx)(G,{size:`sm`,onClick:()=>void gf(s,`Resistivity / Sheet resistance`,async()=>`Rs = ${Y((await Bt(Number(i),Number(n)*_f)).Rs)} Ω/sq`),children:`ρ → Rs`})]}),pf(o)]}),(0,O.jsxs)(cf,{title:`Conductivity`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`ρ`,value:c,onChange:l,unit:`Ω·cm`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void gf(d,`Conductivity`,async()=>`σ = ${Y((await Vt(Number(c))).sigma)} S/cm`),children:`=`})]}),pf(u)]}),(0,O.jsxs)(cf,{title:`Mobility`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`ρ`,value:f,onChange:p,unit:`Ω·cm`}),(0,O.jsx)(Q,{label:`n`,value:m,onChange:h,unit:`cm⁻³`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void gf(_,`Mobility`,async()=>`μ = ${Y((await Ht(Number(f),Number(m))).mu)} cm²/(V·s)`),children:`=`})]}),pf(g)]}),(0,O.jsxs)(cf,{title:`Current density`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`I`,value:v,onChange:b,unit:`A`}),(0,O.jsx)(Q,{label:`A`,value:x,onChange:S,unit:`cm²`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void gf(w,`Current density`,async()=>`J = ${Y((await Ut(Number(v),Number(x))).J)} A/cm²`),children:`=`})]}),pf(C)]}),(0,O.jsxs)(cf,{title:`Hall effect`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`V_H`,value:T,onChange:E,unit:`V`,width:72}),(0,O.jsx)(Q,{label:`I`,value:D,onChange:k,unit:`A`,width:72})]}),(0,O.jsxs)(`div`,{style:{...$,marginTop:8},children:[(0,O.jsx)(Q,{label:`B`,value:A,onChange:j,unit:`T`,width:72}),(0,O.jsx)(Q,{label:`t`,value:M,onChange:N,unit:`nm`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void gf(F,`Hall effect`,async()=>{let e=await Wt(Number(T),Number(D),Number(A),Number(M)*_f);return`R_H = ${Y(e.r_h)} cm³/C · n = ${Y(e.carrier_density)} cm⁻³ · ${e.carrier_type}-type`}),children:`=`})]}),pf(P)]})]})}var yf=ff(`Electrochemistry`);function bf(){let[e,t]=(0,y.useState)(`0.77`),[n,r]=(0,y.useState)(`1`),[i,a]=(0,y.useState)(`0.01`),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(`1e-3`),[u,d]=(0,y.useState)(`0.1`),[f,p]=(0,y.useState)(`0.5`),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(`0.5`),[v,b]=(0,y.useState)(`298.15`),[x,S]=(0,y.useState)(null),[C,w]=(0,y.useState)(`78`),[T,E]=(0,y.useState)(`0.5`),[D,k]=(0,y.useState)(`1`),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)(`1e-3`),[P,F]=(0,y.useState)(`50`),[I,L]=(0,y.useState)(null);return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(cf,{title:`Nernst potential`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`E⁰`,value:e,onChange:t,unit:`V`,width:72}),(0,O.jsx)(Q,{label:`n`,value:n,onChange:r,width:56}),(0,O.jsx)(Q,{label:`Q`,value:i,onChange:a,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void yf(s,`Nernst potential`,async()=>`E = ${Y((await dn(Number(e),Number(n),Number(i))).E)} V`),children:`=`})]}),pf(o)]}),(0,O.jsxs)(cf,{title:`Butler-Volmer`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`j₀`,value:c,onChange:l,unit:`A/cm²`,width:72}),(0,O.jsx)(Q,{label:`η`,value:u,onChange:d,unit:`V`,width:72}),(0,O.jsx)(Q,{label:`α`,value:f,onChange:p,width:56}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void yf(h,`Butler-Volmer`,async()=>`j = ${Y((await fn(Number(c),Number(u),Number(f))).j)} A/cm²`),children:`=`})]}),pf(m)]}),(0,O.jsxs)(cf,{title:`Tafel slope`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`α`,value:g,onChange:_,width:56}),(0,O.jsx)(Q,{label:`T`,value:v,onChange:b,unit:`K`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void yf(S,`Tafel slope`,async()=>`b = ${Y((await pn(Number(g),Number(v))).bMv)} mV/decade`),children:`=`})]}),pf(x)]}),(0,O.jsxs)(cf,{title:`Double-layer capacitance`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`ε_r`,value:C,onChange:w,width:56}),(0,O.jsx)(Q,{label:`d`,value:T,onChange:E,unit:`nm`,width:64}),(0,O.jsx)(Q,{label:`A`,value:D,onChange:k,unit:`cm²`,width:64}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void yf(j,`Double-layer capacitance`,async()=>{let e=await hn(Number(C),Number(T),Number(D));return`C = ${Y(e.CuF)} µF · ${Y(e.Cspec*1e6)} µF/cm²`}),children:`=`})]}),pf(A)]}),(0,O.jsxs)(cf,{title:`Ohmic drop (iR)`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`I`,value:M,onChange:N,unit:`A`,width:72}),(0,O.jsx)(Q,{label:`R`,value:P,onChange:F,unit:`Ω`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void yf(L,`Ohmic drop (iR)`,async()=>{let e=await mn(Number(M),Number(P));return`V_IR = ${Y(e.VmV)} mV (${Y(e.V)} V)`}),children:`=`})]}),pf(I)]})]})}var xf=30,Sf=[[`Atomic mass`,`mass`,`u`],[`Category`,`category`,``],[`Group`,`group`,``],[`Period`,`period`,``],[`Config`,`electronConfig`,``],[`Density`,`density`,`g/cm³`],[`Electronegativity`,`electronegativity`,``],[`Melting pt`,`meltingPoint`,`K`],[`Boiling pt`,`boilingPoint`,`K`],[`Neutron b_coh`,`bCoherent`,`fm`]];function Cf(){let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(null);if((0,y.useEffect)(()=>{let e=!1;return Nt().then(n=>{e||t(n.elements)}).catch(()=>{e||r(!0)}),()=>{e=!0}},[]),n)return(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--text-faint)`},children:`Element data unavailable (backend offline).`});if(!e)return(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--text-faint)`},children:`Loading…`});let c=i.trim().toLowerCase(),l=c===``?e:e.filter(e=>e.symbol.toLowerCase().startsWith(c)||e.name.toLowerCase().includes(c)||String(e.Z)===c);return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(`input`,{className:`qz-input`,style:{width:`100%`},placeholder:`search symbol / name / Z`,value:i,onChange:e=>a(e.target.value),"aria-label":`element search`}),(0,O.jsxs)(`div`,{style:{maxHeight:150,overflowY:`auto`,marginTop:8},children:[l.slice(0,xf).map(e=>(0,O.jsxs)(`button`,{className:o?.Z===e.Z?`qz-btn qz-active`:`qz-btn`,style:{display:`flex`,justifyContent:`space-between`,width:`100%`,marginBottom:2},onClick:()=>s(e),children:[(0,O.jsxs)(`span`,{children:[(0,O.jsx)(`b`,{style:{fontFamily:`var(--font-mono)`},children:e.symbol}),` `,e.name]}),(0,O.jsxs)(`span`,{style:{color:`var(--text-faint)`},children:[`Z=`,e.Z]})]},e.Z)),l.length===0&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`no match`}),l.length>xf&&(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:[`showing `,xf,` of `,l.length,` — refine the search`]})]}),o&&(0,O.jsxs)(`div`,{style:{marginTop:10},children:[(0,O.jsxs)(`div`,{style:{fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-lg)`},children:[o.symbol,` — `,o.name]}),Sf.map(([e,t,n])=>{let r=o[t];if(r==null)return null;let i=typeof r==`number`?Y(r):String(r);return(0,O.jsxs)(`div`,{className:`qz-meta-row`,children:[(0,O.jsx)(`span`,{className:`qz-k`,children:e}),(0,O.jsxs)(`span`,{className:`qz-v`,children:[i,n?` ${n}`:``]})]},t)})]})]})}var wf={color:`var(--text-dim)`,fontSize:`var(--font-size-sm)`},Tf={fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-sm)`};function Ef(){let e=sf(e=>e.favorites),t=sf(e=>e.toggleFavorite);return e.length===0?(0,O.jsx)(`div`,{style:{...wf,marginTop:12,color:`var(--text-faint)`},children:`No favorites yet — pin a result from History with the ☆ button.`}):(0,O.jsx)(`div`,{style:{marginTop:12},children:e.map(e=>(0,O.jsxs)(`div`,{className:`qz-meta-row`,style:{alignItems:`baseline`,gap:8},children:[(0,O.jsx)(xe,{active:!0,"aria-label":`unpin from favorites`,onClick:()=>t(e.id),children:`★`}),(0,O.jsxs)(`span`,{style:{flex:1,minWidth:0},children:[(0,O.jsxs)(`div`,{style:wf,children:[e.domain,` · `,e.label]}),(0,O.jsx)(`div`,{style:Tf,children:e.summary})]})]},e.id))})}var Df={color:`var(--text-dim)`,fontSize:`var(--font-size-sm)`},Of={fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-sm)`};function kf(){let e=sf(e=>e.history),t=sf(e=>e.favorites),n=sf(e=>e.toggleFavorite),r=sf(e=>e.clearHistory),i=new Set(t.map(e=>e.id));return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,O.jsxs)(`span`,{style:Df,children:[e.length,` result`,e.length===1?``:`s`]}),(0,O.jsx)(G,{size:`sm`,variant:`ghost`,disabled:e.length===0,onClick:r,children:`Clear`})]}),e.length===0?(0,O.jsx)(`div`,{style:{...Df,marginTop:10,color:`var(--text-faint)`},children:`No results yet — run a calculator and it will appear here.`}):(0,O.jsx)(`div`,{style:{marginTop:8},children:e.map(e=>{let t=i.has(e.id);return(0,O.jsxs)(`div`,{className:`qz-meta-row`,style:{alignItems:`baseline`,gap:8},children:[(0,O.jsx)(xe,{active:t,"aria-label":t?`unpin from favorites`:`pin to favorites`,onClick:()=>n(e.id),children:t?`★`:`☆`}),(0,O.jsxs)(`span`,{style:{flex:1,minWidth:0},children:[(0,O.jsxs)(`div`,{style:Df,children:[e.domain,` · `,e.label]}),(0,O.jsx)(`div`,{style:Of,children:e.summary})]})]},e.id)})})]})}function Af({onPick:e}){return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(`p`,{style:{marginTop:0,marginBottom:4,color:`var(--text-dim)`,fontSize:`var(--font-size-sm)`},children:`Materials-science calculators. Pick a domain to begin — every result is saved to History, and you can pin the ones you reuse to Favorites.`}),wp.filter(e=>e.group!==`Session`).map(t=>(0,O.jsxs)(`div`,{style:{marginTop:10},children:[(0,O.jsx)(`div`,{className:`qzk-field-lbl`,style:{marginTop:0,marginBottom:6},children:t.group}),(0,O.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:6},children:t.tabs.map(t=>(0,O.jsx)(G,{size:`sm`,onClick:()=>e(t.value),children:t.label},t.value))})]},t.group))]})}var jf=ff(`Magnetic`),Mf=[`emu`,`Am2`,`memu`,`uemu`],Nf=[`Sphere`,`Thin film (in-plane)`,`Thin film (out-of-plane)`,`Long cylinder (axial)`,`Long cylinder (transverse)`];function Pf(){let[e,t]=(0,y.useState)(`1e-3`),[n,r]=(0,y.useState)(`emu`),[i,a]=(0,y.useState)(`0`),[o,s]=(0,y.useState)(`0`),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(`Sphere`),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(`4.375`),[g,_]=(0,y.useState)(`-50`),[v,b]=(0,y.useState)(null),[x,S]=(0,y.useState)(`1e-16`),[C,w]=(0,y.useState)(`10000`),[T,E]=(0,y.useState)(`300`),[D,k]=(0,y.useState)(null),[A,j]=(0,y.useState)(`2e-6`),[M,N]=(0,y.useState)(`4.8e6`),[P,F]=(0,y.useState)(null);return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(cf,{title:`Moment conversions`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`m`,value:e,onChange:t,width:90}),(0,O.jsx)(`select`,{className:`qz-select`,value:n,onChange:e=>r(e.target.value),"aria-label":`moment unit`,children:Mf.map(e=>(0,O.jsx)(`option`,{value:e,children:e},e))})]}),(0,O.jsxs)(`div`,{style:{...$,marginTop:8},children:[(0,O.jsx)(Q,{label:`V`,value:i,onChange:a,unit:`cm³`,width:72}),(0,O.jsx)(Q,{label:`atoms`,value:o,onChange:s,width:84}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void jf(l,`Moment conversions`,async()=>{let t=Number(i),r=Number(o),a=await Kn(Number(e),n,t>0?t:void 0,r>0?r:void 0),s=`${Y(a.emu)} emu = ${Y(a.am2)} A·m² = ${Y(a.mu_b)} µ_B`;return a.m_si!=null&&(s+=` · M = ${Y(a.m_si)} A/m`),a.mu_b_per_atom!=null&&(s+=` · ${Y(a.mu_b_per_atom)} µ_B/atom`),s}),children:`Convert`})]}),pf(c)]}),(0,O.jsxs)(cf,{title:`Demagnetization factors`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(`select`,{className:`qz-select`,value:u,onChange:e=>d(e.target.value),"aria-label":`shape`,children:Nf.map(e=>(0,O.jsx)(`option`,{value:e,children:e},e))}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void jf(p,`Demagnetization factors`,async()=>{let e=await qn(u);return`Nz = ${Y(e.Nz)} · Nxy = ${Y(e.Nxy)} · 4πNz = ${Y(e.n_cgs)}`}),children:`Calculate`})]}),pf(f)]}),(0,O.jsxs)(cf,{title:`Curie-Weiss law`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`C`,value:m,onChange:h,unit:`emu·K/mol`,width:72}),(0,O.jsx)(Q,{label:`θ`,value:g,onChange:_,unit:`K`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void jf(b,`Curie-Weiss law`,async()=>{let e=await Jn(Number(m),Number(g));return`µ_eff = ${Y(e.mu_eff)} µ_B · ${e.mag_type}`}),children:`Calculate`})]}),pf(v)]}),(0,O.jsxs)(cf,{title:`Langevin / superparamagnetism`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`µ`,value:x,onChange:S,unit:`emu`,width:72}),(0,O.jsx)(Q,{label:`H`,value:C,onChange:w,unit:`Oe`,width:72}),(0,O.jsx)(Q,{label:`T`,value:T,onChange:E,unit:`K`,width:64}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void jf(k,`Langevin / superparamagnetism`,async()=>{let e=await Yn(Number(x),Number(C),Number(T));return`L(x) = ${Y(e.L)} at x = ${Y(e.x)}`}),children:`Calculate`})]}),pf(D)]}),(0,O.jsxs)(cf,{title:`Domain wall & anisotropy`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`A`,value:A,onChange:j,unit:`erg/cm`,width:72}),(0,O.jsx)(Q,{label:`K`,value:M,onChange:N,unit:`erg/cm³`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void jf(F,`Domain wall & anisotropy`,async()=>{let e=await Xn(Number(A),Number(M));return`δ = ${Y(e.delta_nm)} nm · E_wall = ${Y(e.e_wall_mj_m2)} mJ/m²`}),children:`Calculate`})]}),pf(P)]})]})}var Ff=ff(`Optics`);function If(){let[e,t]=(0,y.useState)(`1.0`),[n,r]=(0,y.useState)(`1.5`),[i,a]=(0,y.useState)(`45`),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(`1.5`),[u,d]=(0,y.useState)(`1.0`),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(`1.0`),[g,_]=(0,y.useState)(`0.001`),[v,b]=(0,y.useState)(`1.5406`),[x,S]=(0,y.useState)(null),[C,w]=(0,y.useState)(`1.7e-8`),[T,E]=(0,y.useState)(`1e9`),[D,k]=(0,y.useState)(null),[A,j]=(0,y.useState)(`3.5`),[M,N]=(0,y.useState)(`0.0`),[P,F]=(0,y.useState)(`12.25`),[I,L]=(0,y.useState)(`0.0`),[R,z]=(0,y.useState)(null);return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(cf,{title:`Fresnel coefficients`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`n₁`,value:e,onChange:t,width:64}),(0,O.jsx)(Q,{label:`n₂`,value:n,onChange:r,width:64}),(0,O.jsx)(Q,{label:`θ`,value:i,onChange:a,unit:`°`,width:64}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void Ff(s,`Fresnel coefficients`,async()=>{let t=await Gt(Number(e),Number(n),Number(i));return`Rs = ${Y(t.Rs)} · Rp = ${Y(t.Rp)} · Ts = ${Y(t.Ts)} · Tp = ${Y(t.Tp)}`}),children:`Calculate`})]}),pf(o)]}),(0,O.jsxs)(cf,{title:`Critical / Brewster angle`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`n₁`,value:c,onChange:l,width:64}),(0,O.jsx)(Q,{label:`n₂`,value:u,onChange:d,width:64}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void Ff(p,`Critical / Brewster angle`,async()=>{let[e,t]=await Promise.all([Kt(Number(c),Number(u)),qt(Number(c),Number(u))]);return`θc = ${Number.isNaN(e.theta_c)?`— (no TIR)`:`${Y(e.theta_c)}°`} · θB = ${Y(t.theta_b)}°`}),children:`Calculate`})]}),pf(f)]}),(0,O.jsxs)(cf,{title:`Penetration depth`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`n`,value:m,onChange:h,width:64}),(0,O.jsx)(Q,{label:`k`,value:g,onChange:_,width:64}),(0,O.jsx)(Q,{label:`λ`,value:v,onChange:b,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void Ff(S,`Penetration depth`,async()=>`depth = ${Y((await Jt(Number(m),Number(g),Number(v))).depth)} (same unit as λ)`),children:`Calculate`})]}),pf(x)]}),(0,O.jsxs)(cf,{title:`Skin depth`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`ρ`,value:C,onChange:w,unit:`Ω·m`}),(0,O.jsx)(Q,{label:`f`,value:T,onChange:E,unit:`Hz`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void Ff(k,`Skin depth`,async()=>`δ = ${Y((await Yt(Number(C),Number(T))).delta_um)} µm`),children:`Calculate`})]}),pf(D)]}),(0,O.jsxs)(cf,{title:`Refractive index / Dielectric function`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`n`,value:A,onChange:j,width:64}),(0,O.jsx)(Q,{label:`k`,value:M,onChange:N,width:64}),(0,O.jsx)(G,{size:`sm`,onClick:()=>void Ff(z,`Refractive index / Dielectric function`,async()=>{let e=await Xt(Number(A),Number(M));return F(String(e.eps1)),L(String(e.eps2)),`ε₁ = ${Y(e.eps1)} · ε₂ = ${Y(e.eps2)}`}),children:`n,k → ε`})]}),(0,O.jsxs)(`div`,{style:{...$,marginTop:8},children:[(0,O.jsx)(Q,{label:`ε₁`,value:P,onChange:F,width:64}),(0,O.jsx)(Q,{label:`ε₂`,value:I,onChange:L,width:64}),(0,O.jsx)(G,{size:`sm`,onClick:()=>void Ff(z,`Refractive index / Dielectric function`,async()=>{let e=await Zt(Number(P),Number(I));return j(String(e.n)),N(String(e.k)),`n = ${Y(e.n)} · k = ${Y(e.k)}`}),children:`ε → n,k`})]}),pf(R)]})]})}var Lf=ff(`Semiconductor`),Rf={Si:{Eg:1.12,eps_r:11.7,me:1.08,mh:.81},Ge:{Eg:.66,eps_r:16,me:.55,mh:.37},GaAs:{Eg:1.42,eps_r:12.9,me:.067,mh:.45},InP:{Eg:1.35,eps_r:12.5,me:.08,mh:.6},GaN:{Eg:3.4,eps_r:8.9,me:.2,mh:1.4},SiC:{Eg:3.26,eps_r:9.7,me:.37,mh:1}},zf=Object.keys(Rf),Bf=1e-7,Vf=[{title:`Intrinsic carrier concentration`,material:[{from:`Eg`,to:`ni_eg`},{from:`me`,to:`ni_me`},{from:`mh`,to:`ni_mh`}],fields:[{id:`ni_eg`,label:`Eg`,unit:`eV`,width:64,default:`1.12`},{id:`ni_me`,label:`mₑ*`,width:60,default:`1.08`},{id:`ni_mh`,label:`m_h*`,width:60,default:`0.81`},{id:`ni_t`,label:`T`,unit:`K`,width:56,default:`300`}],compute:async e=>{let t=await vn(e(`ni_eg`),e(`ni_me`),e(`ni_mh`),e(`ni_t`));return`nᵢ = ${Y(t.ni)} cm⁻³ · Nc = ${Y(t.Nc)} · Nv = ${Y(t.Nv)}`}},{title:`Carrier concentrations`,fields:[{id:`cc_nd`,label:`Nd`,unit:`cm⁻³`,width:72,default:`1e16`},{id:`cc_na`,label:`Na`,unit:`cm⁻³`,width:72,default:`0`},{id:`cc_ni`,label:`nᵢ`,unit:`cm⁻³`,width:72,default:`1.5e10`}],compute:async e=>{let t=await yn(e(`cc_nd`),e(`cc_na`),e(`cc_ni`));return`n = ${Y(t.n)} · p = ${Y(t.p)} cm⁻³ · ${t.type}-type`}},{title:`Depletion width (p-n junction)`,material:[{from:`eps_r`,to:`dw_eps`}],fields:[{id:`dw_eps`,label:`εᵣ`,width:60,default:`11.7`},{id:`dw_vbi`,label:`Vbi`,unit:`V`,width:60,default:`0.7`},{id:`dw_na`,label:`Na`,unit:`cm⁻³`,width:72,default:`1e16`},{id:`dw_nd`,label:`Nd`,unit:`cm⁻³`,width:72,default:`1e17`}],compute:async e=>{let t=await xn(e(`dw_vbi`),e(`dw_na`),e(`dw_nd`),e(`dw_eps`),300);return`W = ${Y(t.W)} nm · xₙ = ${Y(t.xn)} · xₚ = ${Y(t.xp)} nm`}},{title:`Transport (diffusion coefficient & length)`,fields:[{id:`tr_mu`,label:`μ`,unit:`cm²/V·s`,width:72,default:`1400`},{id:`tr_tau`,label:`τ`,unit:`s`,width:72,default:`1e-6`}],compute:async e=>{let t=await Sn(e(`tr_mu`),300),n=await Cn(t.D,e(`tr_tau`));return`D = ${Y(t.D)} cm²/s · L = ${Y(n.Lum)} µm`}},{title:`Fermi level (relative to Eᵢ)`,fields:[{id:`fl_eg`,label:`Eg`,unit:`eV`,width:56,default:`1.12`},{id:`fl_me`,label:`mₑ*`,width:52,default:`1.08`},{id:`fl_mh`,label:`m_h*`,width:52,default:`0.81`},{id:`fl_nd`,label:`Nd`,unit:`cm⁻³`,width:64,default:`1e16`},{id:`fl_na`,label:`Na`,unit:`cm⁻³`,width:64,default:`0`},{id:`fl_t`,label:`T`,unit:`K`,width:52,default:`300`}],compute:async e=>{let t=await wn(e(`fl_eg`),e(`fl_me`),e(`fl_mh`),e(`fl_nd`),e(`fl_na`),e(`fl_t`));return`E_F − Eᵢ = ${Y(t.EF)} eV · ${t.type}-type`}},{title:`Debye screening length`,fields:[{id:`dl_eps`,label:`εᵣ`,width:60,default:`11.7`},{id:`dl_n`,label:`n`,unit:`cm⁻³`,width:72,default:`1e16`},{id:`dl_t`,label:`T`,unit:`K`,width:56,default:`300`}],compute:async e=>`L_D = ${Y((await Tn(e(`dl_n`),e(`dl_eps`),e(`dl_t`))).LD)} nm`},{title:`Built-in potential (p-n junction)`,fields:[{id:`bv_na`,label:`Na`,unit:`cm⁻³`,width:64,default:`1e17`},{id:`bv_nd`,label:`Nd`,unit:`cm⁻³`,width:64,default:`1e17`},{id:`bv_ni`,label:`nᵢ`,unit:`cm⁻³`,width:64,default:`9.65e9`},{id:`bv_t`,label:`T`,unit:`K`,width:52,default:`300`}],compute:async e=>`V_bi = ${Y((await bn(e(`bv_na`),e(`bv_nd`),e(`bv_ni`),e(`bv_t`))).Vbi)} V`},{title:`Sheet carrier density`,fields:[{id:`sc_n`,label:`n`,unit:`cm⁻³`,width:84,default:`1e17`},{id:`sc_t`,label:`t`,unit:`nm`,width:72,default:`10`}],compute:async e=>`n_s = ${Y((await En(e(`sc_n`),e(`sc_t`)*Bf)).ns)} cm⁻²`},{title:`Thermal velocity`,fields:[{id:`tv_m`,label:`m*`,width:84,default:`0.26`},{id:`tv_t`,label:`T`,unit:`K`,width:72,default:`300`}],compute:async e=>`v_th = ${Y((await Dn(e(`tv_m`),e(`tv_t`))).vth)} cm/s`},{title:`Hall coefficient (mixed conduction)`,fields:[{id:`hc_n`,label:`n`,unit:`cm⁻³`,width:64,default:`1e16`},{id:`hc_p`,label:`p`,unit:`cm⁻³`,width:64,default:`1e4`},{id:`hc_me`,label:`μₑ`,width:56,default:`1400`},{id:`hc_mh`,label:`μ_h`,width:56,default:`450`}],compute:async e=>{let t=await On(e(`hc_n`),e(`hc_p`),e(`hc_me`),e(`hc_mh`));return`R_H = ${Y(t.RH)} cm³/C · ${t.apparent_type}-type`}},{title:`Mobility (Caughey-Thomas, Si)`,fields:[{id:`mm_n`,label:`N`,unit:`cm⁻³`,width:84,default:`1e16`},{id:`mm_t`,label:`T`,unit:`K`,width:72,default:`300`}],compute:async e=>{let t=await kn(`Si`,e(`mm_t`),e(`mm_n`));return`μₑ = ${Y(t.muE)} · μ_h = ${Y(t.muH)} cm²/V·s`}}],Hf=Object.fromEntries(Vf.flatMap(e=>e.fields.map(e=>[e.id,e.default])));function Uf(){let[e,t]=(0,y.useState)(Hf),[n,r]=(0,y.useState)({}),i=e=>n=>t(t=>({...t,[e]:n})),a=t=>Number(e[t]);function o(e,t){return Lf(t=>r(n=>({...n,[e]:t})),t.title,()=>t.compute(a))}function s(e,n){let r=Rf[n];!r||!e.material||t(t=>{let n={...t};for(let t of e.material??[])n[t.to]=String(r[t.from]);return n})}return(0,O.jsx)(`div`,{style:{marginTop:12},children:Vf.map((t,r)=>(0,O.jsxs)(cf,{title:t.title,children:[(0,O.jsxs)(`div`,{style:$,children:[t.material&&(0,O.jsxs)(`select`,{className:`qz-select`,defaultValue:``,"aria-label":`${t.title} material preset`,onChange:e=>e.target.value&&s(t,e.target.value),children:[(0,O.jsx)(`option`,{value:``,children:`(manual)`}),zf.map(e=>(0,O.jsx)(`option`,{value:e,children:e},e))]}),t.fields.map(t=>(0,O.jsx)(Q,{label:t.label,value:e[t.id],onChange:i(t.id),width:t.width,unit:t.unit},t.id)),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void o(r,t),children:`=`})]}),pf(n[r]??null)]},t.title))})}function Wf(){return new URLSearchParams(window.location.search).get(`view`)===`calc`}function Gf(e){return Number.isFinite(e)?e>=1?`${Y(e)} cm`:e>=.1?`${Y(e*10)} mm`:`${Y(e*1e4)} µm`:`∞`}var Kf=`×10⁻⁶ Å⁻²`;function qf({title:e,p:t,extra:n}){return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(`div`,{className:`qzk-field-lbl`,children:[e,` `,(0,O.jsxs)(`span`,{style:{color:`var(--text-faint)`},children:[`(λ `,Y(t.wavelength),` Å)`]})]}),(0,O.jsxs)(`div`,{style:{fontFamily:`var(--font-mono)`,marginTop:4},children:[(0,O.jsxs)(`div`,{style:{fontSize:`var(--font-size-lg)`},children:[Y(t.sld_real),` `,(0,O.jsx)(`span`,{style:{color:`var(--text-dim)`},children:Kf})]}),(0,O.jsxs)(`div`,{style:{color:`var(--text-dim)`,marginTop:2},children:[`+ i `,Y(t.sld_imag),` `,Kf,` `,(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`(abs)`})]}),(0,O.jsxs)(`div`,{style:{color:`var(--text-dim)`,marginTop:4},children:[`Qc = `,Y(t.qc),` Å⁻¹ · 1/e = `,Gf(t.penetration)]}),n]})]})}function Jf({c:e}){let t=e.sldResult,n=Z(e=>e.seedReflectivityLayer),r=(e,r)=>{if(Wf()){X(`open the full app for this`);return}n({sld:e*1e-6,label:`${t?.formula??`SLD`} ${r}`})};return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(`div`,{style:{display:`flex`,gap:6,flexWrap:`wrap`},children:qd.map(t=>(0,O.jsx)(Ae,{active:e.sld.formula===t.formula&&Number(e.sld.density)===t.density,onClick:()=>e.setSldPreset(t.formula,t.density),children:t.label},t.label))}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`,marginTop:10},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`formula`}),(0,O.jsx)(q,{numeric:!1,value:e.sld.formula,width:92,onChange:t=>e.updSld({formula:t}),"aria-label":`chemical formula`}),(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`ρ`}),(0,O.jsx)(q,{value:e.sld.density,width:64,onChange:t=>e.updSld({density:t})}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`g/cm³`}),(0,O.jsx)(G,{variant:`ghost`,size:`sm`,onClick:e.sendFormulaToCrystal,title:`Use this formula in the Crystal tab (cell volume + theoretical density)`,children:`→ Crystal`})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,marginTop:10},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`λn`}),(0,O.jsx)(q,{value:e.sld.neutronWavelength,width:72,onChange:t=>e.updSld({neutronWavelength:t})}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`Å`})]}),(0,O.jsx)(`div`,{style:{display:`flex`,gap:6,flexWrap:`wrap`,marginTop:6},children:Kd.map(t=>(0,O.jsx)(Ae,{active:Number(e.sld.neutronWavelength)===t.a,onClick:()=>e.updSld({neutronWavelength:String(t.a)}),children:t.label},t.label))}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,marginTop:10},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`λx`}),(0,O.jsx)(q,{value:e.sld.xrayWavelength,width:72,onChange:t=>e.updSld({xrayWavelength:t})}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`Å`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:e.sldBusy,onClick:()=>void e.sldCompute(),children:`=`})]}),(0,O.jsx)(`div`,{style:{display:`flex`,gap:6,flexWrap:`wrap`,marginTop:6},children:Gd.map(t=>(0,O.jsx)(Ae,{active:Number(e.sld.xrayWavelength)===t.a,onClick:()=>e.updSld({xrayWavelength:String(t.a)}),children:t.label},t.label))}),t&&!e.sldError&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(qf,{title:`Neutron SLD`,p:t.neutron,extra:t.neutron.xs_absorption==null?null:(0,O.jsxs)(`div`,{style:{color:`var(--text-faint)`,marginTop:2},children:[`σabs = `,Y(t.neutron.xs_absorption),` cm⁻¹ · σinc =`,` `,Y(t.neutron.xs_incoherent??0),` cm⁻¹`]})}),(0,O.jsx)(qf,{title:`X-ray SLD`,p:t.xray}),(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--text-faint)`},children:[t.formula,` · M = `,Y(t.molar_mass),` g/mol · n = `,Y(t.number_density),` cm⁻³`]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,flexWrap:`wrap`,marginTop:10},children:[(0,O.jsx)(G,{variant:`ghost`,size:`sm`,onClick:()=>r(t.neutron.sld_real,`neutron`),title:`Add this neutron SLD as a layer in the reflectivity workshop`,children:`→ Reflectivity (n)`}),(0,O.jsx)(G,{variant:`ghost`,size:`sm`,onClick:()=>r(t.xray.sld_real,`X-ray`),title:`Add this X-ray SLD as a layer in the reflectivity workshop`,children:`→ Reflectivity (x)`})]})]}),e.sldError&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--danger)`},children:e.sldError})]})}var Yf=`Substrates`,Xf=[[`a`,`a`,`Å`],[`b`,`b`,`Å`],[`c`,`c`,`Å`],[`α`,`alpha`,`°`],[`β`,`beta`,`°`],[`γ`,`gamma`,`°`]],Zf=[[`Density`,`density`,`g/cm³`],[`CTE`,`thermalExpansion`,`10⁻⁶/K`],[`ε_r`,`dielectric`,``]];function Qf(){let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(`3.876`),[u,d]=(0,y.useState)(null);if((0,y.useEffect)(()=>{let e=!1;return gn().then(n=>{e||t(n.substrates)}).catch(()=>{e||r(!0)}),()=>{e=!0}},[]),n)return(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--text-faint)`},children:`Substrate data unavailable (backend offline).`});if(!e)return(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--text-faint)`},children:`Loading…`});let f=i.trim().toLowerCase(),p=f===``?e:e.filter(e=>e.name.toLowerCase().includes(f)||e.formula.toLowerCase().includes(f));async function m(){if(!o||o.a==null){d({text:`${o?.name??`substrate`} has no lattice parameter`,err:!0});return}let e=Number(c);if(!Number.isFinite(e)||e<=0){d({text:`a_film must be a positive number`,err:!0});return}try{let t=await _n(e,o.a),n=`f = ${Y(t.mismatchPct)} % (${t.description})`;d({text:n}),sf.getState().record({domain:Yf,label:`Lattice mismatch vs ${o.name}`,summary:n})}catch{d({text:`calculation failed`,err:!0})}}let h=o?.latticeType===`amorphous`;return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(`input`,{className:`qz-input`,style:{width:`100%`},placeholder:`search name / formula`,value:i,onChange:e=>a(e.target.value),"aria-label":`substrate search`}),(0,O.jsxs)(`div`,{style:{maxHeight:150,overflowY:`auto`,marginTop:8},children:[p.map(e=>(0,O.jsxs)(`button`,{className:o?.name===e.name?`qz-btn qz-active`:`qz-btn`,style:{display:`flex`,justifyContent:`space-between`,width:`100%`,marginBottom:2},onClick:()=>{s(e),d(null)},children:[(0,O.jsx)(`span`,{children:(0,O.jsx)(`b`,{style:{fontFamily:`var(--font-mono)`},children:e.name})}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:e.formula})]},e.name)),p.length===0&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`no match`})]}),o&&(0,O.jsxs)(`div`,{style:{marginTop:10},children:[(0,O.jsxs)(`div`,{style:{fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-lg)`},children:[o.formula,` — `,o.orientation]}),(0,O.jsxs)(`div`,{className:`qz-meta-row`,children:[(0,O.jsx)(`span`,{className:`qz-k`,children:`Lattice type`}),(0,O.jsx)(`span`,{className:`qz-v`,children:o.latticeType})]}),!h&&Xf.map(([e,t,n])=>{let r=o[t];return r==null?null:(0,O.jsxs)(`div`,{className:`qz-meta-row`,children:[(0,O.jsx)(`span`,{className:`qz-k`,children:e}),(0,O.jsxs)(`span`,{className:`qz-v`,children:[Y(r),n?` ${n}`:``]})]},t)}),Zf.map(([e,t,n])=>(0,O.jsxs)(`div`,{className:`qz-meta-row`,children:[(0,O.jsx)(`span`,{className:`qz-k`,children:e}),(0,O.jsxs)(`span`,{className:`qz-v`,children:[Y(o[t]),n?` ${n}`:``]})]},t)),!h&&(0,O.jsxs)(cf,{title:`Lattice mismatch vs ${o.name}`,children:[(0,O.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`a_film`}),(0,O.jsx)(`input`,{className:`qz-input`,style:{width:90},value:c,onChange:e=>l(e.target.value),"aria-label":`a_film`}),(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`Å`}),(0,O.jsx)(`button`,{className:`qz-btn`,onClick:m,children:`Mismatch`})]}),pf(u)]})]})]})}var $f=ff(`Superconductor`),ep={Nb:{Tc:9.25,lambda0:39,xi0:38,Hc0:1980},NbN:{Tc:16,lambda0:200,xi0:5,Hc0:8e4},YBCO:{Tc:92,lambda0:150,xi0:1.5,Hc0:0},MgB2:{Tc:39,lambda0:140,xi0:5,Hc0:0},Al:{Tc:1.18,lambda0:16,xi0:1600,Hc0:105},Pb:{Tc:7.19,lambda0:37,xi0:83,Hc0:803},In:{Tc:3.41,lambda0:24,xi0:440,Hc0:282},Sn:{Tc:3.72,lambda0:34,xi0:230,Hc0:305}},tp=Object.keys(ep),np=e=>Number.isNaN(e)?`—`:`${Y(e)} Oe`;function rp(){let[e,t]=(0,y.useState)(`9.25`),[n,r]=(0,y.useState)(`4.2`),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(`Nb`),[c,l]=(0,y.useState)(`39`),[u,d]=(0,y.useState)(`9.25`),[f,p]=(0,y.useState)(`4.2`),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(`Nb`),[v,b]=(0,y.useState)(`38`),[x,S]=(0,y.useState)(`9.25`),[C,w]=(0,y.useState)(`4.2`),[T,E]=(0,y.useState)(null),[D,k]=(0,y.useState)(`39`),[A,j]=(0,y.useState)(`38`),[M,N]=(0,y.useState)(null),[P,F]=(0,y.useState)(`Nb`),[I,L]=(0,y.useState)(`1980`),[R,z]=(0,y.useState)(`9.25`),[B,V]=(0,y.useState)(`4.2`),[H,U]=(0,y.useState)(null),[ee,W]=(0,y.useState)(`Nb`),[te,ne]=(0,y.useState)(`1980`),[re,ie]=(0,y.useState)(`39`),[ae,oe]=(0,y.useState)(`9.25`),[se,ce]=(0,y.useState)(`4.2`),[le,ue]=(0,y.useState)(null);function de({value:e,onChange:t,fill:n}){return(0,O.jsx)(`select`,{className:`qz-select`,"aria-label":`material`,value:e,onChange:e=>{let r=e.target.value;t(r),ep[r]&&n(ep[r])},children:tp.map(e=>(0,O.jsx)(`option`,{value:e,children:e},e))})}return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(cf,{title:`BCS gap Δ₀ = 1.764·k_B·T_c`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`T_c`,value:e,onChange:t,unit:`K`,width:64}),(0,O.jsx)(Q,{label:`T`,value:n,onChange:r,unit:`K`,width:64}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void $f(a,`BCS gap`,async()=>{let t=await Gn(Number(e),Number(n));return`Δ₀ = ${Y(t.delta0)} meV · Δ(T) = ${Y(t.deltaT)} meV · 2Δ₀/k_BT_c = ${Y(t.ratio)}`}),children:`Calculate`})]}),pf(i)]}),(0,O.jsxs)(cf,{title:`London penetration depth`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(de,{value:o,onChange:s,fill:e=>{l(String(e.lambda0)),d(String(e.Tc))}}),(0,O.jsx)(Q,{label:`λ₀`,value:c,onChange:l,unit:`nm`,width:64}),(0,O.jsx)(Q,{label:`T_c`,value:u,onChange:d,unit:`K`,width:56}),(0,O.jsx)(Q,{label:`T`,value:f,onChange:p,unit:`K`,width:56}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void $f(h,`London penetration depth`,async()=>{let e=await Bn(Number(c),Number(f),Number(u));return`λ(${Y(e.T)} K) = ${Y(e.lambda)} nm`}),children:`Calculate`})]}),pf(m)]}),(0,O.jsxs)(cf,{title:`Coherence length`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(de,{value:g,onChange:_,fill:e=>{b(String(e.xi0)),S(String(e.Tc))}}),(0,O.jsx)(Q,{label:`ξ₀`,value:v,onChange:b,unit:`nm`,width:64}),(0,O.jsx)(Q,{label:`T_c`,value:x,onChange:S,unit:`K`,width:56}),(0,O.jsx)(Q,{label:`T`,value:C,onChange:w,unit:`K`,width:56}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void $f(E,`Coherence length`,async()=>{let e=await Vn(Number(v),Number(C),Number(x));return`ξ(${Y(e.T)} K) = ${Y(e.xi)} nm`}),children:`Calculate`})]}),pf(T)]}),(0,O.jsxs)(cf,{title:`Ginzburg-Landau parameter κ = λ/ξ`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`λ`,value:D,onChange:k,unit:`nm`,width:64}),(0,O.jsx)(Q,{label:`ξ`,value:A,onChange:j,unit:`nm`,width:64}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void $f(N,`Ginzburg-Landau parameter`,async()=>{let e=await Hn(Number(D),Number(A));return`κ = ${Y(e.kappa)} (Type ${e.type})`}),children:`Calculate`})]}),pf(M)]}),(0,O.jsxs)(cf,{title:`Critical fields`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(de,{value:P,onChange:F,fill:e=>{L(String(e.Hc0)),z(String(e.Tc))}}),(0,O.jsx)(Q,{label:`H_c0`,value:I,onChange:L,unit:`Oe`,width:72}),(0,O.jsx)(Q,{label:`T_c`,value:R,onChange:z,unit:`K`,width:56}),(0,O.jsx)(Q,{label:`T`,value:B,onChange:V,unit:`K`,width:56}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void $f(U,`Critical fields`,async()=>{let e=await Un(Number(I),Number(R),Number(B),P);return`Type ${e.type} · H_c = ${np(e.Hc)} · H_c1 = ${np(e.Hc1)} · H_c2 = ${np(e.Hc2)}`}),children:`Calculate`})]}),pf(H)]}),(0,O.jsxs)(cf,{title:`Depairing current density`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(de,{value:ee,onChange:W,fill:e=>{ne(String(e.Hc0)),ie(String(e.lambda0)),oe(String(e.Tc))}}),(0,O.jsx)(Q,{label:`H_c0`,value:te,onChange:ne,unit:`Oe`,width:72}),(0,O.jsx)(Q,{label:`λ₀`,value:re,onChange:ie,unit:`nm`,width:56}),(0,O.jsx)(Q,{label:`T_c`,value:ae,onChange:oe,unit:`K`,width:52}),(0,O.jsx)(Q,{label:`T`,value:se,onChange:ce,unit:`K`,width:52}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void $f(ue,`Depairing current density`,async()=>`J_d = ${Y((await Wn(Number(te),Number(re),Number(ae),Number(se))).JdMA)} MA/cm²`),children:`Calculate`})]}),pf(le)]})]})}var ip=ff(`Thermal`);function ap(){let[e,t]=(0,y.useState)(`6e5`),[n,r]=(0,y.useState)(`300`),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(`5000`),[c,l]=(0,y.useState)(`5e28`),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(`150`),[m,h]=(0,y.useState)(`2329`),[g,_]=(0,y.useState)(`700`),[v,b]=(0,y.useState)(null);return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(cf,{title:`Wiedemann-Franz law`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`σ`,value:e,onChange:t,unit:`S/cm`}),(0,O.jsx)(Q,{label:`T`,value:n,onChange:r,unit:`K`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void ip(a,`Wiedemann-Franz law`,async()=>`κ = ${Y((await an(Number(e),Number(n))).kappa)} W/(m·K)`),children:`=`})]}),pf(i)]}),(0,O.jsxs)(cf,{title:`Debye temperature`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`v_s`,value:o,onChange:s,unit:`m/s`}),(0,O.jsx)(Q,{label:`n`,value:c,onChange:l,unit:`m⁻³`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void ip(d,`Debye temperature`,async()=>`Θ_D = ${Y((await on(Number(o),Number(c))).theta_D)} K`),children:`=`})]}),pf(u)]}),(0,O.jsxs)(cf,{title:`Thermal diffusivity`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`κ`,value:f,onChange:p,unit:`W/m·K`,width:72}),(0,O.jsx)(Q,{label:`ρ`,value:m,onChange:h,unit:`kg/m³`,width:72})]}),(0,O.jsxs)(`div`,{style:{...$,marginTop:8},children:[(0,O.jsx)(Q,{label:`c_p`,value:g,onChange:_,unit:`J/kg·K`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void ip(b,`Thermal diffusivity`,async()=>{let e=await sn(Number(f),Number(m),Number(g));return`α = ${Y(e.alpha)} m²/s = ${Y(e.alpha_mm2)} mm²/s`}),children:`=`})]}),pf(v)]})]})}var op=ff(`Thin Film`);function sp(){let[e,t]=(0,y.useState)(`1000`),[n,r]=(0,y.useState)(`60`),[i,a]=(0,y.useState)(null);return(0,O.jsxs)(cf,{title:`Deposition rate`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`t`,value:e,onChange:t,unit:`Å`,width:80}),(0,O.jsx)(Q,{label:`τ`,value:n,onChange:r,unit:`s`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void op(a,`Deposition rate`,async()=>{let t=await An(Number(e),Number(n));return`rate = ${Y(t.rate)} Å/s · ${Y(t.rate_nm_per_min)} nm/min`}),children:`Calculate`})]}),pf(i)]})}function cp(){let[e,t]=(0,y.useState)(`2.5`),[n,r]=(0,y.useState)(`1.0`),[i,a]=(0,y.useState)(`19.3`),[o,s]=(0,y.useState)(`196.97`),[c,l]=(0,y.useState)(null);return(0,O.jsxs)(cf,{title:`Sputter rate`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`Y`,value:e,onChange:t,width:56}),(0,O.jsx)(Q,{label:`J`,value:n,onChange:r,unit:`mA/cm²`,width:56}),(0,O.jsx)(Q,{label:`ρ`,value:i,onChange:a,unit:`g/cm³`,width:56}),(0,O.jsx)(Q,{label:`M`,value:o,onChange:s,unit:`g/mol`,width:64}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void op(l,`Sputter rate`,async()=>{let t=await jn(Number(e),Number(n),Number(i),Number(o));return`rate = ${Y(t.rate)} nm/s · ${Y(t.rate_nm_per_min)} nm/min`}),children:`Calculate`})]}),pf(c)]})}function lp(){let[e,t]=(0,y.useState)(`1e-13`),[n,r]=(0,y.useState)(`3600`),[i,a]=(0,y.useState)(null);return(0,O.jsxs)(cf,{title:`Thermal diffusion length`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`D`,value:e,onChange:t,unit:`cm²/s`,width:72}),(0,O.jsx)(Q,{label:`t`,value:n,onChange:r,unit:`s`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void op(a,`Thermal diffusion length`,async()=>{let t=await Mn(Number(e),Number(n));return`L = ${Y(t.L)} cm · ${Y(t.L_nm)} nm`}),children:`Calculate`})]}),pf(i)]})}function up(){let[e,t]=(0,y.useState)(`1e-6`),[n,r]=(0,y.useState)(`60`),[i,a]=(0,y.useState)(`1.0`),[o,s]=(0,y.useState)(null);return(0,O.jsxs)(cf,{title:`Implant dose (beam current)`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`I`,value:e,onChange:t,unit:`A`,width:72}),(0,O.jsx)(Q,{label:`t`,value:n,onChange:r,unit:`s`,width:64}),(0,O.jsx)(Q,{label:`A`,value:i,onChange:a,unit:`cm²`,width:64}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void op(s,`Implant dose (beam current)`,async()=>`dose = ${Y((await Nn(Number(e),Number(n),Number(i))).dose)} ions/cm²`),children:`Calculate`})]}),pf(o)]})}function dp(){let[e,t]=(0,y.useState)(`1e15`),[n,r]=(0,y.useState)(`80`),[i,a]=(0,y.useState)(`25`),[o,s]=(0,y.useState)(null);return(0,O.jsxs)(cf,{title:`Peak concentration (dose → C)`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`Φ`,value:e,onChange:t,unit:`ions/cm²`,width:72}),(0,O.jsx)(Q,{label:`Rp`,value:n,onChange:r,unit:`nm`,width:56}),(0,O.jsx)(Q,{label:`ΔRp`,value:i,onChange:a,unit:`nm`,width:56}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void op(s,`Peak concentration`,async()=>`C_peak = ${Y((await Pn(Number(e),Number(n),Number(i))).Cpeak)} atoms/cm³`),children:`Calculate`})]}),pf(o)]})}var fp=ff(`Thin Film`);function pp(){let[e,t]=(0,y.useState)(`0.0628`),[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(null);return(0,O.jsxs)(cf,{title:`Kiessig thickness`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`ΔQ`,value:e,onChange:t,unit:`Å⁻¹`,width:72}),(0,O.jsx)(Q,{label:`SLD`,value:n,onChange:r,unit:`Å⁻² (opt)`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void fp(a,`Kiessig thickness`,async()=>{let t=n.trim()===``?void 0:Number(n),r=await Fn(Number(e),t),i=Number.isNaN(r.Qc)?``:` (Qc = ${Y(r.Qc)} Å⁻¹)`;return`t = ${Y(r.thickness)} Å · ${Y(r.thickness_nm)} nm${i}`}),children:`Calculate`})]}),pf(i)]})}function mp(){let[e,t]=(0,y.useState)(`100, 50`),[n,r]=(0,y.useState)(`1.4, 148`),[i,a]=(0,y.useState)(null);return(0,O.jsxs)(cf,{title:`Multilayer thermal conductivity`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`d (nm)`,value:e,onChange:t,width:120,numeric:!1}),(0,O.jsx)(Q,{label:`k (W/m/K)`,value:n,onChange:r,width:120,numeric:!1}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void fp(a,`Multilayer thermal conductivity`,async()=>{let t=await In(df(e),df(n));return`k⊥ = ${Y(t.k_series)} · k∥ = ${Y(t.k_parallel)} W/m/K`}),children:`Calculate`})]}),pf(i)]})}function hp(){let[e,t]=(0,y.useState)(`Ar`),[n,r]=(0,y.useState)(`Si`),[i,a]=(0,y.useState)(`100`),[o,s]=(0,y.useState)(null);return(0,O.jsxs)(cf,{title:`Projected range (LSS)`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`ion`,value:e,onChange:t,width:56,numeric:!1}),(0,O.jsx)(Q,{label:`target`,value:n,onChange:r,width:56,numeric:!1}),(0,O.jsx)(Q,{label:`E`,value:i,onChange:a,unit:`keV`,width:64}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void fp(s,`Projected range (LSS)`,async()=>{let t=await Ln(e,n,Number(i));return`Rp = ${Y(t.Rp)} nm · ΔRp = ${Y(t.deltaRp)} nm`}),children:`Calculate`})]}),pf(o)]})}function gp(){let[e,t]=(0,y.useState)(`130e9`),[n,r]=(0,y.useState)(`0.28`),[i,a]=(0,y.useState)(`500e-6`),[o,s]=(0,y.useState)(`100e-9`),[c,l]=(0,y.useState)(`10`),[u,d]=(0,y.useState)(null);return(0,O.jsxs)(cf,{title:`Stoney stress`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`Es`,value:e,onChange:t,unit:`Pa`,width:64}),(0,O.jsx)(Q,{label:`νs`,value:n,onChange:r,width:48}),(0,O.jsx)(Q,{label:`ts`,value:i,onChange:a,unit:`m`,width:64}),(0,O.jsx)(Q,{label:`tf`,value:o,onChange:s,unit:`m`,width:64}),(0,O.jsx)(Q,{label:`R`,value:c,onChange:l,unit:`m`,width:56}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void fp(d,`Stoney stress`,async()=>{let t=await Rn(Number(e),Number(n),Number(i),Number(o),Number(c));return`σ = ${Y(t.stress_MPa)} MPa · ${Y(t.stress_GPa)} GPa`}),children:`Calculate`})]}),pf(u)]})}function _p(){let[e,t]=(0,y.useState)(`17e-6`),[n,r]=(0,y.useState)(`3e-6`),[i,a]=(0,y.useState)(`-500`),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(`0.3`),[u,d]=(0,y.useState)(null);return(0,O.jsxs)(cf,{title:`Thermal-mismatch strain`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`αf`,value:e,onChange:t,unit:`1/K`,width:64}),(0,O.jsx)(Q,{label:`αs`,value:n,onChange:r,unit:`1/K`,width:64}),(0,O.jsx)(Q,{label:`ΔT`,value:i,onChange:a,unit:`K`,width:56}),(0,O.jsx)(Q,{label:`E`,value:o,onChange:s,unit:`Pa (opt)`,width:64}),(0,O.jsx)(Q,{label:`ν`,value:c,onChange:l,width:48}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void fp(d,`Thermal-mismatch strain`,async()=>{let t=o.trim()===``?void 0:Number(o),r=await zn(Number(e),Number(n),Number(i),t,Number(c)),a=Number.isNaN(r.stress_MPa)?``:` · σ = ${Y(r.stress_MPa)} MPa`;return`ε = ${Y(r.strain)} (${r.description})${a}`}),children:`Calculate`})]}),pf(u)]})}function vp(){return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(sp,{}),(0,O.jsx)(cp,{}),(0,O.jsx)(lp,{}),(0,O.jsx)(up,{}),(0,O.jsx)(dp,{}),(0,O.jsx)(pp,{}),(0,O.jsx)(mp,{}),(0,O.jsx)(hp,{}),(0,O.jsx)(gp,{}),(0,O.jsx)(_p,{})]})}function yp({c:e}){return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`},children:[(0,O.jsx)(q,{value:e.value,width:84,onChange:e.setValue}),(0,O.jsx)(`input`,{className:`qz-input`,style:{width:64},value:e.from,onChange:t=>e.setFrom(t.target.value),"aria-label":`from unit`}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`→`}),(0,O.jsx)(`input`,{className:`qz-input`,style:{width:64},value:e.to,onChange:t=>e.setTo(t.target.value),"aria-label":`to unit`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:e.busy,onClick:()=>void e.convert(),children:`=`})]}),(0,O.jsx)(`div`,{style:{display:`flex`,gap:6,flexWrap:`wrap`,marginTop:10},children:Jd.map(t=>(0,O.jsx)(Ae,{active:e.from===t.from&&e.to===t.to,onClick:()=>e.setPair(t.from,t.to),children:t.label},t.label))}),e.result!=null&&!e.error&&(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(`div`,{style:{fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-lg)`},children:[Y(e.result),` `,(0,O.jsx)(`span`,{style:{color:`var(--text-dim)`},children:e.to})]}),e.description&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:4,color:`var(--text-faint)`},children:e.description})]}),e.error&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--danger)`},children:e.error})]})}var bp=ff(`Vacuum`),xp=[{value:`3.64e-10`,label:`N2 (air)`},{value:`2.60e-10`,label:`He`},{value:`3.40e-10`,label:`Ar`},{value:`2.89e-10`,label:`H2`},{value:`3.46e-10`,label:`O2`},{value:`4.32e-10`,label:`Xe`},{value:`3.60e-10`,label:`Kr`}];function Sp(){let[e,t]=(0,y.useState)(`1e-4`),[n,r]=(0,y.useState)(`300`),[i,a]=(0,y.useState)(`3.64e-10`),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(`1.33e-4`),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(`Si`),[m,h]=(0,y.useState)(`Ar`),[g,_]=(0,y.useState)(`500`),[v,b]=(0,y.useState)(null),[x,S]=(0,y.useState)(`50`),[C,w]=(0,y.useState)(`100`),[T,E]=(0,y.useState)(`1e5`),[D,k]=(0,y.useState)(`1e-4`),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)(`1e-4`),[P,F]=(0,y.useState)(`0.025`),[I,L]=(0,y.useState)(null),[R,z]=(0,y.useState)(`1e-3`),[B,V]=(0,y.useState)(`1e-5`),[H,U]=(0,y.useState)(`0.025`),[ee,W]=(0,y.useState)(`0.5`),[te,ne]=(0,y.useState)(null);return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(cf,{title:`Mean free path`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`P`,value:e,onChange:t,unit:`Pa`,width:72}),(0,O.jsx)(Q,{label:`T`,value:n,onChange:r,unit:`K`,width:64}),(0,O.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`Gas`}),(0,O.jsx)(K,{options:xp,value:i,onChange:e=>a(e.target.value)})]}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void bp(s,`Mean free path`,async()=>{let t=await Qt(Number(e),Number(n),Number(i));return`λ = ${Y(t.mfp)} m (${Y(t.mfpMm)} mm)`}),children:`Calculate`})]}),pf(o)]}),(0,O.jsxs)(cf,{title:`Monolayer formation time`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`P`,value:c,onChange:l,unit:`Pa`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void bp(d,`Monolayer formation time`,async()=>`t_mono = ${Y((await $t(Number(c))).tMono)} s`),children:`Calculate`})]}),pf(u)]}),(0,O.jsxs)(cf,{title:`Sputter yield (lookup)`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`Target`,value:f,onChange:p,numeric:!1,width:72}),(0,O.jsx)(Q,{label:`Ion`,value:m,onChange:h,numeric:!1,width:56}),(0,O.jsx)(Q,{label:`E`,value:g,onChange:_,unit:`eV`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void bp(b,`Sputter yield`,async()=>{let e=await nn(f,Number(g),m);return Number.isNaN(e.Y)?`Y(${f}/${m}) = N/A (out of table)`:`Y(${f}/${m}, ${Y(Number(g))} eV) = ${Y(e.Y)} atoms/ion`}),children:`Calculate`})]}),pf(v)]}),(0,O.jsxs)(cf,{title:`Pump-down estimate`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`V`,value:x,onChange:S,unit:`L`,width:64}),(0,O.jsx)(Q,{label:`S`,value:C,onChange:w,unit:`L/s`,width:64})]}),(0,O.jsxs)(`div`,{style:{...$,marginTop:8},children:[(0,O.jsx)(Q,{label:`P0`,value:T,onChange:E,unit:`Pa`,width:72}),(0,O.jsx)(Q,{label:`Pf`,value:D,onChange:k,unit:`Pa`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void bp(j,`Pump-down estimate`,async()=>{let e=await tn(Number(x),Number(C),Number(T),Number(D));return`t = ${Y(e.time)} s (${Y(e.timeMin)} min) · τ = ${Y(e.tau)} s`}),children:`Calculate`})]}),pf(A)]}),(0,O.jsxs)(cf,{title:`Knudsen number`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`MFP`,value:M,onChange:N,unit:`m`,width:72}),(0,O.jsx)(Q,{label:`L`,value:P,onChange:F,unit:`m`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void bp(L,`Knudsen number`,async()=>{let e=await en(Number(M),Number(P));return`Kn = ${Y(e.Kn)} [${e.regime} flow]`}),children:`Calculate`})]}),pf(I)]}),(0,O.jsxs)(cf,{title:`Gas-flow conductance (tube)`,children:[(0,O.jsxs)(`div`,{style:$,children:[(0,O.jsx)(Q,{label:`P1`,value:R,onChange:z,unit:`Pa`,width:72}),(0,O.jsx)(Q,{label:`P2`,value:B,onChange:V,unit:`Pa`,width:72})]}),(0,O.jsxs)(`div`,{style:{...$,marginTop:8},children:[(0,O.jsx)(Q,{label:`d`,value:H,onChange:U,unit:`m`,width:72}),(0,O.jsx)(Q,{label:`L`,value:ee,onChange:W,unit:`m`,width:72}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:()=>void bp(ne,`Gas-flow conductance`,async()=>{let e=await rn(Number(R),Number(B),Number(H),Number(ee));return`C_mol = ${Y(e.Cmol)} L/s · C_visc = ${Y(e.Cvisc)} L/s [${e.regime}]`}),children:`Calculate`})]}),pf(te)]})]})}function Cp({c:e}){return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(K,{options:Wd.map(e=>({value:e.value,label:e.label})),value:e.xrayMode,onChange:t=>e.setXrayMode(t.target.value),"aria-label":`x-ray conversion`}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,marginTop:10},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`λ`}),(0,O.jsx)(q,{value:e.wavelength,width:84,onChange:e.setWavelength}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`Å`})]}),(0,O.jsx)(`div`,{style:{display:`flex`,gap:6,flexWrap:`wrap`,marginTop:8},children:Gd.map(t=>(0,O.jsx)(Ae,{active:Number(e.wavelength)===t.a,onClick:()=>e.setWavelength(String(t.a)),children:t.label},t.label))}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`,marginTop:10},children:[(0,O.jsx)(q,{value:e.xrayValue,width:100,onChange:e.setXrayValue}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:Wd.find(t=>t.value===e.xrayMode)?.inUnit??``}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:e.xrayBusy,onClick:()=>void e.xrayCompute(),children:`=`})]}),e.xrayResult&&!e.xrayError&&(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(`div`,{style:{fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-lg)`},children:[Y(e.xrayResult.result),` `,(0,O.jsx)(`span`,{style:{color:`var(--text-dim)`},children:e.xrayResult.unit})]}),(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:4,color:`var(--text-faint)`},children:e.xrayResult.description})]}),e.xrayError&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--danger)`},children:e.xrayError})]})}var wp=[{group:`Session`,tabs:[{value:`home`,label:`Home`},{value:`history`,label:`History`},{value:`favorites`,label:`Favorites`}]},{group:`Conversion`,tabs:[{value:`units`,label:`Units`},{value:`constants`,label:`Constants`}]},{group:`Structure`,tabs:[{value:`xray`,label:`X-ray / Neutron`},{value:`crystal`,label:`Crystal`},{value:`sld`,label:`SLD`},{value:`elements`,label:`Elements`},{value:`substrates`,label:`Substrates`}]},{group:`Transport`,tabs:[{value:`electrical`,label:`Electrical`},{value:`thermal`,label:`Thermal`},{value:`diffusion`,label:`Diffusion`}]},{group:`Optics & Vacuum`,tabs:[{value:`optics`,label:`Optics`},{value:`vacuum`,label:`Vacuum`}]},{group:`Devices`,tabs:[{value:`semiconductor`,label:`Semiconductor`},{value:`superconductor`,label:`Superconductor`},{value:`thinfilm`,label:`Thin Film`}]},{group:`Magnetism`,tabs:[{value:`magnetic`,label:`Magnetic`}]},{group:`Electrochemistry`,tabs:[{value:`electrochemistry`,label:`Electrochemistry`}]}];function Tp(){let e=Yd();return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`select`,{className:`qz-select`,style:{width:`100%`},value:e.tab,onChange:t=>e.setTab(t.target.value),"aria-label":`calculator`,children:wp.map(e=>(0,O.jsx)(`optgroup`,{label:e.group,children:e.tabs.map(e=>(0,O.jsx)(`option`,{value:e.value,children:e.label},e.value))},e.group))}),e.tab===`home`&&(0,O.jsx)(Af,{onPick:e.setTab}),e.tab===`history`&&(0,O.jsx)(kf,{}),e.tab===`favorites`&&(0,O.jsx)(Ef,{}),e.tab===`units`&&(0,O.jsx)(yp,{c:e}),e.tab===`xray`&&(0,O.jsx)(Cp,{c:e}),e.tab===`crystal`&&(0,O.jsx)(Zd,{c:e}),e.tab===`sld`&&(0,O.jsx)(Jf,{c:e}),e.tab===`elements`&&(0,O.jsx)(Cf,{}),e.tab===`constants`&&(0,O.jsx)(Vd,{c:e}),e.tab===`electrical`&&(0,O.jsx)(vf,{}),e.tab===`thermal`&&(0,O.jsx)(ap,{}),e.tab===`diffusion`&&(0,O.jsx)(hf,{}),e.tab===`optics`&&(0,O.jsx)(If,{}),e.tab===`vacuum`&&(0,O.jsx)(Sp,{}),e.tab===`electrochemistry`&&(0,O.jsx)(bf,{}),e.tab===`substrates`&&(0,O.jsx)(Qf,{}),e.tab===`semiconductor`&&(0,O.jsx)(Uf,{}),e.tab===`superconductor`&&(0,O.jsx)(rp,{}),e.tab===`thinfilm`&&(0,O.jsx)(vp,{}),e.tab===`magnetic`&&(0,O.jsx)(Pf,{})]})}function Ep(){let e=Z(e=>e.setCalculatorsOpen);return(0,O.jsx)(jd,{title:`Calculators`,width:360,onClose:()=>e(!1),children:(0,O.jsx)(Tp,{})})}var Dp=[{value:`A+B`,label:`A + B`},{value:`A-B`,label:`A − B`},{value:`A*B`,label:`A × B`},{value:`A/B`,label:`A / B`},{value:`(A-B)/(A+B)`,label:`(A−B) / (A+B) asymmetry`}],Op={"A+B":`+`,"A-B":`−`,"A*B":`×`,"A/B":`/`,"(A-B)/(A+B)":`asym`},kp=0,Ap=e=>e.replace(/\.[^.]+$/,``);function jp(){let e=Z(e=>e.datasets),t=Z(e=>e.activeId),n=Z(e=>e.addDataset),r=Z(e=>e.setStatus),i=t??e[0]?.id??``,[a,o]=(0,y.useState)(i),[s,c]=(0,y.useState)(()=>e.find(e=>e.id!==i)?.id??``),[l,u]=(0,y.useState)(`A-B`),[d,f]=(0,y.useState)(`pchip`),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(null);async function _(){let t=e.find(e=>e.id===a),i=e.find(e=>e.id===s);if(!t||!i){g(`pick two datasets`);return}m(!0),g(null);try{let[e,t]=await Promise.all([Z.getState().resolveDataset(a),Z.getState().resolveDataset(s)]);if(!e||!t){g(`pick two datasets`);return}let i=await Zn({dataset_a:e.data,dataset_b:t.data,operation:l,interp_method:d}),o=`${Ap(e.name)} ${Op[l]??l} ${Ap(t.name)}`;n({id:`math-${++kp}`,name:o,data:i}),r(`combined ${e.name} ${Op[l]??l} ${t.name}`)}catch(e){g(e instanceof Error?e.message:`dataset math failed`)}finally{m(!1)}}return{datasets:e.map(e=>({id:e.id,name:e.name})),idA:a,idB:s,operation:l,interp:d,busy:p,error:h,setIdA:o,setIdB:c,setOperation:u,setInterp:f,compute:_}}var Mp=[`pchip`,`linear`,`spline`];function Np(){let e=Z(e=>e.setDatasetMathOpen),t=jp(),n=t.datasets.map(e=>({value:e.id,label:e.name}));return(0,O.jsx)(jd,{title:`Dataset Math`,width:320,onClose:()=>e(!1),children:t.datasets.length>=2?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Dataset A`}),(0,O.jsx)(K,{options:n,value:t.idA,onChange:e=>t.setIdA(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:8},children:`Operation`}),(0,O.jsx)(K,{options:Dp,value:t.operation,onChange:e=>t.setOperation(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:8},children:`Dataset B`}),(0,O.jsx)(K,{options:n,value:t.idB,onChange:e=>t.setIdB(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:8},children:`Interpolate B onto A`}),(0,O.jsx)(K,{options:Mp.map(e=>({value:e,label:e})),value:t.interp,onChange:e=>t.setInterp(e.target.value)}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:t.busy||t.idA===t.idB,onClick:()=>void t.compute(),style:{marginTop:12,width:`100%`},children:t.busy?`Computing…`:`Combine → new dataset`}),t.idA===t.idB&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:8,color:`var(--text-faint)`},children:`Pick two different datasets.`}),t.error&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:8,color:`var(--danger)`},children:t.error})]}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`Load at least two datasets to combine.`})})}function Pp(e){let t=[e.xUnit?`${e.xLabel} (${e.xUnit})`:e.xLabel,...e.series.map(e=>e.unit?`${e.label} (${e.unit})`:e.label)],n=e.data,r=n[0]?.length??0,i=[t.join(` `)];for(let e=0;e<r;e++)i.push(n.map(t=>t[e]==null?``:String(t[e])).join(` `));return i.join(`
12
+ `)}function Fp(e,t){let n=e=>e==null?``:String(e),r=[e.join(` `)];for(let e of t)r.push(e.map(n).join(` `));return r.join(`
13
+ `)}async function Ip(e){try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch{}return!1}async function Lp(e){try{if(navigator.clipboard?.write&&typeof ClipboardItem<`u`)return await navigator.clipboard.write([new ClipboardItem({"image/png":e})]),!0}catch{}return!1}var Rp=[`count`,`mean`,`sd`,`min`,`max`,`median`];function zp(e){let t=e.length;if(t===0)return NaN;let n=t>>1;return t%2?e[n]:(e[n-1]+e[n])/2}function Bp(e,t){let n=new Map,r=Math.min(e.length,t.length);for(let i=0;i<r;i++){let r=e[i],a=t[i];if(!Number.isFinite(r)||!Number.isFinite(a))continue;let o=n.get(r);o?o.push(a):n.set(r,[a])}let i=[];for(let[e,t]of n){let n=t.length,r=t.reduce((e,t)=>e+t,0)/n,a=n>1?t.reduce((e,t)=>e+(t-r)**2,0)/(n-1):NaN,o=[...t].sort((e,t)=>e-t);i.push({group:e,count:n,mean:r,sd:Math.sqrt(a),min:o[0],max:o[n-1],median:zp(o)})}return i.sort((e,t)=>e.group-t.group),i}var Vp=`application/x-qz-channel`;function Hp(e){return JSON.stringify(e)}function Up(e){if(!e)return null;try{let t=JSON.parse(e);if(typeof t==`object`&&t&&typeof t.datasetId==`string`&&typeof t.channel==`number`&&Number.isInteger(t.channel))return t}catch{}return null}var Wp=.22,Gp=.16,Kp=32,qp=88;function Jp(e,t){return Math.min(qp,Math.max(Kp,e*t))}function Yp(e,t){let{width:n,height:r}=e;if(n<=0||r<=0)return null;let{x:i,y:a}=t;if(i<0||a<0||i>n||a>r)return null;let o=Jp(r,Wp),s=Jp(n,Gp);return a>=r-o?`x`:i<=s?`y`:i>=n-s?`y2`:null}function Xp(e){return{actions:[],noop:e}}function Zp(e,t,n,r){let i=xa(e.data,t),a=n??i;if(a.includes(r))return{yKeys:n,changed:!1};let o=[...a,r].sort((e,t)=>e-t);return{yKeys:o.length===i.length&&o.every((e,t)=>e===i[t])?null:o,changed:!0}}function Qp(e,t,n,r){if(r.datasetId!==e.id)return Xp(`dropped a chip from a different dataset`);let{channel:i}=r;if(!Number.isInteger(i)||i<0||i>=e.data.labels.length)return Xp(`invalid channel index`);if(n===`x`){if(i===t.xKey)return Xp(`channel is already the X axis`);let n=[{kind:`setXKey`,xKey:i}],r=ha(e,i);return ga(r)?{actions:n,categoricalXNote:`"${e.data.labels[i]??`channel ${i}`}" is ${r} — categorical axes land with plot-types item 4; showing it as numeric for now.`}:{actions:n}}if(e.channelRoles?.[i])return Xp(`channel has a Label/Ignore role — not plotted`);if(i===t.xKey)return Xp(`can't plot the X channel on Y`);if(n===`y`){let{yKeys:n,changed:r}=Zp(e,t.xKey,t.yKeys,i);return r?{actions:[{kind:`setYKeys`,yKeys:n}]}:Xp(`channel is already plotted on Y`)}let a=new Set(t.y2Keys??[]);if(a.has(i))return Xp(`channel is already on the Y2 axis`);let{yKeys:o,changed:s}=Zp(e,t.xKey,t.yKeys,i);if((o??xa(e.data,t.xKey)).filter(e=>e!==i&&!a.has(e)).length===0)return Xp(`would leave no primary Y series`);let c=[];return s&&c.push({kind:`setYKeys`,yKeys:o}),c.push({kind:`setY2Keys`,y2Keys:[...a,i].sort((e,t)=>e-t)}),{actions:c}}function $p(e){return!!e&&Array.from(e.types).includes(`application/x-qz-channel`)}function em({title:e,hint:t,note:n,datasetId:r,options:i,assigned:a,multiple:o=!1,onAssign:s,onRemove:c,onReject:l}){let[u,d]=(0,y.useState)(!1),f=e=>{$p(e.dataTransfer)&&(e.preventDefault(),u||d(!0))},p=()=>d(!1),m=e=>{if(d(!1),!$p(e.dataTransfer))return;e.preventDefault();let t=Up(e.dataTransfer.getData(Vp));if(!t){l?.(`malformed`);return}if(r&&t.datasetId!==r){l?.(`dataset`);return}s(t.channel)},h=new Set(a.map(e=>e.channel)),g=i.filter(e=>!h.has(e.index));return(0,O.jsxs)(`div`,{className:`qzk-zone-well${u?` over`:``}`,onDragOver:f,onDragLeave:p,onDrop:m,children:[(0,O.jsxs)(`div`,{className:`qzk-zone-well-hd`,children:[(0,O.jsx)(`span`,{className:`qzk-zone-well-title`,children:e}),t&&(0,O.jsx)(`span`,{className:`qzk-zone-well-hint`,children:t})]}),(0,O.jsxs)(`div`,{className:`qzk-zone-well-body`,children:[a.length===0&&!n&&(0,O.jsx)(`span`,{className:`qzk-zone-well-empty`,children:`drop a channel`}),a.map(e=>(0,O.jsxs)(`span`,{className:`qzk-zone-chip`,children:[e.label,(0,O.jsx)(`button`,{className:`qzk-zone-chip-x`,title:`Remove ${e.label}`,"aria-label":`Remove ${e.label}`,onClick:()=>c(e.channel),children:`×`})]},e.channel)),n&&(0,O.jsx)(`div`,{className:`qzk-zone-well-note`,children:n})]}),(o||a.length===0)&&g.length>0&&(0,O.jsx)(K,{className:`qzk-zone-well-add`,"aria-label":`Assign a channel to ${e}`,value:``,onChange:e=>{e.target.value!==``&&s(Number(e.target.value))},options:[{value:``,label:o?`+ add channel…`:`+ assign channel…`},...g.map(e=>({value:String(e.index),label:e.label}))]})]})}var tm=0,nm=(e,t)=>t<0?e.time:e.values.map(e=>e[t]);function rm(){let e=pd(),t=Z(e=>e.addDataset),n=Z(e=>e.addReport),r=Z(e=>e.setStatus),[i,a]=(0,y.useState)(!1),o=(0,y.useMemo)(()=>$a(e),[e]),s=(0,y.useMemo)(()=>e?[{index:-1,label:String(e.data.metadata?.x_column_name??`x`)},...e.data.labels.map((e,t)=>({index:t,label:e}))]:[],[e]),[c,l]=(0,y.useState)(()=>im(e)??0),[u,d]=(0,y.useState)(()=>am(e,im(e)??0)),f=(0,y.useMemo)(()=>o?Bp(nm(o,c),nm(o,u)):[],[o,c,u]),p=e=>s.find(t=>t.index===e)?.label??(e<0?`x`:`col ${e}`),m=p(c),h=p(u),g=!!e&&c>=0&&ga(ha(e,c));function _(t){return e?.pending?(Z.getState().ensureBookData(e.id),r(`still loading full data — try ${t} again in a moment`),!0):!1}function v(){if(!f.length||_(`Export`))return;let e={time:f.map(e=>e.group),values:f.map(e=>[e.count,e.mean,e.sd,e.min,e.max,e.median]),labels:Rp.map(e=>`${h} ${e}`),units:Rp.map(()=>``),metadata:{x_column_name:m,source:`tabulate`}};t({id:`tab-${++tm}`,name:`${h} by ${m}`,data:e}),r(`tabulated ${h} by ${m} (${f.length} groups)`)}function b(){return[[m,...Rp].join(` `),...f.map(e=>[e.group,e.count,e.mean,e.sd,e.min,e.max,e.median].join(` `))].join(`
14
+ `)}function x(){l(im(e)??0)}function S(){d(am(e,c))}async function C(){if(!(!f.length||!e)&&!_(`report`)){a(!0);try{let t=f.map(e=>({group:e.group,count:e.count,mean:e.mean,sd:e.sd,min:e.min,max:e.max,median:e.median})),i=`${h} by ${m} — ${e.name}`,{report:a}=await wr({kind:`stats_table`,records:t,title:i,source_refs:[{kind:`dataset`,id:e.id,name:e.name}]});n(i,a,e.id),r(`emitted ${h} by ${m} report (${f.length} groups)`)}catch(e){X(e instanceof Error?e.message:`report failed`,`danger`)}finally{a(!1)}}}return{hasData:!!e,datasetId:e?.id??null,columns:s,groupCol:c,valueCol:u,setGroupCol:l,setValueCol:d,removeGroupCol:x,removeValueCol:S,rows:f,groupLabel:m,valueLabel:h,groupIsCategorical:g,exportDataset:v,toTSV:b,reportBusy:i,toReport:C}}function im(e){if(!e)return null;for(let t=0;t<e.data.labels.length;t++)if(ga(ha(e,t)))return t;return null}function am(e,t){if(!e)return 0;let n=e.data.labels.length;for(let r=0;r<n;r++)if(r!==t&&!ga(ha(e,r)))return r;for(let e=0;e<n;e++)if(e!==t)return e;return 0}var om=()=>X(`dropped a chip from a different dataset`,`info`);function sm(){let e=Z(e=>e.setTabulateOpen),t=Z(e=>e.setStatus),n=rm();async function r(){let e=await Ip(n.toTSV());t(e?`copied ${n.rows.length} groups to clipboard`:`clipboard unavailable`)}return(0,O.jsx)(jd,{title:`Tabulate`,width:440,onClose:()=>e(!1),children:n.hasData?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`div`,{className:`qzk-zone-wells`,children:[(0,O.jsx)(em,{title:`Group by`,hint:`categorical column`,datasetId:n.datasetId,options:n.columns,assigned:[{channel:n.groupCol,label:n.groupLabel}],multiple:!0,onAssign:e=>n.setGroupCol(e),onRemove:()=>n.removeGroupCol(),onReject:om}),(0,O.jsx)(em,{title:`Value`,hint:`column to summarize`,datasetId:n.datasetId,options:n.columns,assigned:[{channel:n.valueCol,label:n.valueLabel}],multiple:!0,onAssign:e=>n.setValueCol(e),onRemove:()=>n.removeValueCol(),onReject:om})]}),!n.groupIsCategorical&&n.rows.length>30&&(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:8,color:`var(--warn, var(--text-faint))`},children:[n.rows.length,` groups — “`,n.groupLabel,`” looks continuous. Pick a categorical column to group by.`]}),n.rows.length===0?(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--text-faint)`},children:`No finite rows to summarize.`}):(0,O.jsxs)(`table`,{className:`qzk-tabulate-table`,style:{width:`100%`,marginTop:12,fontSize:11},children:[(0,O.jsx)(`thead`,{style:{color:`var(--text-faint)`,textAlign:`right`},children:(0,O.jsxs)(`tr`,{children:[(0,O.jsx)(`th`,{style:{textAlign:`left`},children:n.groupLabel}),Rp.map(e=>(0,O.jsx)(`th`,{children:e},e))]})}),(0,O.jsx)(`tbody`,{style:{fontVariantNumeric:`tabular-nums`},children:n.rows.map(e=>(0,O.jsxs)(`tr`,{style:{textAlign:`right`},children:[(0,O.jsx)(`td`,{style:{textAlign:`left`,color:`var(--text)`},children:Y(e.group)}),(0,O.jsx)(`td`,{children:e.count}),(0,O.jsx)(`td`,{children:Y(e.mean)}),(0,O.jsx)(`td`,{children:Y(e.sd)}),(0,O.jsx)(`td`,{children:Y(e.min)}),(0,O.jsx)(`td`,{children:Y(e.max)}),(0,O.jsx)(`td`,{children:Y(e.median)})]},e.group))})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:12},children:[(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:!n.rows.length,onClick:n.exportDataset,style:{flex:1},children:`Export → dataset`}),(0,O.jsx)(G,{size:`sm`,disabled:!n.rows.length,onClick:()=>void r(),style:{flex:1},children:`Copy TSV`}),(0,O.jsx)(G,{size:`sm`,disabled:!n.rows.length||n.reportBusy,onClick:()=>void n.toReport(),style:{flex:1},children:n.reportBusy?`Reporting…`:`→ Report`})]})]}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`Select a dataset to summarize.`})})}var cm=[`normal`,`lognormal`,`weibull`,`gamma`,`exponential`],lm=2*Math.PI,um=7,dm=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7];function fm(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*fm(1-e));let t=e-1,n=dm[0];for(let e=1;e<9;e++)n+=dm[e]/(t+e);let r=t+um+.5;return Math.sqrt(lm)*r**+(t+.5)*Math.exp(-r)*n}function pm(e,t,n){switch(e){case`normal`:{let{mu:e,sigma:r}=t;if(!(r>0))return NaN;let i=(n-e)/r;return Math.exp(-.5*i*i)/(r*Math.sqrt(lm))}case`lognormal`:{if(n<=0)return 0;let{mu:e,sigma:r}=t;if(!(r>0))return NaN;let i=(Math.log(n)-e)/r;return Math.exp(-.5*i*i)/(n*r*Math.sqrt(lm))}case`weibull`:{if(n<0)return 0;let{shape:e,scale:r}=t;if(!(e>0)||!(r>0))return NaN;let i=n/r;return e/r*i**(e-1)*Math.exp(-(i**+e))}case`gamma`:{if(n<=0)return 0;let{shape:e,scale:r}=t;return!(e>0)||!(r>0)?NaN:n**(e-1)*Math.exp(-n/r)/(r**+e*fm(e))}case`exponential`:{if(n<0)return 0;let{rate:e}=t;return e>0?e*Math.exp(-e*n):NaN}default:return NaN}}function mm(e,t,n,r,i=128){let a=[],o=[];if(!(r>n)||i<2)return{x:a,y:o};let s=(r-n)/(i-1);for(let r=0;r<i;r++){let i=n+r*s;a.push(i),o.push(pm(e,t,i))}return{x:a,y:o}}function hm(e,t,n,r,i){return!(t.hi>t.lo)||!(i>0)||e.x.length===0?``:e.x.map((a,o)=>{let s=(a-t.lo)/(t.hi-t.lo)*100,c=e.y[o]*r*n,l=Math.min(100,Math.max(0,c/i*100));return`${s.toFixed(3)},${(100-l).toFixed(3)}`}).join(` `)}function gm(e,t,n=t){let r=Math.min(t,n),i=Math.max(t,n)+1;return{lo:e[r],hi:e[i],inclusiveHi:i===e.length-1}}function _m(e,t){let n=[];for(let r=0;r<e.length;r++){let i=e[r];Number.isFinite(i)&&(i<t.lo||(t.inclusiveHi?i>t.hi:i>=t.hi)||n.push(r))}return n}function vm(e,t,n,r=n){return _m(t,gm(e,n,r))}function ym(e,t,n){return!(n>t)||!Number.isFinite(e)?0:Math.min(100,Math.max(0,(e-t)/(n-t)*100))}function bm({min:e,q1:t,median:n,q3:r,max:i}){if(![e,t,n,r,i].every(Number.isFinite))return null;let a=t=>ym(t,e,i),o=a(t),s=Math.max(a(r)-a(t),.5);return(0,O.jsxs)(`div`,{"aria-label":`box-quantile strip`,style:{position:`relative`,height:18,marginTop:10},children:[(0,O.jsx)(`div`,{title:`range ${Y(e)} – ${Y(i)}`,style:{position:`absolute`,top:9,left:`${a(e)}%`,width:`${Math.max(a(i)-a(e),.5)}%`,height:1,background:`var(--border)`}}),(0,O.jsx)(`div`,{title:`Q1 ${Y(t)} – Q3 ${Y(r)} (IQR)`,style:{position:`absolute`,top:2,left:`${o}%`,width:`${s}%`,height:14,background:`var(--accent-soft, var(--surface-3))`,border:`1px solid var(--accent)`,boxSizing:`border-box`}}),(0,O.jsx)(`div`,{title:`median ${Y(n)}`,style:{position:`absolute`,top:0,left:`${a(n)}%`,width:2,height:18,background:`var(--accent)`}}),(0,O.jsx)(`div`,{title:`min ${Y(e)}`,style:{position:`absolute`,top:4,left:`${a(e)}%`,width:1,height:10,background:`var(--text-faint)`}}),(0,O.jsx)(`div`,{title:`max ${Y(i)}`,style:{position:`absolute`,top:4,left:`${a(i)}%`,width:1,height:10,background:`var(--text-faint)`}})]})}function xm({hist:e,fitCurve:t,brushedBins:n,onBrush:r}){let[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(null);(0,y.useEffect)(()=>{if(i==null)return;let e=e=>{r(i,o??i,e.shiftKey),a(null),s(null)};return window.addEventListener(`mouseup`,e),()=>window.removeEventListener(`mouseup`,e)},[i,o,r]);let c=Math.max(1,...e.counts),l={lo:e.edges[0],hi:e.edges[e.edges.length-1]},u=e.counts.reduce((e,t)=>e+t,0),d=e.counts.length>0?(l.hi-l.lo)/e.counts.length:0,f=t?hm(t,l,d,u,c):``;return(0,O.jsxs)(`div`,{style:{position:`relative`,marginTop:12},children:[(0,O.jsx)(`div`,{className:`qzk-hist`,"aria-label":`histogram`,style:{display:`flex`,alignItems:`flex-end`,gap:1,height:96,padding:`0 2px`,borderBottom:`1px solid var(--border)`},children:e.counts.map((t,r)=>{let o=n!=null&&r>=n[0]&&r<=n[1];return(0,O.jsx)(`div`,{className:`qzk-hist-bar`,title:`[${Y(e.edges[r])}, ${Y(e.edges[r+1])}): ${t}${o?` · selected`:``}`,onMouseDown:()=>a(r),onMouseEnter:()=>{i!=null&&s(r)},style:{flex:1,height:`${t/c*100}%`,minHeight:+(t>0),background:o?`var(--accent)`:`var(--series-1, var(--accent))`,cursor:`pointer`}},r)})}),f&&(0,O.jsx)(`svg`,{"aria-label":`distribution fit overlay`,viewBox:`0 0 100 100`,preserveAspectRatio:`none`,style:{position:`absolute`,inset:0,height:96,width:`100%`,pointerEvents:`none`},children:(0,O.jsx)(`polyline`,{points:f,fill:`none`,stroke:`var(--series-2, var(--danger))`,strokeWidth:1.5,vectorEffect:`non-scaling-stroke`})})]})}var Sm=(e,t)=>t<0?e.time:e.values.map(e=>e[t]),Cm=e=>Array.isArray(e)?e.map(e=>Number(e)):[];function wm(){let e=pd(),t=(0,y.useMemo)(()=>$a(e),[e]),n=Z(e=>e.setRowSelection),r=Z(e=>e.clearRowSelection),i=(0,y.useMemo)(()=>e?[{index:-1,label:String(e.data.metadata?.x_column_name??`x`)},...e.data.labels.map((e,t)=>({index:t,label:e}))]:[],[e]),[a,o]=(0,y.useState)(()=>e&&e.data.labels.length?0:-1),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(`none`),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(null),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)(null),M=(0,y.useMemo)(()=>t?Sm(t,a).filter(e=>Number.isFinite(e)):[],[t,a]);(0,y.useEffect)(()=>{if(!t){f(null),m(null),g(null);return}let e=!1;return c(!0),u(null),v(null),Promise.allSettled([Et(M),Tt(M),Dt(M)]).then(([t,n,r])=>{e||(c(!1),t.status===`fulfilled`?(f({counts:Cm(t.value.counts),centers:Cm(t.value.centers),edges:Cm(t.value.edges)}),u(null)):(f(null),u(`too few finite values to bin`)),m(n.status===`fulfilled`?n.value:null),r.status===`fulfilled`&&Number.isFinite(Number(r.value.p))?g({W:Number(r.value.W),p:Number(r.value.p),N:Number(r.value.N)}):(g(null),v(M.length<3?`need ≥ 3 values`:M.length>5e3?`n > 5000 (Shapiro limit)`:`normality test unavailable`)))}),()=>{e=!0}},[t,M]),(0,y.useEffect)(()=>{k(null),j(null)},[e?.id,a]),(0,y.useEffect)(()=>{if(b===`none`||!t){D(null),T(null),C(!1);return}let e=!1;return C(!0),T(null),Ot(M).then(t=>{e||D(t)}).catch(t=>{e||(D(null),T(t instanceof Error?t.message:`distribution fit failed`))}).finally(()=>{e||C(!1)}),()=>{e=!0}},[b,M,t]);let N=(0,y.useMemo)(()=>E&&b!==`none`?E.fits.find(e=>e.dist===b)??null:null,[E,b]),P=E&&E.fits.length?E.fits[0]:null,F=(0,y.useMemo)(()=>E&&b!==`none`?E.skipped.find(e=>e.dist===b)?.reason??null:null,[E,b]),I=(0,y.useMemo)(()=>!N||!d||b===`none`||d.edges.length<2?null:mm(b,N.params,d.edges[0],d.edges[d.edges.length-1]),[N,d,b]);function L(i,o,s){if(!e||!d||!t)return;let c=s&&A!=null,l=c?Math.min(A,i,o):Math.min(i,o),u=c?Math.max(A,i,o):Math.max(i,o);if(O&&O[0]===l&&O[1]===u){r(),k(null),j(null);return}let f=Sm(t,a),p=vm(d.edges,f,l,u),m=Ya(e.data.time.length,Za(e));n(p.map(e=>m[e])),k([l,u]),c||j(i)}let R=i.find(e=>e.index===a)?.label??`x`;return{hasData:!!e,columns:i,col:a,setCol:o,label:R,busy:s,error:l,hist:d,desc:p,norm:h,normNote:_,fitDist:b,setFitDist:x,fitBusy:S,fitError:w,fits:E,currentFit:N,bestFit:P,skippedReason:F,fitCurve:I,brushedBins:O,brushBins:L}}var Tm=[{key:`N`,label:`N`},{key:`mean`,label:`mean`},{key:`median`,label:`median`},{key:`std`,label:`std`},{key:`min`,label:`min`},{key:`max`,label:`max`}],Em=[{value:`none`,label:`None`},...cm.map(e=>({value:e,label:e}))];function Dm(){let e=Z(e=>e.setDistributionOpen),t=wm(),n=t.columns.map(e=>({value:String(e.index),label:e.label})),r=t.norm?t.norm.p>=.05:null;return(0,O.jsx)(jd,{title:`Distribution`,width:380,onClose:()=>e(!1),children:t.hasData?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Column`}),(0,O.jsx)(K,{options:n,value:String(t.col),onChange:e=>t.setCol(Number(e.target.value))}),t.error?(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--text-faint)`},children:t.error}):(0,O.jsxs)(O.Fragment,{children:[t.hist&&(0,O.jsx)(xm,{hist:t.hist,fitCurve:t.fitCurve,brushedBins:t.brushedBins,onBrush:t.brushBins}),t.desc&&(0,O.jsx)(bm,{min:Number(t.desc.min),q1:Number(t.desc.q1),median:Number(t.desc.median),q3:Number(t.desc.q3),max:Number(t.desc.max)}),(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,display:`grid`,gridTemplateColumns:`auto auto auto auto`,gap:`4px 12px`,fontVariantNumeric:`tabular-nums`},children:Tm.map(e=>(0,O.jsxs)(`span`,{children:[(0,O.jsxs)(`span`,{style:{color:`var(--text-faint)`},children:[e.label,` `]}),Y(t.desc?.[e.key])]},e.key))}),(0,O.jsx)(`div`,{style:{marginTop:12,display:`flex`,alignItems:`center`,gap:8},children:t.norm?(0,O.jsx)(Te,{tone:r?`ok`:`warn`,label:(0,O.jsxs)(`span`,{children:[r?`Consistent with normal`:`Not normal`,` · Shapiro–Wilk W=`,Y(t.norm.W),`, p=`,Y(t.norm.p)]})}):(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:[`Normality: `,t.normNote??`—`]})}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:12},children:`Distribution fit`}),(0,O.jsx)(K,{options:Em,value:t.fitDist,onChange:e=>t.setFitDist(e.target.value)}),t.fitDist!==`none`&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:6},children:t.fitBusy?`fitting…`:t.fitError?t.fitError:t.skippedReason?t.skippedReason:t.currentFit?(0,O.jsxs)(O.Fragment,{children:[t.currentFit.dist,`: AIC `,Y(t.currentFit.aic),`, KS p=`,Y(t.currentFit.ks_p),t.bestFit&&t.bestFit.dist!==t.currentFit.dist&&(0,O.jsxs)(O.Fragment,{children:[` · AIC-best: `,t.bestFit.dist,` (p=`,Y(t.bestFit.ks_p),`)`]})]}):`—`})]})]}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`Select a dataset to profile.`})})}var Om=[{format:`html`,label:`HTML`},{format:`latex`,label:`LaTeX`},{format:`docx`,label:`Word`},{format:`pptx`,label:`PPT`}];function km(e){return`${e.value===null?`—`:Y(e.value)}${e.error===void 0?``:` ± ${Y(e.error)}`}${e.unit?` ${e.unit}`:``}`}function Am({block:e}){switch(e.type){case`text`:return(0,O.jsx)(`p`,{className:`qzk-report-text`,children:e.text});case`params`:return(0,O.jsxs)(`div`,{className:`qzk-report-tablewrap`,children:[(0,O.jsx)(`table`,{className:`qz-table`,children:(0,O.jsx)(`tbody`,{children:e.params.map((e,t)=>(0,O.jsxs)(`tr`,{children:[(0,O.jsx)(`td`,{children:e.name}),(0,O.jsx)(`td`,{style:{fontVariantNumeric:`tabular-nums`},children:km(e)})]},t))})}),e.caption&&(0,O.jsx)(`div`,{className:`qzk-report-caption`,children:e.caption})]});case`table`:return(0,O.jsxs)(`div`,{className:`qzk-report-tablewrap`,style:{overflowX:`auto`},children:[(0,O.jsxs)(`table`,{className:`qz-table`,children:[(0,O.jsx)(`thead`,{children:(0,O.jsx)(`tr`,{children:e.columns.map((e,t)=>(0,O.jsx)(`th`,{children:e},t))})}),(0,O.jsx)(`tbody`,{children:e.rows.map((e,t)=>(0,O.jsx)(`tr`,{children:e.map((e,t)=>(0,O.jsx)(`td`,{style:{fontVariantNumeric:`tabular-nums`},children:e===null?`—`:typeof e==`number`?Y(e):e},t))},t))})]}),e.caption&&(0,O.jsx)(`div`,{className:`qzk-report-caption`,children:e.caption})]});case`figure`:return e.image?(0,O.jsxs)(`figure`,{style:{margin:0},children:[(0,O.jsx)(`img`,{src:`data:${e.image.mime};base64,${e.image.data}`,alt:e.caption??e.name,style:{maxWidth:`100%`}}),e.caption&&(0,O.jsx)(`figcaption`,{className:`qzk-report-caption`,children:e.caption})]}):(0,O.jsxs)(`p`,{className:`qzk-report-text`,style:{color:`var(--text-faint)`},children:[`▦ figure: `,e.caption??e.name]})}}function jm({sheet:e}){let[t,n]=(0,y.useState)(new Set),r=e=>n(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return(0,O.jsx)(O.Fragment,{children:e.sections.map((e,n)=>(0,O.jsxs)(`div`,{className:`qzk-report-section`,children:[(0,O.jsxs)(`button`,{className:`qzk-group-head`,onClick:()=>r(n),children:[(0,O.jsx)(`span`,{className:`qzk-group-caret`,children:t.has(n)?`▸`:`▾`}),(0,O.jsx)(`span`,{className:`qzk-group-name`,children:e.title})]}),!t.has(n)&&e.blocks.map((e,t)=>(0,O.jsx)(Am,{block:e},t))]},n))})}function Mm(){let e=Z(e=>e.openReportId),t=Z(e=>e.reports),n=Z(e=>e.setOpenReport),r=Z(e=>e.removeReport),[i,a]=(0,y.useState)(!1),o=t.find(t=>t.id===e);if(!o)return null;let s=async e=>{a(!0);try{await Tr(o.report,e,o.name)}catch(e){X(e instanceof Error?e.message:`report export failed`,`danger`)}finally{a(!1)}};return(0,O.jsxs)(jd,{title:o.name,width:460,onClose:()=>n(null),children:[o.report.created&&(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:[o.report.created,o.report.source_refs?.length?` · from ${o.report.source_refs.map(e=>e.name??e.id).join(`, `)}`:``]}),(0,O.jsx)(jm,{sheet:o.report}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,marginTop:12,alignItems:`center`},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`Export`}),Om.map(e=>(0,O.jsx)(G,{disabled:i,onClick:()=>void s(e.format),children:e.label},e.format)),(0,O.jsx)(`span`,{style:{flex:1}}),(0,O.jsx)(G,{onClick:()=>{r(o.id),X(`removed report "${o.name}"`)},children:`Delete`})]})]})}var Nm=(e,t)=>t<0?e.time:e.values.map(e=>e[t]),Pm=e=>e.filter(e=>Number.isFinite(e));function Fm(e,t){let n=String(e.metadata?.x_column_name??`x`);return t.map(t=>({label:t<0?n:e.labels[t]??`col ${t}`,values:Pm(Nm(e,t))}))}function Im(e,t,n){let r=Nm(e,n),i=Nm(e,t),a=n<0?`x`:e.labels[n]??`col ${n}`,o=new Map,s=Math.min(r.length,i.length);for(let e=0;e<s;e++){if(!Number.isFinite(r[e])||!Number.isFinite(i[e]))continue;let t=o.get(r[e]);t?t.push(i[e]):o.set(r[e],[i[e]])}return[...o.entries()].sort((e,t)=>e[0]-t[0]).map(([e,t])=>({label:`${a} = ${e}`,values:t}))}function Lm(e,t,n){let[r,i]=t;switch(e){case`/api/stats/ttest`:return t.length===1?{path:e,body:{x:r,mu:0}}:{path:e,body:{x:r,y:i,paired:n}};case`/api/stats/wilcoxon`:return t.length===1?{path:e,body:{x:r,mu:0}}:{path:e,body:{x:r,y:i}};case`/api/stats/mann-whitney`:return{path:e,body:{x:r,y:i}};case`/api/stats/anova`:return{path:e,body:{groups:t}};case`/api/stats/kruskal`:return{path:e,body:{groups:t}};default:return null}}function Rm(e){let t=[];for(let[n,r]of Object.entries(e))typeof r==`number`?t.push([n,r]):typeof r==`boolean`?t.push([n,String(r)]):typeof r==`string`&&r.length<=80&&t.push([n,r]);return t}function zm(e,t){return{test:e,...Object.fromEntries(Rm(t))}}function Bm(){let e=pd(),t=Z(e=>e.addReport),n=(0,y.useMemo)(()=>$a(e),[e]),r=(0,y.useMemo)(()=>e?[{index:-1,label:String(e.data.metadata?.x_column_name??`x`)},...e.data.labels.map((e,t)=>({index:t,label:e}))]:[],[e]),[i,a]=(0,y.useState)(`columns`),[o,s]=(0,y.useState)(()=>e&&e.data.labels.length?[0]:[]),[c,l]=(0,y.useState)(()=>Vm(e)??0),[u,d]=(0,y.useState)(()=>Hm(e,Vm(e)??0)),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(!1),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(null),[x,S]=(0,y.useState)(null),C=(0,y.useMemo)(()=>n?i===`columns`?Fm(n,o):Im(n,u,c):[],[n,i,o,u,c]),w=C.length===2&&C[0].values.length===C[1].values.length,T=!!e&&c>=0&&ga(ha(e,c)),E=e=>s(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),D=()=>{b(null),S(null),_(null)};async function O(){if(C.length!==0){if(e?.pending){Z.getState().ensureBookData(e.id),_(`still loading full data — try again in a moment`);return}h(!0),_(null),S(null);try{let e=await Er({groups:C.map(e=>e.values),paired:f&&w});b(e)}catch(e){b(null),_(e instanceof Error?e.message:`recommendation failed`)}finally{h(!1)}}}async function k(){if(!v)return;let e=Lm(v.endpoint,C.map(e=>e.values),v.paired);if(!e){_(`don't know how to run ${v.endpoint}`);return}h(!0),_(null);try{S(await Or(e.path,e.body))}catch(e){S(null),_(e instanceof Error?e.message:`test failed`)}finally{h(!1)}}async function A(){if(!(!v||!x||!e)){h(!0);try{let{report:n}=await wr({kind:`stats_table`,records:[zm(v.recommendation,x)],title:`${v.recommendation} — ${e.name}`,caption:v.reasons.join(`; `),source_refs:[{kind:`dataset`,id:e.id,name:e.name}]});t(`${v.recommendation} — ${e.name}`,n,e.id)}catch(e){X(e instanceof Error?e.message:`report failed`,`danger`)}finally{h(!1)}}}return{active:e,columns:r,mode:i,setMode:e=>{a(e),D()},cols:o,toggleCol:e=>{E(e),D()},valueCol:u,byCol:c,setValueCol:e=>{d(e),D()},setByCol:e=>{l(e),D()},byIsCategorical:T,groups:C,paired:f,setPaired:e=>{p(e),D()},pairable:w,busy:m,error:g,rec:v,testResult:x,recommend:O,runRecommended:k,toReport:A}}function Vm(e){if(!e)return null;for(let t=0;t<e.data.labels.length;t++)if(ga(ha(e,t)))return t;return null}function Hm(e,t){if(!e)return 0;let n=e.data.labels.length;for(let r=0;r<n;r++)if(r!==t&&!ga(ha(e,r)))return r;for(let e=0;e<n;e++)if(e!==t)return e;return 0}function Um(){let e=Z(e=>e.setStatsChooserOpen),t=Bm(),n=t.columns.map(e=>({value:String(e.index),label:e.label})),r={color:`var(--text-faint)`};return(0,O.jsx)(jd,{title:`Test chooser`,width:400,onClose:()=>e(!1),children:t.active?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(Ee,{options:[{value:`columns`,label:`Columns as groups`},{value:`groupby`,label:`Value by category`}],value:t.mode,onChange:t.setMode}),t.mode===`columns`?(0,O.jsx)(`div`,{style:{marginTop:8,display:`flex`,flexDirection:`column`,gap:2},children:t.columns.map(e=>(0,O.jsx)(De,{checked:t.cols.includes(e.index),onChange:()=>t.toggleCol(e.index),children:e.label},e.index))}):(0,O.jsxs)(`div`,{style:{marginTop:8},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Value`}),(0,O.jsx)(K,{options:n,value:String(t.valueCol),onChange:e=>t.setValueCol(Number(e.target.value))}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:6},children:`Group by`}),(0,O.jsx)(K,{options:n,value:String(t.byCol),onChange:e=>t.setByCol(Number(e.target.value))}),!t.byIsCategorical&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{...r,marginTop:4},children:`⚠ group column looks continuous — every distinct value becomes a group`})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:10,alignItems:`center`,marginTop:8},children:[(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,style:r,children:[t.groups.length,` group`,t.groups.length===1?``:`s`,` ·`,` `,t.groups.map(e=>e.values.length).join(` / `)||`—`,` pts`]}),(0,O.jsx)(`span`,{style:{flex:1}}),(0,O.jsx)(De,{checked:t.paired&&t.pairable,disabled:!t.pairable,onChange:e=>t.setPaired(e),children:`paired`})]}),(0,O.jsx)(`div`,{style:{marginTop:8},children:(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:t.busy||t.groups.length===0,onClick:()=>void t.recommend(),children:t.busy?`Checking…`:`Which test?`})}),t.error&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:8,color:`var(--danger)`},children:t.error}),t.rec&&(0,O.jsxs)(`div`,{style:{marginTop:10},children:[(0,O.jsx)(Te,{tone:t.rec.parametric?`ok`:`warn`,label:(0,O.jsxs)(`span`,{children:[(0,O.jsx)(`strong`,{children:t.rec.recommendation}),` ·`,` `,t.rec.parametric?`parametric`:`nonparametric`]})}),(0,O.jsx)(`ul`,{className:`qzk-reason-list`,children:t.rec.reasons.map((e,t)=>(0,O.jsx)(`li`,{children:e},t))}),(0,O.jsxs)(G,{size:`sm`,disabled:t.busy,onClick:()=>void t.runRecommended(),children:[`Run `,t.rec.recommendation]})]}),t.testResult&&(0,O.jsxs)(`div`,{style:{marginTop:10},children:[(0,O.jsx)(je,{columns:[`stat`,`value`],rows:Rm(t.testResult).map(([e,t])=>[e,typeof t==`number`?Y(t):t])}),(0,O.jsx)(`div`,{style:{marginTop:8},children:(0,O.jsx)(G,{size:`sm`,disabled:t.busy,onClick:()=>void t.toReport(),children:`→ Report`})})]})]}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:r,children:`Select a dataset to analyze.`})})}var Wm={color:`var(--text-faint)`};function Gm({label:e,value:t,onValue:n,placeholder:r,width:i=84}){let[a,o]=(0,y.useState)(t===null||Number.isNaN(t)?``:String(t)),s=(0,O.jsx)(q,{value:a,placeholder:r,width:i,onChange:e=>{if(o(e),e.trim()===``)n(null);else{let t=Number(e);Number.isFinite(t)&&n(t)}}});return e?(0,O.jsxs)(`span`,{style:{display:`inline-flex`,flexDirection:`column`,gap:2},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:e}),s]}):s}function Km({w:e}){let t=e.recipe.baseline;return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`X range (blank = full)`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6},children:[(0,O.jsx)(Gm,{value:e.recipe.range.lo,placeholder:`from`,onValue:t=>e.patchRecipe({range:{lo:t}})}),(0,O.jsx)(Gm,{value:e.recipe.range.hi,placeholder:`to`,onValue:t=>e.patchRecipe({range:{hi:t}})})]}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:8},children:`Baseline`}),(0,O.jsx)(K,{options:[{value:`none`,label:`None`},{value:`als`,label:`ALS (asymmetric least squares)`},{value:`rollingball`,label:`Rolling ball`},{value:`modpoly`,label:`Modified polynomial`}],value:t.method,onChange:t=>e.patchRecipe({baseline:{method:t.target.value}})}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,marginTop:6},children:[t.method===`als`&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(Gm,{label:`λ`,value:t.lam,onValue:t=>t!==null&&e.patchRecipe({baseline:{lam:t}})}),(0,O.jsx)(Gm,{label:`p`,value:t.p,onValue:t=>t!==null&&e.patchRecipe({baseline:{p:t}})})]}),t.method===`rollingball`&&(0,O.jsx)(Gm,{label:`radius (pts)`,value:t.radius,onValue:t=>t!==null&&e.patchRecipe({baseline:{radius:t}})}),t.method===`modpoly`&&(0,O.jsx)(Gm,{label:`order`,value:t.order,onValue:t=>t!==null&&e.patchRecipe({baseline:{order:Math.round(t)}})})]}),e.baselineBusy&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,children:`estimating baseline…`}),e.baselineError&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`},children:e.baselineError}),t.method!==`none`&&!e.baselineBusy&&!e.baselineError&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{...Wm,marginTop:6},children:`Baseline previewed on the plot; later steps fit the subtracted signal.`})]})}function qm({w:e}){let[t,n]=(0,y.useState)(null);return(0,O.jsxs)(O.Fragment,{children:[e.markerEditActive&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{...Wm,marginBottom:6},children:`Click the plot to add a peak · click a marker to remove it (Esc to pause)`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`flex-end`},children:[(0,O.jsx)(Gm,{label:`SNR ≥`,value:e.recipe.find.snr_threshold,onValue:t=>t!==null&&e.patchRecipe({find:{snr_threshold:t}})}),(0,O.jsx)(Gm,{label:`max peaks`,value:e.recipe.find.max_peaks,onValue:t=>t!==null&&e.patchRecipe({find:{max_peaks:Math.max(1,Math.round(t))}})}),(0,O.jsx)(G,{size:`sm`,variant:`primary`,disabled:e.findBusy,onClick:()=>void e.runFind(),children:e.findBusy?`Finding…`:`Find peaks`})]}),e.findError&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`,marginTop:6},children:e.findError}),e.candidates.length>0&&(0,O.jsx)(`div`,{style:{marginTop:8,maxHeight:180,overflowY:`auto`},children:(0,O.jsxs)(`table`,{className:`qz-table`,children:[(0,O.jsx)(`thead`,{children:(0,O.jsxs)(`tr`,{children:[(0,O.jsx)(`th`,{}),(0,O.jsx)(`th`,{children:`center`}),(0,O.jsx)(`th`,{children:`height`}),(0,O.jsx)(`th`,{children:`FWHM`}),(0,O.jsx)(`th`,{})]})}),(0,O.jsx)(`tbody`,{children:e.candidates.map((t,n)=>(0,O.jsxs)(`tr`,{style:t.included?void 0:{opacity:.45},children:[(0,O.jsx)(`td`,{children:(0,O.jsx)(De,{checked:t.included,onChange:()=>e.togglePeak(n)})}),(0,O.jsx)(`td`,{children:Y(t.center)}),(0,O.jsx)(`td`,{children:Y(t.height)}),(0,O.jsx)(`td`,{children:Y(t.fwhm)}),(0,O.jsx)(`td`,{children:(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:t.manual?`remove manual peak`:`remove`,onClick:()=>e.removePeak(n),children:`×`})})]},n))})]})}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`flex-end`,marginTop:8},children:[(0,O.jsx)(Gm,{label:`add peak at x =`,value:t,onValue:n}),(0,O.jsx)(G,{size:`sm`,disabled:t===null,onClick:()=>{t!==null&&e.addPeakAt(t),n(null)},children:`+ Add`})]})]})}function Jm({w:e}){let t=e.recipe.model;return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Peak shape`}),(0,O.jsx)(K,{options:[`Lorentzian`,`Gaussian`,`Pseudo-Voigt`,`Split Pearson VII`,`TCH-pV`].map(e=>({value:e,label:e})),value:t.shape,onChange:t=>e.patchRecipe({model:{shape:t.target.value}})}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:6},children:`Width linking`}),(0,O.jsx)(K,{options:[`None`,`Shared FWHM`,`Shared FWHM + eta`].map(e=>({value:e,label:e})),value:t.linkMode,onChange:t=>e.patchRecipe({model:{linkMode:t.target.value}})}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:10,alignItems:`flex-end`,marginTop:6},children:[(0,O.jsx)(Gm,{label:`background degree`,value:t.bgDegree,onValue:t=>t!==null&&e.patchRecipe({model:{bgDegree:Math.max(0,Math.round(t))}})}),(0,O.jsx)(De,{checked:t.constrain,onChange:t=>e.patchRecipe({model:{constrain:t}}),children:`constrain to window`})]}),(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{...Wm,marginTop:8},children:[e.candidates.filter(e=>e.included).length,` peak(s) will be fit simultaneously with a shared polynomial background.`]})]})}function Ym({w:e}){let t=e.fitResult;return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(G,{size:`sm`,variant:`primary`,disabled:e.fitBusy,onClick:()=>void e.runFit(),children:e.fitBusy?`Fitting…`:t?`Re-fit`:`Fit`}),e.fitError&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`,marginTop:6},children:e.fitError}),t&&(0,O.jsxs)(`div`,{style:{marginTop:8},children:[(0,O.jsx)(Te,{tone:t.R2!==null&&t.R2>.9?`ok`:`warn`,label:(0,O.jsxs)(`span`,{children:[t.model,` · R² = `,Y(t.R2),` · RMSE = `,Y(t.rmse)]})}),(0,O.jsx)(`div`,{style:{marginTop:6,maxHeight:200,overflowY:`auto`},children:(0,O.jsx)(je,{columns:[`#`,`center`,`FWHM`,`height`,`area`],rows:t.peaks.map((e,t)=>[t+1,Y(e.center),Y(e.fwhm),Y(e.height),Y(e.area)])})})]})]})}function Xm({w:e}){let[t,n]=(0,y.useState)(``),r=e.recipe.report.mode;return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Output`}),(0,O.jsx)(K,{options:[{value:`fit`,label:`Fit report (peak table + GOF)`},{value:`integrate`,label:`Integrate-only (areas / centroids / %)`}],value:r,onChange:t=>e.patchRecipe({report:{mode:t.target.value}})}),r===`integrate`&&(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`flex-end`,marginTop:6},children:[(0,O.jsx)(Gm,{label:`region width (×FWHM)`,value:e.recipe.report.regionWidth,onValue:t=>t!==null&&e.patchRecipe({report:{regionWidth:t}})}),(0,O.jsx)(G,{size:`sm`,disabled:e.fitBusy,onClick:()=>void e.runIntegrate(),children:`Integrate`})]}),e.fitError&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`,marginTop:6},children:e.fitError}),r===`integrate`&&e.integrateResult&&(0,O.jsx)(`div`,{style:{marginTop:8,maxHeight:180,overflowY:`auto`},children:(0,O.jsx)(je,{columns:[`region`,`area`,`%`,`centroid`,`FWHM`],rows:e.integrateResult.peaks.map(e=>[`${Y(e.region[0])}–${Y(e.region[1])}`,Y(e.area),Y(e.area_pct),Y(e.centroid),Y(e.fwhm)])})}),(0,O.jsx)(`div`,{style:{marginTop:10},children:(0,O.jsx)(G,{size:`sm`,variant:`primary`,disabled:e.reportBusy||(r===`fit`?!e.fitResult:!e.integrateResult),onClick:()=>void e.toReport(),children:e.reportBusy?`Reporting…`:`→ Report`})}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`flex-end`,marginTop:12},children:[(0,O.jsxs)(`span`,{style:{display:`inline-flex`,flexDirection:`column`,gap:2,flex:1},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Save as recipe`}),(0,O.jsx)(q,{numeric:!1,width:160,value:t,placeholder:`recipe name`,onChange:n})]}),(0,O.jsx)(G,{size:`sm`,disabled:!t.trim(),onClick:()=>e.saveRecipe(t.trim()),children:`Save`})]})]})}function Zm(e){let t=[];return e.forEach((e,n)=>{e.included&&t.push({index:n,center:e.center,height:e.height})}),t}function Qm(e,t){return Rl(e,t.map(({index:e,center:t,height:n})=>({index:e,x:t,y:n})))}function $m(e,t,n=8){return{hooks:{ready:r=>{let i=r.over,a=null;i.style.cursor=`crosshair`,i.addEventListener(`mousemove`,t=>{if(a)return;let o=i.getBoundingClientRect(),s={x:t.clientX-o.left,y:t.clientY-o.top},c=zl(Qm(r,e),s,n);i.style.cursor=c==null?`crosshair`:`pointer`}),i.addEventListener(`mousedown`,o=>{if(o.button!==0)return;let s=i.getBoundingClientRect();a={x:o.clientX-s.left,y:o.clientY-s.top};let c=i=>{document.removeEventListener(`mouseup`,c);let o={x:i.clientX-s.left,y:i.clientY-s.top},l=a?Math.hypot(o.x-a.x,o.y-a.y):1/0;if(a=null,l>=6)return;let u=zl(Qm(r,e),o,n);u==null?t.onAdd(r.posToVal(o.x,`x`)):t.onRemove(u)};document.addEventListener(`mouseup`,c)})}}}}var eh={version:1,name:``,range:{lo:null,hi:null},baseline:{method:`none`,lam:1e5,p:.01,radius:50,order:2},find:{snr_threshold:3,min_prominence:0,max_peaks:20},model:{shape:`Gaussian`,bgDegree:1,linkMode:`None`,constrain:!1},report:{mode:`fit`,regionWidth:3}};function th(e,t,n,r){let i=[];for(let a=0;a<Math.min(e.length,t.length);a++)n!==null&&e[a]<n||r!==null&&e[a]>r||i.push(a);return{x:i.map(t=>e[t]),y:i.map(e=>t[e]),kept:i}}function nh(e,t){return e.map((e,n)=>{let r=t[n];return r==null||!Number.isFinite(r)?e:e-r})}function rh(e,t,n){let r=Array(n).fill(null);return t.forEach((t,n)=>{r[t]=e[n]??null}),r}function ih(e,t,n,r){return e.map(e=>{let i=Math.max(e.fwhm,0)*t/2||(r-n)/50;return[Math.max(n,e.center-i),Math.min(r,e.center+i)]})}var ah=`qz.peakRecipes`;function oh(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.version===1&&typeof t.name==`string`&&typeof t.range==`object`&&t.range!==null&&typeof t.baseline==`object`&&t.baseline!==null&&typeof t.find==`object`&&t.find!==null&&typeof t.model==`object`&&t.model!==null&&typeof t.report==`object`&&t.report!==null}function sh(){try{let e=localStorage.getItem(ah);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(oh):[]}catch{return[]}}function ch(e){let t=sh().filter(t=>t.name!==e.name);t.push(e);try{localStorage.setItem(ah,JSON.stringify(t))}catch{}return t}var lh=[`Range & baseline`,`Find peaks`,`Model`,`Fit & review`,`Report`];function uh(){let e=pd(),t=Z(e=>e.addReport),n=Z(e=>e.setBaselineOverlay),r=Z(e=>e.setPeakOverlay),i=Z(e=>e.setPeakWizardEdit),[a,o]=(0,y.useState)(0),[s,c]=(0,y.useState)(eh),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)([]),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(!1),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(null),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)(!1),[M,N]=(0,y.useState)(()=>sh()),[P,F]=(0,y.useState)(0),[I,L]=(0,y.useState)(!1),R=(0,y.useCallback)(e=>{c(t=>({...t,...e.range?{range:{...t.range,...e.range}}:{},...e.baseline?{baseline:{...t.baseline,...e.baseline}}:{},...e.find?{find:{...t.find,...e.find}}:{},...e.model?{model:{...t.model,...e.model}}:{},...e.report?{report:{...t.report,...e.report}}:{}})),D(null),k(null)},[]),z=(0,y.useMemo)(()=>{let t=$a(e);if(!t||t.time.length===0)return null;let n=t.values.map(e=>e[0]);return th(t.time,n,s.range.lo,s.range.hi)},[e,s.range.lo,s.range.hi]);(0,y.useEffect)(()=>{if(u(null),m(null),!e||!z||z.x.length===0){n(null);return}if(s.baseline.method===`none`){n(null);return}let t=!1;f(!0);let r=e.id,i=s.baseline;return(async()=>{try{let e=await Z.getState().resolveDataset(r);if(t||!e)return;let a=await(i.method===`als`?vt({y:z.y,lam:i.lam,p:i.p}):i.method===`rollingball`?yt({y:z.y,radius:i.radius}):bt({y:z.y,order:i.order}));if(t)return;u(a.baseline),n({datasetId:e.id,y:rh(a.baseline,z.kept,e.data.time.length)})}catch(e){t||m(e instanceof Error?e.message:`baseline failed`)}finally{t||f(!1)}})(),()=>{t=!0}},[e,z,s.baseline,n]);let B=(0,y.useMemo)(()=>z?l&&s.baseline.method!==`none`?nh(z.y,l):z.y:null,[z,l,s.baseline.method]),V=(0,y.useCallback)(async()=>{if(!(!e||!z||!B)){v(!0),x(null);try{let e=(await hr({x:z.x,y:B,snr_threshold:s.find.snr_threshold,...s.find.min_prominence>0?{min_prominence:s.find.min_prominence}:{},max_peaks:s.find.max_peaks})).peaks.map(e=>({center:e.center,height:e.height,fwhm:e.fwhm,included:!0,manual:!1}));g(e),D(null),k(null)}catch(e){x(e instanceof Error?e.message:`peak find failed`)}finally{v(!1)}}},[e,z,B,s.find]);(0,y.useEffect)(()=>{if(!e||h.length===0)return;let t=h.filter(e=>e.included);r({datasetId:e.id,y:Na(e.data.time,t.map(e=>({center:e.center,height:e.height})))})},[e,h,r]);let H=e=>g(t=>t.map((t,n)=>n===e?{...t,included:!t.included}:t)),U=e=>g(t=>t.filter((t,n)=>n!==e)),ee=e=>{if(!z||!B||z.x.length===0)return;let t=0;for(let n=1;n<z.x.length;n++)Math.abs(z.x[n]-e)<Math.abs(z.x[t]-e)&&(t=n);let n=z.x[z.x.length-1]-z.x[0];g(r=>[...r,{center:e,height:B[t],fwhm:n/50||1,included:!0,manual:!0}])},W=a===1&&!!e&&!I;return(0,y.useEffect)(()=>{if(a!==1||!e)return;let t=e=>{e.key===`Escape`&&L(!0)};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[a,e]),(0,y.useEffect)(()=>{L(!1)},[a]),(0,y.useEffect)(()=>{i(W?{markers:Zm(h),addPeakAt:ee,removePeak:U}:null)},[W,h,ee,U,i]),(0,y.useEffect)(()=>()=>i(null),[i]),{active:e,step:a,setStep:o,next:()=>o(e=>Math.min(e+1,lh.length-1)),back:()=>o(e=>Math.max(e-1,0)),recipe:s,patchRecipe:R,baselineBusy:d,baselineError:p,candidates:h,findBusy:_,findError:b,runFind:V,togglePeak:H,removePeak:U,addPeakAt:ee,markerEditActive:W,fitBusy:S,fitError:w,fitResult:E,runFit:(0,y.useCallback)(async()=>{let e=h.filter(e=>e.included);if(!z||!B||e.length===0){T(`include at least one peak first`);return}C(!0),T(null);try{let t=await _r({x:z.x,y:B,peaks:e.map(e=>({center:e.center,fwhm:e.fwhm,height:e.height})),model:s.model.shape,bg_degree:s.model.bgDegree,constrain:s.model.constrain,link_mode:s.model.linkMode});D(t),k(null)}catch(e){T(e instanceof Error?e.message:`fit failed`)}finally{C(!1)}},[z,B,h,s.model]),integrateResult:O,runIntegrate:(0,y.useCallback)(async()=>{if(!z||!B)return;let e=E?.peaks?.length?E.peaks:h.filter(e=>e.included);if(e.length===0){T(`no peaks to integrate — find or fit peaks first`);return}C(!0),T(null);try{let t=ih(e.map(e=>({center:e.center,fwhm:e.fwhm})),s.report.regionWidth,z.x[0],z.x[z.x.length-1]),n=await kr({x:z.x,y:B,regions:t});k({peaks:n.peaks,total_area:n.total_area})}catch(e){T(e instanceof Error?e.message:`integration failed`)}finally{C(!1)}},[z,B,E,h,s.report.regionWidth]),reportBusy:A,toReport:(0,y.useCallback)(async()=>{if(e){j(!0);try{let n=[{kind:`dataset`,id:e.id,name:e.name}];if(s.report.mode===`integrate`&&O){let{report:r}=await wr({kind:`integrate`,result:O,title:`Peak integration — ${e.name}`,source_refs:n});t(`Peak integration — ${e.name}`,r,e.id)}else if(E){let{report:r}=await wr({kind:`multipeak_fit`,result:E,title:`Peak analysis — ${e.name}`,source_refs:n});t(`Peak analysis — ${e.name}`,r,e.id)}}catch(e){X(e instanceof Error?e.message:`report failed`,`danger`)}finally{j(!1)}}},[e,s.report.mode,O,E,t]),recipes:M,saveRecipe:e=>{let t={...s,name:e};c(t),N(ch(t)),X(`recipe "${e}" saved`)},applyRecipe:e=>{let t=M.find(t=>t.name===e);t&&(c(t),g([]),D(null),k(null),o(0),F(e=>e+1))},recipeRev:P}}function dh(){let e=Z(e=>e.setPeakWizardOpen),t=Z(e=>e.setBaselineOverlay),n=Z(e=>e.setPeakOverlay),r=uh(),i=()=>{t(null),n(null),e(!1)},a=[(0,O.jsx)(Km,{w:r},`s0-${r.recipeRev}`),(0,O.jsx)(qm,{w:r},`s1-${r.recipeRev}`),(0,O.jsx)(Jm,{w:r},`s2-${r.recipeRev}`),(0,O.jsx)(Ym,{w:r},`s3-${r.recipeRev}`),(0,O.jsx)(Xm,{w:r},`s4-${r.recipeRev}`)][r.step];return(0,O.jsx)(jd,{title:`Peak Analyzer`,width:420,onClose:i,children:r.active?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`div`,{className:`qzk-wizard-steps`,children:lh.map((e,t)=>(0,O.jsxs)(`button`,{className:`qzk-wizard-step${t===r.step?` qzk-active`:``}`,onClick:()=>r.setStep(t),children:[(0,O.jsx)(`span`,{className:`qzk-wizard-num`,children:t+1}),` `,e]},e))}),r.recipes.length>0&&(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`,marginTop:8},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`Recipe`}),(0,O.jsx)(K,{options:[{value:``,label:`—`},...r.recipes.map(e=>({value:e.name,label:e.name}))],value:``,onChange:e=>e.target.value&&r.applyRecipe(e.target.value)})]}),(0,O.jsx)(`div`,{style:{marginTop:10},children:a}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:14},children:[(0,O.jsx)(G,{size:`sm`,disabled:r.step===0,onClick:r.back,children:`← Back`}),(0,O.jsx)(`span`,{style:{flex:1}}),(0,O.jsx)(G,{size:`sm`,variant:`primary`,disabled:r.step===lh.length-1,onClick:r.next,children:`Next →`})]})]}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`Select a dataset to analyze.`})})}var fh=[{value:`x`,label:`x (axis)`},{value:`y`,label:`y`},{value:`error`,label:`error`},{value:`label`,label:`label`},{value:`ignore`,label:`ignore`}],ph=[{value:`auto`,label:`auto-detect`},{value:`comma`,label:`comma ,`},{value:`tab`,label:`tab`},{value:`semicolon`,label:`semicolon ;`},{value:`pipe`,label:`pipe |`},{value:`whitespace`,label:`whitespace`}];function mh(e){let t=/\.[^.\\/]+$/.exec(e);return t?t[0]:``}function hh(e){let t=mh(e);return t?e.slice(0,-t.length):e}function gh(e){let t=mh(e);return t?`*${t}`:`*`}function _h(e,t,n){return e.map((e,r)=>r===t?n:e.role)}function vh(e,t){let n=e.trim()||`Col`,r=t.trim();return r?`${n} (${r})`:n}function yh(e,t,n){return e.map((e,r)=>vh(r===t?n:e.name,e.unit))}function bh(e,t,n){return e.map((e,r)=>vh(e.name,r===t?n:e.unit))}function xh(e){let t=e.trim();if(t===``)return null;let n=Number(t);return Number.isFinite(n)?Math.trunc(n):null}function Sh({preview:e,onRoleChange:t,onNameChange:n,onUnitChange:r}){let i=t=>{if(t===e.header_line)return`var(--accent-soft)`;if(t===e.units_line)return`var(--capture-soft)`},a=t=>{if(t===e.header_line)return`header line`;if(t===e.units_line)return`units line`;if(t===e.data_start_line)return`first data line`};return(0,O.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:10},children:[(0,O.jsx)(`div`,{style:{maxHeight:130,overflowY:`auto`,fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-sm)`,border:`1px solid var(--border-soft)`,borderRadius:`var(--radius-sm)`},children:e.raw_lines.map((t,n)=>(0,O.jsxs)(`div`,{title:a(n),style:{display:`flex`,gap:8,padding:`1px 6px`,background:i(n),borderTop:n===e.data_start_line?`1px solid var(--ok)`:void 0,whiteSpace:`pre`},children:[(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`,minWidth:24,textAlign:`right`},children:n}),(0,O.jsx)(`span`,{style:{color:`var(--text-dim)`},children:t||` `})]},n))}),(0,O.jsx)(`div`,{style:{overflowX:`auto`},children:(0,O.jsxs)(`table`,{className:`qz-table`,children:[(0,O.jsx)(`thead`,{children:(0,O.jsx)(`tr`,{children:e.columns.map(e=>(0,O.jsxs)(`th`,{style:{textAlign:`left`,minWidth:120},children:[(0,O.jsx)(`input`,{className:`qz-input`,style:{width:`100%`,marginBottom:3},value:e.name,onChange:t=>n(e.index,t.target.value),"aria-label":`column ${e.index+1} name`}),(0,O.jsx)(`input`,{className:`qz-input`,style:{width:`100%`,marginBottom:3},value:e.unit,placeholder:`unit`,onChange:t=>r(e.index,t.target.value),"aria-label":`column ${e.index+1} unit`}),(0,O.jsx)(K,{options:fh,value:e.role,onChange:n=>t(e.index,n.target.value),"aria-label":`column ${e.index+1} role`})]},e.index))})}),(0,O.jsx)(`tbody`,{children:e.rows.map((e,t)=>(0,O.jsx)(`tr`,{children:e.map((e,t)=>(0,O.jsx)(`td`,{children:Y(e)},t))},t))})]})}),(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:[e.n_data_rows,` data row`,e.n_data_rows===1?``:`s`,` ·`,` `,e.columns.length,` column`,e.columns.length===1?``:`s`,` · delimiter`,` `,JSON.stringify(e.delimiter),e.n_data_rows>e.n_preview_rows&&` · showing first ${e.n_preview_rows}`]})]})}var Ch=30,wh=300,Th=0;function Eh(){let e=Z(e=>e.addDataset),t=Z(e=>e.pushRecent),n=Z(e=>e.setStatus),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)([]),[p,m]=(0,y.useState)([]),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(!1);async function E(){g(!0);try{m(await Pr())}catch{}finally{g(!1)}}(0,y.useEffect)(()=>{E()},[]),(0,y.useEffect)(()=>{if(!a||!s)return;let e=!1,t=setTimeout(()=>{v(!0),Mr(a,s,Ch).then(t=>{e||(u(t),f(t.columns),C(null))}).catch(t=>{e||C(t instanceof Error?t.message:`preview failed`)}).finally(()=>{e||v(!1)})},wh);return()=>{e=!0,clearTimeout(t)}},[a,s]);async function D(e){C(null),u(null),f([]),T(!1),i(e),v(!0);try{let t=await e.text();o(t),c(await jr(t))}catch(e){C(e instanceof Error?e.message:`couldn't read file`),v(!1)}}function O(e){T(!1),c(t=>t&&{...t,...e})}function k(e,t){!s||!d.length||(f(n=>n.map((n,r)=>r===e?{...n,role:t}:n)),O({roles:_h(d,e,t)}))}function A(e,t){!s||!d.length||(f(n=>n.map((n,r)=>r===e?{...n,name:t}:n)),O({column_names:yh(d,e,t)}))}function j(e,t){!s||!d.length||(f(n=>n.map((n,r)=>r===e?{...n,unit:t}:n)),O({column_names:bh(d,e,t)}))}function M(e){let t=p.find(t=>t.name===e);t&&(T(!1),f([]),c({...t.settings}))}async function N(e,t){if(s){C(null);try{let n=await Fr(e,t,s);m(e=>[...e.filter(e=>e.name!==n.name),n]),X(`saved filter "${n.name}"`,`ok`)}catch(e){let t=e instanceof Error?e.message:`save filter failed`;C(t),X(t,`danger`)}}}async function P(e){try{await Ir(e),m(t=>t.filter(t=>t.name!==e))}catch(e){X(e instanceof Error?e.message:`delete filter failed`,`danger`)}}async function F(){if(!(!r||!s||!a)){x(!0),C(null);try{let i=await Nr(a,s),o=`impwiz-${++Th}`;e({id:o,name:r.name,data:i}),t(r.name,r.size),n(`imported ${r.name} via Import wizard`),X(`imported ${r.name}`,`ok`),T(!0)}catch(e){let t=e instanceof Error?e.message:`import failed`;C(t),X(t,`danger`)}finally{x(!1)}}}function I(){i(null),o(``),c(null),u(null),f([]),C(null),T(!1)}return{file:r,settings:s,preview:(0,y.useMemo)(()=>l?{...l,columns:d.length?d:l.columns}:null,[l,d]),filters:p,filtersBusy:h,busy:_,importing:b,error:S,imported:w,pickFile:D,patchSettings:O,setColumnRole:k,setColumnName:A,setColumnUnit:j,applyFilter:M,saveAsFilter:N,removeFilter:P,doImport:F,reset:I}}function Dh(){let e=Z(e=>e.setImportWizardOpen),t=Eh(),n=(0,y.useRef)(null),[r,i]=(0,y.useState)(``),a={color:`var(--text-faint)`};function o(e){let n=e.target.files?.[0];e.target.value=``,n&&(i(``),t.pickFile(n))}async function s(){r&&(await t.removeFilter(r),i(``))}async function c(){if(!t.file||!t.settings)return;let e=await Re(`Save as filter`,[{key:`name`,label:`Name`,type:`text`,default:hh(t.file.name)},{key:`glob`,label:`File glob`,type:`text`,default:gh(t.file.name)}]);if(!e)return;let n=String(e.name).trim(),r=String(e.glob).trim();!n||!r||await t.saveAsFilter(n,r)}return(0,O.jsxs)(jd,{title:`Import wizard`,width:640,onClose:()=>e(!1),children:[(0,O.jsx)(`input`,{ref:n,type:`file`,style:{display:`none`},onChange:o}),t.filters.length>0&&(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`,marginBottom:8},children:[(0,O.jsxs)(`label`,{className:`qzk-field`,children:[(0,O.jsx)(`span`,{children:`Apply saved filter`}),(0,O.jsx)(K,{options:[{value:``,label:`—`},...t.filters.map(e=>({value:e.name,label:e.name}))],value:r,disabled:!t.file,onChange:e=>{i(e.target.value),e.target.value&&t.applyFilter(e.target.value)}})]}),r&&(0,O.jsx)(G,{size:`sm`,variant:`ghost`,title:`Delete this saved filter`,onClick:()=>void s(),children:`delete`}),(0,O.jsx)(`span`,{className:`qzk-ds-meta`,style:a,children:t.filtersBusy?`loading…`:`${t.filters.length} saved`})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,alignItems:`center`,marginBottom:10},children:[(0,O.jsx)(G,{size:`sm`,onClick:()=>n.current?.click(),children:t.file?`Choose a different file…`:`Choose a file…`}),t.file&&(0,O.jsx)(`span`,{style:a,children:t.file.name})]}),t.file?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`div`,{style:{display:`flex`,gap:10,flexWrap:`wrap`,marginBottom:10},children:[(0,O.jsxs)(`label`,{className:`qzk-field`,children:[(0,O.jsx)(`span`,{children:`Delimiter`}),(0,O.jsx)(K,{options:ph,value:t.settings?.delimiter??`auto`,onChange:e=>t.patchSettings({delimiter:e.target.value})})]}),(0,O.jsxs)(`label`,{className:`qzk-field`,children:[(0,O.jsx)(`span`,{children:`Data start line`}),(0,O.jsx)(q,{value:t.settings?.data_start_line??0,onChange:e=>t.patchSettings({data_start_line:xh(e)??0}),width:56})]}),(0,O.jsxs)(`label`,{className:`qzk-field`,children:[(0,O.jsx)(`span`,{children:`Header line`}),(0,O.jsx)(q,{value:t.settings?.header_line??``,onChange:e=>t.patchSettings({header_line:xh(e)}),placeholder:`none`,width:56})]}),(0,O.jsxs)(`label`,{className:`qzk-field`,children:[(0,O.jsx)(`span`,{children:`Units line`}),(0,O.jsx)(q,{value:t.settings?.units_line??``,onChange:e=>t.patchSettings({units_line:xh(e)}),placeholder:`none`,width:56})]})]}),t.error&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`,marginBottom:8},children:t.error}),t.busy&&!t.preview&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:a,children:`Loading preview…`}),t.preview&&(0,O.jsx)(Sh,{preview:t.preview,onRoleChange:(e,n)=>t.setColumnRole(e,n),onNameChange:t.setColumnName,onUnitChange:t.setColumnUnit}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:12},children:[(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:!t.preview||t.importing,onClick:()=>void t.doImport(),children:t.importing?`Importing…`:t.imported?`Imported ✓ — import again`:`Import`}),(0,O.jsx)(G,{size:`sm`,disabled:!t.settings,onClick:()=>void c(),children:`Save as filter…`})]})]}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:a,children:`Pick a delimited text file to preview and import under adjustable settings — delimiter, header/units lines, and per-column name / unit / role.`})]})}async function Oh(e,t,n){let r={},i=[],a=()=>Z.getState();try{await a().resolveDataset(t)}catch(t){let a=`couldn't load full data — ${t instanceof Error?t.message:`error`}`;for(let t of e)r[t.id]={status:`failed`,note:a};return n?.({...r}),{log:r,fits:i}}for(let o of e){if(!o.enabled){r[o.id]={status:`skipped`,note:`disabled`},n?.({...r});continue}try{switch(o.kind){case`expression`:{let e=String(o.params.name??``),n=String(o.params.expr??``),i=yi(n,a().datasets.find(e=>e.id===t)?.data.labels.length??0);if(i)throw Error(i);a().addFormula(t,e,n),r[o.id]={status:`ok`};break}case`correction`:{let e=o.params.params??{},n=o.params.bg;await a().applyCorrections(t,e,n),r[o.id]={status:`ok`};break}case`reset`:a().resetCorrections(t),r[o.id]={status:`ok`};break;case`fit`:{let e=$a(a().datasets.find(e=>e.id===t));if(!e||e.values.length===0)throw Error(`no data to fit`);let n=await dt({model:String(o.params.model??`Linear`),x:e.time,y:e.values.map(e=>e[0])});i.push(n);let s=typeof n.R2==`number`?` R²=${n.R2.toFixed(4)}`:``;r[o.id]={status:`ok`,note:`fit${s}`};break}default:r[o.id]={status:`skipped`,note:o.kind===`import`?`input slot`:`ui step`}}}catch(e){r[o.id]={status:`failed`,note:e instanceof Error?e.message:`error`}}n?.({...r})}return{log:r,fits:i}}function kh(e,t,n){return{version:1,name:e,steps:t.map(e=>({...e,id:``})),outputs:[...n]}}function Ah(e){return JSON.stringify(e,null,2)+`
15
+ `}var jh=[`ui`,`import`,`expression`,`correction`,`reset`,`fit`];function Mh(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.label==`string`&&typeof t.code==`string`&&jh.includes(String(t.kind))&&typeof t.params==`object`&&t.params!==null}function Nh(e){let t;try{t=JSON.parse(e)}catch{throw Error(`not a valid template file (bad JSON)`)}if(typeof t!=`object`||!t)throw Error(`not a template file`);let n=t;if(n.version!==1)throw Error(`unsupported template version: ${String(n.version)}`);if(typeof n.name!=`string`||!n.name.trim())throw Error(`template needs a name`);if(!Array.isArray(n.steps)||!n.steps.every(Mh))throw Error(`template has malformed steps`);let r=Array.isArray(n.outputs)?n.outputs.filter(e=>typeof e==`string`):[];return{version:1,name:n.name,steps:n.steps.map(e=>({...gi(e.kind,e.label,e.code,{...e.params}),enabled:e.enabled!==!1})),outputs:r}}var Ph=`qz.analysisTemplates`;function Fh(){try{let e=localStorage.getItem(Ph);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.flatMap(e=>{try{return[Nh(JSON.stringify(e))]}catch{return[]}}):[]}catch{return[]}}function Ih(e){let t=Fh().filter(t=>t.name!==e.name);t.push(e);try{localStorage.setItem(Ph,JSON.stringify(t))}catch{}return t}function Lh(e){let t=Fh().filter(t=>t.name!==e);try{localStorage.setItem(Ph,JSON.stringify(t))}catch{}return t}function Rh(e,t){if(!t)return e.map(()=>NaN);let n=t.params??[];return e.map((e,r)=>e===`R2`?typeof t.R2==`number`?t.R2:NaN:typeof n[r]==`number`?n[r]:NaN)}function zh(e,t,n){return{time:n.map((e,t)=>t+1),values:n.map(e=>t.map((t,n)=>e.values[n]??NaN)),labels:[...t],units:t.map(()=>``),metadata:{x_column_name:`file #`,source:`template batch: ${e}`,files:n.map(e=>e.file),failures:n.flatMap((e,t)=>e.failed?[`${t+1}: ${e.file} — ${e.failed}`]:[])}}}async function Bh(e,t,n){let{fits:r,log:i}=await Oh(e.steps,t),a=Object.values(i).filter(e=>e.status===`failed`),o=r[r.length-1];if(o)try{let r=(o.params??[]).length,i=e.outputs.filter(e=>e!==`R2`),{report:a}=await wr({kind:`curve_fit`,result:o,param_names:i.length===r?i:Array.from({length:r},(e,t)=>`p${t}`),title:`${e.name} — ${n}`,source_refs:[{kind:`dataset`,id:t,name:n}]});Z.getState().addReport(`${e.name} — ${n}`,a,t)}catch{}return{file:n,values:Rh(e.outputs,o),...a.length?{failed:a.map(e=>e.note??`step failed`).join(`; `)}:{}}}var Vh=0;async function Hh(e){let t=[...e].reverse().find(e=>e.kind===`fit`&&e.enabled);if(!t)return[];let n=String(t.params.model??``);try{let{models:e}=await lt();return[...e.find(e=>e.name===n)?.paramNames??[],`R2`]}catch{return[`R2`]}}function Uh(){let[e,t]=(0,y.useState)(()=>Fh()),[n,r]=(0,y.useState)(null),i=Z(e=>e.loadSteps),a=Z(e=>e.addDataset),o=Z(e=>e.setPipelineRunning);return{templates:e,batch:n,saveCurrent:(0,y.useCallback)(async e=>{let n=Z.getState().macroSteps;if(n.length===0)return`no steps to save`;let r=await Hh(n);return t(Ih(kh(e,n,r))),X(`template "${e}" saved`),null},[]),load:(0,y.useCallback)(e=>{let t=Fh().find(t=>t.name===e);t&&(i(t.steps),X(`template "${e}" loaded — ${t.steps.length} steps`))},[i]),remove:(0,y.useCallback)(e=>{t(Lh(e))},[]),exportFile:(0,y.useCallback)(e=>{let t=Fh().find(t=>t.name===e);t&&Ue(new Blob([Ah(t)],{type:`application/json`}),`${e.replace(/[^A-Za-z0-9._-]/g,`_`)}.qzt.json`)},[]),importFile:(0,y.useCallback)(async e=>{try{let n=Nh(await e.text());return t(Ih(n)),X(`template "${n.name}" imported`),null}catch(e){return e instanceof Error?e.message:`import failed`}},[]),runBatch:(0,y.useCallback)(async(e,t)=>{let n=Fh().find(t=>t.name===e);if(!n||t.length===0)return;o(!0),r({done:0,total:t.length,current:t[0].name,failures:[]});let i=[],s=[];try{for(let e=0;e<t.length;e++){let o=t[e];r({done:e,total:t.length,current:o.name,failures:s});try{let e=await $e(o),t=`tplb-${Date.now().toString(36)}-${++Vh}`;a({id:t,name:o.name,data:e});let r=await Bh(n,t,o.name);i.push(r),r.failed&&s.push(o.name)}catch(e){let t=e instanceof Error?e.message:`import failed`;i.push({file:o.name,values:Rh(n.outputs,void 0),failed:t}),s.push(o.name)}}a({id:`tplsum-${Date.now().toString(36)}-${++Vh}`,name:`${n.name} summary (${i.length} files)`,data:zh(n.name,n.outputs.length?n.outputs:[`R2`],i)}),X(s.length?`batch done — ${s.length}/${t.length} file(s) flagged`:`batch done — ${t.length} file(s)`,s.length?`danger`:void 0)}finally{o(!1),r(null)}},[a,o])}}function Wh(){let e=Uh(),[t,n]=(0,y.useState)(``),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(null),s=(0,y.useRef)(null),c=(0,y.useRef)(null);return(0,O.jsxs)(`div`,{style:{marginTop:12,borderTop:`1px solid var(--border-soft)`,paddingTop:8},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Templates`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`,marginTop:4},children:[(0,O.jsx)(q,{numeric:!1,width:130,value:t,placeholder:`save as…`,onChange:n}),(0,O.jsx)(G,{size:`sm`,disabled:!t.trim(),onClick:()=>{e.saveCurrent(t.trim()).then(e=>{o(e),e||n(``)})},children:`Save`}),(0,O.jsx)(`span`,{style:{flex:1}}),(0,O.jsx)(G,{size:`sm`,onClick:()=>c.current?.click(),children:`Import…`}),(0,O.jsx)(`input`,{ref:c,type:`file`,accept:`.json`,hidden:!0,onChange:t=>{let n=t.target.files?.[0];n&&e.importFile(n).then(o),t.target.value=``}})]}),e.templates.length>0&&(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`,marginTop:6},children:[(0,O.jsx)(K,{options:[{value:``,label:`pick a template…`},...e.templates.map(e=>({value:e.name,label:e.name}))],value:r,onChange:e=>i(e.target.value)}),(0,O.jsx)(G,{size:`sm`,disabled:!r,onClick:()=>e.load(r),children:`Load`}),(0,O.jsx)(G,{size:`sm`,disabled:!r||!!e.batch,onClick:()=>s.current?.click(),children:`Batch…`}),(0,O.jsx)(G,{size:`sm`,disabled:!r,onClick:()=>e.exportFile(r),children:`Export`}),(0,O.jsx)(G,{size:`sm`,disabled:!r,onClick:()=>{e.remove(r),i(``)},children:`×`}),(0,O.jsx)(`input`,{ref:s,type:`file`,multiple:!0,hidden:!0,onChange:t=>{let n=Array.from(t.target.files??[]);n.length&&r&&e.runBatch(r,n),t.target.value=``}})]}),e.batch&&(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:6},children:[`batch `,e.batch.done+1,`/`,e.batch.total,` — `,e.batch.current,e.batch.failures.length>0&&(0,O.jsxs)(`span`,{style:{color:`var(--danger)`},children:[` · `,e.batch.failures.length,` flagged`]})]}),a&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`,marginTop:4},children:a})]})}function Gh(){let e=pd(),t=Z(e=>e.macroSteps),n=Z(e=>e.pipelineRunning),r=Z(e=>e.setPipelineRunning),i=Z(e=>e.toggleStep),a=Z(e=>e.removeStep),o=Z(e=>e.moveStep),s=Z(e=>e.updateStepParams),c=Z(e=>e.insertStep),[l,u]=(0,y.useState)({}),d=(0,y.useCallback)(t=>yi(t,e?.data.labels.length??0),[e]),f=(0,y.useCallback)((e,t)=>d(t)||(e.trim()?(c(gi(`expression`,`Add column ${e}`,`qz.addColumn("${e}", "${t}")`,{name:e,expr:t})),null):`column name required`),[c,d]);return{active:e,steps:t,running:n,runLog:l,run:(0,y.useCallback)(async()=>{let e=Z.getState().activeId;if(e){r(!0),u({});try{await Oh(Z.getState().macroSteps,e,u)}finally{r(!1)}}},[r]),addExpressionStep:f,validate:d,toggleStep:i,removeStep:a,moveStep:o,updateStepParams:s}}var Kh={ok:`ok`,skipped:`warn`,failed:`danger`};function qh({step:e,onParams:t,validate:n}){let r=bi[e.kind],[i,a]=(0,y.useState)({...e.params});if(!r)return(0,O.jsxs)(`div`,{className:`qzk-step-editor`,children:[(0,O.jsx)(`code`,{className:`qzk-step-code`,children:e.code}),e.kind===`correction`&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`,marginTop:4},children:`Re-runs these corrections on the active dataset. Edit by re-recording.`})]});let o=e.kind===`expression`?n(String(i.expr??``)):null;return(0,O.jsxs)(`div`,{className:`qzk-step-editor`,children:[r.map(e=>(0,O.jsxs)(`span`,{style:{display:`inline-flex`,flexDirection:`column`,gap:2,marginRight:8},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:e.label}),(0,O.jsx)(q,{numeric:!1,width:e.key===`expr`?180:110,value:String(i[e.key]??``),onChange:t=>a(n=>({...n,[e.key]:t}))})]},e.key)),(0,O.jsx)(G,{size:`sm`,disabled:!!o,onClick:()=>t(i),style:{verticalAlign:`bottom`},children:`Apply`}),o&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`,marginTop:4},children:o})]})}function Jh(){let e=Z(e=>e.setPipelineOpen),t=Z(e=>e.setStatus),n=Gh(),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(null);return(0,O.jsxs)(jd,{title:`Pipeline`,width:440,onClose:()=>e(!1),children:[n.steps.length===0?(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`No steps yet — turn on the macro recorder (Inspector ▸ Macro recorder) and work normally, or add an expression step below.`}):(0,O.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:2,maxHeight:260,overflowY:`auto`},children:n.steps.map(e=>{let t=n.runLog[e.id];return(0,O.jsxs)(`div`,{children:[(0,O.jsxs)(`div`,{className:`qzk-step-row${r===e.id?` qzk-active`:``}`,onClick:()=>i(r===e.id?null:e.id),children:[(0,O.jsx)(`span`,{onClick:e=>e.stopPropagation(),children:(0,O.jsx)(De,{checked:e.enabled,onChange:()=>n.toggleStep(e.id)})}),(0,O.jsx)(`span`,{className:`qzk-step-kind`,children:e.kind}),(0,O.jsx)(`span`,{className:`qzk-step-label`,style:e.enabled?void 0:{opacity:.45},children:e.label}),t&&(0,O.jsx)(Te,{tone:Kh[t.status],label:t.note??t.status}),(0,O.jsx)(`span`,{style:{flex:1}}),(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:`move up`,onClick:t=>{t.stopPropagation(),n.moveStep(e.id,-1)},children:`↑`}),(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:`move down`,onClick:t=>{t.stopPropagation(),n.moveStep(e.id,1)},children:`↓`}),(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:`delete step`,onClick:t=>{t.stopPropagation(),n.removeStep(e.id)},children:`×`})]}),r===e.id&&(0,O.jsx)(qh,{step:e,validate:n.validate,onParams:t=>n.updateStepParams(e.id,t)})]},e.id)})}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`flex-end`,marginTop:10},children:[(0,O.jsxs)(`span`,{style:{display:`inline-flex`,flexDirection:`column`,gap:2},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`new column`}),(0,O.jsx)(q,{numeric:!1,width:90,value:a,onChange:o,placeholder:`name`})]}),(0,O.jsxs)(`span`,{style:{display:`inline-flex`,flexDirection:`column`,gap:2},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`expression`}),(0,O.jsx)(q,{numeric:!1,width:150,value:s,onChange:c,placeholder:`A / B`})]}),(0,O.jsx)(G,{size:`sm`,onClick:()=>{let e=n.addExpressionStep(a.trim(),s.trim());u(e),e||(o(``),c(``))},children:`+ Step`})]}),l&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`,marginTop:4},children:l}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:12,alignItems:`center`},children:[(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:n.running||!n.active||n.steps.length===0,onClick:()=>void n.run(),children:n.running?`Running…`:`Run on ${n.active?.name??`…`}`}),(0,O.jsx)(`span`,{style:{flex:1}}),(0,O.jsx)(G,{size:`sm`,disabled:n.steps.length===0,onClick:()=>{Ue(new Blob([vi(n.steps)],{type:`text/plain`}),`pipeline.qzm`),t(`saved pipeline.qzm — ${n.steps.length} steps`)},children:`Export script`})]}),(0,O.jsx)(Wh,{})]})}var Yh=e=>[...new Set(e.filter(e=>Number.isFinite(e)))].sort((e,t)=>e-t),Xh=e=>{let t=1/0,n=-1/0;for(let r of e)Number.isFinite(r)&&(r<t&&(t=r),r>n&&(n=r));return t<=n?[t,n]:null};function Zh(){let e=pd(),t=Z(e=>e.setDatasetFilter),n=Z(e=>e.clearDatasetFilter),r=e?.filter??[],i=e=>r.find(t=>t.col===e),a=(0,y.useMemo)(()=>{if(!e)return[];let t=String(e.data.metadata?.x_column_name??`x`),n=Xh(e.data.time),r=[{index:-1,label:t,kind:`range`,levels:[],current:i(-1),dataMin:n?.[0],dataMax:n?.[1]}];for(let t=0;t<e.data.labels.length;t++){let n=ga(ha(e,t)),a=e.data.values.map(e=>e[t]),o=n?null:Xh(a);r.push({index:t,label:e.data.labels[t],kind:n?`set`:`range`,levels:n?Yh(a):[],current:i(t),dataMin:o?.[0],dataMax:o?.[1]})}return r},[e,r]),{kept:o,total:s}=(0,y.useMemo)(()=>{let t=e?.data.time.length??0;return{kept:t-(e?Qi(e.filter,e.data).size:0),total:t}},[e]);function c(n){e&&t(e.id,n.filter(Ji))}function l(e,t,n){let i=r.filter(t=>t.col!==e),a={col:e,kind:`range`};t!==void 0&&Number.isFinite(t)&&(a.min=t),n!==void 0&&Number.isFinite(n)&&(a.max=n),c(Ji(a)?[...i,a]:i)}function u(e,t){let n=a.find(t=>t.index===e)?.levels??[],o=i(e),s=new Set(o?.kind===`set`&&o.values?o.values:n);s.has(t)?s.delete(t):s.add(t);let l=r.filter(t=>t.col!==e);s.size===0||s.size===n.length?c(l):c([...l,{col:e,kind:`set`,values:[...s].sort((e,t)=>e-t)}])}function d(){e&&n(e.id)}return{hasData:!!e,columns:a,kept:o,total:s,active:r.some(Ji),setRange:l,toggleLevel:u,clear:d}}var Qh=e=>{let t=e.trim();if(t===``)return{commit:!0,value:void 0};let n=Number(t);return Number.isFinite(n)?{commit:!0,value:n}:{commit:!1,value:void 0}};function $h(){let e=Z(e=>e.setDataFilterOpen),t=Z(e=>e.activeId),n=Zh(),[r,i]=(0,y.useState)({}),a=(e,n)=>`${t}:${e}:${n}`;function o(e,t,r){i(n=>({...n,[a(e.index,t)]:r}));let o=Qh(r);if(!o.commit)return;let s=e.current?.min,c=e.current?.max;t===`min`?n.setRange(e.index,o.value,c):n.setRange(e.index,s,o.value)}let s=(e,t)=>{let n=a(e.index,t);if(n in r)return r[n];let i=t===`min`?e.current?.min:e.current?.max;return i===void 0?``:String(i)};function c(e,t,r){i(t=>{let n={...t};return delete n[a(e.index,`min`)],delete n[a(e.index,`max`)],n});let o=e.dataMin!=null&&t<=e.dataMin?void 0:t,s=e.dataMax!=null&&r>=e.dataMax?void 0:r;n.setRange(e.index,o,s)}return(0,O.jsx)(jd,{title:`Data Filter`,width:340,onClose:()=>e(!1),children:n.hasData?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`div`,{style:{maxHeight:320,overflowY:`auto`,display:`grid`,gap:10},children:n.columns.map(e=>(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:e.label}),e.kind===`range`?(0,O.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[e.dataMin!=null&&e.dataMax!=null&&e.dataMax>e.dataMin&&(0,O.jsx)(M,{min:e.dataMin,max:e.dataMax,lo:e.current?.min??e.dataMin,hi:e.current?.max??e.dataMax,onChange:(t,n)=>c(e,t,n),loLabel:`${e.label} minimum`,hiLabel:`${e.label} maximum`}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,O.jsx)(q,{value:s(e,`min`),onChange:t=>o(e,`min`,t),placeholder:`min`,width:80}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`–`}),(0,O.jsx)(q,{value:s(e,`max`),onChange:t=>o(e,`max`,t),placeholder:`max`,width:80})]})]}):(0,O.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`2px 12px`},children:e.levels.map(t=>(0,O.jsx)(De,{checked:e.current?.kind===`set`&&e.current.values?e.current.values.includes(t):!0,onChange:()=>n.toggleLevel(e.index,t),children:Y(t)},t))})]},e.index))}),(0,O.jsxs)(`div`,{style:{marginTop:12,display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:[`showing `,n.kept,` of `,n.total,` rows`]}),(0,O.jsx)(G,{size:`sm`,disabled:!n.active,onClick:()=>{i({}),n.clear()},children:`Clear`})]})]}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`Select a dataset to filter.`})})}function eg(){let e=Z(e=>e.setColumnSwitcherOpen),t=Z(e=>e.datasets),n=Z(e=>e.activeId),r=Z(e=>e.yKeys),i=Z(e=>e.xKey),a=Z(e=>e.seriesOrder),o=Z(e=>e.seriesLabels),s=Z(e=>e.hiddenChannels),c=Z(e=>e.soloChannel),l=t.find(e=>e.id===n)??null,u=l?Ca(l.data,r,i,l.channelRoles,a):[],d=u.filter(e=>!s.includes(e)),f=d.length===1&&u.length>1?d[0]:null,p=e=>o[e]??l?.data.labels[e]??`ch ${e}`,m=e=>{if(u.length<2)return;let t=f==null?e===1?-1:0:u.indexOf(f);c(u[(t+e+u.length)%u.length])};return(0,O.jsx)(jd,{title:`Column switcher`,width:280,onClose:()=>e(!1),children:!l||u.length<2?(0,O.jsx)(`div`,{style:{color:`var(--text-faint)`},children:`Needs a dataset with at least two plotted channels.`}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,O.jsx)(G,{onClick:()=>m(-1),title:`Previous channel (wraps)`,children:`◀`}),(0,O.jsx)(K,{style:{flex:1},value:f==null?``:String(f),onChange:e=>c(e.target.value===``?null:Number(e.target.value)),title:`Solo one channel — every other series is hidden until you step on or show all`,options:[{value:``,label:`All (${u.length})`},...u.map(e=>({value:String(e),label:p(e)}))]}),(0,O.jsx)(G,{onClick:()=>m(1),title:`Next channel (wraps)`,children:`▶`})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,marginTop:8},children:[(0,O.jsx)(`span`,{style:{color:`var(--text-dim)`},children:f==null?`showing all channels`:`solo: ${p(f)}`}),(0,O.jsx)(G,{onClick:()=>c(null),disabled:f==null,children:`Show all`})]})]})})}var tg=new Set([`title`,`xlabel`,`ylabel`]),ng=e=>e===`legend`||e.startsWith(`ann:`);function rg({src:e,map:t,textOf:n,onSelect:r,onEditText:i,onDragEnd:a}){let[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(null),f=(0,y.useRef)(null),p=(0,y.useRef)(null),m=e=>({left:`${e.x0/t.width*100}%`,top:`${e.y0/t.height*100}%`,width:`${(e.x1-e.x0)/t.width*100}%`,height:`${(e.y1-e.y0)/t.height*100}%`}),h=(e,n)=>{let r=f.current?.getBoundingClientRect();if(!r||r.width===0)return[0,0];let i=t.width/r.width;return[(e-r.left)*i,(n-r.top)*i]};return(0,O.jsxs)(`div`,{ref:f,style:{position:`relative`,width:`100%`},children:[(0,O.jsx)(`img`,{src:e,alt:`figure preview`,style:{width:`100%`,display:`block`}}),t.elements.map(e=>(0,O.jsx)(`div`,{"data-element":e.id,title:tg.has(e.id)?`${e.id} — double-click to edit`:ng(e.id)?`${e.id} — drag to move`:e.id,onPointerEnter:()=>s(e.id),onPointerLeave:()=>s(null),onClick:()=>r(e.id),onDoubleClick:()=>{tg.has(e.id)&&l({id:e.id,value:n(e.id)})},onPointerDown:t=>{ng(e.id)&&(p.current={id:e.id,startX:t.clientX,startY:t.clientY},t.target.setPointerCapture?.(t.pointerId))},onPointerMove:t=>{let n=p.current;!n||n.id!==e.id||d({id:e.id,dx:t.clientX-n.startX,dy:t.clientY-n.startY})},onPointerUp:t=>{let n=p.current;if(p.current=null,d(null),!n||n.id!==e.id||!(Math.abs(t.clientX-n.startX)+Math.abs(t.clientY-n.startY)>3))return;let[r,i]=h(t.clientX,t.clientY);a(e.id,r,i)},style:{position:`absolute`,...m(e),cursor:ng(e.id)?`move`:`pointer`,outline:o===e.id?`1.5px solid var(--accent)`:`1px solid transparent`,borderRadius:2,transform:u?.id===e.id?`translate(${u.dx}px, ${u.dy}px)`:void 0}},e.id)),c&&(0,O.jsx)(`input`,{className:`qz-input`,autoFocus:!0,value:c.value,onChange:e=>l({...c,value:e.target.value}),onBlur:()=>{i(c.id,c.value),l(null)},onKeyDown:e=>{e.key===`Enter`&&(i(c.id,c.value),l(null)),e.key===`Escape`&&l(null)},style:{position:`absolute`,...m(t.elements.find(e=>e.id===c.id)),minWidth:120,zIndex:2}})]})}var ig=[`best`,`upper right`,`upper left`,`lower left`,`lower right`,`center left`,`center right`,`upper center`,`lower center`,`outside right`,`outside top`];function ag(e){return{ne:`upper right`,nw:`upper left`,se:`lower right`,sw:`lower left`}[e]}var og=e=>typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.values(e).every(e=>e===void 0);function sg(e){let t={};for(let[n,r]of Object.entries(e))if(r!==void 0)if(Array.isArray(r)){if((n===`annotations`||n===`x_breaks`)&&r.length===0||(n===`x_lim`||n===`y_lim`)&&r.every(e=>e===null))continue;t[n]=r}else if(typeof r==`object`&&r){let e=Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0));!og(e)&&Object.keys(e).length&&(t[n]=e)}else t[n]=r;return Object.keys(t).length?t:null}function cg({label:e,value:t,onValue:n,width:r=64}){let[i,a]=(0,y.useState)(t===void 0?``:String(t));return(0,O.jsxs)(`span`,{style:{display:`inline-flex`,flexDirection:`column`,gap:2},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:e}),(0,O.jsx)(q,{value:i,width:r,onChange:e=>{if(a(e),e.trim()===``)n(void 0);else{let t=Number(e);Number.isFinite(t)&&n(t)}}})]})}function lg({title:e,children:t,forceOpen:n}){let[r,i]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{n&&i(!0)},[n]),(0,O.jsxs)(`div`,{className:`qzk-report-section`,children:[(0,O.jsxs)(`button`,{className:`qzk-group-head`,onClick:()=>i(e=>!e),children:[(0,O.jsx)(`span`,{className:`qzk-group-caret`,children:r?`▾`:`▸`}),(0,O.jsx)(`span`,{className:`qzk-group-name`,children:e})]}),r&&(0,O.jsx)(`div`,{style:{padding:`4px 0 2px 14px`,display:`flex`,flexWrap:`wrap`,gap:8},children:t})]})}function ug({overrides:e,setOverrides:t,openGroup:n=null}){let r=e,i=e=>t({...r,...e}),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(``),[l,u]=(0,y.useState)(``);return(0,O.jsxs)(`div`,{children:[(0,O.jsxs)(lg,{title:`Text & fonts`,forceOpen:n===`Text & fonts`,children:[(0,O.jsx)(cg,{label:`font size`,value:r.font_size,onValue:e=>i({font_size:e})}),(0,O.jsx)(cg,{label:`title size`,value:r.title_size,onValue:e=>i({title_size:e})}),(0,O.jsxs)(`span`,{style:{display:`inline-flex`,flexDirection:`column`,gap:2},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`font name`}),(0,O.jsx)(q,{numeric:!1,width:110,value:r.font_name??``,placeholder:`(preset)`,onChange:e=>i({font_name:e.trim()||void 0})})]})]}),(0,O.jsxs)(lg,{title:`Axes & ticks`,children:[(0,O.jsx)(cg,{label:`x min`,value:r.x_lim?.[0]??void 0,onValue:e=>i({x_lim:[e??null,r.x_lim?.[1]??null]})}),(0,O.jsx)(cg,{label:`x max`,value:r.x_lim?.[1]??void 0,onValue:e=>i({x_lim:[r.x_lim?.[0]??null,e??null]})}),(0,O.jsx)(cg,{label:`y min`,value:r.y_lim?.[0]??void 0,onValue:e=>i({y_lim:[e??null,r.y_lim?.[1]??null]})}),(0,O.jsx)(cg,{label:`y max`,value:r.y_lim?.[1]??void 0,onValue:e=>i({y_lim:[r.y_lim?.[0]??null,e??null]})}),(0,O.jsxs)(`span`,{style:{display:`inline-flex`,flexDirection:`column`,gap:2},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`tick direction`}),(0,O.jsx)(K,{options:[{value:``,label:`(preset)`},{value:`in`,label:`in`},{value:`out`,label:`out`}],value:r.ticks?.dir??``,onChange:e=>i({ticks:{...r.ticks,dir:e.target.value||void 0}})})]}),(0,O.jsx)(cg,{label:`tick length`,value:r.ticks?.len,onValue:e=>i({ticks:{...r.ticks,len:e}})}),(0,O.jsx)(De,{checked:r.ticks?.minor??!1,onChange:e=>i({ticks:{...r.ticks,minor:e||void 0}}),children:`minor ticks`}),(0,O.jsx)(De,{checked:r.spines?.top??!0,onChange:e=>i({spines:{...r.spines,top:e}}),children:`top spine`}),(0,O.jsx)(De,{checked:r.spines?.right??!0,onChange:e=>i({spines:{...r.spines,right:e}}),children:`right spine`}),(0,O.jsx)(De,{checked:r.grid??!1,onChange:e=>i({grid:e||void 0}),children:`grid`})]}),(0,O.jsxs)(lg,{title:`Legend`,forceOpen:n===`Legend`,children:[(0,O.jsxs)(`span`,{style:{display:`inline-flex`,flexDirection:`column`,gap:2},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`position`}),(0,O.jsx)(K,{options:[{value:``,label:`(preset: best)`},...ig.map(e=>({value:e,label:e}))],value:r.legend?.loc??``,onChange:e=>i({legend:{...r.legend,loc:e.target.value||void 0}})})]}),(0,O.jsx)(De,{checked:r.legend?.show??!0,onChange:e=>i({legend:{...r.legend,show:e}}),children:`show`}),(0,O.jsx)(De,{checked:r.legend?.frame??!1,onChange:e=>i({legend:{...r.legend,frame:e}}),children:`frame`})]}),(0,O.jsxs)(lg,{title:`Canvas (margins, fig fraction)`,children:[(0,O.jsx)(cg,{label:`left`,value:r.margins?.left,onValue:e=>i({margins:{...r.margins,left:e}})}),(0,O.jsx)(cg,{label:`right`,value:r.margins?.right,onValue:e=>i({margins:{...r.margins,right:e}})}),(0,O.jsx)(cg,{label:`top`,value:r.margins?.top,onValue:e=>i({margins:{...r.margins,top:e}})}),(0,O.jsx)(cg,{label:`bottom`,value:r.margins?.bottom,onValue:e=>i({margins:{...r.margins,bottom:e}})})]}),(0,O.jsxs)(lg,{title:`Annotations`,forceOpen:n===`Annotations`,children:[(r.annotations??[]).map((e,t)=>(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`,width:`100%`},children:[(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,children:[`“`,e.text,`” @ (`,e.x,`, `,e.y,`)`]}),(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:`remove annotation`,onClick:()=>i({annotations:(r.annotations??[]).filter((e,n)=>n!==t)}),children:`×`})]},t)),(0,O.jsx)(q,{numeric:!1,width:110,value:a,placeholder:`text`,onChange:o}),(0,O.jsx)(q,{value:s,width:56,placeholder:`x`,onChange:c}),(0,O.jsx)(q,{value:l,width:56,placeholder:`y`,onChange:u}),(0,O.jsx)(`button`,{className:`qz-btn qz-sm`,disabled:!a.trim()||!Number.isFinite(Number(s))||!Number.isFinite(Number(l)),onClick:()=>{i({annotations:[...r.annotations??[],{x:Number(s),y:Number(l),text:a.trim()}]}),o(``),c(``),u(``)},children:`+ Add`})]})]})}var dg;function fg(){return dg===void 0&&(dg=document.createElement(`canvas`).getContext(`2d`)),dg??null}var pg=e=>e.toString(16).padStart(2,`0`);function mg(e){let t=e.trim();if(!t)return null;if(/^#[0-9a-fA-F]{6}$/.test(t))return t.toLowerCase();let n=fg();if(!n)return null;try{n.clearRect(0,0,1,1),n.fillStyle=`#000`,n.fillStyle=t,n.fillRect(0,0,1,1);let[e,r,i,a]=n.getImageData(0,0,1,1).data;return a===0?null:`#${pg(e)}${pg(r)}${pg(i)}`}catch{return null}}var hg=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i,gg=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])$/i,_g=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i,vg=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i,yg=/^rgba?\(\s*([\d.]+%?)\s*[, ]\s*([\d.]+%?)\s*[, ]\s*([\d.]+%?)\s*(?:[,/]\s*[\d.]+%?\s*)?\)$/i,bg=/^hsla?\(\s*([\d.]+)(?:deg)?\s*[, ]\s*([\d.]+)%\s*[, ]\s*([\d.]+)%\s*(?:[,/]\s*[\d.]+%?\s*)?\)$/i,xg={black:[0,0,0],white:[255,255,255],silver:[192,192,192],gray:[128,128,128],grey:[128,128,128],darkgray:[169,169,169],darkgrey:[169,169,169],lightgray:[211,211,211],lightgrey:[211,211,211],dimgray:[105,105,105],dimgrey:[105,105,105],red:[255,0,0],maroon:[128,0,0],green:[0,128,0],lime:[0,255,0],blue:[0,0,255],navy:[0,0,128],yellow:[255,255,0],cyan:[0,255,255],aqua:[0,255,255],magenta:[255,0,255],fuchsia:[255,0,255],orange:[255,165,0],purple:[128,0,128],brown:[165,42,42]};function Sg(e){return e.endsWith(`%`)?parseFloat(e)/100*255:parseFloat(e)}function Cg(e,t,n){let r=(e%360+360)%360,i=e=>(e+r/30)%12,a=t*Math.min(n,1-n),o=e=>n-a*Math.max(-1,Math.min(i(e)-3,Math.min(9-i(e),1)));return[Math.round(o(0)*255),Math.round(o(8)*255),Math.round(o(4)*255)]}function wg(e){let t=e.trim();if(!t)return null;let n=vg.exec(t)||_g.exec(t);return n?[parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16)]:(n=gg.exec(t)||hg.exec(t),n?[parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16),parseInt(n[3]+n[3],16)]:(n=yg.exec(t),n?[Sg(n[1]),Sg(n[2]),Sg(n[3])]:(n=bg.exec(t),n?Cg(parseFloat(n[1]),parseFloat(n[2])/100,parseFloat(n[3])/100):xg[t.toLowerCase()]??null)))}function Tg([e,t,n]){let r=e=>{let t=Math.min(1,Math.max(0,e/255));return t<=.03928?t/12.92:((t+.055)/1.055)**2.4};return .2126*r(e)+.7152*r(t)+.0722*r(n)}var Eg=.006,Dg=.94;function Og(e,t){let n=Math.max(e,t),r=Math.min(e,t);return(n+.05)/(r+.05)}var kg=2.2,Ag=`#eef0f6`,jg=`#1e1e26`;function Mg(e,t,n){let r=wg(e);return!r||Og(Tg(r),t?Eg:Dg)>=kg?e:n||(t?Ag:jg)}var Ng=[{value:`circle`,label:`● circle`},{value:`square`,label:`■ square`},{value:`triangle`,label:`▲ triangle`},{value:`downtriangle`,label:`▼ triangle (down)`},{value:`diamond`,label:`◆ diamond`},{value:`plus`,label:`+ plus`},{value:`cross`,label:`✕ cross`},{value:`star`,label:`✳ asterisk`}],Pg=new Set([`square`,`triangle`,`downtriangle`,`diamond`]);function Fg(e,t,n,r){let i=r*.7;switch(e){case`square`:return[[[t-r,n-r],[t+r,n-r],[t+r,n+r],[t-r,n+r]]];case`triangle`:return[[[t,n-r],[t+r,n+r],[t-r,n+r]]];case`downtriangle`:return[[[t,n+r],[t-r,n-r],[t+r,n-r]]];case`diamond`:return[[[t,n-r],[t+r,n],[t,n+r],[t-r,n]]];case`plus`:return[[[t-r,n],[t+r,n]],[[t,n-r],[t,n+r]]];case`cross`:return[[[t-r,n-r],[t+r,n+r]],[[t-r,n+r],[t+r,n-r]]];case`star`:return[[[t-r,n],[t+r,n]],[[t,n-r],[t,n+r]],[[t-i,n-i],[t+i,n+i]],[[t-i,n+i],[t+i,n-i]]];default:return[]}}function Ig(e,t){if(e===`circle`)return;let n=t/2,r=Pg.has(e);return(t,i,a,o)=>{let s=new Path2D,c=t.data[0],l=t.data[i],u=t.series[i].scale??`y`;for(let i=a;i<=o;i++){let a=c[i],o=l[i];if(a==null||o==null)continue;let d=t.valToPos(a,`x`,!0),f=t.valToPos(o,u,!0);for(let t of Fg(e,d,f,n))t.forEach(([e,t],n)=>n===0?s.moveTo(e,t):s.lineTo(e,t)),r&&s.closePath()}return{stroke:s,fill:r?s:null}}}function Lg(e){return Number.isInteger(e)?Number(`1e${e}`):10**e}function Rg(e){if(e<=0||!Number.isFinite(e))return 1;let t=Lg(Math.floor(Math.log10(e))),n=e/t;return(n<1.5?1:n<3?2:n<7?5:10)*t}function zg(e,t,n=5){if(!Number.isFinite(e)||!Number.isFinite(t)||t<=e)return[e];let r=Rg((t-e)/Math.max(1,n)),i=Math.ceil(e/r)*r,a=[];for(let e=i,n=0;e<=t+r*1e-6&&n<1e3;e+=r,n++)a.push(Math.round(e/r)*r);return a.length?a:[e,t]}function Bg(e,t=20){if(!(e>0)||!Number.isFinite(e))return 0;let n=Math.max(0,Math.min(t,Math.ceil(-Math.log10(e)-1e-9))),r=Math.max(e*1e-6,1e-15);for(;n<t&&Math.abs(Number(e.toFixed(n))-e)>r;)n+=1;return n}function Vg(e,t=25){return`color-mix(in oklab, ${e} ${t}%, transparent)`}function Hg(e,t){return e===`under`?{fill:Vg(t),fillTo:0}:{}}function Ug(e,t,n){let r=[];return e.forEach((i,a)=>{let o=t[a]?.fill;if(!o||o===`none`||o===`under`)return;let s=e.indexOf(o.vs);s===-1||s===a||r.push({series:[a+1,s+1],fill:Vg(n(a))})}),r}var Wg=.7,Gg=.35;function Kg(e,t,n,r){return`${t?`italic `:``}${n?`${n} `:``}${e}px ${r}`}function qg(e,t,n,r,i,a,o,s){let c=a;for(let a of t)if(a.kind===`text`)e.font=Kg(r,a.italic,n.weight,n.family),s&&e.fillText(a.text,c,o+i),c+=e.measureText(a.text).width;else{let t=(a.kind===`sup`?-1:1)*Gg*r;c=qg(e,a.children,n,r*Wg,i+t,c,o,s)}return c}function Jg(e,t,n){return qg(e,t,n,n.px,0,0,0,!1)}function Yg(e,t,n,r,i,a,o=`left`){let s=Jg(e,t,i),c=o===`center`?n-s/2:n;return e.fillStyle=a,e.textAlign=`left`,e.textBaseline=`alphabetic`,qg(e,t,i,i.px,0,c,r,!0),s}var Xg=.78,Zg=.22;function Qg(e,t){let n=t.createDocumentFragment();for(let r of e)if(r.kind===`text`)if(r.italic){let e=t.createElement(`i`);e.textContent=r.text,n.appendChild(e)}else n.appendChild(t.createTextNode(r.text));else{let e=t.createElement(r.kind);e.style.fontSize=`0.7em`,e.appendChild(Qg(r.children,t)),n.appendChild(e)}return n}function $g(e,t){let n=[e.x,e.y,e.y2];return{hooks:{init:t=>{if(!e.title)return;let n=t.root.querySelector(`.u-title`);n&&(n.textContent=``,n.appendChild(Qg(e.title,n.ownerDocument)))},draw:e=>{let r=typeof window<`u`&&window.devicePixelRatio||1,{ctx:i}=e;n.forEach((n,a)=>{if(!n||n.length===0)return;let o=e.axes[a];if(!o||o._lpos==null)return;let s=o.side??(a===0?2:a===1?3:1),c=s===0||s===3?-1:1,l=Math.round((o._lpos+(o.labelGap??0)*c)*r),u=t.px*r,d={px:u,family:t.family,weight:t.weight??`600`};if(i.save(),s%2==1)i.translate(l,Math.round(e.bbox.top+e.bbox.height/2)),i.rotate((s===3?-Math.PI:Math.PI)/2),Yg(i,n,0,-.22*u,d,t.color,`center`);else{let r=Math.round(e.bbox.left+e.bbox.width/2),a=s===2?l+Xg*u:l-Zg*u;Yg(i,n,r,a,d,t.color,`center`)}i.restore()})}}}}function e_(e,t,n){if(!Number.isFinite(e)||!Number.isFinite(t))return null;let r=Math.min(e,t),i=Math.max(e,t);if(n){let{min:e,max:t}=n;e!=null&&(r=Math.max(r,e),i=Math.max(i,e)),t!=null&&(r=Math.min(r,t),i=Math.min(i,t))}return r<i?[r,i]:null}function t_(e,t,n,r=6){return Math.abs(n-e)<=r?`left`:Math.abs(n-t)<=r?`right`:n>e&&n<t?`move`:null}function n_(e){let t=e.data[0],n=1/0,r=-1/0;for(let e of t)e==null||!Number.isFinite(e)||(e<n&&(n=e),e>r&&(r=e));return n<=r?[n,r]:null}function r_(e,t,n,r){let i=!1,a=null,o=()=>i?a:e,s=(e,t)=>{i=!0,a=e,t(e)};return{hooks:{ready:r?.interactive&&r.onRoiChange?e=>{let t=e.over,n=r.onRoiChange;t.style.cursor=`crosshair`;let i=!1;t.addEventListener(`mousemove`,n=>{if(i)return;let r=o();if(!r){t.style.cursor=`crosshair`;return}let a=t.getBoundingClientRect(),s=n.clientX-a.left,c=t_(e.valToPos(Math.min(r[0],r[1]),`x`,!0),e.valToPos(Math.max(r[0],r[1]),`x`,!0),s);t.style.cursor=c===`left`||c===`right`?`ew-resize`:c===`move`?`move`:`crosshair`}),t.addEventListener(`mousedown`,r=>{if(r.button!==0)return;r.preventDefault();let a=t.getBoundingClientRect(),c=r.clientX-a.left,l=n_(e),u=o(),d=null;if(u&&(d=t_(e.valToPos(Math.min(u[0],u[1]),`x`,!0),e.valToPos(Math.max(u[0],u[1]),`x`,!0),c)),i=!0,u&&(d===`left`||d===`right`)){let t=d===`left`?Math.max(u[0],u[1]):Math.min(u[0],u[1]),r=r=>{let i=e.posToVal(r.clientX-a.left,`x`);s(e_(t,i,l?{min:l[0],max:l[1]}:void 0)??u,n),e.redraw()},o=()=>{document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,o),i=!1};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,o);return}if(u&&d===`move`){let t=Math.min(u[0],u[1]),r=Math.max(u[0],u[1]),o=r-t,d=e.posToVal(c,`x`),f=i=>{let c=e.posToVal(i.clientX-a.left,`x`),u=t+(c-d),f=r+(c-d);l&&(u<l[0]&&(u=l[0],f=l[0]+o),f>l[1]&&(f=l[1],u=l[1]-o)),s([u,f],n),e.redraw()},p=()=>{document.removeEventListener(`mousemove`,f),document.removeEventListener(`mouseup`,p),i=!1};document.addEventListener(`mousemove`,f),document.addEventListener(`mouseup`,p);return}let f=e.posToVal(c,`x`);s([f,f],n),e.redraw();let p=t=>{let r=e.posToVal(t.clientX-a.left,`x`);s([Math.min(f,r),Math.max(f,r)],n),e.redraw()},m=t=>{document.removeEventListener(`mousemove`,p),document.removeEventListener(`mouseup`,m),i=!1;let r=e.posToVal(t.clientX-a.left,`x`);if(Math.abs(e.valToPos(r,`x`,!0)-e.valToPos(f,`x`,!0))<6){s(null,n),e.redraw();return}s(e_(f,r,l?{min:l[0],max:l[1]}:void 0),n),e.redraw()};document.addEventListener(`mousemove`,p),document.addEventListener(`mouseup`,m)})}:void 0,draw:e=>{let r=o();if(!r)return;let{ctx:i}=e,{left:a,top:s,width:c,height:l}=e.bbox,u=Math.min(r[0],r[1]),d=Math.max(r[0],r[1]),f=e.valToPos(u,`x`,!0),p=e.valToPos(d,`x`,!0);i.save(),i.beginPath(),i.rect(a,s,c,l),i.clip();let m=Math.max(a,f),h=Math.min(a+c,p)-m;h>0&&(i.fillStyle=n,i.fillRect(m,s,h,l)),i.strokeStyle=t,i.lineWidth=1;for(let e of[f,p])e<a||e>a+c||(i.beginPath(),i.moveTo(e,s),i.lineTo(e,s+l),i.stroke());i.restore()}}}}function i_(e,t,n,r=6){let i=Math.abs(n-e),a=Math.abs(n-t);return i<=r&&i<=a?0:a<=r?1:null}function a_(e,t,n){let r=!1,i=null,a=()=>r?i:e,o=(e,t)=>{r=!0,i=e,t(e)};return{hooks:{ready:n?.interactive&&n.onCursorsChange?e=>{let t=e.over,r=n.onCursorsChange;t.style.cursor=`crosshair`;let i=!1;t.addEventListener(`mousemove`,n=>{if(i)return;let r=a();if(!r){t.style.cursor=`crosshair`;return}let o=t.getBoundingClientRect(),s=n.clientX-o.left,c=e.valToPos(r[0],`x`,!0),l=e.valToPos(r[1],`x`,!0);t.style.cursor=i_(c,l,s)==null?`crosshair`:`ew-resize`}),t.addEventListener(`mousedown`,n=>{if(n.button!==0)return;n.preventDefault();let s=t.getBoundingClientRect(),c=n.clientX-s.left,l=n_(e),u=a(),d=null;if(u&&(d=i_(e.valToPos(u[0],`x`,!0),e.valToPos(u[1],`x`,!0),c)),i=!0,u&&d!=null){let t=d===0?u[1]:u[0],n=n=>{let i=e.posToVal(n.clientX-s.left,`x`);l&&(i=Math.min(l[1],Math.max(l[0],i))),o(d===0?[i,t]:[t,i],r),e.redraw()},a=()=>{document.removeEventListener(`mousemove`,n),document.removeEventListener(`mouseup`,a),i=!1};document.addEventListener(`mousemove`,n),document.addEventListener(`mouseup`,a);return}let f=e.posToVal(c,`x`);o([f,f],r),e.redraw();let p=t=>{let n=e.posToVal(t.clientX-s.left,`x`);o([f,n],r),e.redraw()},m=t=>{document.removeEventListener(`mousemove`,p),document.removeEventListener(`mouseup`,m),i=!1;let n=e.posToVal(t.clientX-s.left,`x`);if(Math.abs(e.valToPos(n,`x`,!0)-e.valToPos(f,`x`,!0))<6){o(null,r),e.redraw();return}o([f,n],r),e.redraw()};document.addEventListener(`mousemove`,p),document.addEventListener(`mouseup`,m)})}:void 0,draw:e=>{let n=a();if(!n)return;let{ctx:r}=e,{left:i,top:o,width:s,height:c}=e.bbox;r.save(),r.beginPath(),r.rect(i,o,s,c),r.clip(),r.strokeStyle=t,r.lineWidth=1.5,r.setLineDash([2,3]);for(let t of n){let n=e.valToPos(t,`x`,!0);n<i||n>i+s||(r.beginPath(),r.moveTo(n,o),r.lineTo(n,o+c),r.stroke())}r.restore()}}}}function o_(e,t,n=8){let r=null,i=!1,a=null,o=t=>{let n=e(),{x:r,y:i}=t.scales,o=`${r.min},${r.max},${i.min},${i.max},${t.over.clientWidth},${t.over.clientHeight}`;return(!a||a.anchors!==n||a.key!==o)&&(a={anchors:n,key:o,pixels:Rl(t,n)}),a.pixels},s=e=>requestAnimationFrame(()=>{i||e.redraw()});return{hooks:{destroy:()=>{i=!0},ready:i=>{let a=i.over;a.style.cursor=`copy`,a.addEventListener(`mousemove`,e=>{if(r)return;let t=a.getBoundingClientRect(),s={x:e.clientX-t.left,y:e.clientY-t.top},c=zl(o(i),s,n);a.style.cursor=c==null?`copy`:`pointer`}),a.addEventListener(`mousedown`,c=>{if(c.button!==0)return;let l=a.getBoundingClientRect(),u={x:c.clientX-l.left,y:c.clientY-l.top},d=zl(o(i),u,n);if(d==null){let e=n=>{document.removeEventListener(`mouseup`,e);let r={x:n.clientX-l.left,y:n.clientY-l.top};Math.hypot(r.x-u.x,r.y-u.y)>=6||(t.onAdd(i.posToVal(r.x,`x`),i.posToVal(r.y,`y`)),s(i))};document.addEventListener(`mouseup`,e);return}c.preventDefault(),c.stopPropagation();let f=e().find(e=>e.index===d);r={index:d,x:f.x,y:f.y};let p=e=>{r={index:d,x:i.posToVal(e.clientX-l.left,`x`),y:i.posToVal(e.clientY-l.top,`y`)},i.redraw()},m=e=>{document.removeEventListener(`mousemove`,p),document.removeEventListener(`mouseup`,m);let n={x:e.clientX-l.left,y:e.clientY-l.top};r=null,Math.hypot(n.x-u.x,n.y-u.y)<6?t.onRemove(d):t.onMove(d,i.posToVal(n.x,`x`),i.posToVal(n.y,`y`)),i.redraw(),s(i)};document.addEventListener(`mousemove`,p),document.addEventListener(`mouseup`,m)},{capture:!0})},draw:n=>{let i=e();if(i.length===0&&!r)return;let{ctx:a}=n,{left:o,top:s,width:c,height:l}=n.bbox;a.save(),a.beginPath(),a.rect(o,s,c,l),a.clip();for(let e of i){let i=r&&r.index===e.index?r:e,o=n.valToPos(i.x,`x`,!0),s=n.valToPos(i.y,`y`,!0);!Number.isFinite(o)||!Number.isFinite(s)||(a.beginPath(),a.moveTo(o,s-5),a.lineTo(o+5,s),a.lineTo(o,s+5),a.lineTo(o-5,s),a.closePath(),a.fillStyle=t.color,a.globalAlpha=r&&r.index===e.index?1:.9,a.fill(),a.globalAlpha=1,a.lineWidth=1,a.strokeStyle=t.color,a.stroke())}a.restore()}}}}function s_(e,t,n,r){let i=Math.min(n,r),a=Math.max(n,r),o=Math.min(e.length,t.length),s=0;for(let n=0;n+1<o;n++){let r=e[n],o=e[n+1],c=t[n],l=t[n+1];if(r==null||o==null||c==null||l==null||!Number.isFinite(r)||!Number.isFinite(o)||!Number.isFinite(c)||!Number.isFinite(l))continue;let u=Math.min(r,o),d=Math.max(r,o),f=Math.max(u,i),p=Math.min(d,a);if(p<=f)continue;let m=e=>r===o?c:c+(l-c)*(e-r)/(o-r);s+=(m(f)+m(p))/2*(p-f)}return s}function c_(e,t,n,r){let i=Math.min(n,r),a=Math.max(n,r),o=Math.min(e.length,t.length),s=[];for(let n=0;n<o;n++){let r=e[n],o=t[n];r==null||o==null||!Number.isFinite(r)||!Number.isFinite(o)||r>=i&&r<=a&&s.push({x:r,y:o})}if(s.length<2)return null;s.sort((e,t)=>e.x-t.x);let c=0,l=s[0].y,u=s[0].y;for(let e=0;e<s.length;e++)s[e].y>s[c].y&&(c=e),s[e].y<l&&(l=s[e].y),s[e].y>u&&(u=s[e].y);if(u<=l)return null;let d=l+(u-l)/2,f=s[c].x,p=(e,t)=>{let n=s[e],r=s[t];return n.y===r.y?n.x:n.x+(r.x-n.x)*(d-n.y)/(r.y-n.y)},m=s[0].x;for(let e=c;e>0;e--)if(s[e-1].y<d){m=p(e-1,e);break}let h=s[s.length-1].x;for(let e=c;e<s.length-1;e++)if(s[e+1].y<d){h=p(e,e+1);break}return{center:f,height:u,baseline:l,half:d,x1:m,x2:h,fwhm:h-m}}function l_(e){for(let t=1;t<e.series.length;t++)if(e.series[t]?.show!==!1)return t;return+(e.series.length>1)}function u_(e,t,n,r){let i=null;return{hooks:{ready:r?.interactive&&r.onIntegrate?e=>{let t=e.over;t.style.cursor=`crosshair`;let n=r.onIntegrate;t.addEventListener(`mousedown`,r=>{if(r.button!==0)return;r.preventDefault();let a=t.getBoundingClientRect(),o=e.posToVal(r.clientX-a.left,`x`);i={x0:o,x1:o},e.redraw();let s=t=>{i={x0:o,x1:e.posToVal(t.clientX-a.left,`x`)},e.redraw()},c=t=>{document.removeEventListener(`mousemove`,s),document.removeEventListener(`mouseup`,c);let r=e.posToVal(t.clientX-a.left,`x`);i=null;let l=Math.abs(e.valToPos(r,`x`,!0)-e.valToPos(o,`x`,!0)),u=l_(e),d=e.data[0],f=u?e.data[u]:null;if(!f||l<6){e.redraw();return}n({xlo:Math.min(o,r),xhi:Math.max(o,r),area:s_(d,f,o,r)})};document.addEventListener(`mousemove`,s),document.addEventListener(`mouseup`,c)})}:void 0,draw:r=>{let a=i??(e?{x0:e.xlo,x1:e.xhi}:null);if(!a)return;let{ctx:o}=r,{left:s,top:c,width:l,height:u}=r.bbox,d=c+u,f=Math.min(a.x0,a.x1),p=Math.max(a.x0,a.x1),m=l_(r),h=r.data[0],g=m?r.data[m]:null;if(o.save(),o.beginPath(),o.rect(s,c,l,u),o.clip(),g){let e=r.series[m]?.scale??`y`,t=[];for(let n=0;n<h.length;n++){let i=h[n],a=g[n];i==null||a==null||!Number.isFinite(i)||!Number.isFinite(a)||i<f||i>p||t.push([r.valToPos(i,`x`,!0),r.valToPos(a,e,!0)])}if(t.length>=2){o.beginPath(),o.moveTo(t[0][0],d);for(let[e,n]of t)o.lineTo(e,n);o.lineTo(t[t.length-1][0],d),o.closePath(),o.fillStyle=n,o.fill()}}o.strokeStyle=t,o.lineWidth=1,o.globalAlpha=.8;for(let e of[f,p]){let t=r.valToPos(e,`x`,!0);t<s||t>s+l||(o.beginPath(),o.moveTo(t,c),o.lineTo(t,d),o.stroke())}o.restore()}}}}function d_(e,t,n,r){let i=null;return{hooks:{ready:r?.interactive&&r.onFwhm?e=>{let t=e.over;t.style.cursor=`crosshair`;let n=r.onFwhm;t.addEventListener(`mousedown`,r=>{if(r.button!==0)return;r.preventDefault();let a=t.getBoundingClientRect(),o=e.posToVal(r.clientX-a.left,`x`);i={x0:o,x1:o},e.redraw();let s=t=>{i={x0:o,x1:e.posToVal(t.clientX-a.left,`x`)},e.redraw()},c=t=>{document.removeEventListener(`mousemove`,s),document.removeEventListener(`mouseup`,c);let r=e.posToVal(t.clientX-a.left,`x`);i=null;let l=Math.abs(e.valToPos(r,`x`,!0)-e.valToPos(o,`x`,!0)),u=l_(e),d=e.data[0],f=u?e.data[u]:null,p=f&&l>=6?c_(d,f,o,r):null;p?n(p):e.redraw()};document.addEventListener(`mousemove`,s),document.addEventListener(`mouseup`,c)})}:void 0,draw:r=>{let{ctx:a}=r,{left:o,top:s,width:c,height:l}=r.bbox,u=s+l;if(i){let e=r.valToPos(i.x0,`x`,!0),t=r.valToPos(i.x1,`x`,!0),o=Math.min(e,t),c=Math.abs(t-e);c>=1&&(a.save(),a.fillStyle=n,a.fillRect(o,s,c,l),a.restore());return}if(!e)return;let d=l_(r),f=r.series[d]?.scale??`y`,p=r.valToPos(e.center,`x`,!0),m=r.valToPos(e.height,f,!0),h=r.valToPos(e.half,f,!0),g=r.valToPos(e.x1,`x`,!0),_=r.valToPos(e.x2,`x`,!0);a.save(),a.beginPath(),a.rect(o,s,c,l),a.clip(),a.strokeStyle=t,a.fillStyle=t,a.lineWidth=1.5,a.setLineDash([5,4]),a.beginPath(),a.moveTo(p,m),a.lineTo(p,u),a.stroke(),a.setLineDash([]),a.beginPath(),a.moveTo(g,h),a.lineTo(_,h),a.moveTo(g,h-4),a.lineTo(g,h+4),a.moveTo(_,h-4),a.lineTo(_,h+4),a.stroke(),a.beginPath(),a.arc(p,m,3,0,Math.PI*2),a.fill(),a.restore()}}}}function f_(e){let t=e.length;if(t===0)return NaN;let n=t>>1;return t%2?e[n]:(e[n-1]+e[n])/2}function p_(e,t,n,r,i){let a=Math.min(n,r),o=Math.max(n,r);if(!(o>a)||e.length<2)return null;let s=e[0],c=[];for(let e=0;e<s.length;e++){let t=s[e];t!=null&&Number.isFinite(t)&&t>=a&&t<=o&&c.push(e)}let l=[];for(let n=1;n<e.length;n++){if(i&&i[n-1]===!1)continue;let r=e[n],a=[];for(let e of c){let t=r[e];t!=null&&Number.isFinite(t)&&a.push(t)}if(a.length===0)continue;let o=a.length,s=a.reduce((e,t)=>e+t,0)/o,u=o>1?Math.sqrt(a.reduce((e,t)=>e+(t-s)**2,0)/(o-1)):NaN,d=1/0,f=-1/0;for(let e of a)e<d&&(d=e),e>f&&(f=e);l.push({label:t[n-1]??`series ${n}`,n:o,mean:s,std:u,median:f_([...a].sort((e,t)=>e-t)),min:d,max:f})}return l.length?{xMin:a,xMax:o,series:l}:null}function m_(){return{hooks:{ready:e=>{let t=e.over;t.style.cursor=`grab`,t.addEventListener(`mousedown`,n=>{if(n.button!==0)return;n.preventDefault(),t.style.cursor=`grabbing`;let r=n.clientX,i=n.clientY,a=e.scales.x.min??0,o=e.scales.x.max??1,s=e.scales.y.min??0,c=e.scales.y.max??1,l=n=>{let l=t.clientWidth||1,u=t.clientHeight||1,d=(n.clientX-r)/l*(o-a),f=(n.clientY-i)/u*(c-s);e.setScale(`x`,{min:a-d,max:o-d}),e.setScale(`y`,{min:s+f,max:c+f})},u=()=>{t.style.cursor=`grab`,document.removeEventListener(`mousemove`,l),document.removeEventListener(`mouseup`,u)};document.addEventListener(`mousemove`,l),document.addEventListener(`mouseup`,u)})}}}}function h_(e,t){let n=null;return{hooks:{ready:t=>{let r=t.over;r.style.cursor=`crosshair`,r.addEventListener(`mousedown`,i=>{if(i.button!==0)return;i.preventDefault();let a=r.getBoundingClientRect(),o=t.posToVal(i.clientX-a.left,`x`),s=t.posToVal(i.clientY-a.top,`y`);n=Ur(o,s,o,s),e(n),t.redraw();let c=r=>{let i=t.posToVal(r.clientX-a.left,`x`),c=t.posToVal(r.clientY-a.top,`y`);n=Ur(o,s,i,c),e(n),t.redraw()},l=()=>{document.removeEventListener(`mousemove`,c),document.removeEventListener(`mouseup`,l)};document.addEventListener(`mousemove`,c),document.addEventListener(`mouseup`,l)})},draw:e=>{if(!n)return;let r=e.valToPos(n.x0,`x`,!0),i=e.valToPos(n.y0,`y`,!0),a=e.valToPos(n.x1,`x`,!0),o=e.valToPos(n.y1,`y`,!0),{ctx:s}=e;s.save(),s.strokeStyle=t,s.fillStyle=t,s.lineWidth=1.5,s.setLineDash([4,3]),s.beginPath(),s.moveTo(r,i),s.lineTo(a,o),s.stroke(),s.setLineDash([]);for(let[e,t]of[[r,i],[a,o]])s.beginPath(),s.arc(e,t,3,0,Math.PI*2),s.fill();s.restore()}}}}function g_(e,t){let n=null,r=t=>{if(!n){e(null);return}let r=[],i=[];for(let e=1;e<t.series.length;e++){let n=t.series[e]?.label;r.push(typeof n==`string`?n:`series ${e}`),i.push(t.series[e]?.show!==!1)}let a=t.data;e(p_(a,r,n.x0,n.x1,i))};return{hooks:{ready:e=>{let t=e.over;t.style.cursor=`crosshair`,t.addEventListener(`mousedown`,i=>{if(i.button!==0)return;i.preventDefault();let a=t.getBoundingClientRect(),o=e.posToVal(i.clientX-a.left,`x`);n={x0:o,x1:o},r(e),e.redraw();let s=t=>{n={x0:o,x1:e.posToVal(t.clientX-a.left,`x`)},r(e),e.redraw()},c=()=>{document.removeEventListener(`mousemove`,s),document.removeEventListener(`mouseup`,c)};document.addEventListener(`mousemove`,s),document.addEventListener(`mouseup`,c)})},draw:e=>{if(!n)return;let{ctx:r}=e,{top:i,height:a}=e.bbox,o=e.valToPos(n.x0,`x`,!0),s=e.valToPos(n.x1,`x`,!0),c=Math.min(o,s),l=Math.abs(s-o);l<1||(r.save(),r.fillStyle=t,r.globalAlpha=.12,r.fillRect(c,i,l,a),r.globalAlpha=1,r.strokeStyle=t,r.lineWidth=1,r.setLineDash([4,3]),r.beginPath(),r.moveTo(o,i),r.lineTo(o,i+a),r.moveTo(s,i),r.lineTo(s,i+a),r.stroke(),r.restore())}}}}function __(e=1.18){return{hooks:{ready:t=>{let n=t.over;n.addEventListener(`wheel`,r=>{if(r.deltaY===0)return;r.preventDefault();let i=n.getBoundingClientRect(),a=r.clientX-i.left,o=r.clientY-i.top,s=n.clientWidth||1,c=n.clientHeight||1,l=r.deltaY<0?1/e:e,u=r.metaKey||r.ctrlKey;if(!r.shiftKey){let e=t.posToVal(a-a*l,`x`),n=t.posToVal(a+(s-a)*l,`x`);t.setScale(`x`,{min:Math.min(e,n),max:Math.max(e,n)})}if(!u){let e=t.posToVal(o-o*l,`y`),n=t.posToVal(o+(c-o)*l,`y`);t.setScale(`y`,{min:Math.min(e,n),max:Math.max(e,n)})}},{passive:!1})}}}}function v_(e){return{hooks:{setCursor:t=>{let n=t.cursor.idx;if(n==null){e(null);return}let r=t.data[0][n];if(r==null){e(null);return}let i=[];for(let e=1;e<t.data.length;e++){if(t.series[e]?.show===!1)continue;let r=t.data[e]?.[n];if(r==null)continue;let a=t.series[e]?.label;i.push({label:typeof a==`string`?a:``,y:r})}if(i.length===0){e(null);return}e({x:r,rows:i})}}}}function y_(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function b_(e){return(e??`theme`)===`light`?{axesBg:y_(`--axes-bg-light`)||`#f7f7fa`,gridColor:y_(`--grid-line-light`)||`#ccc`,inkColor:y_(`--ink-on-light`)||`#222`,inkDimColor:y_(`--ink-dim-on-light`)||`#555`,isDark:!1}:{axesBg:y_(`--axes-bg`)||`#13131a`,gridColor:y_(`--grid-line`)||`#333`,inkColor:y_(`--ink-on-dark`)||`#eee`,inkDimColor:y_(`--ink-dim-on-dark`)||`#aaa`,isDark:!0}}var x_=[`--series-1`,`--series-2`,`--series-3`,`--series-4`,`--series-5`,`--series-6`,`--series-7`,`--series-8`],S_={solid:void 0,dashed:[8,4],dotted:[2,4]};function C_(e,t){let n=e.filter(e=>e!=null&&Number.isFinite(e)).slice().sort((e,t)=>e-t),r=1/0;for(let e=1;e<n.length;e++){let t=n[e]-n[e-1];t>0&&t<r&&(r=t)}return Number.isFinite(r)?r:t}function w_(e){if(!e.startsWith(`-`))return e;let t=e.slice(1);return Number(t.replace(/,/g,``))===0?t:e}var T_=new Map;function E_(e){let t=Math.max(0,Math.min(20,e)),n=T_.get(t);return n||(n=new Intl.NumberFormat(void 0,{maximumFractionDigits:t}),T_.set(t,n)),n}var D_=(e,t,n,r,i)=>{let a=E_(Bg(C_(t,i)));return t.map(e=>e==null?null:w_(a.format(e)))};function O_(e,t){return e>0?Bg(e/Lg(t)):0}function k_(e,t,n){if(e===0)return`0`;let r=e<0?`-`:``,i=Math.abs(e),a=Math.floor(Math.floor(Math.log10(i))/3)*3,o=Math.max(t,O_(n,a)),s=i/Lg(a),c=s.toFixed(Math.min(20,o));return Number(c)>=1e3&&(a+=3,s=i/Lg(a),c=s.toFixed(Math.min(20,o))),w_(`${r}${c}e${a>=0?`+`:``}${a}`)}function A_(e){let t=e?.mode??`auto`;if(t===`auto`)return D_;let n=e?Math.max(0,Math.min(20,Math.round(e.digits))):2;return t===`sci`?(e,t,r,i,a)=>{let o=C_(t,a);return t.map(e=>{if(e==null)return null;let t=Math.max(n,O_(o,e===0?0:Math.floor(Math.log10(Math.abs(e)))));return w_(e.toExponential(Math.min(20,t)))})}:t===`eng`?(e,t,r,i,a)=>{let o=C_(t,a);return t.map(e=>e==null?null:k_(e,n,o))}:(e,t,r,i,a)=>{let o=C_(t,a),s=Math.max(n,Bg(o));return t.map(e=>e==null?null:w_(e.toFixed(Math.min(20,s))))}}function j_(e){return(t,n)=>n.map(t=>{if(t==null)return null;let n=Math.round(t);return n>=0&&n<e.length&&Math.abs(t-n)<1e-6?e[n]:``})}function M_(e,t=5){if(!(e>0))return 1;let n=e/Math.max(1,t),r=Lg(Math.floor(Math.log10(n))),i=n/r;return(i<1.5?1:i<3?2:i<7?5:10)*r}function N_(e){return Number(e.toPrecision(12))}function P_(e,t,n){if(!(e>0)||!(t>e))return[];let r=1e-9;if(Math.log10(t/e)>=1-r){let n=Math.floor(Math.log10(e)+r),i=Math.ceil(Math.log10(t)-r),a=[];for(let o=n;o<=i;o++){let n=Lg(o);n>=e*(1-r)&&n<=t*1.000000001&&a.push(n)}return a}let i=n&&n>0?n:M_(t-e),a=Math.ceil(e/i-r),o=Math.floor(t/i+r),s=[];for(let e=a;e<=o;e++)s.push(N_(e*i));return s}function F_(e){return e>0?1/e:NaN}function I_(e,t,n=5){if(!(e>0)||!(t>e))return[];let r=F_(e),i=F_(t),a=Math.min(r,i),o=Math.max(r,i);if(!(o>a))return[e,t];let s=M_(o-a,n),c=1e-9,l=Math.ceil(a/s-c),u=Math.floor(o/s+c),d=[];for(let n=l;n<=u;n++){let r=N_(n*s);if(r===0)continue;let i=N_(F_(r));i>=e*(1-c)&&i<=t*1.000000001&&d.push(i)}return d.sort((e,t)=>e-t)}function L_(e){let t=-1/0;for(let n of e)if(n!=null){if(n<t)return!1;t=n}return!0}function R_(e,t){let n=t?.color;return n?n.startsWith(`--`)&&y_(n)||n:y_(x_[e%x_.length])||`#8b5cf6`}function z_(e,t,n,r){let i=1/0,a=-1/0;if(e.series.forEach((o,s)=>{if(!((o.axis??0)!==n||t?.[s]))for(let t of e.data[s+1]??[])t==null||!Number.isFinite(t)||r&&t<=0||(t<i&&(i=t),t>a&&(a=t))}),i>a)return null;if(r)return[i/1.1,a*1.1];let o=(a-i||Math.abs(a)||1)*.1;return[i-o,a+o]}function B_(e,t){let n=1/0,r=-1/0;for(let i of e)i==null||!Number.isFinite(i)||t&&i<=0||(i<n&&(n=i),i>r&&(r=i));if(n>r)return null;if(t)return[n/1.1,r*1.1];let i=(r-n||Math.abs(r)||1)*.02;return[n-i,r+i]}function V_(e){return e===`log`||e===`reciprocal`}function H_(e){return e===`log`?{distr:3}:e===`reciprocal`?{distr:100,fwd:F_,bwd:F_}:{distr:1}}function U_(e,t){let{width:n,height:r,yScale:i,xScale:a,tool:o,onReadout:s,xLim:c,yLim:l,refLines:u,seriesStyles:d}=t,{xFmt:f,yFmt:p,annotations:m,showGrid:h,onRegionSelect:g}=t,_=L_(e.data[0]),v=e=>(t,n)=>e(t,n,0,t.data[0].length-1),y=e=>(t,n,r,i,a)=>e(t,n,0,t.data[0].length-1,a),b=e=>_||!e.show?e:e.paths?{...e,paths:y(e.paths)}:t.pointsPaths?{...e,paths:y(t.pointsPaths)}:e,{gridColor:x,inkColor:S,inkDimColor:C,isDark:w}=b_(t.bg),T=C,E=y_(`--accent`)||`#8b5cf6`,D=y_(`--accent-soft`)||`rgba(139,92,246,0.18)`,O=y_(`--capture-soft`)||`rgba(200,160,80,0.16)`,k=t.fontSize??12,A=`${k}px ${y_(`--font-mono`)||`monospace`}`,j=k+2,M=y_(`--font-ui`)||`system-ui, sans-serif`,N=`600 ${j}px ${M}`,P=t.xAxisLabel===null?``:t.xAxisLabel?.trim()||(e.xUnit?`${e.xLabel} (${e.xUnit})`:e.xLabel),F=e.series.map((e,n)=>t.seriesLabels?.[n]??(e.unit?`${e.label} (${e.unit})`:e.label)),I=n=>{if(n===0&&t.yAxisLabel?.trim())return t.yAxisLabel.trim();if(n===1&&t.y2AxisLabel?.trim())return t.y2AxisLabel.trim();let r=e.series.map((e,t)=>t).filter(t=>(e.series[t].axis??0)===n);return r.length===1?F[r[0]]:void 0},L=e.series.some(e=>(e.axis??0)===1),R=re(P),z=I(0),B=re(z),V=L?I(1):void 0,H=L?re(V):null,U=re(t.title?.trim()),ee={stroke:T,font:A,labelFont:N,labelSize:Math.max(30,j+20),grid:h===!1?{show:!1}:{stroke:x,width:1},ticks:{stroke:x,width:1}},W=[];if(o===`pan`&&W.push(m_()),o===`cursor`&&W.push(v_(s)),o===`measure`&&t.onMeasure&&W.push(h_(t.onMeasure,y_(`--accent`)||`#8b5cf6`)),o===`stats`&&t.onStats&&W.push(g_(t.onStats,E)),o===`integ`?W.push(u_(t.integral??null,E,D,{onIntegrate:t.onIntegrate,interactive:!0})):t.integral&&W.push(u_(t.integral,E,D)),o===`fwhm`?W.push(d_(t.fwhmResult??null,E,O,{onFwhm:t.onFwhm,interactive:!0})):t.fwhmResult&&W.push(d_(t.fwhmResult,E,O)),o===`qfit`&&(t.gadgetMode===`cursors`?W.push(a_(t.gadgetCursors??null,E,{onCursorsChange:t.onCursorsChange,interactive:!0})):W.push(r_(t.qfitRoi??null,E,D,{onRoiChange:t.onRoiChange,interactive:!0}))),u&&u.length>0&&W.push(Kl(u,C,{onMove:t.onRefLineMove,interactive:o===`pointer`||o===`zoom`||o===`cursor`})),m&&m.length>0&&W.push(au(m,S,A,{interactive:o===`pointer`&&!!t.annotationEdit,selectColor:E,selectedId:t.annotationEdit?.selectedId??null,onSelect:t.annotationEdit?.onSelect,onMove:t.annotationEdit?.onMove,onResize:t.annotationEdit?.onResize,onEditText:t.annotationEdit?.onEditText,onContextMenu:t.annotationEdit?.onContextMenu,onResetView:t.annotationEdit?.onResetView})),t.regionShades&&t.regionShades.length>0&&W.push(su(t.regionShades)),t.errorBars&&t.errorBars.size>0&&W.push(cu(t.errorBars,C)),t.colorByColumns&&t.colorByColumns.size>0&&W.push(uu(t.colorByColumns)),t.axisBox&&W.push(ql(C)),t.wheelZoom&&W.push(__()),t.peakWizardEdit){let{markers:e,onAdd:n,onRemove:r}=t.peakWizardEdit;W.push($m(e,{onAdd:n,onRemove:r}))}if(t.anchorEdit){let{getAnchors:e,onAdd:n,onMove:r,onRemove:i}=t.anchorEdit;W.push(o_(e,{onAdd:n,onMove:r,onRemove:i,color:E}))}(R||B||H||U)&&W.push($g({x:R,y:B,y2:H,title:U},{px:j,family:M,color:T,weight:`600`}));let te=t.y2Scale??i,ne=!_&&!l?z_(e,t.hidden,0,V_(i)):null,ie=_?null:z_(e,t.hidden,1,V_(te)),ae=!_&&!c?B_(e.data[0],V_(a)):null,oe={x:{time:!1,...H_(a),...c?{range:c}:ae?{range:()=>ae}:{}},y:{...H_(i),...l?{range:l}:ne?{range:()=>ne}:{}}},se=e.xCategories?j_(e.xCategories):A_(f),ce=A_(p),le=(e,t,n)=>e===`reciprocal`?(e,t,n,r)=>I_(n,r):e===`log`&&t?(e,t,r,i)=>P_(r,i,n??null):void 0,ue=le(a,c,t.xStep),de=le(i,l,t.yStep),fe=Math.max(50,k+42),pe=Math.max(60,k*4+16),me=[{...ee,size:fe,label:R?``:P,...se?{values:se}:{},...ue?{splits:ue}:{}},{...ee,size:pe,label:B?``:z,...ce?{values:ce}:{},...de?{splits:de}:{}}];if(L){let e=t.y2Lim??null;oe.y2={...H_(te),...e?{range:e}:ie?{range:()=>ie}:{}};let n=le(te,e,t.y2Step);me.push({...ee,scale:`y2`,side:1,size:pe,label:H?``:V,grid:{show:!1},...ce?{values:ce}:{},...n?{splits:n}:{}})}let he=[],ge=[{sorted:+!!_},...e.series.map((e,n)=>{let r=d?.[n],i=Mg(R_(n,r),w,S);he[n]=i;let a=F[n],o=(e.axis??0)===1?`y2`:`y`,s=!t.hidden?.[n];if(e.selected)return{label:a,scale:o,stroke:E,fill:E,width:0,points:b({show:!0,size:7}),show:s};if(e.muted)return{label:a,scale:o,stroke:C,width:0,points:b({show:!0,size:5}),show:s};if(e.kind===`points`)return{label:a,scale:o,stroke:i,fill:i,width:0,points:b({show:!0,size:8}),show:s};if(t.colorByColumns?.has(n+1))return{label:a,scale:o,stroke:i,width:0,points:{show:!1},show:s};let c=t.defaultTrace??`Line`,l=c===`Scatter`,u=r?.width??(l?0:t.baseLineWidth??1.5),f=r?.line?S_[r.line]:void 0,p={show:!1};if(r?.marker){let e=r.markerSize??5,t=r.markerShape??`circle`,n=Ig(t,e);p=n?{show:!0,size:e,paths:n,stroke:i,...Pg.has(t)?{fill:i}:{}}:{show:!0,size:e}}else(l||c===`Line + markers`)&&(p={show:!0,size:5});let m={label:a,scale:o,stroke:i,width:u,dash:f,points:b(p),show:s,...Hg(r?.fill,i)};return c===`Step`&&!r?.line&&t.steppedPaths?m.paths=_?t.steppedPaths:v(t.steppedPaths):!_&&u>0&&t.linearPaths&&(m.paths=v(t.linearPaths)),m})],_e=Ug(t.plotted??[],d??[],e=>he[e]??E);return{width:n,height:r,...t.title?.trim()?{title:t.title.trim()}:{},cursor:{drag:o===`region`||o===`select`?{x:!0,y:!1,setScale:!1,uni:1}:{x:o===`zoom`||o===`pointer`,y:o===`zoom`||o===`pointer`,uni:1},...o===`pointer`?{x:!1,y:!1}:{}},hooks:{setSelect:[e=>{let n=o===`region`?g:o===`select`?t.onRangeSelect:null;if(!n)return;let r=e.select.width;r<=0||n(e.posToVal(e.select.left,`x`),e.posToVal(e.select.left+r,`x`))}]},plugins:W,legend:{show:!1},scales:oe,axes:me,series:ge,..._e.length>0?{bands:_e}:{}}}function W_(e,t){return e.map((e,n)=>{let r=t[e],i={},a=mg(R_(n,r));return a&&(i.color=a),r?.width!=null&&(i.width=r.width),r?.line&&(i.line=r.line),r?.marker&&(i.marker=!0,r.markerSize!=null&&(i.marker_size=r.markerSize)),r?.fill&&r.fill!==`none`&&(i.fill=r.fill),r?.colorBy!=null&&(i.color_by=r.colorBy,i.colormap=r.colormap??`viridis`),Object.keys(i).length>0?i:null})}function G_(e,t){return e??(t?`log`:`linear`)}var K_=(e,t,n)=>{if(n===`log`){let[n,r]=[Math.log10(t[0]),Math.log10(t[1])];return 10**(n+e*(r-n))}if(n===`reciprocal`){let[n,r]=[F_(t[0]),F_(t[1])];return F_(n+e*(r-n))}return t[0]+e*(t[1]-t[0])};function q_(e,t,n){let r=(t-e.x0)/(e.x1-e.x0),i=(e.y1-n)/(e.y1-e.y0);return{x:K_(r,e.xlim,G_(e.xscale,e.xlog)),y:K_(i,e.ylim,G_(e.yscale,e.ylog))}}function J_(e,t,n,r){return[Math.min(1,Math.max(0,n/e)),Math.min(1,Math.max(0,1-r/t))]}function Y_(e){return e===`legend`?`Legend`:e.startsWith(`ann:`)?`Annotations`:e===`title`||e===`xlabel`||e===`ylabel`?`Text & fonts`:(e.startsWith(`series:`),null)}var X_=0,Z_=[`pdf`,`svg`,`png`,`tiff`],Q_=[`default`,`aps`,`nature`,`thesis`,`report`,`web`,`presentation`,`poster`],$_={default:200,aps:600,nature:600,thesis:300,report:300,web:150,presentation:150,poster:150},ev=110;function tv(){let e=pd(),t=Z(e=>e.yKeys),n=Z(e=>e.xKey),r=Z(e=>e.xScale),i=Z(e=>e.yScale),a=Z(e=>e.xFmt),o=Z(e=>e.yFmt),s=Z(e=>e.seriesStyles),c=Z(e=>e.setStatus),l=Z(e=>e.figureDocSeed),u=Z(e=>e.clearFigureDocSeed),d=Z(e=>e.addFigureDoc),[f,p]=(0,y.useState)(`pdf`),[m,h]=(0,y.useState)(`default`),[g,_]=(0,y.useState)($_.default),[v,b]=(0,y.useState)(``),[x,S]=(0,y.useState)(``),[C,w]=(0,y.useState)(``),[T,E]=(0,y.useState)({}),[D,O]=(0,y.useState)(void 0),[k,A]=(0,y.useState)(void 0),[j,M]=(0,y.useState)(void 0),[N,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(()=>As());(0,y.useEffect)(()=>{if(!l)return;let e=l.config;p(e.fmt),h(e.style),_(e.dpi),b(e.title),S(e.xLabel),w(e.yLabel),E(e.overrides??{}),O(e.xKey),A(e.yKeys),M({x:e.xScale,y:e.yScale}),P(l.live?null:l.dataSnapshot??null),u()},[l,u]);let[L,R]=(0,y.useState)(null),[z,B]=(0,y.useState)(null),[V,H]=(0,y.useState)(null),[U,ee]=(0,y.useState)(null),[W,te]=(0,y.useState)(!1);function ne(e){h(e);let t=$_[e];t!==void 0&&_(t)}let re=N??e?.data??null,ie=D===void 0?n??null:D,ae=k===void 0?t:k,oe=j?.x??r,se=j?.y??i,ce=(0,y.useMemo)(()=>{if(!re)return null;let e=ae??re.labels.map((e,t)=>t);return{dataset:re,x_key:ie??void 0,y_keys:ae??void 0,x_log:oe===`log`,y_log:se===`log`,x_scale:oe,y_scale:se,x_fmt:xl(a),y_fmt:xl(o),style:m,overrides:sg(T),title:v.trim(),x_label:x.trim()||void 0,y_label:C.trim()||void 0,series_styles:W_(e,s)}},[re,ae,ie,oe,se,a,o,m,v,x,C,s,T]);function le(t,n){if(!re)return;let r=ae??re.labels.map((e,t)=>t);d({id:`figd-${Date.now().toString(36)}-${++X_}`,name:t,datasetId:e?.id??null,live:n,...n?{}:{dataSnapshot:re},config:{xKey:ie,yKeys:ae,xScale:oe,yScale:se,title:v,xLabel:x,yLabel:C,style:m,fmt:f,dpi:g,overrides:sg(T),seriesStyles:W_(r,s)}})}function ue(e){if(!re)return;let t=ae??re.labels.map((e,t)=>t);I(js({name:e,style:m,overrides:sg(T),seriesStyles:W_(t,s)})),c(`graph template "${e}" saved`)}function de(e){let t=F.find(t=>t.name===e);t&&(ne(t.style),E(t.overrides??{}),c(`graph template "${e}" applied`))}function fe(e){I(Ms(e))}(0,y.useEffect)(()=>{if(!ce){R(null);return}let e=!1;te(!0);let t=setTimeout(()=>{ar({...ce,dpi:ev}).then(t=>{e||(B(t),R(`data:image/png;base64,${t.image}`),ee(null))}).catch(t=>{e||ee(t instanceof Error?t.message:`preview failed`)}).finally(()=>{e||te(!1)})},300);return()=>{e=!0,clearTimeout(t)}},[ce]);function pe(e){H(Y_(e))}function me(e,t){e===`title`?b(t):e===`xlabel`?S(t):e===`ylabel`&&w(t)}let he=e=>e===`title`?v:e===`xlabel`?x:e===`ylabel`?C:``;function ge(e,t,n){if(z){if(e===`legend`)E({...T,legend:{...T.legend,loc:`custom`,anchor:J_(z.width,z.height,t,n)}});else if(e.startsWith(`ann:`)){let r=Number(e.slice(4)),i=T.annotations??[];if(!Number.isInteger(r)||r>=i.length)return;let{x:a,y:o}=q_(z.axes,t,n);E({...T,annotations:i.map((e,t)=>t===r?{...e,x:a,y:o}:e)})}}}async function _e(){if(ce)try{let t=ce.dataset;if(!N&&e?.pending){let n=await Z.getState().resolveDataset(e.id);n&&(t=n.data)}let n=(e?.name??`figure`).replace(/\.[^.]+$/,``);await ir({...ce,dataset:t,fmt:f,dpi:g,filename:n}),c(`exported ${n}.${f}`)}catch(e){c(`export failed: ${e instanceof Error?e.message:`error`}`)}}return{active:e,fmt:f,setFmt:p,style:m,setStyle:ne,dpi:g,setDpi:_,title:v,setTitle:b,xLabel:x,setXLabel:S,yLabel:C,setYLabel:w,preview:L,error:U,busy:W,exportNow:_e,overrides:T,setOverrides:E,data:re,hitmap:z,focusGroup:V,selectElement:pe,editElementText:me,textOf:he,dragElement:ge,frozen:N!==null,saveAsFigure:le,graphTemplates:F,saveStyleTemplate:ue,applyStyleTemplate:de,removeStyleTemplate:fe}}function nv(){let e=Z(e=>e.setFigureBuilderOpen),t=tv(),[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(!0),[o,s]=(0,y.useState)(``);return(0,O.jsx)(jd,{title:t.frozen?`Figure builder (frozen data)`:`Figure builder`,width:560,onClose:()=>e(!1),children:t.data?(0,O.jsxs)(`div`,{style:{display:`flex`,gap:12},children:[(0,O.jsxs)(`div`,{style:{width:200,display:`flex`,flexDirection:`column`,gap:6},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Format`}),(0,O.jsx)(K,{options:Z_.map(e=>({value:e,label:e.toUpperCase()})),value:t.fmt,onChange:e=>t.setFmt(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Style`}),(0,O.jsx)(K,{options:Q_.map(e=>({value:e,label:e})),value:t.style,onChange:e=>t.setStyle(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`DPI (raster)`}),(0,O.jsx)(q,{value:t.dpi,onChange:e=>t.setDpi(Number(e)||300),width:90}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Title`}),(0,O.jsx)(be,{live:!0,value:t.title,placeholder:`(none)`,onCommit:t.setTitle}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`X label`}),(0,O.jsx)(be,{live:!0,value:t.xLabel,placeholder:`auto`,onCommit:t.setXLabel}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Y label`}),(0,O.jsx)(be,{live:!0,value:t.yLabel,placeholder:`auto`,onCommit:t.setYLabel}),(0,O.jsx)(ug,{overrides:t.overrides,setOverrides:t.setOverrides,openGroup:t.focusGroup}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:6},children:`Save as figure`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`},children:[(0,O.jsx)(q,{numeric:!1,width:100,value:n,placeholder:`name`,onChange:r}),(0,O.jsx)(De,{checked:i,onChange:a,children:`live`}),(0,O.jsx)(G,{size:`sm`,disabled:!n.trim(),onClick:()=>{t.saveAsFigure(n.trim(),i),r(``)},children:`Save`})]}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:6},children:`Style template`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`},children:[(0,O.jsx)(q,{numeric:!1,width:100,value:o,placeholder:`save style as…`,onChange:s}),(0,O.jsx)(G,{size:`sm`,disabled:!o.trim(),onClick:()=>{t.saveStyleTemplate(o.trim()),s(``)},children:`Save`})]}),t.graphTemplates.length>0&&(0,O.jsx)(K,{options:[{value:``,label:`apply template…`},...t.graphTemplates.map(e=>({value:e.name,label:e.name}))],value:``,onChange:e=>e.target.value&&t.applyStyleTemplate(e.target.value)}),(0,O.jsxs)(G,{variant:`primary`,onClick:t.exportNow,style:{marginTop:6},children:[`Export `,t.fmt.toUpperCase()]})]}),(0,O.jsx)(`div`,{style:{flex:1,minWidth:0,display:`grid`,placeItems:`center`,background:`var(--surface-1)`,borderRadius:6,minHeight:280,padding:8},children:t.error?(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`},children:t.error}):t.preview&&t.hitmap?(0,O.jsx)(rg,{src:t.preview,map:t.hitmap,textOf:t.textOf,onSelect:t.selectElement,onEditText:t.editElementText,onDragEnd:t.dragElement}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:t.busy?`rendering…`:`preview`})})]}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`Select a dataset to build a figure.`})})}var rv=[`(a)`,`a)`,`a.`,`(A)`,`A)`,`A.`,`none`],iv=[`nw`,`ne`,`outside`];function av(e,t){return Array.from({length:e*t},()=>({source:null,label:null,title:null}))}function ov(e,t,n,r){let i=av(n,r);return e.forEach((e,a)=>{let o=Math.floor(a/t),s=a%t;o<n&&s<r&&(i[o*r+s]=e)}),i}function sv(e,t,n){return e.map((e,r)=>r===t?{...e,source:n}:e.source&&e.source.kind===n.kind&&e.source.id===n.id?{...e,source:null}:e)}function cv(e,t){return e.map((e,n)=>n===t?{source:null,label:null,title:null}:e)}function lv(e,t,n){return e.map((e,r)=>r===t?{...e,...n}:e)}function uv(e,t){if(t===`none`||e<0)return``;let n=``,r=e;for(;n=String.fromCharCode(97+r%26)+n,r=Math.floor(r/26)-1,!(r<0););let i=t===`(A)`||t===`A)`||t===`A.`?n.toUpperCase():n;return t===`(a)`||t===`(A)`?`(${i})`:t===`a)`||t===`A)`?`${i})`:`${i}.`}function dv(e,t){let n=0;return e.map(e=>{if(!e.source)return``;let r=uv(n,t);return n+=1,e.label===null?r:e.label})}function fv(e){return e.reduce((e,t)=>e+ +!!t.source,0)}var pv=`application/x-qz-panel-source`;function mv(e){try{let t=e.dataTransfer.getData(pv);if(!t)return null;let n=JSON.parse(t);return typeof n.id==`string`&&typeof n.name==`string`?n:null}catch{return null}}function hv({rows:e,cols:t,slots:n,labels:r,selected:i,onSelect:a,onClear:o,onDropSource:s}){return(0,O.jsx)(`div`,{style:{display:`grid`,gridTemplateRows:`repeat(${e}, 1fr)`,gridTemplateColumns:`repeat(${t}, 1fr)`,gap:6,minHeight:150},children:n.map((e,t)=>{let n=i===t;return(0,O.jsxs)(`div`,{onClick:()=>a(t),onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault();let n=mv(e);n&&s(t,n)},style:{border:`1px ${e.source?`solid`:`dashed`} ${n?`var(--accent)`:`var(--border)`}`,borderRadius:4,padding:`6px 8px`,minHeight:56,display:`flex`,flexDirection:`column`,gap:2,background:e.source?`var(--surface-1)`:`transparent`,overflow:`hidden`},children:[(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`baseline`,minWidth:0},children:[(0,O.jsx)(`span`,{className:`qz-num`,style:{color:`var(--accent)`,flex:`none`},children:r[t]||`\xA0`}),e.source&&(0,O.jsx)(`span`,{onClick:e=>{e.stopPropagation(),o(t)},title:`Remove panel`,style:{marginLeft:`auto`,color:`var(--text-faint)`,flex:`none`},children:`×`})]}),e.source?(0,O.jsxs)(`span`,{style:{fontSize:12,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},title:e.source.name,children:[e.source.kind===`figdoc`?`▣ `:`□ `,e.source.name]}):(0,O.jsx)(`span`,{style:{fontSize:12,color:`var(--text-faint)`},children:`drop a plot here`})]},t)})})}var gv=e=>Symbol.iterator in e,_v=e=>`entries`in e,vv=(e,t)=>{let n=e instanceof Map?e:new Map(e.entries()),r=t instanceof Map?t:new Map(t.entries());if(n.size!==r.size)return!1;for(let[e,t]of n)if(!r.has(e)||!Object.is(t,r.get(e)))return!1;return!0},yv=(e,t)=>{let n=e[Symbol.iterator](),r=t[Symbol.iterator](),i=n.next(),a=r.next();for(;!i.done&&!a.done;){if(!Object.is(i.value,a.value))return!1;i=n.next(),a=r.next()}return!!i.done&&!!a.done};function bv(e,t){return Object.is(e,t)?!0:typeof e!=`object`||!e||typeof t!=`object`||!t||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?!1:gv(e)&&gv(t)?_v(e)&&_v(t)?vv(e,t):yv(e,t):vv({entries:()=>Object.entries(e)},{entries:()=>Object.entries(t)})}function xv(e){let t=y.useRef(void 0);return n=>{let r=e(n);return bv(t.current,r)?t.current:t.current=r}}var Sv=90;function Cv(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=()=>n(Error(`preview read failed`)),r.readAsDataURL(e)})}async function wv(e){let t=Z.getState();if(e.kind===`window`){let n=t.windowsForSave().find(t=>t.id===e.id);if(!n||n.kind!==`plot`||!n.datasetId)return null;let r=await t.resolveDataset(n.datasetId);if(!r)return null;let i=n.view,a=i.yKeys??r.data.labels.map((e,t)=>t);return{dataset:r.data,x_key:i.xKey??void 0,y_keys:i.yKeys??void 0,x_log:i.xScale===`log`,y_log:i.yScale===`log`,x_scale:i.xScale,y_scale:i.yScale,x_fmt:xl(i.xFmt),y_fmt:xl(i.yFmt),title:i.plotTitle.trim(),x_label:i.xAxisLabel.trim()||void 0,y_label:i.yAxisLabel.trim()||void 0,series_styles:W_(a,i.seriesStyles)}}let n=t.figureDocs.find(t=>t.id===e.id);if(!n)return null;let r;if(r=n.live?n.datasetId?(await t.resolveDataset(n.datasetId))?.data:void 0:n.dataSnapshot,!r)return null;let i=n.config,{x_breaks:a,margins:o,...s}=i.overrides??{};return{dataset:r,x_key:i.xKey??void 0,y_keys:i.yKeys??void 0,x_log:i.xScale===`log`,y_log:i.yScale===`log`,x_scale:i.xScale,y_scale:i.yScale,title:i.title.trim(),x_label:i.xLabel.trim()||void 0,y_label:i.yLabel.trim()||void 0,series_styles:i.seriesStyles??void 0,overrides:Object.keys(s).length>0?s:void 0}}function Tv(e,t){let n=[];for(let{source:r}of e)if(r)if(r.kind===`window`){let e=t.plotWindows.find(e=>e.id===r.id);if(!e||e.kind!==`plot`||!e.datasetId){n.push(`gone`);continue}let i=e.id===t.focusedWindowId?t:e.view;n.push(e.datasetId,t.datasets.find(t=>t.id===e.datasetId)?.data,i.xKey,i.yKeys,i.xScale,i.yScale,i.xFmt,i.yFmt,i.plotTitle,i.xAxisLabel,i.yAxisLabel,i.seriesStyles)}else{let e=t.figureDocs.find(e=>e.id===r.id);if(!e){n.push(`gone`);continue}n.push(e,e.live&&e.datasetId?t.datasets.find(t=>t.id===e.datasetId)?.data:null)}return n}function Ev(){let e=Z(e=>e.plotWindows),t=Z(e=>e.datasets),n=Z(e=>e.figureDocs),r=Z(e=>e.setStatus),[i,a]=(0,y.useState)(2),[o,s]=(0,y.useState)(2),[c,l]=(0,y.useState)(()=>av(2,2)),[u,d]=(0,y.useState)(`(a)`),[f,p]=(0,y.useState)(`nw`),[m,h]=(0,y.useState)(`default`),[g,_]=(0,y.useState)(`pdf`),[v,b]=(0,y.useState)($_.default),[x,S]=(0,y.useState)(null),[C,w]=(0,y.useState)(null),[T,E]=(0,y.useState)(null),[D,O]=(0,y.useState)(!1),k=(0,y.useMemo)(()=>e.filter(e=>e.kind===`plot`&&e.datasetId!==null).map(e=>({kind:`window`,id:e.id,name:_s(e,t)})),[e,t]),A=(0,y.useMemo)(()=>n.filter(Ds).map(e=>({kind:`figdoc`,id:e.id,name:e.name})),[n]),j=(0,y.useMemo)(()=>dv(c,u),[c,u]),M=Z(xv(e=>Tv(c,e)));function N(e,t){let n=Math.max(1,Math.min(4,Math.round(e))),r=Math.max(1,Math.min(4,Math.round(t)));l(e=>ov(e,o,n,r)),a(n),s(r),S(null)}function P(e){h(e);let t=$_[e];t!==void 0&&b(t)}function F(e,t){l(n=>sv(n,e,t)),S(e)}function I(e){let t=x===null?c.findIndex(e=>e.source===null):x;t<0||F(t,e)}function L(e){l(t=>cv(t,e))}function R(e,t){l(n=>lv(n,e,{label:t}))}function z(e,t){l(n=>lv(n,e,{title:t}))}async function B(){if(fv(c)===0)return null;let e=[];for(let t=0;t<c.length;t++){let n=c[t];if(!n.source)continue;let r=await wv(n.source);if(!r)return E(`slot ${t+1}: source "${n.source.name}" no longer exists - clear or reassign it`),null;e.push({figure:r,row:Math.floor(t/o),col:t%o,...n.label===null?{}:{label:n.label},...n.title===null?{}:{title:n.title}})}return e.length===0?null:{rows:i,cols:o,panels:e,style:m,label_format:u,label_pos:f}}(0,y.useEffect)(()=>{let e=!1;if(fv(c)===0){w(null),E(null),O(!1);return}O(!0);let t=setTimeout(()=>{(async()=>{try{let t=await B();if(e)return;if(!t){w(null),E(null);return}let n=await Cv(await sr({...t,fmt:`png`,dpi:Sv}));e||(w(n),E(null))}catch(t){e||E(t instanceof Error?t.message:`preview failed`)}finally{e||O(!1)}})()},400);return()=>{e=!0,clearTimeout(t)}},[c,i,o,m,u,f,M]);async function V(){try{let e=await B();if(!e){r(`assign at least one panel to export a figure page`);return}await or({...e,fmt:g,dpi:v}),r(`exported figure_page.${g}`)}catch(e){r(`export failed: ${e instanceof Error?e.message:`error`}`)}}return{rows:i,cols:o,setGrid:N,slots:c,labels:j,selected:x,setSelected:S,assign:F,assignToNext:I,clear:L,setSlotLabel:R,setSlotTitle:z,labelFormat:u,setLabelFormat:d,labelPos:f,setLabelPos:p,style:m,setStyle:P,fmt:g,setFmt:_,dpi:v,setDpi:b,windowSources:k,docSources:A,preview:C,error:T,busy:D,buildSpec:B,exportNow:V}}function Dv({heading:e,sources:t,onPick:n}){return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:e}),t.length===0?(0,O.jsx)(`div`,{style:{fontSize:12,color:`var(--text-faint)`},children:`(none)`}):t.map(e=>(0,O.jsxs)(`div`,{draggable:!0,onDragStart:t=>t.dataTransfer.setData(pv,JSON.stringify(e)),onClick:()=>n(e),title:`Drag onto a slot, or click to assign`,style:{padding:`3px 6px`,borderRadius:4,border:`1px solid var(--border)`,background:`var(--surface-1)`,fontSize:12,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:[e.kind===`figdoc`?`▣ `:`□ `,e.name]},`${e.kind}:${e.id}`))]})}function Ov(){let e=Z(e=>e.setFigurePageOpen),t=Ev(),n=t.selected,r=n===null?null:t.slots[n];return(0,O.jsx)(jd,{title:`Figure page (multi-panel)`,width:840,onClose:()=>e(!1),children:(0,O.jsxs)(`div`,{style:{display:`flex`,gap:12},children:[(0,O.jsxs)(`div`,{style:{width:170,display:`flex`,flexDirection:`column`,gap:6},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Grid (rows × cols)`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6},children:[(0,O.jsx)(q,{value:t.rows,onChange:e=>t.setGrid(Number(e)||1,t.cols),width:60}),(0,O.jsx)(q,{value:t.cols,onChange:e=>t.setGrid(t.rows,Number(e)||1),width:60})]}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Panel labels`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6},children:[(0,O.jsx)(K,{options:rv.map(e=>({value:e,label:e})),value:t.labelFormat,onChange:e=>t.setLabelFormat(e.target.value)}),(0,O.jsx)(K,{options:iv.map(e=>({value:e,label:e})),value:t.labelPos,onChange:e=>t.setLabelPos(e.target.value)})]}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Style`}),(0,O.jsx)(K,{options:Q_.map(e=>({value:e,label:e})),value:t.style,onChange:e=>t.setStyle(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Format`}),(0,O.jsx)(K,{options:Z_.map(e=>({value:e,label:e.toUpperCase()})),value:t.fmt,onChange:e=>t.setFmt(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`DPI (raster)`}),(0,O.jsx)(q,{value:t.dpi,onChange:e=>t.setDpi(Number(e)||300),width:90}),r?.source&&n!==null&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`label`,{className:`qzk-field-lbl`,style:{marginTop:6},children:[`Panel `,t.labels[n]||`(selected)`]}),(0,O.jsx)(q,{numeric:!1,width:120,value:r.label??``,placeholder:`label (auto)`,onChange:e=>t.setSlotLabel(n,e.trim()===``?null:e)}),(0,O.jsx)(be,{live:!0,value:r.title??``,placeholder:`title (from source)`,onCommit:e=>t.setSlotTitle(n,e.trim()===``?null:e)})]}),(0,O.jsxs)(G,{variant:`primary`,onClick:t.exportNow,style:{marginTop:6},children:[`Export `,t.fmt.toUpperCase()]})]}),(0,O.jsxs)(`div`,{style:{width:190,display:`flex`,flexDirection:`column`,gap:4},children:[(0,O.jsx)(Dv,{heading:`Plot windows`,sources:t.windowSources,onPick:t.assignToNext}),(0,O.jsx)(`div`,{style:{height:4}}),(0,O.jsx)(Dv,{heading:`Saved figures`,sources:t.docSources,onPick:t.assignToNext})]}),(0,O.jsxs)(`div`,{style:{flex:1,minWidth:0,display:`flex`,flexDirection:`column`,gap:8},children:[(0,O.jsx)(hv,{rows:t.rows,cols:t.cols,slots:t.slots,labels:t.labels,selected:t.selected,onSelect:t.setSelected,onClear:t.clear,onDropSource:t.assign}),(0,O.jsx)(`div`,{style:{flex:1,minHeight:220,display:`grid`,placeItems:`center`,background:`var(--surface-1)`,borderRadius:6,padding:8},children:t.error?(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`},children:t.error}):t.preview?(0,O.jsx)(`img`,{src:t.preview,alt:`figure page preview`,style:{maxWidth:`100%`,maxHeight:320,borderRadius:3}}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:t.busy?`rendering…`:`assign plots to grid slots to preview the page`})})]})]})})}function kv(e){if(!e)return[];let t=[];for(let n=0;n<e.data.labels.length;n++)ga(ha(e,n))&&t.push(n);return t}function Av(e,t){if(!e)return 0;let n=e.data.labels.length;for(let r=0;r<n;r++)if(r!==t&&!ga(ha(e,r)))return r;for(let e=0;e<n;e++)if(e!==t)return e;return 0}function jv(e,t,n,r){return t==null?Fm(e,r.length?r:[n]):Im(e,n,t)}function Mv(e,t){let n=e.length;if(n===0)return NaN;if(n===1)return e[0];let r=t/100*(n-1),i=Math.floor(r),a=Math.ceil(r),o=r-i;return e[i]+o*(e[a]-e[i])}function Nv(e,t=1.5,n=``){let r=e.filter(e=>Number.isFinite(e));if(r.length===0)throw Error(`boxStatsClient needs at least one finite value`);let i=[...r].sort((e,t)=>e-t),a=Mv(i,25),o=Mv(i,50),s=Mv(i,75),c=s-a,l,u;if(t===`range`)l=i[0],u=i[i.length-1];else{let e=a-t*c,n=s+t*c,r=i.filter(t=>t>=e),o=i.filter(e=>e<=n);l=r.length?r[0]:a,u=o.length?o[o.length-1]:s}let d=i.filter(e=>e<l||e>u),f=r.reduce((e,t)=>e+t,0)/r.length;return{label:n,q1:a,median:o,q3:s,iqr:c,whislo:l,whishi:u,mean:f,n:r.length,fliers:d}}function Pv(e,t=1.5){return e.map(e=>Nv(e.values,t,e.label))}function Fv(e,t=.08){let n=1/0,r=-1/0;for(let t of e)for(let e of t)Number.isFinite(e)&&(e<n&&(n=e),e>r&&(r=e));if(!Number.isFinite(n)||!Number.isFinite(r))return[0,1];if(r===n){let e=Math.abs(n)*.1||1;return[n-e,r+e]}let i=(r-n)*t;return[n-i,r+i]}function Iv(e,t=.08){let n=0;for(let t of e)for(let e of t)Number.isFinite(e)&&e>n&&(n=e);return n>0?[0,n*(1+t)]:[0,1]}function Lv(e,t=.08){let n=0,r=0;for(let t of e)Number.isFinite(t)&&(t<n&&(n=t),t>r&&(r=t));if(n===0&&r===0)return[0,1];let i=n<0?-n*t:0,a=r>0?r*t:0;return[n-i,r+a]}function Rv(e,t=.6){if(e<=0)return[];let n=t/e/2;return Array.from({length:e},(t,r)=>({cx:(r+.5)/e,halfWidth:n}))}function zv(e,t){let n=0;for(let e of t)Number.isFinite(e)&&e>n&&(n=e);return n<=0?e.map(e=>({value:e,halfWidth:0})):e.map((e,r)=>({value:e,halfWidth:Math.max(0,(t[r]??0)/n)}))}var Bv={left:60,right:20,top:20,bottom:48};function Vv(e,t){return typeof getComputedStyle==`function`&&getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t}function Hv(e){if(!Number.isFinite(e))return`—`;let t=Math.abs(e);return t!==0&&(t<.001||t>=1e5)?e.toExponential(2):Number(e.toPrecision(4)).toString()}function Uv(e,t=14){return e.length>t?`${e.slice(0,t-1)}…`:e}function Wv(e,t,n,r,i){e.fillStyle=i,e.font=`9px 'JetBrains Mono', monospace`,e.textAlign=`center`,e.textBaseline=`bottom`,e.fillText(`n=${r}`,t,n-4)}function Gv(e,t){return{x:Bv.left,y:Bv.top,w:Math.max(1,e-Bv.left-Bv.right),h:Math.max(1,t-Bv.top-Bv.bottom)}}function Kv(e,t,n){let r=e.getContext(`2d`);if(!r)return;let i=t.clientWidth||600,a=t.clientHeight||400,o=typeof window<`u`&&window.devicePixelRatio||1;if(e.width=Math.round(i*o),e.height=Math.round(a*o),r.setTransform(o,0,0,o,0,0),r.clearRect(0,0,i,a),!n)return;let s=Vv(`--text`,`#e6e6e6`),c=Vv(`--text-dim`,`#9aa`),l=Gv(i,a);r.strokeStyle=c,r.lineWidth=1,r.strokeRect(l.x+.5,l.y+.5,l.w,l.h),n.mode===`box`?Xv(r,l,n,s,c):n.mode===`violin`?$v(r,l,n,s,c):n.mode===`qq`?ey(r,l,n,s,c):n.mode===`bar`?Qv(r,l,n,s,c):ty(r,l,n,s,c)}function qv(e,t,n,r,i,a){e.font=`10px 'JetBrains Mono', monospace`,e.strokeStyle=a,e.fillStyle=a,e.textAlign=`right`,e.textBaseline=`middle`;for(let r of zg(n[0],n[1])){let i=t.y+t.h-(r-n[0])/(n[1]-n[0])*t.h;e.beginPath(),e.moveTo(t.x-4,i),e.lineTo(t.x,i),e.stroke(),e.fillText(Hv(r),t.x-7,i)}e.save(),e.fillStyle=i,e.font=`11px 'JetBrains Mono', monospace`,e.translate(14,t.y+t.h/2),e.rotate(-Math.PI/2),e.textAlign=`center`,e.textBaseline=`top`,e.fillText(r,0,0),e.restore()}function Jv(e,t,n,r,i,a,o){e.font=`10px 'JetBrains Mono', monospace`,e.fillStyle=o,e.textAlign=`center`,e.textBaseline=`top`,n.forEach((n,i)=>{let a=t.x+n.cx*t.w;e.fillText(Uv(r[i]??``),a,t.y+t.h+6)}),e.fillStyle=a,e.font=`11px 'JetBrains Mono', monospace`,e.fillText(i,t.x+t.w/2,t.y+t.h+30)}function Yv(e,t,n,r,i,a){e.font=`10px 'JetBrains Mono', monospace`,e.fillStyle=a,e.strokeStyle=a,e.textAlign=`center`,e.textBaseline=`top`;for(let r of zg(n[0],n[1])){let i=t.x+(r-n[0])/(n[1]-n[0])*t.w;e.beginPath(),e.moveTo(i,t.y+t.h),e.lineTo(i,t.y+t.h+4),e.stroke(),e.fillText(Hv(r),i,t.y+t.h+6)}e.fillStyle=i,e.font=`11px 'JetBrains Mono', monospace`,e.fillText(r,t.x+t.w/2,t.y+t.h+24)}function Xv(e,t,n,r,i){if(!n.boxes.length)return;let a=Fv(n.boxes.map(e=>[e.whislo,e.whishi,...e.fliers]));qv(e,t,a,n.valueLabel,r,i);let o=Rv(n.boxes.length);Jv(e,t,o,n.boxes.map(e=>e.label),n.groupLabel,r,i);let s=e=>t.y+t.h-(e-a[0])/(a[1]-a[0])*t.h;n.boxes.forEach((n,r)=>{let a=o[r],c=t.x+a.cx*t.w,l=a.halfWidth*t.w,u=R_(r);e.strokeStyle=u,e.lineWidth=1.25,e.beginPath(),e.moveTo(c,s(n.whislo)),e.lineTo(c,s(n.q1)),e.moveTo(c,s(n.q3)),e.lineTo(c,s(n.whishi)),e.stroke();let d=l*.5;e.beginPath(),e.moveTo(c-d,s(n.whislo)),e.lineTo(c+d,s(n.whislo)),e.moveTo(c-d,s(n.whishi)),e.lineTo(c+d,s(n.whishi)),e.stroke();let f=s(n.q3),p=s(n.q1);e.globalAlpha=.28,e.fillStyle=u,e.fillRect(c-l,f,l*2,Math.max(1,p-f)),e.globalAlpha=1,e.strokeStyle=u,e.strokeRect(c-l,f,l*2,Math.max(1,p-f)),e.beginPath(),e.moveTo(c-l,s(n.median)),e.lineTo(c+l,s(n.median)),e.lineWidth=2,e.stroke(),e.fillStyle=u;for(let t of n.fliers)e.beginPath(),e.arc(c,s(t),2.5,0,2*Math.PI),e.fill();Wv(e,c,t.y,n.n,i)})}function Zv(e,t,n,r,i,a){e.strokeStyle=a,e.lineWidth=1.25,e.beginPath(),e.moveTo(t,n),e.lineTo(t,r),e.moveTo(t-i,n),e.lineTo(t+i,n),e.moveTo(t-i,r),e.lineTo(t+i,r),e.stroke()}function Qv(e,t,n,r,i){let a=n.data.groups;if(!a.length)return;let o=n.data.seriesLabels.length,s=[0];a.forEach(e=>{if(n.stacked){s.push(da(e.series));let t=e.series[e.series.length-1];t&&Number.isFinite(t.sem)&&s.push(da(e.series)+t.sem,da(e.series)-t.sem)}else e.series.forEach(e=>{Number.isFinite(e.mean)&&(s.push(e.mean),Number.isFinite(e.sem)&&s.push(e.mean+e.sem,e.mean-e.sem))})});let c=Lv(s);qv(e,t,c,n.valueLabel,r,i);let l=Rv(a.length);Jv(e,t,l,a.map(e=>e.label),n.groupLabel,r,i);let u=e=>t.y+t.h-(e-c[0])/(c[1]-c[0])*t.h,d=u(0);a.forEach((a,s)=>{let c=l[s],f=t.x+c.cx*t.w,p=c.halfWidth*2*t.w;if(n.stacked){let n=c.halfWidth*.85*t.w;ua(a.series).forEach((t,r)=>{let i=R_(r),a=u(t.top),o=u(t.base);e.globalAlpha=.75,e.fillStyle=i,e.fillRect(f-n,a,n*2,Math.max(1,o-a)),e.globalAlpha=1,e.strokeStyle=i,e.lineWidth=1,e.strokeRect(f-n,a,n*2,Math.max(1,o-a))});let i=a.series[a.series.length-1];if(i&&Number.isFinite(i.sem)){let t=da(a.series);Zv(e,f,u(t+i.sem),u(t-i.sem),n*.5,r)}}else{let t=la(o);a.series.forEach((n,a)=>{let o=t[a],s=f+o.offset*p,c=o.halfWidth*p,l=R_(a),m=Number.isFinite(n.mean)?n.mean:0,h=u(Math.max(m,0)),g=u(Math.min(m,0));e.globalAlpha=.75,e.fillStyle=l,e.fillRect(s-c,h,c*2,Math.max(1,g-h)),e.globalAlpha=1,e.strokeStyle=l,e.lineWidth=1,e.strokeRect(s-c,h,c*2,Math.max(1,g-h)),Number.isFinite(n.sem)&&Zv(e,s,u(m+n.sem),u(m-n.sem),c*.6,r),n.n>0&&Wv(e,s,Math.min(h,d),n.n,i)})}})}function $v(e,t,n,r,i){if(!n.violins.length)return;let a=Fv(n.violins.map(e=>[e.x[0]??0,e.x[e.x.length-1]??0]));qv(e,t,a,n.valueLabel,r,i);let o=Rv(n.violins.length);Jv(e,t,o,n.violins.map(e=>e.label),n.groupLabel,r,i);let s=e=>t.y+t.h-(e-a[0])/(a[1]-a[0])*t.h;n.violins.forEach((n,a)=>{let c=o[a],l=t.x+c.cx*t.w,u=c.halfWidth*t.w,d=R_(a),f=zv(n.x,n.density);if(f.length<2)return;e.beginPath(),f.forEach((t,n)=>{let r=l+t.halfWidth*u,i=s(t.value);n===0?e.moveTo(r,i):e.lineTo(r,i)});for(let t=f.length-1;t>=0;t--){let n=f[t];e.lineTo(l-n.halfWidth*u,s(n.value))}e.closePath(),e.globalAlpha=.32,e.fillStyle=d,e.fill(),e.globalAlpha=1,e.strokeStyle=d,e.lineWidth=1.25,e.stroke();let[p,m,h]=n.quartiles;e.strokeStyle=r,e.lineWidth=3,e.beginPath(),e.moveTo(l,s(p)),e.lineTo(l,s(h)),e.stroke(),e.fillStyle=r,e.beginPath(),e.arc(l,s(m),2,0,2*Math.PI),e.fill(),Wv(e,l,t.y,n.n,i)})}function ey(e,t,n,r,i){if(!n.theo.length)return;let a=Fv([n.theo]),o=[n.slope*a[0]+n.intercept,n.slope*a[1]+n.intercept],s=Fv([n.obs,o]);Yv(e,t,a,`Theoretical quantiles (${n.dist})`,r,i),qv(e,t,s,`Sample quantiles (${n.valueLabel})`,r,i);let c=e=>t.x+(e-a[0])/(a[1]-a[0])*t.w,l=e=>t.y+t.h-(e-s[0])/(s[1]-s[0])*t.h;e.strokeStyle=i,e.lineWidth=1,e.setLineDash([5,4]),e.beginPath(),e.moveTo(c(a[0]),l(o[0])),e.lineTo(c(a[1]),l(o[1])),e.stroke(),e.setLineDash([]),e.fillStyle=R_(0);for(let t=0;t<n.theo.length;t++)e.beginPath(),e.arc(c(n.theo[t]),l(n.obs[t]),2.5,0,2*Math.PI),e.fill()}function ty(e,t,n,r,i){if(!n.counts.length)return;let a=Fv([n.edges]),o=Iv([n.counts,n.fit?.pdf??[]]);Yv(e,t,a,n.valueLabel,r,i),qv(e,t,o,n.density?`density`:`count`,r,i);let s=e=>t.x+(e-a[0])/(a[1]-a[0])*t.w,c=e=>t.y+t.h-(e-o[0])/(o[1]-o[0])*t.h,l=R_(0);for(let r=0;r<n.counts.length;r++){let i=s(n.edges[r]),a=s(n.edges[r+1]),o=c(n.counts[r]),u=Math.min(i,a),d=Math.abs(a-i),f=t.y+t.h-o;e.globalAlpha=.45,e.fillStyle=l,e.fillRect(u,o,d,f),e.globalAlpha=1,e.strokeStyle=l,e.lineWidth=1,e.strokeRect(u,o,d,f)}n.fit&&n.fit.x.length&&(e.strokeStyle=r,e.lineWidth=1.5,e.beginPath(),n.fit.x.forEach((t,r)=>{let i=s(t),a=c(n.fit.pdf[r]);r===0?e.moveTo(i,a):e.lineTo(i,a)}),e.stroke())}var ny={left:42,right:10,top:10,bottom:26};function ry(e,t,n,r,i){let a=n.data,o=(a[0]??[]).map(e=>e??NaN),s=a.slice(1).map(e=>e.map(e=>e??NaN)),c=Fv([o]),l=Fv(s),u=i?ny.top+12:ny.top,d=t.x+ny.left,f=t.y+u,p=Math.max(1,t.w-ny.left-ny.right),m=Math.max(1,t.h-u-ny.bottom),h=typeof getComputedStyle==`function`&&getComputedStyle(document.documentElement).getPropertyValue(`--border`).trim()||`#556`,g=typeof getComputedStyle==`function`&&getComputedStyle(document.documentElement).getPropertyValue(`--text`).trim()||`#ddd`;e.strokeStyle=h,e.lineWidth=1,e.strokeRect(d+.5,f+.5,p,m),i&&(e.fillStyle=g,e.font=`10px 'JetBrains Mono', monospace`,e.textAlign=`left`,e.textBaseline=`top`,e.fillText(i,d,t.y));let _=e=>d+(e-c[0])/(c[1]-c[0])*p,v=e=>f+m-(e-l[0])/(l[1]-l[0])*m;s.forEach((t,n)=>{let i=R_(n);if(e.strokeStyle=i,e.fillStyle=i,e.lineWidth=1.5,r===`line`){e.beginPath();let n=!1;for(let r=0;r<t.length;r++){let i=t[r],a=o[r];if(!Number.isFinite(a)||!Number.isFinite(i)){n=!1;continue}let s=_(a),c=v(i);n?e.lineTo(s,c):e.moveTo(s,c),n=!0}e.stroke()}else for(let n=0;n<t.length;n++){let r=t[n],i=o[n];!Number.isFinite(i)||!Number.isFinite(r)||(e.beginPath(),e.arc(_(i),v(r),2,0,2*Math.PI),e.fill())}})}function iy(e,t){let n=e.getContext(`2d`);if(!n)return null;let r=t.clientWidth||360,i=t.clientHeight||200,a=typeof window<`u`&&window.devicePixelRatio||1;return e.width=Math.round(r*a),e.height=Math.round(i*a),n.setTransform(a,0,0,a,0,0),n.clearRect(0,0,r,i),{ctx:n,W:r,H:i}}function ay(e,t,n,r){let i=iy(e,t);if(!i)return;let{ctx:a,W:o,H:s}=i;ry(a,{x:0,y:0,w:o,h:s},n,r)}function oy(e,t,n,r){let i=iy(e,t);if(!i||n.length===0)return;let{ctx:a,W:o,H:s}=i,c=Math.ceil(Math.sqrt(n.length)),l=Math.ceil(n.length/c),u=o/c,d=s/l;n.forEach((e,t)=>{let n=t%c,i=Math.floor(t/c);ry(a,{x:n*u,y:i*d,w:u,h:d},e.payload,r,e.label)})}function sy({render:e}){let t=Z(e=>e.theme),n=Z(e=>e.accent),r=(0,y.useRef)(null),i=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let t=r.current,n=i.current;if(!t||!n)return;let a=()=>{if(e.kind===`xy`)e.facets&&e.facets.length>0?oy(n,t,e.facets,e.mark):ay(n,t,e.payload,e.mark);else if(e.kind===`box`)Kv(n,t,{mode:`box`,boxes:e.boxes,valueLabel:e.valueLabel,groupLabel:e.groupLabel});else if(e.kind===`bar`)Kv(n,t,{mode:`bar`,data:e.data,valueLabel:e.valueLabel,groupLabel:e.groupLabel,stacked:e.stacked});else{let e=n.getContext(`2d`);e&&e.clearRect(0,0,n.width,n.height)}};a();let o=new ResizeObserver(a);return o.observe(t),()=>o.disconnect()},[e,t,n]),(0,O.jsxs)(`div`,{className:`qzk-graph-preview`,children:[(0,O.jsx)(`div`,{ref:r,style:{position:`absolute`,inset:0},children:(0,O.jsx)(`canvas`,{ref:i,style:{width:`100%`,height:`100%`,display:`block`}})}),e.kind===`message`&&(0,O.jsx)(`div`,{className:`qzk-graph-preview-msg${e.tone===`note`?` note`:``}`,children:e.message}),e.kind===`box`&&e.violin&&(0,O.jsx)(`div`,{className:`qzk-graph-preview-approx`,children:`violin preview shows box · KDE renders on Send to Stage`})]})}var cy=[`scatter`,`line`],ly=[`box`,`violin`,`bar`];function uy(){return{version:1,zones:{x:null,y:[],group:null,facet:null},mark:`scatter`}}function dy(e,t){return e===null||t===null?e===t:e.datasetId===t.datasetId&&e.channel===t.channel}function fy(e){let t=e.zones;return(t.x??t.y[0]??t.group??t.facet)?.datasetId??null}function py(e,t,n){let r={...e.zones};return t===`y`?r.y.some(e=>dy(e,n))||(r.y=[...r.y,n]):r[t]=n,{...e,zones:r}}function my(e,t,n){let r={...e.zones};return t===`y`?r.y=n?r.y.filter(e=>!dy(e,n)):[]:r[t]=null,{...e,zones:r}}function hy(e,t){if(e.zones.y.length===0)return null;let n=e.zones.x;return n&&ga(t.typeOf(n))?`categorical`:`xy`}function gy(e,t){let n=hy(e,t);return n===null?[]:n===`categorical`?[...ly]:[...cy]}function _y(e,t){return hy(e,t)===`categorical`?`box`:t.xMonotonic===!0?`line`:`scatter`}function vy(e,t){let n=gy(e,t);return n.length===0||n.includes(e.mark)?e.mark:_y(e,t)}function yy(e,t){let n=gy(e,t);return n.length===0?e.mark:n[(n.indexOf(e.mark)+1)%n.length]}function by(e,t){let n=vy(e,t);return n===e.mark?e:{...e,mark:n}}function xy(e,t){let n=t<0?e.time:e.values.map(e=>e[t]),r=NaN,i=!0,a=!0;for(let e of n)Number.isFinite(e)&&(Number.isFinite(r)&&(e<r&&(i=!1),e>r&&(a=!1)),r=e);return i||a}function Sy(e,t){let n=e=>t.find(t=>t.id===e),r=e=>{let t=n(e.datasetId);return!t||e.channel<0?`continuous`:ha(t,e.channel)},i=e.zones.x,a;if(i){let e=n(i.datasetId);e&&(a=xy(e.data,i.channel))}return{typeOf:r,xMonotonic:a}}var Cy=e=>({kind:`message`,message:e,tone:`hint`}),wy=e=>({kind:`message`,message:e,tone:`note`});function Ty(e,t){return t<0?String(e.metadata?.x_column_name??`x`):e.labels[t]??`col ${t}`}function Ey(e,t,n,r){if(r===null)return _a(e,null,t,n);let i=(t===null?e.time:e.values.map(e=>e[t])).map(e=>Number.isFinite(e)?e:null),a=[...new Set(e.values.map(e=>e[r]).filter(e=>Number.isFinite(e)))].sort((e,t)=>e-t),o=[i],s=[],c=Ty(e,r);for(let t of n){let n=Ty(e,t);for(let i of a)o.push(e.values.map(e=>e[r]===i&&Number.isFinite(e[t])?e[t]:null)),s.push({label:`${n} (${c}=${i})`,unit:e.units[t]??``,axis:0})}return{data:o,series:s,xLabel:t===null?String(e.metadata?.x_column_long||e.metadata?.x_column_name||`x`):e.labels[t]??`x`,xUnit:t===null?String(e.metadata?.x_column_unit??``):e.units[t]??``}}function Dy(e,t){let n=fy(e);if(n===null)return Cy(`Drop a channel into the X and Y wells to build a plot.`);let r=t.find(e=>e.id===n);if(!r)return wy(`The spec's dataset is not loaded.`);let i=$a(r);if(!i||i.time.length===0)return Cy(`No rows to plot (all excluded or filtered out).`);if(e.zones.y.length===0)return Cy(`Add a Y channel to plot a value.`);let a=e.zones.x?.channel??null,o=e.zones.y.map(e=>e.channel);if(e.mark===`scatter`||e.mark===`line`){let t=e.zones.group?.channel??null,n=e.zones.facet?.channel??null,r=n===null?void 0:fu(i,n,a,o);return{kind:`xy`,payload:Ey(i,a,o,t),mark:e.mark,grouped:t!==null,...r&&r.length>0?{facets:r}:{}}}if(e.mark===`box`||e.mark===`violin`){let t=e.zones.x,n=t&&ga(ha(r,t.channel))?t.channel:null,a=o[0],s=jv(i,n,a,o).filter(e=>e.values.length>0);return s.length===0?Cy(`No finite values to group.`):{kind:`box`,boxes:Pv(s),valueLabel:Ty(i,a),groupLabel:n===null?`channel`:Ty(i,n),violin:e.mark===`violin`}}let s=e.zones.x,c=s&&ga(ha(r,s.channel))?s.channel:null;if(c===null)return wy(`Bar charts need a categorical X column.`);let l=o.map(e=>Ty(i,e)),u=ca(i,c,o,l);return u.groups.length===0?Cy(`No finite values to group.`):{kind:`bar`,data:u,valueLabel:l.length>1?`value`:l[0],groupLabel:Ty(i,c),stacked:!1}}function Oy(){let e=pd(),t=Z(e=>e.datasets),n=Z(e=>e.setXKey),r=Z(e=>e.setYKeys),i=Z(e=>e.setStatMode),a=Z(e=>e.seedStatStage),o=Z(e=>e.facetByColumn),s=Z(e=>e.setStatus),c=Z(e=>e.setStageTab),[l,u]=(0,y.useState)(uy),d=fy(l),f=(0,y.useMemo)(()=>d===null?e:t.find(e=>e.id===d)??null,[d,t,e]);(0,y.useEffect)(()=>{u(e=>{let t=fy(e);return t!==null&&Z.getState().datasets.some(e=>e.id===t)?e:uy()})},[e?.id]);let p=Z(e=>e.graphBuilderSeed);(0,y.useEffect)(()=>{if(!p)return;let e=fy(p);if(e!==null&&Z.getState().datasets.some(t=>t.id===e)){let e=Sy(p,Z.getState().datasets);u({...p,mark:_y(p,e)})}Z.getState().clearGraphBuilderSeed()},[p]);let m=(0,y.useMemo)(()=>Sy(l,t),[l,t]),h=(0,y.useMemo)(()=>Dy(l,t),[l,t]),g=(0,y.useMemo)(()=>gy(l,m),[l,m]),_=(0,y.useMemo)(()=>hy(l,m),[l,m]),v=(0,y.useMemo)(()=>f?f.data.labels.map((e,t)=>({index:t,label:e})):[],[f]),b=e=>f?.data.labels[e]??`col ${e}`,x=e=>{let t=l.zones;if(e===`y`)return t.y.map(e=>({channel:e.channel,label:b(e.channel)}));let n=t[e];return n?[{channel:n.channel,label:b(n.channel)}]:[]},S=(e,n)=>{if(!f)return;let r={datasetId:f.id,channel:n};u(n=>{let i=py(n,e,r);return by(i,Sy(i,t))})},C=(e,n)=>{u(r=>{let i={datasetId:r.zones.y[0]?.datasetId??f?.id??``,channel:n},a=my(r,e,e===`y`?i:void 0);return by(a,Sy(a,t))})},w=()=>u(e=>({...e,mark:yy(e,Sy(e,t))})),T=()=>u(uy()),E=_!==null;function D(){if(!f)return;Z.getState().activeId!==f.id&&Z.getState().setActive(f.id);let e=Qc(f);if(Z.getState().stageTab!==e&&c(e),l.mark===`scatter`||l.mark===`line`){if(n(l.zones.x?.channel??null),r(l.zones.y.map(e=>e.channel)),i(!1),l.zones.group&&X(`series-split by group is preview-only in v1 (lands with faceting)`,`info`),l.zones.facet){o(f.id,l.zones.facet.channel),s(`sent ${l.mark} to the plot, faceted by ${b(l.zones.facet.channel)}`);return}s(`sent ${l.mark} to the plot`);return}if(l.mark===`box`||l.mark===`violin`){let e=l.zones.x,t=e&&ga(ha(f,e.channel))?e.channel:null;a({mode:l.mark,groupCol:t,valueCol:l.zones.y[0].channel}),s(`sent ${l.mark} plot to the stat stage`);return}let t=l.zones.x,u=t&&ga(ha(f,t.channel))?t.channel:null;if(u===null){X(`Bar charts need a categorical X column.`,`info`);return}a({mode:`bar`,groupCol:u,valueCol:l.zones.y[0]?.channel??0}),s(`sent bar chart to the stat stage`)}return{hasData:!!f,datasetId:f?.id??null,spec:l,mark:l.mark,family:_,marks:g,render:h,options:v,chips:x,assign:S,remove:C,cycle:w,reset:T,canSend:E,sendToStage:D}}var ky={scatter:`⣿ scatter`,line:`╱ line`,box:`▯ box`,violin:`◈ violin`,bar:`▭ bar`};function Ay(){let e=Z(e=>e.setGraphBuilderOpen),t=Oy(),n={color:`var(--text-faint)`};return(0,O.jsx)(jd,{title:`Graph Builder`,width:420,onClose:()=>e(!1),children:t.hasData?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`div`,{className:`qzk-zone-wells`,children:[(0,O.jsx)(em,{title:`X`,hint:`continuous → scatter/line · categorical → box`,datasetId:t.datasetId,options:t.options,assigned:t.chips(`x`),onAssign:e=>t.assign(`x`,e),onRemove:e=>t.remove(`x`,e)}),(0,O.jsx)(em,{title:`Y`,hint:`value axis (one or more)`,multiple:!0,datasetId:t.datasetId,options:t.options,assigned:t.chips(`y`),onAssign:e=>t.assign(`y`,e),onRemove:e=>t.remove(`y`,e)}),(0,O.jsx)(em,{title:`Group`,hint:`colour split by category`,datasetId:t.datasetId,options:t.options,assigned:t.chips(`group`),onAssign:e=>t.assign(`group`,e),onRemove:e=>t.remove(`group`,e)}),(0,O.jsx)(em,{title:`Facet`,datasetId:t.datasetId,options:t.options,assigned:t.chips(`facet`),note:(0,O.jsx)(`span`,{style:n,children:`scatter/line: previews as small multiples below and "Send to Stage" carries it to the main plot as a facet grid. Box/violin/bar don't facet yet.`}),onAssign:e=>t.assign(`facet`,e),onRemove:e=>t.remove(`facet`,e)})]}),(0,O.jsxs)(`div`,{className:`qzk-graph-mark-row`,children:[(0,O.jsxs)(`span`,{className:`qzk-graph-mark-label`,children:[ky[t.mark]??t.mark,t.family&&(0,O.jsxs)(`span`,{style:n,children:[` · `,t.family]})]}),t.marks.length>1&&(0,O.jsx)(G,{size:`sm`,onClick:t.cycle,title:`Cycle through the marks valid for these columns`,children:`cycle ↻`})]}),(0,O.jsx)(sy,{render:t.render}),(0,O.jsxs)(`div`,{className:`qzk-graph-actions`,children:[(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:!t.canSend,onClick:t.sendToStage,style:{flex:1},children:`Send to Stage`}),(0,O.jsx)(G,{size:`sm`,onClick:t.reset,children:`Reset`})]})]}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:n,children:`Select a dataset to build a graph.`})})}function jy(e,t){return Array.isArray(e)&&e.length===t&&e.every(e=>e===null||typeof e==`number`)}function My(e){if(typeof e!=`object`||!e)return!1;let t=e;if(t.version!==1||typeof t.name!=`string`||!t.name.trim()||typeof t.equation!=`string`||!t.equation.trim()||!Array.isArray(t.params)||!t.params.every(e=>typeof e==`string`))return!1;let n=t.params.length;return!Array.isArray(t.guesses)||t.guesses.length!==n||!t.guesses.every(e=>typeof e==`number`&&Number.isFinite(e))?!1:jy(t.lower,n)&&jy(t.upper,n)}var Ny=`qz.customFitModels`;function Py(){try{let e=localStorage.getItem(Ny);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(My):[]}catch{return[]}}function Fy(e){let t=Py().filter(t=>t.name!==e.name);t.push(e);try{localStorage.setItem(Ny,JSON.stringify(t))}catch{}return t}function Iy(e){let t=Py().filter(t=>t.name!==e);try{localStorage.setItem(Ny,JSON.stringify(t))}catch{}return t}async function Ly(e){return qe(await fetch(`/api/fitting/bumps`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}))}function Ry(e){return typeof e==`object`&&!!e&&typeof e.job_id==`string`}var zy=class extends Error{constructor(e){super(`job ${e} cancelled`),this.name=`JobCancelledError`}};async function By(e){return qe(await fetch(`/api/jobs/${e}`))}async function Vy(e){return(await qe(await fetch(`/api/jobs/${e}/result`))).result}async function Hy(e){return qe(await fetch(`/api/jobs/${e}/cancel`,{method:`POST`}))}function Uy(e){return new Promise(t=>setTimeout(t,e))}async function Wy(e,t,n=1e3){for(;;){let r=await By(e);if(t?.(r.progress,r.message),r.status===`done`)return Vy(e);if(r.status===`error`)throw Error(r.error||`job failed`);if(r.status===`cancelled`)throw new zy(e);await Uy(n)}}var Gy={samples:1e4,burn:100,pop:10};function Ky(){let e=pd(),[t,n]=(0,y.useState)(`parity`),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null),d=(0,y.useRef)(null);function f(e){n(e),i(null),u(null)}async function p(n){if(!(!e||t===`parity`||a)){o(!0),u(null),i(null);try{let r=await Z.getState().resolveDataset(e.id);if(!r)return;let a=$a(r);if(!a)return;let o=await Ly({model:n,x:a.time,y:a.values.map(e=>e[0]),engine:t,...t===`dream`?Gy:{}}),s;if(Ry(o)?(d.current=o.job_id,c(0),s=await Wy(o.job_id,e=>c(e))):s=o,i(s),Array.isArray(s.yFit)){let e=r.data.time.length,t=Ya(e,Za(r)),n=t.length===e?s.yFit:eo(s.yFit,t,e);Z.getState().setFitOverlay({datasetId:r.id,y:n})}}catch(e){e instanceof zy||u(e instanceof Error?e.message:`bumps fit failed`)}finally{d.current=null,o(!1),c(null)}}}async function m(){let e=d.current;if(e)try{await Hy(e)}catch{}}return{hasDataset:e!=null,engine:t,setEngine:f,result:r,busy:a,progress:s,error:l,run:p,cancel:m}}var qy=[{value:`parity`,label:`Parity (default)`},{value:`amoeba`,label:`bumps — amoeba (Nelder-Mead)`},{value:`lm`,label:`bumps — Levenberg-Marquardt`},{value:`de`,label:`bumps — differential evolution`},{value:`dream`,label:`bumps — DREAM (posterior)`}];function Jy({modelName:e}){let{hasDataset:t,engine:n,setEngine:r,result:i,busy:a,progress:o,error:s,run:c,cancel:l}=Ky(),u=i?.uncertainty_kind===`posterior`?`posterior (DREAM 68% interval)`:`Hessian estimate`,d=(i?.popt??[]).map((e,t)=>[i?.paramNames[t]??`p${t+1}`,Y(e),Y(i?.uncertainties[t])]);return(0,O.jsxs)(`div`,{style:{marginTop:12,paddingTop:10,borderTop:`1px solid var(--border-soft)`},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Engine`}),(0,O.jsx)(K,{options:qy.map(e=>({value:e.value,label:e.label})),value:n,onChange:e=>r(e.target.value)}),n!==`parity`&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:10,alignItems:`center`},children:[(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:!t||a,onClick:()=>void c(e),children:a?`Fitting…`:n===`dream`?`Sample posterior`:`Fit (bumps)`}),a&&n===`dream`&&(0,O.jsx)(G,{size:`sm`,onClick:()=>void l(),children:`Cancel`})]}),a&&n===`dream`&&(0,O.jsxs)(`div`,{style:{marginTop:8},children:[(0,O.jsx)(`div`,{"aria-label":`DREAM progress`,style:{height:4,borderRadius:2,background:`var(--surface-2)`,overflow:`hidden`},children:(0,O.jsx)(`div`,{style:{width:`${Math.round((o??0)*100)}%`,height:`100%`,background:`var(--accent)`}})}),(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:4,color:`var(--text-faint)`,fontFamily:`var(--font-mono)`},children:[Math.round((o??0)*100),`% — sampling posterior`]})]}),s&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:s}),i&&!a&&(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(je,{columns:[`param`,`value`,`± ${i.uncertainty_kind}`],rows:d}),(0,O.jsx)(je,{columns:[`stat`,`value`],rows:[[`χ²red`,Y(i.chisq)],[`engine`,i.engine]]}),(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:6,color:`var(--text-faint)`},children:[`Uncertainties: `,u]})]})]})]})}function Yy(e){let[t,n]=(0,y.useState)(``),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null);async function p(){if(!e)return;let n=Number(t);if(t.trim()===``||!Number.isFinite(n)){f(`enter a numeric X`);return}u(!0),f(null);try{let t=await ht({model:e.model,equation:e.equation,params:e.params,x_min:e.xMin,x_max:e.xMax,x:n});o(t.y??null),c(null)}catch(e){f(e instanceof Error?e.message:`find Y failed`)}finally{u(!1)}}async function m(){if(!e)return;let t=Number(r);if(r.trim()===``||!Number.isFinite(t)){f(`enter a numeric Y`);return}u(!0),f(null);try{let n=await ht({model:e.model,equation:e.equation,params:e.params,x_min:e.xMin,x_max:e.xMax,y:t});c(n.x??[]),o(null)}catch(e){f(e instanceof Error?e.message:`find X failed`)}finally{u(!1)}}return{xInput:t,setXInput:n,yInput:r,setYInput:i,yResult:a,xResults:s,busy:l,error:d,findY:p,findX:m}}function Xy({target:e}){let t=Yy(e);return(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Find X / Y`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,alignItems:`center`,marginTop:4,flexWrap:`wrap`},children:[(0,O.jsx)(q,{value:t.xInput,onChange:t.setXInput,placeholder:`X`,width:64,"aria-label":`find Y at this X`}),(0,O.jsx)(G,{size:`sm`,disabled:t.busy,onClick:()=>void t.findY(),children:`→ Y`}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`·`}),(0,O.jsx)(q,{value:t.yInput,onChange:t.setYInput,placeholder:`Y`,width:64,"aria-label":`find X at this Y`}),(0,O.jsx)(G,{size:`sm`,disabled:t.busy,onClick:()=>void t.findX(),children:`→ X`})]}),t.error&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:6,color:`var(--danger)`},children:t.error}),t.yResult!=null&&(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:6,fontFamily:`var(--font-mono)`},children:[`Y = `,Y(t.yResult)]}),t.xResults!=null&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:6,fontFamily:`var(--font-mono)`},children:t.xResults.length===0?`no crossings in the fitted range`:`X = ${t.xResults.map(e=>Y(e)).join(`, `)}`})]})}function Zy(e,t){return e.map(e=>t.find(t=>t.name===e)??{name:e,guess:`1`,min:``,max:``})}function Qy(e){return e.params.map((t,n)=>{let r=e.lower[n],i=e.upper[n];return{name:t,guess:String(e.guesses[n]??1),min:r===null?``:String(r),max:i===null?``:String(i)}})}function $y(e,t){let n=t?.debounceMs??350,r=pd(),i=Z(e=>e.setFitOverlay),[a,o]=(0,y.useState)(e?.equation??``),[s,c]=(0,y.useState)(e?`ok`:`idle`),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(e?Qy(e):[]),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)(e?[...e.params]:[]),[S,C]=(0,y.useState)(e?.name??``),w=(0,y.useRef)(d);w.current=d;let T=(0,y.useMemo)(()=>{let e=$a(r);if(!e)return null;let t=e.time.filter(e=>Number.isFinite(e));return t.length===0?null:{min:Math.min(...t),max:Math.max(...t)}},[r]);(0,y.useEffect)(()=>{if(!a.trim()){c(`idle`),u(null),f([]),x([]);return}c(`checking`);let e=!1,t=setTimeout(()=>{pt(a).then(t=>{e||(t.ok?(c(`ok`),u(null),x(t.params),f(Zy(t.params,w.current))):(c(`error`),u(t.error??`invalid equation`)))}).catch(t=>{e||(c(`error`),u(t instanceof Error?t.message:`validation unavailable`))})},n);return()=>{e=!0,clearTimeout(t)}},[a,n]);function E(e,t,n){f(r=>r.map((r,i)=>i===e?{...r,[t]:n}:r))}function D(e,t,n){if(e.trim()===``)return null;let r=Number(e);if(!Number.isFinite(r))throw Error(`${t} for "${n}" is not a number`);return r}async function O(){if(!(!r||s!==`ok`||d.length===0)){m(!0),g(null);try{let e=d.map(e=>{let t=Number(e.guess);if(e.guess.trim()===``||!Number.isFinite(t))throw Error(`guess for "${e.name}" is not a number`);return t}),t=d.map(e=>D(e.min,`min`,e.name)),n=d.map(e=>D(e.max,`max`,e.name)),o=await Z.getState().resolveDataset(r.id);if(!o)return;let s=$a(o);if(!s)return;let c=await mt({equation:a,x:s.time,y:s.values.map(e=>e[0]),guesses:e,...t.some(e=>e!==null)?{lower:t}:{},...n.some(e=>e!==null)?{upper:n}:{}});v(c),Z.getState().recordMacro(`Fit equation ${S||a}`,`qz.fitEquation(${JSON.stringify(a)})`);let l=c.yFit;if(Array.isArray(l)){let e=o.data.time.length,t=Ya(e,Za(o)),n=t.length===e?l:eo(l,t,e);i({datasetId:o.id,y:n})}}catch(e){g(e instanceof Error?e.message:`fit failed`)}finally{m(!1)}}}function k(){v(null),g(null),i(null)}function A(){let e=S.trim();return!e||s!==`ok`||d.length===0?null:Fy({version:1,name:e,equation:a,params:d.map(e=>e.name),guesses:d.map(e=>{let t=Number(e.guess);return Number.isFinite(t)&&e.guess.trim()!==``?t:1}),lower:d.map(e=>e.min.trim()===``||!Number.isFinite(Number(e.min))?null:Number(e.min)),upper:d.map(e=>e.max.trim()===``||!Number.isFinite(Number(e.max))?null:Number(e.max))})}function j(e){return Iy(e)}return{active:r,equation:a,setEquation:o,status:s,validationError:l,rows:d,setRow:E,busy:p,error:h,result:_,paramNames:b,fit:O,clear:k,modelName:S,setModelName:C,save:A,remove:j,xRange:T}}function eb({initial:e,onSavedChange:t}){let n=$y(e),r=()=>{let e=n.save();e&&t(e)},i=()=>{e&&t(n.remove(e.name))},a=n.result?.params??[],o=n.result?.errors??[],s=n.result?.paramNames??n.paramNames,c=a.map((e,t)=>[s[t]??`p${t}`,Y(e),Y(o[t])]),l=n.result?[[`R²`,Y(n.result.R2)],[`RMSE`,Y(n.result.RMSE)],[`AIC`,Y(n.result.AIC)]]:[];return(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:10},children:`Equation`}),(0,O.jsx)(`input`,{className:`qz-input`,style:{width:`100%`,fontFamily:`var(--font-mono)`},placeholder:`y = a*exp(-x/t) + c`,value:n.equation,onChange:e=>n.setEquation(e.target.value),spellCheck:!1}),(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:6,minHeight:16},children:[n.status===`checking`&&(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`checking…`}),n.status===`ok`&&(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:n.rows.length>0?`parameters: ${n.rows.map(e=>e.name).join(`, `)}`:`no free parameters — add at least one to fit`}),n.status===`error`&&(0,O.jsx)(`span`,{style:{color:`var(--danger)`},children:n.validationError})]}),n.rows.length>0&&(0,O.jsx)(`div`,{style:{marginTop:8},children:(0,O.jsx)(je,{columns:[`param`,`guess`,`min`,`max`],rows:n.rows.map((e,t)=>[(0,O.jsx)(`span`,{style:{fontFamily:`var(--font-mono)`},children:e.name},`n`),(0,O.jsx)(q,{width:60,value:e.guess,onChange:e=>n.setRow(t,`guess`,e),"aria-label":`guess ${e.name}`},`g`),(0,O.jsx)(q,{width:60,value:e.min,placeholder:`−∞`,onChange:e=>n.setRow(t,`min`,e),"aria-label":`min ${e.name}`},`lo`),(0,O.jsx)(q,{width:60,value:e.max,placeholder:`+∞`,onChange:e=>n.setRow(t,`max`,e),"aria-label":`max ${e.name}`},`hi`)])})}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:10},children:[(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:!n.active||n.busy||n.status!==`ok`||n.rows.length===0,onClick:()=>void n.fit(),children:n.busy?`Fitting…`:`Fit`}),n.result&&(0,O.jsx)(G,{size:`sm`,onClick:n.clear,children:`Clear`})]}),!n.active&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--text-faint)`},children:`Select a dataset to fit.`}),n.error&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:n.error}),c.length>0&&(0,O.jsx)(`div`,{style:{marginTop:12},children:(0,O.jsx)(je,{columns:[`param`,`value`,`± err`],rows:c})}),l.length>0&&(0,O.jsx)(`div`,{style:{marginTop:8},children:(0,O.jsx)(je,{columns:[`stat`,`value`],rows:l})}),n.result&&n.xRange&&(0,O.jsx)(Xy,{target:{equation:n.equation,params:a,xMin:n.xRange.min,xMax:n.xRange.max}}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:12},children:`Save as model`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6},children:[(0,O.jsx)(`input`,{className:`qz-input`,style:{flex:1},placeholder:`model name`,value:n.modelName,onChange:e=>n.setModelName(e.target.value)}),(0,O.jsx)(G,{size:`sm`,disabled:n.status!==`ok`||n.rows.length===0||!n.modelName.trim(),onClick:r,title:`Save the equation + guesses/bounds as a reusable named model`,children:`Save`}),e&&(0,O.jsx)(G,{size:`sm`,onClick:i,title:`Delete saved model "${e.name}"`,children:`Delete`})]})]})}function tb(e){return e.kind===`equation`?`ƒ ${e.name}`:e.name}function nb({state:e,onApply:t}){let{hasDataset:n,results:r,busy:i,error:a,scan:o,clear:s}=e;return(0,O.jsxs)(`div`,{style:{marginTop:12,paddingTop:10,borderTop:`1px solid var(--border-soft)`},children:[(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,alignItems:`center`},children:[(0,O.jsx)(G,{size:`sm`,disabled:!n||i,title:`Fit all plausible models (registry + saved custom equations) and rank by AICc`,onClick:()=>void o(),children:i?`Scanning…`:`Scan models`}),r&&!i&&(0,O.jsx)(G,{size:`sm`,onClick:s,children:`Clear`})]}),a&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:8,color:`var(--danger)`},children:a}),r&&!i&&(0,O.jsxs)(`div`,{style:{marginTop:8,maxHeight:240,overflowY:`auto`},children:[(0,O.jsxs)(`table`,{className:`qz-table`,children:[(0,O.jsx)(`thead`,{children:(0,O.jsxs)(`tr`,{children:[(0,O.jsx)(`th`,{children:`model`}),(0,O.jsx)(`th`,{children:`k`}),(0,O.jsx)(`th`,{children:`AICc`}),(0,O.jsx)(`th`,{children:`Δ`}),(0,O.jsx)(`th`,{children:`w`}),(0,O.jsx)(`th`,{children:`R²`})]})}),(0,O.jsx)(`tbody`,{children:r.map(e=>(0,O.jsxs)(`tr`,{title:e.error??`Apply this model to the workshop`,style:{opacity:e.error?.6:1},onClick:()=>{e.error||t(e.kind,e.name)},children:[(0,O.jsx)(`td`,{children:tb(e)}),e.error?(0,O.jsx)(`td`,{colSpan:5,style:{color:`var(--danger)`},children:e.error}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`td`,{children:e.k}),(0,O.jsx)(`td`,{children:Y(e.AICc)}),(0,O.jsx)(`td`,{children:Y(e.deltaAICc)}),(0,O.jsx)(`td`,{children:Y(e.weight)}),(0,O.jsx)(`td`,{children:Y(e.R2)})]})]},`${e.kind}:${e.name}`))})]}),(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:4,color:`var(--text-faint)`},children:`Δ = AICc − best; w = Akaike weight. Click a row to apply that model.`})]})]})}function rb(){let e=pd(),t=Z(e=>e.setFitOverlay),[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(`Linear`),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(!1),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=!1;return lt().then(t=>{e||r(t.models)}).catch(()=>{}),()=>{e=!0}},[]);let g=(0,y.useMemo)(()=>{let t=$a(e);return t?{x:t.time,y:t.values.map(e=>e[0])}:null},[e]),_=(0,y.useMemo)(()=>{if(!g)return null;let e=g.x.filter(e=>Number.isFinite(e));return e.length===0?null:{min:Math.min(...e),max:Math.max(...e)}},[g]);async function v(n){if(e){d(!0),p(null);try{let r=await Z.getState().resolveDataset(e.id);if(!r)return;let a=$a(r);if(!a)return;let o={x:a.time,y:a.values.map(e=>e[0])};if(n===`guess`){let e=await ut(i,o.x,o.y);s({params:e.p0}),l(!0)}else{let e=await dt({model:i,x:o.x,y:o.y});s(e),l(!1),Z.getState().recordMacro(`Fit ${i}`,`qz.fit("${i}")`,{kind:`fit`,params:{model:i}}),Z.getState().setFitSpec(r.id,{model:i});let n=e.yFit;if(Array.isArray(n)){let e=r.data.time.length,i=Ya(e,Za(r)),a=i.length===e?n:eo(n,i,e);t({datasetId:r.id,y:a})}}}catch(e){p(e instanceof Error?e.message:`fit failed`)}finally{d(!1)}}}function b(){s(null),l(!1),p(null),t(null),e&&Z.getState().setFitSpec(e.id,null)}async function x(){if(!e||!g||!o||c)return;let t=o.params??[];if(t.length!==0){h(!0),p(null);try{let r=await ft({model:i,x:g.x,y:g.y,p0:t,return_samples:!0});if(!r.boot_samples||r.boot_samples.length===0)throw Error(`bootstrap returned no replicate samples`);let a=n.find(e=>e.name===i)?.paramNames??[],o=a.length===r.params.length?a:r.params.map((e,t)=>`p${t}`),s=e.name.replace(/\.[^.]+$/,``);await cr({samples:r.boot_samples,param_names:o,truths:r.params,title:`${i} corner — ${e.name}`,filename:`${s}-corner`})}catch(e){p(e instanceof Error?e.message:`corner plot failed`)}finally{h(!1)}}}return{active:e,models:n,modelName:i,setModelName:a,result:o,guessOnly:c,busy:u,error:f,run:v,clear:b,runCornerPlot:x,cornerBusy:m,xRange:_}}function ib(){let e=pd(),[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(null);async function s(){if(e){i(!0),o(null);try{let t=await Z.getState().resolveDataset(e.id);if(!t)return;let r=$a(t);if(!r)return;let i=Py().map(e=>({name:e.name,equation:e.equation,guesses:e.guesses})),a=await gt({x:r.time,y:r.values.map(e=>e[0]),...i.length>0?{equations:i}:{}});n(a.results)}catch(e){o(e instanceof Error?e.message:`scan failed`)}finally{i(!1)}}}function c(){n(null),o(null)}return{hasDataset:e!=null,results:t,busy:r,error:a,scan:s,clear:c}}var ab=`custom:`;function ob(){let e=Z(e=>e.setCurveFitOpen),t=Z(e=>e.addReport),[n,r]=(0,y.useState)(!1),{active:i,models:a,modelName:o,setModelName:s,result:c,guessOnly:l,busy:u,error:d,run:f,clear:p,runCornerPlot:m,cornerBusy:h,xRange:g}=rb(),_=ib(),v=(e,t)=>s(e===`equation`?`${ab}${t}`:t),[b,x]=(0,y.useState)(()=>Py()),S=o.startsWith(ab),C=S?o.slice(7):``,w=b.find(e=>e.name===C)??null,T=[...a.map(e=>({value:e.name,label:e.name})),{value:ab,label:`Custom equation…`},...b.map(e=>({value:`${ab}${e.name}`,label:`ƒ ${e.name}`}))],E=e=>{x(e),C&&!e.some(e=>e.name===C)&&s(ab)},D=()=>{p(),e(!1)},k=async()=>{if(!(!c||!i)){r(!0);try{let e=a.find(e=>e.name===o)?.paramNames??[],n=c.params?.length??0,{report:r}=await wr({kind:`curve_fit`,result:c,param_names:e.length===n?e:Array.from({length:n},(e,t)=>`p${t}`),model_name:o,title:`${o} fit — ${i.name}`,source_refs:[{kind:`dataset`,id:i.id,name:i.name}]});t(`${o} fit — ${i.name}`,r,i.id)}catch(e){X(e instanceof Error?e.message:`report failed`,`danger`)}finally{r(!1)}}},A=a.find(e=>e.name===o)?.paramNames??[],j=c?.params??[],M=c?.errors??[],N=j.map((e,t)=>[A[t]??`p${t}`,Y(e),l?`—`:Y(M[t])]),P=l||!c?[]:[[`R²`,Y(c.R2)],[`RMSE`,Y(c.RMSE)],[`AIC`,Y(c.AIC)]];return S?(0,O.jsxs)(jd,{title:`Curve Fit`,width:340,onClose:D,children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Model`}),(0,O.jsx)(K,{options:T,value:o,onChange:e=>s(e.target.value)}),(0,O.jsx)(eb,{initial:w,onSavedChange:E},o),(0,O.jsx)(nb,{state:_,onApply:v})]}):(0,O.jsxs)(jd,{title:`Curve Fit`,width:340,onClose:D,children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Model`}),(0,O.jsx)(K,{options:T,value:o,onChange:e=>s(e.target.value)}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:10},children:[(0,O.jsx)(G,{size:`sm`,disabled:!i||u,onClick:()=>f(`guess`),children:`Auto-guess`}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:!i||u,onClick:()=>f(`fit`),children:u?`Fitting…`:`Fit`})]}),!i&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--text-faint)`},children:`Select a dataset to fit.`}),d&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:d}),N.length>0&&(0,O.jsx)(`div`,{style:{marginTop:12},children:(0,O.jsx)(je,{columns:[`param`,`value`,`± err`],rows:N})}),P.length>0&&(0,O.jsx)(`div`,{style:{marginTop:8},children:(0,O.jsx)(je,{columns:[`stat`,`value`],rows:P})}),c&&!l&&(0,O.jsxs)(`div`,{style:{marginTop:8,display:`flex`,gap:6},children:[(0,O.jsx)(G,{size:`sm`,disabled:n,onClick:()=>void k(),children:n?`Reporting…`:`→ Report`}),(0,O.jsx)(G,{size:`sm`,disabled:h,title:`Bootstrap the fit and export a pairwise parameter-uncertainty corner plot`,onClick:()=>void m(),children:h?`Bootstrapping…`:`Corner plot…`})]}),c&&!l&&g&&(0,O.jsx)(Xy,{target:{model:o,params:j,xMin:g.min,xMax:g.max}}),(0,O.jsx)(nb,{state:_,onApply:v}),(0,O.jsx)(Jy,{modelName:o})]})}var sb=0;function cb(){let e=pd(),t=Z(e=>e.addDataset),n=Z(e=>e.setStatus),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let t=!1;if(i(null),c(null),!e)return;o(!0);let n=e.id;return(async()=>{try{let e=await Z.getState().resolveDataset(n);if(t||!e)return;let r=$a(e)??e.data,a=r.time,o=await dr({h:a,m:r.values.map(e=>e[0])});t||i(o)}catch(e){t||c(e instanceof Error?e.message:`analysis failed`)}finally{t||o(!1)}})(),()=>{t=!0}},[e]);async function d(){if(e){u(!0),c(null);try{let r=await Z.getState().resolveDataset(e.id);if(!r)return;let i=$a(r)??r.data,a=i.time,o=await pr({h:a,m:i.values.map(e=>e[0])}),s={...r.data,time:a,values:o.corrected.map(e=>[e??NaN]),labels:[r.data.labels[0]??`Moment`],units:[r.data.units[0]??``],metadata:{...r.data.metadata,hysteresis_bg_subtracted:!0}},c=r.name.replace(/\.[^.]+$/,``);t({id:`hystbg-${++sb}`,name:`${c} (bg-sub)`,data:s}),n(o.slope===0&&o.offset===0?`no high-field background found (too few tail points)`:`removed background (slope ${o.slope.toExponential(2)}, offset ${o.offset.toExponential(2)}) + centred loop`)}catch(e){c(e instanceof Error?e.message:`background subtraction failed`)}finally{u(!1)}}}return{active:e,result:r,busy:a,error:s,bgBusy:l,subtractBackground:d}}function lb(){let e=Z(e=>e.setHysteresisOpen),{active:t,result:n,busy:r,error:i,bgBusy:a,subtractBackground:o}=cb(),s=n?.SFD??{},c=n?.warnings??[],l=n?[[`Hc (mean)`,Y(n.HcMean)],[`Mr (mean)`,Y(n.MrMean)],[`Ms (mean)`,Y(n.MsMean)],[`Squareness`,Y(n.squareness)],[`Loop area`,Y(n.loopArea)],[`SFD peak H`,Y(s.peakH)],[`SFD FWHM`,Y(s.fwhm)]]:[];return(0,O.jsxs)(jd,{title:`Hysteresis`,width:320,onClose:()=>e(!1),children:[!t&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`Select an M-H dataset.`}),t&&r&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,children:`Analyzing…`}),t&&i&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`},children:i}),l.length>0&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(je,{columns:[`parameter`,`value`],rows:l}),c.length>0&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:8,color:`var(--text-faint)`},children:c[0]})]}),t&&(0,O.jsx)(`div`,{style:{marginTop:10},children:(0,O.jsx)(G,{size:`sm`,disabled:a,onClick:()=>void o(),title:`Fit the linear dia/paramagnetic slope on the high-field tails and subtract it (offset kept, so Hc/Mr are unchanged). Writes a new (bg-sub) dataset.`,children:a?`Subtracting…`:`Subtract linear background`})})]})}var ub=[`Oe`,`T`,`mT`,`A/m`],db=[`emu`,`emu/g`,`emu/cm³`,`A·m²`,`kA/m`],fb={fromField:`Oe`,toField:`T`,toMoment:`emu`,sampleMass:0,sampleVolume:0},pb=0;function mb(){let e=pd(),t=Z(e=>e.addDataset),n=Z(e=>e.setStatus),[r,i]=(0,y.useState)(`background`),[a,o]=(0,y.useState)(.1),[s,c]=(0,y.useState)(fb),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),[h,g]=(0,y.useState)(null),_=e=>c(t=>({...t,...e})),v=()=>e?e.name.replace(/\.[^.]+$/,``):`data`;async function b(){if(e){m(!0),g(null),f(null);try{let r=await Z.getState().resolveDataset(e.id);if(!r)return;let i=r.data.time,o=await fr({temperature:i,moment:r.data.values.map(e=>e[0]),auto_fraction:a});u({slope:o.slope,intercept:o.intercept});let s={...r.data,values:o.corrected.map(e=>[e??NaN]),metadata:{...r.data.metadata,mag_bg_subtracted:!0}};t({id:`magbg-${++pb}`,name:`${v()} (bg-sub)`,data:s}),n(`subtracted high-T background (slope ${o.slope.toExponential(2)})`)}catch(e){g(e instanceof Error?e.message:`background subtraction failed`)}finally{m(!1)}}}async function x(){if(e){m(!0),g(null),f(null);try{let r=await Z.getState().resolveDataset(e.id);if(!r)return;let i=r.data.time,a=await mr({x:i,y:r.data.values.map(e=>e[0]),from_field:s.fromField,to_field:s.toField,from_moment:`emu`,to_moment:s.toMoment,sample_mass:s.sampleMass,sample_volume:s.sampleVolume});a.warning&&f(a.warning);let o={time:a.x.map(e=>e??NaN),values:a.y.map(e=>[e??NaN]),labels:[r.data.labels[0]??`Moment`],units:[a.y_unit],metadata:{...r.data.metadata,x_column_name:r.data.metadata?.x_column_name??`Field`,x_column_unit:a.x_unit}};t({id:`magunit-${++pb}`,name:`${v()} (${a.y_unit})`,data:o}),n(`converted to ${a.x_unit} / ${a.y_unit}`)}catch(e){g(e instanceof Error?e.message:`unit conversion failed`)}finally{m(!1)}}}return{active:e,tab:r,setTab:i,autoFraction:a,setAutoFraction:o,units:s,setUnits:_,fit:l,warning:d,busy:p,error:h,subtractBackground:b,convert:x}}var hb=e=>e.map(e=>({value:e,label:e}));function gb(){let e=Z(e=>e.setMagToolsOpen),t=mb();return(0,O.jsxs)(jd,{title:`Magnetometry`,width:330,onClose:()=>e(!1),children:[(0,O.jsx)(Ee,{options:[{value:`background`,label:`Background`},{value:`units`,label:`Units`}],value:t.tab,onChange:t.setTab}),!t.active&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,color:`var(--text-faint)`},children:`Select a dataset first.`}),t.tab===`background`?(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`,marginBottom:10},children:`Fits a line to the high-T tail of M(T) and subtracts it.`}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`High-T fraction`}),(0,O.jsx)(q,{value:t.autoFraction,width:64,step:.05,onChange:e=>t.setAutoFraction(Math.min(1,Math.max(.01,Number(e)||.1)))})]}),(0,O.jsx)(`div`,{style:{marginTop:12},children:(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:!t.active||t.busy,onClick:()=>void t.subtractBackground(),children:t.busy?`Working…`:`Subtract background →`})}),t.fit&&(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--text-faint)`},children:[`fit: slope `,Y(t.fit.slope),`, intercept `,Y(t.fit.intercept)]})]}):(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`auto auto`,gap:`6px 12px`,alignItems:`center`},children:[(0,O.jsxs)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:[`Field `,t.units.fromField,` →`]}),(0,O.jsx)(K,{options:hb(ub),value:t.units.toField,onChange:e=>t.setUnits({toField:e.target.value})}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Moment emu →`}),(0,O.jsx)(K,{options:hb(db),value:t.units.toMoment,onChange:e=>t.setUnits({toMoment:e.target.value})}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Sample mass (g)`}),(0,O.jsx)(q,{value:t.units.sampleMass,width:80,onChange:e=>t.setUnits({sampleMass:Number(e)||0})}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Volume (cm³)`}),(0,O.jsx)(q,{value:t.units.sampleVolume,width:80,onChange:e=>t.setUnits({sampleVolume:Number(e)||0})})]}),(0,O.jsx)(`div`,{style:{marginTop:12},children:(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:!t.active||t.busy,onClick:()=>void t.convert(),children:t.busy?`Converting…`:`Convert →`})})]}),t.warning&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--warn, #c90)`},children:t.warning}),t.error&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:t.error})]})}var _b=[{value:`Lorentzian`,label:`Lorentzian`},{value:`Gaussian`,label:`Gaussian`},{value:`Pseudo-Voigt`,label:`Pseudo-Voigt`},{value:`Split Pearson VII`,label:`Split Pearson VII`},{value:`TCH-pV`,label:`TCH-pV`}],vb=[{value:`None`,label:`Independent widths`},{value:`Shared FWHM`,label:`Shared FWHM`},{value:`Shared FWHM + eta`,label:`Shared FWHM + η`}];function yb({disabled:e,fitting:t,onFitTogether:n,onFitEach:r}){let[i,a]=(0,y.useState)(`Lorentzian`),[o,s]=(0,y.useState)(1),[c,l]=(0,y.useState)(`None`),[u,d]=(0,y.useState)(!1),f=()=>({model:i,bgDegree:o,linkMode:c,constrain:u}),p={display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8,marginBottom:6},m={fontSize:`var(--font-size-sm)`,color:`var(--text-faint)`};return(0,O.jsxs)(`div`,{style:{marginTop:10,borderTop:`1px solid var(--border)`,paddingTop:8},children:[(0,O.jsxs)(`div`,{style:p,children:[(0,O.jsx)(`span`,{style:m,children:`Model`}),(0,O.jsx)(K,{options:_b,value:i,onChange:e=>a(e.target.value)})]}),(0,O.jsxs)(`div`,{style:p,children:[(0,O.jsx)(`span`,{style:m,children:`Background degree`}),(0,O.jsx)(q,{value:o,width:56,type:`number`,min:0,max:6,onChange:e=>{let t=Number.parseInt(e,10);Number.isFinite(t)&&s(Math.min(6,Math.max(0,t)))}})]}),(0,O.jsxs)(`div`,{style:p,children:[(0,O.jsx)(`span`,{style:m,children:`Linked widths`}),(0,O.jsx)(K,{options:vb,value:c,onChange:e=>l(e.target.value)})]}),(0,O.jsx)(`div`,{style:{...p,justifyContent:`flex-start`},children:(0,O.jsx)(De,{checked:u,onChange:d,children:(0,O.jsx)(`span`,{style:m,children:`Constrain centers`})})}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:4},children:[(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:e||t,onClick:()=>n(f()),children:t?`Fitting…`:`Fit all together`}),(0,O.jsx)(G,{variant:`default`,size:`sm`,disabled:e||t,onClick:()=>r(f()),children:`Fit each`})]})]})}function bb(e){let t=$a(e)??e.data;return{x:t.time,y:t.values.map(e=>e[0])}}function xb(e){return e.map(e=>({center:e.center,fwhm:e.fwhm,height:e.height}))}function Sb(){let e=pd(),t=Z(e=>e.setPeakOverlay),[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null);(0,y.useEffect)(()=>{let n=!1;if(r([]),s(null),l(null),p(null),!e){t(null);return}a(!0);let i=e.id;return(async()=>{try{let e=await Z.getState().resolveDataset(i);if(n||!e)return;let{x:a,y:o}=bb(e),s=await hr({x:a,y:o});if(n)return;r(s.peaks),t({datasetId:e.id,y:Na(e.data.time,s.peaks.map(e=>({center:e.center,height:e.height})))})}catch(e){n||s(e instanceof Error?e.message:`peak find failed`)}finally{n||a(!1)}})(),()=>{n=!0}},[e,t]);let m=(0,y.useCallback)((e,n)=>{t({datasetId:e.id,y:Na(e.data.time,n.map(e=>({center:e.center,height:e.height+e.bg})))})},[t]);return{active:e,peaks:n,busy:i,error:o,fitResult:c,fitting:u,fitError:f,fitTogether:(0,y.useCallback)(async t=>{if(!e||n.length===0){p(`Find peaks before fitting.`);return}d(!0),p(null);try{let r=await Z.getState().resolveDataset(e.id);if(!r)return;let{x:i,y:a}=bb(r),o=await _r({x:i,y:a,peaks:xb(n),model:t.model,bg_degree:t.bgDegree,constrain:t.constrain,link_mode:t.linkMode});l(o),m(r,o.peaks)}catch(e){p(e instanceof Error?e.message:`simultaneous fit failed`)}finally{d(!1)}},[e,n,m]),fitEach:(0,y.useCallback)(async t=>{if(!e||n.length===0){p(`Find peaks before fitting.`);return}d(!0),p(null);try{let r=await Z.getState().resolveDataset(e.id);if(!r)return;let{x:i,y:a}=bb(r),o=[];for(let e of n){let n=(Number.isFinite(e.fwhm)&&e.fwhm>0?e.fwhm:1)*3,r=await gr({x:i,y:a,x_lo:e.center-n,x_hi:e.center+n,seed_center:e.center,seed_fwhm:e.fwhm,model:t.model});r.success&&o.push({center:r.center,fwhm:r.fwhm,height:r.height,bg:r.bg,eta:r.eta,area:r.area,status:`fitted`,model:r.model})}let s={peaks:o,bgCoeffs:[],R2:null,rmse:null,nPeaks:o.length,model:t.model};l(s),o.length>0&&m(r,o),o.length===0&&p(`No peaks could be fit individually.`)}catch(e){p(e instanceof Error?e.message:`per-peak fit failed`)}finally{d(!1)}},[e,n,m])}}function Cb(){let e=Z(e=>e.setPeaksOpen),t=Z(e=>e.setPeakOverlay),n=Z(e=>e.addReport),[r,i]=(0,y.useState)(!1),{active:a,peaks:o,busy:s,error:c,fitResult:l,fitting:u,fitError:d,fitTogether:f,fitEach:p}=Sb(),m=()=>{t(null),e(!1)},h=async()=>{if(!(!l||!a)){i(!0);try{let{report:e}=await wr({kind:`multipeak_fit`,result:l,title:`Peak fit — ${a.name}`,source_refs:[{kind:`dataset`,id:a.id,name:a.name}]});n(`Peak fit — ${a.name}`,e,a.id)}catch(e){X(e instanceof Error?e.message:`report failed`,`danger`)}finally{i(!1)}}},g=o.map((e,t)=>[t+1,Y(e.center),Y(e.height),Y(e.fwhm),Y(e.localSNR)]),_=(l?.peaks??[]).map((e,t)=>[t+1,Y(e.center),Y(e.height),Y(e.fwhm),Y(e.area)]),v={color:`var(--text-faint)`};return(0,O.jsxs)(jd,{title:`Peaks`,width:360,onClose:m,children:[!a&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:v,children:`Select a dataset to find peaks.`}),a&&s&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,children:`Finding peaks…`}),a&&c&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`},children:c}),a&&!s&&!c&&o.length===0&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:v,children:`No peaks found.`}),g.length>0&&(0,O.jsx)(je,{columns:[`#`,`center`,`height`,`FWHM`,`SNR`],rows:g}),a&&(0,O.jsx)(yb,{disabled:o.length===0,fitting:u,onFitTogether:f,onFitEach:p}),d&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--danger)`,marginTop:6},children:d}),l&&l.peaks.length>0&&(0,O.jsxs)(`div`,{style:{marginTop:8},children:[(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{...v,marginBottom:4},children:[l.model,` ·`,` `,l.R2==null?`independent fits`:`R² = ${Y(l.R2)}`,l.rmse!=null&&` · RMSE = ${Y(l.rmse)}`]}),(0,O.jsx)(je,{columns:[`#`,`center`,`height`,`FWHM`,`area`],rows:_}),(0,O.jsx)(`div`,{style:{marginTop:8},children:(0,O.jsx)(G,{size:`sm`,disabled:r,onClick:()=>void h(),children:r?`Reporting…`:`→ Report`})})]})]})}function wb(e,t){return e===0?`Incident`:e===t-1?`Substrate`:`Layer ${e}`}function Tb({layers:e,presets:t,radiation:n,onUpdate:r,onRemove:i}){let a=t.map(e=>({value:e.name,label:e.name}));return(0,O.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{display:`grid`,gridTemplateColumns:`62px 1fr 56px 56px 20px`,gap:6},children:[(0,O.jsx)(`span`,{children:`role`}),(0,O.jsx)(`span`,{children:`material`}),(0,O.jsx)(`span`,{children:`t (Å)`}),(0,O.jsx)(`span`,{children:`σ (Å)`}),(0,O.jsx)(`span`,{})]}),e.map((o,s)=>{let c=s===0||s===e.length-1,l=t.find(e=>e.name===o.preset);return(0,O.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`62px 1fr 56px 56px 20px`,gap:6,alignItems:`center`},children:[(0,O.jsx)(`span`,{className:`qzk-ds-meta`,title:`SLD ${(l?n===`xray`?l.sldX:l.sldN:o.sld).toExponential(3)} Å⁻²`,style:{color:`var(--text-dim)`},children:wb(s,e.length)}),(0,O.jsx)(K,{options:a,value:o.preset,onChange:e=>r(s,{preset:e.target.value})}),(0,O.jsx)(q,{value:c?`—`:o.thickness,width:50,disabled:c,onChange:e=>r(s,{thickness:Number(e)||0})}),(0,O.jsx)(q,{value:s===0?`—`:o.roughness,width:50,disabled:s===0,onChange:e=>r(s,{roughness:Number(e)||0})}),(0,O.jsx)(xe,{title:`Remove layer`,disabled:c||e.length<=2,onClick:()=>i(s),children:`✕`})]},s)})]})}var Eb={qMin:.005,qMax:.25,nPoints:400,resolution:0},Db=[{preset:`Air / Vacuum`,thickness:0,roughness:0,sld:0},{preset:`Nickel`,thickness:200,roughness:5,sld:0},{preset:`Silicon`,thickness:0,roughness:3,sld:0}],Ob=0;function kb(e,t,n){if(e.preset===``)return e.sld;let r=t.find(t=>t.name===e.preset);return r?n===`xray`?r.sldX:r.sldN:e.sld}function Ab(){let e=Z(e=>e.addDataset),t=Z(e=>e.setStatus),n=Z(e=>e.reflectivitySeed),r=Z(e=>e.clearReflectivitySeed),[i,a]=(0,y.useState)([]),[o,s]=(0,y.useState)(Db),[c,l]=(0,y.useState)(`xray`),[u,d]=(0,y.useState)(Eb),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=!1;return vr().then(t=>{e||a(t.presets)}).catch(()=>{}),()=>{e=!0}},[]),(0,y.useEffect)(()=>{if(!n)return;let{sld:e,label:i}=n;s(t=>{let n={preset:``,thickness:50,roughness:3,sld:e};return[...t.slice(0,-1),n,t[t.length-1]]}),t(`added ${i??`calculated`} SLD layer from the SLD calculator`),r()},[n,r,t]);let g=(0,y.useMemo)(()=>()=>o.map(e=>{let t=kb(e,i,c),n=i.find(t=>t.name===e.preset),r=c===`xray`&&n?n.sldImag:0;return[e.thickness,t,r,e.roughness]}),[o,i,c]),_=e=>d(t=>({...t,...e})),v=(e,t)=>s(n=>n.map((n,r)=>r===e?{...n,...t}:n)),b=()=>s(e=>{let t={preset:`Silicon Oxide`,thickness:50,roughness:3,sld:0};return[...e.slice(0,-1),t,e[e.length-1]]}),x=e=>s(t=>t.length<=2?t:t.filter((t,n)=>n!==e));async function S(){p(!0),h(null);try{let n=await yr({layers:g(),q_min:u.qMin,q_max:u.qMax,n_points:u.nPoints,resolution:u.resolution>0?u.resolution:null}),r=++Ob,i={time:n.q,values:n.r.map(e=>[e??NaN]),labels:[`Reflectivity`],units:[`a.u.`],metadata:{source:`reflectivity-sim`,radiation:c,layers:o.length}};e({id:`refl-model-${r}`,name:`Reflectivity model ${r}`,data:i}),t(`simulated R(Q) — ${n.q.length} points`)}catch(e){h(e instanceof Error?e.message:`simulation failed`)}finally{p(!1)}}async function C(){p(!0),h(null);try{let n=await br({layers:g()}),r=++Ob,i={time:n.z,values:n.sld.map(e=>[e??NaN]),labels:[`SLD`],units:[`Å⁻²`],metadata:{source:`reflectivity-sld`,radiation:c,layers:o.length}};e({id:`refl-sld-${r}`,name:`SLD profile ${r}`,data:i}),t(`SLD profile — ${n.z.length} points`)}catch(e){h(e instanceof Error?e.message:`SLD profile failed`)}finally{p(!1)}}return{presets:i,layers:o,radiation:c,grid:u,busy:f,error:m,setRadiation:l,setGrid:_,updateLayer:v,addLayer:b,removeLayer:x,simulate:S,sldProfile:C}}function jb(){let e=Z(e=>e.setReflectivityOpen),{presets:t,layers:n,radiation:r,grid:i,busy:a,error:o,setRadiation:s,setGrid:c,updateLayer:l,addLayer:u,removeLayer:d,simulate:f,sldProfile:p}=Ab();return(0,O.jsxs)(jd,{title:`Reflectivity`,width:380,onClose:()=>e(!1),children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,marginBottom:10},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Radiation`}),(0,O.jsx)(Ee,{options:[{value:`xray`,label:`X-ray`},{value:`neutron`,label:`Neutron`}],value:r,onChange:s})]}),(0,O.jsx)(Tb,{layers:n,presets:t,radiation:r,onUpdate:l,onRemove:d}),(0,O.jsx)(`div`,{style:{marginTop:8},children:(0,O.jsx)(G,{size:`sm`,variant:`ghost`,onClick:u,children:`+ Add layer`})}),(0,O.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`auto auto`,gap:`6px 14px`,marginTop:12,alignItems:`center`},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Q range (Å⁻¹)`}),(0,O.jsxs)(`span`,{style:{display:`inline-flex`,gap:6,alignItems:`center`},children:[(0,O.jsx)(q,{value:i.qMin,width:64,onChange:e=>c({qMin:Number(e)||0})}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`–`}),(0,O.jsx)(q,{value:i.qMax,width:64,onChange:e=>c({qMax:Number(e)||0})})]}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Points`}),(0,O.jsx)(q,{value:i.nPoints,width:64,onChange:e=>c({nPoints:Math.max(2,Math.round(Number(e)||0))})}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Resolution dQ/Q`}),(0,O.jsx)(q,{value:i.resolution,width:64,onChange:e=>c({resolution:Math.max(0,Number(e)||0)})})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:12},children:[(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:a,onClick:()=>void f(),children:a?`Simulating…`:`Simulate R(Q)`}),(0,O.jsx)(G,{size:`sm`,disabled:a,onClick:()=>void p(),children:`SLD profile`})]}),o&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:o}),(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:8,color:`var(--text-faint)`},children:`Adds the model to the library — view it on a log-Y axis.`})]})}var Mb=0;function Nb(){let e=pd(),t=Z(e=>e.addDataset),n=Z(e=>e.setStatus),r=e?e.data.labels.map((e,t)=>({index:t,label:e||`Column ${t+1}`})):[],[i,a]=(0,y.useState)(0),[o,s]=(0,y.useState)(1.5406),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(`hann`),[m,h]=(0,y.useState)(200),[g,_]=(0,y.useState)(null),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(null);(0,y.useEffect)(()=>{_(null),S(null),a(0)},[e?.id]);async function C(){if(e){b(!0),S(null);try{let t=await Z.getState().resolveDataset(e.id);if(!t)return;let n=$a(t)??t.data,r=n.values.map(e=>e[i]),a=await Rr({two_theta_deg:n.time,intensity:r,wavelength_a:o,two_theta_min:c??void 0,two_theta_max:u??void 0,window:f,max_thickness_nm:m});_(a)}catch(e){S(e instanceof Error?e.message:`FFT thickness failed`)}finally{b(!1)}}}function w(){if(!g)return;let r={time:g.thickness_axis,values:g.fft_magnitude.map(e=>[e]),labels:[`FFT magnitude`],units:[``],metadata:{reduction:`fft-thickness`,thickness_nm:g.thickness_nm}};t({id:`fftthk-${++Mb}`,name:`${e?.name??`scan`} (FFT thickness)`,data:r}),n(`added FFT-thickness spectrum (${g.thickness_nm.toFixed(2)} nm)`)}function T(){_(null),S(null)}return{active:e,columns:r,col:i,setCol:a,wavelength:o,setWavelength:s,twoThetaMin:c,twoThetaMax:u,setTwoThetaMin:l,setTwoThetaMax:d,windowFn:f,setWindowFn:p,maxThicknessNm:m,setMaxThicknessNm:h,result:g,busy:v,error:x,compute:C,toLibrary:w,clear:T}}var Pb=[{value:`hann`,label:`Hann`},{value:`blackman`,label:`Blackman`},{value:`none`,label:`None`}];function Fb(){let{active:e,columns:t,col:n,setCol:r,wavelength:i,setWavelength:a,twoThetaMin:o,twoThetaMax:s,setTwoThetaMin:c,setTwoThetaMax:l,windowFn:u,setWindowFn:d,maxThicknessNm:f,setMaxThicknessNm:p,result:m,busy:h,error:g,compute:_,toLibrary:v}=Nb();return e?(0,O.jsxs)(`div`,{style:{marginTop:10},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Intensity channel`}),(0,O.jsx)(K,{options:t.map(e=>({value:String(e.index),label:e.label})),value:String(n),onChange:e=>r(Number(e.target.value))}),(0,O.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`auto auto`,gap:`6px 12px`,marginTop:10,alignItems:`center`},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Wavelength (Å)`}),(0,O.jsx)(q,{value:i,width:88,step:1e-4,onChange:e=>a(Number(e)||0)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`2θ min`}),(0,O.jsx)(q,{value:o??``,width:88,placeholder:`auto`,onChange:e=>c(e.trim()===``?null:Number(e))}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`2θ max`}),(0,O.jsx)(q,{value:s??``,width:88,placeholder:`auto`,onChange:e=>l(e.trim()===``?null:Number(e))}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Window`}),(0,O.jsx)(K,{options:Pb,value:u,onChange:e=>d(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Max thickness (nm)`}),(0,O.jsx)(q,{value:f,width:88,onChange:e=>p(Number(e)||0)})]}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,style:{marginTop:12},disabled:h,onClick:()=>void _(),children:h?`Computing…`:`Compute`}),g&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:g}),m&&(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(je,{columns:[`result`,`value`],rows:[[`Thickness`,`${Y(m.thickness_nm)} nm`],[`Uncertainty`,m.uncertainty_nm==null?`—`:`± ${Y(m.uncertainty_nm)} nm`],[`Points used`,String(m.n_points)]]}),(0,O.jsx)(G,{size:`sm`,style:{marginTop:8},onClick:v,children:`→ Library`})]})]}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--text-faint)`},children:`Select an XRD dataset (2θ vs intensity) first.`})}var Ib=0;function Lb(){let e=pd(),t=Z(e=>e.addDataset),n=Z(e=>e.setStatus),r=e?e.data.labels.map((e,t)=>({index:t,label:e||`Column ${t+1}`})):[],[i,a]=(0,y.useState)(0),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(1.5406),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(`hann`),[g,_]=(0,y.useState)(`logR`),[v,b]=(0,y.useState)(500),[x,S]=(0,y.useState)(.05),[C,w]=(0,y.useState)(null),[T,E]=(0,y.useState)(!1),[D,O]=(0,y.useState)(null);(0,y.useEffect)(()=>{w(null),O(null),a(0)},[e?.id]);async function k(){if(e){if(!o&&!(c>0)){O(`wavelength is required for XRR (2θ) mode`);return}E(!0),O(null);try{let t=await Z.getState().resolveDataset(e.id);if(!t)return;let n=$a(t)??t.data,r=n.values.map(e=>e[i]),a=await zr({x:n.time,reflectivity:r,is_neutron:o,wavelength_a:o?void 0:c,x_min:u??void 0,x_max:f??void 0,window:m,preprocess:g,max_thickness_nm:v,peak_prominence_threshold:x});w(a)}catch(e){O(e instanceof Error?e.message:`reflectivity FFT failed`)}finally{E(!1)}}}function A(){if(!C)return;let r={time:C.thickness_axis,values:C.fft_magnitude.map(e=>[e]),labels:[`FFT magnitude`],units:[``],metadata:{reduction:`reflectivity-fft`,thicknesses_nm:C.thicknesses_nm}};t({id:`reflfft-${++Ib}`,name:`${e?.name??`scan`} (refl FFT)`,data:r});let i=C.thicknesses_nm.length;n(`added reflectivity-FFT spectrum (${i} peak${i===1?``:`s`})`)}function j(){w(null),O(null)}return{active:e,columns:r,col:i,setCol:a,isNeutron:o,setIsNeutron:s,wavelength:c,setWavelength:l,xMin:u,xMax:f,setXMin:d,setXMax:p,windowFn:m,setWindowFn:h,preprocess:g,setPreprocess:_,maxThicknessNm:v,setMaxThicknessNm:b,peakProminence:x,setPeakProminence:S,result:C,busy:T,error:D,compute:k,toLibrary:A,clear:j}}var Rb=[{value:`hann`,label:`Hann`},{value:`blackman`,label:`Blackman`},{value:`none`,label:`None`}],zb=[{value:`logR`,label:`log R`},{value:`logRQ4`,label:`log(R·Q⁴)`},{value:`R`,label:`R`},{value:`RQ4`,label:`R·Q⁴`}];function Bb(){let{active:e,columns:t,col:n,setCol:r,isNeutron:i,setIsNeutron:a,wavelength:o,setWavelength:s,xMin:c,xMax:l,setXMin:u,setXMax:d,windowFn:f,setWindowFn:p,preprocess:m,setPreprocess:h,maxThicknessNm:g,setMaxThicknessNm:_,peakProminence:v,setPeakProminence:y,result:b,busy:x,error:S,compute:C,toLibrary:w}=Lb();if(!e)return(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--text-faint)`},children:`Select a reflectivity dataset (x vs R) first.`});let T=b?.superlattice;return(0,O.jsxs)(`div`,{style:{marginTop:10},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Reflectivity channel`}),(0,O.jsx)(K,{options:t.map(e=>({value:String(e.index),label:e.label})),value:String(n),onChange:e=>r(Number(e.target.value))}),(0,O.jsx)(`div`,{style:{marginTop:8},children:(0,O.jsx)(De,{checked:i,onChange:a,children:`Neutron (x is Q, Å⁻¹)`})}),(0,O.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`auto auto`,gap:`6px 12px`,marginTop:10,alignItems:`center`},children:[!i&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Wavelength (Å)`}),(0,O.jsx)(q,{value:o,width:88,step:1e-4,onChange:e=>s(Number(e)||0)})]}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:i?`Q min`:`2θ min`}),(0,O.jsx)(q,{value:c??``,width:88,placeholder:`auto`,onChange:e=>u(e.trim()===``?null:Number(e))}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:i?`Q max`:`2θ max`}),(0,O.jsx)(q,{value:l??``,width:88,placeholder:`auto`,onChange:e=>d(e.trim()===``?null:Number(e))}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Preprocess`}),(0,O.jsx)(K,{options:zb,value:m,onChange:e=>h(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Window`}),(0,O.jsx)(K,{options:Rb,value:f,onChange:e=>p(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Max thickness (nm)`}),(0,O.jsx)(q,{value:g,width:88,onChange:e=>_(Number(e)||0)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Peak prominence`}),(0,O.jsx)(q,{value:v,width:88,step:.01,onChange:e=>y(Number(e)||0)})]}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,style:{marginTop:12},disabled:x,onClick:()=>void C(),children:x?`Computing…`:`Compute`}),S&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:S}),b&&(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(je,{columns:[`thickness (nm)`,`amplitude`,`label`],rows:b.thicknesses_nm.map((e,t)=>[Y(e),Y(b.amplitudes[t]),b.harmonic_labels[t]||`—`])}),T?.detected&&(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:8},children:[`Superlattice: Λ = `,Y(T.bilayer_period_nm),` nm · `,Y(T.n_repeats),` repeats · total`,` `,Y(T.total_thickness_nm),` nm`,T.suppressed_orders.length>0&&` · suppressed orders ${T.suppressed_orders.join(`, `)}`]}),(0,O.jsx)(G,{size:`sm`,style:{marginTop:8},onClick:w,children:`→ Library`})]})]})}var Vb=()=>({twoTheta:0,fwhm:0});function Hb(){let[e,t]=(0,y.useState)([Vb(),Vb()]),[n,r]=(0,y.useState)(1.5406),[i,a]=(0,y.useState)(.9),[o,s]=(0,y.useState)(0),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(null),m=e.length>=2&&e.every(e=>e.twoTheta>0&&e.twoTheta<180&&e.fwhm>0)&&n>0&&i>0,h=()=>t(e=>[...e,Vb()]),g=e=>t(t=>t.filter((t,n)=>n!==e)),_=(e,n)=>t(t=>t.map((t,r)=>r===e?{...t,...n}:t));async function v(){if(!m){p(`enter at least 2 valid peaks (0 < 2θ < 180, FWHM > 0)`);return}d(!0),p(null);try{let t=await Lr({two_theta_deg:e.map(e=>e.twoTheta),fwhm_deg:e.map(e=>e.fwhm),wavelength_a:n,k_factor:i,instrumental_broadening_deg:o});l(t)}catch(e){p(e instanceof Error?e.message:`Williamson-Hall fit failed`)}finally{d(!1)}}function b(){l(null),p(null)}return{rows:e,wavelength:n,kFactor:i,instrumentalBroadening:o,result:c,busy:u,error:f,canCompute:m,addRow:h,removeRow:g,updateRow:_,setWavelength:r,setKFactor:a,setInstrumentalBroadening:s,compute:v,clear:b}}var Ub=`1fr 1fr 20px`;function Wb(){let{rows:e,wavelength:t,kFactor:n,instrumentalBroadening:r,result:i,busy:a,error:o,canCompute:s,addRow:c,removeRow:l,updateRow:u,setWavelength:d,setKFactor:f,setInstrumentalBroadening:p,compute:m,clear:h}=Hb();return(0,O.jsxs)(`div`,{style:{marginTop:10},children:[(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{display:`grid`,gridTemplateColumns:Ub,gap:6},children:[(0,O.jsx)(`span`,{children:`2θ (°)`}),(0,O.jsx)(`span`,{children:`FWHM (°)`}),(0,O.jsx)(`span`,{})]}),e.map((t,n)=>(0,O.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:Ub,gap:6,marginTop:4,alignItems:`center`},children:[(0,O.jsx)(q,{value:t.twoTheta,width:90,onChange:e=>u(n,{twoTheta:Number(e)||0})}),(0,O.jsx)(q,{value:t.fwhm,width:90,step:.001,onChange:e=>u(n,{fwhm:Number(e)||0})}),(0,O.jsx)(xe,{title:`Remove peak`,disabled:e.length<=2,onClick:()=>l(n),children:`✕`})]},n)),(0,O.jsx)(G,{size:`sm`,style:{marginTop:6},onClick:c,children:`+ Add peak`}),(0,O.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`auto auto`,gap:`6px 12px`,marginTop:12,alignItems:`center`},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Wavelength (Å)`}),(0,O.jsx)(q,{value:t,width:88,step:1e-4,onChange:e=>d(Number(e)||0)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`K factor`}),(0,O.jsx)(q,{value:n,width:88,step:.01,onChange:e=>f(Number(e)||0)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Instrument broadening (°)`}),(0,O.jsx)(q,{value:r,width:88,step:.001,onChange:e=>p(Number(e)||0)})]}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,style:{marginTop:12},disabled:a||!s,onClick:()=>void m(),children:a?`Fitting…`:`Fit`}),!s&&!o&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--text-faint)`},children:`Enter at least 2 peaks (0 < 2θ < 180, FWHM > 0).`}),o&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:o}),i&&(0,O.jsxs)(`div`,{style:{marginTop:12},children:[(0,O.jsx)(je,{columns:[`result`,`value`],rows:[[`Grain size`,i.grain_size_nm==null?`undefined (intercept ≤ 0)`:`${Y(i.grain_size_nm)} nm`],[`Microstrain`,Y(i.microstrain)],[`R²`,Y(i.r2)]]}),(0,O.jsx)(G,{size:`sm`,style:{marginTop:8},onClick:h,children:`Clear result`})]})]})}var Gb=[{value:`williamson-hall`,label:`Williamson-Hall (size + strain)`},{value:`fft-thickness`,label:`Film thickness (XRD FFT)`},{value:`reflectivity-fft`,label:`Reflectivity FFT (Kiessig / superlattice)`}];function Kb(){let e=Z(e=>e.setReductionsOpen),t=Z(e=>e.reductionsMethod),n=Z(e=>e.setReductionsMethod);return(0,O.jsxs)(jd,{title:`Reductions`,width:380,onClose:()=>e(!1),children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Method`}),(0,O.jsx)(K,{options:Gb,value:t,onChange:e=>n(e.target.value)}),t===`williamson-hall`&&(0,O.jsx)(Wb,{}),t===`fft-thickness`&&(0,O.jsx)(Fb,{}),t===`reflectivity-fft`&&(0,O.jsx)(Bb,{})]})}function qb(e){return e?e.data.metadata?.is2D===!0&&e.data.labels.includes(`Qx`)&&e.data.labels.includes(`Qz`):!1}function Jb(e){let t=e.find(e=>e.classification===`substrate`)??e[0],n=e.find(e=>e.classification===`film`)??e[1];if(!t||!n)return null;let r=e=>e[0]!=null&&e[1]!=null&&Number.isFinite(e[0])&&Number.isFinite(e[1]);return!r(t.centre_Q)||!r(n.centre_Q)?null:{sub:t.centre_Q,film:n.centre_Q}}function Yb(){let e=pd(),t=Z(e=>e.setRsmPeaks),n=qb(e),[r,i]=(0,y.useState)(2),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null);(0,y.useEffect)(()=>{o(null),c(null),f(null)},[e]);async function p(){if(!(!e||!n)){u(!0),f(null),c(null);try{let n=await Z.getState().resolveDataset(e.id);if(!n)return;let i=await ot({dataset:n.data,n_peaks:r});o(i.peaks),t(i.peaks.length?{datasetId:n.id,peaks:i.peaks}:null),i.n_peaks_found===0&&f(`No peaks found above threshold.`)}catch(e){f(e instanceof Error?e.message:`RSM analysis failed`)}finally{u(!1)}}}async function m(){if(!a)return;let e=Jb(a);if(!e){f(`Need a substrate + film peak with finite Q-space centres.`);return}u(!0),f(null);try{c(await st({q_sub:e.sub,q_film:e.film}))}catch(e){f(e instanceof Error?e.message:`strain calculation failed`)}finally{u(!1)}}function h(){o(null),c(null),f(null),t(null)}return{active:e,isRsm:n,nPeaks:r,peaks:a,strain:s,busy:l,error:d,setNPeaks:i,analyze:p,computeStrain:m,clear:h}}function Xb(e,t=4){if(e==null||!Number.isFinite(e))return`—`;let n=Math.abs(e);return n!==0&&(n<.001||n>=1e5)?e.toExponential(2):Number(e.toPrecision(t)).toString()}var Zb=e=>e==null||!Number.isFinite(e)?`—`:`${(e*100).toFixed(3)} %`;function Qb(){let e=Z(e=>e.setRsmOpen),{active:t,isRsm:n,nPeaks:r,peaks:i,strain:a,busy:o,error:s,setNPeaks:c,analyze:l,computeStrain:u,clear:d}=Yb(),f=()=>{d(),e(!1)},p=!!i&&Jb(i)!=null;return(0,O.jsxs)(jd,{title:`RSM analysis`,width:360,onClose:f,children:[!t&&(0,O.jsx)($b,{children:`Select a dataset first.`}),t&&!n&&(0,O.jsx)($b,{children:`The active dataset is not a 2-D reciprocal-space map. Import a 2-D XRDML area scan (it carries Qx/Qz columns).`}),n&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{margin:0},children:`Peaks`}),(0,O.jsx)(q,{value:r,width:64,onChange:e=>c(Math.max(1,Number(e)||1))}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:o,onClick:()=>void l(),children:o?`Working…`:`Find peaks`})]}),i&&i.length>0&&(0,O.jsxs)(`table`,{className:`qzk-rsm-table`,style:{width:`100%`,marginTop:12,fontSize:11},children:[(0,O.jsx)(`thead`,{style:{color:`var(--text-faint)`,textAlign:`right`},children:(0,O.jsxs)(`tr`,{children:[(0,O.jsx)(`th`,{style:{textAlign:`left`},children:`type`}),(0,O.jsx)(`th`,{children:`ω`}),(0,O.jsx)(`th`,{children:`2θ`}),(0,O.jsx)(`th`,{children:`Qx`}),(0,O.jsx)(`th`,{children:`Qz`})]})}),(0,O.jsx)(`tbody`,{style:{fontVariantNumeric:`tabular-nums`},children:i.map(e=>(0,O.jsxs)(`tr`,{style:{textAlign:`right`},children:[(0,O.jsx)(`td`,{style:{textAlign:`left`,color:`var(--text)`},children:e.classification}),(0,O.jsx)(`td`,{children:Xb(e.centre_angle[0],5)}),(0,O.jsx)(`td`,{children:Xb(e.centre_angle[1],5)}),(0,O.jsx)(`td`,{children:Xb(e.centre_Q[0])}),(0,O.jsx)(`td`,{children:Xb(e.centre_Q[1])})]},e.rank))})]}),i&&i.length>0&&(0,O.jsx)(`div`,{style:{marginTop:12},children:(0,O.jsx)(G,{size:`sm`,disabled:o||!p,onClick:()=>void u(),children:`Compute strain →`})}),a&&(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{marginTop:12,display:`grid`,gridTemplateColumns:`auto auto`,gap:`4px 16px`},children:[(0,O.jsx)(`span`,{children:`ε∥ (in-plane)`}),(0,O.jsx)(`strong`,{children:Zb(a.eps_parallel)}),(0,O.jsx)(`span`,{children:`ε⊥ (out-of-plane)`}),(0,O.jsx)(`strong`,{children:Zb(a.eps_perp)}),(0,O.jsx)(`span`,{children:`Relaxation R`}),(0,O.jsx)(`strong`,{children:a.relaxation==null?`—`:Xb(a.relaxation,3)}),(0,O.jsx)(`span`,{children:`a∥ film / sub (Å)`}),(0,O.jsxs)(`strong`,{children:[Xb(a.a_film_parallel),` / `,Xb(a.a_sub_parallel)]}),(0,O.jsx)(`span`,{children:`a⊥ film / sub (Å)`}),(0,O.jsxs)(`strong`,{children:[Xb(a.a_film_perp),` / `,Xb(a.a_sub_perp)]})]})]}),s&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{marginTop:10,color:`var(--danger)`},children:s})]})}function $b({children:e}){return(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:e})}function ex(e,t){let n=t.px-e.px;if(n===0)return{scale:0,offset:e.value};let r=(t.value-e.value)/n;return{scale:r,offset:e.value-r*e.px}}function tx(e,t){return e.scale*t+e.offset}function nx(e,t,n,r){return{x:ex(e,t),y:ex(n,r)}}function rx(e,t,n){return[tx(e.x,t),tx(e.y,n)]}function ix(e,t){let n=t.map(t=>rx(e,t.px,t.py));return n.sort((e,t)=>e[0]-t[0]),{x:n.map(e=>e[0]),y:n.map(e=>e[1])}}var ax=[`x1`,`x2`,`y1`,`y2`,`trace`],ox=0;function sx(){let e=Z(e=>e.addDataset),t=Z(e=>e.setStatus),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(`x1`),[o,s]=(0,y.useState)({}),[c,l]=(0,y.useState)([]),[u,d]=(0,y.useState)(null),f=!!(o.x1&&o.x2&&o.y1&&o.y2);function p(){a(`x1`),s({}),l([]),d(null)}function m(e){r(e),p()}function h(e,t){i===`trace`?l(n=>[...n,{px:e,py:t}]):d({px:e,py:t})}function g(e){!u||i===`trace`||!Number.isFinite(e)||(s(t=>({...t,[i]:{...u,value:e}})),d(null),a(ax[Math.min(ax.indexOf(i)+1,ax.length-1)]))}function _(){d(null)}function v(){i===`trace`&&l(e=>e.slice(0,-1))}function b(n){if(!f||c.length<2)return;let{x:r,y:i}=ix(nx({px:o.x1.px,value:o.x1.value},{px:o.x2.px,value:o.x2.value},{px:o.y1.py,value:o.y1.value},{px:o.y2.py,value:o.y2.value}),c),a={time:r,values:i.map(e=>[e]),labels:[`y`],units:[``],metadata:{x_column_name:`x`,x_column_unit:``,source:`digitized`}};e({id:`digi-${++ox}`,name:n.trim()||`digitized`,data:a}),t(`digitized ${r.length} points → ${n.trim()||`digitized`}`)}return{image:n,mode:i,refs:o,traced:c,pending:u,ready:f,setImage:m,click:h,commit:g,cancelPending:_,undo:v,reset:p,create:b}}var cx={x1:`Click the 1st point on the X axis, then enter its value.`,x2:`Click a 2nd point on the X axis (different value).`,y1:`Click the 1st point on the Y axis, then enter its value.`,y2:`Click a 2nd point on the Y axis (different value).`,trace:`Click along the curve to trace it.`},lx={x1:`#22d3ee`,x2:`#22d3ee`,y1:`#f59e0b`,y2:`#f59e0b`};function ux(){let e=Z(e=>e.setDigitizerOpen),t=sx(),n=(0,y.useRef)(null),[r,i]=(0,y.useState)([1,1]),[a,o]=(0,y.useState)(``),[s,c]=(0,y.useState)(`digitized`);function l(e){let n=new FileReader;n.onload=()=>t.setImage(typeof n.result==`string`?n.result:null),n.readAsDataURL(e)}function u(e){let t=Array.from(e.clipboardData.items).find(e=>e.type.startsWith(`image/`))?.getAsFile();t&&l(t)}function d(e){let r=n.current;if(!r)return;let i=r.getBoundingClientRect(),a=(e.clientX-i.left)/i.width*r.naturalWidth,o=(e.clientY-i.top)/i.height*r.naturalHeight;t.click(a,o)}function f(){t.commit(Number(a)),o(``)}let p=Math.max(4,r[0]/140),m=Object.entries(t.refs);return(0,O.jsxs)(`div`,{className:`qzk-digitizer`,onPaste:u,style:{position:`fixed`,inset:0,zIndex:200,background:`var(--bg, #111)`,display:`flex`,flexDirection:`column`},children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,padding:`8px 12px`,borderBottom:`1px solid var(--border, #333)`},children:[(0,O.jsx)(`strong`,{style:{color:`var(--accent)`},children:`Graph digitizer`}),(0,O.jsx)(`span`,{className:`qzk-ds-meta`,style:{color:`var(--text-dim)`},children:t.image?cx[t.mode]:`Load or paste an image of a plot to begin.`}),(0,O.jsx)(`span`,{style:{flex:1}}),(0,O.jsxs)(`label`,{className:`qz-icon-btn`,title:`Load image`,style:{cursor:`default`},children:[`⤒`,(0,O.jsx)(`input`,{type:`file`,accept:`image/*`,style:{display:`none`},onChange:e=>e.target.files?.[0]&&l(e.target.files[0])})]}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Close digitizer`,onClick:()=>e(!1),children:`×`})]}),(0,O.jsx)(`div`,{style:{flex:1,overflow:`auto`,display:`grid`,placeItems:`center`,padding:12},children:t.image?(0,O.jsxs)(`div`,{style:{position:`relative`,maxWidth:`100%`},children:[(0,O.jsx)(`img`,{ref:n,src:t.image,alt:`plot to digitize`,onLoad:e=>i([e.currentTarget.naturalWidth,e.currentTarget.naturalHeight]),onClick:d,style:{display:`block`,maxWidth:`100%`,height:`auto`,cursor:`crosshair`}}),(0,O.jsxs)(`svg`,{viewBox:`0 0 ${r[0]} ${r[1]}`,style:{position:`absolute`,inset:0,width:`100%`,height:`100%`,pointerEvents:`none`},children:[m.map(([e,t])=>(0,O.jsxs)(`g`,{children:[(0,O.jsx)(`circle`,{cx:t.px,cy:t.py,r:p,fill:`none`,stroke:lx[e],strokeWidth:p/3}),(0,O.jsx)(`text`,{x:t.px+p*1.4,y:t.py,fill:lx[e],fontSize:p*2.4,children:e.toUpperCase()})]},e)),t.traced.map((e,t)=>(0,O.jsx)(`circle`,{cx:e.px,cy:e.py,r:p*.7,fill:`var(--accent)`},t)),t.pending&&(0,O.jsx)(`circle`,{cx:t.pending.px,cy:t.pending.py,r:p,fill:`none`,stroke:`#fff`,strokeWidth:p/3})]})]}):(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`,textAlign:`center`},children:[`Press the ⤒ button to load an image, or paste one (Ctrl/Cmd-V).`,(0,O.jsx)(`br`,{}),`Then click two points on each axis, enter their values, and trace the curve.`]})}),t.image&&(0,O.jsxs)(`div`,{className:`qzk-glass`,style:{display:`flex`,alignItems:`center`,gap:10,padding:`8px 12px`,flexWrap:`wrap`},children:[t.pending?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:[t.mode.startsWith(`x`)?`X`:`Y`,` value`]}),(0,O.jsx)(q,{value:a,width:110,onChange:e=>o(e)}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,onClick:f,children:`Set`}),(0,O.jsx)(G,{size:`sm`,onClick:t.cancelPending,children:`Cancel`})]}):t.mode===`trace`?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,children:[t.traced.length,` points traced`]}),(0,O.jsx)(G,{size:`sm`,disabled:!t.traced.length,onClick:t.undo,children:`Undo point`}),(0,O.jsx)(`span`,{className:`qzk-tool-sep`}),(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`Name`}),(0,O.jsx)(`input`,{className:`qz-input`,value:s,onChange:e=>c(e.target.value),style:{width:140}}),(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:!t.ready||t.traced.length<2,onClick:()=>{t.create(s),e(!1)},children:`Create dataset →`})]}):(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:[`Click a point on the image to set `,t.mode.toUpperCase(),`.`]}),(0,O.jsx)(`span`,{style:{flex:1}}),(0,O.jsx)(G,{size:`sm`,onClick:t.reset,children:`Reset`})]})]})}var dx=!0,fx=`uplot`,px=`u-hz`,mx=`u-vt`,hx=`u-title`,gx=`u-wrap`,_x=`u-under`,vx=`u-over`,yx=`u-axis`,bx=`u-off`,xx=`u-select`,Sx=`u-cursor-x`,Cx=`u-cursor-y`,wx=`u-cursor-pt`,Tx=`u-legend`,Ex=`u-live`,Dx=`u-inline`,Ox=`u-series`,kx=`u-marker`,Ax=`u-label`,jx=`u-value`,Mx=`width`,Nx=`height`,Px=`top`,Fx=`bottom`,Ix=`left`,Lx=`right`,Rx=`#000`,zx=`#0000`,Bx=`mousemove`,Vx=`mousedown`,Hx=`mouseup`,Ux=`mouseenter`,Wx=`mouseleave`,Gx=`dblclick`,Kx=`resize`,qx=`scroll`,Jx=`change`,Yx=`dppxchange`,Xx=`--`,Zx=typeof window<`u`,Qx=Zx?document:null,$x=Zx?window:null,eS=Zx?navigator:null,tS,nS;function rS(){let e=devicePixelRatio;tS!=e&&(tS=e,nS&&vS(Jx,nS,rS),nS=matchMedia(`(min-resolution: ${tS-.001}dppx) and (max-resolution: ${tS+.001}dppx)`),_S(Jx,nS,rS),$x.dispatchEvent(new CustomEvent(Yx)))}function iS(e,t){if(t!=null){let n=e.classList;!n.contains(t)&&n.add(t)}}function aS(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function oS(e,t,n){e.style[t]=n+`px`}function sS(e,t,n,r){let i=Qx.createElement(e);return t!=null&&iS(i,t),n?.insertBefore(i,r),i}function cS(e,t){return sS(`div`,e,t)}var lS=new WeakMap;function uS(e,t,n,r,i){let a=`translate(`+t+`px,`+n+`px)`;a!=lS.get(e)&&(e.style.transform=a,lS.set(e,a),t<0||n<0||t>r||n>i?iS(e,bx):aS(e,bx))}var dS=new WeakMap;function fS(e,t,n){let r=t+n;r!=dS.get(e)&&(dS.set(e,r),e.style.background=t,e.style.borderColor=n)}var pS=new WeakMap;function mS(e,t,n,r){let i=t+``+n;i!=pS.get(e)&&(pS.set(e,i),e.style.height=n+`px`,e.style.width=t+`px`,e.style.marginLeft=r?-t/2+`px`:0,e.style.marginTop=r?-n/2+`px`:0)}var hS={passive:!0},gS={...hS,capture:!0};function _S(e,t,n,r){t.addEventListener(e,n,r?gS:hS)}function vS(e,t,n,r){t.removeEventListener(e,n,hS)}Zx&&rS();function yS(e,t,n,r){let i;n||=0,r||=t.length-1;let a=r<=2147483647;for(;r-n>1;)i=a?n+r>>1:VS((n+r)/2),t[i]<e?n=i:r=i;return e-t[n]<=t[r]-e?n:r}function bS(e){return(t,n,r)=>{let i=-1,a=-1;for(let a=n;a<=r;a++)if(e(t[a])){i=a;break}for(let i=r;i>=n;i--)if(e(t[i])){a=i;break}return[i,a]}}var xS=e=>e!=null,SS=e=>e!=null&&e>0,CS=bS(xS),wS=bS(SS);function TS(e,t,n,r=0,i=!1){let a=i?wS:CS,o=i?SS:xS;[t,n]=a(e,t,n);let s=e[t],c=e[t];if(t>-1)if(r==1)s=e[t],c=e[n];else if(r==-1)s=e[n],c=e[t];else for(let r=t;r<=n;r++){let t=e[r];o(t)&&(t<s?s=t:t>c&&(c=t))}return[s??QS,c??-QS]}function ES(e,t,n,r){let i=qS(e),a=qS(t);e==t&&(i==-1?(e*=n,t/=n):(e/=n,t*=n));let o=n==10?JS:YS,s=i==1?VS:US,c=a==1?US:VS,l=s(o(BS(e))),u=c(o(BS(t))),d=KS(n,l),f=KS(n,u);return n==10&&(l<0&&(d=mC(d,-l)),u<0&&(f=mC(f,-u))),r||n==2?(e=d*i,t=f*a):(e=pC(e,d),t=fC(t,f)),[e,t]}function DS(e,t,n,r){let i=ES(e,t,n,r);return e==0&&(i[0]=0),t==0&&(i[1]=0),i}var OS=.1,kS={mode:3,pad:OS},AS={pad:0,soft:null,mode:0},jS={min:AS,max:AS};function MS(e,t,n,r){return TC(n)?FS(e,t,n):(AS.pad=n,AS.soft=r?0:null,AS.mode=r?3:0,FS(e,t,jS))}function NS(e,t){return e??t}function PS(e,t,n){for(t=NS(t,0),n=NS(n,e.length-1);t<=n;){if(e[t]!=null)return!0;t++}return!1}function FS(e,t,n){let r=n.min,i=n.max,a=NS(r.pad,0),o=NS(i.pad,0),s=NS(r.hard,-QS),c=NS(i.hard,QS),l=NS(r.soft,QS),u=NS(i.soft,-QS),d=NS(r.mode,0),f=NS(i.mode,0),p=t-e,m=JS(p),h=GS(BS(e),BS(t)),g=BS(JS(h)-m);(p<1e-24||g>10)&&(p=0,(e==0||t==0)&&(p=1e-24,d==2&&l!=QS&&(a=0),f==2&&u!=-QS&&(o=0)));let _=p||h||1e3,v=KS(10,VS(JS(_))),y=mC(pC(e-_*(p==0?e==0?.1:1:a),v/10),24),b=e>=l&&(d==1||d==3&&y<=l||d==2&&y>=l)?l:QS,x=GS(s,y<b&&e>=b?b:WS(b,y)),S=mC(fC(t+_*(p==0?t==0?.1:1:o),v/10),24),C=t<=u&&(f==1||f==3&&S>=u||f==2&&S<=u)?u:-QS,w=WS(c,S>C&&t<=C?C:GS(C,S));return x==w&&x==0&&(w=100),[x,w]}var IS=new Intl.NumberFormat(Zx?eS.language:`en-US`),LS=e=>IS.format(e),RS=Math,zS=RS.PI,BS=RS.abs,VS=RS.floor,HS=RS.round,US=RS.ceil,WS=RS.min,GS=RS.max,KS=RS.pow,qS=RS.sign,JS=RS.log10,YS=RS.log2,XS=(e,t=1)=>RS.sinh(e)*t,ZS=(e,t=1)=>RS.asinh(e/t),QS=1/0;function $S(e){return(JS((e^e>>31)-(e>>31))|0)+1}function eC(e,t,n){return WS(GS(e,t),n)}function tC(e){return typeof e==`function`}function nC(e){return tC(e)?e:()=>e}var rC=()=>{},iC=e=>e,aC=(e,t)=>t,oC=e=>null,sC=e=>!0,cC=(e,t)=>e==t,lC=/\.\d*?(?=9{6,}|0{6,})/gm,uC=e=>{if(SC(e)||hC.has(e))return e;let t=`${e}`,n=t.match(lC);if(n==null)return e;let r=n[0].length-1;if(t.indexOf(`e-`)!=-1){let[e,n]=t.split(`e`);return+`${uC(e)}e${n}`}return mC(e,r)};function dC(e,t){return uC(mC(uC(e/t))*t)}function fC(e,t){return uC(US(uC(e/t))*t)}function pC(e,t){return uC(VS(uC(e/t))*t)}function mC(e,t=0){if(SC(e))return e;let n=10**t;return HS(e*n*(1+2**-52))/n}var hC=new Map;function gC(e){return((``+e).split(`.`)[1]||``).length}function _C(e,t,n,r){let i=[],a=r.map(gC);for(let o=t;o<n;o++){let t=BS(o),n=mC(KS(e,o),t);for(let s=0;s<r.length;s++){let c=e==10?+`${r[s]}e${o}`:r[s]*n,l=(o>=0?0:t)+(o>=a[s]?0:a[s]),u=e==10?c:mC(c,l);i.push(u),hC.set(u,l)}}return i}var vC={},yC=[],bC=[null,null],xC=Array.isArray,SC=Number.isInteger,CC=e=>e===void 0;function wC(e){return typeof e==`string`}function TC(e){let t=!1;if(e!=null){let n=e.constructor;t=n==null||n==Object}return t}function EC(e){return typeof e==`object`&&!!e}var DC=Object.getPrototypeOf(Uint8Array),OC=`__proto__`;function kC(e,t=TC){let n;if(xC(e)){let r=e.find(e=>e!=null);if(xC(r)||t(r)){n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=kC(e[r],t)}else n=e.slice()}else if(e instanceof DC)n=e.slice();else if(t(e)){n={};for(let r in e)r!=OC&&(n[r]=kC(e[r],t))}else n=e;return n}function AC(e){let t=arguments;for(let n=1;n<t.length;n++){let r=t[n];for(let t in r)t!=OC&&(TC(e[t])?AC(e[t],kC(r[t])):e[t]=kC(r[t]))}return e}var jC=0,MC=1,NC=2;function PC(e,t,n){for(let r=0,i,a=-1;r<t.length;r++){let o=t[r];if(o>a){for(i=o-1;i>=0&&e[i]==null;)e[i--]=null;for(i=o+1;i<n&&e[i]==null;)e[a=i++]=null}}}function FC(e,t){if(RC(e)){let t=e[0].slice();for(let n=1;n<e.length;n++)t.push(...e[n].slice(1));return zC(t[0])||(t=LC(t)),t}let n=new Set;for(let t=0;t<e.length;t++){let r=e[t][0],i=r.length;for(let e=0;e<i;e++)n.add(r[e])}let r=[Array.from(n).sort((e,t)=>e-t)],i=r[0].length,a=new Map;for(let e=0;e<i;e++)a.set(r[0][e],e);for(let n=0;n<e.length;n++){let o=e[n],s=o[0];for(let e=1;e<o.length;e++){let c=o[e],l=Array(i).fill(void 0),u=t?t[n][e]:MC,d=[];for(let e=0;e<c.length;e++){let t=c[e],n=a.get(s[e]);t===null?u!=jC&&(l[n]=t,u==NC&&d.push(n)):l[n]=t}PC(l,d,i),r.push(l)}}return r}var IC=typeof queueMicrotask>`u`?e=>Promise.resolve().then(e):queueMicrotask;function LC(e){let t=e[0],n=t.length,r=Array(n);for(let e=0;e<r.length;e++)r[e]=e;r.sort((e,n)=>t[e]-t[n]);let i=[];for(let t=0;t<e.length;t++){let a=e[t],o=Array(n);for(let e=0;e<n;e++)o[e]=a[r[e]];i.push(o)}return i}function RC(e){let t=e[0][0],n=t.length;for(let r=1;r<e.length;r++){let i=e[r][0];if(i.length!=n)return!1;if(i!=t){for(let e=0;e<n;e++)if(i[e]!=t[e])return!1}}return!0}function zC(e,t=100){let n=e.length;if(n<=1)return!0;let r=0,i=n-1;for(;r<=i&&e[r]==null;)r++;for(;i>=r&&e[i]==null;)i--;if(i<=r)return!0;let a=GS(1,VS((i-r+1)/t));for(let t=e[r],n=r+a;n<=i;n+=a){let r=e[n];if(r!=null){if(r<=t)return!1;t=r}}return!0}var BC=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],VC=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function HC(e){return e.slice(0,3)}var UC=VC.map(HC),WC={MMMM:BC,MMM:BC.map(HC),WWWW:VC,WWW:UC};function GC(e){return(e<10?`0`:``)+e}function KC(e){return(e<10?`00`:e<100?`0`:``)+e}var qC={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+``).slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>GC(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>GC(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>GC(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return t==0?12:t>12?t-12:t},AA:e=>e.getHours()>=12?`PM`:`AM`,aa:e=>e.getHours()>=12?`pm`:`am`,a:e=>e.getHours()>=12?`p`:`a`,mm:e=>GC(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>GC(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>KC(e.getMilliseconds())};function JC(e,t){t||=WC;let n=[],r=/\{([a-z]+)\}|[^{]+/gi,i;for(;i=r.exec(e);)n.push(i[0][0]==`{`?qC[i[1]]:i[0]);return e=>{let r=``;for(let i=0;i<n.length;i++)r+=typeof n[i]==`string`?n[i]:n[i](e,t);return r}}var YC=new Intl.DateTimeFormat().resolvedOptions().timeZone;function XC(e,t){let n;return t==`UTC`||t==`Etc/UTC`?n=new Date(+e+e.getTimezoneOffset()*6e4):t==YC?n=e:(n=new Date(e.toLocaleString(`en-US`,{timeZone:t})),n.setMilliseconds(e.getMilliseconds())),n}var ZC=e=>e%1==0,QC=[1,2,2.5,5],$C=_C(10,-32,0,QC),ew=_C(10,0,32,QC),tw=ew.filter(ZC),nw=$C.concat(ew),rw=`{YYYY}`,iw=`
16
+ {YYYY}`,aw=`{M}/{D}`,ow=`
17
+ {M}/{D}`,sw=`
18
+ {M}/{D}/{YY}`,cw=`{h}:{mm}{aa}`,lw=`
19
+ {h}:{mm}{aa}`,uw=`:{ss}`,dw=null;function fw(e){let t=e*1e3,n=t*60,r=n*60,i=r*24,a=i*30,o=i*365,s=(e==1?_C(10,0,3,QC).filter(ZC):_C(10,-3,0,QC)).concat([t,t*5,t*10,t*15,t*30,n,n*5,n*10,n*15,n*30,r,r*2,r*3,r*4,r*6,r*8,r*12,i,i*2,i*3,i*4,i*5,i*6,i*7,i*8,i*9,i*10,i*15,a,a*2,a*3,a*4,a*6,o,o*2,o*5,o*10,o*25,o*50,o*100]),c=[[o,rw,dw,dw,dw,dw,dw,dw,1],[i*28,`{MMM}`,iw,dw,dw,dw,dw,dw,1],[i,aw,iw,dw,dw,dw,dw,dw,1],[r,`{h}{aa}`,sw,dw,ow,dw,dw,dw,1],[n,cw,sw,dw,ow,dw,dw,dw,1],[t,uw,`
20
+ {M}/{D}/{YY} {h}:{mm}{aa}`,dw,`
21
+ {M}/{D} {h}:{mm}{aa}`,dw,lw,dw,1],[e,`:{ss}.{fff}`,`
22
+ {M}/{D}/{YY} {h}:{mm}{aa}`,dw,`
23
+ {M}/{D} {h}:{mm}{aa}`,dw,lw,dw,1]];function l(t){return(s,c,l,u,d,f)=>{let p=[],m=d>=o,h=d>=a&&d<o,g=t(l),_=mC(g*e,3),v=Sw(g.getFullYear(),m?0:g.getMonth(),h||m?1:g.getDate()),y=mC(v*e,3);if(h||m){let n=h?d/a:0,r=m?d/o:0,i=_==y?_:mC(Sw(v.getFullYear()+r,v.getMonth()+n,1)*e,3),s=new Date(HS(i/e)),c=s.getFullYear(),l=s.getMonth();for(let a=0;i<=u;a++){let o=Sw(c+r*a,l+n*a,1),s=o-t(mC(o*e,3));i=mC((+o+s)*e,3),i<=u&&p.push(i)}}else{let a=d>=i?i:d,o=y+(VS(l)-VS(_))+fC(_-y,a);p.push(o);let m=t(o),h=m.getHours()+m.getMinutes()/n+m.getSeconds()/r,g=d/r,v=f/s.axes[c]._space;for(;o=mC(o+d,e==1?0:3),!(o>u);)if(g>1){let e=VS(mC(h+g,6))%24,n=t(o).getHours()-e;n>1&&(n=-1),o-=n*r,h=(h+g)%24;let i=p[p.length-1];mC((o-i)/d,3)*v>=.7&&p.push(o)}else p.push(o)}return p}}return[s,c,l]}var[pw,mw,hw]=fw(1),[gw,_w,vw]=fw(.001);_C(2,-53,53,[1]);function yw(e,t){return e.map(e=>e.map((n,r)=>r==0||r==8||n==null?n:t(r==1||e[8]==0?n:e[1]+n)))}function bw(e,t){return(n,r,i,a,o)=>{let s=t.find(e=>o>=e[0])||t[t.length-1],c,l,u,d,f,p;return r.map(t=>{let n=e(t),r=n.getFullYear(),i=n.getMonth(),a=n.getDate(),o=n.getHours(),m=n.getMinutes(),h=n.getSeconds(),g=r!=c&&s[2]||i!=l&&s[3]||a!=u&&s[4]||o!=d&&s[5]||m!=f&&s[6]||h!=p&&s[7]||s[1];return c=r,l=i,u=a,d=o,f=m,p=h,g(n)})}}function xw(e,t){let n=JC(t);return(t,r,i,a,o)=>r.map(t=>n(e(t)))}function Sw(e,t,n){return new Date(e,t,n)}function Cw(e,t){return t(e)}var ww=`{YYYY}-{MM}-{DD} {h}:{mm}{aa}`;function Tw(e,t){return(n,r,i,a)=>a==null?Xx:t(e(r))}function Ew(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null}function Dw(e,t){return e.series[t].fill(e,t)}var Ow={show:!0,live:!0,isolate:!1,mount:rC,markers:{show:!0,width:2,stroke:Ew,fill:Dw,dash:`solid`},idx:null,idxs:null,values:[]};function kw(e,t){let n=e.cursor.points,r=cS(),i=n.size(e,t);oS(r,Mx,i),oS(r,Nx,i);let a=i/-2;oS(r,`marginLeft`,a),oS(r,`marginTop`,a);let o=n.width(e,t,i);return o&&oS(r,`borderWidth`,o),r}function Aw(e,t){let n=e.series[t].points;return n._fill||n._stroke}function jw(e,t){let n=e.series[t].points;return n._stroke||n._fill}function Mw(e,t){return e.series[t].points.size}var Nw=[0,0];function Pw(e,t,n){return Nw[0]=t,Nw[1]=n,Nw}function Fw(e,t,n,r=!0){return e=>{e.button==0&&(!r||e.target==t)&&n(e)}}function Iw(e,t,n,r=!0){return e=>{(!r||e.target==t)&&n(e)}}var Lw={show:!0,x:!0,y:!0,lock:!1,move:Pw,points:{one:!1,show:kw,size:Mw,width:0,stroke:jw,fill:Aw},bind:{mousedown:Fw,mouseup:Fw,click:Fw,dblclick:Fw,mousemove:Iw,mouseleave:Iw,mouseenter:Iw},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(e,t)=>{t.stopPropagation(),t.stopImmediatePropagation()},_x:!1,_y:!1},focus:{dist:(e,t,n,r,i)=>r-i,prox:-1,bias:0},hover:{skip:[void 0],prox:null,bias:0},left:-10,top:-10,idx:null,dataIdx:null,idxs:null,event:null},Rw={show:!0,stroke:`rgba(0,0,0,0.07)`,width:2},zw=AC({},Rw,{filter:aC}),Bw=AC({},zw,{size:10}),Vw=AC({},Rw,{show:!1}),Hw=`12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"`,Uw=`bold 12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"`,Ww=1.5,Gw={show:!0,scale:`x`,stroke:Rx,space:50,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:Uw,side:2,grid:zw,ticks:Bw,border:Vw,font:Hw,lineGap:Ww,rotate:0},Kw=`Value`,qw=`Time`,Jw={show:!0,scale:`x`,auto:!1,sorted:1,min:QS,max:-1/0,idxs:[]};function Yw(e,t,n,r,i){return t.map(e=>e==null?``:LS(e))}function Xw(e,t,n,r,i,a,o){let s=[],c=hC.get(i)||0;n=o?n:mC(fC(n,i),c);for(let e=n;e<=r;e=mC(e+i,c))s.push(Object.is(e,-0)?0:e);return s}function Zw(e,t,n,r,i,a,o){let s=[],c=e.scales[e.axes[t].scale].log;i=KS(c,VS((c==10?JS:YS)(n))),c==10&&(i=nw[yS(i,nw)]);let l=n,u=i*c;c==10&&(u=nw[yS(u,nw)]);do s.push(l),l+=i,c==10&&!hC.has(l)&&(l=mC(l,hC.get(i))),l>=u&&(i=l,u=i*c,c==10&&(u=nw[yS(u,nw)]));while(l<=r);return s}function Qw(e,t,n,r,i,a,o){let s=e.scales[e.axes[t].scale].asinh,c=r>s?Zw(e,t,GS(s,n),r,i):[s],l=r>=0&&n<=0?[0]:[];return(n<-s?Zw(e,t,GS(s,-r),-n,i):[s]).reverse().map(e=>-e).concat(l,c)}var $w=/./,eT=/[12357]/,tT=/[125]/,nT=/1/,rT=(e,t,n,r)=>e.map((e,i)=>t==4&&e==0||i%r==0&&n.test(e.toExponential()[+(e<0)])?e:null);function iT(e,t,n,r,i){let a=e.axes[n],o=a.scale,s=e.scales[o],c=e.valToPos,l=a._space,u=c(10,o),d=c(9,o)-u>=l?$w:c(7,o)-u>=l?eT:c(5,o)-u>=l?tT:nT;if(d==nT){let e=BS(c(1,o)-u);if(e<l)return rT(t.slice().reverse(),s.distr,d,US(l/e)).reverse()}return rT(t,s.distr,d,1)}function aT(e,t,n,r,i){let a=e.axes[n],o=a.scale,s=a._space,c=e.valToPos,l=BS(c(1,o)-c(2,o));return l<s?rT(t.slice().reverse(),3,$w,US(s/l)).reverse():t}function oT(e,t,n,r){return r==null?Xx:t==null?``:LS(t)}var sT={show:!0,scale:`y`,stroke:Rx,space:30,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:Uw,side:3,grid:zw,ticks:Bw,border:Vw,font:Hw,lineGap:Ww,rotate:0};function cT(e,t){return mC((3+(e||1)*2)*t,3)}function lT(e,t){let{scale:n,idxs:r}=e.series[0],i=e._data[0],a=e.valToPos(i[r[0]],n,!0),o=BS(e.valToPos(i[r[1]],n,!0)-a)/(e.series[t].points.space*tS);return r[1]-r[0]<=o}var uT={scale:null,auto:!0,sorted:0,min:QS,max:-1/0},dT=(e,t,n,r,i)=>i,fT={show:!0,auto:!0,sorted:0,gaps:dT,alpha:1,facets:[AC({},uT,{scale:`x`}),AC({},uT,{scale:`y`})]},pT={scale:`y`,auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:dT,alpha:1,points:{show:lT,filter:null},values:null,min:QS,max:-1/0,idxs:[],path:null,clip:null};function mT(e,t,n,r,i){return n/10}var hT={time:dx,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},gT=AC({},hT,{time:!1,ori:1}),_T={};function vT(e,t){let n=_T[e];return n||(n={key:e,plots:[],sub(e){n.plots.push(e)},unsub(e){n.plots=n.plots.filter(t=>t!=e)},pub(e,t,r,i,a,o,s){for(let c=0;c<n.plots.length;c++)n.plots[c]!=t&&n.plots[c].pub(e,t,r,i,a,o,s)}},e!=null&&(_T[e]=n)),n}var yT=1,bT=2;function xT(e,t,n){let r=e.mode,i=e.series[t],a=r==2?e._data[t]:e._data,o=e.scales,s=e.bbox,c=a[0],l=r==2?a[1]:a[t],u=r==2?o[i.facets[0].scale]:o[e.series[0].scale],d=r==2?o[i.facets[1].scale]:o[i.scale],f=s.left,p=s.top,m=s.width,h=s.height,g=e.valToPosH,_=e.valToPosV;return u.ori==0?n(i,c,l,u,d,g,_,f,p,m,h,AT,MT,PT,IT,RT):n(i,c,l,u,d,_,g,p,f,h,m,jT,NT,FT,LT,zT)}function ST(e,t){let n=0,r=0,i=NS(e.bands,yC);for(let e=0;e<i.length;e++){let a=i[e];a.series[0]==t?n=a.dir:a.series[1]==t&&(a.dir==1?r|=1:r|=2)}return[n,r==1?-1:r==2?1:r==3?2:0]}function CT(e,t,n,r,i){let a=e.mode,o=e.series[t],s=a==2?o.facets[1].scale:o.scale,c=e.scales[s];return i==-1?c.min:i==1?c.max:c.distr==3?c.dir==1?c.min:c.max:0}function wT(e,t,n,r,i,a){return xT(e,t,(e,t,o,s,c,l,u,d,f,p,m)=>{let h=e.pxRound,g=s.dir*(s.ori==0?1:-1),_=s.ori==0?MT:NT,v,y;g==1?(v=n,y=r):(v=r,y=n);let b=h(l(t[v],s,p,d)),x=h(u(o[v],c,m,f)),S=h(l(t[y],s,p,d)),C=h(u(a==1?c.max:c.min,c,m,f)),w=new Path2D(i);return _(w,S,C),_(w,b,C),_(w,b,x),w})}function TT(e,t,n,r,i,a){let o=null;if(e.length>0){o=new Path2D;let s=t==0?PT:FT,c=n;for(let t=0;t<e.length;t++){let n=e[t];if(n[1]>n[0]){let e=n[0]-c;e>0&&s(o,c,r,e,r+a),c=n[1]}}let l=n+i-c;l>0&&s(o,c,r-10/2,l,r+a+10)}return o}function ET(e,t,n){let r=e[e.length-1];r&&r[0]==t?r[1]=n:e.push([t,n])}function DT(e,t,n,r,i,a,o){let s=[],c=e.length;for(let l=i==1?n:r;l>=n&&l<=r;l+=i)if(t[l]===null){let u=l,d=l;if(i==1)for(;++l<=r&&t[l]===null;)d=l;else for(;--l>=n&&t[l]===null;)d=l;let f=a(e[u]),p=d==u?f:a(e[d]),m=u-i;f=o<=0&&m>=0&&m<c?a(e[m]):f;let h=d+i;p=o>=0&&h>=0&&h<c?a(e[h]):p,p>=f&&s.push([f,p])}return s}function OT(e){return e==0?iC:e==1?HS:t=>dC(t,e)}function kT(e){let t=e==0?AT:jT,n=e==0?(e,t,n,r,i,a)=>{e.arcTo(t,n,r,i,a)}:(e,t,n,r,i,a)=>{e.arcTo(n,t,i,r,a)},r=e==0?(e,t,n,r,i)=>{e.rect(t,n,r,i)}:(e,t,n,r,i)=>{e.rect(n,t,i,r)};return(e,i,a,o,s,c=0,l=0)=>{c==0&&l==0?r(e,i,a,o,s):(c=WS(c,o/2,s/2),l=WS(l,o/2,s/2),t(e,i+c,a),n(e,i+o,a,i+o,a+s,c),n(e,i+o,a+s,i,a+s,l),n(e,i,a+s,i,a,l),n(e,i,a,i+o,a,c),e.closePath())}}var AT=(e,t,n)=>{e.moveTo(t,n)},jT=(e,t,n)=>{e.moveTo(n,t)},MT=(e,t,n)=>{e.lineTo(t,n)},NT=(e,t,n)=>{e.lineTo(n,t)},PT=kT(0),FT=kT(1),IT=(e,t,n,r,i,a)=>{e.arc(t,n,r,i,a)},LT=(e,t,n,r,i,a)=>{e.arc(n,t,r,i,a)},RT=(e,t,n,r,i,a,o)=>{e.bezierCurveTo(t,n,r,i,a,o)},zT=(e,t,n,r,i,a,o)=>{e.bezierCurveTo(n,t,i,r,o,a)};function BT(e){return(e,t,n,r,i)=>xT(e,t,(t,a,o,s,c,l,u,d,f,p,m)=>{let{pxRound:h,points:g}=t,_,v;s.ori==0?(_=AT,v=IT):(_=jT,v=LT);let y=mC(g.width*tS,3),b=(g.size-g.width)/2*tS,x=mC(b*2,3),S=new Path2D,C=new Path2D,{left:w,top:T,width:E,height:D}=e.bbox;PT(C,w-x,T-x,E+x*2,D+x*2);let O=e=>{if(o[e]!=null){let t=h(l(a[e],s,p,d)),n=h(u(o[e],c,m,f));_(S,t+b,n),v(S,t,n,b,0,zS*2)}};if(i)i.forEach(O);else for(let e=n;e<=r;e++)O(e);return{stroke:y>0?S:null,fill:S,clip:C,flags:3}})}function VT(e){return(t,n,r,i,a,o)=>{r!=i&&(a!=r&&o!=r&&e(t,n,r),a!=i&&o!=i&&e(t,n,i),e(t,n,o))}}var HT=VT(MT),UT=VT(NT);function WT(e){let t=NS(e?.alignGaps,0);return(e,n,r,i)=>xT(e,n,(a,o,s,c,l,u,d,f,p,m,h)=>{[r,i]=CS(s,r,i);let g=a.pxRound,_=e=>g(u(e,c,m,f)),v=e=>g(d(e,l,h,p)),y,b;c.ori==0?(y=MT,b=HT):(y=NT,b=UT);let x=c.dir*(c.ori==0?1:-1),S={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:yT},C=S.stroke,w=!1;if(i-r>=m*4){let t=t=>e.posToVal(t,c.key,!0),n=null,a=null,l,u,d=_(o[x==1?r:i]),f=_(o[r]),p=_(o[i]),m=t(x==1?f+1:p-1);for(let e=x==1?r:i;e>=r&&e<=i;e+=x){let r=o[e],i=(x==1?r<m:r>m)?d:_(r),c=s[e];i==d?c==null?c===null&&(w=!0):(u=c,n==null?(y(C,i,v(u)),l=n=a=u):u<n?n=u:u>a&&(a=u)):(n!=null&&b(C,d,v(n),v(a),v(l),v(u)),c==null?(n=a=null,c===null&&(w=!0)):(u=c,y(C,i,v(u)),n=a=l=u),d=i,m=t(d+x))}n!=null&&n!=a&&d!=null&&b(C,d,v(n),v(a),v(l),v(u))}else for(let e=x==1?r:i;e>=r&&e<=i;e+=x){let t=s[e];t===null?w=!0:t!=null&&y(C,_(o[e]),v(t))}let[T,E]=ST(e,n);if(a.fill!=null||T!=0){let t=S.fill=new Path2D(C),s=v(a.fillTo(e,n,a.min,a.max,T)),c=_(o[r]),l=_(o[i]);x==-1&&([l,c]=[c,l]),y(t,l,s),y(t,c,s)}if(!a.spanGaps){let l=[];w&&l.push(...DT(o,s,r,i,x,_,t)),S.gaps=l=a.gaps(e,n,r,i,l),S.clip=TT(l,c.ori,f,p,m,h)}return E!=0&&(S.band=E==2?[wT(e,n,r,i,C,-1),wT(e,n,r,i,C,1)]:wT(e,n,r,i,C,E)),S})}function GT(e){let t=NS(e.align,1),n=NS(e.ascDesc,!1),r=NS(e.alignGaps,0),i=NS(e.extend,!1);return(e,a,o,s)=>xT(e,a,(c,l,u,d,f,p,m,h,g,_,v)=>{[o,s]=CS(u,o,s);let y=c.pxRound,{left:b,width:x}=e.bbox,S=e=>y(p(e,d,_,h)),C=e=>y(m(e,f,v,g)),w=d.ori==0?MT:NT,T={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:yT},E=T.stroke,D=d.dir*(d.ori==0?1:-1),O=C(u[D==1?o:s]),k=S(l[D==1?o:s]),A=k,j=k;i&&t==-1&&(j=b,w(E,j,O)),w(E,k,O);for(let e=D==1?o:s;e>=o&&e<=s;e+=D){let n=u[e];if(n==null)continue;let r=S(l[e]),i=C(n);t==1?w(E,r,O):w(E,A,i),w(E,r,i),O=i,A=r}let M=A;i&&t==1&&(M=b+x,w(E,M,O));let[N,P]=ST(e,a);if(c.fill!=null||N!=0){let t=T.fill=new Path2D(E),n=C(c.fillTo(e,a,c.min,c.max,N));w(t,M,n),w(t,j,n)}if(!c.spanGaps){let i=[];i.push(...DT(l,u,o,s,D,S,r));let f=c.width*tS/2,p=n||t==1?f:-f,m=n||t==-1?-f:f;i.forEach(e=>{e[0]+=p,e[1]+=m}),T.gaps=i=c.gaps(e,a,o,s,i),T.clip=TT(i,d.ori,h,g,_,v)}return P!=0&&(T.band=P==2?[wT(e,a,o,s,E,-1),wT(e,a,o,s,E,1)]:wT(e,a,o,s,E,P)),T})}function KT(e,t,n,r,i,a,o=QS){if(e.length>1){let s=null;for(let c=0,l=1/0;c<e.length;c++)if(t[c]!==void 0){if(s!=null){let t=BS(e[c]-e[s]);t<l&&(l=t,o=BS(n(e[c],r,i,a)-n(e[s],r,i,a)))}s=c}}return o}function qT(e){e||=vC;let t=NS(e.size,[.6,QS,1]),n=e.align||0,r=e.gap||0,i=e.radius;i=i==null?[0,0]:typeof i==`number`?[i,0]:i;let a=nC(i),o=1-t[0],s=NS(t[1],QS),c=NS(t[2],1),l=NS(e.disp,vC),u=NS(e.each,e=>{}),{fill:d,stroke:f}=l;return(e,t,i,p)=>xT(e,t,(m,h,g,_,v,y,b,x,S,C,w)=>{let T=m.pxRound,E=n,D=r*tS,O=s*tS,k=c*tS,A,j;_.ori==0?[A,j]=a(e,t):[j,A]=a(e,t);let M=_.dir*(_.ori==0?1:-1),N=_.ori==0?PT:FT,P=_.ori==0?u:(e,t,n,r,i,a,o)=>{u(e,t,n,i,r,o,a)},F=NS(e.bands,yC).find(e=>e.series[0]==t),I=F==null?0:F.dir,L=m.fillTo(e,t,m.min,m.max,I),R=T(b(L,v,w,S)),z,B,V,H=C,U=T(m.width*tS),ee=!1,W=null,te=null,ne=null,re=null;d!=null&&(U==0||f!=null)&&(ee=!0,W=d.values(e,t,i,p),te=new Map,new Set(W).forEach(e=>{e!=null&&te.set(e,new Path2D)}),U>0&&(ne=f.values(e,t,i,p),re=new Map,new Set(ne).forEach(e=>{e!=null&&re.set(e,new Path2D)})));let{x0:ie,size:ae}=l;if(ie!=null&&ae!=null){E=1,h=ie.values(e,t,i,p),ie.unit==2&&(h=h.map(t=>e.posToVal(x+t*C,_.key,!0)));let n=ae.values(e,t,i,p);B=ae.unit==2?n[0]*C:y(n[0],_,C,x)-y(0,_,C,x),H=KT(h,g,y,_,C,x,H),V=H-B+D}else H=KT(h,g,y,_,C,x,H),V=H*o+D,B=H-V;V<1&&(V=0),U>=B/2&&(U=0),V<5&&(T=iC);let oe=V>0,se=H-V-(oe?U:0);B=T(eC(se,k,O)),z=(E==0?B/2:E==M?0:B)-E*M*((E==0?D/2:0)+(oe?U/2:0));let ce={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:0},le=ee?null:new Path2D,ue=null;if(F!=null)ue=e.data[F.series[1]];else{let{y0:n,y1:r}=l;n!=null&&r!=null&&(g=r.values(e,t,i,p),ue=n.values(e,t,i,p))}let de=A*B,fe=j*B;for(let n=M==1?i:p;n>=i&&n<=p;n+=M){let r=g[n];if(r==null)continue;if(ue!=null){let e=ue[n]??0;if(r-e==0)continue;R=b(e,v,w,S)}let i=y(_.distr!=2||l!=null?h[n]:n,_,C,x),a=b(NS(r,L),v,w,S),o=T(i-z),s=T(GS(a,R)),c=T(WS(a,R)),u=s-c;if(r!=null){let i=r<0?fe:de,a=r<0?de:fe;ee?(U>0&&ne[n]!=null&&N(re.get(ne[n]),o,c+VS(U/2),B,GS(0,u-U),i,a),W[n]!=null&&N(te.get(W[n]),o,c+VS(U/2),B,GS(0,u-U),i,a)):N(le,o,c+VS(U/2),B,GS(0,u-U),i,a),P(e,t,n,o-U/2,c,B+U,u)}}return U>0?ce.stroke=ee?re:le:ee||(ce._fill=m.width==0?m._fill:m._stroke??m._fill,ce.width=0),ce.fill=ee?te:le,ce})}function JT(e,t){let n=NS(t?.alignGaps,0);return(t,r,i,a)=>xT(t,r,(o,s,c,l,u,d,f,p,m,h,g)=>{[i,a]=CS(c,i,a);let _=o.pxRound,v=e=>_(d(e,l,h,p)),y=e=>_(f(e,u,g,m)),b,x,S;l.ori==0?(b=AT,S=MT,x=RT):(b=jT,S=NT,x=zT);let C=l.dir*(l.ori==0?1:-1),w=v(s[C==1?i:a]),T=w,E=[],D=[];for(let e=C==1?i:a;e>=i&&e<=a;e+=C)if(c[e]!=null){let t=s[e],n=v(t);E.push(T=n),D.push(y(c[e]))}let O={stroke:e(E,D,b,S,x,_),fill:null,clip:null,band:null,gaps:null,flags:yT},k=O.stroke,[A,j]=ST(t,r);if(o.fill!=null||A!=0){let e=O.fill=new Path2D(k),n=y(o.fillTo(t,r,o.min,o.max,A));S(e,T,n),S(e,w,n)}if(!o.spanGaps){let e=[];e.push(...DT(s,c,i,a,C,v,n)),O.gaps=e=o.gaps(t,r,i,a,e),O.clip=TT(e,l.ori,p,m,h,g)}return j!=0&&(O.band=j==2?[wT(t,r,i,a,k,-1),wT(t,r,i,a,k,1)]:wT(t,r,i,a,k,j)),O})}function YT(e){return JT(XT,e)}function XT(e,t,n,r,i,a){let o=e.length;if(o<2)return null;let s=new Path2D;if(n(s,e[0],t[0]),o==2)r(s,e[1],t[1]);else{let n=Array(o),r=Array(o-1),a=Array(o-1),c=Array(o-1);for(let n=0;n<o-1;n++)a[n]=t[n+1]-t[n],c[n]=e[n+1]-e[n],r[n]=a[n]/c[n];n[0]=r[0];for(let e=1;e<o-1;e++)r[e]===0||r[e-1]===0||r[e-1]>0!=r[e]>0?n[e]=0:(n[e]=3*(c[e-1]+c[e])/((2*c[e]+c[e-1])/r[e-1]+(c[e]+2*c[e-1])/r[e]),isFinite(n[e])||(n[e]=0));n[o-1]=r[o-2];for(let r=0;r<o-1;r++)i(s,e[r]+c[r]/3,t[r]+n[r]*c[r]/3,e[r+1]-c[r]/3,t[r+1]-n[r+1]*c[r]/3,e[r+1],t[r+1])}return s}var ZT=new Set;function QT(){for(let e of ZT)e.syncRect(!0)}Zx&&(_S(Kx,$x,QT),_S(qx,$x,QT,!0),_S(Yx,$x,()=>{mE.pxRatio=tS}));var $T=WT(),eE=BT();function tE(e,t,n,r){return(r?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map((e,r)=>rE(e,r,t,n))}function nE(e,t){return e.map((e,n)=>n==0?{}:AC({},t,e))}function rE(e,t,n,r){return AC({},t==0?n:r,e)}function iE(e,t,n){return t==null?bC:[t,n]}var aE=iE;function oE(e,t,n){return t==null?bC:MS(t,n,OS,!0)}function sE(e,t,n,r){return t==null?bC:ES(t,n,e.scales[r].log,!1)}var cE=sE;function lE(e,t,n,r){return t==null?bC:DS(t,n,e.scales[r].log,!1)}var uE=lE;function dE(e,t,n,r,i){let a=GS($S(e),$S(t)),o=t-e,s=yS(i/r*o,n);do{let e=n[s],t=r*e/o;if(t>=i&&a+(e<5?hC.get(e):0)<=17)return[e,t]}while(++s<n.length);return[0,0]}function fE(e){let t,n;return e=e.replace(/(\d+)px/,(e,r)=>(t=HS((n=+r)*tS))+`px`),[e,t,n]}function pE(e){e.show&&[e.font,e.labelFont].forEach(e=>{let t=mC(e[2]*tS,1);e[0]=e[0].replace(/[0-9.]+px/,t+`px`),e[1]=t})}function mE(e,t,n){let r={mode:NS(e.mode,1)},i=r.mode;function a(e,t,n,r){let i=t.valToPct(e);return r+n*(t.dir==-1?1-i:i)}function o(e,t,n,r){let i=t.valToPct(e);return r+n*(t.dir==-1?i:1-i)}function s(e,t,n,r){return t.ori==0?a(e,t,n,r):o(e,t,n,r)}r.valToPosH=a,r.valToPosV=o;let c=!1;r.status=0;let l=r.root=cS(fx);if(e.id!=null&&(l.id=e.id),iS(l,e.class),e.title){let t=cS(hx,l);t.textContent=e.title}let u=sS(`canvas`),d=r.ctx=u.getContext(`2d`),f=cS(gx,l);_S(`click`,f,e=>{e.target===m&&($t!=Yt||en!=Xt)&&nn.click(r,e)},!0);let p=r.under=cS(_x,f);f.appendChild(u);let m=r.over=cS(vx,f);e=kC(e);let h=+NS(e.pxAlign,1),g=OT(h);(e.plugins||[]).forEach(t=>{t.opts&&(e=t.opts(r,e)||e)});let _=e.ms||.001,v=r.series=i==1?tE(e.series||[],Jw,pT,!1):nE(e.series||[null],fT),y=r.axes=tE(e.axes||[],Gw,sT,!0),b=r.scales={},x=r.bands=e.bands||[];x.forEach(e=>{e.fill=nC(e.fill||null),e.dir=NS(e.dir,-1)});let S=i==2?v[1].facets[0].scale:v[0].scale,C={axes:Nt,series:St},w=(e.drawOrder||[`axes`,`series`]).map(e=>C[e]);function T(e){let t=e.distr==3?t=>JS(t>0?t:e.clamp(r,t,e.min,e.max,e.key)):e.distr==4?t=>ZS(t,e.asinh):e.distr==100?t=>e.fwd(t):e=>e;return n=>{let r=t(n),{_min:i,_max:a}=e,o=a-i;return(r-i)/o}}function E(t){let n=b[t];if(n==null){let r=(e.scales||vC)[t]||vC;if(r.from!=null){E(r.from);let e=AC({},b[r.from],r,{key:t});e.valToPct=T(e),b[t]=e}else{n=b[t]=AC({},t==S?hT:gT,r),n.key=t;let e=n.time,a=n.range,o=xC(a);if((t!=S||i==2&&!e)&&(o&&(a[0]==null||a[1]==null)&&(a={min:a[0]==null?kS:{mode:1,hard:a[0],soft:a[0]},max:a[1]==null?kS:{mode:1,hard:a[1],soft:a[1]}},o=!1),!o&&TC(a))){let e=a;a=(t,n,r)=>n==null?bC:MS(n,r,e)}n.range=nC(a||(e?aE:t==S?n.distr==3?cE:n.distr==4?uE:iE:n.distr==3?sE:n.distr==4?lE:oE)),n.auto=nC(!o&&n.auto),n.clamp=nC(n.clamp||mT),n._min=n._max=null,n.valToPct=T(n)}}}E(`x`),E(`y`),i==1&&v.forEach(e=>{E(e.scale)}),y.forEach(e=>{E(e.scale)});for(let t in e.scales)E(t);let D=b[S],O=D.distr,k,A;D.ori==0?(iS(l,px),k=a,A=o):(iS(l,mx),k=o,A=a);let j={};for(let e in b){let t=b[e];(t.min!=null||t.max!=null)&&(j[e]={min:t.min,max:t.max},t.min=t.max=null)}let M=e.tzDate||(e=>new Date(HS(e/_))),N=e.fmtDate||JC,P=_==1?hw(M):vw(M),F=bw(M,yw(_==1?mw:_w,N)),I=Tw(M,Cw(ww,N)),L=[],R=r.legend=AC({},Ow,e.legend),z=r.cursor=AC({},Lw,{drag:{y:i==2}},e.cursor),B=R.show,V=z.show,H=R.markers;R.idxs=L,H.width=nC(H.width),H.dash=nC(H.dash),H.stroke=nC(H.stroke),H.fill=nC(H.fill);let U,ee,W,te=[],ne=[],re,ie=!1,ae={};if(R.live){let e=v[1]?v[1].values:null;ie=e!=null,re=ie?e(r,1,0):{_:0};for(let e in re)ae[e]=Xx}if(B)if(U=sS(`table`,Tx,l),W=sS(`tbody`,null,U),R.mount(r,U),ie){ee=sS(`thead`,null,U,W);let e=sS(`tr`,null,ee);for(var oe in sS(`th`,null,e),re)sS(`th`,Ax,e).textContent=oe}else iS(U,Dx),R.live&&iS(U,Ex);let se={show:!0},ce={show:!1};function le(e,t){if(t==0&&(ie||!R.live||i==2))return bC;let n=[],a=sS(`tr`,Ox,W,W.childNodes[t]);iS(a,e.class),e.show||iS(a,bx);let o=sS(`th`,null,a);if(H.show){let e=cS(kx,o);if(t>0){let n=H.width(r,t);n&&(e.style.border=n+`px `+H.dash(r,t)+` `+H.stroke(r,t)),e.style.background=H.fill(r,t)}}let s=cS(Ax,o);for(var c in e.label instanceof HTMLElement?s.appendChild(e.label):s.textContent=e.label,t>0&&(H.show||(s.style.color=e.width>0?H.stroke(r,t):H.fill(r,t)),de(`click`,o,t=>{if(z._lock)return;Ie(t);let n=v.indexOf(e);if((t.ctrlKey||t.metaKey)!=R.isolate){let e=v.some((e,t)=>t>0&&t!=n&&e.show);v.forEach((t,r)=>{r>0&&dn(r,e?r==n?se:ce:se,!0,Xn.setSeries)})}else dn(n,{show:!e.show},!0,Xn.setSeries)},!1),ze&&de(Ux,o,t=>{z._lock||(Ie(t),dn(v.indexOf(e),yn,!0,Xn.setSeries))},!1)),re){let e=sS(`td`,jx,a);e.textContent=`--`,n.push(e)}return[a,n]}let ue=new Map;function de(e,t,n,i=!0){let a=ue.get(t)||{},o=z.bind[e](r,t,n,i);o&&(_S(e,t,a[e]=o),ue.set(t,a))}function fe(e,t,n){let r=ue.get(t)||{};for(let n in r)(e==null||n==e)&&(vS(n,t,r[n]),delete r[n]);e??ue.delete(t)}let pe=0,me=0,he=0,ge=0,_e=0,ve=0,ye=_e,be=ve,G=he,xe=ge,Se=0,Ce=0,we=0,Te=0;r.bbox={};let Ee=!1,K=!1,q=!1,De=!1,Oe=!1,ke=!1;function Ae(e,t,n){(n||e!=r.width||t!=r.height)&&je(e,t),Pt(!1),q=!0,K=!0,zt()}function je(e,t){r.width=pe=he=e,r.height=me=ge=t,_e=ve=0,Pe(),Fe();let n=r.bbox;Se=n.left=dC(_e*tS,.5),Ce=n.top=dC(ve*tS,.5),we=n.width=dC(he*tS,.5),Te=n.height=dC(ge*tS,.5)}function Me(){let e=!1,t=0;for(;!e;){t++;let n=jt(t),i=Mt(t);e=t==3||n&&i,e||(je(r.width,r.height),K=!0)}}function Ne({width:e,height:t}){Ae(e,t)}r.setSize=Ne;function Pe(){let e=!1,t=!1,n=!1,r=!1;y.forEach((i,a)=>{if(i.show&&i._show){let{side:a,_size:o}=i,s=a%2,c=o+(i.label==null?0:i.labelSize);c>0&&(s?(he-=c,a==3?(_e+=c,r=!0):n=!0):(ge-=c,a==0?(ve+=c,e=!0):t=!0))}}),qe[0]=e,qe[1]=n,qe[2]=t,qe[3]=r,he-=Ze[1]+Ze[3],_e+=Ze[3],ge-=Ze[2]+Ze[0],ve+=Ze[0]}function Fe(){let e=_e+he,t=ve+ge,n=_e,r=ve;function i(i,a){switch(i){case 1:return e+=a,e-a;case 2:return t+=a,t-a;case 3:return n-=a,n+a;case 0:return r-=a,r+a}}y.forEach((e,t)=>{if(e.show&&e._show){let t=e.side;e._pos=i(t,e._size),e.label!=null&&(e._lpos=i(t,e.labelSize))}})}if(z.dataIdx==null){let e=z.hover,n=e.skip=new Set(e.skip??[]);n.add(void 0);let r=e.prox=nC(e.prox),i=e.bias??=0;z.dataIdx=(e,a,o,s)=>{if(a==0)return o;let c=o,l=r(e,a,o,s)??QS,u=l>=0&&l<QS,d=D.ori==0?he:ge,f=z.left,p=t[0],m=t[a];if(n.has(m[o])){c=null;let e=null,t=null,r;if(i==0||i==-1)for(r=o;e==null&&r-->0;)n.has(m[r])||(e=r);if(i==0||i==1)for(r=o;t==null&&r++<m.length;)n.has(m[r])||(t=r);if(e!=null||t!=null)if(u){let n=e==null?-1/0:k(p[e],D,d,0),r=t==null?1/0:k(p[t],D,d,0),i=f-n,a=r-f;i<=a?i<=l&&(c=e):a<=l&&(c=t)}else c=t==null?e:e==null?t:o-e<=t-o?e:t}else u&&BS(f-k(p[o],D,d,0))>l&&(c=null);return c}}let Ie=e=>{z.event=e};z.idxs=L,z._lock=!1;let Le=z.points;Le.show=nC(Le.show),Le.size=nC(Le.size),Le.stroke=nC(Le.stroke),Le.width=nC(Le.width),Le.fill=nC(Le.fill);let Re=r.focus=AC({},e.focus||{alpha:.3},z.focus),ze=Re.prox>=0,Be=ze&&Le.one,Ve=[],He=[],Ue=[];function J(e,t){let n=Le.show(r,t);if(n instanceof HTMLElement)return iS(n,wx),iS(n,e.class),uS(n,-10,-10,he,ge),m.insertBefore(n,Ve[t]),n}function We(e,t){if(i==1||t>0){let t=i==1&&b[e.scale].time,n=e.value;e.value=t?wC(n)?Tw(M,Cw(n,N)):n||I:n||oT,e.label=e.label||(t?qw:Kw)}if(Be||t>0){e.width=e.width==null?1:e.width,e.paths=e.paths||$T||oC,e.fillTo=nC(e.fillTo||CT),e.pxAlign=+NS(e.pxAlign,h),e.pxRound=OT(e.pxAlign),e.stroke=nC(e.stroke||null),e.fill=nC(e.fill||null),e._stroke=e._fill=e._paths=e._focus=null;let t=cT(GS(1,e.width),1),n=e.points=AC({},{size:t,width:GS(1,t*.2),stroke:e.stroke,space:t*2,paths:eE,_stroke:null,_fill:null},e.points);n.show=nC(n.show),n.filter=nC(n.filter),n.fill=nC(n.fill),n.stroke=nC(n.stroke),n.paths=nC(n.paths),n.pxAlign=e.pxAlign}if(B){let n=le(e,t);te.splice(t,0,n[0]),ne.splice(t,0,n[1]),R.values.push(null)}if(V){L.splice(t,0,null);let n=null;Be?t==0&&(n=J(e,t)):t>0&&(n=J(e,t)),Ve.splice(t,0,n),He.splice(t,0,0),Ue.splice(t,0,0)}Jn(`addSeries`,t)}function Ge(e,t){t??=v.length,e=i==1?rE(e,t,Jw,pT):rE(e,t,{},fT),v.splice(t,0,e),We(v[t],t)}r.addSeries=Ge;function Ke(e){if(v.splice(e,1),B){R.values.splice(e,1),ne.splice(e,1);let t=te.splice(e,1)[0];fe(null,t.firstChild),t.remove()}V&&(L.splice(e,1),Ve.splice(e,1)[0].remove(),He.splice(e,1),Ue.splice(e,1)),Jn(`delSeries`,e)}r.delSeries=Ke;let qe=[!1,!1,!1,!1];function Je(e,t){if(e._show=e.show,e.show){let n=e.side%2,i=b[e.scale];i??=(e.scale=n?v[1].scale:S,b[e.scale]);let a=i.time;e.size=nC(e.size),e.space=nC(e.space),e.rotate=nC(e.rotate),xC(e.incrs)&&e.incrs.forEach(e=>{!hC.has(e)&&hC.set(e,gC(e))}),e.incrs=nC(e.incrs||(i.distr==2?tw:a?_==1?pw:gw:nw)),e.splits=nC(e.splits||(a&&i.distr==1?P:i.distr==3?Zw:i.distr==4?Qw:Xw)),e.stroke=nC(e.stroke),e.grid.stroke=nC(e.grid.stroke),e.ticks.stroke=nC(e.ticks.stroke),e.border.stroke=nC(e.border.stroke);let o=e.values;e.values=xC(o)&&!xC(o[0])?nC(o):a?xC(o)?bw(M,yw(o,N)):wC(o)?xw(M,o):o||F:o||Yw,e.filter=nC(e.filter||(i.distr>=3&&i.log==10?iT:i.distr==3&&i.log==2?aT:aC)),e.font=fE(e.font),e.labelFont=fE(e.labelFont),e._size=e.size(r,null,t,0),e._space=e._rotate=e._incrs=e._found=e._splits=e._values=null,e._size>0&&(qe[t]=!0,e._el=cS(yx,f))}}function Ye(e,t,n,r){let[i,a,o,s]=n,c=t%2,l=0;return c==0&&(s||a)&&(l=t==0&&!i||t==2&&!o?HS(Gw.size/3):0),c==1&&(i||o)&&(l=t==1&&!a||t==3&&!s?HS(sT.size/2):0),l}let Xe=r.padding=(e.padding||[Ye,Ye,Ye,Ye]).map(e=>nC(NS(e,Ye))),Ze=r._padding=Xe.map((e,t)=>e(r,t,qe,0)),Qe,$e=null,et=null,tt=i==1?v[0].idxs:null,nt=null,rt=!1;function it(e,n){if(t=e??[],r.data=r._data=t,i==2){Qe=0;for(let e=1;e<v.length;e++)Qe+=t[e][0].length}else{t.length==0&&(r.data=r._data=t=[[]]),nt=t[0],Qe=nt.length;let e=t;if(O==2){e=t.slice();let n=e[0]=Array(Qe);for(let e=0;e<Qe;e++)n[e]=e}r._data=t=e}if(Pt(!0),Jn(`setData`),O==2&&(q=!0),n!==!1){let e=D;e.auto(r,rt)?at():un(S,e.min,e.max),De||=z.left>=0,ke=!0,zt()}}r.setData=it;function at(){rt=!0;let e,n;i==1&&(Qe>0?($e=tt[0]=0,et=tt[1]=Qe-1,e=t[0][$e],n=t[0][et],O==2?(e=$e,n=et):e==n&&(O==3?[e,n]=ES(e,e,D.log,!1):O==4?[e,n]=DS(e,e,D.log,!1):D.time?n=e+HS(86400/_):[e,n]=MS(e,n,OS,!0))):($e=tt[0]=e=null,et=tt[1]=n=null)),un(S,e,n)}let ot,st,ct,lt,ut,dt,ft,pt,mt,ht;function gt(e,t,n,r,i,a){e??=zx,n??=yC,r??=`butt`,i??=zx,a??=`round`,e!=ot&&(d.strokeStyle=ot=e),i!=st&&(d.fillStyle=st=i),t!=ct&&(d.lineWidth=ct=t),a!=ut&&(d.lineJoin=ut=a),r!=dt&&(d.lineCap=dt=r),n!=lt&&d.setLineDash(lt=n)}function _t(e,t,n,r){t!=st&&(d.fillStyle=st=t),e!=ft&&(d.font=ft=e),n!=pt&&(d.textAlign=pt=n),r!=mt&&(d.textBaseline=mt=r)}function vt(e,t,n,i,a=0){if(i.length>0&&e.auto(r,rt)&&(t==null||t.min==null)){let t=NS($e,0),r=NS(et,i.length-1),o=n.min==null?TS(i,t,r,a,e.distr==3):[n.min,n.max];e.min=WS(e.min,n.min=o[0]),e.max=GS(e.max,n.max=o[1])}}let yt={min:null,max:null};function bt(){for(let e in b){let t=b[e];j[e]==null&&(t.min==null||j[S]!=null&&t.auto(r,rt))&&(j[e]=yt)}for(let e in b){let t=b[e];j[e]==null&&t.from!=null&&j[t.from]!=null&&(j[e]=yt)}j[S]!=null&&Pt(!0);let e={};for(let t in j){let n=j[t];if(n!=null){let a=e[t]=kC(b[t],EC);if(n.min!=null)AC(a,n);else if(t!=S||i==2)if(Qe==0&&a.from==null){let e=a.range(r,null,null,t);a.min=e[0],a.max=e[1]}else a.min=QS,a.max=-1/0}}if(Qe>0){v.forEach((n,a)=>{if(i==1){let i=n.scale,o=j[i];if(o==null)return;let s=e[i];if(a==0){let e=s.range(r,s.min,s.max,i);s.min=e[0],s.max=e[1],$e=yS(s.min,t[0]),et=yS(s.max,t[0]),et-$e>1&&(t[0][$e]<s.min&&$e++,t[0][et]>s.max&&et--),n.min=nt[$e],n.max=nt[et]}else n.show&&n.auto&&vt(s,o,n,t[a],n.sorted);n.idxs[0]=$e,n.idxs[1]=et}else if(a>0&&n.show&&n.auto){let[r,i]=n.facets,o=r.scale,s=i.scale,[c,l]=t[a],u=e[o],d=e[s];u!=null&&vt(u,j[o],r,c,r.sorted),d!=null&&vt(d,j[s],i,l,i.sorted),n.min=i.min,n.max=i.max}});for(let t in e){let n=e[t],i=j[t];if(n.from==null&&(i==null||i.min==null)){let e=n.range(r,n.min==QS?null:n.min,n.max==-1/0?null:n.max,t);n.min=e[0],n.max=e[1]}}}for(let t in e){let n=e[t];if(n.from!=null){let i=e[n.from];if(i.min==null)n.min=n.max=null;else{let e=n.range(r,i.min,i.max,t);n.min=e[0],n.max=e[1]}}}let n={},a=!1;for(let t in e){let r=e[t],i=b[t];if(i.min!=r.min||i.max!=r.max){i.min=r.min,i.max=r.max;let e=i.distr;i._min=e==3?JS(i.min):e==4?ZS(i.min,i.asinh):e==100?i.fwd(i.min):i.min,i._max=e==3?JS(i.max):e==4?ZS(i.max,i.asinh):e==100?i.fwd(i.max):i.max,n[t]=a=!0}}if(a){v.forEach((e,t)=>{i==2?t>0&&n.y&&(e._paths=null):n[e.scale]&&(e._paths=null)});for(let e in n)q=!0,Jn(`setScale`,e);V&&z.left>=0&&(De=ke=!0)}for(let e in j)j[e]=null}function xt(e){let t=eC($e-1,0,Qe-1),n=eC(et+1,0,Qe-1);for(;e[t]==null&&t>0;)t--;for(;e[n]==null&&n<Qe-1;)n++;return[t,n]}function St(){if(Qe>0){let e=v.some(e=>e._focus)&&ht!=Re.alpha;e&&(d.globalAlpha=ht=Re.alpha),v.forEach((e,n)=>{if(n>0&&e.show&&(Ct(n,!1),Ct(n,!0),e._paths==null)){let a=ht;ht!=e.alpha&&(d.globalAlpha=ht=e.alpha);let o=i==2?[0,t[n][0].length-1]:xt(t[n]);e._paths=e.paths(r,n,o[0],o[1]),ht!=a&&(d.globalAlpha=ht=a)}}),v.forEach((e,t)=>{if(t>0&&e.show){let n=ht;ht!=e.alpha&&(d.globalAlpha=ht=e.alpha),e._paths!=null&&wt(t,!1);{let n=e._paths==null?null:e._paths.gaps,i=e.points.show(r,t,$e,et,n),a=e.points.filter(r,t,i,n);(i||a)&&(e.points._paths=e.points.paths(r,t,$e,et,a),wt(t,!0))}ht!=n&&(d.globalAlpha=ht=n),Jn(`drawSeries`,t)}}),e&&(d.globalAlpha=ht=1)}}function Ct(e,t){let n=t?v[e].points:v[e];n._stroke=n.stroke(r,e),n._fill=n.fill(r,e)}function wt(e,t){let n=t?v[e].points:v[e],{stroke:r,fill:i,clip:a,flags:o,_stroke:s=n._stroke,_fill:c=n._fill,_width:l=n.width}=n._paths;l=mC(l*tS,3);let u=null,f=l%2/2;t&&c==null&&(c=l>0?`#fff`:s);let p=n.pxAlign==1&&f>0;if(p&&d.translate(f,f),!t){let e=Se-l/2,t=Ce-l/2,n=we+l,r=Te+l;u=new Path2D,u.rect(e,t,n,r)}t?Et(s,l,n.dash,n.cap,c,r,i,o,a):Tt(e,s,l,n.dash,n.cap,c,r,i,o,u,a),p&&d.translate(-f,-f)}function Tt(e,n,i,a,o,s,c,l,u,d,f){let p=!1;u!=0&&x.forEach((m,h)=>{if(m.series[0]==e){let e=v[m.series[1]],g=t[m.series[1]],_=(e._paths||vC).band;xC(_)&&(_=m.dir==1?_[0]:_[1]);let y,b=null;e.show&&_&&PS(g,$e,et)?(b=m.fill(r,h)||s,y=e._paths.clip):_=null,Et(n,i,a,o,b,c,l,u,d,f,y,_),p=!0}}),p||Et(n,i,a,o,s,c,l,u,d,f)}function Et(e,t,n,r,i,a,o,s,c,l,u,f){gt(e,t,n,r,i),(c||l||f)&&(d.save(),c&&d.clip(c),l&&d.clip(l)),f?(s&3)==3?(d.clip(f),u&&d.clip(u),Ot(i,o),Dt(e,a,t)):s&bT?(Ot(i,o),d.clip(f),Dt(e,a,t)):s&yT&&(d.save(),d.clip(f),u&&d.clip(u),Ot(i,o),d.restore(),Dt(e,a,t)):(Ot(i,o),Dt(e,a,t)),(c||l||f)&&d.restore()}function Dt(e,t,n){n>0&&(t instanceof Map?t.forEach((e,t)=>{d.strokeStyle=ot=t,d.stroke(e)}):t!=null&&e&&d.stroke(t))}function Ot(e,t){t instanceof Map?t.forEach((e,t)=>{d.fillStyle=st=t,d.fill(e)}):t!=null&&e&&d.fill(t)}function kt(e,t,n,i){let a=y[e],o;if(i<=0)o=[0,0];else{let s=a._space=a.space(r,e,t,n,i);o=dE(t,n,a._incrs=a.incrs(r,e,t,n,i,s),i,s)}return a._found=o}function At(e,t,n,r,i,a,o,s,c,l){let u=o%2/2;h==1&&d.translate(u,u),gt(s,o,c,l,s),d.beginPath();let f,p,m,g,_=i+(r==0||r==3?-a:a);n==0?(p=i,g=_):(f=i,m=_);for(let r=0;r<e.length;r++)t[r]!=null&&(n==0?f=m=e[r]:p=g=e[r],d.moveTo(f,p),d.lineTo(m,g));d.stroke(),h==1&&d.translate(-u,-u)}function jt(e){let t=!0;return y.forEach((n,i)=>{if(!n.show)return;let a=b[n.scale];if(a.min==null){n._show&&(t=!1,n._show=!1,Pt(!1));return}else n._show||(t=!1,n._show=!0,Pt(!1));let o=n.side,s=o%2,{min:c,max:l}=a,[u,d]=kt(i,c,l,s==0?he:ge);if(d==0)return;let f=a.distr==2,p=n._splits=n.splits(r,i,c,l,u,d,f),m=a.distr==2?p.map(e=>nt[e]):p,h=a.distr==2?nt[p[1]]-nt[p[0]]:u,g=n._values=n.values(r,n.filter(r,m,i,d,h),i,d,h);n._rotate=o==2?n.rotate(r,g,i,d):0;let _=n._size;n._size=US(n.size(r,g,i,e)),_!=null&&n._size!=_&&(t=!1)}),t}function Mt(e){let t=!0;return Xe.forEach((n,i)=>{let a=n(r,i,qe,e);a!=Ze[i]&&(t=!1),Ze[i]=a}),t}function Nt(){for(let e=0;e<y.length;e++){let t=y[e];if(!t.show||!t._show)continue;let n=t.side,i=n%2,a,o,c=t.stroke(r,e),l=n==0||n==3?-1:1,[u,f]=t._found;if(t.label!=null){let s=t.labelGap*l,p=HS((t._lpos+s)*tS);_t(t.labelFont[0],c,`center`,n==2?Px:Fx),d.save(),i==1?(a=o=0,d.translate(p,HS(Ce+Te/2)),d.rotate((n==3?-zS:zS)/2)):(a=HS(Se+we/2),o=p);let m=tC(t.label)?t.label(r,e,u,f):t.label;d.fillText(m,a,o),d.restore()}if(f==0)continue;let p=b[t.scale],m=i==0?we:Te,h=i==0?Se:Ce,_=t._splits,v=p.distr==2?_.map(e=>nt[e]):_,x=p.distr==2?nt[_[1]]-nt[_[0]]:u,S=t.ticks,C=t.border,w=S.show?S.size:0,T=HS(w*tS),E=HS((t.alignTo==2?t._size-w-t.gap:t.gap)*tS),D=t._rotate*-zS/180,O=g(t._pos*tS),k=O+(T+E)*l;o=i==0?k:0,a=i==1?k:0;let A=t.font[0];_t(A,c,t.align==1?Ix:t.align==2?Lx:D>0?Ix:D<0?Lx:i==0?`center`:n==3?Lx:Ix,D||i==1?`middle`:n==2?Px:Fx);let j=t.font[1]*t.lineGap,M=_.map(e=>g(s(e,p,m,h))),N=t._values;for(let e=0;e<N.length;e++){let t=N[e];if(t!=null){i==0?a=M[e]:o=M[e],t=``+t;let n=t.indexOf(`
24
+ `)==-1?[t]:t.split(/\n/gm);for(let e=0;e<n.length;e++){let t=n[e];D?(d.save(),d.translate(a,o+e*j),d.rotate(D),d.fillText(t,0,0),d.restore()):d.fillText(t,a,o+e*j)}}}S.show&&At(M,S.filter(r,v,e,f,x),i,n,O,T,mC(S.width*tS,3),S.stroke(r,e),S.dash,S.cap);let P=t.grid;P.show&&At(M,P.filter(r,v,e,f,x),i,i==0?2:1,i==0?Ce:Se,i==0?Te:we,mC(P.width*tS,3),P.stroke(r,e),P.dash,P.cap),C.show&&At([O],[1],+(i==0),i==0?1:2,i==1?Ce:Se,i==1?Te:we,mC(C.width*tS,3),C.stroke(r,e),C.dash,C.cap)}Jn(`drawAxes`)}function Pt(e){v.forEach((t,n)=>{n>0&&(t._paths=null,e&&(i==1?(t.min=null,t.max=null):t.facets.forEach(e=>{e.min=null,e.max=null})))})}let Ft=!1,It=!1,Lt=[];function Rt(){It=!1;for(let e=0;e<Lt.length;e++)Jn(...Lt[e]);Lt.length=0}function zt(){Ft||=(IC(Vt),!0)}function Bt(e,t=!1){Ft=!0,It=t,e(r),Vt(),t&&Lt.length>0&&queueMicrotask(Rt)}r.batch=Bt;function Vt(){if(Ee&&=(bt(),!1),q&&=(Me(),!1),K){if(oS(p,Ix,_e),oS(p,Px,ve),oS(p,Mx,he),oS(p,Nx,ge),oS(m,Ix,_e),oS(m,Px,ve),oS(m,Mx,he),oS(m,Nx,ge),oS(f,Mx,pe),oS(f,Nx,me),u.width=HS(pe*tS),u.height=HS(me*tS),y.forEach(({_el:e,_show:t,_size:n,_pos:r,side:i})=>{if(e!=null)if(t){let t=i===3||i===0?n:0,a=i%2==1;oS(e,a?`left`:`top`,r-t),oS(e,a?`width`:`height`,n),oS(e,a?`top`:`left`,a?ve:_e),oS(e,a?`height`:`width`,a?ge:he),aS(e,bx)}else iS(e,bx)}),ot=st=ct=ut=dt=ft=pt=mt=lt=null,ht=1,Mn(!0),_e!=ye||ve!=be||he!=G||ge!=xe){Pt(!1);let e=he/G,t=ge/xe;if(V&&!De&&z.left>=0){z.left*=e,z.top*=t,Gt&&uS(Gt,HS(z.left),0,he,ge),Kt&&uS(Kt,0,HS(z.top),he,ge);for(let n=0;n<Ve.length;n++){let r=Ve[n];r!=null&&(He[n]*=e,Ue[n]*=t,uS(r,US(He[n]),US(Ue[n]),he,ge))}}if(on.show&&!Oe&&on.left>=0&&on.width>0){on.left*=e,on.width*=e,on.top*=t,on.height*=t;for(let e in Fn)oS(sn,e,on[e])}ye=_e,be=ve,G=he,xe=ge}Jn(`setSize`),K=!1}pe>0&&me>0&&(d.clearRect(0,0,u.width,u.height),Jn(`drawClear`),w.forEach(e=>e()),Jn(`draw`)),on.show&&Oe&&(cn(on),Oe=!1),V&&De&&(An(null,!0,!1),De=!1),R.show&&R.live&&ke&&(On(),ke=!1),c||(c=!0,r.status=1,Jn(`ready`)),rt=!1,Ft=!1}r.redraw=(e,t)=>{q=t||!1,e===!1?zt():un(S,D.min,D.max)};function Ht(e,n){let i=b[e];if(i.from==null){if(Qe==0){let t=i.range(r,n.min,n.max,e);n.min=t[0],n.max=t[1]}if(n.min>n.max){let e=n.min;n.min=n.max,n.max=e}if(Qe>1&&n.min!=null&&n.max!=null&&n.max-n.min<1e-16)return;e==S&&i.distr==2&&Qe>0&&(n.min=yS(n.min,t[0]),n.max=yS(n.max,t[0]),n.min==n.max&&n.max++),j[e]=n,Ee=!0,zt()}}r.setScale=Ht;let Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn=!1,nn=z.drag,rn=nn.x,an=nn.y;V&&(z.x&&(Ut=cS(Sx,m)),z.y&&(Wt=cS(Cx,m)),D.ori==0?(Gt=Ut,Kt=Wt):(Gt=Wt,Kt=Ut),$t=z.left,en=z.top);let on=r.select=AC({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),sn=on.show?cS(xx,on.over?m:p):null;function cn(e,t){if(on.show){for(let t in e)on[t]=e[t],t in Fn&&oS(sn,t,e[t]);t!==!1&&Jn(`setSelect`)}}r.setSelect=cn;function ln(e){if(v[e].show)B&&aS(te[e],bx);else if(B&&iS(te[e],bx),V){let t=Be?Ve[0]:Ve[e];t!=null&&uS(t,-10,-10,he,ge)}}function un(e,t,n){Ht(e,{min:t,max:n})}function dn(e,t,n,a){t.focus!=null&&bn(e),t.show!=null&&v.forEach((n,r)=>{r>0&&(e==r||e==null)&&(n.show=t.show,ln(r),i==2?(un(n.facets[0].scale,null,null),un(n.facets[1].scale,null,null)):un(n.scale,null,null),zt())}),n!==!1&&Jn(`setSeries`,e,t),a&&$n(`setSeries`,r,e,t)}r.setSeries=dn;function fn(e,t){AC(x[e],t)}function pn(e,t){e.fill=nC(e.fill||null),e.dir=NS(e.dir,-1),t??=x.length,x.splice(t,0,e)}function mn(e){e==null?x.length=0:x.splice(e,1)}r.addBand=pn,r.setBand=fn,r.delBand=mn;function hn(e,t){v[e].alpha=t,V&&Ve[e]!=null&&(Ve[e].style.opacity=t),B&&te[e]&&(te[e].style.opacity=t)}let gn,_n,vn,yn={focus:!0};function bn(e){if(e!=vn){let t=e==null,n=Re.alpha!=1;v.forEach((r,a)=>{if(i==1||a>0){let i=t||a==0||a==e;r._focus=t?null:i,n&&hn(a,i?1:Re.alpha)}}),vn=e,n&&zt()}}B&&ze&&de(Wx,U,e=>{z._lock||(Ie(e),vn!=null&&dn(null,yn,!0,Xn.setSeries))});function xn(e,t,n){let r=b[t];n&&(e=e/tS-(r.ori==1?ve:_e));let i=he;r.ori==1&&(i=ge,e=i-e),r.dir==-1&&(e=i-e);let a=r._min,o=r._max,s=e/i,c=a+(o-a)*s,l=r.distr;return l==3?KS(10,c):l==4?XS(c,r.asinh):l==100?r.bwd(c):c}function Sn(e,n){return yS(xn(e,S,n),t[0],$e,et)}r.valToIdx=e=>yS(e,t[0]),r.posToIdx=Sn,r.posToVal=xn,r.valToPos=(e,t,n)=>b[t].ori==0?a(e,b[t],n?we:he,n?Se:0):o(e,b[t],n?Te:ge,n?Ce:0),r.setCursor=(e,t,n)=>{$t=e.left,en=e.top,An(null,t,n)};function Cn(e,t){oS(sn,Ix,on.left=e),oS(sn,Mx,on.width=t)}function wn(e,t){oS(sn,Px,on.top=e),oS(sn,Nx,on.height=t)}let Tn=D.ori==0?Cn:wn,En=D.ori==1?Cn:wn;function Dn(){if(B&&R.live)for(let e=+(i==2);e<v.length;e++){if(e==0&&ie)continue;let t=R.values[e],n=0;for(let r in t)ne[e][n++].firstChild.nodeValue=t[r]}}function On(e,t){if(e!=null&&(e.idxs?e.idxs.forEach((e,t)=>{L[t]=e}):CC(e.idx)||L.fill(e.idx),R.idx=L[0]),B&&R.live){for(let e=0;e<v.length;e++)(e>0||i==1&&!ie)&&kn(e,L[e]);Dn()}ke=!1,t!==!1&&Jn(`setLegend`)}r.setLegend=On;function kn(e,n){let i=v[e],a=e==0&&O==2?nt:t[e],o;ie?o=i.values(r,e,n)??ae:(o=i.value(r,n==null?null:a[n],e,n),o=o==null?ae:{_:o}),R.values[e]=o}function An(e,n,a){Zt=$t,Qt=en,[$t,en]=z.move(r,$t,en),z.left=$t,z.top=en,V&&(Gt&&uS(Gt,HS($t),0,he,ge),Kt&&uS(Kt,0,HS(en),he,ge));let o,s=$e>et;gn=QS,_n=null;let c=D.ori==0?he:ge,l=D.ori==1?he:ge;if($t<0||Qe==0||s){o=z.idx=null;for(let e=0;e<v.length;e++){let t=Ve[e];t!=null&&uS(t,-10,-10,he,ge)}ze&&dn(null,yn,!0,e==null&&Xn.setSeries),R.live&&(L.fill(o),ke=!0)}else{let e,n,a;i==1&&(e=D.ori==0?$t:en,n=xn(e,S),o=z.idx=yS(n,t[0],$e,et),a=k(t[0][o],D,c,0));let s=-10,u=-10,d=0,f=0,p=!0,m=``,h=``;for(let e=+(i==2);e<v.length;e++){let g=v[e],_=L[e],y=_==null?null:i==1?t[e][_]:t[e][1][_],x=z.dataIdx(r,e,o,n),S=x==null?null:i==1?t[e][x]:t[e][1][x];if(ke=ke||S!=y||x!=_,L[e]=x,e>0&&g.show){let n=x==null?-10:x==o?a:k(i==1?t[0][x]:t[e][0][x],D,c,0),_=S==null?-10:A(S,i==1?b[g.scale]:b[g.facets[1].scale],l,0);if(ze&&S!=null){let t=D.ori==1?$t:en,n=BS(Re.dist(r,e,x,_,t));if(n<gn){let r=Re.bias;if(r!=0){let i=xn(t,g.scale),a=S>=0?1:-1,o=i>=0?1:-1;o==a&&(o==1?r==1?S>=i:S<=i:r==1?S<=i:S>=i)&&(gn=n,_n=e)}else gn=n,_n=e}}if(ke||Be){let t,i;D.ori==0?(t=n,i=_):(t=_,i=n);let a,o,c,l,g,v,y=!0,b=Le.bbox;if(b!=null){y=!1;let t=b(r,e);c=t.left,l=t.top,a=t.width,o=t.height}else c=t,l=i,a=o=Le.size(r,e);if(v=Le.fill(r,e),g=Le.stroke(r,e),Be)e==_n&&gn<=Re.prox&&(s=c,u=l,d=a,f=o,p=y,m=v,h=g);else{let t=Ve[e];t!=null&&(He[e]=c,Ue[e]=l,mS(t,a,o,y),fS(t,v,g),uS(t,US(c),US(l),he,ge))}}}}if(Be){let e=Re.prox;if(ke||(vn==null?gn<=e:gn>e||_n!=vn)){let e=Ve[0];e!=null&&(He[0]=s,Ue[0]=u,mS(e,d,f,p),fS(e,m,h),uS(e,US(s),US(u),he,ge))}}}if(on.show&&tn)if(e!=null){let[t,n]=Xn.scales,[r,i]=Xn.match,[a,o]=e.cursor.sync.scales,s=e.cursor.drag;if(rn=s._x,an=s._y,rn||an){let{left:s,top:u,width:d,height:f}=e.select,p=e.scales[a].ori,m=e.posToVal,h,g,_,v,y,x=t!=null&&r(t,a),S=n!=null&&i(n,o);x&&rn?(p==0?(h=s,g=d):(h=u,g=f),_=b[t],v=k(m(h,a),_,c,0),y=k(m(h+g,a),_,c,0),Tn(WS(v,y),BS(y-v))):Tn(0,c),S&&an?(p==1?(h=s,g=d):(h=u,g=f),_=b[n],v=A(m(h,o),_,l,0),y=A(m(h+g,o),_,l,0),En(WS(v,y),BS(y-v))):En(0,l)}else In()}else{let e=BS(Zt-qt),t=BS(Qt-Jt);if(D.ori==1){let n=e;e=t,t=n}rn=nn.x&&e>=nn.dist,an=nn.y&&t>=nn.dist;let n=nn.uni;n==null?nn.x&&nn.y&&(rn||an)&&(rn=an=!0):rn&&an&&(rn=e>=n,an=t>=n,!rn&&!an&&(t>e?an=!0:rn=!0));let r,i;rn&&(D.ori==0?(r=Yt,i=$t):(r=Xt,i=en),Tn(WS(r,i),BS(i-r)),an||En(0,l)),an&&(D.ori==1?(r=Yt,i=$t):(r=Xt,i=en),En(WS(r,i),BS(i-r)),rn||Tn(0,c)),!rn&&!an&&(Tn(0,0),En(0,0))}if(nn._x=rn,nn._y=an,e==null){if(a){if(Zn!=null){let[e,t]=Xn.scales;Xn.values[0]=e==null?null:xn(D.ori==0?$t:en,e),Xn.values[1]=t==null?null:xn(D.ori==1?$t:en,t)}$n(Bx,r,$t,en,he,ge,o)}if(ze){let e=a&&Xn.setSeries,t=Re.prox;vn==null?gn<=t&&dn(_n,yn,!0,e):gn>t?dn(null,yn,!0,e):_n!=vn&&dn(_n,yn,!0,e)}}ke&&(R.idx=o,On()),n!==!1&&Jn(`setCursor`)}let jn=null;Object.defineProperty(r,"rect",{get(){return jn??Mn(!1),jn}});function Mn(e=!1){e?jn=null:(jn=m.getBoundingClientRect(),Jn(`syncRect`,jn))}function Nn(e,t,n,r,i,a,o){z._lock||tn&&e!=null&&e.movementX==0&&e.movementY==0||(Pn(e,t,n,r,i,a,o,!1,e!=null),e==null?An(t,!0,!1):An(null,!0,!0))}function Pn(e,t,n,i,a,o,c,l,u){if(jn??Mn(!1),Ie(e),e!=null)n=e.clientX-jn.left,i=e.clientY-jn.top;else{if(n<0||i<0){$t=-10,en=-10;return}let[e,r]=Xn.scales,c=t.cursor.sync,[l,u]=c.values,[d,f]=c.scales,[p,m]=Xn.match,h=t.axes[0].side%2==1,g=D.ori==0?he:ge,_=D.ori==1?he:ge,v=h?o:a,y=h?a:o,x=h?i:n,S=h?n:i;if(n=d==null?x/v*g:p(e,d)?s(l,b[e],g,0):-10,i=f==null?S/y*_:m(r,f)?s(u,b[r],_,0):-10,D.ori==1){let e=n;n=i,i=e}}u&&(t==null||t.cursor.event.type==Bx)&&((n<=1||n>=he-1)&&(n=dC(n,he)),(i<=1||i>=ge-1)&&(i=dC(i,ge))),l?(qt=n,Jt=i,[Yt,Xt]=z.move(r,n,i)):($t=n,en=i)}let Fn={width:0,height:0,left:0,top:0};function In(){cn(Fn,!1)}let Ln,Rn,zn,Bn;function Vn(e,t,n,i,a,o,s){tn=!0,rn=an=nn._x=nn._y=!1,Pn(e,t,n,i,a,o,s,!0,!1),e!=null&&(de(Hx,Qx,Hn,!1),$n(Vx,r,Yt,Xt,he,ge,null));let{left:c,top:l,width:u,height:d}=on;Ln=c,Rn=l,zn=u,Bn=d}function Hn(e,t,n,i,a,o,s){tn=nn._x=nn._y=!1,Pn(e,t,n,i,a,o,s,!1,!0);let{left:c,top:l,width:u,height:d}=on,f=u>0||d>0,p=Ln!=c||Rn!=l||zn!=u||Bn!=d;if(f&&p&&cn(on),nn.setScale&&f&&p){let e=c,t=u,n=l,r=d;if(D.ori==1&&(e=l,t=d,n=c,r=u),rn&&un(S,xn(e,S),xn(e+t,S)),an)for(let e in b){let t=b[e];e!=S&&t.from==null&&t.min!=QS&&un(e,xn(n+r,e),xn(n,e))}In()}else z.lock&&(z._lock=!z._lock,An(t,!0,e!=null));e!=null&&(fe(Hx,Qx),$n(Hx,r,$t,en,he,ge,null))}function Un(e,t,n,r,i,a,o){if(z._lock)return;Ie(e);let s=tn;if(tn){let e=!0,t=!0,n,r;D.ori==0?(n=rn,r=an):(n=an,r=rn),n&&r&&(e=$t<=10||$t>=he-10,t=en<=10||en>=ge-10),n&&e&&($t=$t<Yt?0:he),r&&t&&(en=en<Xt?0:ge),An(null,!0,!0),tn=!1}$t=-10,en=-10,L.fill(null),An(null,!0,!0),s&&(tn=s)}function Wn(e,t,n,i,a,o,s){z._lock||(Ie(e),at(),In(),e!=null&&$n(Gx,r,$t,en,he,ge,null))}function Gn(){y.forEach(pE),Ae(r.width,r.height,!0)}_S(Yx,$x,Gn);let Kn={};Kn.mousedown=Vn,Kn.mousemove=Nn,Kn.mouseup=Hn,Kn.dblclick=Wn,Kn.setSeries=(e,t,n,i)=>{let a=Xn.match[2];n=a(r,t,n),n!=-1&&dn(n,i,!0,!1)},V&&(de(Vx,m,Vn),de(Bx,m,Nn),de(Ux,m,e=>{Ie(e),Mn(!1)}),de(Wx,m,Un),de(Gx,m,Wn),ZT.add(r),r.syncRect=Mn);let qn=r.hooks=e.hooks||{};function Jn(e,t,n){It?Lt.push([e,t,n]):e in qn&&qn[e].forEach(e=>{e.call(null,r,t,n)})}(e.plugins||[]).forEach(e=>{for(let t in e.hooks)qn[t]=(qn[t]||[]).concat(e.hooks[t])});let Yn=(e,t,n)=>n,Xn=AC({key:null,setSeries:!1,filters:{pub:sC,sub:sC},scales:[S,v[1]?v[1].scale:null],match:[cC,cC,Yn],values:[null,null]},z.sync);Xn.match.length==2&&Xn.match.push(Yn),z.sync=Xn;let Zn=Xn.key,Qn=vT(Zn);function $n(e,t,n,r,i,a,o){Xn.filters.pub(e,t,n,r,i,a,o)&&Qn.pub(e,t,n,r,i,a,o)}Qn.sub(r);function er(e,t,n,r,i,a,o){Xn.filters.sub(e,t,n,r,i,a,o)&&Kn[e](null,t,n,r,i,a,o)}r.pub=er;function tr(){Qn.unsub(r),ZT.delete(r),ue.clear(),vS(Yx,$x,Gn),l.remove(),U?.remove(),Jn(`destroy`)}r.destroy=tr;function nr(){Jn(`init`,e,t),it(t||e.data,!1),j[S]?Ht(S,j[S]):at(),Oe=on.show&&(on.width>0||on.height>0),De=ke=!0,Ae(e.width,e.height)}return v.forEach(We),y.forEach(Je),n?n instanceof HTMLElement?(n.appendChild(l),nr()):n(r,nr):nr(),r}mE.assign=AC,mE.fmtNum=LS,mE.rangeNum=MS,mE.rangeLog=ES,mE.rangeAsinh=DS,mE.orient=xT,mE.pxRatio=tS,mE.join=FC,mE.fmtDate=JC,mE.tzDate=XC,mE.sync=vT;{mE.addGap=ET,mE.clipGaps=TT;let e=mE.paths={points:BT};e.linear=WT,e.stepped=GT,e.bars=qT,e.spline=YT}var hE=mE.paths?.stepped?.({align:1}),gE=mE.paths?.linear?.(),_E=mE.paths?.points?.();function vE(e){if(e.length===0)return[];let[t,...n]=e;return t.labels.filter(e=>n.every(t=>t.labels.includes(e)))}function yE(e){if(e.length===0)return 0;let t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2);return t.length%2?t[n]:(t[n-1]+t[n])/2}function bE(e){let t=e.filter(e=>e>0&&Number.isFinite(e));return t.length?.8*yE(t):1}function xE(e,t,n,r){let i=e.labels.indexOf(r),a=e.time.slice(),o=i<0?[]:e.values.map(e=>e[i]),s=1/0,c=-1/0;for(let e of o)Number.isFinite(e)&&(e<s&&(s=e),e>c&&(c=e));return{id:t,label:n,x:a,y:o,range:c>s?c-s:0}}function SE(e,t){return Array.from({length:e},(n,r)=>t?e-1-r:r)}function CE(e,t){let n=SE(e.length,t.reverse);return e.map((e,r)=>{let i=n[r],a=t.mode===`add`?i*t.spacing:0,o=t.mode===`mul`?(t.spacing||1)**+i:1,s=e.y.map(e=>Number.isFinite(e)?t.mode===`mul`?e*o:e+a:null);return{id:e.id,label:e.label,x:e.x,y:s,offset:t.mode===`mul`?o:a}})}function wE(e){let t=new Set;for(let n of e)for(let e of n.x)Number.isFinite(e)&&t.add(e);let n=[...t].sort((e,t)=>e-t),r=new Map(n.map((e,t)=>[e,t]));return{x:n,ys:e.map(e=>{let t=Array(n.length).fill(null);return e.x.forEach((n,i)=>{let a=r.get(n);a!=null&&(t[a]=e.y[i])}),t})}}function TE(e){return/[",\n]/.test(e)?`"${e.replace(/"/g,`""`)}"`:e}function EE(e,t,n,r){let i=r?CE(e,t):null,a=[];e.forEach((e,t)=>{a.push({header:`${e.label} x`,data:e.x}),a.push({header:`${e.label} ${n}`,data:r?i[t].y:e.y})});let o=a.reduce((e,t)=>Math.max(e,t.data.length),0),s=[a.map(e=>TE(e.header)).join(`,`)];for(let e=0;e<o;e++)s.push(a.map(t=>{let n=t.data[e];return n==null||!Number.isFinite(n)?``:String(n)}).join(`,`));return s.join(`
25
+ `)+`
26
+ `}function DE(){let e=Z(e=>e.datasets),t=Z(e=>e.selectedIds),n=Z(e=>e.setStatus),[r,i]=(0,y.useState)(()=>t.length>=2?new Set(e.filter(e=>!t.includes(e.id)).map(e=>e.id)):new Set),a=e.filter(e=>!r.has(e.id));(0,y.useEffect)(()=>{for(let t of e)!r.has(t.id)&&t.pending&&Z.getState().ensureBookData(t.id)},[e,r]);let o=(0,y.useMemo)(()=>vE(a.map(e=>e.data)),[a]),[s,c]=(0,y.useState)(o[0]??``),[l,u]=(0,y.useState)(!0),[d,f]=(0,y.useState)(1),[p,m]=(0,y.useState)(`add`),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(!1),b=o.includes(s)?s:o[0]??``,x=(0,y.useMemo)(()=>b?a.map(e=>xE(e.data,e.id,e.name,b)):[],[a,b]),S=l?bE(x.map(e=>e.range)):d,C={spacing:S,mode:p,reverse:h},w=(0,y.useMemo)(()=>CE(x,C),[x,S,p,h]),T=(0,y.useMemo)(()=>wE(w),[w]);return{datasets:e.map(e=>({id:e.id,name:e.name,included:!r.has(e.id)})),channels:o,channel:b,autoSpace:l,spacing:S,manualSpacing:d,mode:p,reverse:h,logY:_,aligned:T,traceLabels:w.map(e=>e.label),count:a.length,setIncluded:(e,t)=>i(n=>{let r=new Set(n);return t?r.delete(e):r.add(e),r}),setChannel:c,setAutoSpace:u,setManualSpacing:f,setMode:m,setReverse:g,setLogY:v,exportCSV:async e=>{if(x.length===0){n(`waterfall: no datasets to export`);return}let t=await Z.getState().resolveDatasets(a.map(e=>e.id)),r=b?t.map(e=>xE(e.data,e.id,e.name,b)):[],i=EE(r,C,b,e),o=e?`offset`:`raw`;Ue(new Blob([i],{type:`text/csv`}),`waterfall_${b}_${o}.csv`),n(`exported waterfall CSV (${e?`with`:`without`} offset) — ${r.length} datasets`)}}}function OE(){let e=Z(e=>e.setWaterfallOpen),t=Z(e=>e.theme),n=Z(e=>e.accent),r=DE(),i=(0,y.useRef)(null),a=(0,y.useRef)(null),o=r.count>=1&&!!r.channel&&r.aligned.x.length>0;return(0,y.useEffect)(()=>{let e=i.current;if(!e||!o){a.current?.destroy(),a.current=null;return}a.current?.destroy();let t={data:[r.aligned.x,...r.aligned.ys],series:r.traceLabels.map(e=>({label:e,unit:``})),xLabel:`x`,xUnit:``},n=e.clientWidth||380,s=e.clientHeight||280,c=U_(t,{width:n,height:s,yScale:r.logY?`log`:`linear`,xScale:`linear`,showGrid:!0,tool:`zoom`,onReadout:()=>{},linearPaths:gE,pointsPaths:_E});a.current=new mE(c,t.data,e);let l=new ResizeObserver(()=>a.current?.setSize({width:e.clientWidth||n,height:e.clientHeight||s}));return l.observe(e),()=>{l.disconnect(),a.current?.destroy(),a.current=null}},[r.aligned,r.traceLabels,r.logY,t,n,o]),(0,O.jsx)(jd,{title:`Waterfall`,x:140,y:80,width:460,onClose:()=>e(!1),children:(0,O.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8},children:[(0,O.jsx)(`div`,{className:`qzk-ds-meta`,children:`Stack one channel across datasets. Defaults to your selection; tick rows to include.`}),(0,O.jsx)(`div`,{className:`qzk-wf-list`,children:r.datasets.map(e=>(0,O.jsxs)(`label`,{className:`qz-check`,title:e.name,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:e.included,onChange:t=>r.setIncluded(e.id,t.target.checked)}),(0,O.jsx)(`span`,{className:`qzk-wf-name`,children:e.name})]},e.id))}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,alignItems:`center`,flexWrap:`wrap`},children:[(0,O.jsxs)(`label`,{className:`qzk-field`,children:[(0,O.jsx)(`span`,{children:`Channel`}),(0,O.jsxs)(`select`,{className:`qz-input`,value:r.channel,onChange:e=>r.setChannel(e.target.value),disabled:r.channels.length===0,children:[r.channels.length===0&&(0,O.jsx)(`option`,{value:``,children:`— no shared channel —`}),r.channels.map(e=>(0,O.jsx)(`option`,{value:e,children:e},e))]})]}),(0,O.jsxs)(`label`,{className:`qzk-field`,children:[(0,O.jsx)(`span`,{children:`Offset`}),(0,O.jsxs)(`select`,{className:`qz-input`,value:r.mode,onChange:e=>r.setMode(e.target.value),children:[(0,O.jsx)(`option`,{value:`add`,children:`Additive (+)`}),(0,O.jsx)(`option`,{value:`mul`,children:`Multiplicative (×, for log)`})]})]})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:12,alignItems:`center`,flexWrap:`wrap`},children:[(0,O.jsxs)(`label`,{className:`qz-check`,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:r.autoSpace,onChange:e=>r.setAutoSpace(e.target.checked)}),`Auto spacing`]}),(0,O.jsxs)(`label`,{className:`qzk-field`,children:[(0,O.jsx)(`span`,{children:`Spacing`}),(0,O.jsx)(`input`,{className:`qz-input`,type:`number`,style:{width:90},value:r.autoSpace?Number(r.spacing.toPrecision(4)):r.manualSpacing,disabled:r.autoSpace,onChange:e=>r.setManualSpacing(Number(e.target.value))})]}),(0,O.jsxs)(`label`,{className:`qz-check`,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:r.reverse,onChange:e=>r.setReverse(e.target.checked)}),`Reverse`]}),(0,O.jsxs)(`label`,{className:`qz-check`,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:r.logY,onChange:e=>r.setLogY(e.target.checked)}),`Log Y`]})]}),o?(0,O.jsx)(`div`,{ref:i,style:{width:`100%`,height:280}}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{height:280,display:`grid`,placeItems:`center`},children:r.count===0?`Include at least one dataset`:r.channels.length===0?`The included datasets share no common channel`:`Nothing to plot`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8},children:[(0,O.jsx)(`button`,{className:`qz-btn`,disabled:!o,onClick:()=>r.exportCSV(!0),children:`Export CSV (with offset)`}),(0,O.jsx)(`button`,{className:`qz-btn`,disabled:!o,onClick:()=>r.exportCSV(!1),children:`Export CSV (raw)`})]})]})})}var kE=e=>e.toLowerCase();function AE(e){let t=e.labels.map(kE);return t.includes(`r`)&&(t.includes(`theory`)||t.includes(`fresnel`))}function jE(e){return e.labels.some(e=>kE(e)===`rho`)}var ME=/-(refl|profile|slabs|steps)(-[a-z0-9]+)?$/i;function NE(e){return e.replace(/\.[^.]+$/,``).replace(ME,``)}function PE(e,t){return e.labels.findIndex(e=>kE(e)===kE(t))}function FE(e,t){return e.values.map(e=>Number.isFinite(e[t])?e[t]:null)}function IE(e,t){return String(e.metadata?.x_column_name??t)}function LE(e){return String(e.metadata?.x_column_unit??``)}function RE(e,t,n){let r=[e.time.map(e=>Number.isFinite(e)?e:null)],i=[];for(let n of t){let t=PE(e,n);t>=0&&(r.push(FE(e,t)),i.push({label:e.labels[t],unit:e.units[t]??``}))}return i.length===0?null:{data:r,series:i,xLabel:IE(e,n),xUnit:LE(e)}}function zE(e,t){return{top:e?RE(e,[`R`,`theory`,`fresnel`],`Q`):null,bottom:t?RE(t,[`rho`,`irho`],`z`):null}}function BE(e){let t=e.filter(e=>AE(e.data)),n=e.filter(e=>jE(e.data));for(let e of t){let t=NE(e.name),r=n.find(e=>NE(e.name)===t);if(r)return{reflId:e.id,profileId:r.id}}return{reflId:t[0]?.id??null,profileId:n[0]?.id??null}}function VE(){let e=Z(e=>e.datasets),t=e.filter(e=>AE(e.data)).map(e=>({id:e.id,name:e.name})),n=e.filter(e=>jE(e.data)).map(e=>({id:e.id,name:e.name})),r=(0,y.useMemo)(()=>BE(e),[]),[i,a]=(0,y.useState)(r.reflId),[o,s]=(0,y.useState)(r.profileId),[c,l]=(0,y.useState)(!0),u=e.find(e=>e.id===i)?.data??null,d=e.find(e=>e.id===o)?.data??null;return{reflOptions:t,profileOptions:n,reflId:i,profileId:o,logY:c,panels:(0,y.useMemo)(()=>zE(u,d),[u,d]),setReflId:a,setProfileId:s,setLogY:l}}function HE({payload:e,yLog:t,height:n,label:r}){let i=Z(e=>e.theme),a=Z(e=>e.accent),o=(0,y.useRef)(null),s=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let r=o.current;if(!r)return;s.current?.destroy();let i=r.clientWidth||420,a=U_(e,{width:i,height:n,yScale:t?`log`:`linear`,xScale:`linear`,showGrid:!0,tool:`zoom`,onReadout:()=>{},linearPaths:gE,pointsPaths:_E});s.current=new mE(a,e.data,r);let c=new ResizeObserver(()=>s.current?.setSize({width:r.clientWidth||i,height:n}));return c.observe(r),()=>{c.disconnect(),s.current?.destroy(),s.current=null}},[e,t,n,i,a]),(0,O.jsx)(`div`,{ref:o,style:{width:`100%`,height:n},"aria-label":r})}function UE(){let e=Z(e=>e.setReflViewOpen),t=VE();return(0,O.jsx)(jd,{title:`Reflectometry`,x:130,y:70,width:480,onClose:()=>e(!1),children:(0,O.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8},children:[(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,children:[`Data + model on top, SLD profile below. Pairs a refl1d `,(0,O.jsx)(`code`,{children:`-refl.dat`}),` with its`,` `,(0,O.jsx)(`code`,{children:`-profile.dat`}),`.`]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,flexWrap:`wrap`},children:[(0,O.jsxs)(`label`,{className:`qzk-field`,children:[(0,O.jsx)(`span`,{children:`Reflectivity`}),(0,O.jsxs)(`select`,{className:`qz-input`,value:t.reflId??``,onChange:e=>t.setReflId(e.target.value),children:[(0,O.jsx)(`option`,{value:``,children:`— none —`}),t.reflOptions.map(e=>(0,O.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,O.jsxs)(`label`,{className:`qzk-field`,children:[(0,O.jsx)(`span`,{children:`SLD profile`}),(0,O.jsxs)(`select`,{className:`qz-input`,value:t.profileId??``,onChange:e=>t.setProfileId(e.target.value),children:[(0,O.jsx)(`option`,{value:``,children:`— none —`}),t.profileOptions.map(e=>(0,O.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]}),(0,O.jsxs)(`label`,{className:`qz-check`,style:{alignSelf:`flex-end`},children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:t.logY,onChange:e=>t.setLogY(e.target.checked)}),`Log R`]})]}),t.panels.top?(0,O.jsx)(HE,{payload:t.panels.top,yLog:t.logY,height:240,label:`reflectivity`}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{height:240,display:`grid`,placeItems:`center`},children:`Pick a reflectivity dataset (Q · R · theory)`}),t.panels.bottom?(0,O.jsx)(HE,{payload:t.panels.bottom,yLog:!1,height:200,label:`sld-profile`}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{height:200,display:`grid`,placeItems:`center`},children:`Pick an SLD profile dataset (z · rho)`})]})})}function WE(){let e=Z(e=>e.curveFitOpen),t=Z(e=>e.hysteresisOpen),n=Z(e=>e.peaksOpen),r=Z(e=>e.reflectivityOpen),i=Z(e=>e.baselineOpen),a=Z(e=>e.calculatorsOpen),o=Z(e=>e.rsmOpen),s=Z(e=>e.reductionsOpen),c=Z(e=>e.digitizerOpen),l=Z(e=>e.magToolsOpen),u=Z(e=>e.datasetMathOpen),d=Z(e=>e.tabulateOpen),f=Z(e=>e.distributionOpen),p=Z(e=>e.dataFilterOpen),m=Z(e=>e.columnSwitcherOpen),h=Z(e=>e.figureBuilderOpen),g=Z(e=>e.figurePageOpen),_=Z(e=>e.graphBuilderOpen),v=Z(e=>e.waterfallOpen),y=Z(e=>e.reflViewOpen),b=Z(e=>e.openReportId),x=Z(e=>e.statsChooserOpen),S=Z(e=>e.peakWizardOpen),C=Z(e=>e.importWizardOpen),w=Z(e=>e.pipelineOpen);return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(ze,{}),(0,O.jsx)(Pe,{}),(0,O.jsx)(kd,{}),e&&(0,O.jsx)(ob,{}),t&&(0,O.jsx)(lb,{}),n&&(0,O.jsx)(Cb,{}),r&&(0,O.jsx)(jb,{}),i&&(0,O.jsx)(Bd,{}),a&&(0,O.jsx)(Ep,{}),l&&(0,O.jsx)(gb,{}),o&&(0,O.jsx)(Qb,{}),s&&(0,O.jsx)(Kb,{}),c&&(0,O.jsx)(ux,{}),u&&(0,O.jsx)(Np,{}),d&&(0,O.jsx)(sm,{}),f&&(0,O.jsx)(Dm,{}),p&&(0,O.jsx)($h,{}),x&&(0,O.jsx)(Um,{}),S&&(0,O.jsx)(dh,{}),C&&(0,O.jsx)(Dh,{}),w&&(0,O.jsx)(Jh,{}),b&&(0,O.jsx)(Mm,{}),m&&(0,O.jsx)(eg,{}),h&&(0,O.jsx)(nv,{}),g&&(0,O.jsx)(Ov,{}),_&&(0,O.jsx)(Ay,{}),v&&(0,O.jsx)(OE,{}),y&&(0,O.jsx)(UE,{}),(0,O.jsx)(Sd,{}),(0,O.jsx)(Ed,{}),(0,O.jsx)(bd,{}),(0,O.jsx)(Dd,{})]})}function GE(){let e=Z(e=>e.annotations),t=Z(e=>e.addAnnotation),n=Z(e=>e.removeAnnotation),r=Z(e=>e.updateAnnotation),[i,a]=(0,y.useState)(`0`),[o,s]=(0,y.useState)(`0`),[c,l]=(0,y.useState)(``),u=()=>{let e=Number(i),n=Number(o);Number.isFinite(e)&&Number.isFinite(n)&&c.trim()&&(t(e,n,c.trim()),l(``))};return(0,O.jsxs)(Se,{title:`Annotations`,count:e.length||void 0,defaultOpen:!1,children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,O.jsx)(q,{value:i,width:56,placeholder:`X`,onChange:a}),(0,O.jsx)(q,{value:o,width:56,placeholder:`Y`,onChange:s})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,marginTop:6},children:[(0,O.jsx)(`input`,{className:`qz-input`,value:c,placeholder:`label text`,style:{flex:1},onChange:e=>l(e.target.value),onKeyDown:e=>e.key===`Enter`&&u()}),(0,O.jsx)(G,{size:`sm`,onClick:u,children:`Add`})]}),e.map(e=>(0,O.jsxs)(`div`,{className:`qz-meta-row`,style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,O.jsxs)(`span`,{className:`qz-k`,style:{overflow:`hidden`,textOverflow:`ellipsis`},children:[e.text,` `,(0,O.jsxs)(`span`,{style:{fontFamily:`var(--font-mono)`,color:`var(--text-faint)`},children:[`(`,Y(e.x),`, `,Y(e.y),`)`,e.anchor===`page`?` (page)`:``]})]}),(0,O.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:4},children:[(0,O.jsx)(q,{value:String(e.size??``),width:40,placeholder:`px`,onChange:t=>{let n=Number(t);Number.isFinite(n)&&t.trim()&&r(e.id,{size:Yl(n)})}}),(0,O.jsx)(xe,{title:`Remove`,onClick:()=>n(e.id),children:`✕`})]})]},e.id))]})}function KE(){let e=Z(e=>e.xLim),t=Z(e=>e.yLim),n=Z(e=>e.setXLim),r=Z(e=>e.setYLim),[i,a]=(0,y.useState)(``),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(``),[u,d]=(0,y.useState)(``);(0,y.useEffect)(()=>{a(e?String(e[0]):``),s(e?String(e[1]):``)},[e]),(0,y.useEffect)(()=>{l(t?String(t[0]):``),d(t?String(t[1]):``)},[t]);let f=(e,t,n)=>{if(e===``&&t===``){n(null);return}let r=Number(e),i=Number(t);Number.isFinite(r)&&Number.isFinite(i)&&r<i&&n([r,i])},p=(e,t,n,r,i,a)=>(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,marginTop:6},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0,width:14},children:e}),(0,O.jsx)(q,{value:t,width:64,placeholder:`auto`,onChange:r,onBlur:a,onKeyDown:e=>e.key===`Enter`&&a()}),(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:`–`}),(0,O.jsx)(q,{value:n,width:64,placeholder:`auto`,onChange:i,onBlur:a,onKeyDown:e=>e.key===`Enter`&&a()})]});return(0,O.jsxs)(`div`,{style:{marginTop:8},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,children:`Limits`}),p(`X`,i,o,a,s,()=>f(i,o,n)),p(`Y`,c,u,l,d,()=>f(c,u,r))]})}var qE=[{value:`linear`,label:`Linear`},{value:`log`,label:`Log`},{value:`reciprocal`,label:`Reciprocal`}];function JE(){let e=Z(e=>e.xScale),t=Z(e=>e.yScale),n=Z(e=>e.setXScale),r=Z(e=>e.setYScale);return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`label`,{className:`qzk-field-lbl`,children:[`X scale`,(0,O.jsx)(K,{options:qE,value:e,onChange:e=>n(e.target.value)})]}),(0,O.jsxs)(`label`,{className:`qzk-field-lbl`,style:{marginTop:2},children:[`Y scale`,(0,O.jsx)(K,{options:qE,value:t,onChange:e=>r(e.target.value)})]})]})}var YE={continuous:`C`,ordinal:`O`,nominal:`N`};function XE({active:e}){let t=Z(e=>e.xKey),n=Z(e=>e.setXKey),r=Z(e=>e.yKeys),i=Z(e=>e.setYKeys),a=Z(e=>e.y2Keys),o=Z(e=>e.setY2Keys),s=Z(e=>e.errKeys),c=Z(e=>e.setErrKey),l=Z(e=>e.setChannelRole),u=Z(e=>e.setChannelType),d=Z(e=>e.waterfall),f=Z(e=>e.setWaterfall);if(!e||e.data.labels.length<2)return null;let{labels:p,units:m}=e.data,h=e.channelRoles??{},g=xa(e.data,t),_=r??g,v=new Set(a??[]),y=p.filter((e,n)=>n!==t&&!h[n]).length,b=(e,t)=>{if(!(t!=null&&!h[e]&&y<=1)&&(l(e,t),t!=null&&v.has(e))){let t=(a??[]).filter(t=>t!==e);o(t.length?t:null)}},x=e.data.metadata,S=String(x?.x_column_long||x?.x_column_name||`Index`),C=e=>{let n=_.includes(e)?_.filter(t=>t!==e):[..._,e].sort((e,t)=>e-t);if(n.filter(e=>e!==t).length===0)return;let r=n.length===g.length&&n.every((e,t)=>e===g[t]);if(i(r?null:n),!n.includes(e)&&v.has(e)){let t=(a??[]).filter(t=>t!==e);o(t.length?t:null)}},w=e=>{if(v.has(e)){let t=(a??[]).filter(t=>t!==e);o(t.length?t:null)}else{if(_.filter(e=>!v.has(e)).length<=1)return;o([...a??[],e].sort((e,t)=>e-t))}};return(0,O.jsxs)(Se,{title:`Channels`,defaultOpen:!1,children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,marginBottom:6},children:[(0,O.jsx)(`span`,{style:{flex:`0 0 auto`,color:`var(--text-dim)`},children:`X axis`}),(0,O.jsx)(K,{style:{flex:1},value:t==null?``:String(t),onChange:e=>n(e.target.value===``?null:Number(e.target.value)),title:`Channel to use as the plot's x-axis (default = the dataset's x column)`,options:[{value:``,label:`${S} (default)`},...p.map((e,t)=>({value:String(t),label:m[t]?`${e} (${m[t]})`:e}))]})]}),p.map((n,r)=>{if(r===t)return null;let i=h[r],a=!i,o=a&&_.includes(r);return(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8},children:[(0,O.jsxs)(`label`,{className:`qz-check`,style:{flex:1,minWidth:0,opacity:a?1:.6},draggable:!0,title:`Drag onto the plot's X / Y / Y2 axis band to re-plot "${n}" there`,onDragStart:t=>{t.dataTransfer.setData(Vp,Hp({datasetId:e.id,channel:r})),t.dataTransfer.effectAllowed=`copy`},children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:o,disabled:!a,onChange:()=>C(r)}),n,m[r]?` (${m[r]})`:``]}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,O.jsx)(K,{style:{maxWidth:64},value:e.channelTypes?.[r]??``,onChange:e=>u(r,e.target.value===``?null:e.target.value),title:`Modeling type — what this column means. Continuous: a measurement axis · Ordinal: ordered levels · Nominal: categories. Auto = inferred from the values; drives categorical plotting (boxes/violins group by nominal columns).`,options:[{value:``,label:`auto·${YE[ha(e,r)]}`},{value:`continuous`,label:`Cont`},{value:`ordinal`,label:`Ord`},{value:`nominal`,label:`Nom`}]}),(0,O.jsx)(K,{style:{maxWidth:78},value:i??``,onChange:e=>b(r,e.target.value===``?null:e.target.value),title:`Column role — Data: plotted · Label: kept in the worksheet but off the plot · Ignore: also dropped from statistics`,options:[{value:``,label:`Data`},{value:`label`,label:`Label`},{value:`ignore`,label:`Ignore`}]}),o&&(0,O.jsx)(K,{style:{maxWidth:88},value:s[r]==null?``:String(s[r]),onChange:e=>c(r,e.target.value===``?null:Number(e.target.value)),title:`Channel holding this series' ± error (draws error bars)`,options:[{value:``,label:`± none`},...p.map((e,t)=>({elab:e,j:t})).filter(({j:e})=>e!==r&&e!==t).map(({elab:e,j:t})=>({value:String(t),label:`± ${e}`}))]}),(0,O.jsx)(Ae,{active:v.has(r),disabled:!o,title:`Draw on the secondary (right) Y axis`,onClick:()=>w(r),children:`Y2`})]})]},r)}),(0,O.jsx)(ke,{label:`Waterfall`,value:Math.round(d*100),min:0,max:100,step:5,onChange:e=>f(e/100),format:e=>`${e}%`})]})}var ZE=[`None`,`Range [0,1]`,`Peak (max=1)`,`Z-score`,`Area (integral=1)`],QE=[`None`,`dY/dX`,`d²Y/dX²`,`∫Y dx`,`dlog/dlog`],$E=[`moving`,`gaussian`,`savgol`],eD=[`linear`,`pchip`,`spline`],tD=``,nD=e=>e.map(e=>({value:e,label:e}));function rD(e){let t=e?.corrections,n=e=>e===void 0?``:String(e);return{xOff:n(t?.xOff),yOff:n(t?.yOff),bgSlope:n(t?.bgSlope),bgInt:n(t?.bgInt),xTrimMin:n(t?.xTrimMin),xTrimMax:n(t?.xTrimMax),smoothEnabled:t?.smoothEnabled??!1,smoothWindow:n(t?.smoothWindow)||`5`,smoothMethod:t?.smoothMethod??`moving`,normMethod:t?.normMethod??`None`,derivativeMode:t?.derivativeMode??`None`,bgId:e?.bgRef?.datasetId??tD,bgInterp:e?.bgRef?.interp??`linear`,footprintEnabled:(t?.footprintW??0)>0&&(t?.footprintL??0)>0,footprintW:n(t?.footprintW),footprintL:n(t?.footprintL),footprintTwoTheta:t?.footprintTwoTheta??!1}}function iD(e){let t={},n=e=>{if(e.trim()===``)return;let t=Number(e);return Number.isNaN(t)?void 0:t},r=(e,n)=>{n!==void 0&&(t[e]=n)};if(r(`xOff`,n(e.xOff)),r(`yOff`,n(e.yOff)),r(`bgSlope`,n(e.bgSlope)),r(`bgInt`,n(e.bgInt)),r(`xTrimMin`,n(e.xTrimMin)),r(`xTrimMax`,n(e.xTrimMax)),e.smoothEnabled){t.smoothEnabled=!0,t.smoothMethod=e.smoothMethod;let r=n(e.smoothWindow);r!==void 0&&(t.smoothWindow=r)}if(e.normMethod!==`None`&&(t.normMethod=e.normMethod),e.derivativeMode!==`None`&&(t.derivativeMode=e.derivativeMode),e.footprintEnabled){let r=n(e.footprintW),i=n(e.footprintL);r!==void 0&&r>0&&i!==void 0&&i>0&&(t.footprintW=r,t.footprintL=i,e.footprintTwoTheta&&(t.footprintTwoTheta=!0))}return t}function aD({label:e,children:t}){return(0,O.jsxs)(`div`,{className:`qz-meta-row`,children:[(0,O.jsx)(`span`,{className:`qz-k`,children:e}),(0,O.jsx)(`span`,{className:`qz-v`,children:t})]})}function oD({active:e}){let t=Z(e=>e.applyCorrections),n=Z(e=>e.resetCorrections),r=Z(e=>e.datasets),[i,a]=(0,y.useState)(()=>rD(e)),[o,s]=(0,y.useState)(!1),c=(e,t)=>a(n=>({...n,[e]:t})),l=[{value:tD,label:`— none —`},...r.filter(t=>t.id!==e?.id).map(e=>({value:e.id,label:e.name}))];return e?(0,O.jsxs)(Se,{title:`Corrections`,defaultOpen:!1,children:[(0,O.jsx)(aD,{label:`X offset`,children:(0,O.jsx)(q,{value:i.xOff,placeholder:`0`,onChange:e=>c(`xOff`,e)})}),(0,O.jsx)(aD,{label:`Y offset`,children:(0,O.jsx)(q,{value:i.yOff,placeholder:`0`,onChange:e=>c(`yOff`,e)})}),(0,O.jsx)(aD,{label:`BG slope`,children:(0,O.jsx)(q,{value:i.bgSlope,placeholder:`0`,onChange:e=>c(`bgSlope`,e)})}),(0,O.jsx)(aD,{label:`BG intercept`,children:(0,O.jsx)(q,{value:i.bgInt,placeholder:`0`,onChange:e=>c(`bgInt`,e)})}),(0,O.jsx)(aD,{label:`Trim min`,children:(0,O.jsx)(q,{value:i.xTrimMin,placeholder:`—`,onChange:e=>c(`xTrimMin`,e)})}),(0,O.jsx)(aD,{label:`Trim max`,children:(0,O.jsx)(q,{value:i.xTrimMax,placeholder:`—`,onChange:e=>c(`xTrimMax`,e)})}),l.length>1&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(aD,{label:`Background`,children:(0,O.jsx)(K,{options:l,value:i.bgId,onChange:e=>c(`bgId`,e.target.value)})}),i.bgId!==tD&&(0,O.jsx)(aD,{label:`Interp`,children:(0,O.jsx)(K,{options:nD(eD),value:i.bgInterp,onChange:e=>c(`bgInterp`,e.target.value)})})]}),(0,O.jsx)(`div`,{style:{marginTop:8},children:(0,O.jsx)(De,{checked:i.footprintEnabled,onChange:e=>c(`footprintEnabled`,e),children:`Footprint (XRR/NR)`})}),i.footprintEnabled&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(aD,{label:`Beam w`,children:(0,O.jsx)(q,{value:i.footprintW,placeholder:`mm`,onChange:e=>c(`footprintW`,e)})}),(0,O.jsx)(aD,{label:`Sample L`,children:(0,O.jsx)(q,{value:i.footprintL,placeholder:`mm`,onChange:e=>c(`footprintL`,e)})}),(0,O.jsx)(De,{checked:i.footprintTwoTheta,onChange:e=>c(`footprintTwoTheta`,e),children:`X axis is 2θ`})]}),(0,O.jsx)(`div`,{style:{marginTop:8},children:(0,O.jsx)(De,{checked:i.smoothEnabled,onChange:e=>c(`smoothEnabled`,e),children:`Smooth`})}),i.smoothEnabled&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(aD,{label:`Window`,children:(0,O.jsx)(q,{value:i.smoothWindow,onChange:e=>c(`smoothWindow`,e)})}),(0,O.jsx)(aD,{label:`Method`,children:(0,O.jsx)(K,{options:nD($E),value:i.smoothMethod,onChange:e=>c(`smoothMethod`,e.target.value)})})]}),(0,O.jsx)(aD,{label:`Normalize`,children:(0,O.jsx)(K,{options:nD(ZE),value:i.normMethod,onChange:e=>c(`normMethod`,e.target.value)})}),(0,O.jsx)(aD,{label:`Derivative`,children:(0,O.jsx)(K,{options:nD(QE),value:i.derivativeMode,onChange:e=>c(`derivativeMode`,e.target.value)})}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:10},children:[(0,O.jsx)(G,{variant:`primary`,size:`sm`,disabled:o,onClick:async()=>{s(!0);try{let n=i.bgId===tD?void 0:{datasetId:i.bgId,interp:i.bgInterp},r=e.corrections??{},a=r.bgAnchors&&r.bgAnchors.length>=2?{bgAnchors:r.bgAnchors,bgAnchorMethod:r.bgAnchorMethod}:{};await t(e.id,{...iD(i),...a},n)}finally{s(!1)}},children:o?`Applying…`:`Apply`}),(0,O.jsx)(G,{variant:`ghost`,size:`sm`,disabled:o||!e.raw,onClick:()=>{n(e.id),a(rD(null))},children:`Reset`})]})]}):(0,O.jsx)(Se,{title:`Corrections`,defaultOpen:!1,children:(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:`Add a dataset to apply corrections.`})})}function sD(){let e=Z(e=>e.macroRecording),t=Z(e=>e.macroSteps),n=Z(e=>e.startMacro),r=Z(e=>e.stopMacro),i=Z(e=>e.clearMacro),a=Z(e=>e.setStatus);return(0,O.jsxs)(Se,{title:`Macro recorder`,count:t.length,defaultOpen:!1,children:[(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,marginBottom:8},children:[(0,O.jsx)(G,{variant:e?`danger`:`primary`,size:`sm`,onClick:()=>e?r():n(),children:e?`❚❚ Pause`:`● Record`}),(0,O.jsx)(G,{size:`sm`,onClick:i,disabled:t.length===0&&!e,children:`Clear`})]}),t.length===0?(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{fontStyle:`italic`},children:e?`Recording… act on the plot to capture steps.`:`No steps recorded.`}):(0,O.jsx)(`ol`,{className:`qzk-macro-list`,children:t.map((e,t)=>(0,O.jsxs)(`li`,{title:e.code,children:[(0,O.jsx)(`span`,{className:`qzk-macro-num`,children:t+1}),(0,O.jsx)(`span`,{className:`qzk-macro-label`,children:e.label})]},e.id))}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,marginTop:8},children:[(0,O.jsx)(G,{size:`sm`,onClick:()=>{Ip(vi(t)).then(e=>a(e?`copied macro — ${t.length} steps`:`clipboard unavailable`))},disabled:t.length===0,children:`Copy script`}),(0,O.jsx)(G,{size:`sm`,onClick:()=>{Ue(new Blob([vi(t)],{type:`text/plain`}),`macro.qzm`),a(`saved macro.qzm — ${t.length} steps`)},disabled:t.length===0,children:`Download .qzm`})]})]})}var cD=[{value:`natural`,label:`natural (Sibson)`},{value:`linear`,label:`linear`},{value:`nearest`,label:`nearest`},{value:`idw`,label:`inverse-distance`}],lD=[100,200,400].map(e=>({value:String(e),label:`${e} × ${e}`})),uD=[4,6,8,12,16,20].map(e=>({value:String(e),label:String(e)})),dD=[{value:`linear`,label:`linear`},{value:`log`,label:`log`}];function fD(){let e=Z(e=>e.mapMethod),t=Z(e=>e.mapRes),n=Z(e=>e.setMapMethod),r=Z(e=>e.setMapRes),i=Z(e=>e.contourOn),a=Z(e=>e.contourLevelCount),o=Z(e=>e.contourScale),s=Z(e=>e.setContourOn),c=Z(e=>e.setContourLevelCount),l=Z(e=>e.setContourScale);return(0,O.jsxs)(Se,{title:`2-D map`,defaultOpen:!0,children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Grid method`}),(0,O.jsx)(K,{options:cD,value:e,onChange:e=>n(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:8},children:`Resolution`}),(0,O.jsx)(K,{options:lD,value:String(t),onChange:e=>r(Number(e.target.value))}),(0,O.jsxs)(`label`,{className:`qzk-field-lbl`,style:{marginTop:12,display:`flex`,alignItems:`center`,gap:6},children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:i,onChange:e=>s(e.target.checked)}),`Contour lines`]}),i&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:8},children:`Levels`}),(0,O.jsx)(K,{options:uD,value:String(a),onChange:e=>c(Number(e.target.value))}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:8},children:`Spacing`}),(0,O.jsx)(K,{options:dD,value:o,onChange:e=>l(e.target.value)})]})]})}function pD(e){if(e==null)return`—`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function mD(e){let t=new Set([`x_column_name`,`x_column_unit`,`origin_results_log`,`origin_results_log_records`,`origin_notes`,`origin_report_sheets`,`origin_text_columns`]);return Object.keys(e).filter(e=>!t.has(e)).sort((e,t)=>e.localeCompare(t)).map(t=>[t,pD(e[t])])}function hD(e){return mD(e).map(([e,t])=>`${e}\t${t}`).join(`
27
+ `)}var gD=220;function _D({active:e}){let t=Z(e=>e.setStatus),n=e?.data.metadata??{},r=mD(n);return!e||r.length===0?null:(0,O.jsxs)(Se,{title:`Metadata`,count:r.length,defaultOpen:!1,children:[(0,O.jsx)(`div`,{children:r.map(([e,t])=>(0,O.jsxs)(`div`,{className:`qz-meta-row`,children:[(0,O.jsx)(`span`,{className:`qz-k`,title:e,children:e}),(0,O.jsx)(`span`,{className:`qz-v`,title:t.length>gD?`truncated — use Copy for the full text`:t,children:t.length>gD?`${t.slice(0,gD)}…`:t})]},e))}),(0,O.jsx)(`button`,{type:`button`,className:`qz-btn`,onClick:()=>Ip(hD(n)).then(e=>t(e?`copied ${r.length} metadata fields`:`clipboard unavailable`)),style:{marginTop:6},children:`⧉ Copy metadata`})]})}function vD({active:e}){let t=Z(e=>e.setDatasetNotes),[n,r]=(0,y.useState)(e?.notes??``);return(0,y.useEffect)(()=>{r(e?.notes??``)},[e?.id]),e?(0,O.jsx)(Se,{title:`Notes`,count:e.notes?1:void 0,defaultOpen:!1,children:(0,O.jsx)(`textarea`,{className:`qz-input`,style:{width:`100%`,minHeight:64,resize:`vertical`,fontFamily:`inherit`},placeholder:`Notes about this dataset — sample, conditions, caveats…`,value:n,onChange:e=>r(e.target.value),onBlur:()=>t(e.id,n)})}):null}function yD(e){return!!e&&typeof e==`object`&&typeof e.timestamp==`string`&&typeof e.operation==`string`}function bD(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function xD(e){return!!e&&typeof e==`object`&&!Array.isArray(e)&&Object.values(e).every(e=>Array.isArray(e))}function SD(e){return[...e].sort((e,t)=>e.length-t.length||e.localeCompare(t))}function CD(e,t){return e.length>t?`${e.slice(0,t)}…`:e}function wD({title:e,cols:t,keys:n}){return n.length===0?null:(0,O.jsxs)(`div`,{style:{marginBottom:10},children:[(0,O.jsx)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--text-faint)`,marginBottom:2},children:e}),n.map(e=>{let n=t[e],r=n[0]??``,i=r?CD(r,60):`(empty)`;return(0,O.jsxs)(`details`,{className:`qz-provenance-row`,children:[(0,O.jsxs)(`summary`,{children:[(0,O.jsx)(`span`,{style:{fontFamily:`var(--font-mono)`,color:`var(--text-dim)`},children:e}),` `,(0,O.jsx)(`span`,{style:{color:`var(--text-faint)`},children:i}),` `,(0,O.jsxs)(`span`,{style:{color:`var(--text-faint)`},children:[`(`,n.length,`)`]})]}),(0,O.jsx)(`div`,{style:{fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-sm)`,color:`var(--text-dim)`,maxHeight:160,overflowY:`auto`,whiteSpace:`pre-wrap`,wordBreak:`break-word`,paddingLeft:14,marginTop:4},children:n.map((e,t)=>(0,O.jsx)(`div`,{children:e||`\xA0`},t))})]},e)})]})}function TD({active:e}){let t=Z(e=>e.setStatus),n=e?.data.metadata??{},r=bD(n.origin_notes)?n.origin_notes:null,i=r?Object.keys(r).filter(e=>r[e]?.trim()):[],a=typeof n.origin_results_log==`string`?n.origin_results_log:``,o=Array.isArray(n.origin_results_log_records)?n.origin_results_log_records.filter(yD):[],s=xD(n.origin_report_sheets)?n.origin_report_sheets:null,c=s?SD(Object.keys(s)):[],l=xD(n.origin_text_columns)?n.origin_text_columns:null,u=l?SD(Object.keys(l)):[],d=n.x_column_recovered===!1,f=typeof n.x_column_unrecovered==`string`?n.x_column_unrecovered:``,p=o.length>0||a.length>0,m=c.length>0||u.length>0;return!e||i.length===0&&!p&&!m&&!d?null:(0,O.jsxs)(Se,{title:`Origin provenance`,count:i.length+o.length+c.length+u.length||void 0,defaultOpen:!1,children:[d&&(0,O.jsxs)(`div`,{style:{marginBottom:10,fontSize:`var(--font-size-sm)`,color:`var(--text-faint)`,lineHeight:1.4},children:[(0,O.jsx)(`span`,{style:{color:`var(--accent)`},children:`⚠`}),` X axis shows the row index — Origin's designated X column`,f?` (“${f}”)`:``,` could not be decoded, so its values aren’t available.`]}),i.length>0&&(0,O.jsx)(`div`,{style:{marginBottom:p?10:0},children:i.map(e=>(0,O.jsxs)(`div`,{style:{marginBottom:6},children:[(0,O.jsx)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--text-faint)`,marginBottom:2},children:e}),(0,O.jsx)(`div`,{style:{fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-sm)`,color:`var(--text-dim)`,whiteSpace:`pre-wrap`},children:r[e]})]},e))}),o.length>0?(0,O.jsx)(`div`,{children:o.map((e,t)=>{let n=Object.entries(e.params).filter(([,e])=>Object.keys(e).length>0);return(0,O.jsxs)(`details`,{className:`qz-provenance-row`,children:[(0,O.jsxs)(`summary`,{children:[(0,O.jsx)(`span`,{style:{fontFamily:`var(--font-mono)`,color:`var(--text-faint)`},children:e.timestamp}),` `,(0,O.jsx)(`span`,{style:{color:`var(--text-dim)`},children:e.operation||`(unnamed operation)`})]}),(0,O.jsxs)(`div`,{style:{paddingLeft:14,marginTop:4},children:[n.length>0?n.map(([e,t])=>(0,O.jsxs)(`div`,{style:{marginBottom:6},children:[e&&(0,O.jsx)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--text-faint)`},children:e}),Object.entries(t).map(([e,t])=>(0,O.jsxs)(`div`,{className:`qz-meta-row`,children:[(0,O.jsx)(`span`,{className:`qz-k`,title:e,children:e}),(0,O.jsx)(`span`,{className:`qz-v`,title:pD(t),children:pD(t)})]},e))]},e)):(0,O.jsx)(`span`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--text-faint)`},children:`no parameters recorded`}),e.extra&&e.extra.length>0&&(0,O.jsx)(`div`,{style:{marginTop:4},children:e.extra.map((e,t)=>(0,O.jsx)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--text-faint)`},children:e},t))})]})]},t)})}):a?(0,O.jsx)(`pre`,{style:{fontFamily:`var(--font-mono)`,fontSize:`var(--font-size-sm)`,color:`var(--text-dim)`,maxHeight:200,overflowY:`auto`,whiteSpace:`pre-wrap`,wordBreak:`break-word`,margin:0},children:a}):null,a&&(0,O.jsx)(G,{size:`sm`,onClick:()=>Ip(a).then(e=>t(e?`copied results log`:`clipboard unavailable`)),style:{marginTop:6},children:`⧉ Copy results log`}),s&&(0,O.jsx)(wD,{title:`Report-sheet columns`,cols:s,keys:c}),l&&(0,O.jsx)(wD,{title:`Text columns`,cols:l,keys:u})]})}function ED(){let e=Z(e=>e.refLines),t=Z(e=>e.addRefLine),n=Z(e=>e.removeRefLine),[r,i]=(0,y.useState)(`x`),[a,o]=(0,y.useState)(`0`),s=()=>{let e=Number(a);Number.isFinite(e)&&t(r,e)};return(0,O.jsxs)(Se,{title:`Reference lines`,count:e.length||void 0,defaultOpen:!1,children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,O.jsx)(Ee,{options:[{value:`x`,label:`X`},{value:`y`,label:`Y`}],value:r,onChange:i}),(0,O.jsx)(q,{value:a,width:72,onChange:o,onKeyDown:e=>e.key===`Enter`&&s()}),(0,O.jsx)(G,{size:`sm`,onClick:s,children:`Add`})]}),e.length>0&&(0,O.jsx)(`div`,{className:`qz-hint`,style:{color:`var(--text-dim)`,fontSize:11,margin:`4px 0 2px`},children:`Drag a line on the plot (zoom/cursor tool) to move it.`}),e.map(e=>(0,O.jsxs)(`div`,{className:`qz-meta-row`,style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,O.jsxs)(`span`,{className:`qz-k`,children:[e.axis.toUpperCase(),` = `,(0,O.jsx)(`span`,{style:{fontFamily:`var(--font-mono)`},children:Y(e.value)})]}),(0,O.jsx)(xe,{title:`Remove`,onClick:()=>n(e.id),children:`✕`})]},e.id))]})}var DD=Object.keys(Bl);function OD(e){return e===`under`?`under`:e&&e!==`none`?`between`:`none`}function kD({channel:e,style:t,labels:n,setSeriesStyle:r}){let i=OD(t.fill),a=typeof t.fill==`object`?t.fill.vs:void 0,o=n.map((e,t)=>({i:t,lab:e})).filter(({i:t})=>t!==e);return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,marginTop:8,flexWrap:`wrap`},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`Fill`}),(0,O.jsx)(K,{options:[{value:`none`,label:`None`},{value:`under`,label:`Under (to zero)`},{value:`between`,label:`Between…`}],value:i,onChange:t=>{let n=t.target.value;n===`none`?r(e,{fill:void 0}):n===`under`?r(e,{fill:`under`}):r(e,{fill:{vs:o[0]?.i??e}})}}),i===`between`&&o.length>0&&(0,O.jsx)(K,{title:`Fill against`,options:o.map(({i:e,lab:t})=>({value:String(e),label:t})),value:String(a??o[0].i),onChange:t=>r(e,{fill:{vs:Number(t.target.value)}})})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,marginTop:8,flexWrap:`wrap`},children:[(0,O.jsx)(De,{checked:t.colorBy!=null,onChange:t=>r(e,{colorBy:t?o[0]?.i??e:void 0}),children:`Colour by`}),t.colorBy!=null&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(K,{title:`Colour-by channel`,options:n.map((e,t)=>({value:String(t),label:e})),value:String(t.colorBy),onChange:t=>r(e,{colorBy:Number(t.target.value)})}),(0,O.jsx)(K,{title:`Colormap`,options:DD.map(e=>({value:e,label:e})),value:t.colormap??`viridis`,onChange:t=>r(e,{colormap:t.target.value})})]})]})]})}var AD=[1,2,3,4,5,6,7,8],jD=[{value:`solid`,label:`──`},{value:`dashed`,label:`╌╌`},{value:`dotted`,label:`···`}],MD=[{value:`line`,label:`Line`},{value:`scatter`,label:`Scatter`},{value:`both`,label:`Both`}];function ND({channel:e,label:t,labels:n,naturalErr:r}){let i=Z(t=>t.seriesStyles[e])??{},a=Z(e=>e.setSeriesStyle),o=Z(e=>e.resetSeriesStyle),s=Z(t=>t.errKeys[e]),c=Z(e=>e.setErrKey),l=Object.values(i).some(e=>e!==void 0),u=i.color&&!i.color.startsWith(`--`)?i.color:`#8b5cf6`,d=t=>{if(t.trim()===``)return a(e,{width:void 0});let n=Number(t);Number.isFinite(n)&&n>0&&a(e,{width:n})},f=i.width===0,p=f?`scatter`:i.marker?`both`:`line`,m=t=>{t===`scatter`?a(e,{width:0,marker:!0}):a(e,{marker:t===`both`,...f?{width:void 0}:{}})},h=s!=null||r!=null;return(0,O.jsxs)(`details`,{className:`qz-card`,style:{marginBottom:4},children:[(0,O.jsxs)(`summary`,{children:[(0,O.jsx)(`span`,{style:{display:`inline-block`,width:12,height:12,borderRadius:2,marginRight:8,background:i.color?i.color.startsWith(`--`)?`var(${i.color})`:i.color:`var(--series-${e%8+1})`}}),t,l&&(0,O.jsx)(xe,{title:`Reset to default`,style:{marginLeft:`auto`},onClick:t=>{t.preventDefault(),o(e)},children:`↺`})]}),(0,O.jsxs)(`div`,{className:`qz-card-body`,children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,marginBottom:8,flexWrap:`wrap`},children:[(0,O.jsx)(Ee,{options:MD,value:p,onChange:m}),(0,O.jsx)(De,{checked:s!=null,disabled:!h,onChange:t=>c(e,t?r??s??null:null),children:`Error bars`})]}),(0,O.jsx)(`span`,{className:`qzk-field-lbl`,children:`Color`}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,flexWrap:`wrap`},children:[AD.map(t=>{let n=`--series-${t}`;return(0,O.jsx)(`button`,{title:`Series ${t}`,"aria-pressed":i.color===n,onClick:()=>a(e,{color:n}),style:{width:18,height:18,borderRadius:3,background:`var(${n})`,border:i.color===n?`2px solid var(--text)`:`1px solid var(--border)`}},t)}),(0,O.jsx)(`input`,{type:`color`,title:`Custom color`,value:u,onChange:t=>a(e,{color:t.target.value}),style:{width:24,height:22,padding:0,border:`1px solid var(--border)`}})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,marginTop:8},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`Width`}),(0,O.jsx)(q,{value:i.width==null?``:String(i.width),width:52,placeholder:`1.5`,unit:`px`,onChange:d})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,marginTop:8},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`Line`}),(0,O.jsx)(Ee,{options:jD,value:i.line??`solid`,onChange:t=>a(e,{line:t})})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10,marginTop:8},children:[(0,O.jsx)(De,{checked:i.marker??!1,onChange:t=>a(e,{marker:t}),children:`Markers`}),i.marker&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(K,{options:Ng,value:i.markerShape??`circle`,title:`Marker shape`,onChange:t=>a(e,{markerShape:t.target.value})}),(0,O.jsx)(q,{value:i.markerSize==null?``:String(i.markerSize),width:44,placeholder:`5`,unit:`px`,title:`Marker size`,onChange:t=>{if(t.trim()===``)return a(e,{markerSize:void 0});let n=Number(t);Number.isFinite(n)&&n>0&&a(e,{markerSize:n})}})]})]}),(0,O.jsx)(kD,{channel:e,style:i,labels:n,setSeriesStyle:a})]})]})}function PD({active:e}){let t=Z(e=>Object.keys(e.seriesStyles).length);if(!e||e.data.labels.length===0)return null;let n=ei(e.data);return(0,O.jsx)(Se,{title:`Series style`,count:t||void 0,defaultOpen:!1,children:e.data.labels.map((t,r)=>(0,O.jsx)(ND,{channel:r,label:t,labels:e.data.labels,naturalErr:n[r]},r))})}var FD=[[`Mean`,`mean`],[`Std`,`std`],[`Min`,`min`],[`Max`,`max`],[`Median`,`median`],[`N`,`N`]];function ID({active:e}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let t=!1;if(n(null),i(!1),e)return Tt(e.data.values.map(e=>e[0])).then(e=>{t||n(e)}).catch(()=>{t||i(!0)}),()=>{t=!0}},[e]);let a=e?.data.labels[0]??`—`;return(0,O.jsxs)(Se,{title:`Channel statistics`,defaultOpen:!1,children:[!e&&(0,O.jsx)(Ce,{label:`—`,value:`no dataset`}),e&&r&&(0,O.jsx)(Ce,{label:`—`,value:`unavailable offline`}),e&&!r&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`,marginBottom:4},children:`Summary of the first channel's values.`}),(0,O.jsx)(Ce,{label:`Channel`,value:a,title:a}),FD.map(([e,n])=>(0,O.jsx)(Ce,{label:e,value:t?Y(t[n]):`…`},n))]})]})}var LD=[{value:`auto`,label:`Auto`},{value:`fixed`,label:`Fixed`},{value:`sci`,label:`Sci`},{value:`eng`,label:`Eng`}];function RD(){let e=Z(e=>e.xFmt),t=Z(e=>e.yFmt),n=Z(e=>e.setXFmt),r=Z(e=>e.setYFmt),i=(e,t,n)=>(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6,marginTop:6},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0,width:14},children:e}),(0,O.jsx)(Ee,{options:LD,value:t.mode,onChange:e=>n({...t,mode:e})}),t.mode!==`auto`&&(0,O.jsx)(q,{value:String(t.digits),width:44,title:`Decimal / mantissa digits`,onChange:e=>{if(e.trim()===``)return;let r=Number(e);Number.isFinite(r)&&n({...t,digits:Math.max(0,Math.min(20,Math.round(r)))})}})]});return(0,O.jsxs)(`div`,{style:{marginTop:8},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,children:`Tick format`}),i(`X`,e,n),i(`Y`,t,r)]})}function zD({label:e,placeholder:t,value:n,onCommit:r}){return(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:6,marginTop:6},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0,width:48,paddingTop:4},children:e}),(0,O.jsx)(be,{value:n,placeholder:t,onCommit:r})]})}function BD(){let e=Z(e=>e.plotTitle),t=Z(e=>e.xAxisLabel),n=Z(e=>e.yAxisLabel),r=Z(e=>e.y2AxisLabel),i=Z(e=>e.y2Keys),a=Z(e=>e.setPlotTitle),o=Z(e=>e.setXAxisLabel),s=Z(e=>e.setYAxisLabel),c=Z(e=>e.setY2AxisLabel);return(0,O.jsxs)(Se,{title:`Titles & labels`,defaultOpen:!1,children:[(0,O.jsx)(zD,{label:`Title`,placeholder:`(none)`,value:e,onCommit:a}),(0,O.jsx)(zD,{label:`X label`,placeholder:`auto`,value:t,onCommit:o}),(0,O.jsx)(zD,{label:`Y label`,placeholder:`auto`,value:n,onCommit:s}),i&&i.length>0&&(0,O.jsx)(zD,{label:`Y2 label`,placeholder:`auto`,value:r,onCommit:c})]})}var VD=[{value:`screen`,label:`Screen (default)`,fontSize:12,lineWidth:1.5},{value:`aps`,label:`APS (compact)`,fontSize:9,lineWidth:1},{value:`nature`,label:`Nature`,fontSize:9,lineWidth:1.2},{value:`thesis`,label:`Thesis`,fontSize:11,lineWidth:1.5},{value:`report`,label:`Report`,fontSize:11,lineWidth:1.75},{value:`presentation`,label:`Presentation`,fontSize:14,lineWidth:2.5},{value:`poster`,label:`Poster`,fontSize:18,lineWidth:3.5}];function HD(e){return VD.find(t=>t.value===e)??VD[0]}function UD(){let e=pd(),t=Z(e=>e.stageTab),n=Z(e=>e.showGrid),r=Z(e=>e.setShowGrid),i=Z(e=>e.showLegend),a=Z(e=>e.setShowLegend),o=Z(e=>e.legendPos),s=Z(e=>e.setLegendPos),c=Z(e=>e.plotTemplate),l=Z(e=>e.setPlotTemplate),u=Z(e=>e.showAxisBox),d=Z(e=>e.setShowAxisBox);return(0,O.jsxs)(`aside`,{className:`qzk-inspector`,children:[t===`map`&&(0,O.jsx)(fD,{}),(0,O.jsx)(vD,{active:e}),(0,O.jsx)(XE,{active:e}),(0,O.jsx)(oD,{active:e},e?.id??`none`),(0,O.jsx)(ID,{active:e}),(0,O.jsx)(_D,{active:e}),(0,O.jsx)(TD,{active:e}),(0,O.jsxs)(Se,{title:`Axes`,defaultOpen:!1,children:[(0,O.jsx)(JE,{}),(0,O.jsxs)(`label`,{className:`qz-check`,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:n,onChange:e=>r(e.target.checked)}),`Grid lines`]}),(0,O.jsxs)(`label`,{className:`qz-check`,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked)}),`Axis box (frame)`]}),(0,O.jsxs)(`label`,{className:`qz-check`,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:i,onChange:e=>a(e.target.checked)}),`Legend`]}),i&&(0,O.jsxs)(`label`,{className:`qzk-field-lbl`,style:{marginTop:2},children:[`Legend position`,(0,O.jsx)(K,{options:[{value:`ne`,label:`Top right`},{value:`nw`,label:`Top left`},{value:`se`,label:`Bottom right`},{value:`sw`,label:`Bottom left`}],value:o,onChange:e=>s(e.target.value)})]}),(0,O.jsxs)(`label`,{className:`qzk-field-lbl`,style:{marginTop:2},children:[`Plot template`,(0,O.jsx)(K,{options:VD.map(e=>({value:e.value,label:e.label})),value:c,onChange:e=>l(e.target.value)})]}),(0,O.jsx)(KE,{}),(0,O.jsx)(RD,{})]}),(0,O.jsx)(BD,{}),(0,O.jsx)(ED,{}),(0,O.jsx)(GE,{}),(0,O.jsx)(PD,{active:e}),(0,O.jsx)(sD,{})]})}function WD(){let e=Z(e=>e.datasets),t=Z(e=>e.removeDatasets),[n,r]=(0,y.useState)(!1),i=Vi(e);if(i.length===0)return null;let a=async(e,n)=>{let r=n.map(e=>({key:e.id,label:e.name,type:`boolean`,default:!0})),i=await Re(`Manage "${e}" books`,r);if(!i)return;let a=n.filter(e=>i[e.id]===!1).map(e=>e.id);a.length&&t(a)};return(0,O.jsxs)(`div`,{className:`qzk-lib-group`,children:[(0,O.jsxs)(`button`,{className:`qzk-group-head`,onClick:()=>r(e=>!e),children:[(0,O.jsx)(`span`,{className:`qzk-group-caret`,children:n?`▸`:`▾`}),(0,O.jsx)(`span`,{className:`qzk-group-name`,children:`Book families`}),(0,O.jsx)(`span`,{className:`qzk-group-count`,children:i.length})]}),!n&&i.map(e=>(0,O.jsxs)(`div`,{className:`qzk-fam-row`,children:[(0,O.jsx)(`span`,{className:`qzk-fam-name`,title:`${e.members.length} books imported from ${e.stem}`,children:e.stem}),(0,O.jsxs)(`span`,{className:`qzk-fam-count`,children:[e.members.length,` books`]}),(0,O.jsx)(`button`,{className:`qz-btn qz-sm`,onClick:()=>void a(e.stem,e.members),children:`Manage…`})]},e.stem))]})}function GD(e,t,n){let r=n=>Number.isFinite(e[n])&&Number.isFinite(t[n]),i=n=>e[n]===0&&t[n]===0,a=n;for(;a>0&&(!r(a-1)||i(a-1));)a--;return a}function KD(e,t,n,r){let i=[],a=[],o=1/0,s=-1/0,c=1/0,l=-1/0,u=Math.max(1,Math.floor(r));if(n<=u){for(let r=0;r<n;r++){let n=e[r],u=t[r];!Number.isFinite(n)||!Number.isFinite(u)||(i.push(n),a.push(u),n<o&&(o=n),n>s&&(s=n),u<c&&(c=u),u>l&&(l=u))}return{xs:i,ys:a,xMin:o,xMax:s,yMin:c,yMax:l}}let d=n/u;for(let r=0;r<u;r++){let f=Math.floor(r*d),p=r===u-1?n:Math.floor((r+1)*d),m=-1,h=-1,g=1/0,_=-1/0;for(let n=f;n<p;n++){let r=e[n],i=t[n];!Number.isFinite(r)||!Number.isFinite(i)||(r<o&&(o=r),r>s&&(s=r),i<g&&(g=i,m=n),i>_&&(_=i,h=n))}m<0||(g<c&&(c=g),_>l&&(l=_),m===h?(i.push(e[m]),a.push(t[m])):m<h?(i.push(e[m],e[h]),a.push(t[m],t[h])):(i.push(e[h],e[m]),a.push(t[h],t[m])))}return{xs:i,ys:a,xMin:o,xMax:s,yMin:c,yMax:l}}var qD=180,JD=26,YD=qD*2;function XD(e){let t=Yr(e).findIndex(e=>e?.designation===`Y`);return t>=0?t:Sa(e)??0}function ZD({data:e}){let t=(0,y.useMemo)(()=>{let t=XD(e),n=e.values.map(e=>e[t]),r=e.time,i=GD(r,n,Math.min(r.length,n.length));if(i<2)return``;let{xs:a,ys:o,xMin:s,xMax:c,yMin:l,yMax:u}=KD(r,n,i,YD),d=c-s||1,f=u-l||1,p=a.map((e,t)=>t).sort((e,t)=>a[e]-a[t]),m=[];for(let e of p){let t=(a[e]-s)/d*(qD-2)+1,n=JD-1-(o[e]-l)/f*(JD-2);m.push(`${t.toFixed(1)},${n.toFixed(1)}`)}return`M`+m.join(` L`)},[e]);return(0,O.jsx)(`svg`,{className:`qzk-ds-spark`,viewBox:`0 0 ${qD} ${JD}`,preserveAspectRatio:`none`,children:(0,O.jsx)(`path`,{d:t,fill:`none`,stroke:`var(--series-1)`,strokeWidth:1})})}var QD=`application/x-qz-dataset`,$D=`application/x-qz-folder`;function eO(e,t,n,r=[]){let i=[],a=new Map;for(let e of t)a.set(e.id,e.folderId??null);let o=e=>{if(e.datasetId!=null&&a.has(e.datasetId))return a.get(e.datasetId)??null;for(let t of e.siblingIds)if(a.has(t))return a.get(t)??null;return null},s=new Map;for(let e of r){let t=o(e),n=s.get(t);n?n.push(e):s.set(t,[e])}let c=n=>{let r=Ei(t,n).length;for(let t of Ti(e,n))r+=c(t.id);return r},l=(r,a)=>{for(let o of Ti(e,r)){let r=Ti(e,o.id).length===0&&Ei(t,o.id).length===0,s=n.has(o.id);i.push({kind:`folder`,id:o.id,folder:o,depth:a,count:c(o.id),empty:r,expanded:s}),s&&l(o.id,a+1)}for(let e of Ei(t,r))i.push({kind:`dataset`,id:e.id,dataset:e,depth:a});for(let e of s.get(r)??[])i.push({kind:`figure`,id:e.id,entry:e,depth:a})};return l(null,0),i}function tO(){let e=Z(e=>e.datasets),t=Z(e=>e.folders),n=Z(e=>e.expandedFolders),r=Z(e=>e.originFigures);return(0,y.useMemo)(()=>eO(t,e,new Set(n),r),[t,e,n,r])}function nO({x:e,y:t,children:n,boxRef:r}){let i=(0,y.useRef)(null),[a,o]=(0,y.useState)({x:e,y:t});return(0,y.useLayoutEffect)(()=>{let n=i.current;if(!n)return;let r=n.getBoundingClientRect(),a=e+r.width+8>window.innerWidth?Math.max(8,window.innerWidth-r.width-8):e,s=t+r.height+8>window.innerHeight?Math.max(8,window.innerHeight-r.height-8):t;o({x:a,y:s})},[e,t]),(0,O.jsx)(`div`,{ref:e=>{i.current=e,typeof r==`function`?r(e):r&&(r.current=e)},className:`qzk-menu-pop qzk-ctx`,style:{position:`fixed`,left:a.x,top:a.y,zIndex:1e3},onContextMenu:e=>e.preventDefault(),onClick:e=>{e.stopPropagation()},children:n})}function rO({children:e}){let t=(0,y.useRef)(null),[n,r]=(0,y.useState)(`right`),[i,a]=(0,y.useState)(0);(0,y.useLayoutEffect)(()=>{let e=t.current;if(!e)return;let n=e.getBoundingClientRect();if(n.width===0&&n.height===0)return;n.right>window.innerWidth-8&&r(`left`);let i=n.bottom-(window.innerHeight-8);i>0&&a(-i)},[]);let o=n===`right`?{left:`calc(100% - 3px)`}:{right:`calc(100% - 3px)`};return(0,O.jsx)(`div`,{ref:t,className:`qzk-menu-pop qzk-ctx`,style:{position:`absolute`,top:-4+i,zIndex:1001,...o},onContextMenu:e=>e.preventDefault(),children:e})}function iO({items:e,onClose:t}){let[n,r]=(0,y.useState)(null),i=(0,y.useRef)({});return(0,O.jsx)(O.Fragment,{children:e.map((e,a)=>`separator`in e?(0,O.jsx)(`div`,{className:`qzk-ctx-sep`},`sep-${a}`):`header`in e?(0,O.jsx)(`div`,{className:`qzk-ctx-header`,children:e.header},`h-${a}`):`swatches`in e?(0,O.jsx)(`div`,{className:`qzk-ctx-swatches`,onMouseEnter:()=>r(null),children:e.swatches.map(e=>(0,O.jsx)(`button`,{className:`qzk-ctx-swatch${e.active?` active`:``}`,title:e.title,"aria-pressed":e.active,style:{background:e.css},onClick:()=>{t(),e.run()}},e.key))},`sw-${a}`):`submenu`in e?(0,O.jsxs)(`div`,{className:`qzk-ctx-subwrap`,onMouseEnter:()=>!e.disabled&&r(a),onMouseLeave:()=>r(e=>e===a?null:e),children:[(0,O.jsxs)(`button`,{ref:e=>{i.current[a]=e},className:`qzk-menu-item qzk-ctx-hassub`,disabled:e.disabled,onClick:()=>r(e=>e===a?null:a),children:[(0,O.jsx)(`span`,{children:e.label}),(0,O.jsx)(`span`,{className:`qzk-ctx-arrow`,"aria-hidden":`true`,children:`›`})]}),n===a&&(0,O.jsx)(rO,{children:(0,O.jsx)(iO,{items:e.submenu,onClose:t})})]},e.label):(0,O.jsxs)(`button`,{ref:e=>{i.current[a]=e},className:`qzk-menu-item${e.danger?` danger`:``}`,disabled:e.disabled,onMouseEnter:()=>r(null),onClick:()=>{t(),e.run()},children:[(0,O.jsx)(`span`,{children:e.label}),e.checked&&(0,O.jsx)(`span`,{className:`qzk-ctx-check`,"aria-hidden":`true`,children:`✓`})]},e.label))})}function aO({x:e,y:t,items:n,onClose:r}){let i=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&r()},t=e=>{e.key===`Escape`&&r()};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),window.addEventListener(`scroll`,r,!0),window.addEventListener(`resize`,r),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t),window.removeEventListener(`scroll`,r,!0),window.removeEventListener(`resize`,r)}},[r]),(0,se.createPortal)((0,O.jsx)(nO,{x:e,y:t,boxRef:i,children:(0,O.jsx)(iO,{items:n,onClose:r})}),document.body)}var oO=[[`row`,`Panel: side by side`],[`column`,`Panel: stacked`],[`grid`,`Panel: grid`],[`overlay`,`Overlay in one plot`]];function sO(e,t,n,r){return!e||t<=1?[]:[{separator:!0},{label:`Merge ${t} selected`,run:r.mergeSelected},...oO.map(([e,t])=>({label:t,run:()=>r.focusWindow(r.createPanelWindow([...n],e))}))]}function cO({dataset:e,active:t,selected:n,showReorder:r,canMoveUp:i,canMoveDown:a,onFilterTag:o,sheetNumber:s,depth:c=0}){let l=Z(e=>e.staleDatasets),u=Z(e=>e.staleFits),d=Z(e=>e.recalcNow),f=Z(e=>e.setActive),p=Z(e=>e.activateFromLibrary),m=Z(e=>e.toggleSelected),h=Z(e=>e.selectRange),g=Z(e=>e.removeDataset),_=Z(e=>e.removeSelected),v=Z(e=>e.mergeSelected),b=Z(e=>e.applyCorrectionsToMany),x=Z(e=>e.duplicateDataset),S=Z(e=>e.moveDataset),C=Z(e=>e.renameDataset),w=Z(e=>e.addDatasetTag),T=Z(e=>e.removeDatasetTag),E=Z(e=>e.moveDatasetToFolder),D=Z(e=>e.createFolder),k=Z(e=>e.folders),A=Z(e=>e.reimportDataset),j=Z(e=>e.createPanelWindow),M=Z(e=>e.focusWindow),[N,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(null),[L,R]=(0,y.useState)(null),[z,B]=(0,y.useState)(null),V=()=>{N!=null&&C(e.id,N),P(null)},H=()=>{F&&F.trim()&&w(e.id,F),I(null)},U=t=>{t.shiftKey?h(e.id):t.ctrlKey||t.metaKey?m(e.id):p(e.id)},ee=t=>{t.preventDefault(),n||p(e.id),R({x:t.clientX,y:t.clientY})},{selectedIds:W}=Z.getState(),te=W.length,ne=Z.getState().datasets.map(e=>e.id),re=n&&te>1?W:[e.id],ie=e=>re.length>1?`Move ${re.length} selected to ${e}`:`Move to ${e}`,ae=[{label:`Plot (make active)`,run:()=>f(e.id),disabled:t},{label:`Duplicate`,run:()=>x(e.id)},{label:`Rename…`,run:()=>P(e.name)},{label:`Add tag…`,run:()=>I(``)},{label:e.source?`Re-import from source`:`Re-import from file…`,run:()=>void A(e.id)},{separator:!0},...k.map(t=>({label:ie(`"${t.name}"`),run:()=>re.forEach(e=>E(e,t.id)),disabled:re.length===1&&e.folderId===t.id})),...e.folderId||re.length>1?[{label:ie(`top level`),run:()=>re.forEach(e=>E(e,null))}]:[],{label:`New folder with this…`,run:()=>E(e.id,D(null,`New Folder`))},...e.corrections?[{separator:!0},{label:`Apply corrections to all`,run:()=>void b(e.id,ne)},...n&&te>1?[{label:`Apply corrections to ${te} selected`,run:()=>void b(e.id,W)}]:[]]:[],...sO(n,te,W,{mergeSelected:v,createPanelWindow:j,focusWindow:M}),{separator:!0},{label:`Move up`,run:()=>S(e.id,-1),disabled:!i},{label:`Move down`,run:()=>S(e.id,1),disabled:!a},{separator:!0},{label:`Remove`,run:()=>{g(e.id),X(`removed ${e.name}`)},danger:!0},...n&&te>1?[{label:`Remove ${te} selected`,run:()=>{let e=te;_(),X(`removed ${e} datasets`)},danger:!0}]:[]];return(0,O.jsxs)(`div`,{className:`qzk-ds${t?` active`:``}${n?` selected`:``}${s?` qzk-ds-sheet`:``}${z?` drop-${z}`:``}`,style:c?{marginLeft:c*14}:void 0,draggable:!0,onDragStart:t=>{t.dataTransfer.setData(QD,e.id),t.dataTransfer.effectAllowed=`move`},onDragOver:e=>{if(!e.dataTransfer.types.includes(`application/x-qz-dataset`))return;e.preventDefault();let t=Li(e.currentTarget.getBoundingClientRect(),e.clientY);t!==z&&B(t)},onDragLeave:()=>B(null),onDrop:t=>{if(!t.dataTransfer.types.includes(`application/x-qz-dataset`))return;t.preventDefault(),t.stopPropagation();let n=z??Li(t.currentTarget.getBoundingClientRect(),t.clientY);B(null);let r=t.dataTransfer.getData(QD);if(!r||r===e.id)return;let i=e.folderId??null,a=zi(Ei(Z.getState().datasets,i).map(e=>e.id),e.id,n);E(r,i,a)},onClick:U,onContextMenu:ee,children:[L&&(0,O.jsx)(aO,{x:L.x,y:L.y,items:ae,onClose:()=>R(null)}),(0,O.jsxs)(`div`,{className:`qzk-ds-top`,children:[(l.includes(e.id)||u.includes(e.id))&&(0,O.jsx)(`span`,{className:`qzk-stale-dot`,title:`stale — data changed; click to recalculate now`,onClick:e=>{e.stopPropagation(),d()},children:`●`}),s!=null&&(0,O.jsxs)(`span`,{className:`qzk-ds-sheet-chip`,title:`Sheet ${s} of the same Origin workbook`,children:[`└ sheet `,s]}),N==null?(0,O.jsx)(`span`,{className:`qzk-ds-name`,title:`${e.name} — double-click to rename`,onDoubleClick:t=>{t.stopPropagation(),P(e.name)},children:e.name}):(0,O.jsx)(`input`,{className:`qz-input qzk-ds-name`,autoFocus:!0,value:N,onClick:e=>e.stopPropagation(),onChange:e=>P(e.target.value),onBlur:V,onKeyDown:e=>{e.key===`Enter`&&V(),e.key===`Escape`&&P(null)}})]}),(0,O.jsx)(ZD,{data:e.data}),(0,O.jsxs)(`div`,{className:`qzk-ds-foot`,children:[(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,title:e.pending?`full data loads on first view`:void 0,children:[e.pending?e.pending.rows:e.data.time.length,` pts · `,e.data.units[0]||`—`,e.pending&&` · …`]}),(0,O.jsxs)(`span`,{className:`qzk-ds-actions`,children:[(0,O.jsxs)(we,{tone:`accent`,children:[e.pending?e.pending.cols:e.data.labels.length,`ch`]}),r&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Move up`,disabled:!i,onClick:t=>{t.stopPropagation(),S(e.id,-1)},children:`▲`}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Move down`,disabled:!a,onClick:t=>{t.stopPropagation(),S(e.id,1)},children:`▼`})]}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Duplicate`,onClick:t=>{t.stopPropagation(),x(e.id)},children:`⧉`}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Remove`,onClick:t=>{t.stopPropagation(),g(e.id)},children:`✕`})]})]}),(0,O.jsxs)(`div`,{className:`qzk-ds-tags`,children:[(e.tags??[]).map(t=>(0,O.jsxs)(`span`,{className:`qzk-tag`,title:`Filter by "${t}"`,onClick:e=>{e.stopPropagation(),o(t)},children:[t,(0,O.jsx)(`button`,{className:`qzk-tag-x`,title:`Remove tag`,onClick:n=>{n.stopPropagation(),T(e.id,t)},children:`×`})]},t)),F==null?(0,O.jsx)(`button`,{className:`qzk-tag qzk-tag-add`,title:`Add tag`,onClick:e=>{e.stopPropagation(),I(``)},children:`+`}):(0,O.jsx)(`input`,{className:`qz-input qzk-tag-input`,autoFocus:!0,placeholder:`tag…`,value:F,onClick:e=>e.stopPropagation(),onChange:e=>I(e.target.value),onBlur:H,onKeyDown:e=>{e.key===`Enter`&&H(),e.key===`Escape`&&I(null)}})]})]})}function lO({entry:e,depth:t=0}){let n=Z(e=>e.applyOriginFigure),r=e.datasetId!=null,i=e.figure.n_curves,a=r?`${e.stem} — restore axis ranges (${i} curve${i===1?``:`s`})`:`unresolved source "${e.figure.source_hint||`unknown`}" — no matching imported book`;return(0,O.jsxs)(`div`,{style:{display:`flex`,gap:4,alignItems:`stretch`},children:[(0,O.jsxs)(`button`,{className:`qzk-fig-item`,disabled:!r,title:a,style:t?{marginLeft:t*14}:void 0,onClick:()=>n(e.id),children:[(0,O.jsx)(`span`,{className:`qzk-fig-name`,children:Pc(e)}),(0,O.jsx)(`span`,{className:`qzk-fig-meta`,children:e.stem})]}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Open in a new graph window`,disabled:!r,onClick:()=>n(e.id,{newWindow:!0}),children:`⊞`})]})}function uO(){let e=Z(e=>e.originFigures),[t,n]=(0,y.useState)(!1);return e.length===0?null:(0,O.jsxs)(`div`,{className:`qzk-lib-group`,children:[(0,O.jsxs)(`button`,{className:`qzk-group-head`,onClick:()=>n(e=>!e),children:[(0,O.jsx)(`span`,{className:`qzk-group-caret`,children:t?`▸`:`▾`}),(0,O.jsx)(`span`,{className:`qzk-group-name`,children:`Figures`}),(0,O.jsx)(`span`,{className:`qzk-group-count`,children:e.length})]}),!t&&e.map(e=>(0,O.jsx)(lO,{entry:e},e.id))]})}var dO=0;function fO(e){let t=Z.getState();return Oi(t.folders,t.datasets,e)}function pO(e){let t=fO(e.id);Z.getState().selectIds(t.map(e=>e.id)),Z.getState().setStatus(`selected ${t.length} dataset(s) in "${e.name}"`)}async function mO(e){let t=fO(e.id);if(t.length!==0)try{let n=await Z.getState().resolveDatasets(t.map(e=>e.id));await rr({datasets:n.map(e=>({dataset:e.data,name:e.name})),filename:`${e.name.replace(/[^A-Za-z0-9._-]/g,`_`)}.csv`}),X(`exported ${n.length} dataset(s) from "${e.name}"`)}catch(e){let t=`export failed: ${e instanceof Error?e.message:`error`}`;Z.getState().setStatus(t),X(t,`danger`)}}async function hO(e){let t=Z.getState(),n=t.datasets.find(e=>e.id===t.activeId);if(!n?.corrections)return;let r=fO(e.id).map(e=>e.id);r.length!==0&&(await t.applyCorrectionsToMany(n.id,r),X(`applied corrections to ${r.length} dataset(s) in "${e.name}"`))}async function gO(e){let t=fO(e.id),n=Fh();if(t.length===0||n.length===0)return;let r=await Re(`Run template on "${e.name}"`,[{key:`template`,label:`Template`,type:`select`,default:n[0].name,options:n.map(e=>e.name),hint:`runs on ${t.length} dataset(s)`}]);if(!r)return;let i=n.find(e=>e.name===String(r.template));if(!i)return;Z.getState().setPipelineRunning(!0);let a=[],o=0;try{for(let e of t)try{let t=await Bh(i,e.id,e.name);a.push(t),t.failed&&o++}catch(t){a.push({file:e.name,values:Rh(i.outputs,void 0),failed:t instanceof Error?t.message:`error`}),o++}Z.getState().addDataset({id:`tplf-${Date.now().toString(36)}-${++dO}`,name:`${i.name} — ${e.name} (${a.length})`,data:zh(i.name,i.outputs.length?i.outputs:[`R2`],a)}),X(o?`folder run done — ${o}/${a.length} dataset(s) flagged`:`folder run done — ${a.length} dataset(s)`,o?`danger`:void 0)}finally{Z.getState().setPipelineRunning(!1)}}function _O(e){let t=Z.getState(),n=fO(e.id).map(e=>e.id);t.removeDatasets(n),t.deleteFolder(e.id,`cascade`),X(`deleted "${e.name}" and ${n.length} dataset(s)`)}function vO({folder:e,depth:t,count:n,expanded:r}){let i=Z(e=>e.toggleFolderExpanded),a=Z(e=>e.createFolder),o=Z(e=>e.renameFolder),s=Z(e=>e.deleteFolder),c=Z(e=>e.moveDatasetToFolder),l=Z(e=>e.moveFolder),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),g=()=>{u!=null&&o(e.id,u),d(null)},_=()=>{r||i(e.id)};return(0,O.jsxs)(`div`,{className:`qzk-folder-head${m===`into`?` dropinto`:``}${m===`above`||m===`below`?` drop-${m}`:``}`,style:{paddingLeft:6+t*14},draggable:u==null,onDragStart:t=>{t.dataTransfer.setData($D,e.id),t.dataTransfer.effectAllowed=`move`},onClick:()=>i(e.id),onContextMenu:e=>{e.preventDefault(),p({x:e.clientX,y:e.clientY})},onDragOver:e=>{if(e.dataTransfer.types.includes(`application/x-qz-dataset`))e.preventDefault(),m!==`into`&&h(`into`);else if(e.dataTransfer.types.includes(`application/x-qz-folder`)){e.preventDefault();let t=Ri(e.currentTarget.getBoundingClientRect(),e.clientY);t!==m&&h(t)}},onDragLeave:()=>h(null),onDrop:t=>{let n=m??Ri(t.currentTarget.getBoundingClientRect(),t.clientY);if(h(null),t.dataTransfer.types.includes(`application/x-qz-dataset`)){let n=t.dataTransfer.getData(QD);if(!n)return;t.preventDefault(),t.stopPropagation(),c(n,e.id),_();return}if(t.dataTransfer.types.includes(`application/x-qz-folder`)){let r=t.dataTransfer.getData($D);if(!r||r===e.id)return;if(t.preventDefault(),t.stopPropagation(),n===`into`)l(r,e.id),_();else{let t=zi(Ti(Z.getState().folders,e.parentId).map(e=>e.id),e.id,n);l(r,e.parentId,t)}}},children:[f&&(0,O.jsx)(aO,{x:f.x,y:f.y,items:(()=>{let t=Z.getState(),r=t.datasets.find(e=>e.id===t.activeId),i=Fh().length>0;return[{label:`New subfolder`,run:()=>{a(e.id,`New Folder`),_()}},{label:`Rename…`,run:()=>d(e.name)},{separator:!0},{label:`Select all in folder (${n})`,run:()=>pO(e),disabled:n===0},{label:`Export folder as consolidated CSV`,run:()=>void mO(e),disabled:n===0},...r?.corrections&&n>0?[{label:`Apply active corrections to folder (${n})`,run:()=>void hO(e)}]:[],...i&&n>0?[{label:`Run analysis template on folder…`,run:()=>void gO(e)}]:[],{separator:!0},{label:`Delete folder`,run:()=>{s(e.id),X(`deleted folder "${e.name}"`)},danger:!0},...n>0?[{label:`Delete folder + ${n} dataset(s)`,run:()=>_O(e),danger:!0}]:[]]})(),onClose:()=>p(null)}),(0,O.jsx)(`span`,{className:`qzk-group-caret`,children:r?`▾`:`▸`}),u==null?(0,O.jsx)(`span`,{className:`qzk-group-name`,title:`${e.name} — double-click to rename`,onDoubleClick:t=>{t.stopPropagation(),d(e.name)},children:e.name}):(0,O.jsx)(`input`,{className:`qz-input qzk-folder-rename`,autoFocus:!0,value:u,onClick:e=>e.stopPropagation(),onChange:e=>d(e.target.value),onBlur:g,onKeyDown:e=>{e.key===`Enter`&&g(),e.key===`Escape`&&d(null)}}),(0,O.jsx)(`span`,{className:`qzk-group-count`,children:n})]})}function yO(){let e=Z(e=>e.reports),t=Z(e=>e.datasets),n=Z(e=>e.setOpenReport),[r,i]=(0,y.useState)(!1);if(e.length===0)return null;let a=e=>e&&t.find(t=>t.id===e)?.name||``;return(0,O.jsxs)(`div`,{className:`qzk-lib-group`,children:[(0,O.jsxs)(`button`,{className:`qzk-group-head`,onClick:()=>i(e=>!e),children:[(0,O.jsx)(`span`,{className:`qzk-group-caret`,children:r?`▸`:`▾`}),(0,O.jsx)(`span`,{className:`qzk-group-name`,children:`Reports`}),(0,O.jsx)(`span`,{className:`qzk-group-count`,children:e.length})]}),!r&&e.map(e=>(0,O.jsxs)(`button`,{className:`qzk-fig-item`,title:`open report "${e.name}"`,onClick:()=>n(e.id),children:[(0,O.jsxs)(`span`,{className:`qzk-fig-name`,children:[`▤ `,e.name]}),(0,O.jsx)(`span`,{className:`qzk-fig-meta`,children:a(e.datasetId)})]},e.id))]})}function bO(){let e=Z(e=>e.figureDocs),t=Z(e=>e.openFigureDoc),n=Z(e=>e.openFigureDocInWindow),r=Z(e=>e.duplicateFigureDoc),i=Z(e=>e.removeFigureDoc),[a,o]=(0,y.useState)(!1);return e.length===0?null:(0,O.jsxs)(`div`,{className:`qzk-lib-group`,children:[(0,O.jsxs)(`button`,{className:`qzk-group-head`,onClick:()=>o(e=>!e),children:[(0,O.jsx)(`span`,{className:`qzk-group-caret`,children:a?`▸`:`▾`}),(0,O.jsx)(`span`,{className:`qzk-group-name`,children:`Saved figures`}),(0,O.jsx)(`span`,{className:`qzk-group-count`,children:e.length})]}),!a&&e.map(e=>{let a=Ds(e),o=e.live&&e.datasetId!=null;return(0,O.jsxs)(`div`,{style:{display:`flex`,gap:4,alignItems:`stretch`},children:[(0,O.jsxs)(`button`,{className:`qzk-fig-item`,disabled:!a,title:a?`open figure "${e.name}"${e.live?``:` (frozen data)`}`:`source dataset was removed`,onClick:()=>t(e.id),children:[(0,O.jsxs)(`span`,{className:`qzk-fig-name`,children:[e.live?`◉`:`❄`,` `,e.name]}),(0,O.jsx)(`span`,{className:`qzk-fig-meta`,children:e.config.style})]}),(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:o?`open in a new graph window`:`only a live figure with a resolved dataset can open a window`,disabled:!o,onClick:()=>n(e.id),children:`⊞`}),(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:`duplicate figure`,onClick:()=>r(e.id),children:`⧉`}),(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:`delete figure`,onClick:()=>i(e.id),children:`×`})]},e.id)})]})}var xO=`terms AND'ed; bare = name/tag, or tag:… name:… format:…`;async function SO(e,t,n){let r=await Re(e,[{key:`name`,label:`Name`,type:`text`,default:t},{key:`query`,label:`Query`,type:`text`,default:n,hint:xO}]);return!r||!String(r.name).trim()?null:{name:String(r.name),query:String(r.query)}}function CO({onFilterTag:e}){let t=Z(e=>e.smartFolders),n=Z(e=>e.datasets),r=Z(e=>e.activeId),i=Z(e=>e.selectedIds),a=Z(e=>e.addSmartFolder),o=Z(e=>e.updateSmartFolder),s=Z(e=>e.removeSmartFolder),[c,l]=(0,y.useState)(new Set);if(t.length===0)return null;let u=e=>l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return(0,O.jsxs)(`div`,{className:`qzk-lib-group`,children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`stretch`},children:[(0,O.jsx)(`span`,{className:`qzk-lib-title`,style:{flex:1,padding:`4px 6px`},children:`Smart folders`}),(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:`New smart folder…`,onClick:()=>{SO(`New smart folder`,``,``).then(e=>{e&&a(e.name,e.query)})},children:`+`})]}),t.map(t=>{let a=Us(n,t),l=c.has(t.id);return(0,O.jsxs)(`div`,{children:[(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`stretch`},children:[(0,O.jsxs)(`button`,{className:`qzk-group-head`,style:{flex:1,minWidth:0},title:t.query?`query: ${t.query}`:`empty query — matches everything`,onClick:()=>u(t.id),children:[(0,O.jsx)(`span`,{className:`qzk-group-caret`,children:l?`▾`:`▸`}),(0,O.jsxs)(`span`,{className:`qzk-group-name`,children:[`☆ `,t.name]}),(0,O.jsx)(`span`,{className:`qzk-group-count`,children:a.length})]}),(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:`Edit smart folder…`,onClick:()=>{SO(`Edit smart folder`,t.name,t.query).then(e=>{e&&o(t.id,e.name,e.query)})},children:`✎`}),(0,O.jsx)(`button`,{className:`qz-btn qz-ghost qz-sm`,title:`Delete smart folder (datasets are untouched)`,onClick:()=>s(t.id),children:`×`})]}),l&&a.map(t=>(0,O.jsx)(cO,{dataset:t,active:t.id===r,selected:i.includes(t.id),showReorder:!1,canMoveUp:!1,canMoveDown:!1,onFilterTag:e,depth:1},t.id)),l&&a.length===0&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{padding:`2px 20px`},children:`no matches`})]},t.id)})]})}function wO(){let e=[],t=[];for(let n=0;n<201;n++){let r=-5e3+n/200*1e4,i=3*Math.tanh((r-800)/400)+2e-4*r;e.push(r),t.push([i])}return{time:e,values:t,labels:[`Moment`],units:[`emu`],metadata:{x_column_name:`Field`,x_column_unit:`Oe`,source:`demo`}}}var TO=0,EO=_l;function DO(){let e=Z(e=>e.datasets),t=Z(e=>e.activeId),n=Z(e=>e.selectedIds),r=Z(e=>e.addDataset),i=Z(e=>e.importFiles),a=Z(e=>e.folders),o=Z(e=>e.createFolder),s=Z(e=>e.addSmartFolder),c=tO(),[l,u]=(0,y.useState)(``),[d,f]=(0,y.useState)(!1),p=()=>vl(e=>void i(e),EO),m=()=>{let e={id:`demo-${++TO}`,name:`demo-vsm-${TO}.dat`,data:wO()};r(e)},h=e=>{e.preventDefault(),f(!1);let t=Array.from(e.dataTransfer.files);t.length&&i(t)},g=zs(l),_=e.filter(e=>Hs(e,g)),v=l.trim()===``&&a.length===0,b=new Map;if(a.length===0)for(let t of Wi(e))for(let e of t.members){let t=Ui(e);t>1&&b.set(e.id,t)}let x=(r,i=0)=>(0,O.jsx)(cO,{dataset:r,active:r.id===t,selected:n.includes(r.id),showReorder:v,canMoveUp:e.indexOf(r)>0,canMoveDown:e.indexOf(r)<e.length-1,onFilterTag:u,sheetNumber:b.get(r.id),depth:i},r.id),S=l.trim()===``&&a.length>0,C;return C=l.trim()===``&&S?c.map(e=>e.kind===`folder`?(0,O.jsx)(vO,{folder:e.folder,depth:e.depth,count:e.count,expanded:e.expanded},e.id):e.kind===`figure`?(0,O.jsx)(lO,{entry:e.entry,depth:e.depth},e.id):x(e.dataset,e.depth)):_.map(e=>x(e)),(0,O.jsxs)(`aside`,{className:`qzk-library${d?` dragover`:``}`,onDragOver:e=>{e.dataTransfer.types.includes(`Files`)&&(e.preventDefault(),d||f(!0))},onDragLeave:e=>{e.currentTarget===e.target&&f(!1)},onDrop:h,children:[(0,O.jsxs)(`div`,{className:`qzk-lib-head`,children:[(0,O.jsx)(`span`,{className:`qzk-lib-title`,children:`Library`}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:4},children:[(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`New folder`,onClick:()=>o(null,`New Folder`),children:`▦`}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Add demo dataset`,onClick:m,children:`✚`}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Import data…`,onClick:p,children:`⊞`})]})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:4},children:[(0,O.jsx)(`input`,{className:`qz-input`,style:{flex:1},placeholder:`⌕ Filter… (tag:… format:…)`,value:l,onChange:e=>u(e.target.value)}),l.trim()!==``&&(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Save this filter as a smart folder…`,onClick:()=>{Re(`Save filter as smart folder`,[{key:`name`,label:`Name`,type:`text`,default:l.trim()}]).then(e=>{e&&String(e.name).trim()&&s(String(e.name),l)})},children:`☆`})]}),!S&&(0,O.jsx)(uO,{}),(0,O.jsx)(bO,{}),(0,O.jsx)(yO,{}),(0,O.jsx)(WD,{}),(0,O.jsx)(CO,{onFilterTag:u}),C,_.length===0&&a.length===0&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{padding:8,textAlign:`center`},children:e.length===0?`Drop files here, or use ⊞ to import / ✚ for a demo`:`No matches`})]})}var OO=new Map,kO=C(e=>({menuCommands:[],setMenuCommands:(t,n)=>{OO.set(t,n),e({menuCommands:[...OO.values()].flat()})}}));function AO(e,t){let n=new Set(e.map(e=>e.label.toLowerCase())),r=t.filter(e=>!n.has(e.label.toLowerCase()));return[...e,...r]}var jO=[{label:`File`,group:`File`},{label:`Edit`,group:`Edit`},{label:`Data`,group:`Data`},{label:`Plot`,group:`Plot`},{label:`Analyze`,group:`Analyze`},{label:`Window`,group:`Window`},{label:`View`,group:`View`}],MO=_l;function NO({actions:e,onOpenPalette:t}){let[n,r]=(0,y.useState)(null),i=(0,y.useRef)(null),a=Z(e=>e.recent),o=Z(e=>e.clearRecent),s=Z(e=>e.importFiles),c=kO(e=>e.menuCommands),l=(0,y.useMemo)(()=>AO(e,c),[e,c]);(0,y.useEffect)(()=>{if(!n)return;let e=e=>{i.current&&!i.current.contains(e.target)&&r(null)},t=e=>{e.key===`Escape`&&r(null)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[n]);let u=e=>{r(null),Z.getState().setStatus(`re-select "${e}" to import it`),vl(e=>void s(e),MO)};function d(e){let t=n===e;return(0,O.jsx)(`span`,{className:`qzk-menu${t?` open`:``}`,onClick:()=>r(t?null:e),onMouseEnter:()=>n&&r(e),children:e})}let f=Date.now();return(0,O.jsxs)(`nav`,{className:`qzk-menubar`,ref:i,children:[jO.map(e=>{let t=l.filter(t=>t.group===e.group),i=e.group===`File`;return(0,O.jsxs)(`div`,{className:`qzk-menu-wrap`,children:[d(e.label),n===e.label&&(t.length>0||i&&a.length>0)&&(0,O.jsxs)(`div`,{className:`qzk-menu-pop`,children:[t.map(e=>(0,O.jsxs)(`button`,{className:`qzk-menu-item`,onClick:()=>{r(null),e.run()},children:[(0,O.jsx)(`span`,{children:e.label}),e.shortcut&&(0,O.jsx)(`span`,{className:`qz-shortcut`,children:e.shortcut})]},e.id)),i&&a.length>0&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`div`,{className:`qzk-menu-sep`}),(0,O.jsx)(`div`,{className:`qzk-menu-label`,children:`Recent`}),a.map(e=>(0,O.jsxs)(`button`,{className:`qzk-menu-item`,title:`${e.name} — re-opens the import picker`,onClick:()=>u(e.name),children:[(0,O.jsx)(`span`,{className:`qzk-menu-trunc`,children:e.name}),(0,O.jsx)(`span`,{className:`qz-shortcut`,children:Bu(e.at,f)})]},e.name)),(0,O.jsx)(`button`,{className:`qzk-menu-item`,onClick:()=>{r(null),o()},children:(0,O.jsx)(`span`,{children:`Clear recent`})})]})]})]},e.label)}),(0,O.jsxs)(`div`,{className:`qzk-menu-wrap`,children:[d(`Help`),n===`Help`&&(0,O.jsxs)(`div`,{className:`qzk-menu-pop`,children:[l.filter(e=>e.group===`Help`).map(e=>(0,O.jsxs)(`button`,{className:`qzk-menu-item`,onClick:()=>{r(null),e.run()},children:[(0,O.jsx)(`span`,{children:e.label}),e.shortcut&&(0,O.jsx)(`span`,{className:`qz-shortcut`,children:e.shortcut})]},e.id)),(0,O.jsxs)(`button`,{className:`qzk-menu-item`,onClick:()=>{r(null),t()},children:[(0,O.jsx)(`span`,{children:`Command palette`}),(0,O.jsx)(`span`,{className:`qz-shortcut`,children:`⌘K`})]}),(0,O.jsx)(`a`,{className:`qzk-menu-item`,href:`https://github.com/pquarterman17/quantized`,target:`_blank`,rel:`noreferrer`,onClick:()=>r(null),children:(0,O.jsx)(`span`,{children:`About quantized ↗`})})]})]}),(0,O.jsx)(`span`,{className:`qzk-spacer`}),(0,O.jsxs)(`span`,{className:`qzk-search`,onClick:t,"data-tip":`Command palette`,"data-tip-key":`⌘K`,children:[(0,O.jsx)(`span`,{children:`⌕`}),(0,O.jsx)(`span`,{children:`Search…`}),(0,O.jsx)(`span`,{className:`qz-shortcut`,children:`⌘K`})]})]})}var PO=C(()=>({connected:!1}));function FO(){let e=500,t=()=>{let n=location.protocol===`https:`?`wss`:`ws`,r=new WebSocket(`${n}://${location.host}/api/ws`);r.onopen=()=>{e=500,PO.setState({connected:!0})},r.onclose=()=>{PO.setState({connected:!1}),window.setTimeout(t,e),e=Math.min(e*2,8e3)},r.onerror=()=>r.close()};t()}function IO(){let e=Z(e=>e.status),t=PO(e=>e.connected),n=Z(e=>e.datasets.length),r=pd();return(0,O.jsxs)(`footer`,{className:`qzk-statusbar`,children:[(0,O.jsxs)(`span`,{className:`qzk-conn`,children:[(0,O.jsx)(Te,{tone:t?`ok`:`warn`}),e]}),(0,O.jsx)(`span`,{className:`qzk-spacer`,style:{flex:1}}),r&&(0,O.jsxs)(`span`,{style:{color:`var(--text-dim)`},title:r.name,children:[r.name,` · `,r.data.time.length,` pts · `,r.data.labels.length,` ch`]}),(0,O.jsxs)(`span`,{children:[n,` dataset`,n===1?``:`s`]})]})}var LO=[`dark`,`light`],RO=[`violet`,`teal`,`ocean`,`amber`,`rose`],zO=[`compact`,`regular`,`comfy`],BO=e=>e.map(e=>({value:e,label:e})),VO=Su.map(e=>({value:e.value,label:e.label}));function HO(){let[e,t]=(0,y.useState)(!1),n=(0,y.useRef)(null),r=Z(e=>e.theme),i=Z(e=>e.setTheme),a=Z(e=>e.accent),o=Z(e=>e.setAccent),s=Z(e=>e.density),c=Z(e=>e.setDensity),l=Z(e=>e.palette),u=Z(e=>e.setPalette),d=Z(e=>e.setPrefsOpen);return(0,y.useEffect)(()=>{if(!e)return;let r=e=>{n.current&&!n.current.contains(e.target)&&t(!1)},i=e=>{e.key===`Escape`&&t(!1)};return document.addEventListener(`mousedown`,r),document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`mousedown`,r),document.removeEventListener(`keydown`,i)}},[e]),(0,O.jsxs)(`div`,{ref:n,style:{position:`relative`},children:[(0,O.jsx)(`button`,{className:`qz-icon-btn${e?` active`:``}`,title:`Appearance (theme · accent · density · palette)`,onClick:()=>t(e=>!e),children:`⚙`}),e&&(0,O.jsxs)(`div`,{className:`qzk-glass`,style:{position:`absolute`,right:0,top:`calc(100% + 6px)`,width:184,padding:10,zIndex:50,display:`grid`,gap:6},children:[(0,O.jsx)(`label`,{className:`qzk-field-lbl`,children:`Theme`}),(0,O.jsx)(K,{options:BO(LO),value:r,onChange:e=>i(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:4},children:`Accent`}),(0,O.jsx)(K,{options:BO(RO),value:a,onChange:e=>o(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:4},children:`Density`}),(0,O.jsx)(K,{options:BO(zO),value:s,onChange:e=>c(e.target.value)}),(0,O.jsx)(`label`,{className:`qzk-field-lbl`,style:{marginTop:4},children:`Series palette`}),(0,O.jsx)(K,{options:VO,value:l,onChange:e=>u(e.target.value)}),(0,O.jsxs)(`button`,{className:`qzk-menu-item`,style:{marginTop:6},onClick:()=>{t(!1),d(!0)},children:[(0,O.jsx)(`span`,{children:`All preferences…`}),(0,O.jsx)(`span`,{className:`qz-shortcut`,children:`⌘,`})]})]})]})}function UO(){let e=pd(),t=Z(e=>e.toggleLeft),n=Z(e=>e.toggleRight),r=Z(e=>e.theme),i=Z(e=>e.setTheme),a=Z(e=>e.setCalculatorsOpen),o=e?.name??``,s=o.match(/\.[^.]+$/)?.[0]??``,c=s?o.slice(0,-s.length):o;return(0,O.jsxs)(`header`,{className:`qzk-titlebar`,children:[(0,O.jsxs)(`div`,{className:`qzk-brand`,children:[(0,O.jsx)(`span`,{className:`ic`,style:{color:`var(--accent)`},children:`⎓`}),(0,O.jsx)(`span`,{className:`nm`,children:`Quantized`})]}),(0,O.jsxs)(`div`,{className:`qzk-doc`,children:[c,s&&(0,O.jsx)(`span`,{className:`ext`,children:s})]}),(0,O.jsxs)(`div`,{className:`qzk-tbar-right`,children:[(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`DiraCulator — materials calculators`,onClick:()=>a(!0),children:`√`}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Toggle theme`,onClick:()=>i(r===`dark`?`light`:`dark`),children:r===`dark`?`☾`:`☀`}),(0,O.jsx)(HO,{}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Toggle library`,onClick:t,children:`▤`}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Toggle inspector`,onClick:n,children:`▥`})]})]})}function WO(e,t){return e?`angular`:t?`q`:null}function GO(e,t,n,r,i){return{dataset:e,direction:t,value:t===`h`?n.y:n.x,space:r,width:i}}function KO(e,t,n,r,i,a=300){return t.x===n.x&&t.y===n.y?null:{dataset:e,p0:[t.x,t.y],p1:[n.x,n.y],n:a,width:i,space:r}}function qO(e,t=`line cut`){let n=e.metadata?.cut_label;return typeof n==`string`&&n?n:t}function JO(e,t){XO(e.ctx.canvas,t)}function YO(e){let t=document.createElement(`canvas`);t.width=e.width,t.height=e.height;let n=t.getContext(`2d`);return n?(n.fillStyle=getComputedStyle(document.documentElement).getPropertyValue(`--axes-bg`).trim()||`#ffffff`,n.fillRect(0,0,t.width,t.height),n.drawImage(e,0,0),t):null}function XO(e,t){let n=YO(e);n&&n.toBlob(e=>{e&&Ue(e,t)},`image/png`)}function ZO(e){let t=YO(e.ctx.canvas);return t?new Promise(e=>t.toBlob(t=>e(t),`image/png`)):Promise.resolve(null)}function QO(e,t){let n=0;if(t===void 0)for(let t of e)t!=null&&(t=+t)>=t&&++n;else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(i=+i)>=i&&++n}return n}function $O(e,t){let n,r;if(t===void 0)for(let t of e)t!=null&&(n===void 0?t>=t&&(n=r=t):(n>t&&(n=t),r<t&&(r=t)));else{let i=-1;for(let a of e)(a=t(a,++i,e))!=null&&(n===void 0?a>=a&&(n=r=a):(n>a&&(n=a),r<a&&(r=a)))}return[n,r]}var ek=Math.sqrt(50),tk=Math.sqrt(10),nk=Math.sqrt(2);function rk(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=ek?10:a>=tk?5:a>=nk?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/l<e&&++s,c/l>t&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*l<e&&++s,c*l>t&&--c),c<s&&.5<=n&&n<2?rk(e,t,n*2):[s,c,l]}function ik(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[i,a,o]=r?rk(t,e,n):rk(e,t,n);if(!(a>=i))return[];let s=a-i+1,c=Array(s);if(r)if(o<0)for(let e=0;e<s;++e)c[e]=(a-e)/-o;else for(let e=0;e<s;++e)c[e]=(a-e)*o;else if(o<0)for(let e=0;e<s;++e)c[e]=(i+e)/-o;else for(let e=0;e<s;++e)c[e]=(i+e)*o;return c}function ak(e,t,n){return t=+t,e=+e,n=+n,rk(e,t,n)[2]}function ok(e,t,n){let r;for(;;){let i=ak(e,t,n);if(i===r||i===0||!isFinite(i))return[e,t];i>0?(e=Math.floor(e/i)*i,t=Math.ceil(t/i)*i):i<0&&(e=Math.ceil(e*i)/i,t=Math.floor(t*i)/i),r=i}}function sk(e){return Math.max(1,Math.ceil(Math.log(QO(e))/Math.LN2)+1)}var ck=Array.prototype.slice;function lk(e,t){return e-t}function uk(e){for(var t=0,n=e.length,r=e[n-1][1]*e[0][0]-e[n-1][0]*e[0][1];++t<n;)r+=e[t-1][1]*e[t][0]-e[t-1][0]*e[t][1];return r}var dk=e=>()=>e;function fk(e,t){for(var n=-1,r=t.length,i;++n<r;)if(i=pk(e,t[n]))return i;return 0}function pk(e,t){for(var n=t[0],r=t[1],i=-1,a=0,o=e.length,s=o-1;a<o;s=a++){var c=e[a],l=c[0],u=c[1],d=e[s],f=d[0],p=d[1];if(mk(c,d,t))return 0;u>r!=p>r&&n<(f-l)*(r-u)/(p-u)+l&&(i=-i)}return i}function mk(e,t,n){var r;return hk(e,t,n)&&gk(e[r=+(e[0]===t[0])],n[r],t[r])}function hk(e,t,n){return(t[0]-e[0])*(n[1]-e[1])===(n[0]-e[0])*(t[1]-e[1])}function gk(e,t,n){return e<=t&&t<=n||n<=t&&t<=e}function _k(){}var vk=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function yk(){var e=1,t=1,n=sk,r=c;function i(e){var t=n(e);if(Array.isArray(t))t=t.slice().sort(lk);else{let n=$O(e,bk);for(t=ik(...ok(n[0],n[1],t),t);t[t.length-1]>=n[1];)t.pop();for(;t[1]<n[0];)t.shift()}return t.map(t=>a(e,t))}function a(e,t){let n=t==null?NaN:+t;if(isNaN(n))throw Error(`invalid value: ${t}`);var i=[],a=[];return o(e,n,function(t){r(t,e,n),uk(t)>0?i.push([t]):a.push(t)}),a.forEach(function(e){for(var t=0,n=i.length,r;t<n;++t)if(fk((r=i[t])[0],e)!==-1){r.push(e);return}}),{type:`MultiPolygon`,value:t,coordinates:i}}function o(n,r,i){var a=[],o=[],c=l=-1,l,u,d=xk(n[0],r),f,p;for(vk[d<<1].forEach(m);++c<e-1;)u=d,d=xk(n[c+1],r),vk[u|d<<1].forEach(m);for(vk[d<<0].forEach(m);++l<t-1;){for(c=-1,d=xk(n[l*e+e],r),f=xk(n[l*e],r),vk[d<<1|f<<2].forEach(m);++c<e-1;)u=d,d=xk(n[l*e+e+c+1],r),p=f,f=xk(n[l*e+c+1],r),vk[u|d<<1|f<<2|p<<3].forEach(m);vk[d|f<<3].forEach(m)}for(c=-1,f=n[l*e]>=r,vk[f<<2].forEach(m);++c<e-1;)p=f,f=xk(n[l*e+c+1],r),vk[f<<2|p<<3].forEach(m);vk[f<<3].forEach(m);function m(e){var t=[e[0][0]+c,e[0][1]+l],n=[e[1][0]+c,e[1][1]+l],r=s(t),u=s(n),d,f;(d=o[r])?(f=a[u])?(delete o[d.end],delete a[f.start],d===f?(d.ring.push(n),i(d.ring)):a[d.start]=o[f.end]={start:d.start,end:f.end,ring:d.ring.concat(f.ring)}):(delete o[d.end],d.ring.push(n),o[d.end=u]=d):(d=a[u])?(f=o[r])?(delete a[d.start],delete o[f.end],d===f?(d.ring.push(n),i(d.ring)):a[f.start]=o[d.end]={start:f.start,end:d.end,ring:f.ring.concat(d.ring)}):(delete a[d.start],d.ring.unshift(t),a[d.start=r]=d):a[r]=o[u]={start:r,end:u,ring:[t,n]}}}function s(t){return t[0]*2+t[1]*(e+1)*4}function c(n,r,i){n.forEach(function(n){var a=n[0],o=n[1],s=a|0,c=o|0,l=Sk(r[c*e+s]);a>0&&a<e&&s===a&&(n[0]=Ck(a,Sk(r[c*e+s-1]),l,i)),o>0&&o<t&&c===o&&(n[1]=Ck(o,Sk(r[(c-1)*e+s]),l,i))})}return i.contour=a,i.size=function(n){if(!arguments.length)return[e,t];var r=Math.floor(n[0]),a=Math.floor(n[1]);if(!(r>=0&&a>=0))throw Error(`invalid size`);return e=r,t=a,i},i.thresholds=function(e){return arguments.length?(n=typeof e==`function`?e:dk(Array.isArray(e)?ck.call(e):e),i):n},i.smooth=function(e){return arguments.length?(r=e?c:_k,i):r===c},i}function bk(e){return isFinite(e)?e:NaN}function xk(e,t){return e!=null&&+e>=t}function Sk(e){return e==null||isNaN(e=+e)?-1/0:e}function Ck(e,t,n,r){let i=r-t,a=n-t,o=isFinite(i)||isFinite(a)?i/a:Math.sign(i)/Math.sign(a);return isNaN(o)?e:e+o-.5}function wk(e,t,n,r){if(Array.isArray(n)){let e=[...n].sort((e,t)=>e-t);if(e.length<2)throw Error(`levels list needs at least 2 entries`);return e}let i=Math.trunc(n);if(i<2)throw Error(`levels count must be >= 2`);if(!Number.isFinite(e)||!Number.isFinite(t)||!(t>e))throw Error(`map has no finite z-range to contour`);if(r===`log`){if(t<=0)throw Error(`log level_scale needs a positive z-range`);let n=e>0?e:t*.001;return Ek(Math.log10(n),Math.log10(t),i)}if(r!==`linear`)throw Error(`level_scale must be 'linear' or 'log'`);return Tk(e,t,i)}function Tk(e,t,n){if(n<=1)return[e];let r=Array(n);for(let i=0;i<n;i++)r[i]=e+(t-e)*i/(n-1);return r}function Ek(e,t,n){return Tk(e,t,n).map(e=>10**e)}function Dk(e,t){let n=t.length;if(n<2)return t[0]??0;let r=(t[n-1]-t[0])/(n-1);return t[0]+(e-.5)*r}function Ok(e,t,n,r){let i=e.length,a=t.length;if(i<2||a<2||r.length===0)return[];let o=Array(i*a);for(let e=0;e<a;e++)for(let t=0;t<i;t++){let r=n[e]?.[t];o[t+e*i]=r??NaN}let s=yk().size([i,a]);return r.map(n=>{let r=s.contour(o,n),i=[];for(let n of r.coordinates)for(let r of n)i.push(r.map(([n,r])=>[Dk(n,e),Dk(r,t)]));return{level:n,rings:i}})}function kk(e,t,n,r){let i=t[0],a=t[t.length-1],o=n[0],s=n[n.length-1],c=a-i||1,l=s-o||1;return e.map(([e,t])=>[r.x+(e-i)/c*r.w,r.y+r.h-(t-o)/l*r.h])}var Ak={left:58,right:78,top:14,bottom:42};function jk(e){if(!Number.isFinite(e))return`—`;let t=Math.abs(e);return t!==0&&(t<.001||t>=1e5)?e.toExponential(2):Number(e.toPrecision(4)).toString()}function Mk(e,t){return typeof getComputedStyle==`function`&&getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t}function Nk(e,t){return{x:Ak.left,y:Ak.top,w:Math.max(1,e-Ak.left-Ak.right),h:Math.max(1,t-Ak.top-Ak.bottom)}}function Pk(e,t,n,r,i){let a=Nk(t,n);if(r<a.x||r>a.x+a.w||i<a.y||i>a.y+a.h)return null;let{xAxis:o,yAxis:s,zGrid:c}=e,l=o[0],u=o[o.length-1],d=s[0],f=s[s.length-1],p=(r-a.x)/a.w,m=(i-a.y)/a.h,h=l+p*(u-l),g=f-m*(f-d),_=Math.max(0,Math.min(o.length-1,Math.round(p*(o.length-1))));return{x:h,y:g,z:c[Math.max(0,Math.min(s.length-1,Math.round((1-m)*(s.length-1))))]?.[_]??null}}function Fk(e,t,n){let r=t=>t===`2Theta`?e.centre_angle[1]:t===`Omega`?e.centre_angle[0]:t===`Qx`?e.centre_Q[0]:t===`Qz`?e.centre_Q[1]:null,i=r(t),a=r(n);return i==null||a==null||!Number.isFinite(i)||!Number.isFinite(a)?null:[i,a]}function Ik(e){let t=1/0;for(let n of e)for(let e of n)e!=null&&Number.isFinite(e)&&e>0&&e<t&&(t=e);return Number.isFinite(t)?t:null}function Lk(e,t,n,r,i){let a=e.xAxis.length,o=e.yAxis.length,s=Bl[i],c=new Uint8ClampedArray(a*o*4);for(let i=0;i<o;i++)for(let l=0;l<a;l++){let u=e.zGrid[i]?.[l],d=((o-1-i)*a+l)*4,f=u==null?null:Wl(u,t,n,r);if(f==null){c[d+3]=0;continue}let[p,m,h]=Vl(s,f);c[d]=p,c[d+1]=m,c[d+2]=h,c[d+3]=255}return{data:c,width:a,height:o}}function Rk(e,t,n,r,i,a=null,o=!0,s=null){let c=e.getContext(`2d`);if(!c)return;let l=t.clientWidth||600,u=t.clientHeight||400,d=typeof window<`u`&&window.devicePixelRatio||1;if(e.width=Math.round(l*d),e.height=Math.round(u*d),c.setTransform(d,0,0,d,0,0),c.clearRect(0,0,l,u),!n)return;let f=Mk(`--text`,`#e6e6e6`),p=Mk(`--text-dim`,`#9aa`),m=Nk(l,u),h=i?Ik(n.zGrid):n.zMin,g=n.zMax;if(h!=null&&g!=null&&g>h){let{data:e,width:t,height:a}=Lk(n,h,g,i,r),s=document.createElement(`canvas`);s.width=t,s.height=a;let l=s.getContext(`2d`);if(l){let n=l.createImageData(t,a);n.data.set(e),l.putImageData(n,0,0),c.imageSmoothingEnabled=o,c.drawImage(s,m.x,m.y,m.w,m.h)}}c.strokeStyle=p,c.lineWidth=1,c.strokeRect(m.x+.5,m.y+.5,m.w,m.h),s?.on&&zk(c,n,m,s,f),Hk(c,n,m,f,p),Uk(c,n,m,l,r,h,g,i,f,p),a&&a.length&&Bk(c,n,m,a,f)}function zk(e,t,n,r,i){if(t.zMin==null||t.zMax==null)return;let a;try{a=wk(t.zMin,t.zMax,r.levelCount,r.scale)}catch{return}let o=Ok(t.xAxis,t.yAxis,t.zGrid,a);e.save(),e.beginPath(),e.rect(n.x,n.y,n.w,n.h),e.clip(),e.strokeStyle=i,e.globalAlpha=.8,e.lineWidth=1,e.lineJoin=`round`;for(let r of o)for(let i of r.rings){if(i.length<2)continue;let r=kk(i,t.xAxis,t.yAxis,n);e.beginPath(),e.moveTo(r[0][0],r[0][1]);for(let t=1;t<r.length;t++)e.lineTo(r[t][0],r[t][1]);e.stroke()}e.restore()}function Bk(e,t,n,r,i){let a=t.xAxis[0],o=t.xAxis[t.xAxis.length-1],s=t.yAxis[0],c=t.yAxis[t.yAxis.length-1];e.font=`10px 'JetBrains Mono', monospace`;for(let l of r){let r=Fk(l,t.xLabel,t.yLabel);if(!r)continue;let[u,d]=r;if(u<a||u>o||d<s||d>c)continue;let f=n.x+(u-a)/(o-a)*n.w,p=n.y+n.h-(d-s)/(c-s)*n.h;e.lineWidth=3,e.strokeStyle=`rgba(0,0,0,0.6)`,Vk(e,f,p,6),e.lineWidth=1.5,e.strokeStyle=`#fff`,Vk(e,f,p,6),e.fillStyle=i,e.textAlign=`left`,e.textBaseline=`bottom`,e.fillText(l.classification,f+8,p-2)}}function Vk(e,t,n,r){e.beginPath(),e.moveTo(t-r,n),e.lineTo(t+r,n),e.moveTo(t,n-r),e.lineTo(t,n+r),e.stroke()}function Hk(e,t,n,r,i){let a=t.xAxis[0],o=t.xAxis[t.xAxis.length-1],s=t.yAxis[0],c=t.yAxis[t.yAxis.length-1];e.fillStyle=i,e.strokeStyle=i,e.font=`10px 'JetBrains Mono', monospace`,e.textAlign=`center`,e.textBaseline=`top`;for(let t of zg(a,o)){let r=n.x+(t-a)/(o-a)*n.w;e.beginPath(),e.moveTo(r,n.y+n.h),e.lineTo(r,n.y+n.h+4),e.stroke(),e.fillText(jk(t),r,n.y+n.h+6)}e.textAlign=`right`,e.textBaseline=`middle`;for(let t of zg(s,c)){let r=n.y+n.h-(t-s)/(c-s)*n.h;e.beginPath(),e.moveTo(n.x-4,r),e.lineTo(n.x,r),e.stroke(),e.fillText(jk(t),n.x-7,r)}e.fillStyle=r,e.font=`11px 'JetBrains Mono', monospace`,e.textAlign=`center`,e.textBaseline=`bottom`;let l=t.xUnit?`${t.xLabel} (${t.xUnit})`:t.xLabel;e.fillText(l,n.x+n.w/2,n.y+n.h+38),e.save(),e.translate(12,n.y+n.h/2),e.rotate(-Math.PI/2),e.textBaseline=`top`;let u=t.yUnit?`${t.yLabel} (${t.yUnit})`:t.yLabel;e.fillText(u,0,0),e.restore()}function Uk(e,t,n,r,i,a,o,s,c,l){let u=r-Ak.right+16,d=e.createLinearGradient(0,n.y+n.h,0,n.y);for(let e=0;e<=8;e++)d.addColorStop(e/8,Ul(i,e/8));e.fillStyle=d,e.fillRect(u,n.y,14,n.h),e.strokeStyle=l,e.strokeRect(u+.5,n.y+.5,14,n.h),e.fillStyle=l,e.font=`10px 'JetBrains Mono', monospace`,e.textAlign=`left`,e.textBaseline=`middle`,o!=null&&e.fillText(jk(o),u+14+4,n.y),a!=null&&e.fillText(jk(a),u+14+4,n.y+n.h),e.fillStyle=c,e.save(),e.translate(u+14+30,n.y+n.h/2),e.rotate(Math.PI/2),e.font=`11px 'JetBrains Mono', monospace`,e.textAlign=`center`,e.textBaseline=`bottom`;let f=t.zUnit?`${t.zLabel} (${t.zUnit})`:t.zLabel;e.fillText(s?`${f} — log`:f,0,0),e.restore()}var Wk=0;function Gk(e,t){let n=Z(e=>e.addDataset),r=Z(e=>e.setStatus),[i,a]=(0,y.useState)(`off`),[o,s]=(0,y.useState)(0),[c,l]=(0,y.useState)(!1);async function u(e){if(!c){l(!0);try{let t=await e,i=qO(t);n({id:`cut-${++Wk}`,name:i,data:t}),r(`cut added: ${i}`)}catch(e){r(e instanceof Error?`cut failed: ${e.message}`:`cut failed`)}finally{l(!1)}}}return{mode:i,setMode:a,width:o,setWidth:s,busy:c,runLine:(n,r)=>{!e||t==null||u(xr(GO(e.data,n,r,t,o)))},runSegment:(n,r)=>{if(!e||t==null)return;let i=KO(e.data,n,r,t,o);i&&u(Sr(i))},runProjection:n=>{!e||t==null||u(Cr({dataset:e.data,axis:n,space:t}))}}}function Kk({dataset:e}){let t=pd(),n=e===void 0?t:e,r=Z(e=>e.theme),i=Z(e=>e.accent),a=Z(e=>e.rsmPeaks),o=(0,y.useRef)(null),s=(0,y.useRef)(null),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(`viridis`),[f,p]=(0,y.useState)(!1),m=Z(e=>e.mapMethod),h=Z(e=>e.mapRes),g=Z(e=>e.antialias),_=Z(e=>e.contourOn),v=Z(e=>e.contourLevelCount),b=Z(e=>e.contourScale),x=Z(e=>e.setContourOn),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)([0,1,2]),E=n?.data.labels??[],D=E.length>=3,k=String(n?.data.metadata?.axis1_name??`Omega`),A=Yc(E,k,`angular`),j=Yc(E,k,`q`),M=Jc(E)&&A!=null&&j!=null,N=e=>e!=null&&e[0]===w[0]&&e[1]===w[1]&&e[2]===w[2],P=n?.data.metadata?.is2D===!0?WO(N(A),M&&N(j)):null,F=Array.isArray(n?.data.metadata?.map_shape),I=Gk(n,P),[L,R]=(0,y.useState)(null);(0,y.useEffect)(()=>{T([0,1,Math.min(2,Math.max(0,E.length-1))])},[n?.id]),(0,y.useEffect)(()=>{let e=!1;if(!n||!D){l(null);return}return Xc(n.data,w[0],w[1],w[2],{method:m,nx:h,ny:h}).then(t=>{e||l(t)}),()=>{e=!0}},[n,D,w,m,h]),(0,y.useEffect)(()=>{let e=o.current,t=s.current;if(!e||!t)return;let r=a&&a.datasetId===n?.id?a.peaks:null,i={on:_,levelCount:v,scale:b},l=()=>Rk(t,e,c,u,f,r,g,i);l();let d=new ResizeObserver(l);return d.observe(e),()=>d.disconnect()},[c,u,f,r,i,a,n,g,_,v,b]);function z(e){let t=s.current,n=o.current;if(!c||!t||!n)return{r:null,px:[0,0]};let r=t.getBoundingClientRect(),i=[e.clientX-r.left,e.clientY-r.top];return{r:Pk(c,n.clientWidth,n.clientHeight,i[0],i[1]),px:i}}function B(e){let{r:t,px:n}=z(e);C(t),L&&R({a:L.a,b:n})}function V(e){if(I.mode!==`h`&&I.mode!==`v`)return;let{r:t}=z(e);t&&I.runLine(I.mode,{x:t.x,y:t.y})}function H(e){if(I.mode!==`seg`)return;let{r:t,px:n}=z(e);t&&R({a:n,b:n})}function U(e){if(I.mode!==`seg`||!L)return;let t=s.current,n=o.current;if(R(null),!c||!t||!n)return;let r=Pk(c,n.clientWidth,n.clientHeight,L.a[0],L.a[1]),{r:i}=z(e);r&&i&&I.runSegment({x:r.x,y:r.y},{x:i.x,y:i.y})}function ee(){let e=s.current;e&&XO(e,`${n?.name.replace(/\.[^.]+$/,``)??`map`}_map.png`)}return(0,O.jsxs)(`div`,{className:`qzk-stage`,children:[(0,O.jsxs)(`div`,{ref:o,style:{position:`absolute`,inset:8},children:[(0,O.jsx)(`canvas`,{ref:s,style:{width:`100%`,height:`100%`,display:`block`,cursor:I.mode===`off`?`default`:`crosshair`},onMouseMove:B,onMouseLeave:()=>{C(null),R(null)},onClick:V,onMouseDown:H,onMouseUp:U}),L&&(0,O.jsx)(`svg`,{style:{position:`absolute`,inset:0,pointerEvents:`none`},width:`100%`,height:`100%`,children:(0,O.jsx)(`line`,{x1:L.a[0],y1:L.a[1],x2:L.b[0],y2:L.b[1],stroke:`var(--accent)`,strokeWidth:1.5,strokeDasharray:`5 4`})})]}),n&&D&&(0,O.jsxs)(`div`,{className:`qzk-glass qzk-float-tools`,style:{gap:8,padding:`6px 8px`},children:[M&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`button`,{className:`qzk-tool-btn${N(A)?` active`:``}`,title:`Angular axes (2θ / ω)`,onClick:()=>A&&T(A),children:`2θ/ω`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn${N(j)?` active`:``}`,title:`Reciprocal-space axes (Qx / Qz)`,onClick:()=>j&&T(j),children:`Q`}),(0,O.jsx)(`span`,{className:`qzk-tool-sep`})]}),[`X`,`Y`,`Z`].map((e,t)=>(0,O.jsx)(qk,{label:e,value:w[t],options:E.map((e,t)=>({v:t,text:e})),onChange:e=>T(n=>{let r=[...n];return r[t]=Number(e),r})},e)),(0,O.jsx)(`span`,{className:`qzk-tool-sep`}),(0,O.jsx)(qk,{label:`map`,value:u,options:Object.keys(Bl).map(e=>({v:e,text:e})),onChange:e=>d(e)}),(0,O.jsx)(`button`,{className:`qzk-tool-btn${f?` active`:``}`,title:`Log intensity scale (for high-dynamic-range data like RSM)`,onClick:()=>p(e=>!e),children:`log`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn${_?` active`:``}`,title:`Contour lines (level count + lin/log spacing live in the Inspector's 2-D map card)`,onClick:()=>x(!_),children:`∿`}),P!=null&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{className:`qzk-tool-sep`}),F&&(0,O.jsx)(`button`,{className:`qzk-tool-btn${I.mode===`h`?` active`:``}`,title:`H-cut: click the map → intensity vs the horizontal axis at that height (width averages a swath)`,onClick:()=>I.setMode(I.mode===`h`?`off`:`h`),children:`─`}),F&&(0,O.jsx)(`button`,{className:`qzk-tool-btn${I.mode===`v`?` active`:``}`,title:`V-cut: click the map → intensity vs the vertical axis at that position`,onClick:()=>I.setMode(I.mode===`v`?`off`:`v`),children:`│`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn${I.mode===`seg`?` active`:``}`,title:`Segment cut: drag any line across the map → distance-parametrized linescan`,onClick:()=>I.setMode(I.mode===`seg`?`off`:`seg`),children:`∕`}),F&&(0,O.jsx)(`button`,{className:`qzk-tool-btn`,title:`Project the whole map onto the horizontal axis (Σ over frames)`,onClick:()=>I.runProjection(`pixels`),children:`Σx`}),F&&(0,O.jsx)(`button`,{className:`qzk-tool-btn`,title:`Project the whole map onto the vertical axis (Σ over pixels — rocking-curve profile)`,onClick:()=>I.runProjection(`frames`),children:`Σy`}),I.mode!==`off`&&(0,O.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:4,fontSize:11},title:`Cut width: average all lines within ±width/2 (0 = single line)`,children:[`w`,(0,O.jsx)(`input`,{type:`number`,min:0,step:`any`,value:I.width,onChange:e=>I.setWidth(Math.max(0,Number(e.target.value)||0)),style:{width:52}})]})]}),(0,O.jsx)(`span`,{className:`qzk-tool-sep`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn`,title:`Save map as PNG`,onClick:ee,children:`⤓`})]}),!n&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{position:`absolute`,inset:0,display:`grid`,placeItems:`center`},children:`Select a dataset to map`}),n&&!D&&(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{position:`absolute`,inset:0,display:`grid`,placeItems:`center`,textAlign:`center`,padding:24},children:[`A 2-D map needs at least 3 channels (x, y, z).`,(0,O.jsx)(`br`,{}),`This dataset has `,E.length,`.`]}),S&&(0,O.jsxs)(`div`,{className:`qzk-glass qzk-readout`,children:[jk(S.x),`, `,jk(S.y),` : `,S.z==null?`—`:jk(S.z)]})]})}function qk({label:e,value:t,options:n,onChange:r,title:i}){return(0,O.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:4,fontSize:11},title:i,children:[e,(0,O.jsx)(`select`,{value:t,onChange:e=>r(e.target.value),children:n.map(e=>(0,O.jsx)(`option`,{value:e.v,children:e.text},String(e.v)))})]})}function Jk(e,t,n,r){let i=r.itemSize>0?r.itemSize:1,a=n*i;if(n<=0)return{start:0,end:0,offset:0,totalSize:0};if(t<=0)return{start:0,end:Math.min(n,Math.max(0,r.fallbackCount??n)),offset:0,totalSize:a};let o=Math.max(0,Math.floor(r.overscan??0)),s=Math.ceil(t/i),c=Math.floor(Math.max(0,e)/i)-o,l=Math.min(Math.max(0,c),Math.max(0,n-1));return{start:l,end:Math.min(n,l+s+o*2+1),offset:l*i,totalSize:a}}function Yk(e){let t=[];for(let n=e.start;n<e.end;n++)t.push(n);return t}function Xk(e,t){let n=Array(Math.max(0,e)+1);n[0]=0;for(let r=0;r<e;r++){let e=t(r);n[r+1]=n[r]+(e>0?e:1)}return n}function Zk(e,t){let n=e.length-1;if(n<=0||t<=0)return 0;let r=0,i=n-1;for(;r<i;){let n=r+i+1>>1;e[n]<=t?r=n:i=n-1}return r}function Qk(e,t,n,r){let i=n.length-1,a=i>0?n[i]:0;if(i<=0)return{start:0,end:0,offset:0,totalSize:0};if(t<=0)return{start:0,end:Math.min(i,Math.max(0,r.fallbackCount??i)),offset:0,totalSize:a};let o=Math.max(0,Math.floor(r.overscan??0)),s=Math.max(0,e),c=Zk(n,s),l=Zk(n,s+t),u=Math.max(0,c-o);return{start:u,end:Math.min(i,l+o+1),offset:n[u],totalSize:a}}function $k(e){return Number.isFinite(e)?Math.min(640,Math.max(56,Math.round(e))):120}var eA=7.5,tA=26;function nA(e){let t=0;for(let n of e)n.length>t&&(t=n.length);return t===0?120:$k(t*eA+tA)}function rA(e,t,n,r){return t?`ƒx`:n||(r?.designation?Xr[r.designation]:pi(e))}function iA(e,t,n,r){let i=t?`${pi(e)} — computed column`:n?`${pi(e)} — ${n} column`:pi(e);return r?.comment?`${i}\n${r.comment}`:i}function aA({data:e,xName:t,xUnit:n,channelRoles:r,baseCount:i,visibleCols:a,leadingSpacer:o,trailingSpacer:s,colWidth:c,widthOf:l,gutterWidth:u,sortMark:d,selectedCols:f,onHeaderClick:p,onResizeStart:m,onAutofitCol:h,onRemoveFormula:g,onHeaderContext:_,textCols:v}){let y=Yr(e),b=e=>e?{background:`var(--accent-soft)`,borderBottomColor:`var(--accent)`,borderBottomWidth:2}:{},x=n=>(0,O.jsx)(`span`,{className:`qzk-col-resize`,role:`separator`,"aria-label":`resize column ${n<0?t:e.labels[n]??String(n)}`,title:`drag to resize · double-click to autofit`,onPointerDown:e=>m(n,e),onDoubleClick:e=>{e.stopPropagation(),h(n)},onClick:e=>e.stopPropagation()});return(0,O.jsxs)(`div`,{className:`qzk-grid-row qzk-grid-header`,role:`row`,style:{position:`sticky`,top:0,zIndex:3},children:[(0,O.jsx)(`div`,{role:`columnheader`,className:`qzk-grid-headcell qzk-grid-rownum`,style:{position:`sticky`,left:0,zIndex:4,width:u,flexShrink:0},children:`#`}),(0,O.jsxs)(`div`,{role:`columnheader`,className:`qzk-grid-headcell`,style:{position:`sticky`,left:u,zIndex:4,width:l(-1),flexShrink:0,...b(f.has(-1))},onClick:e=>p(-1,e),onContextMenu:_?e=>_(-1,e):void 0,children:[t,(0,O.jsxs)(`span`,{className:`role`,children:[`X`,n?` · ${n}`:``,d(-1)]}),x(-1)]}),o>0&&(0,O.jsx)(`div`,{style:{width:o,flexShrink:0},"aria-hidden":`true`}),a.map(t=>{let n=t>=i,a=y[t],o=!!r[t]||a?.designation===`Label`||a?.designation===`Disregard`;return(0,O.jsxs)(`div`,{role:`columnheader`,className:`qzk-grid-headcell`,style:{position:`relative`,width:l(t),flexShrink:0,opacity:o?.55:1,...b(f.has(t))},onClick:e=>p(t,e),onContextMenu:_?e=>_(t,e):void 0,title:iA(t,n,r[t],a),children:[e.labels[t],n&&(0,O.jsx)(`button`,{className:`qzk-col-x`,title:`remove computed column`,"aria-label":`remove computed column`,onClick:e=>{e.stopPropagation(),g(t-i)},children:`×`}),(0,O.jsxs)(`span`,{className:`role`,children:[rA(t,n,r[t],a),e.units[t]?` · ${e.units[t]}`:``,d(t)]}),a?.comment&&(0,O.jsx)(`span`,{className:`comment`,title:a.comment,children:a.comment}),x(t)]},e.labels[t])}),s>0&&(0,O.jsx)(`div`,{style:{width:s,flexShrink:0},"aria-hidden":`true`}),v.map(e=>(0,O.jsxs)(`div`,{role:`columnheader`,className:`qzk-grid-headcell`,style:{width:c,flexShrink:0},title:`${e.shortName} — read-only text column (Origin)`,children:[e.shortName,(0,O.jsx)(`span`,{className:`role`,children:`text`})]},`text-${e.shortName}`))]})}function oA(e){return e==null||!Number.isFinite(e)?`—`:Math.abs(e)>=1e4||Math.abs(e)<.001&&e!==0?e.toExponential(3):e.toFixed(4)}function sA({r:e,time:t,values:n,visibleCols:r,leadingSpacer:i,trailingSpacer:a,colWidth:o,widthOf:s,gutterWidth:c,rowHeight:l,baseCount:u,isMasked:d,isFilteredOut:f,isSelected:p,selectedCols:m,onRowNumClick:h,onRowContext:g,cellEdit:_,textCols:v}){let y=d?`excluded row`:f?`dropped by data filter`:`click to select · shift-click a range · right-click to mask`,b=(t,n,r)=>{let i=t>=u,a=!i&&_.isEditing(e,t),o=m.has(t);return(0,O.jsx)(`div`,{role:`gridcell`,className:`qzk-grid-cell`,style:{width:s(t),flexShrink:0,color:i?`var(--text-dim)`:void 0,...o?{background:`var(--accent-soft)`}:{},...r==null?{}:{position:`sticky`,left:r,zIndex:2,background:o?`var(--accent-soft)`:`var(--surface-0)`}},onDoubleClick:i?void 0:()=>_.startEdit(e,t,n),title:i?`computed column — edit the formula`:`double-click to edit`,children:a?(0,O.jsx)(`input`,{className:`qz-input qzk-cell-edit`,autoFocus:!0,value:_.draft,onChange:e=>_.setDraft(e.target.value),onBlur:_.commit,onKeyDown:e=>{e.key===`Enter`&&_.commit(),e.key===`Escape`&&_.cancel()}}):oA(n)},t)};return(0,O.jsxs)(`div`,{role:`row`,className:`qzk-grid-row`,onContextMenu:g?t=>g(e,t):void 0,style:{height:l,...d?{opacity:.4,textDecoration:`line-through`}:{},...f?{opacity:.5,fontStyle:`italic`}:{},...p?{background:`var(--accent-soft)`}:{}},children:[(0,O.jsx)(`div`,{role:`rowheader`,className:`qzk-grid-cell qzk-grid-rownum`,style:{position:`sticky`,left:0,zIndex:2,width:c,flexShrink:0,...p?{color:`var(--accent)`,fontWeight:600}:{}},title:y,onClick:t=>h(e,t),children:e+1}),b(-1,t[e],c),i>0&&(0,O.jsx)(`div`,{style:{width:i,flexShrink:0},"aria-hidden":`true`}),r.map(t=>b(t,n[e]?.[t])),a>0&&(0,O.jsx)(`div`,{style:{width:a,flexShrink:0},"aria-hidden":`true`}),v.map(t=>(0,O.jsx)(`div`,{role:`gridcell`,className:`qzk-grid-cell`,style:{width:o,flexShrink:0,textAlign:`left`,color:`var(--text-dim)`},title:`read-only text column`,children:t.rows[e]??``},`text-${t.shortName}`))]})}var cA=[[`Mean`,`mean`],[`Std`,`std`],[`Min`,`min`],[`Max`,`max`],[`Median`,`median`],[`N`,`N`]];function lA({channelRoles:e,colStats:t,statsErr:n,visibleCols:r,leadingSpacer:i,trailingSpacer:a,colWidth:o,widthOf:s,gutterWidth:c,rowHeight:l,textCols:u}){return n?(0,O.jsx)(`div`,{className:`qzk-grid-footer`,style:{position:`sticky`,bottom:0,zIndex:3},children:(0,O.jsxs)(`div`,{role:`row`,className:`qzk-grid-row`,style:{height:l},children:[(0,O.jsx)(`div`,{role:`rowheader`,className:`qzk-grid-cell qzk-grid-headcell qzk-grid-rownum`,style:{position:`sticky`,left:0,width:c,flexShrink:0}}),(0,O.jsx)(`div`,{role:`gridcell`,className:`qzk-grid-cell qzk-ds-meta`,style:{flex:1,textAlign:`left`},children:`statistics unavailable offline`})]})}):(0,O.jsx)(`div`,{className:`qzk-grid-footer`,style:{position:`sticky`,bottom:0,zIndex:3},children:cA.map(([n,d])=>(0,O.jsxs)(`div`,{role:`row`,className:`qzk-grid-row`,style:{height:l},children:[(0,O.jsx)(`div`,{role:`rowheader`,className:`qzk-grid-cell qzk-grid-headcell qzk-grid-rownum`,title:`column statistic`,style:{position:`sticky`,left:0,zIndex:3,width:c,flexShrink:0},children:n}),(0,O.jsx)(`div`,{role:`gridcell`,className:`qzk-grid-cell`,style:{position:`sticky`,left:c,zIndex:3,background:`var(--surface-2)`,width:s(-1),flexShrink:0},children:t?Y(t[0]?.[d]):`…`}),i>0&&(0,O.jsx)(`div`,{style:{width:i,flexShrink:0},"aria-hidden":`true`}),r.map(n=>(0,O.jsx)(`div`,{role:`gridcell`,className:`qzk-grid-cell`,style:{width:s(n),flexShrink:0},children:e[n]===`ignore`?`—`:t?Y(t[n+1]?.[d]):`…`},n)),a>0&&(0,O.jsx)(`div`,{style:{width:a,flexShrink:0},"aria-hidden":`true`}),u.map(e=>(0,O.jsx)(`div`,{role:`gridcell`,className:`qzk-grid-cell`,style:{width:o,flexShrink:0},children:`—`},`text-${e.shortName}`))]},d))})}function uA(e){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(``);return{target:t,draft:r,setDraft:i,isEditing:(e,n)=>t!=null&&t.row===e&&t.col===n,startEdit:(e,t,r)=>{n({row:e,col:t}),i(r!=null&&Number.isFinite(r)?String(r):``)},commit:()=>{if(!t)return;let i=r.trim()===``?NaN:Number(r);e(t.row,t.col,i),n(null)},cancel:()=>n(null)}}function dA(e,t){let n=(0,y.useRef)(null);return(0,y.useEffect)(()=>()=>n.current?.(),[]),{startResize:(r,i)=>{i.preventDefault(),i.stopPropagation(),n.current?.();let a=i.clientX,o=e(r),s=e=>{t(r,$k(o+(e.clientX-a)))},c=()=>n.current?.();n.current=()=>{window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),window.removeEventListener(`blur`,c),n.current=null},window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c),window.addEventListener(`pointercancel`,c),window.addEventListener(`blur`,c)}}}function fA(e){let t=getComputedStyle(e).getPropertyValue(`--row-h`),n=parseFloat(t);return Number.isFinite(n)&&n>0?n:24}function pA({data:e,xName:t,xUnit:n,order:r,masked:i,filteredOut:a,selected:o,channelRoles:s,sortMark:c,selectedCols:l,onToggleColSelect:u,onSelectColRange:d,onToggleSelect:f,onSelectRange:p,onEditCell:m,baseCount:h,onRemoveFormula:g,showStats:_,colStats:v,statsErr:b,onHeaderContext:x,onRowContext:S,textCols:C,colWidths:w={},onResizeCol:T=()=>{},onAutofitCol:E=()=>{}}){let D=(0,y.useRef)(null),[k,A]=(0,y.useState)({top:0,left:0}),[j,M]=(0,y.useState)({width:0,height:0,rowHeight:24}),[N,P]=(0,y.useState)(null),[F,I]=(0,y.useState)(null),L=uA(m);(0,y.useLayoutEffect)(()=>{let e=D.current;if(!e)return;let t=()=>M({width:e.clientWidth,height:e.clientHeight,rowHeight:fA(e)});return t(),window.addEventListener(`resize`,t),()=>window.removeEventListener(`resize`,t)},[]);let R=()=>{let e=D.current;e&&A({top:e.scrollTop,left:e.scrollLeft})},z=e.labels.length,B=e=>w[e]??120,V=dA(B,T),H=(0,y.useMemo)(()=>Object.keys(w).some(e=>Number(e)>=0),[w]),U=(0,y.useMemo)(()=>H?Xk(z,e=>w[e]??120):null,[H,z,w]),ee=Jk(k.top,j.height,r.length,{itemSize:j.rowHeight,overscan:6,fallbackCount:300}),W=Math.max(0,j.width-44-B(-1)),te=U?Qk(k.left,W,U,{overscan:2,fallbackCount:60}):Jk(k.left,W,z,{itemSize:120,overscan:2,fallbackCount:60}),ne=r.slice(ee.start,ee.end),re=Yk(te),ie=ee.offset,ae=(r.length-ee.end)*j.rowHeight,oe=te.offset,se=U?te.totalSize-U[te.end]:(z-te.end)*120,ce=(e,t)=>{if(t.shiftKey&&N!=null){let t=r.indexOf(N),n=r.indexOf(e);if(t>=0&&n>=0){let[e,i]=t<=n?[t,n]:[n,t];p(r.slice(e,i+1));return}}f(e),P(e)};return(0,O.jsxs)(`div`,{className:`qzk-grid`,ref:D,onScroll:R,role:`grid`,children:[(0,O.jsx)(aA,{data:e,xName:t,xUnit:n,channelRoles:s,baseCount:h,visibleCols:re,leadingSpacer:oe,trailingSpacer:se,colWidth:120,widthOf:B,gutterWidth:44,sortMark:c,selectedCols:l,onHeaderClick:(e,t)=>{if(t.shiftKey&&F!=null){let[t,n]=F<=e?[F,e]:[e,F],r=[];for(let e=t;e<=n;e++)r.push(e);d(r);return}if(t.ctrlKey||t.metaKey){u(e),I(e);return}d([e]),I(e)},onResizeStart:V.startResize,onAutofitCol:E,onRemoveFormula:g,onHeaderContext:x,textCols:C}),ie>0&&(0,O.jsx)(`div`,{style:{height:ie},"aria-hidden":`true`}),ne.map(t=>(0,O.jsx)(sA,{r:t,time:e.time,values:e.values,visibleCols:re,leadingSpacer:oe,trailingSpacer:se,colWidth:120,widthOf:B,gutterWidth:44,rowHeight:j.rowHeight,baseCount:h,isMasked:i.has(t),isFilteredOut:!i.has(t)&&a.has(t),isSelected:o.has(t),selectedCols:l,onRowNumClick:ce,onRowContext:S,cellEdit:L,textCols:C},t)),ae>0&&(0,O.jsx)(`div`,{style:{height:ae},"aria-hidden":`true`}),_&&(0,O.jsx)(lA,{channelRoles:s,colStats:v,statsErr:b,visibleCols:re,leadingSpacer:oe,trailingSpacer:se,colWidth:120,widthOf:B,gutterWidth:44,rowHeight:j.rowHeight,textCols:C})]})}function mA(e,t){let n=e.find(e=>e.id===t)?.data.metadata?.origin_book;if(!(typeof n!=`string`||!n))return n.split(`@`)[0]||n}function hA({datasetId:e}){let t=Z(e=>e.datasets),n=Z(e=>e.activateFromLibrary),r=Vi(t).find(t=>t.members.some(t=>t.id===e)),i=r?Ki(r.members):[],a=r?mA(r.members,e):void 0,o=Wi(t).find(t=>t.members.some(t=>t.id===e));return i.length<=1&&!o?null:(0,O.jsxs)(`div`,{className:`qzk-sheet-tabs`,role:`tablist`,"aria-label":`Origin worksheet sheets`,children:[i.length>1&&(0,O.jsx)(`select`,{className:`qz-select qzk-book-switcher`,"aria-label":`switch book`,value:a??``,onChange:e=>{let t=i.find(t=>t.book===e.target.value);t&&n(t.representative.id)},title:`Jump to another book in this Origin project`,children:i.map(e=>(0,O.jsx)(`option`,{value:e.book,children:Gi(e.representative)},e.book))}),o?.members.map(t=>{let r=Ui(t),i=t.data.metadata,a=String(i?.origin_book_long??``),o=t.id===e;return(0,O.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":o,className:`qzk-sheet-tab${o?` active`:``}`,title:a||t.name,onClick:()=>n(t.id),children:[(0,O.jsx)(`span`,{className:`qzk-sheet-tab-num`,children:r}),(0,O.jsx)(`span`,{className:`qzk-sheet-tab-name`,children:a||`sheet ${r}`})]},t.id)})]})}function gA(e,t,n,r){if(t.size===0)return{actions:[],summary:`no columns selected`};let i=Yr(e),a=[...t].filter(e=>e>=0).sort((e,t)=>e-t),o,s=a.find(e=>i[e]?.designation===`X`);s===void 0?t.has(-1)&&(o=null):o=s,o===n.xKey&&(o=void 0);let c=o===void 0?n.xKey:o,l=[],u=[],d=null;for(let e of a){if(e===c)continue;let t=i[e]?.designation;if(!(t===`Label`||t===`Disregard`||t===`X-error`||t===`X`)){if(t===`Y-error`){d!==null&&u.push({kind:`setErrKey`,channel:d,errChannel:e});continue}l.push(e),d=e}}let f=[];if(o!==void 0&&f.push({kind:`setXKey`,xKey:o}),l.length>0){let t=r===`add`?n.yKeys??xa(e,c):[],i=r===`replace`?l:[...new Set([...t,...l])].sort((e,t)=>e-t);f.push({kind:`setYKeys`,yKeys:i})}f.push(...u);let p=r===`replace`?`Plot selection`:`Add to plot`;return{actions:f,summary:l.length===0?`nothing plottable in the selection`:`${p}: ${l.length} channel${l.length===1?``:`s`}${o===void 0?``:`, X updated`}`}}function _A(e,t,n){let r=Yr(e),i=[...new Set(n)],a=i.some(e=>e<0),o=i.filter(e=>e>=0).filter(e=>{let t=r[e]?.designation;return t!==`Label`&&t!==`Disregard`&&t!==`X-error`&&t!==`Y-error`}).sort((e,t)=>e-t);if(o.length===0)return null;let s=o.find(e=>r[e]?.designation===`X`),c=null,l;return s===void 0?!a&&o.length>=2?(c=o[0],l=o.slice(1)):l=o:(c=s,l=o.filter(e=>r[e]?.designation!==`X`)),l.length===0?null:{version:1,zones:{x:c===null?null:{datasetId:t,channel:c},y:l.map(e=>({datasetId:t,channel:e})),group:null,facet:null},mark:`scatter`}}function vA(e,t,n,r){if(e==null||!Number.isFinite(e))return!1;switch(t){case`>`:return e>n;case`>=`:return e>=n;case`<`:return e<n;case`<=`:return e<=n;case`==`:return e===n;case`!=`:return e!==n;case`between`:return e>=n&&e<=r;default:return!0}}var yA=0;function bA(e){let t=Z(e=>e.addDataset),n=Z(e=>e.setStatus),r=Z(e=>e.setCellValue),i=Z(e=>e.addFormula),a=Z(e=>e.removeFormula),o=Z(e=>e.xKey),s=Z(e=>e.setXKey),c=Z(e=>e.yKeys),l=Z(e=>e.setYKeys),u=Z(e=>e.setErrKey),d=Z(e=>e.toggleRowExcluded),f=Z(e=>e.clearRowExclusions),p=Z(e=>e.selection),m=Z(e=>e.toggleRowSelected),h=Z(e=>e.setRowSelection),g=Z(e=>e.clearRowSelection),_=Z(e=>e.excludeSelectedRows),v=Z(e=>e.keepOnlySelectedRows),[b,x]=(0,y.useState)(null),[S,C]=(0,y.useState)(``),[w,T]=(0,y.useState)(``),[E,D]=(0,y.useState)(null),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(``),[I,L]=(0,y.useState)(`>`),[R,z]=(0,y.useState)(``),[B,V]=(0,y.useState)(``),[H,U]=(0,y.useState)(new Set),[ee,W]=(0,y.useState)({});(0,y.useEffect)(()=>{U(new Set),W({})},[e.id]),(0,y.useEffect)(()=>{if(H.size===0)return;let e=e=>{e.key===`Escape`&&U(new Set)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[H.size]);let te=e=>U(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n}),ne=e=>U(new Set(e)),re=()=>U(new Set);function ie(t,r){let i=Z.getState();i.activeId!==e.id&&i.setActive(e.id);let a=Z.getState(),o=Qc(e);a.stageTab!==o&&Z.setState({stageTab:o});let c=Z.getState(),d=gA(e.data,new Set(t),{xKey:c.xKey,yKeys:c.yKeys},r);for(let e of d.actions)e.kind===`setXKey`?s(e.xKey):e.kind===`setYKeys`?l(e.yKeys):u(e.channel,e.errChannel);n(d.summary)}let ae=()=>ie([...H],`replace`),oe=()=>ie([...H],`add`),se=(0,y.useMemo)(()=>qa(e),[e]),ce=(0,y.useMemo)(()=>Qa(e),[e]),le=(0,y.useMemo)(()=>new Set(p&&p.datasetId===e.id?p.rows:[]),[p,e.id]),ue=(0,y.useMemo)(()=>Zr(e.data),[e.data]),de=(0,y.useMemo)(()=>ue.reduce((e,t)=>Math.max(e,t.rows.length),0),[ue]),fe=(0,y.useMemo)(()=>{let t=Math.max(e.data.time.length,de),n=Array.from({length:t},(e,t)=>t);if(P===``)return n;let r=Number(P),i=e=>e.trim()===``?NaN:Number(e),a=i(R),o=i(B);if(Number.isNaN(a)||I===`between`&&Number.isNaN(o))return n;let{time:s,values:c}=e.data,l=e=>r<0?s[e]:c[e]?.[r];return n.filter(e=>vA(l(e),I,a,o))},[e,P,I,R,B,de]),pe=(0,y.useMemo)(()=>{if(!b)return fe;let t=t=>b.col<0?e.data.time[t]:e.data.values[t]?.[b.col];return[...fe].sort((e,n)=>{let r=t(e),i=t(n);return Number.isFinite(r)?Number.isFinite(i)?(r-i)*b.dir:-1:1})},[e,fe,b]),me=(0,y.useMemo)(()=>fe.filter(e=>!se.has(e)),[fe,se]);(0,y.useEffect)(()=>{if(!O){j(null),N(!1);return}let t=!1;j(null),N(!1);let{time:n,values:r,labels:i}=e.data,a=[me.map(e=>n[e]),...i.map((e,t)=>me.map(e=>r[e]?.[t]))];return Promise.all(a.map(e=>Tt(e))).then(e=>{t||j(e)}).catch(()=>{t||N(!0)}),()=>{t=!0}},[e,O,me]);let{time:he,values:ge,labels:_e,units:ve,metadata:ye}=e.data,be=_e.length-(e.formulas?.length??0),G=String(ye?.x_column_name??`x`),xe=String(ye?.x_column_unit??``),Se=fe.length!==Math.max(he.length,de),Ce=me.length>0&&me.length!==Math.max(he.length,de),we=t=>d(e.id,t),Te=()=>f(e.id);function Ee(t){return e.pending?(Z.getState().ensureBookData(e.id),n(`still loading full data — try ${t} again in a moment`),!0):!1}function K(){if(!Ce||Ee(`Extract`))return;let r={time:me.map(e=>he[e]),values:me.map(e=>ge[e]),labels:_e,units:ve,metadata:ye},i=e.name.replace(/\.[^.]+$/,``);t({id:`subset-${++yA}`,name:`${i} (subset)`,data:r}),n(`extracted ${me.length} of ${he.length} rows`)}function q(){return[xe?`${G} (${xe})`:G,..._e.map((e,t)=>ve[t]?`${e} (${ve[t]})`:e)]}function De(){if(Ee(`Copy`))return;let e=pe.filter(e=>!se.has(e)),t=e.map(e=>[he[e],..._e.map((t,n)=>ge[e]?.[n])]);Ip(Fp(q(),t)).then(t=>n(t?`copied ${e.length} rows to clipboard`:`clipboard unavailable`))}function Oe(e){if(Ee(`Copy`))return;let t=[[he[e],..._e.map((t,n)=>ge[e]?.[n])]];Ip(Fp(q(),t)).then(t=>n(t?`copied row ${e+1}`:`clipboard unavailable`))}async function ke(){let t=await Re(`New computed column`,[{key:`name`,label:`Column name`,type:`text`,default:``},{key:`expr`,label:`Formula (e.g. 2*A + sqrt(B))`,type:`text`,default:``}]);if(!t)return;let r=String(t.expr).trim();if(r)try{li(r);let a=String(t.name).trim()||r;i(e.id,a,r),n(`added column "${a}"`)}catch(e){D(e instanceof Error?e.message:`formula error`)}}function Ae(){D(null);try{li(S);let t=w.trim()||S.trim();i(e.id,t,S),n(`added column "${t}"`),C(``),T(``)}catch(e){D(e instanceof Error?e.message:`formula error`)}}let je=e=>x(t=>t&&t.col===e?t.dir===1?{col:e,dir:-1}:null:{col:e,dir:1}),Me=e=>b?.col===e?b.dir===1?` ▲`:` ▼`:``,Ne=(e,t)=>W(n=>{let r=$k(t);return n[e]===r?n:{...n,[e]:r}});function Pe(e){let t=e<0?[G,xe?`X · ${xe}`:`X`]:[_e[e]??``,ve[e]?`· ${ve[e]}`:``];for(let n of pe.slice(0,200))t.push(oA(e<0?he[n]:ge[n]?.[e]));Ne(e,nA(t))}function Fe(t){let r=_A(e.data,e.id,t);if(!r){n(`nothing plottable in the selection`);return}Z.getState().openGraphBuilderSeeded(r),n(`opened the selection in the Graph Builder`)}let Ie=()=>Fe([...H]),Le=[`x`,..._e.map((e,t)=>pi(t))].join(` · `);return{data:e.data,xName:G,xUnit:xe,baseCount:be,channelRoles:e.channelRoles??{},vars:Le,sort:b,setSort:x,toggleSort:je,sortMark:Me,filterCol:P,filterOp:I,filterV1:R,filterV2:B,setFilterCol:F,setFilterOp:L,setFilterV1:z,setFilterV2:V,filterActive:Se,order:pe,filtered:fe,analysisRows:me,masked:se,filteredOut:ce,selected:le,selectedCount:le.size,canExtract:Ce,extractSubset:K,copyRows:De,copyRow:Oe,toggleMask:we,unmaskAll:Te,toggleRowSelected:m,setRowSelection:h,clearRowSelection:g,excludeSelectedRows:_,keepOnlySelectedRows:v,showStats:O,setShowStats:k,colStats:A,statsErr:M,formula:S,setFormula:C,colName:w,setColName:T,addColumn:Ae,promptColumn:ke,err:E,onEditCell:(t,n,i)=>r(e.id,t,n,i),onRemoveFormula:t=>a(e.id,t),xKey:o,yKeys:c,setXKey:s,setYKeys:l,selectedCols:H,toggleColSelected:te,setColSelection:ne,clearColSelection:re,plotCols:ie,plotSelection:ae,addSelectionToPlot:oe,colWidths:ee,setColWidth:Ne,autofitCol:Pe,openInGraphBuilder:Fe,openSelectionInGraphBuilder:Ie,textCols:ue}}var xA=[[`>`,`>`],[`>=`,`≥`],[`<`,`<`],[`<=`,`≤`],[`==`,`=`],[`!=`,`≠`],[`between`,`between`]];function SA(e){let{xName:t,labels:n,filterCol:r,filterOp:i,filterV1:a,filterV2:o,setFilterCol:s,setFilterOp:c,setFilterV1:l,setFilterV2:u,filterActive:d,keptCount:f,totalCount:p,maskedCount:m,canExtract:h,onExtract:g}=e;return(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,padding:`6px 8px`,borderBottom:`1px solid var(--border, #333)`,flexWrap:`wrap`},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`filter`}),(0,O.jsxs)(`select`,{className:`qz-select`,"aria-label":`filter column`,value:r,onChange:e=>s(e.target.value),children:[(0,O.jsx)(`option`,{value:``,children:`(no filter)`}),(0,O.jsx)(`option`,{value:`-1`,children:t}),n.map((e,t)=>(0,O.jsx)(`option`,{value:String(t),children:e},e))]}),r!==``&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`select`,{className:`qz-select`,"aria-label":`filter operator`,value:i,onChange:e=>c(e.target.value),children:xA.map(([e,t])=>(0,O.jsx)(`option`,{value:e,children:t},e))}),(0,O.jsx)(`input`,{className:`qz-input qz-num`,"aria-label":`filter value`,placeholder:`value`,value:a,onChange:e=>l(e.target.value),style:{width:80}}),i===`between`&&(0,O.jsx)(`input`,{className:`qz-input qz-num`,"aria-label":`filter value upper`,placeholder:`and`,value:o,onChange:e=>u(e.target.value),style:{width:80}})]}),h&&(0,O.jsx)(`button`,{className:`qz-btn`,onClick:g,children:`Extract →`}),(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:[d?`${f} of ${p} rows`:`${p} rows`,m>0?` · ${m} masked`:``]})]})}function CA({formula:e,colName:t,setFormula:n,setColName:r,onAddColumn:i,showStats:a,onToggleStats:o,onCopy:s,maskedCount:c,onUnmaskAll:l,selectedCount:u,onExcludeSelected:d,onKeepOnlySelected:f,onClearSelection:p,vars:m,selectedColCount:h,onPlotSelection:g,onAddSelectionToPlot:_,onOpenInGraphBuilder:v,onClearColSelection:y}){return(0,O.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,padding:`6px 8px`,borderBottom:`1px solid var(--border, #333)`,flexWrap:`wrap`},children:[(0,O.jsx)(`span`,{className:`qzk-field-lbl`,style:{margin:0},children:`ƒx`}),(0,O.jsx)(`input`,{className:`qz-input`,placeholder:`2*A + sqrt(B)`,value:e,onChange:e=>n(e.target.value),onKeyDown:t=>t.key===`Enter`&&e.trim()&&i(),style:{width:200}}),(0,O.jsx)(`input`,{className:`qz-input`,placeholder:`column name`,value:t,onChange:e=>r(e.target.value),style:{width:120}}),(0,O.jsx)(`button`,{className:`qz-btn`,disabled:!e.trim(),onClick:i,children:`Add column`}),(0,O.jsx)(`button`,{className:a?`qz-btn qz-active`:`qz-btn`,"aria-pressed":a,onClick:o,title:`Per-column statistics`,children:`Σ Stats`}),(0,O.jsx)(`button`,{className:`qz-btn`,onClick:s,title:`Copy visible rows to clipboard (TSV)`,children:`⧉ Copy`}),c>0&&(0,O.jsxs)(`button`,{className:`qz-btn`,onClick:l,title:`Clear all masked rows`,children:[`Unmask (`,c,`)`]}),u>0&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,style:{color:`var(--accent)`},children:[u,` selected`]}),(0,O.jsx)(`button`,{className:`qz-btn`,onClick:d,title:`Mask the selected rows (exclude from analysis)`,children:`Exclude`}),(0,O.jsx)(`button`,{className:`qz-btn`,onClick:f,title:`Mask every row except the selected ones`,children:`Keep only`}),(0,O.jsx)(`button`,{className:`qz-btn`,onClick:p,title:`Clear the selection`,children:`Deselect`})]}),h>0&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,style:{color:`var(--accent)`},children:[h,` column`,h===1?``:`s`,` selected`]}),(0,O.jsx)(`button`,{className:`qz-btn`,onClick:g,title:`Plot the selected columns (designation-aware — replaces the current Y set)`,children:`Plot selection`}),(0,O.jsx)(`button`,{className:`qz-btn`,onClick:_,title:`Add the selected columns to the current plot`,children:`Add to plot`}),(0,O.jsx)(`button`,{className:`qz-btn`,onClick:v,title:`Open the selected columns in the Graph Builder (prefills the X/Y wells)`,children:`Graph Builder`}),(0,O.jsx)(`button`,{className:`qz-btn`,onClick:y,title:`Clear the column selection`,children:`Deselect columns`})]}),(0,O.jsxs)(`span`,{className:`qzk-ds-meta`,style:{color:`var(--text-faint)`},children:[`vars: `,m]})]})}function wA(e,t){let n=[{label:`Sort ascending`,run:()=>t.sortAsc(e)},{label:`Sort descending`,run:()=>t.sortDesc(e)}];if(e>=0){let r=t.yKeys??Array.from({length:t.labelCount},(e,t)=>t),i=r.includes(e);n.push({separator:!0}),n.push({label:t.xKey===e?`Already the X axis`:`Set as X axis`,run:()=>t.setXKey(e),disabled:t.xKey===e}),n.push(i?{label:`Hide from plot`,run:()=>t.setYKeys(r.filter(t=>t!==e)),disabled:r.length<=1}:{label:`Plot as Y`,run:()=>t.setYKeys([...r,e].sort((e,t)=>e-t))})}return n.push({separator:!0}),n.push({label:`Plot selection`,run:t.onPlotSelection}),n.push({label:`Add selection to plot`,run:t.onAddSelectionToPlot}),n.push({label:`Open in Graph Builder…`,run:t.onOpenInGraphBuilder}),n.push({separator:!0}),n.push({label:`New column from formula…`,run:t.onNewColumn}),n.push({label:t.showStats?`Hide column statistics`:`Show column statistics`,run:t.onToggleStats}),n}function TA(e,t){return[{label:t.masked.has(e)?`Unmask row`:`Mask row`,run:()=>t.toggleMask(e)},{label:`Unmask all rows`,run:t.unmaskAll,disabled:t.masked.size===0},{separator:!0},{label:`Copy row (TSV)`,run:()=>t.copyRow(e)}]}function EA({datasetId:e}){let t=Z(t=>t.datasets.find(t=>t.id===e));return t?(0,O.jsx)(DA,{ds:t}):(0,O.jsx)(`div`,{className:`qzk-sheet qzk-ds-meta`,style:{padding:12},children:`Select a dataset`})}function DA({ds:e}){let t=bA(e),[n,r]=(0,y.useState)(null);(0,y.useEffect)(()=>{e.pending&&Z.getState().ensureBookData(e.id)},[e.id,e.pending]);let i=e=>(t,n)=>{n.preventDefault(),r({kind:e,target:t,x:n.clientX,y:n.clientY})},a=e=>t.selectedCols.has(e)?[...t.selectedCols]:[e];return(0,O.jsxs)(`div`,{className:`qzk-sheet`,children:[(0,O.jsx)(CA,{formula:t.formula,colName:t.colName,setFormula:t.setFormula,setColName:t.setColName,onAddColumn:t.addColumn,showStats:t.showStats,onToggleStats:()=>t.setShowStats(e=>!e),onCopy:t.copyRows,maskedCount:t.masked.size,onUnmaskAll:t.unmaskAll,selectedCount:t.selectedCount,onExcludeSelected:t.excludeSelectedRows,onKeepOnlySelected:t.keepOnlySelectedRows,onClearSelection:t.clearRowSelection,vars:t.vars,selectedColCount:t.selectedCols.size,onPlotSelection:t.plotSelection,onAddSelectionToPlot:t.addSelectionToPlot,onOpenInGraphBuilder:t.openSelectionInGraphBuilder,onClearColSelection:t.clearColSelection}),(0,O.jsx)(SA,{xName:t.xName,labels:t.data.labels,filterCol:t.filterCol,filterOp:t.filterOp,filterV1:t.filterV1,filterV2:t.filterV2,setFilterCol:t.setFilterCol,setFilterOp:t.setFilterOp,setFilterV1:t.setFilterV1,setFilterV2:t.setFilterV2,filterActive:t.filterActive,keptCount:t.filtered.length,totalCount:t.data.time.length,maskedCount:t.masked.size,canExtract:t.canExtract,onExtract:t.extractSubset}),e.pending&&(0,O.jsxs)(`div`,{className:`qzk-ds-meta`,style:{padding:`4px 8px`,color:`var(--text-faint)`},children:[`Loading full data (`,e.pending.rows,` rows × `,e.pending.cols,` channels) — showing a preview for now.`]}),t.err&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{padding:`4px 8px`,color:`var(--danger)`},children:t.err}),Qr(e.data)&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{padding:`4px 8px`,color:`var(--text-faint)`},children:`This sheet has Origin report-sheet columns not shown here — see Inspector › Origin provenance.`}),(0,O.jsx)(pA,{data:t.data,xName:t.xName,xUnit:t.xUnit,order:t.order,masked:t.masked,filteredOut:t.filteredOut,selected:t.selected,channelRoles:t.channelRoles,sortMark:t.sortMark,selectedCols:t.selectedCols,onToggleColSelect:t.toggleColSelected,onSelectColRange:t.setColSelection,onToggleSelect:t.toggleRowSelected,onSelectRange:t.setRowSelection,onEditCell:t.onEditCell,baseCount:t.baseCount,onRemoveFormula:t.onRemoveFormula,showStats:t.showStats,colStats:t.colStats,statsErr:t.statsErr,onHeaderContext:i(`col`),onRowContext:i(`row`),textCols:t.textCols,colWidths:t.colWidths,onResizeCol:t.setColWidth,onAutofitCol:t.autofitCol}),n&&(0,O.jsx)(aO,{x:n.x,y:n.y,onClose:()=>r(null),items:n.kind===`col`?wA(n.target,{xKey:t.xKey,yKeys:t.yKeys,labelCount:t.data.labels.length,setXKey:t.setXKey,setYKeys:t.setYKeys,sortAsc:e=>t.setSort({col:e,dir:1}),sortDesc:e=>t.setSort({col:e,dir:-1}),onNewColumn:()=>void t.promptColumn(),showStats:t.showStats,onToggleStats:()=>t.setShowStats(e=>!e),onPlotSelection:()=>t.plotCols(a(n.target),`replace`),onAddSelectionToPlot:()=>t.plotCols(a(n.target),`add`),onOpenInGraphBuilder:()=>t.openInGraphBuilder(a(n.target))}):TA(n.target,{masked:t.masked,toggleMask:t.toggleMask,unmaskAll:t.unmaskAll,copyRow:t.copyRow})}),(0,O.jsx)(hA,{datasetId:e.id})]})}function OA(){let e=Z(e=>e.activeId),t=Z(e=>e.worksheetId)??e;return t?(0,O.jsx)(EA,{datasetId:t}):(0,O.jsx)(`div`,{className:`qzk-sheet qzk-ds-meta`,style:{padding:12},children:`Select a dataset`})}function kA(e){let t=e;if(!t)return!1;let n=t.tagName;return n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t.isContentEditable}function AA(){let e=Z.getState(),t=e.history[e.history.length-1];if(!t){X(`nothing to undo`);return}e.undo(),X(`undid: ${t.label}`)}function jA(){let e=Z.getState(),t=e.future[e.future.length-1];if(!t){X(`nothing to redo`);return}e.redo(),X(`redid: ${t.label}`)}function MA(){let e=Z(e=>e.history[e.history.length-1]?.label??null),t=Z(e=>e.future[e.future.length-1]?.label??null);(0,y.useEffect)(()=>{let n=[{id:`history-undo`,group:`Edit`,label:e?`Undo ${e}`:`Undo`,shortcut:`⌘Z`,run:AA},{id:`history-redo`,group:`Edit`,label:t?`Redo ${t}`:`Redo`,shortcut:`⌘⇧Z`,run:jA}];kO.getState().setMenuCommands(`history`,n)},[e,t]),(0,y.useEffect)(()=>{let e=e=>{!(e.metaKey||e.ctrlKey)||e.key.toLowerCase()!==`z`||kA(e.target)||(e.preventDefault(),e.shiftKey?jA():AA())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[])}function NA(e){let t=e;if(!t)return!1;let n=t.tagName;return n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t.isContentEditable}function PA(){let e=Z.getState(),t=e.createWindow(e.activeId,Io(e));e.focusWindow(t)}function FA(){let e=Z.getState();if(!e.focusedWindowId)return;let t=e.duplicateWindow(e.focusedWindowId);t&&e.focusWindow(t)}function IA(){let e=Z.getState();e.focusedWindowId&&e.closeWindow(e.focusedWindowId)}function LA(){let e=yo();e&&Z.getState().createSnapshotWindow(bo(e))}function RA(e){let t=Z.getState();if(!t.activeId)return;let n=t.createDocumentWindow(e,t.activeId);t.focusWindow(n),t.setStageTab(`plot`)}function zA(e){let t=Z.getState(),n=Jo(gs(t.plotWindows.filter(e=>e.kind===`plot`)),t.focusedWindowId,e);n&&t.focusWindow(n)}function BA(){Z.getState().tileWindows()}function VA(){Z.getState().cascadeWindows()}function HA(){let e=Z.getState();if(!e.focusedWindowId)return;let t=e.plotWindows.find(t=>t.id===e.focusedWindowId);t&&e.setWindowBg(t.id,zo(t.bg))}function UA(){let e=Z.getState();e.focusedWindowId&&e.cycleWindowLinkGroup(e.focusedWindowId)}function WA(){let e=Z.getState();e.focusedWindowId&&e.toggleWindowPin(e.focusedWindowId)}function GA(){(0,y.useEffect)(()=>{let e=[{id:`window-new`,group:`Window`,label:`New Graph Window`,shortcut:`⌘⇧N`,run:PA},{id:`window-duplicate`,group:`Window`,label:`Duplicate Window`,shortcut:`⌘⇧D`,run:FA},{id:`window-close`,group:`Window`,label:`Close Window`,shortcut:`⌘⇧W`,run:IA},{id:`window-snapshot`,group:`Window`,label:`Snapshot to New Window`,run:LA},{id:`window-worksheet`,group:`Window`,label:`Open Worksheet in Window`,run:()=>RA(`worksheet`)},{id:`window-map`,group:`Window`,label:`Open Map in Window`,run:()=>RA(`map`)},{id:`window-tile`,group:`Window`,label:`Tile Windows`,run:BA},{id:`window-cascade`,group:`Window`,label:`Cascade Windows`,run:VA},{id:`window-bg-cycle`,group:`Window`,label:`Window Background (Theme / Light / Dark)`,run:HA},{id:`window-link-cycle`,group:`Window`,label:`Link Window Group (1 / 2 / 3 / Off)`,run:UA},{id:`window-pin`,group:`Window`,label:`Pin Window (toggle)`,run:WA},{id:`window-focus-next`,group:`Window`,label:`Focus Next Window`,shortcut:`⌃Tab`,run:()=>zA(1)},{id:`window-focus-prev`,group:`Window`,label:`Focus Previous Window`,shortcut:`⌃⇧Tab`,run:()=>zA(-1)}];kO.getState().setMenuCommands(`windows`,e)},[]),(0,y.useEffect)(()=>{let e=e=>{if(e.ctrlKey&&!e.metaKey&&!e.altKey&&e.key===`Tab`){e.preventDefault(),zA(e.shiftKey?-1:1);return}if(!(!(e.metaKey||e.ctrlKey)||!e.shiftKey||NA(e.target)))switch(e.key.toLowerCase()){case`n`:e.preventDefault(),PA();break;case`d`:e.preventDefault(),FA();break;case`w`:e.preventDefault(),IA();break}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[])}function KA(e){return e==null?void 0:`qz-win-link-${e}`}var qA=new Map;function JA(e,t){let n=qA.get(e);return n||(n={plots:new Set,syncing:!1},qA.set(e,n)),n.plots.add(t),()=>{n.plots.delete(t),n.plots.size===0&&qA.delete(e)}}function YA(e){return(t,n)=>{if(n!==`x`)return;let r=qA.get(e);if(!r||r.syncing)return;let{min:i,max:a}=t.scales.x;if(!(i==null||a==null)){r.syncing=!0;try{for(let e of r.plots)e!==t&&e.setScale(`x`,{min:i,max:a})}finally{r.syncing=!1}}}}function XA({className:e,style:t,onContextMenu:n,onAxisDrop:r,children:i}){let a=(0,y.useRef)(null),[o,s]=(0,y.useState)(0),[c,l]=(0,y.useState)(null),u=e=>e.dataTransfer.types.includes(Vp),d=e=>{let t=a.current?.getBoundingClientRect();return t?Yp({width:t.width,height:t.height},{x:e.clientX-t.left,y:e.clientY-t.top}):null};return(0,O.jsxs)(`div`,{ref:a,className:e,style:t,onContextMenu:n,onDragEnter:e=>{u(e)&&(e.preventDefault(),s(e=>e+1))},onDragOver:e=>{u(e)&&(e.preventDefault(),l(d(e)))},onDragLeave:e=>{u(e)&&s(e=>Math.max(0,e-1))},onDrop:e=>{if(!u(e))return;e.preventDefault();let t=d(e);if(s(0),l(null),!t)return;let n=Up(e.dataTransfer.getData(Vp));n&&r(t,n.datasetId,n.channel)},children:[i,o>0&&(0,O.jsxs)(`div`,{className:`qzk-axis-drop-zones`,"aria-hidden":`true`,children:[(0,O.jsx)(`div`,{className:`qzk-axis-zone x${c===`x`?` active`:``}`}),(0,O.jsx)(`div`,{className:`qzk-axis-zone y${c===`y`?` active`:``}`}),(0,O.jsx)(`div`,{className:`qzk-axis-zone y2${c===`y2`?` active`:``}`})]})]})}function ZA(e,t,n=.3){if(!Number.isFinite(e)||!Number.isFinite(t)||t<=e)return[e,t];let r=Math.min(Math.max(n,0),1);if(r>=1)return[e,t];let i=(e+t)/2,a=(t-e)*r/2;return[i-a,i+a]}function QA({payload:e,styleList:t}){let n=Z(e=>e.theme),r=Z(e=>e.accent),i=Z(e=>e.setInsetMode),a=(0,y.useRef)(null),o=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let n=a.current;if(!n)return;o.current?.destroy();let r=n.clientWidth||248,i=n.clientHeight||124,s=U_(e,{width:r,height:i,yScale:`linear`,xScale:`linear`,showGrid:!0,tool:`zoom`,onReadout:()=>{},seriesStyles:t,linearPaths:gE,pointsPaths:_E});s.axes?.forEach(e=>{e.label=void 0});let c=new mE(s,e.data,n),l=e.data[0].filter(e=>e!=null&&Number.isFinite(e));if(l.length){let[e,t]=ZA(Math.min(...l),Math.max(...l),.3);t>e&&c.setScale(`x`,{min:e,max:t})}o.current=c;let u=new ResizeObserver(()=>o.current?.setSize({width:n.clientWidth||r,height:n.clientHeight||i}));return u.observe(n),()=>{u.disconnect(),o.current?.destroy(),o.current=null}},[e,t,n,r]),(0,O.jsxs)(`div`,{className:`qzk-glass`,style:{position:`absolute`,right:14,bottom:14,width:280,height:168,padding:6},children:[(0,O.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`,fontSize:10,color:`var(--text-faint)`,marginBottom:2},children:[(0,O.jsx)(`span`,{children:`inset · drag to zoom`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn`,title:`Close inset`,onClick:()=>i(!1),children:`×`})]}),(0,O.jsx)(`div`,{ref:a,style:{position:`absolute`,left:6,right:6,top:22,bottom:6}})]})}var $A=.001;function ej(e,t,n){let r=n*Math.max(Math.abs(e[1]-e[0]),Math.abs(t[1]-t[0]),1e-12);return Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r}function tj(e,t,n=$A){let r=t.find(t=>t.row===e.row+1&&t.col===e.col);return!!r&&ej(e.xLim,r.xLim,n)}function nj(e,t,n=8,r=$A){let i=[];for(let a=0;a<t-1;a++){let t=e.filter(t=>t.row===a&&e.some(e=>e.row===a+1&&e.col===t.col)),o=t.length>0&&t.every(t=>tj(t,e,r));i.push(o?0:n)}return i}function rj(e,t=$A){let n=new Set;return e.forEach((r,i)=>{tj(r,e,t)&&n.add(i)}),n}function ij(e,t,n=8){if(e<=0)return[];let r=Math.max(1,Math.floor((t-(e-1)*n)/e));return Array(e).fill(r)}function aj(e,t,n){if(e<=0)return[];let r=n.slice(0,e-1).reduce((e,t)=>e+t,0),i=Math.max(1,Math.floor((t-r)/e));return Array(e).fill(i)}function oj(e,t){let n=[],r=0;for(let i=0;i<e.length;i++){n.push(r);let a=typeof t==`number`?t:t[i]??0;r+=e[i]+a}return n}var sj=`qz-multipanel`,cj=8,lj=20;function uj(e){let t=document.createElement(`div`);return t.setAttribute(`aria-hidden`,`true`),t.style.cssText=`flex:0 0 ${e}px;align-self:stretch;background-image:repeating-linear-gradient(65deg, var(--border) 0 2px, transparent 2px 9px);opacity:0.7;`,t}function dj(e){let{active:t,datasets:n,spatialPanels:r,facetPanels:i,breakPanels:a,yScale:o,xScale:s,xLim:c,yLim:l,xFmt:u,yFmt:d,showGrid:f,showAxisBox:p,refLines:m,seriesStyles:h,xKey:g,yKeys:_,y2Keys:v,errKeys:b,hiddenChannels:x,seriesOrder:S,tool:C,theme:w,accent:T,syncKey:E,bg:D,ensureBookData:O}=e,k=(0,y.useRef)(null),A=(0,y.useRef)([]),[j,M]=(0,y.useState)(null),[N,P]=(0,y.useState)([]),[F,I]=(0,y.useState)(null),L=(0,y.useMemo)(()=>(r??[]).filter(e=>n.some(t=>t.id===e.datasetId)),[r,n]),R=L.length>0,z=(0,y.useMemo)(()=>Ha(L),[L]),B=!R&&(a?.length??0)>0,V=!R&&!B&&(i?.length??0)>0,H=(0,y.useMemo)(()=>Ua(i?.length??0),[i]),U=(0,y.useMemo)(()=>V?c??pu(i):null,[V,i,c]),ee=(0,y.useMemo)(()=>B?l??gu(a):null,[B,a,l]),W=(0,y.useMemo)(()=>!R&&!V&&!B&&t?Ca(t.data,_,g,t.channelRoles,S).filter(e=>!x.includes(e)):[],[R,V,B,t,_,g,S,x]),te=(0,y.useMemo)(()=>W.map(e=>h[e]),[W,h]),ne=(0,y.useMemo)(()=>t?W.map(e=>$r(t.data,[e],b)):[],[t,W,b]);return(0,y.useEffect)(()=>{let e=!1;if(R||V||B||!t){M(null);return}return t.pending&&O(t.id),Ra(t.data,o===`log`,s===`log`,W,v,g).then(t=>{e||M(t)}),()=>{e=!0}},[R,V,B,t,o,s,W,v,g]),(0,y.useEffect)(()=>{let e=!1;if(!R){P(e=>e.length===0?e:[]);return}return Promise.all(L.map(e=>{let t=n.find(t=>t.id===e.datasetId);if(t?.pending&&O(t.id),!t)return Promise.resolve(null);let r=Va(e),i=e.y2Keys?e.y2Keys.filter(e=>r.includes(e)):null;return Ra(t.data,e.yLog,e.xLog,r,i,e.xKey).then(n=>({payload:n,errorBars:$r(t.data,r,e.errKeys??{})}))})).then(t=>{e||P(t)}),()=>{e=!0}},[R,L,n]),(0,y.useEffect)(()=>{let e=k.current,t=()=>{A.current.forEach(e=>e.destroy()),A.current=[]};if(!e){t();return}if(R){if(N.length!==L.length||N.some(e=>!e)){t();return}t(),e.replaceChildren();let n=e.clientWidth||600,r=e.clientHeight||400,i=ij(z.cols,n,cj),a=nj(L,z.rows,cj),o=aj(z.rows,r,a),s=oj(i,cj),c=oj(o,a),l=rj(L),m=[];L.forEach((t,n)=>{let r=N[n];if(!r)return;let{payload:a,errorBars:h}=r,g=document.createElement(`div`);g.style.position=`absolute`,g.style.left=`${s[t.col]}px`,g.style.top=`${c[t.row]}px`,g.style.width=`${i[t.col]}px`,g.style.height=`${o[t.row]}px`,e.appendChild(g),m.push(g);let _=Va(t),v=_.map(e=>t.seriesStyles?.[e]),y=_.map(e=>t.seriesLabels?.[e]),b=U_(a,{width:i[t.col],height:o[t.row],yScale:jo(t.yLog),xScale:jo(t.xLog),xLim:t.xLim,yLim:t.yLim,xStep:t.xStep,yStep:t.yStep,y2Lim:t.y2Lim??null,y2Scale:t.y2Log==null?null:jo(t.y2Log),y2Step:t.y2Step??null,y2AxisLabel:t.y2AxisLabel,xFmt:u,yFmt:d,showGrid:f,axisBox:p,tool:C,onReadout:I,seriesStyles:v,seriesLabels:y,errorBars:h,xAxisLabel:t.xAxisLabel,yAxisLabel:t.yAxisLabel,annotations:t.annotations,bg:D,linearPaths:gE,pointsPaths:_E});b.cursor={...b.cursor,sync:{key:E}},l.has(n)&&b.axes?.[0]&&(b.axes[0]={...b.axes[0],label:void 0,values:(e,t)=>t.map(()=>``)}),A.current.push(new mE(b,a.data,g))});let h=new ResizeObserver(()=>{let t=e.clientWidth||n,i=e.clientHeight||r,a=ij(z.cols,t,cj),o=nj(L,z.rows,cj),s=aj(z.rows,i,o),c=oj(a,cj),l=oj(s,o);L.forEach((e,t)=>{let n=m[t],r=A.current[t];!n||!r||(n.style.left=`${c[e.col]}px`,n.style.top=`${l[e.row]}px`,n.style.width=`${a[e.col]}px`,n.style.height=`${s[e.row]}px`,r.setSize({width:a[e.col],height:s[e.row]}))})});return h.observe(e),()=>{h.disconnect(),t()}}if(B){let n=a??[];if(n.length===0){t();return}t(),e.replaceChildren();let r=e.clientWidth||600,i=e.clientHeight||400,c=Ga(n.length,r,lj),l=Ka(()=>A.current);n.forEach((t,n)=>{n>0&&e.appendChild(uj(lj));let r=document.createElement(`div`);r.style.flex=`0 0 ${c[n]}px`,e.appendChild(r);let a=U_(t.payload,{width:c[n],height:i,yScale:o,xScale:s,xLim:t.xRange,yLim:ee,xFmt:u,yFmt:d,showGrid:f,axisBox:p,tool:C,onReadout:I,bg:D,linearPaths:gE,pointsPaths:_E});a.cursor={...a.cursor,sync:{key:E}},a.hooks={setScale:[l]},A.current.push(new mE(a,t.payload.data,r))});let m=new ResizeObserver(()=>{let t=e.clientWidth||r,a=e.clientHeight||i,o=Ga(n.length,t,lj);A.current.forEach((e,t)=>e.setSize({width:o[t],height:a}))});return m.observe(e),()=>{m.disconnect(),t()}}if(V){let n=i??[];if(n.length===0){t();return}t(),e.replaceChildren();let r=e.clientWidth||600,a=e.clientHeight||400,{cellW:c,cellH:l}=Wa(r,a,H,cj),m=Ka(()=>A.current);n.forEach(t=>{let n=document.createElement(`div`);e.appendChild(n);let r=U_(t.payload,{width:c,height:l,yScale:o,xScale:s,xLim:U,xFmt:u,yFmt:d,showGrid:f,axisBox:p,tool:C,onReadout:I,title:t.label,bg:D,linearPaths:gE,pointsPaths:_E});r.cursor={...r.cursor,sync:{key:E}},r.hooks={setScale:[m]},A.current.push(new mE(r,t.payload.data,n))});let h=new ResizeObserver(()=>{let{cellW:t,cellH:n}=Wa(e.clientWidth||r,e.clientHeight||a,H,cj);A.current.forEach(e=>e.setSize({width:t,height:n}))});return h.observe(e),()=>{h.disconnect(),t()}}if(!j){t();return}t(),e.replaceChildren();let n=za(j),r=e.clientWidth||600,l=Ba(n.length,e.clientHeight||400),h=Ka(()=>A.current);n.forEach((t,i)=>{let a=document.createElement(`div`);e.appendChild(a);let g=U_(t,{width:r,height:l[i],yScale:o,xScale:s,xLim:c,xFmt:u,yFmt:d,showGrid:f,axisBox:p,refLines:m,tool:C,onReadout:I,seriesStyles:te?[te[i]]:void 0,errorBars:ne[i],bg:D,linearPaths:gE,pointsPaths:_E});g.cursor={...g.cursor,sync:{key:E}},g.hooks={setScale:[h]},i!==n.length-1&&g.axes?.[0]&&(g.axes[0]={...g.axes[0],label:void 0,values:(e,t)=>t.map(()=>``)}),A.current.push(new mE(g,t.data,a))});let g=new ResizeObserver(()=>{let t=Ba(A.current.length,e.clientHeight||400),n=e.clientWidth||r;A.current.forEach((e,r)=>e.setSize({width:n,height:t[r]}))});return g.observe(e),()=>{g.disconnect(),t()}},[R,N,L,z,B,a,ee,V,i,H,U,j,o,s,c,u,d,f,p,m,te,ne,C,w,T,E,D]),{hostRef:k,hostStyle:R?{position:`absolute`,inset:8}:B?{position:`absolute`,inset:8,display:`flex`,flexDirection:`row`}:V?{position:`absolute`,inset:8,display:`grid`,gap:cj,gridTemplateRows:`repeat(${H.rows}, 1fr)`,gridTemplateColumns:`repeat(${H.cols}, 1fr)`}:{position:`absolute`,inset:8,display:`flex`,flexDirection:`column`,gap:8},readout:F,tool:C}}function fj(){let e=Z(e=>e.setStackMode),{hostRef:t,hostStyle:n,readout:r,tool:i}=dj({active:pd(),datasets:Z(e=>e.datasets),spatialPanels:Z(e=>e.spatialPanels),facetPanels:Z(e=>e.facetPanels),breakPanels:Z(e=>e.breakPanels),yScale:Z(e=>e.yScale),xScale:Z(e=>e.xScale),xLim:Z(e=>e.xLim),yLim:Z(e=>e.yLim),xFmt:Z(e=>e.xFmt),yFmt:Z(e=>e.yFmt),showGrid:Z(e=>e.showGrid),showAxisBox:Z(e=>e.showAxisBox),refLines:Z(e=>e.refLines),seriesStyles:Z(e=>e.seriesStyles),xKey:Z(e=>e.xKey),yKeys:Z(e=>e.yKeys),y2Keys:Z(e=>e.y2Keys),errKeys:Z(e=>e.errKeys),hiddenChannels:Z(e=>e.hiddenChannels),seriesOrder:Z(e=>e.seriesOrder),tool:Z(e=>e.plotTool),theme:Z(e=>e.theme),accent:Z(e=>e.accent),syncKey:sj,ensureBookData:Z(e=>e.ensureBookData)});return(0,O.jsxs)(`div`,{className:`qzk-stage`,children:[(0,O.jsx)(`div`,{ref:t,style:n}),(0,O.jsx)(`div`,{className:`qzk-glass qzk-float-tools`,children:(0,O.jsx)(`button`,{className:`qzk-tool-btn active`,title:`Back to a single overlaid plot`,onClick:()=>e(!1),children:`▤`})}),i===`cursor`&&r&&(0,O.jsxs)(`div`,{className:`qzk-glass qzk-readout`,children:[(0,O.jsxs)(`div`,{style:{color:`var(--text-dim)`},children:[`x = `,r.x.toPrecision(5)]}),r.rows.map((e,t)=>(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,justifyContent:`space-between`},children:[(0,O.jsx)(`span`,{children:e.label||`y`}),(0,O.jsx)(`span`,{children:e.y.toPrecision(5)})]},`${e.label}-${t}`))]})]})}function pj(e,t,n,r){let i=e>=n.left&&e<=n.right,a=t>=n.top&&t<=n.bottom;return i&&a?`plot`:i&&t>n.bottom?`x`:a&&e<n.left?`y`:a&&e>n.right&&r?`y2`:`outside`}function mj(e,t){let n=null,r=1/0;for(let i=0;i<e.length;i++){let a=e[i];if(a==null||Number.isNaN(a))continue;let o=Math.abs(a-t);o<r&&(r=o,n=i)}return n}function hj(e,t,n=1/0){let r=null,i=1/0;for(let n=0;n<t.length;n++){let a=t[n];if(a==null||Number.isNaN(a))continue;let o=Math.abs(a-e);o<i&&(i=o,r=n)}return r!=null&&i<=n?r:null}var gj=[...Array.from({length:8},(e,t)=>({key:`s${t+1}`,title:`Series ${t+1}`,value:`--series-${t+1}`})),{key:`black`,title:`Black`,value:`#000000`},{key:`grey`,title:`Grey`,value:`#808080`},{key:`white`,title:`White`,value:`#ffffff`}],_j=[{value:`solid`,label:`Solid ──`},{value:`dashed`,label:`Dashed ╌╌`},{value:`dotted`,label:`Dotted ···`}],vj=[{value:`ne`,label:`Top-right`},{value:`nw`,label:`Top-left`},{value:`se`,label:`Bottom-right`},{value:`sw`,label:`Bottom-left`}];function yj(e,t){return gj.map(n=>({key:n.key,title:n.title,css:n.value.startsWith(`--`)?`var(${n.value})`:n.value,active:e.style.color===n.value,run:()=>t.setColor(e.channel,n.value)}))}var bj=[{value:`linear`,label:`Linear`},{value:`log`,label:`Log`},{value:`reciprocal`,label:`Reciprocal`}];function xj(e,t,n,r,i){return[{label:`${e} scale`,submenu:bj.map(e=>({label:e.label,run:()=>n(e.value),checked:t===e.value}))},{label:`Autoscale ${e}`,run:r},{label:`Set ${e} limits…`,run:i}]}function Sj(e){let t=[],n=e.series;if(n){let r=Object.values(n.style).some(e=>e!==void 0);t.push({header:n.label}),t.push({swatches:yj(n,e)}),t.push({label:`Line style`,submenu:_j.map(t=>({label:t.label,run:()=>e.setLine(n.channel,t.value),checked:(n.style.line??`solid`)===t.value}))}),t.push({label:`Width`,submenu:[1,2,3].map(t=>({label:`${t} px`,run:()=>e.setWidth(n.channel,t),checked:n.style.width===t}))}),t.push({label:`Marker`,submenu:[{label:`None`,run:()=>e.setMarker(n.channel,!1),checked:!n.style.marker},...Ng.map(t=>({label:t.label,run:()=>e.setMarker(n.channel,!0,t.value),checked:!!n.style.marker&&(n.style.markerShape??`circle`)===t.value}))]}),t.push({separator:!0}),t.push({label:n.hidden?`Show series`:`Hide series`,run:()=>e.toggleHidden(n.channel),disabled:!n.hidden&&!e.canHide}),t.push({label:`Rename…`,run:()=>e.rename(n.channel)}),t.push({label:n.onY2?`Move to left Y axis`:`Move to right Y axis`,run:()=>e.toggleY2(n.channel)}),r&&t.push({label:`Reset series style`,run:()=>e.resetStyle(n.channel)}),t.push({separator:!0})}let r=xj(`X`,e.xScale,e.setXScale,e.autoscaleX,e.limitsX),i=xj(`Y`,e.yScale,e.setYScale,e.autoscaleY,e.limitsY),a=xj(`Y2`,e.y2Scale,e.setY2Scale,e.autoscaleY2,e.limitsY2);return e.zone===`x`?t.push({header:`X axis`},...r):e.zone===`y`?t.push({header:`Y axis`},...i):e.zone===`y2`?t.push({header:`Y2 axis`},...a):(t.push({label:`X axis`,submenu:r}),t.push({label:`Y axis`,submenu:i}),e.hasY2&&t.push({label:`Y2 axis`,submenu:a})),t.push({separator:!0}),t.push({label:`Legend`,submenu:[{label:e.showLegend?`Hide legend`:`Show legend`,run:()=>e.setShowLegend(!e.showLegend),checked:e.showLegend},{separator:!0},...vj.map(t=>({label:t.label,run:()=>e.setLegendPos(t.value),checked:e.legendPos===t.value,disabled:!e.showLegend}))]}),t.push({label:e.showGrid?`Hide grid`:`Show grid`,run:()=>e.setShowGrid(!e.showGrid),checked:e.showGrid}),t.push({label:`Tools`,submenu:[{label:`Integrate (area under curve)`,run:()=>e.setTool(`integ`)},{label:`Peak / FWHM`,run:()=>e.setTool(`fwhm`)},{label:`Gadget (fit/stats/FFT/cursors)`,run:()=>e.setTool(`qfit`)},{label:`Measure (Δx, Δy)`,run:()=>e.setTool(`measure`)}]}),t.push({separator:!0}),t.push({label:`Reset zoom (autoscale)`,run:e.resetView}),t.push({label:`Copy image`,run:e.copyImage}),t.push({label:`Copy data (TSV)`,run:e.copyData}),t.push({label:`Save as PNG`,run:e.savePng}),t}var Cj=44;function wj(e,t,n,r,i,a){if(!e||!e.over)return{series:null,idx:null,zone:`outside`};let o=e.over.getBoundingClientRect(),s=pj(t,n,{left:o.left,top:o.top,right:o.right,bottom:o.bottom},a),c=t-o.left,l=n-o.top,u=mj(e.data[0]??[],e.posToVal(c,`x`));return u==null?{series:null,idx:null,zone:s}:{series:hj(l,r.map((t,n)=>{if(i?.[n])return null;let r=e.data[n+1]?.[u];if(r==null||Number.isNaN(r))return null;let a=e.series[n+1]?.scale??`y`;return e.valToPos(r,a,!1)}),Cj),idx:u,zone:s}}function Tj({x:e,y:t,plotRef:n,payload:r,plotted:i,hidden:a,actions:o,onClose:s}){return(0,O.jsx)(aO,{x:e,y:t,items:(0,y.useMemo)(()=>{let s=Z.getState(),c=n.current,l=(s.y2Keys?.length??0)>0,{series:u,zone:d}=wj(c,e,t,i,a,l),f=null;if(u!=null){let e=i[u],t=r.series[u],n=t?.unit?`${t.label} (${t.unit})`:t?.label??`series ${e}`;f={channel:e,label:s.seriesLabels[e]??n,style:s.seriesStyles[e]??{},hidden:s.hiddenChannels.includes(e),onY2:(s.y2Keys??[]).includes(e)}}let p=i.filter(e=>!s.hiddenChannels.includes(e)).length,m=e=>{let t=new Set(s.y2Keys??[]);t.has(e)?t.delete(e):t.add(e),s.setY2Keys(t.size?[...t]:null)},h=e=>{Re(`Rename series`,[{key:`label`,label:`Label`,type:`text`,default:s.seriesLabels[e]??f?.label??``}]).then(t=>{t&&s.setSeriesLabel(e,String(t.label))})},g=(e,t,r)=>{let i=n.current?.scales?.[e],a=t?.[0]??i?.min??0,o=t?.[1]??i?.max??1;Re(`Set axis limits`,[{key:`min`,label:`Min`,type:`number`,default:a},{key:`max`,label:`Max`,type:`number`,default:o}]).then(e=>{if(!e)return;let t=Number(e.min),n=Number(e.max);Number.isFinite(t)&&Number.isFinite(n)&&t!==n&&r([Math.min(t,n),Math.max(t,n)])})},_=s.y2Scale??s.yScale;return Sj({series:f,zone:d,hasY2:l,canHide:p>1,xScale:s.xScale,yScale:s.yScale,y2Scale:_,showGrid:s.showGrid,showLegend:s.showLegend,legendPos:s.legendPos,setColor:(e,t)=>s.setSeriesStyle(e,{color:t}),setLine:(e,t)=>s.setSeriesStyle(e,{line:t}),setWidth:(e,t)=>s.setSeriesStyle(e,{width:t}),setMarker:(e,t,n)=>s.setSeriesStyle(e,{marker:t,...n?{markerShape:n}:{}}),resetStyle:s.resetSeriesStyle,toggleHidden:s.toggleHidden,rename:h,toggleY2:m,setXScale:s.setXScale,setYScale:s.setYScale,setY2Scale:s.setY2Scale,autoscaleX:()=>s.setXLim(null),autoscaleY:()=>s.setYLim(null),autoscaleY2:()=>s.setY2Lim(null),limitsX:()=>g(`x`,s.xLim,s.setXLim),limitsY:()=>g(`y`,s.yLim,s.setYLim),limitsY2:()=>g(`y2`,s.y2Lim,s.setY2Lim),setShowGrid:s.setShowGrid,setShowLegend:s.setShowLegend,setLegendPos:e=>s.setLegendPos(e),resetView:o.resetView,copyImage:o.snapshot,savePng:o.savePng,copyData:o.copyData,setTool:s.setPlotTool})},[e,t]),onClose:s})}function Ej(e,t,n){let r=new Map;return t.forEach((t,i)=>{let a=n[t],o=a?.colorBy;if(o==null)return;let s=e.values.map(e=>Number.isFinite(e[o])?e[o]:null),c=1/0,l=-1/0;for(let e of s)e!=null&&(e<c&&(c=e),e>l&&(l=e));c>l||r.set(i+1,{channel:o,z:s,colormap:a?.colormap??`viridis`,lo:c,hi:l})}),r}function Dj(e,t){return[...t.values()].map(t=>({label:e.labels[t.channel]??`channel ${t.channel}`,colormap:t.colormap,lo:t.lo,hi:t.hi}))}function Oj({series:e,styleList:t,plotted:n,hidden:r,colorByColumns:i,isDarkBg:a=!0,inkColor:o}){let s=pd(),c=Z(e=>e.hiddenChannels),l=Z(e=>e.toggleHidden),u=Z(e=>e.seriesLabels),d=Z(e=>e.setSeriesLabel),f=Z(e=>e.setSeriesOrder),p=Z(e=>e.y2Keys),m=Z(e=>e.setY2Keys),h=Z(e=>e.legendPos),g=Z(e=>e.legendXY),_=Z(e=>e.setLegendXY),v=Z(e=>e.setLegendPos),b=Z(e=>e.plotTool),[x,S]=(0,y.useState)(null),[C,w]=(0,y.useState)(null),T=(0,y.useRef)(null),E=(0,y.useRef)(null),D=e=>{let t=T.current?.parentElement;if(!t)return null;let n=t.getBoundingClientRect();return n.width===0||n.height===0?null:[Math.min(1,Math.max(0,(e.clientX-n.left)/n.width)),Math.min(1,Math.max(0,(e.clientY-n.top)/n.height))]},k=e=>{if(b!==`pointer`||e.button!==0||e.target!==e.currentTarget)return;e.preventDefault();let t=e=>{let t=D(e);t&&(E.current!=null&&cancelAnimationFrame(E.current),E.current=requestAnimationFrame(()=>_(t)))},n=()=>{document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)},A=e=>{b!==`pointer`||e.target!==e.currentTarget||!g||(v(Do(g[0],g[1])),_(null))},j=e=>{let t=new Set(p??[]);t.has(e)?t.delete(e):t.add(e),m(t.size?[...t]:null)},M=s&&i&&i.size>0?Dj(s.data,i):[],N=e=>e.unit?`${e.label} (${e.unit})`:e.label,P=()=>{x&&d(x.channel,x.value),S(null)},F=(e,t)=>{let r=e+t;if(r<0||r>=n.length)return;let i=[...n];[i[e],i[r]]=[i[r],i[e]],f(i)};return(0,O.jsxs)(`div`,{ref:T,className:`qzk-glass qzk-legend ${g?``:h}`,style:g?{left:`${g[0]*100}%`,top:`${g[1]*100}%`,right:`auto`,bottom:`auto`}:void 0,onMouseDown:k,onDoubleClick:A,title:b===`pointer`?`Drag to move · double-click to reset to a corner`:void 0,children:[e.map((e,i)=>{let d=t?.[i]?.color,f=d&&!d.startsWith(`--`)?Mg(d,a,o):d?`var(${d})`:`var(--series-${i%8+1})`,p=i<n.length,m=p?n[i]:-1,h=r?.[i]??!1,g=n.filter(e=>!c.includes(e)).length,_=p?u[m]??N(e):N(e);if(x&&x.channel===m)return(0,O.jsxs)(`div`,{className:`it`,children:[(0,O.jsx)(`span`,{className:`ln`,style:{display:`inline-block`,width:14,height:2,background:f}}),(0,O.jsx)(`input`,{className:`qz-input`,autoFocus:!0,style:{width:90,height:18,padding:`0 4px`},value:x.value,placeholder:N(e),onChange:e=>S({channel:m,value:e.target.value}),onBlur:P,onKeyDown:e=>{e.key===`Enter`&&P(),e.key===`Escape`&&S(null)}})]},e.label);let v=p?()=>{!h&&g<=1||l(m)}:void 0,y=p&&!!s;return(0,O.jsxs)(`div`,{className:`it`,draggable:y,onDragStart:y?e=>{e.dataTransfer.setData(Vp,Hp({datasetId:s.id,channel:m})),e.dataTransfer.effectAllowed=`copy`}:void 0,onClick:v,onDoubleClick:p?()=>S({channel:m,value:u[m]??``}):void 0,onContextMenu:p?e=>{e.preventDefault(),e.stopPropagation(),w({x:e.clientX,y:e.clientY,channel:m,i})}:void 0,title:p?`Click to hide/show · double-click to rename · drag onto an axis band · right-click for more`:void 0,style:{opacity:h?.4:1,textDecoration:h?`line-through`:`none`},children:[(0,O.jsx)(`span`,{className:`ln`,style:{display:`inline-block`,width:14,height:2,background:f}}),(0,O.jsx)(oe,{text:_}),p&&n.length>1&&(0,O.jsxs)(`span`,{style:{marginLeft:6,display:`inline-flex`,gap:2},children:[(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Move earlier (draw under)`,disabled:i===0,onClick:e=>{e.stopPropagation(),F(i,-1)},children:`▲`}),(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Move later (draw over)`,disabled:i===n.length-1,onClick:e=>{e.stopPropagation(),F(i,1)},children:`▼`})]})]},e.label)}),M.map((e,t)=>(0,O.jsxs)(`div`,{className:`it qzk-colorbar`,title:`colour = ${e.label}`,children:[(0,O.jsx)(`span`,{className:`qzk-colorbar-grad`,style:{background:`linear-gradient(90deg, ${Array.from({length:9},(t,n)=>Ul(e.colormap,n/8)).join(`, `)})`}}),(0,O.jsx)(`span`,{className:`qzk-colorbar-lbl`,children:Y(e.lo)}),(0,O.jsx)(`span`,{className:`qzk-colorbar-lbl`,children:`–`}),(0,O.jsx)(`span`,{className:`qzk-colorbar-lbl`,children:Y(e.hi)})]},`cbar-${t}`)),C&&(0,O.jsx)(aO,{x:C.x,y:C.y,onClose:()=>w(null),items:(()=>{let e=c.includes(C.channel),t=n.filter(e=>!c.includes(e)).length,r=(p??[]).includes(C.channel);return[{label:`Rename…`,run:()=>S({channel:C.channel,value:u[C.channel]??``})},{label:e?`Show`:`Hide`,run:()=>l(C.channel),disabled:!e&&t<=1},{separator:!0},{label:r?`Move to left Y axis`:`Move to right Y axis`,run:()=>j(C.channel)},{separator:!0},{label:`Move earlier (draw under)`,run:()=>F(C.i,-1),disabled:C.i===0},{label:`Move later (draw over)`,run:()=>F(C.i,1),disabled:C.i===n.length-1}]})()})]})}var kj=e=>Number.isFinite(e)?e.toPrecision(4):`—`;function Aj({tool:e,readout:t,measurement:n,stats:r}){return e===`cursor`?t?(0,O.jsxs)(`div`,{className:`qzk-glass qzk-readout`,children:[(0,O.jsxs)(`div`,{style:{color:`var(--text-dim)`},children:[`x = `,t.x.toPrecision(5)]}),t.rows.map((e,t)=>(0,O.jsxs)(`div`,{style:{display:`flex`,gap:6,justifyContent:`space-between`},children:[(0,O.jsx)(`span`,{children:e.label||`y`}),(0,O.jsx)(`span`,{children:e.y.toPrecision(5)})]},`${e.label}-${t}`))]}):null:e===`region`?(0,O.jsx)(`div`,{className:`qzk-glass qzk-readout`,children:`Drag to select a background range`}):e===`measure`?(0,O.jsx)(`div`,{className:`qzk-glass qzk-readout`,children:n?Gr(n):`Drag between two points to measure`}):e===`stats`?(0,O.jsx)(`div`,{className:`qzk-glass qzk-readout`,style:{maxHeight:240,overflowY:`auto`},children:r?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`div`,{style:{color:`var(--text-dim)`},children:[`x ∈ [`,kj(r.xMin),`, `,kj(r.xMax),`]`]}),r.series.map((e,t)=>(0,O.jsxs)(`div`,{style:{marginTop:4},children:[(0,O.jsxs)(`div`,{style:{color:`var(--text)`},children:[e.label||`y`,` · n=`,e.n]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,color:`var(--text-dim)`},children:[(0,O.jsxs)(`span`,{children:[`μ `,kj(e.mean)]}),(0,O.jsxs)(`span`,{children:[`σ `,kj(e.std)]}),(0,O.jsxs)(`span`,{children:[`med `,kj(e.median)]})]}),(0,O.jsxs)(`div`,{style:{display:`flex`,gap:8,color:`var(--text-faint)`},children:[(0,O.jsxs)(`span`,{children:[`min `,kj(e.min)]}),(0,O.jsxs)(`span`,{children:[`max `,kj(e.max)]})]})]},`${e.label}-${t}`))]}):`Drag a range to summarize`}):null}function jj({integral:e,fwhm:t,onClearIntegral:n,onClearFwhm:r,gadget:i}){let a=!!i&&(i.roi!=null||i.cursors!=null||i.busy||i.error!=null);return!e&&!t&&!a?null:(0,O.jsxs)(`div`,{className:`qzk-result-chips`,children:[e&&(0,O.jsxs)(`div`,{className:`qzk-glass qzk-result-chip`,children:[(0,O.jsx)(`span`,{className:`g`,children:`∫`}),(0,O.jsx)(`span`,{className:`v`,children:Y(e.area)}),(0,O.jsxs)(`span`,{className:`lbl`,children:[Y(e.xlo),`–`,Y(e.xhi)]}),(0,O.jsx)(`button`,{className:`qzk-chip-reset`,title:`Clear`,onClick:n,children:`×`})]}),t&&(0,O.jsxs)(`div`,{className:`qzk-glass qzk-result-chip`,children:[(0,O.jsx)(`span`,{className:`g`,children:`∩`}),(0,O.jsx)(`span`,{className:`lbl`,children:`peak`}),(0,O.jsx)(`span`,{className:`v`,children:Y(t.center)}),(0,O.jsx)(`span`,{className:`lbl`,children:`FWHM`}),(0,O.jsx)(`span`,{className:`v`,children:Y(t.fwhm)}),(0,O.jsx)(`button`,{className:`qzk-chip-reset`,title:`Clear`,onClick:r,children:`×`})]}),a&&i&&(0,O.jsxs)(`div`,{className:`qzk-glass qzk-result-chip qzk-gadget-chip`,children:[(0,O.jsx)(`span`,{className:`g`,children:`≈`}),(0,O.jsx)(K,{options:i.modes.map(e=>({value:e,label:ku[e]})),value:i.mode,onChange:e=>i.setMode(e.target.value)}),i.mode===`fit`&&(0,O.jsx)(K,{options:i.models.map(e=>({value:e,label:e})),value:i.model,onChange:e=>i.setModel(e.target.value)}),i.busy&&(0,O.jsx)(`span`,{className:`lbl`,children:`computing…`}),!i.busy&&i.error&&(0,O.jsx)(`span`,{className:`lbl`,style:{color:`var(--danger)`},children:i.error}),!i.busy&&!i.error&&i.mode===`fit`&&i.fitResult&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{className:`v`,children:Mu(i.fitResult)}),(0,O.jsx)(`span`,{className:`lbl`,children:`R²`}),(0,O.jsx)(`span`,{className:`v`,children:Y(i.fitResult.R2)})]}),!i.busy&&!i.error&&i.mode===`integrate`&&i.integrateResult&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{className:`lbl`,children:`area`}),(0,O.jsx)(`span`,{className:`v`,children:Y(i.integrateResult.peaks[0]?.area)}),(0,O.jsx)(`span`,{className:`lbl`,children:`centroid`}),(0,O.jsx)(`span`,{className:`v`,children:Y(i.integrateResult.peaks[0]?.centroid)}),(0,O.jsx)(`span`,{className:`lbl`,children:`FWHM`}),(0,O.jsx)(`span`,{className:`v`,children:Y(i.integrateResult.peaks[0]?.fwhm)})]}),!i.busy&&!i.error&&i.mode===`stats`&&i.statsResult&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{className:`lbl`,children:`N`}),(0,O.jsx)(`span`,{className:`v`,children:String(i.statsResult.N??`—`)}),(0,O.jsx)(`span`,{className:`lbl`,children:`mean`}),(0,O.jsx)(`span`,{className:`v`,children:Y(i.statsResult.mean)}),(0,O.jsx)(`span`,{className:`lbl`,children:`sd`}),(0,O.jsx)(`span`,{className:`v`,children:Y(i.statsResult.std)}),(0,O.jsx)(`span`,{className:`lbl`,children:`min`}),(0,O.jsx)(`span`,{className:`v`,children:Y(i.statsResult.min)}),(0,O.jsx)(`span`,{className:`lbl`,children:`max`}),(0,O.jsx)(`span`,{className:`v`,children:Y(i.statsResult.max)})]}),!i.error&&i.mode===`differentiate`&&i.derivResult&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{className:`lbl`,children:`extremum dy/dx at x=`}),(0,O.jsx)(`span`,{className:`v`,children:Y(i.derivResult.extremumX)}),(0,O.jsx)(`span`,{className:`v`,children:Y(i.derivResult.extremumDydx)})]}),!i.busy&&!i.error&&i.mode===`fft`&&i.fftPreview&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{className:`lbl`,children:`N`}),(0,O.jsx)(`span`,{className:`v`,children:i.fftPreview.freq.length}),(0,O.jsx)(`span`,{className:`lbl`,children:`window`}),(0,O.jsx)(`span`,{className:`v`,children:i.fftPreview.windowName})]}),i.mode===`cursors`&&i.cursorResult&&(0,O.jsx)(`span`,{className:`v`,children:Gr(i.cursorResult)}),(i.mode===`fit`||i.mode===`fft`)&&(0,O.jsx)(G,{size:`sm`,disabled:i.busy||(i.mode===`fit`?!i.fitResult:!i.fftPreview),onClick:i.commit,children:i.mode===`fft`?`→ Spectrum`:`Commit`}),(i.mode===`fit`||i.mode===`integrate`||i.mode===`stats`)&&(0,O.jsx)(G,{size:`sm`,disabled:i.busy||i.reporting||(i.mode===`fit`?!i.fitResult:i.mode===`integrate`?!i.integrateResult:!i.statsResult),onClick:()=>void i.report(),children:i.reporting?`Reporting…`:`→ Report`}),(0,O.jsx)(`button`,{className:`qzk-chip-reset`,title:`Clear`,onClick:i.dismiss,children:`×`})]})]})}var Mj=[{id:`pointer`,glyph:`➤`,tip:`Pointer (select & arrange)`},{id:`zoom`,glyph:`⛶`,tip:`Box zoom`},{id:`pan`,glyph:`✥`,tip:`Pan`},{id:`cursor`,glyph:`✛`,tip:`Data cursor`},{id:`measure`,glyph:`∡`,tip:`Measure (Δx, Δy, slope)`},{id:`stats`,glyph:`Σ`,tip:`Region stats (drag a range)`},{id:`select`,glyph:`⬚`,tip:`Select rows (drag an x-range → worksheet)`}],Nj=[{id:`integ`,glyph:`∫`,tip:`Integrate — area under the curve (drag a range)`},{id:`fwhm`,glyph:`∩`,tip:`Peak / FWHM (drag a range)`},{id:`qfit`,glyph:`≈`,tip:`Gadget — drag a region (Fit/Integrate/Stats/Differentiate/FFT) or place cursors, live`}];function Pj({onReset:e,onSmartScale:t,onSavePng:n,onCopyData:r,onSnapshot:i,onSnapshotWindow:a}){let o=Z(e=>e.plotTool),s=Z(e=>e.setPlotTool),c=Z(e=>e.stackMode),l=Z(e=>e.setStackMode),u=Z(e=>e.insetMode),d=Z(e=>e.setInsetMode),f=Z(e=>e.polarMode),p=Z(e=>e.setPolarMode),m=Z(e=>e.statMode),h=Z(e=>e.setStatMode);return(0,O.jsxs)(`div`,{className:`qzk-glass qzk-float-tools`,children:[Mj.map(e=>(0,O.jsx)(`button`,{className:`qzk-tool-btn${o===e.id?` active`:``}`,title:e.tip,onClick:()=>s(e.id),children:e.glyph},e.id)),(0,O.jsx)(`span`,{className:`qzk-tool-sep`}),Nj.map(e=>(0,O.jsx)(`button`,{className:`qzk-tool-btn${o===e.id?` active`:``}`,title:e.tip,onClick:()=>s(e.id),children:e.glyph},e.id)),(0,O.jsx)(`span`,{className:`qzk-tool-sep`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn`,title:`Reset view (or double-click the plot)`,onClick:e,children:`⊡`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn`,title:`Smart auto-scale (pick log/linear)`,onClick:t,children:`⊿`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn`,title:`Save plot as PNG`,onClick:n,children:`⤓`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn`,title:`Copy plotted data (TSV)`,onClick:r,children:`⧉`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn`,title:`Copy plot image to clipboard (PNG)`,onClick:i,children:`⎘`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn`,title:`Snapshot to a new window (frozen compare)`,onClick:a,children:`⊞`}),(0,O.jsx)(`span`,{className:`qzk-tool-sep`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn${c?` active`:``}`,title:`Stack channels in separate panels`,onClick:()=>l(!0),children:`▤`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn${u?` active`:``}`,title:`Magnifier inset`,onClick:()=>d(!u),children:`⊕`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn${f?` active`:``}`,title:`Polar plot (angle vs radius)`,onClick:()=>p(!0),children:`✺`}),(0,O.jsx)(`button`,{className:`qzk-tool-btn${m?` active`:``}`,title:`Statistics (box / violin / Q-Q / histogram)`,onClick:()=>h(!0),children:`▦`})]})}function Fj(e){let{displayPayload:t,plotRef:n,theme:r,accent:i,peakWizardEdit:a,anchorEdit:o,syncKey:s,insetTop:c,...l}=e,u=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let e=u.current;if(!e||!t){n.current?.destroy(),n.current=null;return}let r=e.clientWidth||600,i=l.title?.trim()?24:0,c=(e.clientHeight||400)-i;n.current?.destroy();let d=U_(t,{...l,width:r,height:c,peakWizardEdit:a&&{markers:a.markers,onAdd:a.addPeakAt,onRemove:a.removePeak},anchorEdit:o&&{getAnchors:o.getAnchors,onAdd:o.addAnchor,onMove:o.moveAnchor,onRemove:o.removeAnchor}});s&&(d.cursor={...d.cursor,sync:{key:s}},d.hooks={...d.hooks,setScale:[...d.hooks?.setScale??[],YA(s)]});let f=new mE(d,t.data,e);n.current=f;let p=s?JA(s,f):null,m=new ResizeObserver(()=>{n.current?.setSize({width:e.clientWidth||r,height:(e.clientHeight||400)-i})});return m.observe(e),()=>{m.disconnect(),p?.(),n.current?.destroy(),n.current=null}},[t,r,i,a,o,l.yScale,l.xScale,l.xLim,l.yLim,l.xStep,l.yStep,l.y2Lim,l.y2Scale,l.y2Step,l.xFmt,l.yFmt,l.showGrid,l.axisBox,l.fontSize,l.baseLineWidth,l.defaultTrace,l.wheelZoom,l.title,l.xAxisLabel,l.yAxisLabel,l.y2AxisLabel,l.refLines,l.annotations,l.annotationEdit,l.regionShades,l.seriesStyles,l.plotted,l.seriesLabels,l.errorBars,l.colorByColumns,l.hidden,l.tool,l.integral,l.fwhmResult,l.gadgetMode,l.bg,s]),(0,O.jsx)(`div`,{ref:u,style:{position:`absolute`,inset:8,top:c??8}})}function Ij(e,t,n,r,i){let a=e*Math.PI/180,o=t*i;return[n+o*Math.cos(a),r-o*Math.sin(a)]}function Lj(e,t,n){if(n<=t||!Number.isFinite(e))return 0;let r=(e-t)/(n-t);return r<0?0:r>1?1:r}function Rj(e,t){return typeof getComputedStyle==`function`&&getComputedStyle(document.documentElement).getPropertyValue(e).trim()||t}function zj(e){if(!Number.isFinite(e))return`—`;let t=Math.abs(e);return t!==0&&(t<.001||t>=1e5)?e.toExponential(2):Number(e.toPrecision(4)).toString()}function Bj({dataset:e,yKeys:t,seriesStyles:n,showGrid:r,theme:i,accent:a}){let o=(0,y.useRef)(null),s=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let i=o.current,a=s.current;if(!i||!a)return;let c=()=>Vj(a,i,e,t,n,r);c();let l=new ResizeObserver(c);return l.observe(i),()=>l.disconnect()},[e,t,n,r,i,a]),(0,O.jsx)(`div`,{ref:o,style:{position:`absolute`,inset:8},children:(0,O.jsx)(`canvas`,{ref:s,style:{width:`100%`,height:`100%`,display:`block`}})})}function Vj(e,t,n,r,i,a){let o=e.getContext(`2d`);if(!o)return;let s=t.clientWidth||600,c=t.clientHeight||400,l=typeof window<`u`&&window.devicePixelRatio||1;if(e.width=Math.round(s*l),e.height=Math.round(c*l),o.setTransform(l,0,0,l,0,0),o.clearRect(0,0,s,c),!n)return;let u=Rj(`--text`,`#e6e6e6`),d=Rj(`--text-dim`,`#9aa`),f=s/2,p=c/2,m=Math.max(10,Math.min(s,c)/2-44),h=n.data.time,g=r??n.data.labels.map((e,t)=>t),_=1/0,v=-1/0;for(let e of g)for(let t of n.data.values){let n=t[e];Number.isFinite(n)&&(n<_&&(_=n),n>v&&(v=n))}(!Number.isFinite(_)||v<=_)&&(_=0,v=1),o.strokeStyle=d,o.fillStyle=d,o.font=`10px 'JetBrains Mono', monospace`,o.lineWidth=1;let y=zg(_,v);for(let e of y){let t=Lj(e,_,v)*m;a&&(o.beginPath(),o.arc(f,p,t,0,2*Math.PI),o.stroke()),o.textAlign=`left`,o.textBaseline=`bottom`,o.fillText(zj(e),f+4,p-t-1)}o.beginPath(),o.arc(f,p,m,0,2*Math.PI),o.stroke(),o.fillStyle=d;for(let e=0;e<360;e+=45){let[t,n]=Ij(e,1,f,p,m);a&&(o.beginPath(),o.moveTo(f,p),o.lineTo(t,n),o.stroke());let[r,i]=Ij(e,1.08,f,p,m);o.textAlign=`center`,o.textBaseline=`middle`,o.fillText(`${e}°`,r,i)}g.forEach((e,t)=>{o.strokeStyle=R_(t,i[e]),o.lineWidth=1.5,o.beginPath();let r=!1;for(let t=0;t<h.length;t++){let i=n.data.values[t]?.[e];if(!Number.isFinite(h[t])||!Number.isFinite(i)){r=!1;continue}let[a,s]=Ij(h[t],Lj(i,_,v),f,p,m);r?o.lineTo(a,s):(o.moveTo(a,s),r=!0)}o.stroke()}),o.fillStyle=u,o.font=`11px 'JetBrains Mono', monospace`,o.textAlign=`center`,o.textBaseline=`top`,o.fillText(`angle (°) · radius = value`,f,p+m+24)}function Hj(){let e=pd(),t=Z(e=>e.yKeys),n=Z(e=>e.seriesStyles),r=Z(e=>e.showGrid),i=Z(e=>e.theme),a=Z(e=>e.accent),o=Z(e=>e.setPolarMode);return(0,O.jsxs)(`div`,{className:`qzk-stage`,children:[(0,O.jsx)(Bj,{dataset:e,yKeys:t,seriesStyles:n,showGrid:r,theme:i,accent:a}),(0,O.jsx)(`div`,{className:`qzk-glass qzk-float-tools`,children:(0,O.jsx)(`button`,{className:`qzk-tool-btn active`,title:`Back to a cartesian plot`,onClick:()=>o(!1),children:`✺`})}),!e&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{position:`absolute`,inset:0,display:`grid`,placeItems:`center`},children:`Select a dataset to plot`})]})}function Uj({data:e,theme:t,accent:n}){let r=(0,y.useRef)(null),i=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let t=r.current,n=i.current;if(!t||!n)return;let a=()=>Kv(n,t,e);a();let o=new ResizeObserver(a);return o.observe(t),()=>o.disconnect()},[e,t,n]),(0,O.jsx)(`div`,{ref:r,style:{position:`absolute`,inset:8},children:(0,O.jsx)(`canvas`,{ref:i,style:{width:`100%`,height:`100%`,display:`block`}})})}var Wj=[`norm`,`logistic`,`laplace`,`uniform`],Gj=[`fd`,`sturges`,`scott`,`rice`,`sqrt`,`auto`],Kj=(e,t)=>t<0?e.time:e.values.map(e=>e[t]),qj=(e,t)=>Kj(e,t).filter(e=>Number.isFinite(e));function Jj(e){return Array.isArray(e)?e.map(e=>Number(e)):[]}function Yj(e){let{active:t,yKeys:n,xKey:r,seriesOrder:i,seed:a,onSeedConsumed:o}=e,s=(0,y.useMemo)(()=>$a(t),[t]),c=(0,y.useMemo)(()=>t?t.data.labels.map((e,t)=>({index:t,label:e})):[],[t]),l=(0,y.useMemo)(()=>{let e=new Set(kv(t));return c.filter(t=>e.has(t.index))},[t,c]),u=(0,y.useMemo)(()=>t?Ca(t.data,n,r,t.channelRoles,i):[],[t,n,r,i]),[d,f]=(0,y.useState)(`box`),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(0),[_,v]=(0,y.useState)(`norm`),[b,x]=(0,y.useState)(`fd`),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=kv(t)[0]??null;m(e),g(Av(t,e??-999))},[t?.id]),(0,y.useEffect)(()=>{a&&(f(a.mode),m(a.groupCol),g(a.valueCol),o())},[a,o]);let[E,D]=(0,y.useState)(!1),[O,k]=(0,y.useState)(null),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)(null),P=(0,y.useMemo)(()=>!s||d!==`box`&&d!==`violin`?[]:jv(s,p,h,u),[s,d,p,h,u]),F=c.find(e=>e.index===h)?.label??(h<0?`x`:`value`),I=p==null?`channel`:c.find(e=>e.index===p)?.label??`group`,L=(0,y.useMemo)(()=>u.length?u:[h],[u,h]),R=(0,y.useMemo)(()=>L.length>1?`value`:c.find(e=>e.index===L[0])?.label??F,[L,c,F]),z=(0,y.useMemo)(()=>{if(!s||d!==`bar`)return null;if(p!=null){let e=L.map(e=>c.find(t=>t.index===e)?.label??`col ${e}`);return ca(s,p,L,e)}return{groups:jv(s,null,h,u).map(e=>({label:e.label,series:[sa(e.values)]})),seriesLabels:[R]}},[s,d,p,L,c,h,u,R]);(0,y.useEffect)(()=>{let e=!1;if(k(null),j(null),!s){N(null);return}if(d===`box`||d===`violin`){let t=P.filter(e=>e.values.length>0);if(!t.length){N(null),k(`no finite values to group`);return}D(!0),d===`box`?kt(t.map(e=>e.values),t.map(e=>e.label)).then(t=>{e||N({mode:`box`,boxes:t.boxes,valueLabel:F,groupLabel:I})}).catch(()=>{e||(N({mode:`box`,boxes:Pv(t),valueLabel:F,groupLabel:I}),j(`backend unavailable — computed locally`))}).finally(()=>!e&&D(!1)):Promise.all(t.map(e=>At(e.values))).then(n=>{e||N({mode:`violin`,violins:n.map((e,n)=>({label:t[n].label,x:e.x,density:e.density,quartiles:e.quartiles,n:e.n})),valueLabel:F,groupLabel:I})}).catch(()=>{e||(N({mode:`box`,boxes:Pv(t),valueLabel:F,groupLabel:I}),j(`violin (KDE) unavailable — showing box plot`))}).finally(()=>!e&&D(!1))}else if(d===`bar`){if(!z||z.groups.length===0){N(null),k(`no finite values to group`);return}N({mode:`bar`,data:z,valueLabel:R,groupLabel:I,stacked:w})}else if(d===`qq`){let t=qj(s,h);if(t.length<3){N(null),k(`need ≥ 3 finite values`);return}D(!0),jt(t,_).then(t=>{e||N({mode:`qq`,theo:t.theoretical_quantiles,obs:t.sample_quantiles,slope:t.slope,intercept:t.intercept,dist:t.dist,valueLabel:F})}).catch(t=>{e||(N(null),k(t instanceof Error?t.message:`Q-Q computation failed`))}).finally(()=>!e&&D(!1))}else{let t=qj(s,h);if(t.length<2){N(null),k(`need ≥ 2 finite values`);return}D(!0),Et(t,b,S).then(t=>{if(e)return;let n=t.fit;N({mode:`histogram`,edges:Jj(t.edges),counts:Jj(t.counts),density:!!t.density,fit:n?{dist:String(n.dist??S),x:Jj(n.x),pdf:Jj(n.pdf)}:void 0,valueLabel:F})}).catch(t=>{e||(N(null),k(t instanceof Error?t.message:`histogram computation failed`))}).finally(()=>!e&&D(!1))}return()=>{e=!0}},[s,d,P,h,_,b,S,F,I,z,R,w]);async function B(e){if(!s)return;if(d===`bar`){if(!z||z.groups.length===0)return;await ur({groups:z.groups.map(e=>e.label),series:z.seriesLabels,values:z.groups.map(e=>e.series.map(e=>e.mean)),errors:z.groups.map(e=>e.series.map(e=>Number.isFinite(e.sem)?e.sem:null)),stacked:w,fmt:e,title:`${R} by ${I}`,x_label:I,y_label:R,filename:`bar_${R}`});return}let t=Xj(d,s,P,h,F,I,_,b,S,e);t&&await lr(t)}return{hasData:!!t,mode:d,setMode:f,columns:c,categoricalCols:l,groupCol:p,setGroupCol:m,valueCol:h,setValueCol:g,dist:_,setDist:v,bins:b,setBins:x,fit:S,setFit:C,barStack:w,setBarStack:T,busy:E,error:O,note:A,draw:M,exportFigure:B}}function Xj(e,t,n,r,i,a,o,s,c,l){if(e===`box`||e===`violin`){let t=n.filter(e=>e.values.length>0);return t.length?{kind:e,data:t.map(e=>e.values),labels:t.map(e=>e.label),fmt:l,title:`${i} by ${a}`,x_label:a,y_label:i,filename:`${e}_${i}`}:null}let u=qj(t,r);return e===`qq`?u.length<3?null:{kind:`qq`,data:u,dist:o,fmt:l,title:`Q-Q — ${i}`,x_label:`Theoretical quantiles (${o})`,y_label:`Sample quantiles (${i})`,filename:`qq_${i}`}:u.length<2?null:{kind:`histogram`,data:u,bins:s,fit:c,fmt:l,title:`Histogram — ${i}`,x_label:i,y_label:c?`density`:`count`,filename:`histogram_${i}`}}var Zj=[{value:`box`,label:`Box`},{value:`violin`,label:`Violin`},{value:`qq`,label:`Q-Q`},{value:`histogram`,label:`Histogram`},{value:`bar`,label:`Bar`}],Qj=[{value:`grouped`,label:`Grouped`},{value:`stacked`,label:`Stacked`}];function $j(){let e=Z(e=>e.theme),t=Z(e=>e.accent),n=Z(e=>e.setStatMode),r=Yj({active:pd(),yKeys:Z(e=>e.yKeys),xKey:Z(e=>e.xKey),seriesOrder:Z(e=>e.seriesOrder),seed:Z(e=>e.statStageSeed),onSeedConsumed:Z(e=>e.clearStatStageSeed)}),[i,a]=(0,y.useState)(!1);async function o(){a(!0);try{await r.exportFigure(`pdf`),Z.getState().setStatus(`exported statistical-plot figure`)}catch(e){Z.getState().setStatus(e instanceof Error?e.message:`export failed`)}finally{a(!1)}}let s=[{value:`channel`,label:`(per channel)`},...r.categoricalCols.map(e=>({value:String(e.index),label:e.label}))],c=r.columns.map(e=>({value:String(e.index),label:e.label}));return(0,O.jsxs)(`div`,{className:`qzk-stage`,children:[(0,O.jsx)(Uj,{data:r.draw,theme:e,accent:t}),(0,O.jsxs)(`div`,{className:`qzk-glass qzk-float-tools`,style:{gap:10,padding:`6px 10px`,flexWrap:`wrap`,maxWidth:`92vw`,justifyContent:`center`},children:[(0,O.jsx)(`button`,{className:`qzk-tool-btn active`,title:`Back to a cartesian plot`,onClick:()=>n(!1),children:`▦`}),(0,O.jsx)(`span`,{className:`qzk-tool-sep`}),(0,O.jsx)(Ee,{options:Zj,value:r.mode,onChange:r.setMode}),(0,O.jsx)(`span`,{className:`qzk-tool-sep`}),(r.mode===`box`||r.mode===`violin`||r.mode===`bar`)&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(eM,{label:`group by`,children:(0,O.jsx)(K,{options:s,value:r.groupCol==null?`channel`:String(r.groupCol),onChange:e=>r.setGroupCol(e.target.value===`channel`?null:Number(e.target.value))})}),r.groupCol!=null&&r.mode!==`bar`&&(0,O.jsx)(eM,{label:`value`,children:(0,O.jsx)(K,{options:c,value:String(r.valueCol),onChange:e=>r.setValueCol(Number(e.target.value))})})]}),r.mode===`bar`&&(0,O.jsx)(eM,{label:`layout`,children:(0,O.jsx)(Ee,{options:Qj,value:r.barStack?`stacked`:`grouped`,onChange:e=>r.setBarStack(e===`stacked`)})}),(r.mode===`qq`||r.mode===`histogram`)&&(0,O.jsx)(eM,{label:`column`,children:(0,O.jsx)(K,{options:c,value:String(r.valueCol),onChange:e=>r.setValueCol(Number(e.target.value))})}),r.mode===`qq`&&(0,O.jsx)(eM,{label:`dist`,children:(0,O.jsx)(K,{options:Wj.map(e=>({value:e,label:e})),value:r.dist,onChange:e=>r.setDist(e.target.value)})}),r.mode===`histogram`&&(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(eM,{label:`bins`,children:(0,O.jsx)(K,{options:Gj.map(e=>({value:e,label:e})),value:r.bins,onChange:e=>r.setBins(e.target.value)})}),(0,O.jsx)(eM,{label:`fit`,children:(0,O.jsx)(K,{options:[{value:`none`,label:`none`},...Wj.map(e=>({value:e,label:e}))],value:r.fit??`none`,onChange:e=>r.setFit(e.target.value===`none`?null:e.target.value)})})]}),(0,O.jsx)(`span`,{className:`qzk-tool-sep`}),(0,O.jsx)(G,{size:`sm`,disabled:!r.draw||i,onClick:()=>void o(),title:`Render this plot server-side and download it (PDF)`,children:`⤓ Export`})]}),!r.hasData&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{position:`absolute`,inset:0,display:`grid`,placeItems:`center`},children:`Select a dataset to plot`}),r.hasData&&r.error&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{position:`absolute`,inset:0,display:`grid`,placeItems:`center`,textAlign:`center`,padding:24},children:r.error}),r.note&&(0,O.jsx)(`div`,{className:`qzk-glass qzk-readout`,children:r.note})]})}function eM({label:e,children:t}){return(0,O.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:4,fontSize:11},children:[e,t]})}var tM=2,nM=12;function rM(e){let t=Z(e=>e.selectedAnnotationId),n=Z(e=>e.setSelectedAnnotationId),r=Z(e=>e.updateAnnotation),i=Z(e=>e.removeAnnotation),a=Z(e=>e.annotations.length>0),[o,s]=(0,y.useState)(null);(0,y.useEffect)(()=>{if(!t)return;let e=e=>{e.key===`Escape`&&n(null)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[t,n]);let c=e=>{Re(`Edit annotation text`,[{key:`text`,label:`Text`,type:`text`,default:Z.getState().annotations.find(t=>t.id===e)?.text??``}]).then(t=>{t&&r(e,{text:String(t.text)})})},l=(e,t)=>{let n=Z.getState().annotations.find(t=>t.id===e);r(e,{size:Yl((n?.size??nM)+t)})},u=(e,t)=>{Z.getState().annotations.find(t=>t.id===e)?.anchor===`page`?r(e,{anchor:`data`,x:t.toData.x,y:t.toData.y}):r(e,{anchor:`page`,x:t.toPage.x,y:t.toPage.y})},d=(e,t,r,a)=>{let o=Z.getState().annotations.find(t=>t.id===e),d=o?.size??nM,f=o?.anchor===`page`;s({x:t,y:r,items:[{header:o?.text||`Annotation`},{label:`Edit text…`,run:()=>c(e)},{label:f?`Pin to data (follows zoom)`:`Pin to page (stays on zoom)`,checked:f,run:()=>u(e,a)},{label:`Size +`,run:()=>l(e,tM),disabled:d>=72},{label:`Size −`,run:()=>l(e,-2),disabled:d<=6},{separator:!0},{label:`Delete`,danger:!0,run:()=>{i(e),n(null)}}]})};return{bridge:(0,y.useMemo)(()=>e!==`pointer`||!a?null:{selectedId:t,onSelect:n,onMove:(e,t,n)=>r(e,{x:t,y:n}),onResize:(e,t)=>r(e,{size:t}),onEditText:c,onContextMenu:d,onResetView:()=>{let e=Z.getState();e.setXLim(null),e.setYLim(null),e.setY2Lim(null)}},[e,a,t,n,r]),menu:o,closeMenu:()=>s(null)}}function iM(){let e=pd(),t=Z(e=>e.xKey),n=Z(e=>e.yKeys),r=Z(e=>e.y2Keys);return(0,y.useCallback)((i,a,o)=>{if(!e)return;let s=Qp(e,{xKey:t,yKeys:n,y2Keys:r},i,{datasetId:a,channel:o}),c=Z.getState();for(let e of s.actions)e.kind===`setXKey`?c.setXKey(e.xKey):e.kind===`setYKeys`?c.setYKeys(e.yKeys):c.setY2Keys(e.y2Keys);s.categoricalXNote&&X(s.categoricalXNote,`info`)},[e,t,n,r])}function aM(){let e=pd(),t=Z(e=>e.gadgetMode),n=Z(e=>e.setGadgetMode),r=Z(e=>e.qfitRoi),i=Z(e=>e.gadgetCursors),a=Z(e=>e.qfitModel),o=Z(e=>e.setQfitModel),s=Z(e=>e.qfitResult),c=Z(e=>e.qfitBusy),l=Z(e=>e.qfitError),u=Z(e=>e.gadgetIntegrateResult),d=Z(e=>e.gadgetStatsResult),f=Z(e=>e.gadgetDerivResult),p=Z(e=>e.gadgetFftPreview),m=Z(e=>e.gadgetCursorResult),h=Z(e=>e.gadgetBusy),g=Z(e=>e.gadgetError),_=Z(e=>e.commitQfit),v=Z(e=>e.commitGadgetFft),b=Z(e=>e.clearQfit),[x,S]=(0,y.useState)(!1),C=t===`fit`?c:h,w=t===`fit`?l:g;(0,y.useEffect)(()=>{if(!r&&!i)return;let e=e=>{e.key===`Escape`&&b()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r,i,b]);function T(){t===`fit`?_():t===`fft`&&v()}async function E(){if(!(!e||!r)){S(!0);try{if(t===`fit`&&s){let t=s.params??[],{report:n}=await wr({kind:`curve_fit`,result:s,param_names:t.map((e,t)=>`p${t}`),model_name:a,title:`${a} quick-fit — ${e.name}`,caption:`region ${Y(Math.min(r[0],r[1]))}–${Y(Math.max(r[0],r[1]))}`,source_refs:[{kind:`dataset`,id:e.id,name:e.name}]});Z.getState().addReport(`${a} quick-fit — ${e.name}`,n,e.id)}else if(t===`integrate`&&u){let{report:t}=await wr({kind:`integrate`,result:u,title:`Integrate — ${e.name}`,caption:`region ${Y(Math.min(r[0],r[1]))}–${Y(Math.max(r[0],r[1]))}`,source_refs:[{kind:`dataset`,id:e.id,name:e.name}]});Z.getState().addReport(`Integrate — ${e.name}`,t,e.id)}else if(t===`stats`&&d){let{report:t}=await wr({kind:`stats_table`,records:[d],columns:[`N`,`mean`,`std`,`min`,`max`],title:`Stats — ${e.name}`,caption:`region ${Y(Math.min(r[0],r[1]))}–${Y(Math.max(r[0],r[1]))}`,source_refs:[{kind:`dataset`,id:e.id,name:e.name}]});Z.getState().addReport(`Stats — ${e.name}`,t,e.id)}}catch(e){X(e instanceof Error?e.message:`report failed`,`danger`)}finally{S(!1)}}}return{mode:t,modes:Ou,setMode:n,roi:r,cursors:i,model:a,models:Au,setModel:o,fitResult:s,integrateResult:u,statsResult:d,derivResult:f,fftPreview:p,cursorResult:m,busy:C,error:w,reporting:x,commit:T,report:E,dismiss:b}}function oM(e){let{active:t}=e,[n,r]=(0,y.useState)(null),i=(0,y.useMemo)(()=>Za(t),[t]),a=(0,y.useMemo)(()=>t?Ca(t.data,e.yKeys,e.xKey,t.channelRoles,e.seriesOrder):[],[t,e.yKeys,e.xKey,e.seriesOrder]),o=(0,y.useMemo)(()=>n?ka(n,{id:t?.id??null,waterfall:e.waterfall,dropped:i,excludedDisplay:e.excludedDisplay,fitOverlay:e.fitOverlay,baselineOverlay:e.baselineOverlay,peakOverlay:e.peakOverlay,derivOverlay:e.derivOverlay,selection:e.selection}):null,[n,e.fitOverlay,e.peakOverlay,e.baselineOverlay,e.derivOverlay,e.waterfall,t,i,e.excludedDisplay,e.selection]),s=(0,y.useMemo)(()=>{if(o)return o.series.map((t,n)=>n<a.length?e.seriesStyles[a[n]]:void 0)},[o,a,e.seriesStyles]),c=(0,y.useMemo)(()=>{if(o)return o.series.map((t,n)=>n<a.length?e.seriesLabels[a[n]]:void 0)},[o,a,e.seriesLabels]),l=(0,y.useMemo)(()=>t?$r(t.data,a,e.errKeys):new Map,[t,a,e.errKeys]),u=(0,y.useMemo)(()=>t?Ej(t.data,a,e.seriesStyles):new Map,[t,a,e.seriesStyles]),d=(0,y.useMemo)(()=>o?.series.map((t,n)=>n<a.length&&e.hiddenChannels.includes(a[n]))??void 0,[o,a,e.hiddenChannels]);return(0,y.useEffect)(()=>{let n=!1;if(!t){r(null);return}return Ra(t.data,e.yScale===`log`,e.xScale===`log`,a,e.y2Keys,e.xKey).then(i=>{if(n)return;let a=e.xKey==null?`continuous`:ha(t,e.xKey);r(va(i,t.data,e.xKey,a))}),()=>{n=!0}},[t,e.yScale,e.xScale,a,e.y2Keys,e.xKey]),{payload:n,displayPayload:o,plotted:a,styleList:s,labelList:c,errorBars:l,colorByColumns:u,hidden:d}}var sM=100;function cM(e){let t=1/0,n=-1/0,r=0;for(let i of e)if(!(i==null||!Number.isFinite(i))){if(i<=0)return!1;r+=1,i<t&&(t=i),i>n&&(n=i)}return r!==0&&n/t>=sM}function lM(e,t,n){function r(){e.current&&t&&e.current.setData(t.data,!0)}function i(){if(!t)return;let e=t.data,n=e[0]??[],r=[];for(let t=1;t<e.length;t++)r.push(...e[t]);let i=Z.getState();i.setXScale(cM(n)?`log`:`linear`),i.setYScale(cM(r)?`log`:`linear`),i.setXLim(null),i.setYLim(null),i.setStatus(`smart auto-scaled`)}function a(){if(!e.current)return;let t=n?.name.replace(/\.[^.]+$/,``)??`plot`;JO(e.current,`${t}.png`)}function o(){if(!t)return;let e=t.data[0]?.length??0,n=t.series.length+1;Ip(Pp(t)).then(t=>Z.getState().setStatus(t?`copied ${e}×${n} to clipboard`:`clipboard unavailable`))}function s(){let t=e.current;t&&ZO(t).then(async e=>{if(!e){X(`snapshot failed`,`danger`);return}let t=await Lp(e);X(t?`plot copied to clipboard`:`clipboard image unavailable`,t?`ok`:`danger`)})}return{resetView:r,smartScale:i,savePng:a,copyData:o,snapshot:s}}function uM(){let e=pd(),t=Z(e=>e.yScale),n=Z(e=>e.xScale),r=Z(e=>e.xLim),i=Z(e=>e.yLim),a=Z(e=>e.xStep),o=Z(e=>e.yStep),s=Z(e=>e.xFmt),c=Z(e=>e.yFmt),l=Z(e=>e.plotTitle),u=Z(e=>e.xAxisLabel),d=Z(e=>e.yAxisLabel),f=Z(e=>e.y2AxisLabel),p=Z(e=>e.showGrid),m=Z(e=>e.showLegend),h=Z(e=>e.plotTemplate),g=Z(e=>e.showAxisBox),_=Z(e=>e.defaultTrace),v=Z(e=>e.defaultLineWidth),b=Z(e=>e.wheelZoom),x=Z(e=>e.refLines),S=Z(e=>e.updateRefLine),C=Z(e=>e.annotations),w=Z(e=>e.regionShades),T=Z(e=>e.seriesStyles),E=Z(e=>e.seriesLabels),D=Z(e=>e.waterfall),k=Z(e=>e.excludedDisplay),A=Z(e=>e.xKey),j=Z(e=>e.yKeys),M=Z(e=>e.y2Keys),N=Z(e=>e.y2Lim),P=Z(e=>e.y2Scale),F=Z(e=>e.y2Step),I=Z(e=>e.errKeys),L=Z(e=>e.seriesOrder),R=Z(e=>e.hiddenChannels),z=Z(e=>e.theme),B=Z(e=>e.accent),V=Z(e=>e.plotWindows.find(t=>t.id===e.focusedWindowId)?.bg),{axesBg:H,inkColor:U,isDark:ee}=b_(V),W=Z(e=>e.plotWindows.find(t=>t.id===e.focusedWindowId)?.linkGroup??null),te=Z(e=>e.plotTool),ne=Z(e=>e.setPlotTool),{bridge:re,menu:ie,closeMenu:ae}=rM(te),oe=Z(e=>e.setRegionPicked),se=Z(e=>e.selection),ce=Z(e=>e.setRowSelection),le=Z(e=>e.integral),ue=Z(e=>e.fwhmResult),de=Z(e=>e.setIntegral),fe=Z(e=>e.setFwhmResult),pe=Z(e=>e.setQfitRoi),me=Z(e=>e.setGadgetCursors),he=Z(e=>e.gadgetMode),ge=aM(),_e=iM(),ve=Z(e=>e.stackMode),ye=Z(e=>e.spatialPanels),be=Z(e=>e.facetPanels),G=Z(e=>e.insetMode),xe=Z(e=>e.polarMode),Se=Z(e=>e.statMode),Ce=Z(e=>e.fitOverlay),we=Z(e=>e.peakOverlay),Te=Z(e=>e.baselineOverlay),Ee=Z(e=>e.derivOverlay),K=Z(e=>e.peakWizardEdit),q=Z(e=>e.baselineAnchorEdit),De=(0,y.useRef)(null),[Oe,ke]=(0,y.useState)(null),[Ae,je]=(0,y.useState)(null),[Me,Ne]=(0,y.useState)(null),[Pe,Fe]=(0,y.useState)(null),{displayPayload:Ie,plotted:Le,styleList:Re,labelList:ze,errorBars:Be,colorByColumns:Ve,hidden:He}=oM({active:e,yScale:t,xScale:n,xKey:A,yKeys:j,y2Keys:M,seriesOrder:L,seriesStyles:T,seriesLabels:E,errKeys:I,hiddenChannels:R,waterfall:D,excludedDisplay:k,fitOverlay:Ce,baselineOverlay:Te,peakOverlay:we,derivOverlay:Ee,selection:se});(0,y.useEffect)(()=>{je(null),Ne(null),te!==`qfit`&&Z.getState().clearQfit()},[te,e]),(0,y.useEffect)(()=>{e?.pending&&Z.getState().ensureBookData(e.id)},[e?.id,e?.pending]);let{resetView:Ue,smartScale:J,savePng:We,copyData:Ge,snapshot:Ke}=lM(De,Ie,e),qe=!!e&&(xe||Se)||ve&&(Le.length>=2||(ye?.length??0)>=2||(be?.length??0)>=1);(0,y.useEffect)(()=>(vo(Ie&&!qe?{payload:Ie,styleList:Re,labelList:ze,errorBars:Be,plotted:Le,colorByColumns:Ve,hidden:He}:null),()=>vo(null)),[Ie,Re,ze,Be,Le,Ve,He,qe]);let Je=Le.length;return xe&&e?(0,O.jsx)(Hj,{}):Se&&e?(0,O.jsx)($j,{}):ve&&(Je>=2||(ye?.length??0)>=2||(be?.length??0)>=1)?(0,O.jsx)(fj,{}):(0,O.jsxs)(XA,{className:`qzk-stage tool-${te}`,style:V&&V!==`theme`?{background:H}:void 0,onContextMenu:e=>{Ie&&(e.preventDefault(),!(e.buttons&1)&&Fe({x:e.clientX,y:e.clientY}))},onAxisDrop:_e,children:[(0,O.jsx)(Fj,{plotRef:De,displayPayload:Ie,theme:z,accent:B,insetTop:52,bg:V,syncKey:KA(W),yScale:t,xScale:n,xLim:r,yLim:i,xStep:a,yStep:o,y2Lim:N,y2Scale:P,y2Step:F,xFmt:s,yFmt:c,showGrid:p,axisBox:g,fontSize:HD(h).fontSize,baseLineWidth:h===`screen`?v:HD(h).lineWidth,defaultTrace:_,steppedPaths:hE,linearPaths:gE,pointsPaths:_E,wheelZoom:b,title:l,xAxisLabel:u,yAxisLabel:d,y2AxisLabel:f,refLines:x,onRefLineMove:S,annotations:C,annotationEdit:re,regionShades:w,seriesStyles:Re,plotted:Le,seriesLabels:ze,errorBars:Be,colorByColumns:Ve,hidden:He,tool:te,onReadout:ke,onRegionSelect:(e,t)=>{if(!Ie)return;let n=Oa(Ie.data[0],e,t);n&&oe(n),ne(`zoom`)},onRangeSelect:(e,t)=>{Ie&&ce(Ea(Ie.data[0],e,t))},onMeasure:je,onStats:Ne,integral:le,fwhmResult:ue,onIntegrate:de,onFwhm:fe,qfitRoi:Z.getState().qfitRoi,onRoiChange:pe,gadgetMode:he,gadgetCursors:Z.getState().gadgetCursors,onCursorsChange:me,peakWizardEdit:K,anchorEdit:q}),Pe&&Ie&&(0,O.jsx)(Tj,{x:Pe.x,y:Pe.y,plotRef:De,payload:Ie,plotted:Le,hidden:He,actions:{resetView:Ue,smartScale:J,savePng:We,copyData:Ge,snapshot:Ke},onClose:()=>Fe(null)}),ie&&(0,O.jsx)(aO,{x:ie.x,y:ie.y,items:ie.items,onClose:ae}),Ie&&(0,O.jsx)(Pj,{onReset:Ue,onSmartScale:J,onSavePng:We,onCopyData:Ge,onSnapshot:Ke,onSnapshotWindow:LA}),G&&Ie&&(0,O.jsx)(QA,{payload:Ie,styleList:Re}),!e&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{position:`absolute`,inset:0,display:`grid`,placeItems:`center`},children:`Select a dataset to plot`}),(0,O.jsx)(Aj,{tool:te,readout:Oe,measurement:Ae,stats:Me}),(0,O.jsx)(jj,{integral:le,fwhm:ue,onClearIntegral:()=>de(null),onClearFwhm:()=>fe(null),gadget:ge}),Ie&&m&&(0,O.jsx)(Oj,{series:Ie.series,styleList:Re,plotted:Le,hidden:He,colorByColumns:Ve,isDarkBg:ee,inkColor:U})]})}function dM({dataset:e,view:t}){let n=Z(e=>e.theme),r=Z(e=>e.accent);return(0,O.jsx)(Bj,{dataset:e,yKeys:t.yKeys,seriesStyles:t.seriesStyles,showGrid:t.showGrid,theme:n,accent:r})}var fM=()=>{};function pM({dataset:e,view:t}){let n=Z(e=>e.theme),r=Z(e=>e.accent),i=Yj({active:e,yKeys:t.yKeys,xKey:t.xKey,seriesOrder:t.seriesOrder,seed:null,onSeedConsumed:fM});return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(Uj,{data:i.draw,theme:n,accent:r}),i.error&&(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{position:`absolute`,inset:0,display:`grid`,placeItems:`center`,textAlign:`center`,padding:24},children:i.error}),i.note&&(0,O.jsx)(`div`,{className:`qzk-glass qzk-readout`,children:i.note})]})}var mM=[];function hM({dataset:e,view:t,bg:n}){let r=Z(e=>e.theme),i=Z(e=>e.accent),a=Z(e=>e.ensureBookData),o=(0,y.useId)(),{hostRef:s,hostStyle:c}=dj({active:e,datasets:mM,spatialPanels:null,facetPanels:null,breakPanels:null,yScale:t.yScale,xScale:t.xScale,xLim:t.xLim,yLim:t.yLim,xFmt:t.xFmt,yFmt:t.yFmt,showGrid:t.showGrid,showAxisBox:t.showAxisBox,refLines:t.refLines,seriesStyles:t.seriesStyles,xKey:t.xKey,yKeys:t.yKeys,y2Keys:t.y2Keys,errKeys:t.errKeys,hiddenChannels:t.hiddenChannels,seriesOrder:t.seriesOrder,tool:`zoom`,theme:r,accent:i,syncKey:`qz-win-stack-${o}`,bg:n,ensureBookData:a});return(0,O.jsx)(`div`,{ref:s,style:c})}function gM({dataset:e,view:t,bg:n,linkGroup:r}){return e?t.polarMode?(0,O.jsx)(dM,{dataset:e,view:t}):t.statMode?(0,O.jsx)(pM,{dataset:e,view:t}):t.stackMode&&Ca(e.data,t.yKeys,t.xKey,e.channelRoles,t.seriesOrder).length>=2?(0,O.jsx)(hM,{dataset:e,view:t,bg:n}):(0,O.jsx)(_M,{dataset:e,view:t,bg:n,linkGroup:r}):(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{position:`absolute`,inset:0,display:`grid`,placeItems:`center`},children:`No dataset — drag one onto this window, or focus it and pick from the Library`})}function _M({dataset:e,view:t,bg:n,linkGroup:r}){let i=Z(e=>e.theme),a=Z(e=>e.accent),o=Z(e=>e.defaultTrace),s=Z(e=>e.defaultLineWidth),c=Z(e=>e.excludedDisplay),l=(0,y.useRef)(null),{displayPayload:u,plotted:d,styleList:f,labelList:p,errorBars:m,colorByColumns:h,hidden:g}=oM({active:e,yScale:t.yScale,xScale:t.xScale,xKey:t.xKey,yKeys:t.yKeys,y2Keys:t.y2Keys,seriesOrder:t.seriesOrder,seriesStyles:t.seriesStyles,seriesLabels:t.seriesLabels,errKeys:t.errKeys,hiddenChannels:t.hiddenChannels,waterfall:t.waterfall,excludedDisplay:c,fitOverlay:null,baselineOverlay:null,peakOverlay:null,derivOverlay:null,selection:null});return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(Fj,{plotRef:l,displayPayload:u,theme:i,accent:a,yScale:t.yScale,xScale:t.xScale,xLim:t.xLim,yLim:t.yLim,xStep:t.xStep,yStep:t.yStep,y2Lim:t.y2Lim,y2Scale:t.y2Scale,y2Step:t.y2Step,xFmt:t.xFmt,yFmt:t.yFmt,showGrid:t.showGrid,axisBox:t.showAxisBox,fontSize:HD(t.plotTemplate).fontSize,baseLineWidth:t.plotTemplate===`screen`?s:HD(t.plotTemplate).lineWidth,defaultTrace:o,steppedPaths:hE,linearPaths:gE,pointsPaths:_E,wheelZoom:!1,title:t.plotTitle,xAxisLabel:t.xAxisLabel,yAxisLabel:t.yAxisLabel,y2AxisLabel:t.y2AxisLabel,refLines:t.refLines,annotations:t.annotations,regionShades:t.regionShades,seriesStyles:f,plotted:d,seriesLabels:p,errorBars:m,colorByColumns:h,hidden:g,tool:`zoom`,onReadout:()=>{},peakWizardEdit:null,anchorEdit:null,bg:n,syncKey:KA(r)}),t.insetMode&&u&&(0,O.jsx)(QA,{payload:u,styleList:f})]})}function vM(){return(0,O.jsx)(`div`,{className:`qzk-ds-meta`,style:{position:`absolute`,inset:0,display:`grid`,placeItems:`center`},children:`No dataset — drag one from the Library onto this window`})}function yM({dataset:e}){return e?(0,O.jsx)(EA,{datasetId:e.id}):(0,O.jsx)(vM,{})}function bM({dataset:e}){return e?(0,O.jsx)(Kk,{dataset:e}):(0,O.jsx)(vM,{})}var xM=Po();function SM(e){return!!e&&Array.from(e.types).includes(`application/x-qz-panel-cell`)}function CM({dataset:e,syncKey:t,windowId:n,index:r}){let i=Z(e=>e.theme),a=Z(e=>e.accent),o=Z(e=>e.defaultTrace),s=Z(e=>e.defaultLineWidth),c=Z(e=>e.excludedDisplay),l=Z(e=>e.reorderPanelDatasets),u=Z(e=>e.removeFromPanel),d=(0,y.useRef)(null),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(!1),{displayPayload:g,plotted:_,styleList:v,labelList:b,errorBars:x,colorByColumns:S,hidden:C}=oM({active:e,yScale:xM.yScale,xScale:xM.xScale,xKey:xM.xKey,yKeys:xM.yKeys,y2Keys:xM.y2Keys,seriesOrder:xM.seriesOrder,seriesStyles:xM.seriesStyles,seriesLabels:xM.seriesLabels,errKeys:xM.errKeys,hiddenChannels:xM.hiddenChannels,waterfall:xM.waterfall,excludedDisplay:c,fitOverlay:null,baselineOverlay:null,peakOverlay:null,derivOverlay:null,selection:null});return(0,O.jsxs)(`div`,{className:`qzk-panel-cell${f?` dragging`:``}${m?` drop-target`:``}`,children:[(0,O.jsxs)(`div`,{className:`qzk-panel-cell-hd`,draggable:!0,onDragStart:e=>{e.dataTransfer.setData(co,lo({windowId:n,fromIndex:r})),e.dataTransfer.effectAllowed=`move`,p(!0)},onDragEnd:()=>p(!1),onDragOver:e=>{SM(e.dataTransfer)&&(e.preventDefault(),m||h(!0))},onDragLeave:()=>h(!1),onDrop:e=>{if(!SM(e.dataTransfer))return;e.preventDefault(),h(!1);let t=uo(e.dataTransfer.getData(co));!t||t.windowId!==n||t.fromIndex===r||l(n,t.fromIndex,r)},children:[(0,O.jsx)(`span`,{className:`qzk-panel-cell-title`,title:e.name,children:e.name}),(0,O.jsx)(`button`,{type:`button`,className:`qzk-panel-cell-remove`,title:`Remove from panel`,"aria-label":`Remove ${e.name} from panel`,onClick:t=>{t.stopPropagation(),u(n,e.id)},children:`×`})]}),(0,O.jsx)(`div`,{className:`qzk-panel-cell-body`,children:(0,O.jsx)(Fj,{plotRef:d,displayPayload:g,theme:i,accent:a,yScale:xM.yScale,xScale:xM.xScale,xLim:null,yLim:null,xStep:null,yStep:null,y2Lim:null,y2Scale:null,y2Step:null,xFmt:xM.xFmt,yFmt:xM.yFmt,showGrid:xM.showGrid,axisBox:xM.showAxisBox,fontSize:HD(xM.plotTemplate).fontSize,baseLineWidth:s,defaultTrace:o,steppedPaths:hE,linearPaths:gE,pointsPaths:_E,wheelZoom:!1,title:``,xAxisLabel:xM.xAxisLabel,yAxisLabel:xM.yAxisLabel,y2AxisLabel:xM.y2AxisLabel,refLines:[],annotations:[],regionShades:[],seriesStyles:v,plotted:_,seriesLabels:b,errorBars:x,colorByColumns:S,hidden:C,tool:`zoom`,onReadout:()=>{},peakWizardEdit:null,anchorEdit:null,syncKey:t})})]})}var wM=Po();function TM({datasets:e}){let t=Z(e=>e.theme),n=Z(e=>e.accent),r=Z(e=>e.defaultTrace),i=Z(e=>e.defaultLineWidth),a=(0,y.useRef)(null),{payload:o,overflow:s}=(0,y.useMemo)(()=>go(e),[e,e.map(e=>[...Za(e)].join(`,`)).join(`|`)]),c=(0,y.useRef)(!1);return(0,y.useEffect)(()=>{s&&!c.current?(c.current=!0,X(`3+ unit families — plotting on left axis`,`info`)):s||(c.current=!1)},[s]),(0,O.jsx)(`div`,{className:`qzk-panel-overlay`,children:(0,O.jsx)(Fj,{plotRef:a,displayPayload:o,theme:t,accent:n,yScale:wM.yScale,xScale:wM.xScale,xLim:null,yLim:null,xStep:null,yStep:null,y2Lim:null,y2Scale:null,y2Step:null,xFmt:wM.xFmt,yFmt:wM.yFmt,showGrid:wM.showGrid,axisBox:wM.showAxisBox,fontSize:HD(wM.plotTemplate).fontSize,baseLineWidth:i,defaultTrace:r,steppedPaths:hE,linearPaths:gE,pointsPaths:_E,wheelZoom:!1,title:``,xAxisLabel:o.xLabel,yAxisLabel:``,y2AxisLabel:``,tool:`zoom`,onReadout:()=>{},peakWizardEdit:null,anchorEdit:null})})}function EM({text:e}){return(0,O.jsx)(`div`,{className:`qzk-panel-empty`,children:e})}function DM({win:e,datasets:t}){let n=e.panel?.layout??`grid`,r=e.panel?.datasetIds??[],i=r.map(e=>t.find(t=>t.id===e)).filter(e=>e!=null);if(i.length===0)return(0,O.jsx)(EM,{text:`No datasets — every dataset in this panel was removed. Close this window or drag a new one in from the Library.`});if(n===`overlay`)return(0,O.jsx)(TM,{datasets:i});let{rows:a,cols:o}=ro(n,i.length);return(0,O.jsx)(`div`,{className:`qzk-panel-grid`,style:{gridTemplateColumns:`repeat(${o}, 1fr)`,gridTemplateRows:`repeat(${a}, 1fr)`},children:i.map(t=>(0,O.jsx)(CM,{dataset:t,syncKey:ao(e.id),windowId:e.id,index:r.indexOf(t.id)},t.id))})}var OM={theme:`Theme`,light:`Light`,dark:`Dark`};function kM({win:e}){let t=Z(e=>e.closeWindow),n=Z(e=>e.setWindowBg),r=Z(e=>e.cycleWindowLinkGroup),i=Z(e=>e.toggleWindowPin);return(0,O.jsxs)(O.Fragment,{children:[e.kind===`plot`&&(0,O.jsxs)(`button`,{type:`button`,className:`qzk-plotwin-link${e.linkGroup==null?``:` linked`}`,title:e.linkGroup==null?`Not linked — click to cycle this window's link group (1 / 2 / 3 / off)`:`Link group ${e.linkGroup} — crosshair + x-range sync with same-group windows; click to cycle (1 / 2 / 3 / off)`,"aria-label":`Cycle window link group`,onPointerDown:e=>e.stopPropagation(),onClick:()=>r(e.id),children:[`⧟`,e.linkGroup!=null&&(0,O.jsx)(`span`,{className:`qzk-plotwin-link-n`,children:e.linkGroup})]}),e.kind===`plot`&&(0,O.jsx)(`button`,{type:`button`,className:`qzk-plotwin-pin${e.pinned?` pinned`:``}`,title:e.pinned?`Pinned — Library clicks won't retarget this window (an explicit drop still rebinds it)`:`Pin window — keep its dataset when clicking the Library`,"aria-label":e.pinned?`Unpin window`:`Pin window`,"aria-pressed":e.pinned,onPointerDown:e=>e.stopPropagation(),onClick:()=>i(e.id),children:`⚲`}),(e.kind===`plot`||e.kind===`snapshot`)&&(0,O.jsx)(`button`,{type:`button`,className:`qzk-plotwin-bg`,title:`Window background: ${OM[e.bg]} — click to cycle (Theme / Light / Dark)`,"aria-label":`Cycle window background`,onPointerDown:e=>e.stopPropagation(),onClick:()=>n(e.id,zo(e.bg)),children:`◐`}),(0,O.jsx)(`button`,{type:`button`,className:`qzk-plotwin-close`,"aria-label":`Close window`,onPointerDown:e=>e.stopPropagation(),onClick:()=>t(e.id)})]})}var AM=240,jM=160,MM=80,NM=28;function PM(e,t,n){return n?{x:Math.min(Math.max(0,e),Math.max(0,n.width-MM)),y:Math.min(Math.max(0,t),Math.max(0,n.height-NM))}:{x:Math.max(0,e),y:Math.max(0,t)}}function FM({win:e,focused:t,datasetName:n,datasetMeta:r,bounds:i,children:a}){let o=Z(e=>e.moveWindow),s=Z(e=>e.resizeWindow),c=Z(e=>e.focusWindow),l=Z(e=>e.toggleMaximizeWindow),u=Z(e=>e.renameWindow),d=Z(e=>e.rebindWindow),[f,p]=(0,y.useState)(!1),[m,h]=(0,y.useState)(null),g=e.title||n||`Untitled graph`,{axesBg:_}=b_(e.bg),v=()=>{m!=null&&m.trim()&&u(e.id,m.trim()),h(null)};(0,y.useEffect)(()=>{if(!i||e.winState===`maximized`)return;let t=PM(e.geometry.x,e.geometry.y,i);(t.x!==e.geometry.x||t.y!==e.geometry.y)&&o(e.id,t.x,t.y)},[i?.width,i?.height,e.id,e.winState]);let b=(0,y.useRef)(null),x=(0,y.useRef)(null),S=(0,y.useRef)(!1),C=(0,y.useRef)(null),w=(0,y.useCallback)(()=>{S.current=!1,C.current=null;let t=x.current,n=b.current;!t||!n||(n.mode===`move`?o(e.id,t.a,t.b):s(e.id,t.a,t.b))},[e.id,o,s]),T=(0,y.useCallback)((e,t)=>{x.current={a:e,b:t},S.current||(S.current=!0,C.current=requestAnimationFrame(w))},[w]),E=(0,y.useCallback)(e=>{let t=b.current;if(!t)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;if(t.mode===`move`){let a=t.origX+n,o=t.origY+r;e.altKey||({x:a,y:o}=Cs({x:a,y:o,w:t.origW,h:t.origH},i,t.siblings));let s=PM(a,o,i);T(s.x,s.y)}else{let a=Math.max(AM,t.origW+n),o=Math.max(jM,t.origH+r);if(!e.altKey){let e=ws({x:t.origX,y:t.origY,w:a,h:o},i,t.siblings);a=Math.max(AM,e.w),o=Math.max(jM,e.h)}T(a,o)}},[T,i]),D=(0,y.useCallback)(()=>{b.current=null,window.removeEventListener(`pointermove`,E),window.removeEventListener(`pointerup`,D)},[E]);(0,y.useEffect)(()=>()=>{C.current!=null&&cancelAnimationFrame(C.current),window.removeEventListener(`pointermove`,E),window.removeEventListener(`pointerup`,D)},[E,D]);let k=t=>n=>{n.button===0&&(n.preventDefault(),b.current={mode:t,startX:n.clientX,startY:n.clientY,origX:e.geometry.x,origY:e.geometry.y,origW:e.geometry.w,origH:e.geometry.h,siblings:Z.getState().plotWindows.filter(t=>t.id!==e.id&&t.winState!==`minimized`).map(e=>e.geometry)},window.addEventListener(`pointermove`,E),window.addEventListener(`pointerup`,D))},A=()=>{t||c(e.id)},j=e.winState===`maximized`,M=j?{position:`absolute`,inset:0}:{position:`absolute`,left:e.geometry.x,top:e.geometry.y,width:e.geometry.w,height:e.geometry.h,zIndex:e.z};return(0,O.jsxs)(`div`,{className:`qzk-plotwin${t?` focused`:``}${f?` dropping`:``}`,style:M,onPointerDownCapture:A,onContextMenuCapture:e=>{t||e.preventDefault()},onDragOver:t=>{e.kind===`snapshot`||e.kind===`panel`||!t.dataTransfer.types.includes(`application/x-qz-dataset`)||(t.preventDefault(),f||p(!0))},onDragLeave:()=>p(!1),onDrop:t=>{if(e.kind===`snapshot`||e.kind===`panel`||!t.dataTransfer.types.includes(`application/x-qz-dataset`))return;t.preventDefault(),t.stopPropagation(),p(!1);let n=t.dataTransfer.getData(QD);n&&d(e.id,n)},children:[(0,O.jsxs)(`div`,{className:`qzk-plotwin-titlebar`,onPointerDown:k(`move`),onDoubleClick:()=>l(e.id),children:[m==null?(0,O.jsx)(`span`,{className:`qzk-plotwin-title`,title:`${g} — double-click to rename`,onDoubleClick:e=>{e.stopPropagation(),h(g)},children:g}):(0,O.jsx)(`input`,{className:`qz-input qzk-plotwin-rename`,autoFocus:!0,value:m,onPointerDown:e=>e.stopPropagation(),onChange:e=>h(e.target.value),onBlur:v,onKeyDown:e=>{e.key===`Enter`&&v(),e.key===`Escape`&&h(null)}}),e.kind===`snapshot`&&(0,O.jsx)(`span`,{className:`qzk-plotwin-frozen`,title:`Frozen snapshot — captured at freeze time; does not follow the source dataset`,children:(0,O.jsx)(we,{tone:`accent`,children:`⎘ frozen`})}),e.kind===`worksheet`&&(0,O.jsx)(`span`,{className:`qzk-plotwin-kind`,title:`Worksheet window — the bound dataset's live, editable sheet`,children:(0,O.jsx)(we,{tone:`accent`,children:`▦ sheet`})}),e.kind===`map`&&(0,O.jsx)(`span`,{className:`qzk-plotwin-kind`,title:`Map window — 2-D map of the bound dataset`,children:(0,O.jsx)(we,{tone:`accent`,children:`▩ map`})}),e.kind===`panel`&&(0,O.jsx)(`span`,{className:`qzk-plotwin-kind`,title:`${e.panel?.layout??`grid`} panel — ${(e.panel?.datasetIds??[]).length} dataset(s)`,children:(0,O.jsxs)(we,{tone:`accent`,children:[`⊞ `,e.panel?.layout??`grid`]})}),n&&(0,O.jsx)(`span`,{className:`qzk-plotwin-badge`,children:n}),r&&(0,O.jsxs)(we,{tone:`accent`,className:`qzk-plotwin-meta`,children:[r.channels,`ch · `,r.rows,`pts`]}),(0,O.jsx)(kM,{win:e})]}),(0,O.jsx)(`div`,{className:`qzk-plotwin-body`,style:e.bg===`theme`?void 0:{background:_},children:a}),!j&&(0,O.jsx)(`div`,{className:`qzk-plotwin-resize`,"aria-hidden":`true`,onPointerDown:k(`resize`)})]})}function IM({frozen:e,view:t,bg:n}){let r=Z(e=>e.theme),i=Z(e=>e.accent),a=Z(e=>e.defaultTrace),o=Z(e=>e.defaultLineWidth),s=(0,y.useRef)(null),c=(0,y.useMemo)(()=>xo(e.errorBars),[e]),l=(0,y.useMemo)(()=>Co(e.styleList),[e]),u=(0,y.useMemo)(()=>wo(e.labelList),[e]),d=(0,y.useMemo)(()=>So(e.colorByColumns),[e]),f=(0,y.useMemo)(()=>e.hidden??void 0,[e]);return(0,O.jsx)(Fj,{plotRef:s,displayPayload:e.payload,theme:r,accent:i,yScale:t.yScale,xScale:t.xScale,xLim:t.xLim,yLim:t.yLim,xStep:t.xStep,yStep:t.yStep,y2Lim:t.y2Lim,y2Scale:t.y2Scale,y2Step:t.y2Step,xFmt:t.xFmt,yFmt:t.yFmt,showGrid:t.showGrid,axisBox:t.showAxisBox,fontSize:HD(t.plotTemplate).fontSize,baseLineWidth:t.plotTemplate===`screen`?o:HD(t.plotTemplate).lineWidth,defaultTrace:a,steppedPaths:hE,linearPaths:gE,pointsPaths:_E,wheelZoom:!1,title:t.plotTitle,xAxisLabel:t.xAxisLabel,yAxisLabel:t.yAxisLabel,y2AxisLabel:t.y2AxisLabel,refLines:t.refLines,annotations:t.annotations,regionShades:t.regionShades,seriesStyles:l,plotted:e.plotted,seriesLabels:u,errorBars:c,colorByColumns:d,hidden:f,tool:`zoom`,onReadout:()=>{},peakWizardEdit:null,anchorEdit:null,bg:n})}function LM(){let e=Z(e=>e.plotWindows),t=Z(e=>e.focusedWindowId),n=Z(e=>e.datasets),r=Z(e=>e.restoreWindow),i=Z(e=>e.setPlotCanvasBounds),a=Z(e=>e.createWindowAt),o=Z(e=>e.focusWindow),s=(0,y.useRef)(null),[c,l]=(0,y.useState)(void 0),[u,d]=(0,y.useState)(!1);if((0,y.useEffect)(()=>{let e=s.current;if(!e)return;let t=new ResizeObserver(([e])=>{let t=e?.contentRect;t&&(l({width:t.width,height:t.height}),i({width:t.width,height:t.height}))});return t.observe(e),()=>{t.disconnect(),i(null)}},[i]),(0,y.useEffect)(()=>{for(let t of e){if(t.winState===`minimized`||!t.datasetId)continue;let e=n.find(e=>e.id===t.datasetId);e?.pending&&Z.getState().ensureBookData(e.id)}},[e,n]),e.length===1&&e[0].winState===`maximized`)return(0,O.jsx)(uM,{});let f=e.filter(e=>e.winState!==`minimized`),p=e.filter(e=>e.winState===`minimized`);return(0,O.jsxs)(`div`,{className:`qzk-wincanvas`,children:[(0,O.jsx)(`div`,{className:`qzk-wincanvas-frames${u?` dropping`:``}`,ref:s,onDragOver:e=>{e.dataTransfer.types.includes(`application/x-qz-dataset`)&&(e.preventDefault(),u||d(!0))},onDragLeave:()=>d(!1),onDrop:e=>{if(!e.dataTransfer.types.includes(`application/x-qz-dataset`))return;e.preventDefault(),d(!1);let t=e.dataTransfer.getData(QD);if(!t)return;let n=s.current?.getBoundingClientRect(),r=a(t,e.clientX-(n?.left??0),e.clientY-(n?.top??0));o(r)},children:f.map(e=>{let r=e.id===t,i=e.datasetId?n.find(t=>t.id===e.datasetId)??null:null,a=i?{channels:i.data.labels.length,rows:i.data.time.length}:void 0;return(0,O.jsx)(FM,{win:e,focused:r,datasetName:i?.name,datasetMeta:a,bounds:c,children:e.kind===`snapshot`&&e.snapshot?(0,O.jsx)(IM,{frozen:e.snapshot,view:e.view,bg:e.bg}):e.kind===`worksheet`?(0,O.jsx)(yM,{dataset:i}):e.kind===`map`?(0,O.jsx)(bM,{dataset:i}):e.kind===`panel`?(0,O.jsx)(DM,{win:e,datasets:n}):r?(0,O.jsx)(uM,{}):(0,O.jsx)(gM,{dataset:i,view:e.view,bg:e.bg,linkGroup:e.linkGroup})},e.id)})}),p.length>0&&(0,O.jsx)(`div`,{className:`qzk-winstrip`,children:p.map(e=>{let t=e.datasetId?n.find(t=>t.id===e.datasetId)??null:null,i=e.title||t?.name||`Untitled graph`;return(0,O.jsx)(`button`,{type:`button`,className:`qzk-winstrip-item`,title:`Restore "${i}"`,onClick:()=>r(e.id),children:i},e.id)})})]})}var RM=[{id:`plot`,label:`Plot`},{id:`map`,label:`Map`},{id:`worksheet`,label:`Worksheet`}];function zM(){let e=Z(e=>e.stageTab),t=Z(e=>e.setStageTab);return GA(),MA(),(0,O.jsxs)(`section`,{className:`qzk-stage-cell`,children:[(0,O.jsx)(`div`,{className:`qzk-tabs`,children:RM.map(n=>(0,O.jsx)(`span`,{className:`qzk-tab${e===n.id?` active`:``}`,onClick:()=>t(n.id),children:n.label},n.id))}),e===`plot`?(0,O.jsx)(LM,{}):e===`map`?(0,O.jsx)(Kk,{}):(0,O.jsx)(OA,{})]})}function BM(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n.length===0)return{score:0,hits:[]};let i=[],a=0,o=0,s=-2;for(let e=0;e<n.length;e++){let t=n[e],c=-1;for(;o<r.length;){if(r[o]===t){c=o;break}o++}if(c===-1)return null;a+=1,c===s+1&&(a+=2),(c===0||r[c-1]===` `||r[c-1]===`-`)&&(a+=3),i.push(c),s=c,o=c+1}return a-=r.length*.01,{score:a,hits:i}}function VM({actions:e}){let t=Z(e=>e.cmdkOpen),n=Z(e=>e.setCmdk),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(0),[s,c]=(0,y.useState)([]),l=(0,y.useRef)(null);(0,y.useEffect)(()=>{t&&(i(``),o(0),c(kO.getState().menuCommands),requestAnimationFrame(()=>l.current?.focus()))},[t]);let u=(0,y.useMemo)(()=>AO(e,s),[e,s]),d=(0,y.useMemo)(()=>u.map(e=>{let t=BM(r,e.label);if(t)return{a:e,m:t};let n=e.keywords?BM(r,e.keywords):null;return{a:e,m:n?{score:n.score,hits:[]}:null}}).filter(e=>!!e.m).sort((e,t)=>t.m.score-e.m.score),[u,r]);if((0,y.useEffect)(()=>{o(0)},[r]),!t)return null;let f=e=>{n(!1),e.run()},p=e=>{e.key===`Escape`?n(!1):e.key===`ArrowDown`?(e.preventDefault(),o(e=>Math.min(d.length-1,e+1))):e.key===`ArrowUp`?(e.preventDefault(),o(e=>Math.max(0,e-1))):e.key===`Enter`&&d[a]&&f(d[a].a),e.stopPropagation()},m=``;return(0,O.jsx)(`div`,{className:`qz-overlay-backdrop`,onMouseDown:()=>n(!1),children:(0,O.jsxs)(`div`,{className:`qzk-glass qz-cmdk`,onMouseDown:e=>e.stopPropagation(),children:[(0,O.jsx)(`input`,{ref:l,className:`qz-cmdk-input`,placeholder:`Type a command…`,value:r,onChange:e=>i(e.target.value),onKeyDown:p}),(0,O.jsxs)(`div`,{className:`qz-cmdk-list`,children:[d.length===0&&(0,O.jsx)(`div`,{className:`qz-cmdk-empty`,children:`No matching commands`}),d.map(({a:e,m:t},n)=>{let r=e.group===m?null:(0,O.jsx)(`div`,{className:`qz-cmdk-group`,children:e.group});return m=e.group,(0,O.jsxs)(`div`,{children:[r,(0,O.jsxs)(`div`,{className:`qz-cmdk-item${n===a?` active`:``}`,onMouseEnter:()=>o(n),onMouseDown:()=>f(e),children:[(0,O.jsx)(`span`,{children:HM(e.label,t.hits)}),e.shortcut&&(0,O.jsx)(`span`,{className:`qz-shortcut`,children:e.shortcut})]})]},e.id)})]})]})})}function HM(e,t){if(t.length===0)return e;let n=new Set(t);return e.split(``).map((e,t)=>n.has(t)?(0,O.jsx)(`mark`,{className:`qz-cmdk-hit`,children:e},t):e)}async function UM(){try{return{data:await tt(),name:`demo_vsm.csv`,offline:!1}}catch{return{data:wO(),name:`demo-offline.dat`,offline:!0}}}var WM=`qz.autosave`;function GM(e){try{return e.datasets.length===0?(localStorage.removeItem(WM),!0):(localStorage.setItem(WM,Ks(e)),!0)}catch{return!1}}function KM(){try{let e=localStorage.getItem(WM);if(!e)return null;let t=ec(e);return t.datasets.length?t:null}catch{return null}}function qM(){try{localStorage.removeItem(WM)}catch{}}async function JM(e,t){let n=e().datasets.find(t=>t.id===e().activeId);if(!n){e().setStatus(`no dataset to export`),X(`no dataset to export`,`danger`);return}try{let r=await e().resolveDataset(n.id);if(!r)return;let i=r.name.replace(/\.[^.]+$/,``);await t(i,r),X(`exported ${i}`,`ok`)}catch(t){let n=`export failed: ${t instanceof Error?t.message:`error`}`;e().setStatus(n),X(n,`danger`)}}async function YM(e){let t=await Re(`Export figure`,[{key:`fmt`,label:`Format`,type:`select`,default:`pdf`,options:[`pdf`,`svg`,`png`,`tiff`],hint:`PDF / SVG are vector; PNG / TIFF are raster`},{key:`style`,label:`Style`,type:`select`,default:`default`,options:[`default`,`aps`,`nature`,`thesis`,`report`,`web`,`presentation`,`poster`],hint:`Publication preset: sets font, size, line width, grid`},{key:`dpi`,label:`DPI (raster)`,type:`number`,default:300,hint:`Resolution for PNG / TIFF (50–1200); ignored by vector`},{key:`title`,label:`Title`,type:`text`,default:``},{key:`x_label`,label:`X label`,type:`text`,default:``,hint:`Blank = derive from the data column`},{key:`y_label`,label:`Y label`,type:`text`,default:``}]);if(!t)return;let n=t.x_label.trim(),r=t.y_label.trim();JM(e,(i,a)=>{let o=e().yKeys??a.data.labels.map((e,t)=>t);return ir({dataset:a.data,y_keys:e().yKeys??void 0,x_scale:e().xScale,y_scale:e().yScale,x_fmt:xl(e().xFmt),y_fmt:xl(e().yFmt),fmt:t.fmt,style:t.style,dpi:t.dpi,title:t.title.trim(),x_label:n||void 0,y_label:r||void 0,series_styles:W_(o,e().seriesStyles),overrides:XM(e),filename:i})})}function XM(e){let t=e();return sg({legend:t.showLegend?t.legendXY?{show:!0,loc:`custom`,anchor:t.legendXY}:{show:!0,loc:ag(t.legendPos)}:{show:!1},annotations:t.annotations.filter(e=>Number.isFinite(e.x)&&Number.isFinite(e.y)).map(e=>({x:e.x,y:e.y,text:e.text,...e.size?{size:e.size}:{},...e.anchor===`page`?{anchor:`page`}:{}}))})??void 0}var ZM=`.otp,.otpu`;function QM(e){let t=new FormData;return t.append(`file`,e,e.name),Je(`/api/import/template/upload`,t)}function $M(e,t){if(typeof e!=`object`||!e||Array.isArray(e))return null;let n=e,r=typeof n.name==`string`&&n.name.trim()?n.name.trim():t;return r?{name:r,style:typeof n.style==`string`&&n.style?n.style:`default`,overrides:typeof n.overrides==`object`&&n.overrides!==null&&!Array.isArray(n.overrides)?n.overrides:null,seriesStyles:Array.isArray(n.seriesStyles)?n.seriesStyles:null,source:`origin`}:null}function eN(e,t){if(!t.has(e))return e;for(let n=2;;n++){let r=`${e} (${n})`;if(!t.has(r))return r}}async function tN(e){let t=$M(await QM(e),e.name.replace(/\.[^.]+$/,``));if(!t)throw Error(`"${e.name}" did not decode to a graph template`);let n={...t,name:eN(t.name,new Set(As().map(e=>e.name)))};return js(n),n}async function nN(e){let t=[];for(let n of e)try{let e=await tN(n);t.push(e),X(`imported graph template "${e.name}"`,`ok`)}catch(e){X(`${n.name}: ${e instanceof Error?e.message:`template import failed`}`,`danger`)}return t}var rN=0,iN=0;function aN(e,t,n){return()=>vl(r=>{let i=r[0];i&&i.text().then(e=>n(ec(e))).catch(n=>e().setStatus(`${t} failed: ${n instanceof Error?n.message:`error`}`))},`.dwk,.json`)}function oN(e){return[{id:`import`,group:`File`,label:`Import data…`,shortcut:`⌘O`,run:()=>vl(t=>void e().importFiles(t))},{id:`import-append`,group:`File`,label:`Import & append as one dataset…`,keywords:`combine concatenate merge multi-file append`,run:()=>vl(t=>void e().importFilesAppended(t),_l)},{id:`import-wizard`,group:`File`,label:`Import wizard (guided preview + saved filters)…`,keywords:`guess preview parse delimiter header units filter messy`,run:()=>e().setImportWizardOpen(!0)},{id:`import-origin-template`,group:`File`,label:`Import Origin template (.otp/.otpu)…`,keywords:`otp otpu origin graph template style preset`,run:()=>vl(e=>void nN(e),ZM)},{id:`demo`,group:`File`,label:`Add demo dataset`,run:()=>e().addDataset({id:`demo-${++rN}`,name:`demo-${rN}.dat`,data:wO()})},{id:`load-sample`,group:`File`,label:`Load sample dataset (bundled)`,keywords:`demo example first-run VSM hysteresis try this`,run:()=>{UM().then(({data:t,name:n,offline:r})=>{e().addDataset({id:`sample-${++iN}`,name:n,data:t});let i=r?`sample endpoint unavailable — added offline demo instead`:`loaded sample dataset (${n})`;e().setStatus(i),X(i,r?`info`:`ok`)})}},{id:`save-workspace`,group:`File`,label:`Save workspace (.dwk)…`,run:()=>e().saveWorkspaceToFile()},{id:`open-workspace`,group:`File`,label:`Open workspace (.dwk)…`,run:aN(e,`open`,t=>e().loadWorkspace(t))},{id:`append-workspace`,group:`File`,label:`Append workspace (.dwk)…`,keywords:`merge combine import project origin append second library`,run:aN(e,`append`,t=>e().appendWorkspace(t))},{id:`clear-autosave`,group:`File`,label:`Clear autosaved workspace…`,run:()=>{qM(),e().setStatus(`autosaved workspace cleared (current library unchanged)`)}},{id:`remove-all`,group:`File`,label:`Remove all…`,run:()=>{let t=e().datasets.length;if(t===0){e().setStatus(`library is already empty`);return}Ne(`Remove everything?`,`This removes all ${t} dataset${t===1?``:`s`}, plus every folder and imported figure. This can't be undone.`,`Remove all`,!0).then(t=>{t&&(e().clearAll(),X(`removed all datasets`,`ok`))})}},{id:`theme`,group:`View`,label:`Toggle theme`,run:()=>e().setTheme(e().theme===`dark`?`light`:`dark`)},{id:`yLog`,group:`Plot`,label:`Cycle Y axis scale (linear/log/reciprocal)`,run:()=>e().setYScale(Mo(e().yScale))},{id:`yTickFormat`,group:`Plot`,label:`Cycle Y tick format (auto/fixed/sci/eng)`,run:()=>e().setYFmt({...e().yFmt,mode:No(e().yFmt.mode)})},{id:`density`,group:`View`,label:`Cycle density`,run:()=>{let t=[`compact`,`regular`,`comfy`];e().setDensity(t[(t.indexOf(e().density)+1)%t.length])}},{id:`accent`,group:`View`,label:`Cycle accent color`,run:()=>{let t=[`violet`,`teal`,`ocean`,`amber`,`rose`];e().setAccent(t[(t.indexOf(e().accent)+1)%t.length])}},{id:`left`,group:`View`,label:`Toggle library panel`,shortcut:`⌘[`,run:()=>e().toggleLeft()},{id:`right`,group:`View`,label:`Toggle inspector panel`,shortcut:`⌘]`,run:()=>e().toggleRight()},{id:`curvefit`,group:`Analyze`,label:`Curve fit…`,run:()=>e().setCurveFitOpen(!0)},{id:`hysteresis`,group:`Analyze`,label:`Hysteresis analysis…`,run:()=>e().setHysteresisOpen(!0)},{id:`magtools`,group:`Analyze`,label:`Magnetometry (background · units)…`,run:()=>e().setMagToolsOpen(!0)},{id:`peaks`,group:`Analyze`,label:`Find peaks…`,run:()=>e().setPeaksOpen(!0)},{id:`reflectivity`,group:`Analyze`,label:`Reflectivity model…`,run:()=>e().setReflectivityOpen(!0)},{id:`reflview`,group:`Analyze`,label:`Reflectometry view (data + model + SLD)…`,run:()=>e().setReflViewOpen(!0)},{id:`baseline`,group:`Analyze`,label:`Baseline / background…`,run:()=>e().setBaselineOpen(!0)},{id:`calculators`,group:`Analyze`,label:`DiraCulator — materials calculators…`,keywords:`diraculator calculator units constants semiconductor superconductor magnetic crystal sld optics thermal vacuum electrical electrochemistry diffusion substrates thinfilm periodic table elements xray`,run:()=>e().setCalculatorsOpen(!0)},{id:`rsm`,group:`Analyze`,label:`RSM analysis (strain · relaxation)…`,run:()=>e().setRsmOpen(!0)},{id:`digitizer`,group:`Analyze`,label:`Graph digitizer (trace a curve from an image)…`,run:()=>e().setDigitizerOpen(!0)},{id:`reductions-wh`,group:`Analyze`,label:`Williamson-Hall…`,run:()=>e().openReductions(`williamson-hall`)},{id:`reductions-fft`,group:`Analyze`,label:`Film thickness (FFT)…`,run:()=>e().openReductions(`fft-thickness`)},{id:`reductions-reflfft`,group:`Analyze`,label:`Reflectivity FFT…`,run:()=>e().openReductions(`reflectivity-fft`)},{id:`dataset-math`,group:`Data`,label:`Dataset math (combine two datasets)…`,run:()=>e().setDatasetMathOpen(!0)},{id:`tabulate`,group:`Data`,label:`Tabulate (group summary stats by column)…`,run:()=>e().setTabulateOpen(!0)},{id:`distribution`,group:`Analyze`,label:`Distribution (histogram + normality of a column)…`,run:()=>e().setDistributionOpen(!0)},{id:`stats-chooser`,group:`Analyze`,label:`Test chooser (which stats test? + run it)…`,run:()=>e().setStatsChooserOpen(!0)},{id:`graph-builder`,group:`Analyze`,label:`Graph Builder (drag columns into X/Y/Group wells)…`,keywords:`plot spec scatter line box violin bar mark morph drop zone well facet`,run:()=>e().setGraphBuilderOpen(!0)},{id:`peak-wizard`,group:`Analyze`,label:`Peak Analyzer (baseline → find → fit → report wizard)…`,run:()=>e().setPeakWizardOpen(!0)},{id:`pipeline`,group:`Data`,label:`Pipeline (edit + re-run recorded steps)…`,run:()=>e().setPipelineOpen(!0)},{id:`recalc-now`,group:`Data`,label:`Recalculate now (run stale corrections + fits)`,run:()=>void e().recalcNow()},{id:`recalc-mode`,group:`Data`,label:`Recalc mode (cycle auto → manual → off)`,run:()=>{let t=[`auto`,`manual`,`off`],n=e().recalcMode,r=t[(t.indexOf(n)+1)%t.length];e().setRecalcMode(r),e().setStatus(`recalc mode: ${r}`)}},{id:`data-filter`,group:`Data`,label:`Data filter (live per-column row filter)…`,run:()=>e().setDataFilterOpen(!0)},{id:`column-switcher`,group:`View`,label:`Column switcher (flip through channels)…`,run:()=>e().setColumnSwitcherOpen(!0)},{id:`export-csv`,group:`File`,label:`Export XRD CSV…`,run:()=>JM(e,(e,t)=>Qn({dataset:t.data,filename:e}))},{id:`export-hdf5`,group:`File`,label:`Export HDF5…`,run:()=>JM(e,(e,t)=>$n(t.raw?{dataset:t.raw,corrected:t.data,filename:e}:{dataset:t.data,filename:e}))},{id:`figure-builder`,group:`File`,label:`Figure builder (live preview)…`,run:()=>e().setFigureBuilderOpen(!0)},{id:`figure-page`,group:`File`,label:`Figure page (multi-panel)…`,run:()=>e().setFigurePageOpen(!0)},{id:`waterfall`,group:`Plot`,label:`Waterfall (stack datasets)…`,run:()=>e().setWaterfallOpen(!0)},{id:`export-figure`,group:`File`,label:`Export figure…`,run:()=>YM(e)},{id:`export-origin`,group:`File`,label:`Export Origin (.ogs)…`,run:()=>JM(e,(t,n)=>er({dataset:n.data,filename:t,log_x:e().xScale===`log`,log_y:e().yScale===`log`,graph:{y_keys:e().yKeys,x_key:e().xKey,x_log:e().xScale===`log`,y_log:e().yScale===`log`,x_lim:e().xLim,y_lim:e().yLim,y2_keys:e().y2Keys??[]}}))},{id:`send-to-origin`,group:`File`,label:`Send to Origin (COM)…`,run:async()=>{let t=e().datasets,n=t.filter(t=>e().selectedIds.includes(t.id)),r=n.length>0?n:t.filter(t=>t.id===e().activeId);if(r.length===0){e().setStatus(`no dataset to send`),X(`no dataset to send`,`danger`);return}try{let{available:t}=await tr();if(!t){let t=`Origin COM unavailable (needs Windows + QZ_ORIGIN_COM=1 + a running Origin) — use Export Origin (.ogs) instead`;e().setStatus(t),X(t,`danger`);return}let n=`sent to Origin: ${(await nr({datasets:(await e().resolveDatasets(r.map(e=>e.id))).map(e=>({dataset:e.data,name:e.name.replace(/\.[^.]+$/,``)}))})).books.join(`, `)}`;e().setStatus(n),X(n,`ok`)}catch(t){let n=`send failed: ${t instanceof Error?t.message:`error`}`;e().setStatus(n),X(n,`danger`)}}},{id:`export-consolidated`,group:`File`,label:`Export consolidated CSV…`,run:async()=>{let t=e().datasets;if(t.length===0){e().setStatus(`no datasets to consolidate`);return}try{await rr({datasets:(await e().resolveDatasets(t.map(e=>e.id))).map(e=>({dataset:e.data,name:e.name}))})}catch(t){e().setStatus(`export failed: ${t instanceof Error?t.message:`error`}`)}}},{id:`worksheet`,group:`View`,label:`Show worksheet`,run:()=>e().setStageTab(`worksheet`)},{id:`plot`,group:`View`,label:`Show plot`,run:()=>e().setStageTab(`plot`)},{id:`preferences`,group:`File`,label:`Preferences…`,shortcut:`⌘,`,run:()=>e().setPrefsOpen(!0)},{id:`palette`,group:`Edit`,label:`Command palette…`,shortcut:`⌘K`,run:()=>e().setCmdk(!0)},{id:`paste-data`,group:`Edit`,label:`Paste data`,shortcut:`⌘V`,keywords:`clipboard import tsv csv table`,run:()=>void e().pasteDataFromClipboard()},{id:`merge`,group:`Data`,label:`Merge selected datasets`,run:()=>e().mergeSelected()},{id:`duplicate`,group:`Data`,label:`Duplicate active dataset`,run:()=>{let t=e().activeId;t&&e().duplicateDataset(t)}},{id:`reimport`,group:`Data`,label:`Re-import active dataset`,run:()=>{let t=e().activeId;t&&e().reimportDataset(t)}},...[[`panel-row`,`Panel: side by side`,`row`],[`panel-column`,`Panel: stacked`,`column`],[`panel-grid`,`Panel: grid`,`grid`],[`panel-overlay`,`Overlay in one plot`,`overlay`]].map(([t,n,r])=>({id:t,group:`Data`,label:n,run:()=>{let t=e().selectedIds;if(t.length<2){X(`select at least 2 datasets first`,`danger`);return}e().focusWindow(e().createPanelWindow(t,r))}})),{id:`autoscale`,group:`Plot`,label:`Autoscale / reset view`,shortcut:`A`,run:()=>{e().setXLim(null),e().setYLim(null)}},{id:`xLog`,group:`Plot`,label:`Cycle X axis scale (linear/log/reciprocal)`,run:()=>e().setXScale(Mo(e().xScale))},{id:`xTickFormat`,group:`Plot`,label:`Cycle X tick format (auto/fixed/sci/eng)`,run:()=>e().setXFmt({...e().xFmt,mode:No(e().xFmt.mode)})},{id:`grid`,group:`Plot`,label:`Toggle grid lines`,run:()=>e().setShowGrid(!e().showGrid)},{id:`legend`,group:`Plot`,label:`Toggle legend`,run:()=>e().setShowLegend(!e().showLegend)},{id:`stacked`,group:`Plot`,label:`Toggle stacked layout`,run:()=>e().setStackMode(!e().stackMode)},{id:`statMode`,group:`Plot`,label:`Toggle statistics view (box / violin / Q-Q / histogram)`,run:()=>e().setStatMode(!e().statMode)},{id:`facet-by-column`,group:`Plot`,label:`Facet by column…`,run:async()=>{let t=e().datasets.find(t=>t.id===e().activeId);if(!t){X(`no active dataset`,`danger`);return}if(t.data.labels.length===0){X(`active dataset has no columns to facet by`,`danger`);return}let n=t.data.labels.map((e,t)=>e||`Column ${t+1}`),r=new Map;for(let e of n)r.set(e,(r.get(e)??0)+1);let i=n.map((e,t)=>r.get(e)>1?`${e} (col ${t+1})`:e),a=await Re(`Facet by column`,[{key:`column`,label:`Column`,type:`select`,default:i[0],options:i,hint:`One small-multiples panel per distinct level, sharing the x-axis`}]);if(!a)return;let o=i.indexOf(String(a.column));o<0||e().facetByColumn(t.id,o)}},{id:`break-x-axis`,group:`Plot`,label:`Break x-axis at gaps…`,run:async()=>{let t=e().datasets.find(t=>t.id===e().activeId);if(!t){X(`no active dataset`,`danger`);return}let n=await Re(`Break x-axis at gaps`,[{key:`gapFactor`,label:`Gap factor`,type:`number`,default:4,hint:`A gap at least this many times the median x-spacing becomes a break`}]);n&&e().breakAtGaps(t.id,void 0,Number(n.gapFactor))}},{id:`shortcuts`,group:`Help`,label:`Keyboard shortcuts`,shortcut:`?`,run:()=>e().setShortcutsOpen(!0)},{id:`text-format-help`,group:`Help`,label:`Text formatting`,run:()=>e().setTextFormatHelpOpen(!0)}]}function sN(e){switch(e.toLowerCase()){case`z`:return`zoom`;case`h`:return`pan`;case`d`:return`cursor`;case`m`:return`measure`;case`i`:return`integ`;case`w`:return`fwhm`;default:return null}}function cN(){(0,y.useEffect)(()=>{let e=e=>{let t=e;if(!t)return!1;let n=t.tagName;return n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t.isContentEditable},t=t=>{if((t.key===`Delete`||t.key===`Backspace`)&&!e(t.target)){let e=Z.getState();if(e.datasets.length===0)return;t.preventDefault();let n=e.selectedIds.length||+!!e.activeId,r=()=>{e.removeSelected();let t=`removed ${n} dataset${n===1?``:`s`}`;e.setStatus(t),X(t)};e.confirmRemove?Re(`Remove ${n} dataset${n===1?``:`s`}?`,[]).then(e=>{e&&r()}):r();return}if(t.key===`?`&&!e(t.target)){t.preventDefault(),Z.getState().setShortcutsOpen(!0);return}if(!t.metaKey&&!t.ctrlKey&&!t.altKey&&!e(t.target)){let e=Z.getState();switch(t.key){case`a`:case`A`:if(!e.xLim&&!e.yLim)return;t.preventDefault(),e.setXLim(null),e.setYLim(null),e.setStatus(`view reset`);return;case`f`:case`F`:t.preventDefault(),e.setCurveFitOpen(!0);return;case`y`:case`Y`:t.preventDefault(),e.setHysteresisOpen(!0);return;case`ArrowUp`:case`ArrowDown`:{if(e.datasets.length<2)return;t.preventDefault();let n=e.datasets.length,r=e.datasets.findIndex(t=>t.id===(e.worksheetId??e.activeId)),i=r<0?0:r,a=t.key===`ArrowDown`?1:-1;e.activateFromLibrary(e.datasets[((i+a)%n+n)%n].id);return}case`p`:case`P`:t.preventDefault(),e.setPeaksOpen(!0);return}let n=sN(t.key);if(n){t.preventDefault(),e.setPlotTool(n);return}}if(!(t.metaKey||t.ctrlKey))return;let n=Z.getState();switch(t.key.toLowerCase()){case`k`:t.preventDefault(),n.setCmdk(!0);break;case`o`:t.preventDefault(),vl(e=>void n.importFiles(e));break;case`v`:e(t.target)||(t.preventDefault(),n.pasteDataFromClipboard());break;case`[`:t.preventDefault(),n.toggleLeft();break;case`]`:t.preventDefault(),n.toggleRight();break;case`l`:t.shiftKey&&(t.preventDefault(),n.setTheme(n.theme===`dark`?`light`:`dark`));break;case`,`:t.preventDefault(),n.setPrefsOpen(!0);break}};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[])}function lN(){let e=Z(e=>e.setStatus);(0,y.useEffect)(()=>{let t=KM();if(t?.datasets.length){Z.getState().loadWorkspace(t);let n=t.datasets.length;e(`restored ${n} dataset${n===1?``:`s`} from autosave`)}},[e]),(0,y.useEffect)(()=>{let e,t=Z.subscribe((t,n)=>{t.datasets===n.datasets&&t.folders===n.folders&&t.expandedFolders===n.expandedFolders&&t.activeId===n.activeId&&t.selectedIds===n.selectedIds&&t.smartFolders===n.smartFolders&&t.plotWindows===n.plotWindows&&t.focusedWindowId===n.focusedWindowId||(clearTimeout(e),e=setTimeout(()=>{let e=Z.getState();GM({...e,plotWindows:e.windowsForSave()})||Z.getState().setStatus(`autosave skipped (storage full or unavailable)`)},800))});return()=>{clearTimeout(e),t()}},[])}function uN(){let e=Z(e=>e.leftCollapsed),t=Z(e=>e.rightCollapsed),n=Z(e=>e.setStatus),r=Z(e=>e.setCmdk);(0,y.useEffect)(()=>{Ze().then(()=>n(`backend ready`)).catch(()=>n(`offline — demo mode`))},[n]),lN(),(0,y.useEffect)(()=>{history.pushState(null,``,location.href);let e=()=>history.pushState(null,``,location.href);return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[]),cN();let i=(0,y.useMemo)(()=>oN(Z.getState),[]);return(0,O.jsxs)(`div`,{className:`qzk-app`,children:[(0,O.jsx)(UO,{}),(0,O.jsx)(NO,{actions:i,onOpenPalette:()=>r(!0)}),(0,O.jsxs)(`div`,{className:`qzk-main${e?` lc`:``}${t?` rc`:``}`,children:[(0,O.jsx)(DO,{}),(0,O.jsx)(zM,{}),(0,O.jsx)(UD,{})]}),(0,O.jsx)(IO,{}),(0,O.jsx)(VM,{actions:i}),(0,O.jsx)(WE,{})]})}function dN(){let e=Z(e=>e.theme),t=Z(e=>e.setTheme);return(0,O.jsxs)(`div`,{className:`qzk-calc-app`,children:[(0,O.jsxs)(`header`,{className:`qzk-titlebar`,children:[(0,O.jsxs)(`div`,{className:`qzk-brand`,children:[(0,O.jsx)(`span`,{className:`ic`,style:{color:`var(--accent)`},children:`√`}),(0,O.jsx)(`span`,{className:`nm`,children:`DiraCulator`})]}),(0,O.jsx)(`div`,{}),(0,O.jsx)(`div`,{className:`qzk-tbar-right`,children:(0,O.jsx)(`button`,{className:`qz-icon-btn`,title:`Toggle theme`,onClick:()=>t(e===`dark`?`light`:`dark`),children:e===`dark`?`☾`:`☀`})})]}),(0,O.jsx)(`main`,{className:`qzk-calc-body`,children:(0,O.jsx)(Tp,{})}),(0,O.jsx)(Dd,{})]})}var fN=200,pN=[];function mN(e,t){pN.push({t:new Date().toISOString().slice(11,19),kind:e,msg:t}),pN.length>fN&&pN.shift()}function hN(){window.addEventListener(`error`,e=>mN(`error`,`${e.message} @ ${e.filename}:${e.lineno}`)),window.addEventListener(`unhandledrejection`,e=>mN(`rejection`,String(e.reason)))}hN(),FO();function gN(){let e={id:`harness-main`,kind:`plot`,title:``,datasetId:null,geometry:{x:40,y:40,w:480,h:360},z:0,winState:`maximized`,view:Po(),bg:`theme`,linkGroup:null,pinned:!1};Z.setState({plotWindows:[e],focusedWindowId:e.id})}function _N(e,t,n){for(let t of e)Z.getState().addDataset(t);let r=Z.getState().plotWindows.map(e=>e.id),i=t.map(t=>{let n=e[t.dataset],r=Z.getState().createWindow(n?n.id:null,{...Po(),...t.view},t.title??n?.name);return t.geometry&&(Z.getState().moveWindow(r,t.geometry.x,t.geometry.y),Z.getState().resizeWindow(r,t.geometry.w,t.geometry.h)),r});for(let e of r)Z.getState().closeWindow(e);let a=t.reduce((e,t,n)=>t.winState===`minimized`?e:n,0),o=i[n??a];o&&Z.getState().focusWindow(o),t.forEach((e,t)=>{e.winState===`minimized`?Z.getState().minimizeWindow(i[t]):e.winState===`maximized`&&Z.getState().toggleMaximizeWindow(i[t])})}new URLSearchParams(window.location.search).has(`harness`)&&(window.__qz={useApp:Z,harnessResetWindows:gN,harnessApplyWindows:_N});var vN=Wf()?dN:uN;(0,w.createRoot)(document.getElementById(`root`)).render((0,O.jsx)(y.StrictMode,{children:(0,O.jsx)(vN,{})}));