@sjcrh/proteinpaint-client 2.76.2 → 2.77.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/{2dmaf-f240211f.js → 2dmaf-dbeff225.js} +1 -1
  2. package/dist/{AppHeader-c9432a24.js → AppHeader-1fc7f7bd.js} +1 -1
  3. package/dist/{ColorScale-b991fc9e.js → ColorScale-23c17654.js} +1 -1
  4. package/dist/{DEanalysis-bbfad00d.js → DEanalysis-a3cf1900.js} +1 -1
  5. package/dist/{Disco-b7c9bf72.js → Disco-b26a0556.js} +1 -1
  6. package/dist/{Disco.UI-a5296c36.js → Disco.UI-891c4c35.js} +1 -1
  7. package/dist/{DragControls-ca3fa0cf.js → DragControls-2fabac26.js} +1 -1
  8. package/dist/{DziViewer-28915c11.js → DziViewer-5b830c31.js} +1 -1
  9. package/dist/FilterRxComp-fb608459.js +1 -0
  10. package/dist/FilterStateless-fc4e4e1b.js +1 -0
  11. package/dist/{HicApp-e713aa40.js → HicApp-5ed85d49.js} +1 -1
  12. package/dist/{OrbitControls-2466d420.js → OrbitControls-604f40af.js} +1 -1
  13. package/dist/{WSIViewer-957695a8.js → WSIViewer-dcce2a10.js} +1 -1
  14. package/dist/{adSandbox-27d93bc0.js → adSandbox-5fa90964.js} +1 -1
  15. package/dist/app-0de0ae35.js +1 -0
  16. package/dist/{app-d215327f.js → app-7f695ce7.js} +1 -1
  17. package/dist/app-977b083f.js +1 -0
  18. package/dist/app.js +1 -1
  19. package/dist/{bam-d67e5315.js → bam-06a5a6a2.js} +1 -1
  20. package/dist/{barchart-2898d229.js → barchart-978fb21a.js} +1 -1
  21. package/dist/{barchart.events-426d737a.js → barchart.events-9b482604.js} +1 -1
  22. package/dist/{bars.renderer-71935d34.js → bars.renderer-d7461d5d.js} +1 -1
  23. package/dist/{block-75d4ff92.js → block-3db9c74c.js} +1 -1
  24. package/dist/block.lazyload-19a55cac.js +1 -0
  25. package/dist/{block.legend-93d85a6e.js → block.legend-97401467.js} +1 -1
  26. package/dist/{block.mds-84b9d1c1.js → block.mds-dc409568.js} +1 -1
  27. package/dist/{block.mds.cnv-a991ed79.js → block.mds.cnv-cdabd3f6.js} +1 -1
  28. package/dist/{block.mds.expressionrank-33b858de.js → block.mds.expressionrank-d768640f.js} +1 -1
  29. package/dist/{block.mds.expressionstat-3093599f.js → block.mds.expressionstat-7e40426f.js} +1 -1
  30. package/dist/{block.mds.geneboxplot-b8391d18.js → block.mds.geneboxplot-dae9cfa3.js} +1 -1
  31. package/dist/{block.mds.junction-69708c7f.js → block.mds.junction-3bc8baea.js} +1 -1
  32. package/dist/{block.mds.svcnv-322baea6.js → block.mds.svcnv-456dc845.js} +1 -1
  33. package/dist/{block.mds.svcnv.share-c5c38237.js → block.mds.svcnv.share-4776459b.js} +1 -1
  34. package/dist/{block.mds2-de4811dd.js → block.mds2-cc586d9d.js} +1 -1
  35. package/dist/{block.svg-ac9fec2d.js → block.svg-adf47e3a.js} +1 -1
  36. package/dist/{block.tk.aicheck-ac4b8d4d.js → block.tk.aicheck-f284f080.js} +1 -1
  37. package/dist/{block.tk.ase-6dc0f9f1.js → block.tk.ase-0477c9f4.js} +1 -1
  38. package/dist/{block.tk.bam-8f68b41d.js → block.tk.bam-d4c998d4.js} +1 -1
  39. package/dist/{block.tk.bedgraphdot-d8878860.js → block.tk.bedgraphdot-0177d836.js} +1 -1
  40. package/dist/{block.tk.bigwig.ui-f6ed051c.js → block.tk.bigwig.ui-95531269.js} +1 -1
  41. package/dist/{block.tk.hicstraw-725bdc8a.js → block.tk.hicstraw-06e97317.js} +1 -1
  42. package/dist/{block.tk.junction-f8b0b51d.js → block.tk.junction-18b6b825.js} +1 -1
  43. package/dist/{block.tk.junction.textmatrixui-252e7d7e.js → block.tk.junction.textmatrixui-ffdbdf81.js} +1 -1
  44. package/dist/{block.tk.ld-11acf730.js → block.tk.ld-2b56500f.js} +1 -1
  45. package/dist/{block.tk.menu-5e04436d.js → block.tk.menu-707a4226.js} +1 -1
  46. package/dist/{block.tk.pgv-fef17dc4.js → block.tk.pgv-63c956c4.js} +1 -1
  47. package/dist/{boxplot-4c9a5479.js → boxplot-1f229616.js} +1 -1
  48. package/dist/{brainImaging-7716bc66.js → brainImaging-a0c72fad.js} +1 -1
  49. package/dist/{brush-9faa7ae7.js → brush-4c775f74.js} +1 -1
  50. package/dist/{categorical-1dea48ba.js → categorical-25b06bc5.js} +1 -1
  51. package/dist/{condition-ebac4f75.js → condition-70084a85.js} +1 -1
  52. package/dist/{controls-268e40e6.js → controls-1f3ac9d0.js} +1 -1
  53. package/dist/controls.btns-5b44e5d0.js +1 -0
  54. package/dist/{controls.config-2f0fa061.js → controls.config-b0339f96.js} +1 -1
  55. package/dist/{cuminc-8dffb765.js → cuminc-6d1de932.js} +1 -1
  56. package/dist/{customdata.inputui-b229d3a0.js → customdata.inputui-5ad0f25c.js} +1 -1
  57. package/dist/{dataDownload-452ae3cd.js → dataDownload-a60d80e4.js} +1 -1
  58. package/dist/databrowser.ui-a5c8194c.js +1 -0
  59. package/dist/{density-09feb0c9.js → density-30dbad8b.js} +1 -1
  60. package/dist/{dictionary-a132a3cc.js → dictionary-d8435ddc.js} +1 -1
  61. package/dist/{drag-2e9c80bb.js → drag-ad04f964.js} +1 -1
  62. package/dist/{e2pca-4f1648e3.js → e2pca-02adebbd.js} +1 -1
  63. package/dist/{ep-1d4c58b4.js → ep-b2e464fe.js} +1 -1
  64. package/dist/{facet-fa4fe49c.js → facet-e7612200.js} +1 -1
  65. package/dist/{filter-b3d3964e.js → filter-67d51c09.js} +1 -1
  66. package/dist/{fusion.parse-7dfd6988.js → fusion.parse-68670e99.js} +1 -1
  67. package/dist/{geneExpClustering-ed9121b8.js → geneExpClustering-d96c27ef.js} +1 -1
  68. package/dist/geneExpression-072e0be1.js +1 -0
  69. package/dist/{geneExpression-394672ff.js → geneExpression-4901955e.js} +1 -1
  70. package/dist/{geneExpression-66208299.js → geneExpression-65346c08.js} +1 -1
  71. package/dist/{geneORA-9456872c.js → geneORA-e3d6619e.js} +1 -1
  72. package/dist/geneVariant-9fc29f37.js +1 -0
  73. package/dist/{geneVariant-beaf9adb.js → geneVariant-f6bbc247.js} +1 -1
  74. package/dist/{genefusion.ui-9238ec7f.js → genefusion.ui-a5a08183.js} +1 -1
  75. package/dist/{genesearch-ffd88bf2.js → genesearch-5fa13afa.js} +1 -1
  76. package/dist/{geneset-0315daf8.js → geneset-c36036bd.js} +1 -1
  77. package/dist/genomeBrowser-d4515002.js +1 -0
  78. package/dist/{genomeBrowser.controls-2601cab5.js → genomeBrowser.controls-b89629b0.js} +1 -1
  79. package/dist/{groupsetting-e3a4ecd5.js → groupsetting-a3de9ec7.js} +1 -1
  80. package/dist/{gsea-0c0cf8de.js → gsea-af1a7cec.js} +1 -1
  81. package/dist/{hierCluster-7ab62ca5.js → hierCluster-8aa2265a.js} +1 -1
  82. package/dist/hierCluster.config-11a176e2.js +1 -0
  83. package/dist/{hierCluster.interactivity-7f475259.js → hierCluster.interactivity-103b2f0f.js} +1 -1
  84. package/dist/{hierCluster.renderers-19b79639.js → hierCluster.renderers-48bdf7a6.js} +1 -1
  85. package/dist/{html.legend-80b2b3ec.js → html.legend-455f7881.js} +1 -1
  86. package/dist/{imagePlot-1ef24562.js → imagePlot-862c7baf.js} +1 -1
  87. package/dist/{lasso-1a02a545.js → lasso-e12204af.js} +1 -1
  88. package/dist/launch.adhoc-b8af0ace.js +1 -0
  89. package/dist/leftlabel.sample-784c5aeb.js +1 -0
  90. package/dist/{legacyDataset-fbaa5ebb.js → legacyDataset-501a0298.js} +1 -1
  91. package/dist/{log-c26b6cfd.js → log-d560d2a5.js} +1 -1
  92. package/dist/{lollipop-3aebe5d3.js → lollipop-aa25084e.js} +1 -1
  93. package/dist/{maf-c439c851.js → maf-13befc91.js} +1 -1
  94. package/dist/{maftimeline-0da64e54.js → maftimeline-f9ee156e.js} +1 -1
  95. package/dist/{matrix-38cd47c3.js → matrix-971b44da.js} +1 -1
  96. package/dist/{matrix.cells-a018d731.js → matrix.cells-92037b17.js} +1 -1
  97. package/dist/{matrix.cluster-a6e713e8.js → matrix.cluster-0bca59fd.js} +1 -1
  98. package/dist/{matrix.config-2c550b5d.js → matrix.config-b8d8faef.js} +1 -1
  99. package/dist/matrix.controls-07c6128c.js +1 -0
  100. package/dist/{matrix.data-2b814c9f.js → matrix.data-1090f6c7.js} +1 -1
  101. package/dist/{matrix.dom-1e0da5b3.js → matrix.dom-1154156c.js} +1 -1
  102. package/dist/{matrix.groups-824a7244.js → matrix.groups-f10a8c05.js} +1 -1
  103. package/dist/{matrix.interactivity-1cb56534.js → matrix.interactivity-99de0399.js} +1 -1
  104. package/dist/{matrix.layout-47e44357.js → matrix.layout-405db70f.js} +1 -1
  105. package/dist/{matrix.legend-9af0c757.js → matrix.legend-d06de359.js} +1 -1
  106. package/dist/{matrix.renderers-337ce240.js → matrix.renderers-2211c4b2.js} +1 -1
  107. package/dist/{matrix.serieses-7b7184c9.js → matrix.serieses-f0803a76.js} +1 -1
  108. package/dist/{matrix.sort-1ac05842.js → matrix.sort-3d376f1a.js} +1 -1
  109. package/dist/{matrix.sorterUi-1c60c145.js → matrix.sorterUi-469ed804.js} +1 -1
  110. package/dist/{mavb-da8d1a0a.js → mavb-e5cbd894.js} +1 -1
  111. package/dist/{mds.fimo-8604c3f8.js → mds.fimo-f9215ef6.js} +1 -1
  112. package/dist/{mds.samplescatterplot-3f09ae0e.js → mds.samplescatterplot-6fce6594.js} +1 -1
  113. package/dist/{mds.survivalplot-1d8f2b7e.js → mds.survivalplot-16e9e8c5.js} +1 -1
  114. package/dist/{metaboliteIntensity-bbb23c76.js → metaboliteIntensity-b47fb792.js} +1 -1
  115. package/dist/{niceNumLabels-29a7c6ca.js → niceNumLabels-1bd7a93b.js} +1 -1
  116. package/dist/{nodrag-b2737073.js → nodrag-0fa60f70.js} +1 -1
  117. package/dist/{notify-0cb8904f.js → notify-42149e65.js} +1 -1
  118. package/dist/{numeric-24dacbee.js → numeric-5b626171.js} +1 -1
  119. package/dist/{numeric.binary-f382cc98.js → numeric.binary-07e15211.js} +1 -1
  120. package/dist/numeric.continuous-76dd29ba.js +1 -0
  121. package/dist/numeric.discrete-6d697c68.js +1 -0
  122. package/dist/{numeric.spline-a35cfbf0.js → numeric.spline-cf331bad.js} +1 -1
  123. package/dist/{numeric.toggle-2f98d6e5.js → numeric.toggle-332c2578.js} +1 -1
  124. package/dist/oncomatrix-7c84c94b.js +1 -0
  125. package/dist/{parseData-292648dd.js → parseData-05ab5f81.js} +1 -1
  126. package/dist/{plot.2dvaf-6ae22dc1.js → plot.2dvaf-1debbf12.js} +1 -1
  127. package/dist/plot.app-0b02df66.js +1 -0
  128. package/dist/{plot.barplot-34841e70.js → plot.barplot-45b57df9.js} +1 -1
  129. package/dist/{plot.boxplot-87ac2ce9.js → plot.boxplot-06cef6e2.js} +1 -1
  130. package/dist/{plot.brainImaging-32a484b6.js → plot.brainImaging-07795744.js} +1 -1
  131. package/dist/{plot.disco-1fdfee3c.js → plot.disco-9c631d77.js} +1 -1
  132. package/dist/{plot.dzi-e3d0f610.js → plot.dzi-a9a81de5.js} +1 -1
  133. package/dist/{plot.ssgq-d33113d5.js → plot.ssgq-02ffde06.js} +1 -1
  134. package/dist/{plot.vaf2cov-9f4f1776.js → plot.vaf2cov-c111c5fb.js} +1 -1
  135. package/dist/{plot.wsi-dea124a7.js → plot.wsi-6ccc7bb2.js} +1 -1
  136. package/dist/{profileBarchart-58f0a8c0.js → profileBarchart-0c97e8c9.js} +1 -1
  137. package/dist/{profileHome-7f404152.js → profileHome-2255d66d.js} +1 -1
  138. package/dist/profilePlot-ba7e03ab.js +1 -0
  139. package/dist/{profilePolar-50b8e40e.js → profilePolar-d38d502f.js} +1 -1
  140. package/dist/{profileRadar-fff0b004.js → profileRadar-f95cfa87.js} +1 -1
  141. package/dist/{profileRadarFacility-d6d34c15.js → profileRadarFacility-7e200a91.js} +1 -1
  142. package/dist/profileSummary-8c41a731.js +1 -0
  143. package/dist/{recover-299ffdb3.js → recover-6f2f3379.js} +1 -1
  144. package/dist/{regression.inputs-14df7c31.js → regression.inputs-b515101d.js} +1 -1
  145. package/dist/{regression.inputs.values.table-d79efa9e.js → regression.inputs.values.table-f8a0cad9.js} +1 -1
  146. package/dist/{regression.results-4767144e.js → regression.results-91a486f0.js} +1 -1
  147. package/dist/{renderPvalueTable-002cc8ff.js → renderPvalueTable-d4d2624c.js} +1 -1
  148. package/dist/sampleScatter-7c2773de.js +1 -0
  149. package/dist/{sampleScatter.rendererThree-ef289434.js → sampleScatter.rendererThree-b6db5a09.js} +2 -2
  150. package/dist/{sampleView-1dff3fca.js → sampleView-8885e86b.js} +1 -1
  151. package/dist/{samplelst-d2db0f24.js → samplelst-83e593da.js} +1 -1
  152. package/dist/{samplematrix-0841387f.js → samplematrix-a8b3f845.js} +1 -1
  153. package/dist/{scatter-f8285107.js → scatter-34d52e2d.js} +1 -1
  154. package/dist/{select2Terms-d48d037e.js → select2Terms-d9320d21.js} +1 -1
  155. package/dist/{selectGenomeWithTklst-9af86d31.js → selectGenomeWithTklst-fed6a2ea.js} +1 -1
  156. package/dist/shapes-21ebfec4.js +1 -0
  157. package/dist/singleCellCellType-e6848f45.js +1 -0
  158. package/dist/{singleCellGeneExpression-537f1157.js → singleCellGeneExpression-d3a5394e.js} +1 -1
  159. package/dist/singleCellPlot-3cad6bd8.js +1 -0
  160. package/dist/{singlecell-38336cbc.js → singlecell-0754aab0.js} +1 -1
  161. package/dist/{singlecell-87b4b9a9.js → singlecell-7c57cd77.js} +1 -1
  162. package/dist/{snp-b81ef740.js → snp-6b23e7a6.js} +1 -1
  163. package/dist/snp-a0cdd2a5.js +1 -0
  164. package/dist/snplocus-c60eab56.js +1 -0
  165. package/dist/{spliceevent.a53ss.diagram-5f8352eb.js → spliceevent.a53ss.diagram-8714f740.js} +1 -1
  166. package/dist/{spliceevent.exonskip.diagram-0d30a735.js → spliceevent.exonskip.diagram-40c1e363.js} +1 -1
  167. package/dist/spliceevent.exonskip.getdefault-4bb6f19f.js +1 -0
  168. package/dist/{spliceevent.noeventdiagram-df9ce4bc.js → spliceevent.noeventdiagram-41a56db9.js} +1 -1
  169. package/dist/{spliceevent.phrase-a8401d53.js → spliceevent.phrase-7f34e3b1.js} +1 -1
  170. package/dist/{stattable-46cde32c.js → stattable-78dc5c34.js} +1 -1
  171. package/dist/{style.gdc-72d730f2.js → style.gdc-cd49882c.js} +1 -1
  172. package/dist/summary-45c56298.js +1 -0
  173. package/dist/{sunburst-fe95832e.js → sunburst-2140e468.js} +1 -1
  174. package/dist/{survival-57ff3c03.js → survival-db972025.js} +1 -1
  175. package/dist/{survival-52714cd3.js → survival-ed4bdad2.js} +1 -1
  176. package/dist/{svg.download-f4aa48e4.js → svg.download-a5e20a92.js} +1 -1
  177. package/dist/{svg.legend-749348e0.js → svg.legend-8d21872d.js} +1 -1
  178. package/dist/{svgraph-b46f1f92.js → svgraph-f6a28b78.js} +1 -1
  179. package/dist/{svmr-9a76c6d4.js → svmr-8b4b4c59.js} +1 -1
  180. package/dist/{table-bf40249b.js → table-1cbe3a36.js} +1 -1
  181. package/dist/{table-0daf2b89.js → table-e2a307e6.js} +1 -1
  182. package/dist/{termInfo-491b10af.js → termInfo-5477ba96.js} +1 -1
  183. package/dist/termdb.bins-7ecc48db.js +1 -0
  184. package/dist/{termsetting-492eefa7.js → termsetting-2e75e729.js} +1 -1
  185. package/dist/tk-a8a4481a.js +1 -0
  186. package/dist/{toggleButtons-c4d6f260.js → toggleButtons-7ce58d97.js} +1 -1
  187. package/dist/{tp.ui-0a476325.js → tp.ui-be14f635.js} +1 -1
  188. package/dist/{tvs.density-034b506d.js → tvs.density-8b953cef.js} +1 -1
  189. package/dist/{tvs.geneVariant-c59c8b54.js → tvs.geneVariant-ecad287d.js} +1 -1
  190. package/dist/{tvs.numeric-aa1f892f.js → tvs.numeric-b56a5aba.js} +1 -1
  191. package/dist/{tvs.samplelst-515f27b9.js → tvs.samplelst-3150e0b7.js} +1 -1
  192. package/dist/{uiUtils-ea7dfea2.js → uiUtils-71cc22de.js} +1 -1
  193. package/dist/{variantBrowser-14d5c3f6.js → variantBrowser-df2f9c22.js} +1 -1
  194. package/dist/{vcf-d357ce08.js → vcf-3e370c9b.js} +1 -1
  195. package/dist/{violin-74d26b75.js → violin-4595cef4.js} +1 -1
  196. package/dist/{violin.interactivity-bf40ddde.js → violin.interactivity-8b63e000.js} +1 -1
  197. package/dist/{violin.renderer-469fa0ff.js → violin.renderer-0b7431a2.js} +1 -1
  198. package/dist/{violinRenderer-14fa200d.js → violinRenderer-7b0a4e98.js} +1 -1
  199. package/dist/{viridis-cc59f478.js → viridis-725f66e0.js} +1 -1
  200. package/dist/{y-59cbff5e.js → y-300bac24.js} +1 -1
  201. package/dist/{zoom-f445cfef.js → zoom-d3d38b3b.js} +1 -1
  202. package/package.json +2 -4
  203. package/dist/FilterRxComp-02e68f1b.js +0 -1
  204. package/dist/FilterStateless-16a33070.js +0 -1
  205. package/dist/app-42f69951.js +0 -1
  206. package/dist/app-6fb77603.js +0 -1
  207. package/dist/block.lazyload-d2951c91.js +0 -1
  208. package/dist/controls.btns-5bf9e7d7.js +0 -1
  209. package/dist/databrowser.ui-2197fc73.js +0 -1
  210. package/dist/downloadTextfile-5723af95.js +0 -1
  211. package/dist/geneExpression-c61e8f1c.js +0 -1
  212. package/dist/geneVariant-f17cda85.js +0 -1
  213. package/dist/genomeBrowser-608b924e.js +0 -1
  214. package/dist/hierCluster.config-f4daaf92.js +0 -1
  215. package/dist/launch.adhoc-e124c993.js +0 -1
  216. package/dist/leftlabel.sample-59f99ef5.js +0 -1
  217. package/dist/matrix.controls-42ad4912.js +0 -1
  218. package/dist/numeric.continuous-6feb34a7.js +0 -1
  219. package/dist/numeric.discrete-ed10bbc1.js +0 -1
  220. package/dist/oncomatrix-c0b2d635.js +0 -1
  221. package/dist/plot.app-2a805759.js +0 -1
  222. package/dist/profilePlot-4db8ca78.js +0 -1
  223. package/dist/profileSummary-04b8b15b.js +0 -1
  224. package/dist/sampleScatter-55d9eb74.js +0 -1
  225. package/dist/singleCellCellType-fd1606b8.js +0 -1
  226. package/dist/singleCellPlot-eff5760b.js +0 -1
  227. package/dist/snp-f6123244.js +0 -1
  228. package/dist/snplocus-acafb1ba.js +0 -1
  229. package/dist/spliceevent.exonskip.getdefault-237c481c.js +0 -1
  230. package/dist/summary-a6c15c9e.js +0 -1
  231. package/dist/termdb.bins-39d11f24.js +0 -1
  232. package/dist/tk-ac524564.js +0 -1
@@ -1 +1 @@
1
- import{by as f}from"./app-6fb77603.js";function e(f){var e=f.length;return function(a){return f[Math.max(0,Math.min(e-1,Math.floor(a*e)))]}}e(f("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));e(f("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));e(f("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));var a=e(f("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));export{a as p};
1
+ import{by as f}from"./app-0de0ae35.js";function e(f){var e=f.length;return function(a){return f[Math.max(0,Math.min(e-1,Math.floor(a*e)))]}}e(f("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));e(f("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));e(f("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));var a=e(f("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));export{a as p};
@@ -1 +1 @@
1
- import{bB as n,_ as t}from"./app-6fb77603.js";function r(n){return function(){return n}}function e(n){return(n()-.5)*1e-6}const i=1664525;const f=1013904223;const u=4294967296;function o(){let n=1;return()=>(n=(i*n+f)%u)/u}var a=10,c=Math.PI*(3-Math.sqrt(5));function l(r){var e,i=1,f=.001,u=1-Math.pow(f,1/300),l=0,h=.6,s=new Map,y=n(p),g=t("tick","end"),v=o();if(r==null)r=[];function p(){x();g.call("tick",e);if(i<f){y.stop();g.call("end",e)}}function x(n){var t,f=r.length,o;if(n===undefined)n=1;for(var a=0;a<n;++a){i+=(l-i)*u;s.forEach((function(n){n(i)}));for(t=0;t<f;++t){o=r[t];if(o.fx==null)o.x+=o.vx*=h;else o.x=o.fx,o.vx=0;if(o.fy==null)o.y+=o.vy*=h;else o.y=o.fy,o.vy=0}}return e}function N(){for(var n=0,t=r.length,e;n<t;++n){e=r[n],e.index=n;if(e.fx!=null)e.x=e.fx;if(e.fy!=null)e.y=e.fy;if(isNaN(e.x)||isNaN(e.y)){var i=a*Math.sqrt(.5+n),f=n*c;e.x=i*Math.cos(f);e.y=i*Math.sin(f)}if(isNaN(e.vx)||isNaN(e.vy)){e.vx=e.vy=0}}}function d(n){if(n.initialize)n.initialize(r,v);return n}N();return e={tick:x,restart:function(){return y.restart(p),e},stop:function(){return y.stop(),e},nodes:function(n){return arguments.length?(r=n,N(),s.forEach(d),e):r},alpha:function(n){return arguments.length?(i=+n,e):i},alphaMin:function(n){return arguments.length?(f=+n,e):f},alphaDecay:function(n){return arguments.length?(u=+n,e):+u},alphaTarget:function(n){return arguments.length?(l=+n,e):l},velocityDecay:function(n){return arguments.length?(h=1-n,e):1-h},randomSource:function(n){return arguments.length?(v=n,s.forEach(d),e):v},force:function(n,t){return arguments.length>1?(t==null?s.delete(n):s.set(n,d(t)),e):s.get(n)},find:function(n,t,e){var i=0,f=r.length,u,o,a,c,l;if(e==null)e=Infinity;else e*=e;for(i=0;i<f;++i){c=r[i];u=n-c.x;o=t-c.y;a=u*u+o*o;if(a<e)l=c,e=a}return l},on:function(n,t){return arguments.length>1?(g.on(n,t),e):g.on(n)}}}function h(n){var t=r(.1),e,i,f;if(typeof n!=="function")n=r(n==null?0:+n);function u(n){for(var t=0,r=e.length,u;t<r;++t){u=e[t],u.vx+=(f[t]-u.x)*i[t]*n}}function o(){if(!e)return;var r,u=e.length;i=new Array(u);f=new Array(u);for(r=0;r<u;++r){i[r]=isNaN(f[r]=+n(e[r],r,e))?0:+t(e[r],r,e)}}u.initialize=function(n){e=n;o()};u.strength=function(n){return arguments.length?(t=typeof n==="function"?n:r(+n),o(),u):t};u.x=function(t){return arguments.length?(n=typeof t==="function"?t:r(+t),o(),u):n};return u}function s(n){var t=r(.1),e,i,f;if(typeof n!=="function")n=r(n==null?0:+n);function u(n){for(var t=0,r=e.length,u;t<r;++t){u=e[t],u.vy+=(f[t]-u.y)*i[t]*n}}function o(){if(!e)return;var r,u=e.length;i=new Array(u);f=new Array(u);for(r=0;r<u;++r){i[r]=isNaN(f[r]=+n(e[r],r,e))?0:+t(e[r],r,e)}}u.initialize=function(n){e=n;o()};u.strength=function(n){return arguments.length?(t=typeof n==="function"?n:r(+n),o(),u):t};u.y=function(t){return arguments.length?(n=typeof t==="function"?t:r(+t),o(),u):n};return u}export{r as c,e as j,l as s,h as x,s as y};
1
+ import{bB as n,_ as t}from"./app-0de0ae35.js";function r(n){return function(){return n}}function e(n){return(n()-.5)*1e-6}const i=1664525;const f=1013904223;const u=4294967296;function o(){let n=1;return()=>(n=(i*n+f)%u)/u}var a=10,c=Math.PI*(3-Math.sqrt(5));function l(r){var e,i=1,f=.001,u=1-Math.pow(f,1/300),l=0,h=.6,s=new Map,y=n(p),g=t("tick","end"),v=o();if(r==null)r=[];function p(){x();g.call("tick",e);if(i<f){y.stop();g.call("end",e)}}function x(n){var t,f=r.length,o;if(n===undefined)n=1;for(var a=0;a<n;++a){i+=(l-i)*u;s.forEach((function(n){n(i)}));for(t=0;t<f;++t){o=r[t];if(o.fx==null)o.x+=o.vx*=h;else o.x=o.fx,o.vx=0;if(o.fy==null)o.y+=o.vy*=h;else o.y=o.fy,o.vy=0}}return e}function N(){for(var n=0,t=r.length,e;n<t;++n){e=r[n],e.index=n;if(e.fx!=null)e.x=e.fx;if(e.fy!=null)e.y=e.fy;if(isNaN(e.x)||isNaN(e.y)){var i=a*Math.sqrt(.5+n),f=n*c;e.x=i*Math.cos(f);e.y=i*Math.sin(f)}if(isNaN(e.vx)||isNaN(e.vy)){e.vx=e.vy=0}}}function d(n){if(n.initialize)n.initialize(r,v);return n}N();return e={tick:x,restart:function(){return y.restart(p),e},stop:function(){return y.stop(),e},nodes:function(n){return arguments.length?(r=n,N(),s.forEach(d),e):r},alpha:function(n){return arguments.length?(i=+n,e):i},alphaMin:function(n){return arguments.length?(f=+n,e):f},alphaDecay:function(n){return arguments.length?(u=+n,e):+u},alphaTarget:function(n){return arguments.length?(l=+n,e):l},velocityDecay:function(n){return arguments.length?(h=1-n,e):1-h},randomSource:function(n){return arguments.length?(v=n,s.forEach(d),e):v},force:function(n,t){return arguments.length>1?(t==null?s.delete(n):s.set(n,d(t)),e):s.get(n)},find:function(n,t,e){var i=0,f=r.length,u,o,a,c,l;if(e==null)e=Infinity;else e*=e;for(i=0;i<f;++i){c=r[i];u=n-c.x;o=t-c.y;a=u*u+o*o;if(a<e)l=c,e=a}return l},on:function(n,t){return arguments.length>1?(g.on(n,t),e):g.on(n)}}}function h(n){var t=r(.1),e,i,f;if(typeof n!=="function")n=r(n==null?0:+n);function u(n){for(var t=0,r=e.length,u;t<r;++t){u=e[t],u.vx+=(f[t]-u.x)*i[t]*n}}function o(){if(!e)return;var r,u=e.length;i=new Array(u);f=new Array(u);for(r=0;r<u;++r){i[r]=isNaN(f[r]=+n(e[r],r,e))?0:+t(e[r],r,e)}}u.initialize=function(n){e=n;o()};u.strength=function(n){return arguments.length?(t=typeof n==="function"?n:r(+n),o(),u):t};u.x=function(t){return arguments.length?(n=typeof t==="function"?t:r(+t),o(),u):n};return u}function s(n){var t=r(.1),e,i,f;if(typeof n!=="function")n=r(n==null?0:+n);function u(n){for(var t=0,r=e.length,u;t<r;++t){u=e[t],u.vy+=(f[t]-u.y)*i[t]*n}}function o(){if(!e)return;var r,u=e.length;i=new Array(u);f=new Array(u);for(r=0;r<u;++r){i[r]=isNaN(f[r]=+n(e[r],r,e))?0:+t(e[r],r,e)}}u.initialize=function(n){e=n;o()};u.strength=function(n){return arguments.length?(t=typeof n==="function"?n:r(+n),o(),u):t};u.y=function(t){return arguments.length?(n=typeof t==="function"?t:r(+t),o(),u):n};return u}export{r as c,e as j,l as s,h as x,s as y};
@@ -1 +1 @@
1
- import{_ as t,N as e,a6 as n,d as o,a0 as i}from"./app-6fb77603.js";import{p as u}from"./pointer-c7475677.js";import{d as r,y as a}from"./nodrag-b2737073.js";var h=1e-12;function s(t){return((t=Math.exp(t))+1/t)/2}function c(t){return((t=Math.exp(t))-1/t)/2}function f(t){return((t=Math.exp(2*t))-1)/(t+1)}var l=function t(e,n,o){function i(t,i){var u=t[0],r=t[1],a=t[2],l=i[0],m=i[1],p=i[2],v=l-u,y=m-r,d=v*v+y*y,g,z;if(d<h){z=Math.log(p/a)/e;g=function(t){return[u+t*v,r+t*y,a*Math.exp(e*t*z)]}}else{var _=Math.sqrt(d),M=(p*p-a*a+o*d)/(2*a*n*_),x=(p*p-a*a-o*d)/(2*p*n*_),w=Math.log(Math.sqrt(M*M+1)-M),b=Math.log(Math.sqrt(x*x+1)-x);z=(b-w)/e;g=function(t){var o=t*z,i=s(w),h=a/(n*_)*(i*f(e*o+w)-c(w));return[u+h*v,r+h*y,a*i/s(e*o+w)]}}g.duration=z*1e3*e/Math.SQRT2;return g}i.rho=function(e){var n=Math.max(.001,+e),o=n*n,i=o*o;return t(n,o,i)};return i}(Math.SQRT2,2,4);var m=t=>()=>t;function p(t,{sourceEvent:e,target:n,transform:o,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:true,configurable:true},sourceEvent:{value:e,enumerable:true,configurable:true},target:{value:n,enumerable:true,configurable:true},transform:{value:o,enumerable:true,configurable:true},_:{value:i}})}function v(t){t.stopImmediatePropagation()}function y(t){t.preventDefault();t.stopImmediatePropagation()}function d(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function g(){var t=this;if(t instanceof SVGElement){t=t.ownerSVGElement||t;if(t.hasAttribute("viewBox")){t=t.viewBox.baseVal;return[[t.x,t.y],[t.x+t.width,t.y+t.height]]}return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}return[[0,0],[t.clientWidth,t.clientHeight]]}function z(){return this.__zoom||e}function _(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function M(){return navigator.maxTouchPoints||"ontouchstart"in this}function x(t,e,n){var o=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],u=t.invertY(e[0][1])-n[0][1],r=t.invertY(e[1][1])-n[1][1];return t.translate(i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i),r>u?(u+r)/2:Math.min(0,u)||Math.max(0,r))}function w(){var h=d,s=g,c=x,f=_,w=M,b=[0,Infinity],T=[[-Infinity,-Infinity],[Infinity,Infinity]],k=250,E=l,I=t("start","zoom","end"),q,V,Y,j=500,B=150,D=0,P=10;function S(t){t.property("__zoom",z).on("wheel.zoom",H,{passive:false}).on("mousedown.zoom",N).on("dblclick.zoom",O).filter(w).on("touchstart.zoom",W).on("touchmove.zoom",C).on("touchend.zoom touchcancel.zoom",F).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}S.transform=function(t,e,n,o){var i=t.selection?t.selection():t;i.property("__zoom",z);if(t!==i){Q(t,e,n,o)}else{i.interrupt().each((function(){R(this,arguments).event(o).start().zoom(null,typeof e==="function"?e.apply(this,arguments):e).end()}))}};S.scaleBy=function(t,e,n,o){S.scaleTo(t,(function(){var t=this.__zoom.k,n=typeof e==="function"?e.apply(this,arguments):e;return t*n}),n,o)};S.scaleTo=function(t,e,n,o){S.transform(t,(function(){var t=s.apply(this,arguments),o=this.__zoom,i=n==null?G(t):typeof n==="function"?n.apply(this,arguments):n,u=o.invert(i),r=typeof e==="function"?e.apply(this,arguments):e;return c(K(X(o,r),i,u),t,T)}),n,o)};S.translateBy=function(t,e,n,o){S.transform(t,(function(){return c(this.__zoom.translate(typeof e==="function"?e.apply(this,arguments):e,typeof n==="function"?n.apply(this,arguments):n),s.apply(this,arguments),T)}),null,o)};S.translateTo=function(t,n,o,i,u){S.transform(t,(function(){var t=s.apply(this,arguments),u=this.__zoom,r=i==null?G(t):typeof i==="function"?i.apply(this,arguments):i;return c(e.translate(r[0],r[1]).scale(u.k).translate(typeof n==="function"?-n.apply(this,arguments):-n,typeof o==="function"?-o.apply(this,arguments):-o),t,T)}),i,u)};function X(t,e){e=Math.max(b[0],Math.min(b[1],e));return e===t.k?t:new n(e,t.x,t.y)}function K(t,e,o){var i=e[0]-o[0]*t.k,u=e[1]-o[1]*t.k;return i===t.x&&u===t.y?t:new n(t.k,i,u)}function G(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function Q(t,e,o,i){t.on("start.zoom",(function(){R(this,arguments).event(i).start()})).on("interrupt.zoom end.zoom",(function(){R(this,arguments).event(i).end()})).tween("zoom",(function(){var t=this,u=arguments,r=R(t,u).event(i),a=s.apply(t,u),h=o==null?G(a):typeof o==="function"?o.apply(t,u):o,c=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),f=t.__zoom,l=typeof e==="function"?e.apply(t,u):e,m=E(f.invert(h).concat(c/f.k),l.invert(h).concat(c/l.k));return function(t){if(t===1)t=l;else{var e=m(t),o=c/e[2];t=new n(o,h[0]-e[0]*o,h[1]-e[1]*o)}r.zoom(null,t)}}))}function R(t,e,n){return!n&&t.__zooming||new A(t,e)}function A(t,e){this.that=t;this.args=e;this.active=0;this.sourceEvent=null;this.extent=s.apply(t,e);this.taps=0}A.prototype={event:function(t){if(t)this.sourceEvent=t;return this},start:function(){if(++this.active===1){this.that.__zooming=this;this.emit("start")}return this},zoom:function(t,e){if(this.mouse&&t!=="mouse")this.mouse[1]=e.invert(this.mouse[0]);if(this.touch0&&t!=="touch")this.touch0[1]=e.invert(this.touch0[0]);if(this.touch1&&t!=="touch")this.touch1[1]=e.invert(this.touch1[0]);this.that.__zoom=e;this.emit("zoom");return this},end:function(){if(--this.active===0){delete this.that.__zooming;this.emit("end")}return this},emit:function(t){var e=o(this.that).datum();I.call(t,this.that,new p(t,{sourceEvent:this.sourceEvent,target:S,type:t,transform:this.that.__zoom,dispatch:I}),e)}};function H(t,...e){if(!h.apply(this,arguments))return;var n=R(this,e).event(t),o=this.__zoom,r=Math.max(b[0],Math.min(b[1],o.k*Math.pow(2,f.apply(this,arguments)))),a=u(t);if(n.wheel){if(n.mouse[0][0]!==a[0]||n.mouse[0][1]!==a[1]){n.mouse[1]=o.invert(n.mouse[0]=a)}clearTimeout(n.wheel)}else if(o.k===r)return;else{n.mouse=[a,o.invert(a)];i(this);n.start()}y(t);n.wheel=setTimeout(s,B);n.zoom("mouse",c(K(X(o,r),n.mouse[0],n.mouse[1]),n.extent,T));function s(){n.wheel=null;n.end()}}function N(t,...e){if(Y||!h.apply(this,arguments))return;var n=t.currentTarget,s=R(this,e,true).event(t),f=o(t.view).on("mousemove.zoom",d,true).on("mouseup.zoom",g,true),l=u(t,n),m=t.clientX,p=t.clientY;r(t.view);v(t);s.mouse=[l,this.__zoom.invert(l)];i(this);s.start();function d(t){y(t);if(!s.moved){var e=t.clientX-m,o=t.clientY-p;s.moved=e*e+o*o>D}s.event(t).zoom("mouse",c(K(s.that.__zoom,s.mouse[0]=u(t,n),s.mouse[1]),s.extent,T))}function g(t){f.on("mousemove.zoom mouseup.zoom",null);a(t.view,s.moved);y(t);s.event(t).end()}}function O(t,...e){if(!h.apply(this,arguments))return;var n=this.__zoom,i=u(t.changedTouches?t.changedTouches[0]:t,this),r=n.invert(i),a=n.k*(t.shiftKey?.5:2),f=c(K(X(n,a),i,r),s.apply(this,e),T);y(t);if(k>0)o(this).transition().duration(k).call(Q,f,i,t);else o(this).call(S.transform,f,i,t)}function W(t,...e){if(!h.apply(this,arguments))return;var n=t.touches,o=n.length,r=R(this,e,t.changedTouches.length===o).event(t),a,s,c,f;v(t);for(s=0;s<o;++s){c=n[s],f=u(c,this);f=[f,this.__zoom.invert(f),c.identifier];if(!r.touch0)r.touch0=f,a=true,r.taps=1+!!q;else if(!r.touch1&&r.touch0[2]!==f[2])r.touch1=f,r.taps=0}if(q)q=clearTimeout(q);if(a){if(r.taps<2)V=f[0],q=setTimeout((function(){q=null}),j);i(this);r.start()}}function C(t,...e){if(!this.__zooming)return;var n=R(this,e).event(t),o=t.changedTouches,i=o.length,r,a,h,s;y(t);for(r=0;r<i;++r){a=o[r],h=u(a,this);if(n.touch0&&n.touch0[2]===a.identifier)n.touch0[0]=h;else if(n.touch1&&n.touch1[2]===a.identifier)n.touch1[0]=h}a=n.that.__zoom;if(n.touch1){var f=n.touch0[0],l=n.touch0[1],m=n.touch1[0],p=n.touch1[1],v=(v=m[0]-f[0])*v+(v=m[1]-f[1])*v,d=(d=p[0]-l[0])*d+(d=p[1]-l[1])*d;a=X(a,Math.sqrt(v/d));h=[(f[0]+m[0])/2,(f[1]+m[1])/2];s=[(l[0]+p[0])/2,(l[1]+p[1])/2]}else if(n.touch0)h=n.touch0[0],s=n.touch0[1];else return;n.zoom("touch",c(K(a,h,s),n.extent,T))}function F(t,...e){if(!this.__zooming)return;var n=R(this,e).event(t),i=t.changedTouches,r=i.length,a,h;v(t);if(Y)clearTimeout(Y);Y=setTimeout((function(){Y=null}),j);for(a=0;a<r;++a){h=i[a];if(n.touch0&&n.touch0[2]===h.identifier)delete n.touch0;else if(n.touch1&&n.touch1[2]===h.identifier)delete n.touch1}if(n.touch1&&!n.touch0)n.touch0=n.touch1,delete n.touch1;if(n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else{n.end();if(n.taps===2){h=u(h,this);if(Math.hypot(V[0]-h[0],V[1]-h[1])<P){var s=o(this).on("dblclick.zoom");if(s)s.apply(this,arguments)}}}}S.wheelDelta=function(t){return arguments.length?(f=typeof t==="function"?t:m(+t),S):f};S.filter=function(t){return arguments.length?(h=typeof t==="function"?t:m(!!t),S):h};S.touchable=function(t){return arguments.length?(w=typeof t==="function"?t:m(!!t),S):w};S.extent=function(t){return arguments.length?(s=typeof t==="function"?t:m([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),S):s};S.scaleExtent=function(t){return arguments.length?(b[0]=+t[0],b[1]=+t[1],S):[b[0],b[1]]};S.translateExtent=function(t){return arguments.length?(T[0][0]=+t[0][0],T[1][0]=+t[1][0],T[0][1]=+t[0][1],T[1][1]=+t[1][1],S):[[T[0][0],T[0][1]],[T[1][0],T[1][1]]]};S.constrain=function(t){return arguments.length?(c=t,S):c};S.duration=function(t){return arguments.length?(k=+t,S):k};S.interpolate=function(t){return arguments.length?(E=t,S):E};S.on=function(){var t=I.on.apply(I,arguments);return t===I?S:t};S.clickDistance=function(t){return arguments.length?(D=(t=+t)*t,S):Math.sqrt(D)};S.tapDistance=function(t){return arguments.length?(P=+t,S):P};return S}export{w as d};
1
+ import{_ as t,N as e,a6 as n,d as o,a0 as i}from"./app-0de0ae35.js";import{p as u}from"./pointer-c7475677.js";import{d as r,y as a}from"./nodrag-0fa60f70.js";var h=1e-12;function s(t){return((t=Math.exp(t))+1/t)/2}function c(t){return((t=Math.exp(t))-1/t)/2}function f(t){return((t=Math.exp(2*t))-1)/(t+1)}var l=function t(e,n,o){function i(t,i){var u=t[0],r=t[1],a=t[2],l=i[0],m=i[1],p=i[2],v=l-u,y=m-r,d=v*v+y*y,g,z;if(d<h){z=Math.log(p/a)/e;g=function(t){return[u+t*v,r+t*y,a*Math.exp(e*t*z)]}}else{var _=Math.sqrt(d),M=(p*p-a*a+o*d)/(2*a*n*_),x=(p*p-a*a-o*d)/(2*p*n*_),w=Math.log(Math.sqrt(M*M+1)-M),b=Math.log(Math.sqrt(x*x+1)-x);z=(b-w)/e;g=function(t){var o=t*z,i=s(w),h=a/(n*_)*(i*f(e*o+w)-c(w));return[u+h*v,r+h*y,a*i/s(e*o+w)]}}g.duration=z*1e3*e/Math.SQRT2;return g}i.rho=function(e){var n=Math.max(.001,+e),o=n*n,i=o*o;return t(n,o,i)};return i}(Math.SQRT2,2,4);var m=t=>()=>t;function p(t,{sourceEvent:e,target:n,transform:o,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:true,configurable:true},sourceEvent:{value:e,enumerable:true,configurable:true},target:{value:n,enumerable:true,configurable:true},transform:{value:o,enumerable:true,configurable:true},_:{value:i}})}function v(t){t.stopImmediatePropagation()}function y(t){t.preventDefault();t.stopImmediatePropagation()}function d(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function g(){var t=this;if(t instanceof SVGElement){t=t.ownerSVGElement||t;if(t.hasAttribute("viewBox")){t=t.viewBox.baseVal;return[[t.x,t.y],[t.x+t.width,t.y+t.height]]}return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}return[[0,0],[t.clientWidth,t.clientHeight]]}function z(){return this.__zoom||e}function _(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function M(){return navigator.maxTouchPoints||"ontouchstart"in this}function x(t,e,n){var o=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],u=t.invertY(e[0][1])-n[0][1],r=t.invertY(e[1][1])-n[1][1];return t.translate(i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i),r>u?(u+r)/2:Math.min(0,u)||Math.max(0,r))}function w(){var h=d,s=g,c=x,f=_,w=M,b=[0,Infinity],T=[[-Infinity,-Infinity],[Infinity,Infinity]],k=250,E=l,I=t("start","zoom","end"),q,V,Y,j=500,B=150,D=0,P=10;function S(t){t.property("__zoom",z).on("wheel.zoom",H,{passive:false}).on("mousedown.zoom",N).on("dblclick.zoom",O).filter(w).on("touchstart.zoom",W).on("touchmove.zoom",C).on("touchend.zoom touchcancel.zoom",F).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}S.transform=function(t,e,n,o){var i=t.selection?t.selection():t;i.property("__zoom",z);if(t!==i){Q(t,e,n,o)}else{i.interrupt().each((function(){R(this,arguments).event(o).start().zoom(null,typeof e==="function"?e.apply(this,arguments):e).end()}))}};S.scaleBy=function(t,e,n,o){S.scaleTo(t,(function(){var t=this.__zoom.k,n=typeof e==="function"?e.apply(this,arguments):e;return t*n}),n,o)};S.scaleTo=function(t,e,n,o){S.transform(t,(function(){var t=s.apply(this,arguments),o=this.__zoom,i=n==null?G(t):typeof n==="function"?n.apply(this,arguments):n,u=o.invert(i),r=typeof e==="function"?e.apply(this,arguments):e;return c(K(X(o,r),i,u),t,T)}),n,o)};S.translateBy=function(t,e,n,o){S.transform(t,(function(){return c(this.__zoom.translate(typeof e==="function"?e.apply(this,arguments):e,typeof n==="function"?n.apply(this,arguments):n),s.apply(this,arguments),T)}),null,o)};S.translateTo=function(t,n,o,i,u){S.transform(t,(function(){var t=s.apply(this,arguments),u=this.__zoom,r=i==null?G(t):typeof i==="function"?i.apply(this,arguments):i;return c(e.translate(r[0],r[1]).scale(u.k).translate(typeof n==="function"?-n.apply(this,arguments):-n,typeof o==="function"?-o.apply(this,arguments):-o),t,T)}),i,u)};function X(t,e){e=Math.max(b[0],Math.min(b[1],e));return e===t.k?t:new n(e,t.x,t.y)}function K(t,e,o){var i=e[0]-o[0]*t.k,u=e[1]-o[1]*t.k;return i===t.x&&u===t.y?t:new n(t.k,i,u)}function G(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function Q(t,e,o,i){t.on("start.zoom",(function(){R(this,arguments).event(i).start()})).on("interrupt.zoom end.zoom",(function(){R(this,arguments).event(i).end()})).tween("zoom",(function(){var t=this,u=arguments,r=R(t,u).event(i),a=s.apply(t,u),h=o==null?G(a):typeof o==="function"?o.apply(t,u):o,c=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),f=t.__zoom,l=typeof e==="function"?e.apply(t,u):e,m=E(f.invert(h).concat(c/f.k),l.invert(h).concat(c/l.k));return function(t){if(t===1)t=l;else{var e=m(t),o=c/e[2];t=new n(o,h[0]-e[0]*o,h[1]-e[1]*o)}r.zoom(null,t)}}))}function R(t,e,n){return!n&&t.__zooming||new A(t,e)}function A(t,e){this.that=t;this.args=e;this.active=0;this.sourceEvent=null;this.extent=s.apply(t,e);this.taps=0}A.prototype={event:function(t){if(t)this.sourceEvent=t;return this},start:function(){if(++this.active===1){this.that.__zooming=this;this.emit("start")}return this},zoom:function(t,e){if(this.mouse&&t!=="mouse")this.mouse[1]=e.invert(this.mouse[0]);if(this.touch0&&t!=="touch")this.touch0[1]=e.invert(this.touch0[0]);if(this.touch1&&t!=="touch")this.touch1[1]=e.invert(this.touch1[0]);this.that.__zoom=e;this.emit("zoom");return this},end:function(){if(--this.active===0){delete this.that.__zooming;this.emit("end")}return this},emit:function(t){var e=o(this.that).datum();I.call(t,this.that,new p(t,{sourceEvent:this.sourceEvent,target:S,type:t,transform:this.that.__zoom,dispatch:I}),e)}};function H(t,...e){if(!h.apply(this,arguments))return;var n=R(this,e).event(t),o=this.__zoom,r=Math.max(b[0],Math.min(b[1],o.k*Math.pow(2,f.apply(this,arguments)))),a=u(t);if(n.wheel){if(n.mouse[0][0]!==a[0]||n.mouse[0][1]!==a[1]){n.mouse[1]=o.invert(n.mouse[0]=a)}clearTimeout(n.wheel)}else if(o.k===r)return;else{n.mouse=[a,o.invert(a)];i(this);n.start()}y(t);n.wheel=setTimeout(s,B);n.zoom("mouse",c(K(X(o,r),n.mouse[0],n.mouse[1]),n.extent,T));function s(){n.wheel=null;n.end()}}function N(t,...e){if(Y||!h.apply(this,arguments))return;var n=t.currentTarget,s=R(this,e,true).event(t),f=o(t.view).on("mousemove.zoom",d,true).on("mouseup.zoom",g,true),l=u(t,n),m=t.clientX,p=t.clientY;r(t.view);v(t);s.mouse=[l,this.__zoom.invert(l)];i(this);s.start();function d(t){y(t);if(!s.moved){var e=t.clientX-m,o=t.clientY-p;s.moved=e*e+o*o>D}s.event(t).zoom("mouse",c(K(s.that.__zoom,s.mouse[0]=u(t,n),s.mouse[1]),s.extent,T))}function g(t){f.on("mousemove.zoom mouseup.zoom",null);a(t.view,s.moved);y(t);s.event(t).end()}}function O(t,...e){if(!h.apply(this,arguments))return;var n=this.__zoom,i=u(t.changedTouches?t.changedTouches[0]:t,this),r=n.invert(i),a=n.k*(t.shiftKey?.5:2),f=c(K(X(n,a),i,r),s.apply(this,e),T);y(t);if(k>0)o(this).transition().duration(k).call(Q,f,i,t);else o(this).call(S.transform,f,i,t)}function W(t,...e){if(!h.apply(this,arguments))return;var n=t.touches,o=n.length,r=R(this,e,t.changedTouches.length===o).event(t),a,s,c,f;v(t);for(s=0;s<o;++s){c=n[s],f=u(c,this);f=[f,this.__zoom.invert(f),c.identifier];if(!r.touch0)r.touch0=f,a=true,r.taps=1+!!q;else if(!r.touch1&&r.touch0[2]!==f[2])r.touch1=f,r.taps=0}if(q)q=clearTimeout(q);if(a){if(r.taps<2)V=f[0],q=setTimeout((function(){q=null}),j);i(this);r.start()}}function C(t,...e){if(!this.__zooming)return;var n=R(this,e).event(t),o=t.changedTouches,i=o.length,r,a,h,s;y(t);for(r=0;r<i;++r){a=o[r],h=u(a,this);if(n.touch0&&n.touch0[2]===a.identifier)n.touch0[0]=h;else if(n.touch1&&n.touch1[2]===a.identifier)n.touch1[0]=h}a=n.that.__zoom;if(n.touch1){var f=n.touch0[0],l=n.touch0[1],m=n.touch1[0],p=n.touch1[1],v=(v=m[0]-f[0])*v+(v=m[1]-f[1])*v,d=(d=p[0]-l[0])*d+(d=p[1]-l[1])*d;a=X(a,Math.sqrt(v/d));h=[(f[0]+m[0])/2,(f[1]+m[1])/2];s=[(l[0]+p[0])/2,(l[1]+p[1])/2]}else if(n.touch0)h=n.touch0[0],s=n.touch0[1];else return;n.zoom("touch",c(K(a,h,s),n.extent,T))}function F(t,...e){if(!this.__zooming)return;var n=R(this,e).event(t),i=t.changedTouches,r=i.length,a,h;v(t);if(Y)clearTimeout(Y);Y=setTimeout((function(){Y=null}),j);for(a=0;a<r;++a){h=i[a];if(n.touch0&&n.touch0[2]===h.identifier)delete n.touch0;else if(n.touch1&&n.touch1[2]===h.identifier)delete n.touch1}if(n.touch1&&!n.touch0)n.touch0=n.touch1,delete n.touch1;if(n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else{n.end();if(n.taps===2){h=u(h,this);if(Math.hypot(V[0]-h[0],V[1]-h[1])<P){var s=o(this).on("dblclick.zoom");if(s)s.apply(this,arguments)}}}}S.wheelDelta=function(t){return arguments.length?(f=typeof t==="function"?t:m(+t),S):f};S.filter=function(t){return arguments.length?(h=typeof t==="function"?t:m(!!t),S):h};S.touchable=function(t){return arguments.length?(w=typeof t==="function"?t:m(!!t),S):w};S.extent=function(t){return arguments.length?(s=typeof t==="function"?t:m([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),S):s};S.scaleExtent=function(t){return arguments.length?(b[0]=+t[0],b[1]=+t[1],S):[b[0],b[1]]};S.translateExtent=function(t){return arguments.length?(T[0][0]=+t[0][0],T[1][0]=+t[1][0],T[0][1]=+t[0][1],T[1][1]=+t[1][1],S):[[T[0][0],T[0][1]],[T[1][0],T[1][1]]]};S.constrain=function(t){return arguments.length?(c=t,S):c};S.duration=function(t){return arguments.length?(k=+t,S):k};S.interpolate=function(t){return arguments.length?(E=t,S):E};S.on=function(){var t=I.on.apply(I,arguments);return t===I?S:t};S.clickDistance=function(t){return arguments.length?(D=(t=+t)*t,S):Math.sqrt(D)};S.tapDistance=function(t){return arguments.length?(P=+t,S):P};return S}export{w as d};
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@sjcrh/proteinpaint-client",
3
- "version": "2.76.2",
3
+ "version": "2.77.1",
4
4
  "description": "a genomics visualization tool for exploring a cohort's genotype and phenotype data",
5
+ "type": "module",
5
6
  "main": "dist/app.js",
6
7
  "module": "dist/app.js",
7
8
  "browser": "dist/app.js",
@@ -24,15 +25,12 @@
24
25
  "#updated-types": "./shared/types/terms/updated-types.ts"
25
26
  },
26
27
  "scripts": {
27
- "predev0": "node ./test/import-specs.js name=? && rm -f ../public/bin/*proteinpaint.js",
28
- "dev0": "rm -rf ../public/bin; webpack --env NODE_ENV=development --watch --progress --color",
29
28
  "dev": "./dev.sh",
30
29
  "pretest": "./test/pretest.js",
31
30
  "test": "./test.sh *.spec.js",
32
31
  "test:unit": "./test.sh *.unit.spec.*",
33
32
  "test:integration": "./test.sh *.integration.spec.*",
34
33
  "tsc": "tsc -p tsconfig-x.json",
35
- "examples": "node ./test/import-specs.js name=_x_.examples && npm run tape",
36
34
  "//TODO": "# replace rollup with esbuild",
37
35
  "rollw": "rm -rf dist && rollup -c ./rollup.config.js -w --bundleConfigAsCjs",
38
36
  "build": "rm -rf dist && rollup -c ./rollup.config.js",
@@ -1 +0,0 @@
1
- import{M as e,d as s,i,G as n,b as a,t as r,H as o,I as l,h as d}from"./app-6fb77603.js";import{r as c}from"./table-0daf2b89.js";import{i as f,a as p,b as m,T as u,r as h}from"./termsetting-492eefa7.js";import{c as y}from"./partjson.esm-b3f1fc21.js";import{c as b}from"./termdb.bins-39d11f24.js";function g(t){switch(t){case"./tvs.categorical.js":return import("./tvs.categorical-b9b37c70.js");case"./tvs.condition.js":return import("./tvs.condition-cbe198d7.js");case"./tvs.density.js":return import("./tvs.density-034b506d.js");case"./tvs.geneVariant.js":return import("./tvs.geneVariant-c59c8b54.js");case"./tvs.numeric.js":return import("./tvs.numeric-aa1f892f.js");case"./tvs.samplelst.js":return import("./tvs.samplelst-515f27b9.js");case"./tvs.survival.js":return import("./tvs.survival-df35b85b.js");default:return new Promise((function(e,s){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}class v{constructor(t){this.opts=this.validateOpts(t);this.dom={holder:t.holder,tip:new e({padding:"5px"})};this.durations={exit:0};w(this);this.categoryData={};this.handlerByType={};this.api={main:this.main.bind(this),showMenu:this.showMenu}}validateOpts(t){if(!t.holder)throw".holder missing";if(!t.vocabApi)throw".vocabApi missing";if(typeof t.callback!="function")throw".callback() is not a function";return t}async main(t={}){this.tvs=t.tvs;this.filter=t.filter;await this.setHandler();await this.updateUI()}async setHandler(){if(!this.tvs||!this.tvs.term)return;const t=this.tvs.term;const e=f(t)?"numeric":p(t)?"categorical":t.type;if(!this.handlerByType[e]){try{const t=await g(`./tvs.${e}.js`);this.handlerByType[e]=t.handler}catch(t){throw`error with handler='./tvs.${e}.js': ${t}`}}this.handler=this.handlerByType[e]}}const _=i(v);function w(t){t.updateUI=function(){const e=t.dom.holder;const s=e.selectAll(".tvs_pill").data([t.tvs],(t=>t?.term.id));s.exit().each(t.exitPill);s.each(t.updatePill);s.enter().append("div").attr("class","tvs_pill").style("white-space","nowrap").style("display","inline-block").transition().duration(200).each(t.enterPill)};t.enterPill=async function(){const e=s(this).style("font-size",".9em");e.append("div").attr("class","term_name_btn sja_filter_tag_btn").style("display","inline-block").style("border-radius","6px 0 0 6px").style("padding","6px 6px 3px 6px").html(t.handler.term_name_gen).style("text-transform","uppercase");e.append("div").attr("class","negate_btn").style("cursor","default").style("padding","6px 6px 3px 6px").style("background",t.tvs.isnot?"#f4cccc":"#a2c4c9").html(t.handler.getNegateText?.(t)||(t.tvs.isnot&&t.tvs.term.type!=="geneVariant"?"NOT":"IS"));t.updatePill.call(this)};t.showMenu=e=>{const s=e?e:t.dom.tip;if(t.tvs.term.type!=="geneVariant"){T(s,t.tvs,t)}t.handler.fillMenu(t,s,t.tvs)};t.updatePill=async function(){const e=s(this);const i=e.datum();const n=t.tvs.values&&t.tvs.values.length||t.tvs.ranges&&t.tvs.ranges.length||t.tvs.term.type=="samplelst";e.select(".term_name_btn").html(t.handler.term_name_gen);e.select(".negate_btn").style("display",n?"inline-block":"none").style("background",t.tvs.isnot?"#f4cccc":"#a2c4c9").html(t.handler.getNegateText?.(t)||(i.isnot&&i.term.type!=="geneVariant"?"NOT":"IS"));const a=t.handler.get_pill_label(i);if(!("grade_type"in a))a.grade_type="";const r=e.selectAll(".value_btn").data(a?[a]:[],(t=>t.txt+t.grade_type));r.exit().each(t.removeValueBtn);r.enter().append("div").attr("class","value_btn sja_filter_tag_btn").style("display",n?"inline-block":"none").style("padding","6px 6px 3px 6px").style("border-radius","0 6px 6px 0").style("font-style","italic").html((t=>t.txt)).append("div").attr("class","grade_type_btn").style("display","inline-block").style("margin","0 5px").style("font-size",".6em").style("text-transform","uppercase").html((t=>t.grade_type)).style("opacity",0).transition().duration(200).style("opacity",1)};t.exitPill=async function(e){s(this).style("opacity",1).transition().duration(t.durations.exit).style("opacity",0).remove()};t.makeValueTable=function(e,s,i,n){if(i?.length==0)return e;const a=e.append("div").style("font-size","0.8rem");const r=a.append("div");const o=Math.max(...i.map((t=>t.samplecount)),0);i.forEach((t=>t.bar_width_frac=Number((1-(o-t.samplecount)/o).toFixed(4))));const l=100;const d=[];const f=[];for(const[t,e]of i.entries()){let i=e.label||e.key;if(e.samplecount)i+=" (n="+e.samplecount+")";const n=l*e.bar_width_frac;const a=`<div style='margin:1px 10px;width:${n}px;height:15px;background-color:#ddd'>`;d.push([{value:i},{html:a}]);let r=false;if(s.term.type=="categorical"||s.term.type=="survival")r=s.values.find((t=>t.key===e.key));else if(s.term.type=="float"||s.term.type=="integer")r=s.ranges.find((t=>String(t.value)===e.value.toString()));else if(s.term.type=="condition")r=s.values.find((t=>String(t.key)===String(e.key)));if(r)f.push(t)}const p=[{label:"tvs"},{label:"bar"}];const m={text:"APPLY",class:"sjpp_apply_btn sja_filter_tag_btn",callback:t=>{if(n)n(t)}};t.tableApi=c({rows:d,columns:p,div:r,maxWidth:"40vw",maxHeight:"40vh",buttons:[m],showHeader:false,striped:false,showLines:false,selectedRows:f,selectedRowStyle:{"text-decoration":s.isnot?"line-through":""}});return r};t.removeValueBtn=function(e,i){const n=s(this.parentNode);const a=n.datum();const r=t.handler.getSelectRemovePos(i,a);s(n.selectAll(".value_select")._groups[0][r]).remove();s(n.selectAll(".or_btn")._groups[0][i]).remove();s(this).style("opacity",1).transition().duration(t.durations.exit).style("opacity",0).remove()}}async function j(t){const e=new v(t);e.tvs={term:t.term};e.filter=t.filter;await e.setHandler();if(e.handler.setTvsDefaults)e.handler.setTvsDefaults(e.tvs);e.handler.fillMenu(e,t.holder,e.tvs)}function T(t,e,s){const i=t.selectAll("label").data([{label:"Exclude",value:"false",checked:e.isnot!==undefined?e.isnot:false}]).enter().append("label").style("margin","0 5px");const n=i.append("input").attr("type","checkbox").attr("name","sja_filter_isnot_input").attr("value",(t=>t.value)).property("checked",(t=>t.checked)).style("vertical-align","top").style("margin-right","3px").on("change",(()=>{e.isnot=n.node().checked;if(s.tableApi){s.tableApi.update({selectedRowStyle:{"text-decoration":e.isnot?"line-through":""}})}}));i.append("span").style("margin-right","5px").style("vertical-align","top").html((t=>t.label))}function x(t,e){if(t.type==="tvs"&&t.tvs.term.id===e)return t;if(t.type!=="tvslst")return;for(const s of t.lst){const t=x(s,e);if(t)return t}}function S(t,e){if(t.$id===e)return t;if(t.type!=="tvslst")return;for(const s of t.lst){const t=S(s,e);if(t)return t}}function k(t,e){if(t.$id===e)return t;if(!t.lst)return;for(const s of t.lst){if(s.$id===e)return t;else if(s.type=="tvslst"){const t=k(s,e);if(t)return t}}}function N(t,e){if(t.tag===e)return t;if(t.type!=="tvslst")return;for(const s of t.lst){const t=N(s,e);if(t)return t}}function C(t=[],e="",s=null){const i={type:"tvslst",in:true,join:e,lst:t};if(s!==null&&i.$id!==undefined)i.$id=s;return i}function I(t){if(!t)return C([]);const e=JSON.parse(JSON.stringify(t));const s=O(e);return s.type=="tvslst"?s:C([s])}function O(t){delete t.$id;delete t.tag;if(t.type!="tvslst")return t;const e=t.lst.filter((t=>t.type!=="tvslst"||t.lst.length>0)).map((t=>t.type!=="tvslst"||t.lst.length>1?t:t.lst[0]));e.forEach(D);if(!e.length){return C([],"",t.$id)}else if(e.length==1){if(e[0].type==="tvslst"){return O(e[0])}else{return D(e[0])}}else{t.lst=[];for(const s of e){if(s.type==="tvslst"){const e=O(s);if(e.type!=="tvslst"||e.join!=t.join||e.in!=t.in){t.lst.push(e)}else if(e.lst.length){t.lst.push(...e.lst)}}else{t.lst.push(s)}}return t}}function D(t,e=null){delete t.$id;if(typeof e=="function")e(t);if(t.type=="tvslst"){for(const s of t.lst){D(s,e)}}return t}function A(t){if(!t||t.length==0)return;let e=JSON.parse(JSON.stringify(t[0]));if(t.length==1)return e;if(e.lst.length<2){if(e.join!=="")throw'filter.join must be an empty string "" when filter.lst.length < 2';e.join="and"}else if(e.join=="or"){e={type:"tvslst",join:"and",in:true,lst:[e]}}else if(e.join!="and"){throw'filter.join must be either "and" or "or" when .lst length > 1'}for(let s=1;s<t.length;s++){const i=JSON.parse(JSON.stringify(t[s]));if(i.join=="or")e.lst.push(i);else e.lst.push(...i.lst)}if(e.lst.length==1&&e.lst[0].type=="tvs"){e.join=""}return e}let q=0;function $(t){t.initUI=async function(){if(t.opts.newBtn){t.opts.newBtn.on("click.filter",t.displayTreeNew)}else{t.dom.newBtn=t.dom.holder.append("div").attr("class","sja_new_filter_btn sja_menuoption").html(t.opts.emptyLabel).style("display","inline-block").on("click",t.displayTreeNew)}t.dom.filterContainer=t.dom.holder.append("div").attr("class","sja_filter_container");t.dom.holder.selectAll(".sja_filter_add_transformer").data(t.opts.joinWith).enter().append("div").attr("class","sja_filter_add_transformer").style("display",(e=>t.filter&&t.filter.join!=e?"inline-block":"none")).style("margin-left","10px").style("padding","5px").style("border-radius","5px").style("cursor","pointer").html((t=>"+"+t.toUpperCase())).on("click",t.displayTreeNew);t.dom.table=t.dom.controlsTip.clear().d.append("table").style("border-collapse","collapse");const e=[{action:"edit",html:["","Edit","&rsaquo;"],handler:t.editTerm},{action:"join",html:["&#10010;","","&rsaquo;"],handler:t.displayTreeMenu},{action:"switch",html:["","Switch to",""],handler:t.switchJoin},{action:"negate",html:["","Negate",""],handler:t.negateClause},{action:"remove",html:["&#10006;","Remove",""],handler:t.removeTransform}];if(t.opts.vocab){e.splice(1,0,{action:"replace",html:["","Replace","&rsaquo;"],handler:t.displayTreeMenu})}t.dom.table.selectAll("tr").data(e).enter().append("tr").attr("class","sja_menuoption").on("click",t.handleMenuOptionClick).selectAll("td").data((t=>t.html)).enter().append("td").style("padding","5px").style("border-top","solid 1px white").style("color",((t,e)=>t=="&#10006;"?"#a00":e===0?"#0a0":"#111")).style("opacity",((t,e)=>e===0?.8:1)).html((t=>t));t.dom.treeHead=t.dom.treeTip.d.append("div").attr("class","sja_tree_tip_head").style("padding","3px");t.dom.termSrcDiv=t.dom.treeTip.d.append("div").attr("class","sja_term_src_body");t.dom.treeHeadTitle=t.dom.treeHead.append("div");s("body").on("mousedown.sja_filter_"+q++,(e=>{if(["sja_filter_join_label","sja_filter_clause_negate","sja_filter_paren_open","sja_filter_paren_close"].includes(e.target.className))return;t.dom.filterContainer?.selectAll(".sja_filter_grp").style("background-color","transparent");t.removeBlankPill();this.dom.holder?.selectAll(".sja_filter_add_transformer").style("display",this.getAddTransformerBtnDisplay)}))};t.updateUI=async function(e,s){e.datum(s).style("display",!s.lst||!s.lst.length?"none":"inline-block");const i=e.selectAll(":scope > .sja_filter_grp").style("background-color","transparent").data([s],t.getId);i.exit().each(t.removeGrp);i.each(t.updateGrp);i.enter().append("div").attr("class","sja_filter_grp").style("margin","5px").each(t.addGrp);t.updatePromise(0)};t.addGrp=function(e,i){const n=this.parentNode.__data__;s(this).style("display","inline-block");s(this).append("div").attr("class","sja_filter_clause_negate").style("display",n.in?"none":"inline-block").style("color","rgb(102,0,0)").style("font-weight",500).style("cursor","pointer").html("NOT").on("click",t.displayControlsMenu);s(this).append("div").attr("class","sja_filter_paren_open").html("(").style("display","none").style("padding","0 5px").style("font-weight",500).style("font-size","24px").style("cursor","pointer").on("click",t.displayControlsMenu);const a=e.type=="tvslst"?e.lst:[e];const r=s(this).selectAll(":scope > .sja_filter_item").data(a,t.getId);r.enter().append("div").attr("class","sja_filter_item").each(t.addItem);if(t.opts.joinWith.length==1){t.dom.last_join_div=s(this).append("div").attr("class","sja_filter_last_join").style("display","inline");t.dom.last_join_label=t.dom.last_join_div.append("div").datum({action:"join",html:["&#10010;","","&rsaquo;"],handler:t.displayTreeMenu}).attr("class","sja_filter_last_join_label").style("padding","0 5px").style("display",n.lst.length?"inline":"none").style("font-weight",500).style("cursor","pointer").html("+"+t.opts.joinWith[0].toUpperCase()).on("click",t.showLastJoinBlank);s("body").on("mousedown.sja_filter_last_join",(()=>{t.dom.last_join_label.style("display","inline")}))}s(this).append("div").attr("class","sja_filter_paren_close").style("padding","0 5px").html(")").style("display","none").style("font-weight",500).style("font-size","24px").style("cursor","pointer").on("click",t.displayControlsMenu);s(this).selectAll(":scope > .sja_filter_paren_open, :scope > .sja_filter_paren_close").style("display",t.opts.joinWith.length<2||a.length<2?"none":!n.in||a.length>1&&n.tag!="filterUiRoot"?"inline-block":"none")};t.updateGrp=function(e,i){const n=this.parentNode.__data__;s(this).select(":scope > .sja_filter_clause_negate").style("display",n.in?"none":"inline-block");const a=e.type=="tvslst"?e.lst:[e];s(this).selectAll(":scope > .sja_filter_paren_open, :scope > .sja_filter_paren_close").style("display",t.opts.joinWith.length<2||a.length<2?"none":!n.in||a.length>1&&n.tag!="filterUiRoot"?"inline-block":"none");const r=s(this).selectAll(":scope > .sja_filter_item").data(a,t.getId);r.exit().each(t.removeItem);r.each(t.updateItem);r.enter().insert("div",":scope > .sja_filter_paren_close").attr("class","sja_filter_item").each(t.addItem);s(this).selectAll(":scope > .sja_filter_item").sort(((t,e)=>a.indexOf(t)-a.indexOf(e)));if(t.dom.last_join_label){t.dom.last_join_div.datum(n);this.insertBefore(t.dom.last_join_div.node(),s(this).select(":scope > .sja_filter_paren_close").node());t.dom.last_join_label.style("display","inline")}};t.removeGrp=function(e){t.numExpectedItems+=1;if(e.type=="tvslst"){for(const s of e.lst){if(s.lst)t.removeGrp(s);else{delete t.pills[s.$id]}}}else{delete t.pills[e.$id]}if(this instanceof Node){s(this).selectAll("*").on("click",null);s(this).on("click",null).remove()}t.updatePromise()};t.addItem=async function(e,i){const n=this.parentNode.__data__;if(e.type=="tvslst"){t.updateUI(s(this),e);t.addJoinLabel(this,n,e);return}t.numExpectedItems+=1;const a=s(this).style("display","inline-block").style("position","relative").style("white-space","nowrap").append("div").attr("class","sja_pill_wrapper").style("display","inline-block").style("margin",t.opts.joinWith.length>1?"":"2px").on("click",e.renderAs==="htmlSelect"?null:t.displayControlsMenu);t.addJoinLabel(this,n,e);if(e.renderAs=="htmlSelect"){const s=V(t,e);const i=a.append("select").on("change",(function(){const i=JSON.parse(JSON.stringify(t.filter));const a=S(i,n.$id);const r=n.lst.indexOf(e);if(r==-1)return;const o=+this.value;const l=JSON.parse(JSON.stringify(e));const d="keys"in s[o]?s[o].keys:[s[o].key];l.tvs.values=d.map((t=>({key:t,label:t})));a.lst[r]=l;t.refresh(i)}));const r=M(t,e);i.selectAll("option").data(s).enter().append("option").property("value",((t,e)=>e)).property("selected",((t,e)=>e==r)).html((t=>t.shortLabel?t.shortLabel:t.label?t.label:t.key))}else{const s=await _({vocabApi:t.vocabApi,holder:a,debug:t.opts.debug,getCategoriesArguments:t.opts.getCategoriesArguments,callback:s=>{const i=JSON.parse(JSON.stringify(t.filter));const a=S(i,n.$id);const r=n.lst.indexOf(e);if(r==-1)return;const o=a.lst.findIndex((t=>t.$id==e.$id));if(o==-1)a.lst[r]={$id:e.$id,type:"tvs",tvs:s};else a.lst[o].tvs=s;t.refresh(i)}});t.pills[e.$id]=s;await s.main({tvs:e.tvs,filter:t.getFilterExcludingPill(e.$id)})}t.updatePromise()};t.updateItem=async function(e,i){const n=this.parentNode.__data__;s(this).select(":scope > .sja_filter_join_label").style("display",t.opts.joinWith.length>1&&n.lst.indexOf(e)<n.lst.length-1?"inline-block":"none").style("margin",t.opts.joinWith.length>1?"":"2px").html(n.join=="and"?"AND":"OR");if(e.type=="tvslst"){t.updateUI(s(this),e)}else if(e.renderAs==="htmlSelect"){t.numExpectedItems+=1;s(this).select("select").property("value",""+M(t,e))}else{if(!t.pills[e.$id])return;t.numExpectedItems+=1;await t.pills[e.$id].main({tvs:e.tvs,filter:t.getFilterExcludingPill(e.$id)})}t.updatePromise()};t.removeItem=function(e){delete t.pills[e.$id];s(this).on("click",null).remove()};t.addJoinLabel=function(e,i,n){const a=i.lst.findIndex((t=>t.$id===n.$id));s(e).append("div").attr("class","sja_filter_join_label").style("display",t.opts.joinWith.length>1&&i.lst.length>1&&n&&a!=-1&&a<i.lst.length-1?"inline-block":"none").style("width","50px").style("padding","5px").style("border","none").style("border-radius","5px").style("text-align","center").style("cursor","pointer").html(i.lst.length<2?"":i.join=="and"?"AND":"OR").on("click",t.displayControlsMenu)};t.updateJoinLabel=function(e){const i=this.parentNode.parentNode.parentNode.__data__;const n=i.lst.findIndex((t=>t.$id===e.$id));s(this).style("display",t.opts.joinWith.length>1&&i.lst.length>1&&e&&n!=-1&&n<i.lst.length-1?"inline-block":"none")};t.getAddTransformerBtnDisplay=function(e){if(t.opts.joinWith.length<2){return"none"}else if(t.filter&&t.filter.lst.find((t=>t.tag==="cohortFilter"))){return t.filter.lst.length==1&&e=="and"?"inline-block":"none"}else{return t.filter&&t.filter.lst.length>0&&(t.filter.join!==e||!t.filter.in)?"inline-block":"none"}}}function V(t,e){return e.selectOptionsFrom=="selectCohort"?t.opts.termdbConfig.selectCohort.values:Array.isArray(e.tvs.term.values)?e.tvs.term.values:Object.values(e.tvs.term.values)}function M(t,e){const s=V(t,e);const i=JSON.stringify(e.tvs.values.map((t=>t.key)).sort());const n=s.findIndex((t=>t.keys?i===JSON.stringify(t.keys.sort()):t.key===i));return n}const R="#fff";function E(t){t.displayControlsMenu=function(e){e.stopPropagation();if(!t.activeData)return;const s=this.parentNode.__data__;const i=k(t.filter,s.$id);t.activeData={item:s,filter:i,elem:this};t.removeBlankPill();t.resetGrpHighlights(this,i);if(s.noEdit)t.dom.table.selectAll("tr").filter((t=>t.action=="edit")).style("display","none");t.dom.controlsTip.showunder(this)};t.resetGrpHighlights=function(e,s){const i=e.className;const n=i.includes("join")||i.includes("negate")||i.includes("paren");const a=t.dom.controlsTip.d.selectAll("tr").style("background-color","");a.filter((t=>t.action=="edit"||t.action=="replace")).style("display",n?"none":"table-row");a.filter((t=>t.action=="remove")).style("display",i.includes("_join_")&&s.lst.find((t=>t.tag=="cohortFilter"))?"none":"table-row");a.filter((t=>t.action=="join")).style("display",t.opts.joinWith.length<2||s.$id==t.filter.$id&&s.lst.length==1||i.includes("negate")||i.includes("paren")?"none":"table-row").select("td:nth-child(2)").html(n?s.join.toUpperCase():s.join=="and"?"OR":"AND");a.filter((t=>t.action=="switch")).style("display",t.opts.joinWith.length<2||s.$id==t.filter.$id&&s.lst.length==1||!i.includes("_join_")?"none":"table-row").select("td:nth-child(2)").html((t=>s.join=="and"?"Switch to OR":"Switch to AND"));t.dom.filterContainer.selectAll(".sja_filter_grp").style("background-color","transparent");if(n){if(i.includes("join"))e.parentNode.parentNode.style.backgroundColor="#ee5";else e.parentNode.style.backgroundColor="#ee5"}};t.handleMenuOptionClick=async function(e,s){e.stopPropagation();if(s==t.activeData.menuOpt)return;t.activeData.menuOpt=s;if(t.activeData.elem.className.includes("join")&&s.action!=="join"&&s.action!="switch"){t.activeData.item=t.activeData.filter;t.activeData.filter=k(t.filter,t.activeData.item)}t.resetBlankPill(s.action);t.dom.controlsTip.d.selectAll("tr").style("background-color","");await s.handler(this,s)};t.resetBlankPill=function(e){t.removeBlankPill();t.dom.filterContainer.selectAll(".sja_filter_grp").style("background-color","transparent");if(e!="join")return;const i=t.dom.last_join_div?t.dom.last_join_div.node():t.activeData.elem.className.includes("join_label")?t.activeData.elem.parentNode.parentNode:t.activeData.item.type=="tvs"||t.activeData.filter===t.filter?t.activeData.elem:t.activeData.elem.parentNode.parentNode;const n=t.opts.joinWith.length===1?t.opts.joinWith[0].toUpperCase():t.activeData.elem.className.includes("join_label")?t.activeData.filter.join.toUpperCase():t.activeData.btn&&typeof t.activeData.btn.__data__==="string"?t.activeData.btn.__data__.toUpperCase():t.activeData.item.type=="tvslst"?t.activeData.filter.join.toUpperCase():t.activeData.filter.join=="or"?"AND":"OR";if(t.activeData.item.type=="tvs"&&!t.activeData.elem.className.includes("join_label")){s(i).insert("div","div").attr("class","sja_filter_paren_open").style("display",t.opts.joinWith.length>1?"inline-block":"none").style("padding","0 5px").style("font-weight",500).style("font-size","24px").style("cursor","pointer").html("(")}const a=s(i).insert("div",":scope > .sja_filter_paren_close").attr("class","sja_filter_blank_pill").style("display","inline-block").style("height","20px").style("overflow","visible");a.append("div").style("display","inline-block").style("width","50px").style("text-align","center").html(n);a.append("div").style("position","relative").style("top","-7px").style("display","inline-block").style("width","80px").style("height","22px").style("margin-right","5px").style("border","3px dashed #b8d3ea").style("vertical-align","top").style("background-color","#ee5");if(t.activeData.item.type=="tvs"&&!t.activeData.elem.className.includes("join_label")){s(i).append("div").attr("class","sja_filter_paren_close").style("display",t.opts.joinWith.length>1?"inline-block":"none").style("padding","0 5px").style("font-weight",500).style("font-size","24px").style("cursor","pointer").html(")")}if(i==t.dom.filterContainer.node()){t.dom.filterContainer.selectAll(":scope > .sja_filter_grp > .sja_filter_paren_open, :scope > .sja_filter_grp > .sja_filter_paren_close").style("display",t.opts.joinWith.length>1&&t.filter.lst.length>1?"inline-block":"none")}};t.removeBlankPill=function(){t.dom.holder?.selectAll(".sja_filter_blank_pill, .sja_pill_wrapper > .sja_filter_paren_open, .sja_pill_wrapper > .sja_filter_paren_close").remove();if(t.filter.in&&t.filter.lst.filter((t=>t.type==="tvslst")).length<1){t.dom.filterContainer?.selectAll(":scope > .sja_filter_grp > .sja_filter_paren_open, :scope > .sja_filter_grp > .sja_filter_paren_close").style("display","none")}};t.displayTreeNew=async function(e,s){e.stopPropagation();if(t.opts.newBtn&&this.className!=="sja_filter_add_transformer"&&t.filter.lst.length)return;t.dom.filterContainer.selectAll(".sja_filter_grp").style("background-color","transparent");if(t.filter.lst.length>0){t.activeData={item:t.filter,filter:t.filter,elem:t.dom.filterContainer.node(),btn:this}}if(t.filter.lst.length)t.resetBlankPill("join");const i=t.dom.filterContainer.select(".sja_filter_blank_pill").node();if(i){t.dom.holder.selectAll(".sja_filter_add_transformer").style("display","none");t.dom.treeTip.clear().showunder(i)}else{t.dom.treeTip.clear().showunder(this)}const n=t.activeData?t.getAdjustedRoot(t.activeData.filter.$id,s):JSON.parse(t.rawCopy);const a=await import("./app-d215327f.js");a.appInit({vocabApi:t.vocabApi,holder:t.dom.termSrcDiv,getCategoriesArguments:t.opts.getCategoriesArguments,state:{activeCohort:t.activeCohort,termfilter:{filter:n},tree:{usecase:{target:"filter"}}},tree:{disable_terms:t.activeData&&t.activeData.filter&&t.activeData.filter.lst&&s=="and"?t.activeData.filter.lst.filter((t=>t.type==="tvs"&&t.tvs.term.type!=="condition")).map((t=>t.tvs.term.id)):[],click_term2select_tvs(e){t.editFilterRoot(s,[{type:"tvs",tvs:e}])}}})};t.editFilterRoot=(e,s)=>{const i=JSON.parse(JSON.stringify(t.filter));if(!i.lst.length){if(s.length>1)i.join="and";i.lst.push(...s);t.refresh(i)}else if(e!="or"&&e!="and"){throw"unhandled new term(s): invalid appender join value"}else{if(!i.join)i.join=e;if(i.join==e&&i.in){if(s.length<2||i.join=="and"){i.lst.push(...s)}else{i.push({type:"tvslst",in:true,join:"and",lst:s})}t.refresh(i)}else if(e=="and"||s.length<2){delete i.tag;t.refresh({tag:"filterUiRoot",type:"tvslst",in:true,join:e,lst:[i,...s]})}else{delete i.tag;t.refresh({tag:"filterUiRoot",type:"tvslst",in:true,join:"or",lst:[i,{type:"tvslst",in:true,join:"and",lst:s}]})}}};t.displayTreeMenu=async function(e,i){s(e).style("background-color",R);t.dom.holder.selectAll(".sja_filter_add_transformer").style("display","none");const n=t.dom.filterContainer.select(".sja_filter_blank_pill").node();if(n){t.dom.controlsTip.hide();t.dom.treeTip.clear().showunder(n)}else if(e.lastChild instanceof HTMLElement){t.dom.treeTip.clear().showunderoffset(e.lastChild)}else{t.dom.treeTip.clear().showunder(e)}const a=t.activeData.filter;const r=await import("./app-d215327f.js");r.appInit({vocabApi:t.vocabApi,holder:t.dom.termSrcDiv,getCategoriesArguments:t.opts.getCategoriesArguments,state:{activeCohort:t.activeCohort,header_mode:"search_only",termfilter:{filter:t.getAdjustedRoot(a.$id,a.join)},tree:{usecase:{target:"filter"}}},tree:{disable_terms:a&&a.lst&&a.join=="and"?a.lst.filter((t=>t.type==="tvs"&&t.tvs.term.type!=="condition")).map((t=>t.tvs.term.id)):!t.activeData.item?[]:t.activeData.item.type=="tvs"?[t.activeData.item.tvs.term.id]:t.activeData.item.lst?t.activeData.item.lst.filter((t=>t.type=="tvs")).map((t=>t.tvs.term.id)):[],click_term2select_tvs:i.action=="replace"?t.replaceTerm:!a.join||!a.lst.length||t.activeData.elem&&t.activeData.elem.className.includes("join")?t.appendTerm:t.subnestFilter}})};t.editTerm=function(e){s(e.parentNode).selectAll("tr").style("background-color",t.highlightEditRow);const i=t.dom.termSrcDiv;const n=t.activeData.item;t.dom.treeTip.clear();t.pills[n.$id].showMenu(i);t.dom.treeTip.showunderoffset(e.lastChild)};t.highlightEditRow=function(t){return t.action=="edit"?R:""};t.handleNotLabelClick=function(e,s){t.activeData={item:this.__data__};t.negateClause()};t.negateClause=function(){const e=JSON.parse(JSON.stringify(t.filter));const s=S(e,t.activeData.item.$id);if(s.type=="tvslst")s.in=!s.in;else if(s.type=="tvs"&&s.tvs?.term?.type=="geneVariant"){const t=s.tvs.values.filter((t=>t.mclassExcludeLst.length>0))[0];const e=t.mclassLst;t.mclassLst=t.mclassExcludeLst;t.mclassExcludeLst=e;s.tvs.isnot=!s.tvs.isnot}else s.tvs.isnot=!s.tvs.isnot;t.refresh(e)};t.replaceTerm=e=>{const s=Array.isArray(e)?e:[{type:"tvs",tvs:e}];const i=JSON.parse(JSON.stringify(t.filter));const n=S(i,t.activeData.filter.$id);const a=n.lst.findIndex((e=>e.$id===t.activeData.item.$id));if(s.length<2||n.join=="and"){n.lst.splice(a,1,...s)}else{n.lst[a]={in:!e.isnot,type:"tvslst",join:"and",lst:s}}t.refresh(i)};t.appendTerm=e=>{const s=Array.isArray(e)?e:[{type:"tvs",tvs:e}];const i=JSON.parse(JSON.stringify(t.filter));const n=S(i,t.activeData.filter.$id);if(s.length<2||n.join=="and"){n.lst.push(...s);if(n.join==""&&t.opts.joinWith.length===1)n.join=t.opts.joinWith[0]}else{n.lst.push({in:true,type:"tvslst",join:"and",lst:s})}t.refresh(i)};t.subnestFilter=e=>{let s;if(Array.isArray(e)){s=e}else{s=[{type:"tvs",tvs:e}]}const i=t.activeData.item;const n=t.activeData.filter;const a=JSON.parse(JSON.stringify(t.filter));const r=S(a,n.$id);const o=r.lst.findIndex((t=>t.$id===i.$id));r.lst[o]={in:true,type:"tvslst",join:n.join=="or"?"and":"or",lst:[i,...s]};t.refresh(a)};t.removeTransform=function(e,s){const i=s.action||typeof s!=="object"?t.activeData.item:S(t.filter,s.$id);const n=k(t.filter,i.$id);if(i==n){t.refresh(C([],"",i.$id));return}const a=n.lst.findIndex((t=>t.$id===i.$id));if(a==-1)return;const r=JSON.parse(JSON.stringify(t.filter));const o=S(r,n.$id);o.lst.splice(a,1);if(o.lst.length===1){const e=k(r,o.$id);if(o.lst[0].type=="tvslst"){if(e==r){o.lst[0].tag="filterUiRoot";t.refresh(o.lst[0])}else{const s=e.lst.findIndex((t=>t.$id==o.$id));if(o.lst[0].join==e.join){e.lst.splice(s,1,...o.lst[0].lst);t.refresh(r)}else{e.lst[s]=o.lst[0];t.refresh(r)}}}else{o.join="";const s=e.lst.findIndex((t=>t.$id===o.$id));e.lst[s]=o.lst[0];if(!o.in){e.lst[s].tvs.isnot=!e.lst[s].tvs.isnot;if(e==r)e.in=true}t.refresh(r)}}else{t.refresh(r)}};t.showLastJoinBlank=function(e,s){e.stopPropagation();const i=t.dom.last_join_div.node();t.dom.last_join_label.style("display","none");const n=this.parentNode.__data__;t.activeData={item:n,filter:n,elem:i};t.resetBlankPill(s.action);t.displayTreeMenu(i,s)};t.switchJoin=function(e,s){const i=JSON.parse(JSON.stringify(t.filter));const n=S(i,t.activeData.filter.$id);if(n.join<2)return;n.join=n.join=="and"?"or":"and";t.refresh(i)}}function B(t,e={}){if(t.find((t=>!Number.isFinite(t))))throw"non-numeric values found";let s;const i=new Set(t);if(i.size===1){const t=[...i][0];s={type:"custom-bin",lst:[{stop:t,stopinclusive:false,startunbounded:true,label:"<"+t},{start:t,stop:t,startinclusive:true,stopinclusive:true,label:"="+t},{start:t,startinclusive:false,stopunbounded:true,label:">"+t}]}}else{t.sort(((t,e)=>t-e));const e=t.length;const i=t[0];const n=t[e-1];const a=(n-i)/8;let r=Math.round(e*.05)-1;if(r<0)r=0;const o=t[r];const l=Math.max(i+a,o);let[d,c,f,p]=J(a,l,n,i);s={type:"regular-bin",startinclusive:true,bin_size:d,first_bin:{stop:c}};if(f)s.last_bin={start:f};if(p)s.rounding=p}if("format"in e){if(e.format==="string"){return JSON.stringify(s)}else{throw"options are not in the correct format"}}else{return s}}function J(t,e,s,i){let n,a,r,o;const l=Math.floor(Math.log10(t));if(t>=.1&&t<=2){n=Math.round(t/(1*10**l))*(1*10**l);a=Math.round(e/(1*10**l))*(1*10**l)}else{n=Math.round(t/(5*10**l))*(5*10**l);a=Math.round(e/(5*10**l))*(5*10**l);if(n===0)n=1*10**l;if(a===0)a=1*10**l;if(n===5*10**l&&a===1*10**l)a=5*10**l}if(a<i)a=a*2;const d=a+n*7;if(s>d){r=a+n*6}if(t<1){const t=Math.abs(l);n=Number(n.toFixed(t));a=Number(a.toFixed(t));if(r)r=Number(r.toFixed(t));o="."+t+"f"}if(Object.is(a,-0))a=0;return[n,a,r,o]}class P{constructor(t){this.app=t.app;this.opts=t;this.state=t.state;this.vocab=t.state.vocab;this.currAnnoData={samples:{},refs:{byTermId:{}},lastTerms:[],lastFilter:{}};this.missingCatValsByTermId={};const e=localStorage.getItem("jwtByDsRoute")||`{}`;this.jwtByDsRoute=JSON.parse(e);const s=this.vocab?.dslabel||this.state?.dslabel;this.jwtByRoute=this.jwtByDsRoute[s]||{}}async main(t=null){if(t)Object.assign(this.state,t);else this.state=structuredClone(this.app?.getState?.()||this.opts.state);if(this.state.vocab)this.vocab=this.state.vocab;const e=this.state.dslabel||this.state.vocab.dslabel;this.verifiedToken=!this.state.termdbConfig?.requiredAuth?.length||n(e,"termdb");if(e)await this.maySetVerifiedToken(e)}async maySetVerifiedToken(t){if(this.verifiedToken===true)return this.verifiedToken;let e=this.opts.getDatasetAccessToken?.();if(!e)e=this.jwtByRoute["termdb"];if(this.verifedToken&&e===this.verifiedToken)return this.verifiedToken;try{const s=this.state.termdbConfig?.requiredAuth.find((t=>t.route=="termdb"));if(!s){this.verifiedToken=true;return}if(s.type==="jwt"){if(!e){delete this.verifiedToken;return}const i={[s.headerKey]:e};const n="termdb";if(!i.authorization&&this.jwtByRoute[n])i.authorization=`Bearer ${btoa(this.jwtByRoute[n])}`;const r=await a("/jwt-status",{method:"POST",headers:i,body:{dslabel:t,route:n,embedder:location.hostname}});this.verifiedToken=r.status==="ok"&&e;if(r.error){this.tokenVerificationPayload=r;throw r.error}else{this.sessionId=s.headerKey&&r[s.headerKey]||r["x-sjppds-sessionid"]||r["x-ds-access-token"];delete this.tokenVerificationMessage;delete this.tokenVerificationPayload;if(r.jwt){if(!this.jwtByDsRoute[t]){this.jwtByDsRoute[t]={};this.jwtByRoute=this.jwtByDsRoute[t]}this.jwtByDsRoute[t][r.route]=r.jwt;localStorage.setItem("jwtByDsRoute",JSON.stringify(this.jwtByDsRoute))}}}else{throw`unsupported requiredAuth='${s.type}'`}}catch(t){this.tokenVerificationMessage=t.message||t.reason||t;if(typeof t=="object")console.log(t)}}hasVerifiedToken(){return this.verifiedToken&&true}mayGetAuthHeaders(t=""){const e=this.state.termdbConfig?.requiredAuth;if(!e)return{};if(!this.verifiedToken){this.tokenVerificationMessage=`requires login for this data`;return}const s={};if(e.headerKey)s[e.headerKey]=this.verifiedToken;if(this.sessionId)s["x-sjppds-sessionid"]=this.sessionId;if(t&&this.jwtByRoute[t]){const e=this.jwtByRoute[t];s.authorization=`Bearer ${btoa(e)}`}return s}async trackDsAction({action:t,details:e}){const s={"x-sjppds-sessionid":this.sessionId};const i=this.jwtByRoute.termdb;if(i)s.authorization="Bearer "+btoa(i);await a("/authorizedActions",{method:"POST",credentials:"include",headers:s,body:Object.assign({dslabel:this.vocab.dslabel,action:t,details:e,"x-sjppds-sessionid":this.sessionId})})}getTwMinCopy(t){if(!t)return;const e={term:{},q:t.q};if(t.$id)e.$id=t.$id;if(t.term){if(m(t.term.type)){if(t.term.id)e.term.id=t.term.id;if(t.term.name)e.term.name=t.term.name;if(t.term.type)e.term.type=t.term.type;if(t.term.values)e.term.values=t.term.values;if(t.term.groupsetting)e.term.groupsetting=t.term.groupsetting}else{e.term=structuredClone(t.term);if(t.term.type=="geneVariant"){delete e.term.groupsetting}}}return e}cacheTermQ(t,e){if(!e.reuseId)throw`missing term q.reuseId for term.id='${t.id}'`;this.app.dispatch({type:"cache_termq",termId:t.id,q:e})}async uncacheTermQ(t,e){await this.app.dispatch({type:"uncache_termq",term:t,q:e})}getCustomTermQLst(t){if(t.id){const e=this.state.reuse.customTermQ.byId[t.id]||{};const s=Object.values(e).map((t=>JSON.parse(JSON.stringify(t))));for(let t=s.length+1;t<1e3;t++){const e=`Setting #${t}`;if(!s.find((t=>t.reuseId===e))){s.nextReuseId=e;break}}if(!s.nextReuseId){s.nextReuseId=btoa((+new Date).toString()).slice(10,-3)}return s}else return[]}async addCustomTerm(t){await this.app.dispatch({type:"add_customTerm",obj:t})}async deleteCustomTerm(t){await this.app.dispatch({type:"delete_customTerm",name:t})}async getCustomTerms(){if(!Array.isArray(this.state.customTerms))return[];return this.state.customTerms.map((t=>t.tw))}async addGroup(t){await this.app.dispatch({type:"add_group",obj:t})}async deleteGroup(t){await this.app.dispatch({type:"delete_group",name:t})}async getGroups(){if(!Array.isArray(this.state.groups))return[];return this.state.groups}}const F=new Set(["categorical","integer","float","condition","survival","snplst","snplocus","geneVariant","samplelst","geneExpression",u.METABOLITE_INTENSITY,u.SINGLECELL_GENE_EXPRESSION,u.SINGLECELL_CELLTYPE,u.SNP]);function L(t,e,s,i){const n=e||{};if(typeof i?.usecase?.[use.target]=="function"){return i.usecase[use.target](t,use)}const a=new Set;const r=t.child_types||[];switch(n.target){case"barchart":case"summary":if(t.type&&t.type!=="survival")a.add("plot");if(G(r,["survival"]))a.add("branch");return a;case"matrix":if(t.type)a.add("plot");if(!t.isleaf)a.add("branch");return a;case"table":if(n.detail=="term")a.add("plot");if(r.length>1)a.add("branch");return a;case"sampleScatter":if(n.detail=="numeric"){if(f(t)){a.add("plot")}if(W(r))a.add("branch")}else{if(F.has(t.type))a.add("plot");if(!t.isleaf)a.add("branch")}return a;case"profile":if(!t.isleaf){a.add("branch");const e=t.id.split("__").length;if(e>2){a.add("plot")}}return a;case"boxplot":if(t.type=="float"||t.type=="integer")a.add("plot");if(n.detail==="term2"&&W(r))a.add("branch");return a;case"cuminc":if(n.detail=="term"){if(t.type=="condition")a.add("plot");if(r.includes("condition"))a.add("branch");return a}if(n.detail==="term2"||n.detail=="term0"){if(t.type&&t.type!="condition"&&t.type!="survival")a.add("plot");if(G(r,["condition","survival"]))a.add("branch");return a}case"survival":if(n.detail=="term"){if(t.type=="survival")a.add("plot");if(r.includes("survival"))a.add("branch");return a}if(n.detail==="term2"||n.detail=="term0"){if(t.type&&t.type!="survival")a.add("plot");if(G(r,["survival"]))a.add("branch");return a}case"regression":if(n.detail=="outcome"){if(n.regressionType=="linear"){if(t.type=="float"||t.type=="integer")a.add("plot");if(W(r))a.add("branch");return a}if(n.regressionType=="logistic"){if(t.type&&t.type!="survival")a.add("plot");if(G(r,["survival"]))a.add("branch");return a}else if(n.regressionType=="cox"){if(t.type=="condition"||t.type=="survival")a.add("plot");if(r.includes("condition")||r.includes("survival"))a.add("branch");return a}}if(n.detail=="independent"){if(t.type=="float"||t.type=="integer"||t.type=="categorical"||t.type=="samplelst")a.add("plot");if(U(r,["categorical","float","integer"]))a.add("branch");return a}case"filter":const e=s?.excludedTermtypeByTarget?.filter;if(e){if(F.has(t.type)&&!e.includes(t.type))a.add("plot");if(r.find((t=>!e.includes(t))))a.add("branch");return a}default:if(F.has(t.type))a.add("plot");if(!t.isleaf)a.add("branch");return a}}function G(t,e){if(!t.length){return false}if(!e?.length){return true}if(t.some((t=>!e.includes(t)))){return true}}function W(t){return t.includes("float")||t.includes("integer")}function U(t,e){for(const s of e){if(t.includes(s))return true}}class H extends P{async getTermdbConfig(){const t=await a("termdb/config",{body:{genome:this.vocab.genome,dslabel:this.vocab.dslabel,embedder:window.location.hostname}});if(t.error)throw t.error;this.termdbConfig=t.termdbConfig||{};return this.termdbConfig}async getTermChildren(t,e){let s;const i={genome:this.vocab.genome,dslabel:this.vocab.dslabel};if(e){i.cohortValues=e.slice().sort().join(",")}if(this.state.treeFilter){i.treeFilter=this.state.treeFilter}if(t.__tree_isroot){i.default_rootterm=1;s=await a("termdb/rootterm",{body:i},this.opts.fetchOpts)}else{i.get_children=1;i.tid=t.id;s=await a("termdb/termchildren",{body:i},this.opts.fetchOpts)}if(s.error)throw s.error;for(const t of s.lst){if(t.type=="integer"||t.type=="float"){if(t.bins.rounding)t.bins.default.rounding=t.bins.rounding;if(t.bins.label_offset&&!t.bins.default.label_offset)t.bins.default.label_offset=t.bins.label_offset}}return s}async getNestedChartSeriesData(t){const[e,s]=this.getTdbDataUrl(t);const i=this.mayGetAuthHeaders("termdb");const n=await a(e,{headers:i,body:s},this.opts.fetchOpts);if(n.error)throw n.error;if(n.charts){for(const e of n.charts){this.mayFillInMissingCatValues(t.term0,e.chartId,e.total);for(const s of e.serieses){this.mayFillInMissingCatValues(t.term,s.seriesId,s.total);for(const e of s.data){this.mayFillInMissingCatValues(t.term2,e.dataId,e.total)}}}}return n}mayFillInMissingCatValues(t,e,s){if(!e)return;if(!(t?.id in this.missingCatValsByTermId))return;const i=this.missingCatValsByTermId[t.id];if(!(e in i.values)){i.values[e]={key:e,label:e};i.samplecount[e]={samplecount:0,key:e,label:e}}i.samplecount[e].samplecount+=s}getTdbDataUrl(t){const e={genome:this.vocab.genome,dslabel:this.vocab.dslabel,embedder:window.location.hostname};if(t.chartType=="cuminc")e.getcuminc=1;if(t.chartType=="survival")e.getsurvival=1;for(const s of["term0","term","term2"]){const i=this.getTwMinCopy(t[s]);if(!i)continue;const n=s=="term"?"term1":s;e[n+"_$id"]=i.$id;if("id"in i.term&&(!i.term?.type||m(i.term.type))){e[n+"_id"]=i.term.id}else{e[n]=i.term}if(!i.q)throw"plot."+s+".q{} missing: "+i.term.id;e[n+"_q"]=i.q}if(t.filter){const s=I(t.filter);if(s.lst.length){e.filter=s}}if(t.filter0)e.filter0=t.filter0;if("grade"in t)e.grade=t.grade;if("minSampleSize"in t)e.minSampleSize=t.minSampleSize;if(t.term2){const s={term1:t.term.q.hiddenValues?Object.keys(t.term.q.hiddenValues).map((e=>t.term.term.values?.[e]?.label||e)):[],term2:t.term2.q.hiddenValues?Object.keys(t.term2.q.hiddenValues).map((e=>t.term2.term.values?.[e]?.label||e)):[]};e.hiddenValues=s}if(t.get)e.get=t.get;return[t.chartType?"termdb":"termdb-barsql",e]}syncTermData(t,e,s={}){if(!e||!e.refs)return;for(const[i,n]of["term0","term","term2"].entries()){const a=t[n];const r=!s[n]||s[n].term?.id===a?.term?.id;if(a=="genotype")continue;if(!a){if(n=="term")throw`missing plot.term{}`;continue}if(e.refs.bins){a.bins=e.refs.bins[i];if(e.refs.q&&e.refs.q[i]){if(!a.q)a.q={};const t=e.refs.q[i];if(t!==a.q||!r){if(t.type!=a.q.type||t.mode!=a.q.mode){for(const t in a.q){if(t!="hiddenValues"||!r)delete a.q[t]}}Object.assign(a.q,t)}}}if(!a.q)a.q={}}}async getRegressionData(t){if(!m(t.outcome.term.type))throw"outcome must be dictionary term";const e=this.getTwMinCopy(t.outcome);e.id=e.term.id;e.q=JSON.parse(JSON.stringify(t.outcome.q));e.type=e.term.type;if(!e.q.mode&&t.regressionType=="linear")e.q.mode="continuous";const s=["mode","scale"];e.refGrp=e.q.mode=="continuous"?"NA":t.outcome.refGrp;if(e.q.mode=="continuous"){for(const t in e.q){if(!s.includes(t))delete e.q[t]}}const i={getregression:1,genome:this.vocab.genome,dslabel:this.vocab.dslabel,regressionType:t.regressionType,outcome:e,independent:t.independent.map((t=>{const e=this.getTwMinCopy(t);e.refGrp=t.refGrp;e.interactions=t.interactions;const i=JSON.parse(JSON.stringify(e.q));delete i.values;delete i.totalCount;if(e.q.mode=="continuous"){for(const t in i){if(!s.includes(t))delete i[t]}}return{id:e.term.id,q:i,term:e.term,type:e.term.type,refGrp:e.q.mode=="continuous"?"NA":e.refGrp,interactions:e.interactions||[],values:e.term.values}}))};const n=I(t.filter);if(n.lst.length)i.filter=n;const r=await a("termdb",{body:i},this.opts.fetchOpts);if(r.error)throw r.error;return r}async findTerm(t,e="",s=null,i=""){const n={genome:this.vocab.genome,dslabel:this.vocab.dslabel,findterm:encodeURIComponent(t),cohortStr:e};if(s)n.usecase=s;if(this.state.treeFilter)n.treeFilter=this.state.treeFilter;if(i)n.targetType=i;const r=await a("termdb",{body:n});if(r.error)throw r.error;const o=t.toUpperCase();const l={equals:[],startsWith:[],startsWord:[],includes:[]};for(const t of r.lst){const e=t.name.toUpperCase();if(e===o)l.equals.push(t);else if(e.startsWith(o))l.startsWith.push(t);else if(e.includes(" "+o))l.startsWord.push(t);else l.includes.push(t)}r.lst=[...l.equals,...l.startsWith,...l.startsWord,...l.includes];return r}async getTermInfo(t){if(!t)throw".getTermInfo: Missing term id";const e=["genome="+this.vocab.genome+"&dslabel="+this.vocab.dslabel+"&getterminfo=1&tid="+t];const s=await a("/termdb?"+e.join("&"),{},this.opts.fetchOpts);if(s.error)throw s.error;return s}async getCohortSampleCount(t){const e={genome:this.vocab.genome,dslabel:this.vocab.dslabel,cohort:t};const s=await a("termdb/cohort/summary",{body:e},this.opts.fetchOpts);if(!s)throw"missing data";if(s.error)throw s.error;return s.count}async getFilteredSampleList(t){const e={genome:this.vocab.genome,dslabel:this.vocab.dslabel,getsamplelist:1,filter:typeof t=="string"?t:I(t)};const s=await a("termdb",{body:e},this.opts.fetchOpts);if(!s)throw`missing data`;if(s.error)throw s.error;if(!Array.isArray(s))throw"data is not array";return s}async getFilteredSampleCount(t){const e={genome:this.vocab.genome,dslabel:this.vocab.dslabel,getsamplecount:1,filter:typeof t=="string"?t:I(t)};const s=await a("termdb",{body:e},this.opts.fetchOpts);if(!s)throw`missing data`;if(s.error)throw s.error;return s.count}async getViolinPlotData(t,e={}){const s=this.mayGetAuthHeaders("termdb");t.tw=this.getTwMinCopy(t.tw);if(t.divideTw)t.divideTw=this.getTwMinCopy(t.divideTw);const i=Object.assign({genome:this.vocab.genome,dslabel:this.vocab.dslabel,embedder:window.location.hostname,devicePixelRatio:window.devicePixelRatio,isKDE:"isKDE"in t?t.isKDE:true,ticks:t.ticks,datasymbol:t.datasymbol||"rug",orientation:t.orientation||"horizontal",radius:t.radius||3,svgw:t.svgw||200,unit:t.unit||"abs"},t,e);if(i.filter)i.filter=I(i.filter);const n=await a("termdb/violin",{headers:s,body:i});return n}async getPercentile(t,e,s){if(e.find((t=>!Number.isInteger(t))))throw"non-integer percentiles found";if(Math.max(...e)>99||Math.min(...e)<1)throw"percentiles must be between 1-99";const i={getpercentile:e,tid:t,genome:this.vocab.genome,dslabel:this.vocab.dslabel};if(s){i.filter=I(s)}return await a("termdb/getpercentile",{body:i})}async getDescrStats(t,e,s){const i={tw:t,genome:this.vocab.genome,dslabel:this.vocab.dslabel};if(s)i.logScale=true;if(e){if(e.filter)i.filter=I(e.filter);if(e.filter0)i.filter0=e.filter0}return await a("/termdb/descrstats",{body:i})}async getTerms(t,e=null,s=null){if(!t)throw"getTerms: ids missing";if(!Array.isArray(t))throw`invalid ids`;const i=e||this.state.vocab?.dslabel;const n=s||this.state.vocab?.genome;if(!i)throw"getTerms: dslabel missing";if(!n)throw"getTerms: genome missing";const r={genome:n,dslabel:i,ids:t,embedder:window.location.hostname};const o=await a(`termdb/termsbyids`,{body:r});if(o.error)throw"getTerm: "+o.error;for(const t in o.terms){const e=o.terms[t];if(e.type=="categorical"&&!e.values)this.missingCatValsByTermId[e.id]=e}return o.terms}async getterm(t,e=null,s=null){if(!t)throw"getterm: termid missing";const i=await this.getTerms([t],e,s);const n=i[t];if(!n)throw"no term found for "+t;return n}graphable(t){if(!t)throw"graphable: term is missing";return L(t).has("plot")}async getCategories(t,e,s={}){const i=this.mayGetAuthHeaders();if(t.type=="snplst"||t.type=="snplocus"){const t=Object.assign({validateSnps:1,sumSamples:1,genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel},s);if(e){t.filter=I(e)}return await a("/termdb",{headers:i,body:t})}if(t.category2samplecount){const e=[];for(const s in t.category2samplecount){e.push({key:s,label:t?.values?.[s]?.label||s,samplecount:t.category2samplecount[s]})}return{lst:e}}const n={term:t,q:s.term1_q||{}};delete s.term1_q;const o={genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,tw:this.getTwMinCopy(n),...s};if(e){o.filter=I(e)}try{const t=await a("termdb/categories",{headers:i,body:o});if(t.error)r(t.error);return t}catch(t){window.alert(t.message||t)}}async getNumericUncomputableCategories(t,e){const s={genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,tid:t.id};if(e){s.filter=I(e)}try{const t=await a("/termdb/numericcategories",{body:s});if(t.error)throw t.error;return t}catch(t){window.alert(t.message||t)}}async validateSnps(t){const e=["validateSnps=1","genome="+this.state.vocab.genome,"dslabel="+this.state.vocab.dslabel];if(t.text){e.push("snptext="+encodeURIComponent(t.text))}else if(t.chr){e.push("chr="+t.chr);e.push("start="+t.start);e.push("stop="+t.stop);if(t.variant_filter)e.push("variant_filter="+encodeURIComponent(JSON.stringify(t.variant_filter)))}return await a("/termdb?"+e.join("&"))}async get_variantFilter(){return await a("termdb",{body:{getvariantfilter:1,genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel}})}async getSamplesPerFilter(t){return await a("termdb",{body:{for:"getSamplesPerFilter",genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,filters:t.filters}})}async getAnnotatedSampleData(t,e={}){const s=this.mayGetAuthHeaders("termdb");if(!s)return;const i=I(t.filter);const n={};const r={byTermId:e.byTermId||{},bySampleId:e.bySampleId||{}};const o=[];const l=new Set;const d=t.isHierCluster?null:t.terms.filter((t=>t.term.type==="geneVariant")).map((t=>t.term.chr?`${t.term.chr}:${t.term.start}-${t.term.stop}`:t.term.name)).sort();const c=t.terms.slice();let f=0;if(t.loadingDiv)t.loadingDiv.html("Updating data ...");while(true){const e=K(c,t.termsPerRequest||1);if(e.length==0)break;const p={headers:s,credentials:"include",body:{for:"matrix",genome:this.vocab.genome,dslabel:this.vocab.dslabel,terms:e.map(this.getTwMinCopy),filter:i,embedder:window.location.hostname}};if(t.signal)p.signal=t.signal;if(t.filter0)p.body.filter0=t.filter0;if(t.isHierCluster)p.body.isHierCluster=true;if(this.vocab.dslabel=="GDC"&&e.find((t=>t.term.id&&(!t.term?.type||m(t.term.type))))&&d?.length){p.body.currentGeneNames=d}o.push(a("termdb",p,{cacheAs:"decoded"}).then((s=>{if(s.error)throw s.error;if(!s.refs.bySampleId)s.refs.bySampleId={};for(const t of e){for(const e in s.samples){const i=s.samples[e];if(!Object.keys(i).filter((t=>t!="sample")).length)continue;l.add(e);if(!(e in n)){if(!s.refs.bySampleId[e])s.refs.bySampleId[e]={};if(typeof s.refs.bySampleId[e]=="string")s.refs.bySampleId[e]={label:s.refs.bySampleId[e]};const t=s.refs.bySampleId[e];if(!t.label)t.label=e;const i={sample:e,_ref_:t};n[e]=i}if(t.$id in i)n[e][t.$id]=i[t.$id]}for(const t in s.refs.bySampleId){r.bySampleId[t]=s.refs.bySampleId[t]}r.byTermId[t.$id]=t;if(t.$id in s.refs.byTermId){r.byTermId[t.$id]=Object.assign({},r.byTermId[t.$id],s.refs.byTermId[t.$id])}}f++;if(t.loadingDiv)t.loadingDiv.html(`Updating data (${f}/${o.length}) ...`)})))}try{if(t.loadingDiv)t.loadingDiv.html(`Updating data (0/${o.length})`);await Promise.all(o);if(t.loadingDiv)t.loadingDiv.html("")}catch(t){if(typeof t=="string"){t.toLowerCase();if(t.includes("token")||t.includes("jwt")||t.includes("login")||t.includes("sign")||t.includes("auth")||t.includes("credential")){this.tokenVerificationMessage=t}}throw t}try{if(t.loadingDiv)t.loadingDiv.html(`Processing data ...`);const e=t.terms.filter((t=>m(t.term.type))).map((t=>t.$id));const s=[];if(!e.length){s.push(...Object.values(n))}else{for(const t in n){const i=n[t];for(const t in i){if(e.includes(t)){s.push(i);break}}}if(!s.length&&this.termdbConfig?.matrix?.settings?.displayDictRowWithNoValues){s.push(...Object.values(n))}}const i=new RegExp(t.sampleNameFilter||".*");const a={lst:s.filter((t=>l.has(t.sample)&&i.test(t.sample))),refs:r};a.samples=a.lst.reduce(((t,e)=>{t[e.sample]=e;return t}),{});for(const e of t.terms){z(e,a.lst,this.termdbConfig)}return a}catch(t){throw t}}async getTermTypes(t){const e={body:{for:"termTypes",genome:this.vocab.genome,dslabel:this.vocab.dslabel,ids:JSON.stringify(t)}};const s=await a("termdb",e,this.opts.fetchOpts);if(s.error)throw s.error;return s}async getLDdata(t,e){const s={getLDdata:1,genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,ldtkname:t,m:{chr:e.chr,pos:e.pos,ref:e.ref,alt:e.alt}};return await a("termdb",{body:s})}async getScatterData(t){const e=this.mayGetAuthHeaders("termdb");const s={for:"scatter",genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,plotName:t.name,coordTWs:t.coordTWs.map((t=>this.getTwMinCopy(t))),filter:I(t.filter),filter0:t.filter0,embedder:window.location.hostname};if(t.colorColumn)s.colorColumn=t.colorColumn;if(t.colorTW)s.colorTW=this.getTwMinCopy(t.colorTW);if(t.shapeTW)s.shapeTW=this.getTwMinCopy(t.shapeTW);if(t.divideByTW)s.divideByTW=this.getTwMinCopy(t.divideByTW);if(t.scaleDotTW)s.scaleDotTW=this.getTwMinCopy(t.scaleDotTW);return await a("termdb",{headers:e,body:s})}async getDefaultBins(t){const e=this.mayGetAuthHeaders("termdb");const s={for:"getDefaultBins",genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,tw:t.tw,embedder:window.location.hostname};const i=this.opts?.state?.termfilter;if(i){if(i.filter)s.filter=I(i.filter);if(i.filter0)s.filter0=i.filter0}return await a("termdb",{headers:e,body:s})}async setTermBins({term:t,q:e}){const s=await this.getDefaultBins({tw:{term:t,q:e}});if("error"in s)throw s.error;t.bins=s;if(e.mode=="discrete"&&!e.type){const s=e.mode;for(const t in e){if(t!="isAtomic")delete e[t]}Object.assign(e,t.bins.default);e.mode=s}}async getSingleSampleData(t){const e=this.mayGetAuthHeaders("termdb");const s={for:"singleSampleData",sampleId:t.sampleId,term_ids:t.term_ids,genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,embedder:window.location.hostname};const i=await a("termdb",{headers:e,body:s});const n={};if("error"in i)return i;for(const t of i){const e=JSON.parse(t.jsondata);n[t.term_id]={value:t.value,term:e}}return n}async getAllSamples(){const t=this.mayGetAuthHeaders("termdb");const e={for:"getAllSamples",genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,embedder:window.location.hostname};const s=await a("termdb",{headers:t,body:e});return s}async getSamplesByName(t){const e=this.mayGetAuthHeaders("termb");const s={for:"getSamplesByName",genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,embedder:window.location.hostname};if(t?.filter)s.filter=t.filter;const i=await a("termdb",{headers:e,body:s});return i}async getProfileFacilities(){const t=this.mayGetAuthHeaders("termb");const e={for:"getProfileFacilities",genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,embedder:window.location.hostname};const s=await a("termdb",{headers:t,body:e});const i=[];for(const t of s)i.push(t.name);return i}async getLowessCurve(t){const e=this.mayGetAuthHeaders("termb");const s={genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel,getLowessCurve:1,coords:t.coords};return await a("termdb",{headers:e,body:s})}async getCohortsData(t){const e={genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel};return await a("termdb/cohorts",{body:e})}async getMds3queryDetails(){return await a("termdb",{body:{for:"mds3queryDetails",genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel}})}async getMatrixByName(t){return await a("termdb",{body:{for:"matrix",getPlotDataByName:t,genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel}})}async getTopMutatedGenes(t){return await a("gdc/topMutatedGenes",{method:"GET",body:t})}async getTopVariablyExpressedGenes(t){return await a("termdb/topVariablyExpressedGenes",{method:"GET",body:t})}async getTopTermsByType(t){t.genome=this.state.vocab.genome;t.dslabel=this.state.vocab.dslabel;return await a("termdb/getTopTermsByType",{method:"GET",body:t})}async getSampleImages(t){const e={};e.genome=this.state.vocab.genome;e.dslabel=this.state.vocab.dslabel;e.sampleId=t;return await a("termdb/getSampleImages",{method:"GET",body:e})}async convertSampleId(t,e){const s=new Map;const i=[];for(const n of t){const t={};i.push(t);for(const i of e){if(!("to"in i))i.to=i.from;if(!i.convert){t[i.to]=n[i.from];continue}if(!s.has(i))s.set(i,{});const e=s.get(i);const a=n[i.from];if(!e[a])e[a]=[];e[a].push({obj:t,sample:n})}}const n=[];for(const[t,e]of s){const s=Object.keys(e);n.push(await a("termdb",{body:{for:"convertSampleId",inputs:s,genome:this.state.vocab.genome,dslabel:this.state.vocab.dslabel}}).then((i=>{for(const n of s){for(const{sample:s,obj:a}of e[n]){a[t.to]=i.mapping[n]}}})))}await Promise.all(n);return i}}function z(t,e,s){if(t.term.type!="categorical"){return}if(!("$id"in t)){return}const i={};const n={};for(const s of e){if(!s[t.$id])continue;const e=s[t.$id].key;i[e]=1+(i[e]||0);n[e]={key:e,label:e}}t.term.category2samplecount=i;if(s.alwaysRefillCategoricalTermValues||!t.term.values||Object.keys(t.term.values).length==0){t.term.values=n}}function K(t,e){const s=[];let i=0,n=t.length;while(i<n){i++;const n=t.shift();if(s.find((t=>t.term.type===n.term.type&&(("id"in t.term||"id"in n.term)&&t.term.id===n.term.id||t.term.name===n.term.name)))){t.push(n)}else{s.push(n)}if(s.length>=e)break}return s}function X(t,e,s){const i=!e?[]:e.type=="tvslst"?e.lst:[e];let n=0;for(const a of i){if(a.type=="tvslst"){if(X(t,a)){n++}}else{const e=a.tvs;let i;if(e.term.type=="geneVariant"){i=s.map((e=>t[e])).filter((t=>t))}else if(e.term.type=="integer"||e.term.type=="float"||e.term.type==u.GENE_EXPRESSION||e.term.type==u.METABOLITE_INTENSITY){i=t[e.term.id]||t[e.term.$id]?.key}else if(e.term.type=="survival"){i=t[e.term.$id]?.key}else{i=t[e.term.id]||t[e.term.$id]?.value}let r;if(e.term.type=="categorical"){if(i===undefined){if(e.isnot)r=!r;if(r)n++;continue}const t=e.valueset?e.valueset:new Set(e.values.map((t=>t.key)));r=t.has(i)}else if(e.term.type=="integer"||e.term.type=="float"||e.term.type==u.GENE_EXPRESSION||e.term.type==u.METABOLITE_INTENSITY){if(i===undefined){if(e.isnot)r=!r;if(r)n++;continue}for(const t of e.ranges){if("value"in t){r=i===t.value;if(r)break}else if(i==t.name){r=true;break}else{if(e.term.values){const t=e.term.values[i.toString()];if(t&&t.uncomputable){continue}}let s,n;if(t.startunbounded){s=true}else if("start"in t){if(t.startinclusive){s=i>=t.start}else{s=i>t.start}}if(t.stopunbounded){n=true}else if("stop"in t){if(t.stopinclusive){n=i<=t.stop}else{n=i<t.stop}}r=s&&n}if(r)break}}else if(e.term.type=="condition"){const t=getPrecomputedKey(e);const s=i&&i[t];if(s){r=Array.isArray(s)?e.values.find((t=>s.includes(t.key))):e.values.find((t=>t.key==s))}}else if(e.term.type=="survival"){if(i===undefined){if(e.isnot)r=!r;if(r)n++;continue}const t=e.valueset?e.valueset:new Set(e.values.map((t=>t.key)));r=t.has(i)}else if(e.term.type=="geneVariant"&&e.legendFilterType=="geneVariant_hard"){const t=e.values[0];r=i.find((e=>{for(const s of e.values){if(s.dt==t.dt&&(!s.origin||s.origin==t.origin)&&t.mclasslst.includes(s.class))return true}}))&&true}else if(e.term.type==u.SINGLECELL_GENE_EXPRESSION);else{throw"unknown term type"}if(e.isnot){r=!r}if(r)n++}if(e.join=="or"&&n)return true}if(n==i.length)return true}function Y(t,e){const s=JSON.parse(JSON.stringify(t));if(!s.term1)s.term1=s.term?s.term:{};if(!s.term1_q)s.term1_q={};if(!s.term0)s.term0={};if(!s.term0_q)s.term0_q={};if(!s.term2)s.term2={};if(!s.term2_q)s.term2_q={};if(!s.filter)s.filter={type:"tvslst",join:"",lst:[]};const i=Z(s,e);return i.tree.results}const Q=JSON.stringify({"@before()":"=prep()","@join()":{idVal:"=idVal()"},results:{"_2:maxAcrossCharts":"=maxAcrossCharts()",charts:[{chartId:"@key",total:"+1","_1:maxSeriesTotal":"=maxSeriesTotal()","@done()":"=filterEmptySeries()",serieses:[{total:"+1",seriesId:"@key",max:"<&idVal.dataVal","~values":["&idVal.dataVal",0],"~sum":"+&idVal.dataVal","__:boxplot":"=boxplot()","~samples":["$sample","set"],data:[{dataId:"@key",total:"+1"},"&idVal.dataId[]"]},"&idVal.seriesId[]"]},"&idVal.chartId[]"],"~sum":"+&idVal.seriesVal","~values":["&idVal.seriesVal",0],"__:boxplot":"=boxplot()",refs:{cols:["&idVal.seriesId[]"],colgrps:["-"],rows:["&idVal.dataId[]"],rowgrps:["-"],col2name:{"&idVal.seriesId[]":{name:"@branch",grp:"-"}},row2name:{"&idVal.dataId[]":{name:"@branch",grp:"-"}},"__:useColOrder":"=useColOrder()","__:useRowOrder":"=useRowOrder()","__:bins":"=bins()","@done()":"=sortColsRows()"},"@done()":"=sortCharts()"}});function Z(t,e){const s={categorical:tt,integer:et,float:et,undefined:st};return new y({data:e,seed:`{"values": []}`,template:Q,"=":{idVal(i,n){const[a,r]=s[t.term0.type](i.data,t.term0,t.term0_q,e);const[o,l]=s[t.term1.type](i.data,t.term1,t.term1_q,e);const[d,c]=s[t.term2.type](i.data,t.term2,t.term2_q,e);return{chartId:a,chartVal:r,seriesId:o,seriesVal:l,dataId:d,dataVal:c}},prep(e){return X(e.data,t.filter)},maxSeriesTotal(t,e){let s=0;for(const t of e.self.serieses){if(t&&t.total>s){s=t.total}}return s},maxAcrossCharts(t,e){let s=0;for(const t of e.self.charts){if(t.maxSeriesTotal>s){s=t.maxSeriesTotal}}return s},boxplot(t,e){if(!e.self.values||!e.self.values.length)return;const s=e.self.values.filter((t=>t!==null&&!isNaN(t)));if(!s.length)return;s.sort(((t,e)=>t-e));const i=it(s.map((t=>({value:+t}))));i.mean=e.self.sum/s.length;let n=0;for(const t of s){n+=Math.pow(t-i.mean,2)}i.sd=Math.sqrt(n/(s.length-1));if(isNaN(i.sd))i.sd=null;return i},numSamples(t,e){return e.self.samples.size},filterEmptySeries(t){const e=t.serieses.filter((t=>t.total));t.serieses.splice(0,t.serieses.length,...e)},sortColsRows(e){if(t.term1_q.orderedLabels){const s=t.term1_q.orderedLabels;e.cols.sort(((t,e)=>s.indexOf(t)-s.indexOf(e)))}if(t.term2.orderedLabels){const s=t.term2_q.orderedLabels;e.rows.sort(((t,e)=>s.indexOf(t)-s.indexOf(e)))}},sortCharts(t){},useColOrder(){return t.term1_q.orderedLabels&&t.term1_q.orderedLabels.length>0},useRowOrder(){return t.term2_q.orderedLabels&&t.term2_q.orderedLabels.length>0},bins(){return[t.term0_q,t.term1_q,t.term2_q].map((t=>t.computed_bins))},q(){}}})}function tt(t,e){const s="id"in e?t[e.id]:"-";const i="id"in e&&o(t[e.id])?+t[e.id]:0;return[[s],i]}function et(t,e,s,i){if(!("id"in e)||!(e.id in t))return[[],undefined];if(!s.computed_bins){const t={};i.map((s=>{if(!o(s.data[e.id]))return;const i=+s.data[e.id];if(!("min"in t)||t.min>i)t.min=i;if(!("max"in t)||t.max<i)t.max=i}));s.computed_bins=b(s,(e=>t));s.orderedLabels=s.computed_bins.map((t=>t.label))}const n=t[e.id];if(e.values&&n in e.values&&e.values[n].uncomputable){return[[e.values[n].label],undefined]}if(o(t[e.id])){const t=[];for(const e of s.computed_bins){if(e.startunbounded){if(n<e.stop){t.push(e.label)}else if(e.stopinclusive&&n===e.stop){t.push(e.label)}}else if(e.stopunbounded){if(n>e.start){t.push(e.label)}else if(e.stopinclusive&&n===e.start){t.push(e.label)}}else if((n>e.start||n===e.start&&e.startinclusive)&&(n<e.stop||n===e.stop&&e.stopinclusive)){t.push(e.label)}if(t.length)break}return[t,n]}return[[],undefined]}function st(){return[["-"],undefined]}function it(t){const e=t.length;if(e<5){return{out:t}}const s=t[Math.floor(e/2)].value;const i=t[Math.floor(e/4)].value;const n=t[Math.floor(e*3/4)].value;const a=t[Math.floor(e*.05)].value;const r=t[Math.floor(e*.95)].value;t[Math.floor(e*.01)].value;const o=n-i;let l,d;if(o==0){l=0;d=0}else{const s=t.findIndex((t=>t.value>i-o*1.5));l=t[s==-1?0:s].value;const a=t.findIndex((t=>t.value>n+o*1.5));d=t[a==-1?e-1:Math.max(0,a-1)].value}const c=t.filter((t=>t.value<i-o*1.5||t.value>n+o*1.5));return{w1:l,w2:d,p05:a,p25:i,p50:s,p75:n,p95:r,iqr:o,out:c}}function nt(t,e){if(!e||!e.length){return{lst:Object.keys(t.term.values).map((e=>({key:e,label:t.term.values[e].label,value:e})))}}const s=new y({data:e,template:JSON.stringify({"@before()":"=prep()","@join()":{idVal:"=idVal()"},results:{"&idVal.id":{samplecount:"+1",":__key":"&idVal.id",":__label":"&idVal.id",":__value":"&idVal.id"}}}),"=":{prep(e){return X(e.data,t.filter)},idVal(e,s){const[i,n]=tt(e.data,t.term);return{id:i[0],value:n}}}});return{lst:Object.values(s.tree.results)}}var at=Object.freeze({__proto__:null,getBarchartData:Y,getCategoryData:nt});function rt(t,e){t.sort(((t,e)=>t-e));const s=Math.abs(e/100*t.length-1);const i=Number.isInteger(s)?(t[s]+t[s+1])/2:t[Math.ceil(s)];return i}class ot extends P{constructor(t){super(t);this.datarows=[];if(t.state.vocab.sampleannotation){const e=t.state.vocab.sampleannotation;Object.keys(e).forEach((t=>this.datarows.push({sample:t,data:e[t]})))}}getTermdbConfig(){return{selectCohort:this.vocab.selectCohort,supportedChartTypes:[]}}getTermChildren(t,e){const s=(e||[]).slice().sort().join(",");const i=t.__tree_isroot?null:t.id;return{lst:this.vocab.terms.filter((t=>t.parent_id===i&&(!s.length||s===t.cohortValues.slice().sort.join(","))))}}async getNestedChartSeriesData(t){const e={term1:t.term?t.term.term:{},term1_q:t.term?t.term.q:undefined,term0:t.term0?t.term0.term:undefined,term0_q:t.term0?t.term0.q:undefined,term2:t.term2?t.term2.term:undefined,term2_q:t.term2?t.term2.q:undefined,filter:this.state.termfilter&&this.state.termfilter.filter};return Y(e,this.datarows)}syncTermData(t,e,s={}){if(!e||!e.refs)return;for(const[s,i]of["term0","term","term2"].entries()){const n=t[i];if(n=="genotype")return;if(!n){if(i=="term")throw`missing plot.term{}`;return}if(e.refs.bins){n.bins=e.refs.bins[s];if(e.refs.q&&e.refs.q[s]){if(!n.q)n.q={};const t=e.refs.q[s];if(t!==n.q){for(const t in n.q)delete n.q[t];Object.assign(n.q,t)}}}if(!n.q)n.q={}}}async findTerm(t,e,s=null){return{lst:this.vocab.terms.filter((s=>s.name.includes(t)&&(!e||e===s.cohortValues.slice().sort.join(","))))}}async getTermInfo(e){const s=this.vocab.find((t=>t.id===e));if(!s)return undefined;return{terminfo:t.info}}async getCohortSampleCount(t){if(!t)return;const e=this.vocab.find((t=>t.id===id));if(!e||!e.cohortValues.includes(t))return;if(!e.samplecount)e.samplecount={};if(!(t in e.samplecount)){e.samplecount[t]=Object.keys(this.vocab.sampleannotation).length}return{samplecount:e.samplecount[t]}}async getCohortsData(t){return null}async getFilteredSampleCount(t){return"TBD"}async getDensityPlotData(t,e,s){if(!this.datarows||!this.datarows.length){const e=this.vocab.terms.find((e=>e.id===t));e.range&&e.range;return{minvalue:e.range&&e.range.start,maxvalue:e.range&&e.range.stop}}const i=[];const n=new Set;let a,r,d=0;let c={};for(const t of this.datarows){if(c[t.sample])continue;const e=t.s||t.data;if(e&&X(e,s)){c[t.sample]=this.vocab.sampleannotation[t.sample]}}for(const e in c){if(!(t in this.vocab.sampleannotation[e]))continue;const s=this.vocab.sampleannotation[e][t];if(o(s)){const t=+s;d+=1;if(a===undefined||t<a)a=t;if(r===undefined||t>r)r=t;i.push(t);n.add(t)}}const f=this.vocab.terms.find((e=>e.id==t));const p=40;const m=f.type=="integer"&&r-a<p?r-a:f.type=="float"&&n.size<p?n:p;const u=l().domain([a,r]).range([e.plot_size.xpad,e.plot_size.width-e.plot_size.xpad]);const h=lt(u.ticks(m))(i);return{density:h,densitymax:h.reduce(((t,e,s)=>s===0||e[1]>t?e[1]:t),0),minvalue:a,maxvalue:r,samplecount:d}}async getPercentile(t,e,s){if(e.find((t=>!Number.isInteger(t))))throw"non-integer percentiles found";if(Math.max(...e)>99||Math.min(...e)<1)throw"percentiles must be between 1-99";const i=[];const n=[];const a={};for(const t of this.datarows){if(a[t.sample])continue;const e=t.s||t.data;if(e&&X(e,s)){a[t.sample]=this.vocab.sampleannotation[t.sample]}}for(const e in a){if(!(t in this.vocab.sampleannotation[e]))continue;const s=Number(this.vocab.sampleannotation[e][t]);if(!Number.isFinite(s))throw"non-numeric value";n.push(s)}n.sort(((t,e)=>t-e));for(const t of e){const e=Math.abs(t/100*n.length-1);const s=Number.isInteger(e)?(n[e]+n[e+1])/2:n[Math.ceil(e)];i.push(s)}return{values:i}}async getDescrStats(t,e,s){const i=[];const n={};for(const t of this.datarows){if(n[t.sample])continue;const s=t.s||t.data;if(s&&X(s,e)){n[t.sample]=this.vocab.sampleannotation[t.sample]}}for(const e in n){if(!(t in this.vocab.sampleannotation[e]))continue;const s=Number(this.vocab.sampleannotation[e][t]);if(!Number.isFinite(s))throw"non-numeric value";i.push(s)}i.sort(((t,e)=>t-e));const a=i.length;const r=i.reduce(((t,e)=>t+e),0);const o=r/a;const l=rt(i,25);const d=rt(i,50);const c=rt(i,75);const f=i.map((t=>(t-o)**2)).reduce(((t,e)=>t+e),0);const p=f/(i.length-1);const m=Math.sqrt(p);const u=Math.min(...i);const y=Math.max(...i);return{values:[{id:"total",label:"n",value:a},{id:"min",label:"Minimum",value:h(u,2)},{id:"p25",label:"1st quartile",value:h(l,2)},{id:"median",label:"Median",value:h(d,2)},{id:"mean",label:"Mean",value:h(o,2)},{id:"p75",label:"3rd quartile",value:h(c,2)},{id:"max",label:"Maximum",value:h(y,2)},{id:"sd",label:"Standard deviation",value:h(m,2)}]}}async getTerms(t,e=null,s=null){if(!t)throw"getTerms: ids missing";if(!Array.isArray(t))throw`invalid ids`;const i={};for(const e of t){const t=this.vocab.terms.find((t=>t.id===e));if(t)i[e]=t}return i}async getterm(t){if(!t)throw"getterm: termid missing";return this.vocab.terms.find((e=>e.id==t))}async getCategories(t,e,s=null){const i={term:t,filter:e};const n=nt(i,this.datarows);return n}getNumericUncomputableCategories(t,e){throw"to be implemented!! getNumericUncomputableCategories"}graphable(t){if(!t)throw"graphable: term is missing";return L(t).has("plot")}q_to_param(t){const e=JSON.parse(JSON.stringify(t));delete e.hiddenValues;return encodeURIComponent(JSON.stringify(e))}}function lt(t){return e=>{const s=[];for(let e=0;e<t.length;e++)s.push([t[e],0]);for(const i of e){for(let e=1;e<t.length;e++){if(i<=t[e]){s[e-1][1]++;break}}}return s}}function dt(t){if(t.vocab&&!t.state){t.state={vocab:t.vocab}}if(!t.state)throw"missing opts.state";if(!t.state.vocab){t.state.vocab=t.vocab?t.vocab:{}}const e=t.state.vocab;if(t.state.genome){e.genome=t.state.genome;delete t.state.genome}if(t.state.dslabel){e.dslabel=t.state.dslabel;delete t.state.dslabel}if(e.dslabel){return new H(t)}else if(e.terms){return new ot(t)}}function ct(t){const e=JSON.parse(JSON.stringify(t));delete e.hiddenValues;return encodeURIComponent(JSON.stringify(e))}function ft({samples:t,sample_attributes:e}){const s={__root:{id:"root",name:"root",__tree_isroot:true}};const i={};for(const n of t){const t=n.sample;if(!i[t])i[t]={};Object.assign(i[t],n.s);for(const t in n.s){if(!s[t]){const i=e[t]&&e[t].label?e[t].label:t;s[t]={id:t,name:i,parent_id:null,type:e[t].type=="float"?"float":e[t].type=="integer"?"integer":"categorical",values:{},isleaf:true}}const i=s[t];if(!("id"in i))i.id=t;if(!("parent_id"in i))i.parent_id=null;if(!("values"in i))i.values={};if(!("isleaf"in i))i.isleaf=true;if(!i.computableVals&&(i.type=="float"||i.type=="integer")){i.computableVals=[]}const a=n.s[t];if(i.type=="categorical"){i.groupsetting={disabled:true};if(!(a in i.values)){i.values[a]={key:a,label:a}}}else if(i.type=="integer"||i.type=="float"){if(a==="Not Available"&&!(a in i.values)){i.values[a]={label:a,uncomputable:true}}if(!(a in i.values)){if(!o(n.s[t]))throw`non-numeric term value='${a}' for term='${t}'`;n.s[t]=Number(n.s[t]);const e=n.s[t];i.computableVals.push(e)}}else if(i.type=="condition");else if(i.type==u.SINGLECELL_GENE_EXPRESSION);else{throw"Term type not supported:"+i.type}}}for(const t in s){const e=s[t];if((e.type=="integer"||e.type=="float")&&!e.bins){e.bins={default:B(e.computableVals)};delete e.computableVals}}return{sampleannotation:i,terms:Object.values(s)}}var pt=Object.freeze({__proto__:null,vocabInit:dt,q_to_param:ct,getVocabFromSamplesArray:ft});const mt={joinWith:["and","or"]};class ut{constructor(t){this.opts=this.validateOpts(t);this.dom={holder:t.holder,controlsTip:new e({padding:"0px",parent_menu:this.opts.holder.node()&&this.opts.holder.node().closest(".sja_menu_div")}),treeTip:new e({padding:"5px",offsetX:20,offsetY:-34,clearSelector:".sja_term_src_body"})};this.durations={exit:500};this.lastId=0;this.categoryData={};this.pills={};E(this);$(this);this.initUI();this.filter={type:"tvslst",tag:"filterUiRoot",join:"and",in:true,lst:[]};this.promises={}}validateOpts(t){const e=Object.assign({},mt,t);if(!e.holder)throw".holder missing";if(e.vocabApi){this.vocabApi=e.vocabApi}else{if(!e.vocab)throw".vocab missing";if(e.vocab.dslabel){if(!e.vocab.genome)throw"vocab.genome missing"}else{if(!e.vocab.terms)throw"vocab.terms missing"}}if(typeof e.callback!="function")throw".callback() is not a function";if(e.getVisibleRoot&&typeof e.getVisibleRoot!="function")throw".getVisibleRoot() must be a function if set as an option";if(!e.emptyLabel)e.emptyLabel="+NEW";return e}async main(t,e={}){this.promises.postRender=new Promise(((t,e)=>{this.mainResolve=t;this.mainReject=e}));this.numProcessedItems=0;this.numExpectedItems=0;this.opts=Object.assign({},this.opts,e);this.activeCohort=this.opts.activeCohort;this.rawCopy=t;this.rawFilter=JSON.parse(this.rawCopy);this.validateFilter(this.rawFilter);this.filter=N(this.rawFilter,"filterUiRoot");if(!this.filter){this.filter=this.rawFilter;this.filter.tag="filterUiRoot"}await this.resetActiveData(this.filter);this.removeBlankPill();this.dom.newBtn.style("display",this.opts.newBtn?"":this.filter.lst.length==0?"inline-block":"none");this.dom.holder.selectAll(".sja_filter_add_transformer").style("display",this.getAddTransformerBtnDisplay);this.setVocabApi();this.updateUI(this.dom.filterContainer,this.filter);return this.promises.postRender}validateFilter(t){if(!("$id"in t))t.$id=this.lastId++;else if(this.lastId<=t.$id)this.lastId=t.$id+1;if(!("type"in t))throw"missing filter.type";if(t.type!="tvs"&&t.type!="tvslst")throw"invalid filter.type";if(t.type!="tvslst")return;if(!Array.isArray(t.lst))throw"invalid or missing filter.lst[]";if(t.lst.length>1){if(t.join!="and"&&t.join!="or")throw"invalid filter.join value for lst.length > 1"}else if(t.join!==""){throw"filter.join must be an empty string when lst.length < 2"}if(!t.lst.length)t.in=true;for(const[e,s]of t.lst.entries()){this.validateFilter(s)}}resetActiveData(t){if(this.dom.controlsTip.d.style("display")=="none"){this.activeData={item:{},filter:{}}}else{this.activeData={item:S(t,this.activeData.item.$id),filter:S(t,this.activeData.filter.$id),menuOpt:this.activeData.menuOpt}}}refresh(t){this.dom.controlsTip.hide();this.dom.treeTip.hide();const e=JSON.parse(JSON.stringify(this.rawFilter));delete e.tag;t.tag="filterUiRoot";const s=k(e,this.filter.$id);if(!s||this.rawFilter.$id===this.filter.$id){this.api.main(t);this.opts.callback(t)}else{const i=s.lst.findIndex((t=>t.$id==this.filter.$id));s.lst[i]=t;this.api.main(e);this.opts.callback(t)}}getId(t){return t.$id}getFilterExcludingPill(t){const e=JSON.parse(JSON.stringify(this.rawFilter));const s=k(e,t);const i=s.lst.findIndex((e=>e.$id===t));if(i==-1)return null;s.lst.splice(i,1);return I(e)}getAdjustedRoot(t,e){const s=JSON.parse(JSON.stringify(this.rawFilter));if(e=="and")return s;const i=N(s,"cohortFilter");const n=k(s,t);if(!n){return{type:"tvslst",in:true,join:"and",lst:i?[i]:[]}}const a=n.lst.findIndex((t=>t.$id===n.$id));if(a==-1)return{type:"tvslst",in:true,join:"and",lst:i?[i]:[]};n.lst.splice(a,1);if(i&&!n.lst.find((t=>t===i))){return I({type:"tvslst",join:"and",lst:[i,n]})}return I(n)}setVocabApi(){if(!this.vocabApi){const t={getState:()=>{const t=JSON.parse(this.rawCopy);const e=N(t,"cohortFilter");if(e&&this.opts.termdbConfig){e.tvs.values=this.activeCohort==-1||this.activeCohort===undefined?[]:this.opts.termdbConfig.selectCohort.values[this.activeCohort].keys.map((t=>({key:t,label:t})))}return{vocab:this.opts.vocab,termfilter:{filter:t},tree:{plots:{}}}}};const e=t.getState();const s=e.vocab||{genome:e.genome,dslabel:e.dslabel};if(!this.vocabApi){this.vocabApi=dt({app:t,state:{vocab:s}})}}this.vocabApi.main()}updatePromise=function(t=1){if(!this.mainResolve)return;this.numProcessedItems+=t;if(this.numExpectedItems==this.numProcessedItems){this.mainResolve();if(this.bus)this.bus.emit("postRender");delete this.mainResolve}}}class ht extends ut{constructor(t){super(t);this.type="filter";this.initHolder()}async preApiFreeze(t){t.main=this.main.bind(this);t.getNormalRoot=()=>I(this.rawFilter)}getState(t){return{termfilter:t.termfilter,activeCohort:t.activeCohort}}async main(t=null){this.dom.controlsTip.hide();this.dom.treeTip.hide();const e=this.state&&this.state.termfilter;if(!e){this.dom.holder.style("display","none");return}this.dom.holder.style("display","inline-block");const s=JSON.stringify(t||e.filter);super.main(s,{activeCohort:this.state.activeCohort})}initHolder(){const t=this.dom.holder.attr("class","filter_div").style("position","relative").style("width","fit-content").style("margin","10px").style("margin-top","5px").style("display","table").style("border",this.opts.hideLabel?"none":"solid 1px #ddd");if(this.opts.hideLabel){this.dom.filterDiv=t.style("display","inline-block").style("padding","5px 10px")}else{t.append("span").text("Filter").style("padding","0 10px");this.dom.filterDiv=t.append("div").style("display","inline-block").style("padding","5px 10px")}}}const yt=d(ht);export{ut as F,N as a,yt as b,A as c,x as d,ft as e,k as f,I as g,X as h,L as i,at as j,pt as k,j as s,dt as v};
@@ -1 +0,0 @@
1
- import{i as t,X as i}from"./app-6fb77603.js";import{F as s,g as o}from"./FilterRxComp-02e68f1b.js";class e extends s{constructor(t){super(t);this.api={main:this.main.bind(this),getNormalRoot:()=>o(this.rawFilter),getPromise:t=>this.promises[t]};if(t.callbacks){this.events=["postInit","postRender","firstRender"];this.bus=new i(this.api,this.events,t.callbacks)}}async main(t,i={}){this.dom.controlsTip.hide();this.dom.treeTip.hide();const s="activeCohort"in i?i.activeCohort:this.activeCohort;const o=JSON.stringify(t);if(this.rawCopy==o&&JSON.stringify(this.activeCohort)==JSON.stringify(s))return;await super.main(o,i)}}const r=t(e);export{r as f};
@@ -1 +0,0 @@
1
- import{h as t,d as e,M as s,o as r,n as o,y as i}from"./app-6fb77603.js";import{r as a,s as n}from"./recover-299ffdb3.js";import{v as p}from"./FilterRxComp-02e68f1b.js";import{n as c}from"./sampleScatter-55d9eb74.js";import{summaryInit as l}from"./summary-a6c15c9e.js";import"./termsetting-492eefa7.js";import"./tslib.es6-c3c2d88f.js";import"path";import"./FilterStateless-16a33070.js";import"./app-d215327f.js";import"./termInfo-491b10af.js";import"./toggleButtons-c4d6f260.js";import"./table-0daf2b89.js";import"./genesearch-ffd88bf2.js";import"./checkbox-96437f4d.js";import"./rehydrateFilter-12d118cb.js";import"./partjson.esm-b3f1fc21.js";import"./termdb.bins-39d11f24.js";import"./controls-268e40e6.js";import"./controls.btns-5bf9e7d7.js";import"./controls.config-2f0fa061.js";import"./zoom-f445cfef.js";import"./pointer-c7475677.js";import"./nodrag-b2737073.js";import"./lasso-1a02a545.js";import"./drag-2e9c80bb.js";import"./downloadTextfile-5723af95.js";import"./sampleView-1dff3fca.js";import"./select2Terms-d48d037e.js";import"./svg.download-f4aa48e4.js";import"./sampleScatter.rendererThree-ef289434.js";import"./axis-747c801e.js";import"./line-264f8f9e.js";import"./constant-426a1483.js";import"./violin-74d26b75.js";import"./violin.renderer-469fa0ff.js";import"./brush-9faa7ae7.js";import"./basis-3870f5ba.js";import"./log-c26b6cfd.js";import"./html.legend-80b2b3ec.js";import"./violin.interactivity-bf40ddde.js";import"./niceNumLabels-29a7c6ca.js";import"./barchart-2898d229.js";import"./bars.settings-64bb4642.js";import"./bars.renderer-71935d34.js";import"./svg.legend-749348e0.js";import"./barchart.events-426d737a.js";function m(t){switch(t){case"../plots/DEanalysis.js":return import("./DEanalysis-bbfad00d.js");case"../plots/Disco.js":return import("./Disco-b7c9bf72.js");case"../plots/DziViewer.js":return import("./DziViewer-28915c11.js");case"../plots/WSIViewer.js":return import("./WSIViewer-957695a8.js");case"../plots/barchart.data.js":return import("./FilterRxComp-02e68f1b.js").then((function(t){return t.j}));case"../plots/barchart.events.js":return import("./barchart.events-426d737a.js");case"../plots/barchart.js":return import("./barchart-2898d229.js");case"../plots/bars.renderer.js":return import("./bars.renderer-71935d34.js");case"../plots/bars.settings.js":return import("./bars.settings-64bb4642.js");case"../plots/boxplot.js":return import("./boxplot-4c9a5479.js");case"../plots/brainImaging.js":return import("./brainImaging-7716bc66.js");case"../plots/controls.btns.js":return import("./controls.btns-5bf9e7d7.js");case"../plots/controls.config.js":return import("./controls.config-2f0fa061.js");case"../plots/controls.js":return import("./controls-268e40e6.js");case"../plots/cuminc.js":return import("./cuminc-8dffb765.js");case"../plots/dataDownload.js":return import("./dataDownload-452ae3cd.js");case"../plots/dictionary.js":return import("./dictionary-a132a3cc.js");case"../plots/facet.js":return import("./facet-fa4fe49c.js");case"../plots/geneExpression.js":return import("./geneExpression-66208299.js");case"../plots/geneORA.js":return import("./geneORA-9456872c.js");case"../plots/geneset.js":return import("./geneset-0315daf8.js");case"../plots/genomeBrowser.controls.js":return import("./genomeBrowser.controls-2601cab5.js");case"../plots/genomeBrowser.js":return import("./genomeBrowser-608b924e.js");case"../plots/gsea.js":return import("./gsea-0c0cf8de.js");case"../plots/hierCluster.config.js":return import("./hierCluster.config-f4daaf92.js");case"../plots/hierCluster.interactivity.js":return import("./hierCluster.interactivity-7f475259.js").then((function(t){return t.i}));case"../plots/hierCluster.js":return import("./hierCluster-7ab62ca5.js");case"../plots/hierCluster.renderers.js":return import("./hierCluster.renderers-19b79639.js").then((function(t){return t.r}));case"../plots/imagePlot.js":return import("./imagePlot-1ef24562.js");case"../plots/matrix.cells.js":return import("./matrix.cells-a018d731.js");case"../plots/matrix.cluster.js":return import("./matrix.cluster-a6e713e8.js");case"../plots/matrix.config.js":return import("./matrix.config-2c550b5d.js");case"../plots/matrix.controls.js":return import("./matrix.controls-42ad4912.js");case"../plots/matrix.data.js":return import("./matrix.data-2b814c9f.js").then((function(t){return t.m}));case"../plots/matrix.dom.js":return import("./matrix.dom-1e0da5b3.js");case"../plots/matrix.groups.js":return import("./matrix.groups-824a7244.js").then((function(t){return t.m}));case"../plots/matrix.interactivity.js":return import("./matrix.interactivity-1cb56534.js");case"../plots/matrix.js":return import("./matrix-38cd47c3.js");case"../plots/matrix.layout.js":return import("./matrix.layout-47e44357.js").then((function(t){return t.m}));case"../plots/matrix.legend.js":return import("./matrix.legend-9af0c757.js").then((function(t){return t.m}));case"../plots/matrix.renderers.js":return import("./matrix.renderers-337ce240.js");case"../plots/matrix.serieses.js":return import("./matrix.serieses-7b7184c9.js").then((function(t){return t.m}));case"../plots/matrix.sort.js":return import("./matrix.sort-1ac05842.js");case"../plots/matrix.sorterUi.js":return import("./matrix.sorterUi-1c60c145.js");case"../plots/plot.app.js":return import("./plot.app-2a805759.js");case"../plots/plot.brainImaging.js":return import("./plot.brainImaging-32a484b6.js");case"../plots/plot.disco.js":return import("./plot.disco-1fdfee3c.js");case"../plots/plot.ssgq.js":return import("./plot.ssgq-d33113d5.js");case"../plots/profileBarchart.js":return import("./profileBarchart-58f0a8c0.js");case"../plots/profilePlot.js":return import("./profilePlot-4db8ca78.js");case"../plots/profilePolar.js":return import("./profilePolar-50b8e40e.js");case"../plots/profileRadar.js":return import("./profileRadar-fff0b004.js");case"../plots/profileRadarFacility.js":return import("./profileRadarFacility-d6d34c15.js");case"../plots/profileSummary.js":return import("./profileSummary-04b8b15b.js");case"../plots/regression.inputs.js":return import("./regression.inputs-14df7c31.js").then((function(t){return t.b}));case"../plots/regression.inputs.term.js":return import("./regression.inputs-14df7c31.js").then((function(t){return t.a}));case"../plots/regression.inputs.values.table.js":return import("./regression.inputs.values.table-d79efa9e.js");case"../plots/regression.js":return import("./regression.inputs-14df7c31.js").then((function(t){return t.r}));case"../plots/regression.results.js":return import("./regression.results-4767144e.js").then((function(t){return t.r}));case"../plots/sampleScatter.interactivity.js":return import("./sampleScatter-55d9eb74.js").then((function(t){return t.a}));case"../plots/sampleScatter.js":return import("./sampleScatter-55d9eb74.js").then((function(t){return t.b}));case"../plots/sampleScatter.renderer.js":return import("./sampleScatter-55d9eb74.js").then((function(t){return t.s}));case"../plots/sampleScatter.rendererThree.js":return import("./sampleScatter.rendererThree-ef289434.js").then((function(t){return t.c}));case"../plots/sampleView.js":return import("./sampleView-1dff3fca.js");case"../plots/scatter.js":return import("./scatter-f8285107.js");case"../plots/singleCellPlot.js":return import("./singleCellPlot-eff5760b.js");case"../plots/stattable.js":return import("./stattable-46cde32c.js");case"../plots/summary.js":return import("./summary-a6c15c9e.js");case"../plots/survival.js":return import("./survival-52714cd3.js");case"../plots/table.js":return import("./table-bf40249b.js");case"../plots/variantBrowser.js":return import("./variantBrowser-14d5c3f6.js");case"../plots/violin.interactivity.js":return import("./violin.interactivity-bf40ddde.js");case"../plots/violin.js":return import("./violin-74d26b75.js");case"../plots/violin.renderer.js":return import("./violin.renderer-469fa0ff.js");default:return new Promise((function(e,s){(typeof queueMicrotask==="function"?queueMicrotask:setTimeout)(s.bind(null,new Error("Unknown variable dynamic import: "+t)))}))}}class d{constructor(t){this.type="plot";u(this);this.initUi(t)}reactsTo(t){if(t.type.includes("cache_termq"))return true;if(t.type.endsWith("_group"))return true;if(t.type.startsWith("plot_"))return t.id===this.id;if(t.type.startsWith("filter"))return true;if(t.type.startsWith("cohort"))return true;if(t.type=="app_refresh")return true;if(t.type.endsWith("customTerm"))return true}getState(t){const e=t.plots.find((t=>t.id===this.id));if(!e){throw`No plot with id='${this.id}' found. Did you set this.id before this.api = getComponentApi(this)?`}return{config:e,groups:t.groups,_scope_:t._scope_}}async main(){this.dom.errdiv.style("display","none");if(!this.components)await this.setComponents(this.opts)}async setComponents(t){this.components={recover:await a({app:this.app,holder:this.dom.localRecoverDiv,getState:t=>this.getState(t),reactsTo:t=>t.id==this.id&&(t.type=="plot_edit"||t.type=="plot_nestedEdits")&&t._track_!="none",plot_id:this.id,maxHistoryLen:10})};const s=await m(`../plots/${t.chartType}.js`);this.components.chart=await s.componentInit({app:this.app,holder:this.dom.viz,header:this.dom.paneTitleDiv,id:this.id,plotDiv:e(this.dom.holder.app_div.node().parentNode)})}destroy(){this.dom.holder.app_div.selectAll("*").remove();this.dom.holder.app_div.remove();for(const t in this.dom){delete this.dom[t]}}}const j=t(d);function u(t){t.initUi=function(e){const r=e.holder;r.header.style("padding",0);try{t.dom={tip:new s({padding:"0px"}),holder:r,paneTitleDiv:r.header.append("div").style("display","inline-block").style("color","#555").style("padding-left","7px").style("vertical-align","sub"),localRecoverDiv:r.header.append("div").style("display","inline-block"),body:r.body.style("white-space","nowrap").style("overflow-x","auto"),errdiv:r.body.append("div").style("display","none").style("padding","5px").style("background-color","rgba(255,100,100,0.2)"),viz:r.body.append("div")}}catch(e){t.dom.errdiv.style("display","none").text(e)}}}class h{constructor(t){if(t.addLoginCallback){t.addLoginCallback((()=>this.api.dispatch({type:"app_refresh"})))}this.type="app";this.dom={holder:t.holder,topbar:t.holder.append("div"),errdiv:t.holder.append("div"),plotDiv:t.holder.append("div")};this.plotIdToSandboxId={}}validateOpts(t={}){if(!t.holder)throw`missing opts.holder in the MassApp constructor argument`;if(!t.callbacks)t.callbacks={};if(!t.state.vocab)t.state.vocab={};if(typeof t.state.vocab!="object")throw"opts.state.vocab{} is not an object";if(t.state.genome){t.state.vocab.genome=t.state.genome;delete t.state.genome}if(t.state.dslabel){t.state.vocab.dslabel=t.state.dslabel;delete t.state.dslabel}return t}async preApiFreeze(t){try{t.tip=new s({padding:"5px"});t.tip.d.on("keyup",(e=>{if(e.key=="Escape")t.tip.hide()}));t.printError=t=>this.printError(t);const e=this.opts.state.vocab;t.vocabApi=await p({app:t,state:{vocab:this.opts.state.vocab},fetchOpts:this.opts.fetchOpts,getDatasetAccessToken:this.opts.getDatasetAccessToken});t.hasWebGL=function(){try{var t=document.createElement("canvas");return!!(window.WebGLRenderingContext&&(t.getContext("webgl")||t.getContext("experimental-webgl")))}catch(t){return false}};this.opts.state.vocab=t.vocabApi.vocab}catch(t){throw t}}async init(){try{const t="debounceInterval"in this.opts?this.opts.debounceInterval:0;if(this.opts.embeddedSessionState){Object.assign(this.opts.state,this.opts.embeddedSessionState)}this.store=await n({app:this.api,state:this.opts.state,debounceInterval:t});this.state=await this.store.copyState();this.components={};if(this.state.nav.header_mode!="hidden"){this.components.nav=await c({app:this.api,holder:this.dom.topbar,header_mode:this.state&&this.state.nav&&this.state.nav.header_mode,vocab:this.state.vocab,massSessionDuration:this.state.termdbConfig.massSessionDuration})}this.components.plots={};await this.api.dispatch()}catch(t){this.printError(t);throw t}}async main(){await this.api.vocabApi.main();const t={};let e;for(const s of this.state.plots){if(this.components.plots&&!(s.id in this.components.plots)){e=o(this.dom.plotDiv,{close:()=>{this.api.dispatch({type:"plot_delete",id:s.id})},plotId:s.id,beforePlotId:s.insertBefore||null,style:{width:"98.5%"}});if(s.chartType=="summary")t[s.id]=l(Object.assign({app:this.api,holder:e},s));else t[s.id]=j(Object.assign({app:this.api,holder:e},s))}}const s=Object.keys(t).length;if(s){await Promise.all(Object.values(t));for(const e in t){this.components.plots[e]=await t[e]}}for(const t in this.components.plots){if(!this.state.plots.find((e=>e.id===t))){this.components.plots[t].destroy();delete this.components.plots[t]}}}printError(t){i(this.dom.errdiv||this.opts.holder,"Error: "+(t.message||t));if(t.stack)console.log(t.stack);this.bus.emit("error")}}const f=r(h);export{f as appInit};