jbrowse-plugin-graphgenomeviewer 7.4.2 → 7.4.4

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 (122) hide show
  1. package/README.md +53 -24
  2. package/dist/chunks/{AddTrackWorkflow-LK25EC3H.js → AddTrackWorkflow-NLSZYK56.js} +2 -2
  3. package/dist/chunks/{GbzBaseSyntenyAdapter-BVLBK4OO.js → GbzBaseSyntenyAdapter-A5MNPCKX.js} +2 -2
  4. package/dist/chunks/{GbzBaseSyntenyAdapter-BVLBK4OO.js.map → GbzBaseSyntenyAdapter-A5MNPCKX.js.map} +1 -1
  5. package/dist/chunks/{GraphGenomeView-UCOAMRF7.js → GraphGenomeView-SEAPDRXS.js} +2 -2
  6. package/dist/chunks/{GraphTrackSettingsDialog-MR7X75EY.js → GraphTrackSettingsDialog-EVIIGC5G.js} +2 -2
  7. package/dist/chunks/{HighlightColorDialog-ZBAZDYIR.js → HighlightColorDialog-QAYWLO5I.js} +2 -2
  8. package/dist/chunks/{LinearGraphDisplay-AJ5OZN27.js → LinearGraphDisplay-ZC4BQ27J.js} +2 -2
  9. package/dist/chunks/MinigraphBubbleAdapter-3QM4XV47.js +2 -0
  10. package/dist/chunks/{MinigraphBubbleAdapter-PEQK5NII.js.map → MinigraphBubbleAdapter-3QM4XV47.js.map} +1 -1
  11. package/dist/chunks/{RgfaTabixAdapter-Q63YLPK4.js → RgfaTabixAdapter-XSOIEWBK.js} +2 -2
  12. package/dist/chunks/WalkFormsAdapter-FT2SW4H6.js +2 -0
  13. package/dist/chunks/WalkFormsAdapter-FT2SW4H6.js.map +7 -0
  14. package/dist/chunks/{WalkTabixSyntenyAdapter-N5PFI4LS.js → WalkTabixSyntenyAdapter-3WRVNDLB.js} +2 -2
  15. package/dist/chunks/{chunk-2XZYJLCE.js → chunk-2KVE7YAS.js} +1 -1
  16. package/dist/chunks/{chunk-2XZYJLCE.js.map → chunk-2KVE7YAS.js.map} +1 -1
  17. package/dist/chunks/{chunk-RCXOOBLX.js → chunk-6SWXMRAV.js} +1 -1
  18. package/dist/chunks/{chunk-RCXOOBLX.js.map → chunk-6SWXMRAV.js.map} +1 -1
  19. package/dist/chunks/{chunk-WY5W5X62.js → chunk-6VNU7SD4.js} +2 -2
  20. package/dist/chunks/{chunk-WY5W5X62.js.map → chunk-6VNU7SD4.js.map} +1 -1
  21. package/dist/chunks/{chunk-DXNE2CFX.js → chunk-6WUWQX2P.js} +2 -2
  22. package/dist/chunks/{chunk-DXNE2CFX.js.map → chunk-6WUWQX2P.js.map} +1 -1
  23. package/dist/chunks/{chunk-ZG2CQXOW.js → chunk-7RJMG6I2.js} +2 -2
  24. package/dist/chunks/{chunk-ZG2CQXOW.js.map → chunk-7RJMG6I2.js.map} +1 -1
  25. package/dist/chunks/chunk-FTXDTU27.js +3 -0
  26. package/dist/chunks/chunk-FTXDTU27.js.map +7 -0
  27. package/dist/chunks/chunk-G53BI7VK.js +2 -0
  28. package/dist/chunks/{chunk-MEMUEG5Z.js.map → chunk-G53BI7VK.js.map} +4 -4
  29. package/dist/chunks/chunk-GRTN25B6.js +3 -0
  30. package/dist/chunks/chunk-GRTN25B6.js.map +7 -0
  31. package/dist/chunks/{chunk-62AHPP6H.js → chunk-HCDKP3IP.js} +2 -2
  32. package/dist/chunks/{chunk-62AHPP6H.js.map → chunk-HCDKP3IP.js.map} +1 -1
  33. package/dist/chunks/{chunk-HI3YK2SO.js → chunk-HF4H6LQI.js} +2 -2
  34. package/dist/chunks/{chunk-MVVXRZXV.js → chunk-JRJHXLGP.js} +2 -2
  35. package/dist/chunks/{chunk-MVVXRZXV.js.map → chunk-JRJHXLGP.js.map} +2 -2
  36. package/dist/chunks/{chunk-LFTZNUXB.js → chunk-KIYRMZWP.js} +2 -2
  37. package/dist/chunks/{chunk-LFTZNUXB.js.map → chunk-KIYRMZWP.js.map} +1 -1
  38. package/dist/chunks/{chunk-WJGCVNGH.js → chunk-LE43I4PT.js} +2 -2
  39. package/dist/chunks/{chunk-U5PIXAF2.js → chunk-LE7FZM6Y.js} +2 -2
  40. package/dist/chunks/{chunk-U5PIXAF2.js.map → chunk-LE7FZM6Y.js.map} +1 -1
  41. package/dist/chunks/chunk-MUONTMYZ.js +2 -0
  42. package/dist/chunks/chunk-MUONTMYZ.js.map +7 -0
  43. package/dist/chunks/{chunk-SFYSQ52W.js → chunk-OJWBLPPH.js} +2 -2
  44. package/dist/chunks/{chunk-JSRGX4TC.js → chunk-P3FBI5ML.js} +1 -1
  45. package/dist/chunks/{chunk-JSRGX4TC.js.map → chunk-P3FBI5ML.js.map} +1 -1
  46. package/dist/chunks/chunk-QV7SSOMJ.js +2 -0
  47. package/dist/chunks/chunk-S333HOG5.js +2 -0
  48. package/dist/chunks/chunk-S333HOG5.js.map +7 -0
  49. package/dist/chunks/{chunk-QJ43NDYS.js → chunk-TYV6UXJA.js} +2 -2
  50. package/dist/chunks/chunk-VZQ6VOUP.js +2 -0
  51. package/dist/chunks/chunk-VZQ6VOUP.js.map +7 -0
  52. package/dist/chunks/chunk-WLRRI35A.js +3 -0
  53. package/dist/chunks/chunk-WLRRI35A.js.map +7 -0
  54. package/dist/chunks/{chunk-PUREF4BM.js → chunk-XXBE4IFZ.js} +2 -2
  55. package/dist/chunks/{chunk-PUREF4BM.js.map → chunk-XXBE4IFZ.js.map} +1 -1
  56. package/dist/chunks/{renderSvg-Z7YIXVQ5.js → renderSvg-ZIUOPWJQ.js} +2 -2
  57. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +3 -4
  58. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
  59. package/package.json +3 -3
  60. package/src/GraphGenomeView/model.test.ts +2 -109
  61. package/src/GraphGenomeView/pane/fitViews.ts +0 -109
  62. package/src/GraphGenomeView/pane/graphViews.ts +0 -4
  63. package/src/GraphGenomeView/pane/launchActions.ts +0 -22
  64. package/src/GraphGenomeView/pane/loadActions.ts +1 -1
  65. package/src/GraphGenomeView/pane/paneBase.ts +0 -7
  66. package/src/GraphGenomeView/viewModel.ts +0 -3
  67. package/src/RgfaTabixAdapter/configSchema.ts +3 -3
  68. package/src/RgfaTabixAdapter/walkFiles.test.ts +6 -6
  69. package/src/WalkFormsAdapter/WalkFormsAdapter.test.ts +204 -0
  70. package/src/WalkFormsAdapter/WalkFormsAdapter.ts +232 -0
  71. package/src/WalkFormsAdapter/configSchema.ts +127 -0
  72. package/src/WalkFormsAdapter/formRows.test.ts +258 -0
  73. package/src/WalkFormsAdapter/formRows.ts +231 -0
  74. package/src/WalkFormsAdapter/formsMenu.test.ts +237 -0
  75. package/src/WalkFormsAdapter/formsMenu.ts +202 -0
  76. package/src/WalkFormsAdapter/index.ts +21 -0
  77. package/src/WalkFormsAdapter/pinned.ts +33 -0
  78. package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.test.ts +5 -5
  79. package/src/WalkTabixSyntenyAdapter/configSchema.ts +2 -2
  80. package/src/index.ts +4 -0
  81. package/src/panSNAliases/panSNAliases.test.ts +2 -2
  82. package/src/version.ts +1 -1
  83. package/dist/chunks/MinigraphBubbleAdapter-PEQK5NII.js +0 -2
  84. package/dist/chunks/chunk-55DIX25J.js +0 -3
  85. package/dist/chunks/chunk-55DIX25J.js.map +0 -7
  86. package/dist/chunks/chunk-AWGMTI73.js +0 -3
  87. package/dist/chunks/chunk-AWGMTI73.js.map +0 -7
  88. package/dist/chunks/chunk-FWVXBJ64.js +0 -3
  89. package/dist/chunks/chunk-FWVXBJ64.js.map +0 -7
  90. package/dist/chunks/chunk-J3AXN7JQ.js +0 -2
  91. package/dist/chunks/chunk-MEMUEG5Z.js +0 -2
  92. package/dist/chunks/chunk-Q3BXNKEL.js +0 -2
  93. package/dist/chunks/chunk-Q3BXNKEL.js.map +0 -7
  94. package/dist/chunks/chunk-S75MFZDE.js +0 -2
  95. package/dist/chunks/chunk-S75MFZDE.js.map +0 -7
  96. /package/dist/chunks/{AddTrackWorkflow-LK25EC3H.js.map → AddTrackWorkflow-NLSZYK56.js.map} +0 -0
  97. /package/dist/chunks/{GraphGenomeView-UCOAMRF7.js.map → GraphGenomeView-SEAPDRXS.js.map} +0 -0
  98. /package/dist/chunks/{GraphTrackSettingsDialog-MR7X75EY.js.map → GraphTrackSettingsDialog-EVIIGC5G.js.map} +0 -0
  99. /package/dist/chunks/{HighlightColorDialog-ZBAZDYIR.js.map → HighlightColorDialog-QAYWLO5I.js.map} +0 -0
  100. /package/dist/chunks/{LinearGraphDisplay-AJ5OZN27.js.map → LinearGraphDisplay-ZC4BQ27J.js.map} +0 -0
  101. /package/dist/chunks/{RgfaTabixAdapter-Q63YLPK4.js.map → RgfaTabixAdapter-XSOIEWBK.js.map} +0 -0
  102. /package/dist/chunks/{WalkTabixSyntenyAdapter-N5PFI4LS.js.map → WalkTabixSyntenyAdapter-3WRVNDLB.js.map} +0 -0
  103. /package/dist/chunks/{chunk-HI3YK2SO.js.map → chunk-HF4H6LQI.js.map} +0 -0
  104. /package/dist/chunks/{chunk-WJGCVNGH.js.map → chunk-LE43I4PT.js.map} +0 -0
  105. /package/dist/chunks/{chunk-SFYSQ52W.js.map → chunk-OJWBLPPH.js.map} +0 -0
  106. /package/dist/chunks/{chunk-J3AXN7JQ.js.map → chunk-QV7SSOMJ.js.map} +0 -0
  107. /package/dist/chunks/{chunk-QJ43NDYS.js.map → chunk-TYV6UXJA.js.map} +0 -0
  108. /package/dist/chunks/{renderSvg-Z7YIXVQ5.js.map → renderSvg-ZIUOPWJQ.js.map} +0 -0
  109. /package/src/RgfaTabixAdapter/test_data/{walks4_follow.GRCh38.walks.bed.gz → walks5_follow.GRCh38.walks.bed.gz} +0 -0
  110. /package/src/RgfaTabixAdapter/test_data/{walks4_follow.GRCh38.walks.bed.gz.tbi → walks5_follow.GRCh38.walks.bed.gz.tbi} +0 -0
  111. /package/src/RgfaTabixAdapter/test_data/{walks4_header.GRCh38.walks.bed.gz → walks5_header.GRCh38.walks.bed.gz} +0 -0
  112. /package/src/RgfaTabixAdapter/test_data/{walks4_header.GRCh38.walks.bed.gz.tbi → walks5_header.GRCh38.walks.bed.gz.tbi} +0 -0
  113. /package/src/RgfaTabixAdapter/test_data/{walks4_inversion.GRCh38.walks.bed.gz → walks5_inversion.GRCh38.walks.bed.gz} +0 -0
  114. /package/src/RgfaTabixAdapter/test_data/{walks4_inversion.GRCh38.walks.bed.gz.tbi → walks5_inversion.GRCh38.walks.bed.gz.tbi} +0 -0
  115. /package/src/RgfaTabixAdapter/test_data/{walks4_lanepairs.GRCh38.walks.bed.gz → walks5_lanepairs.GRCh38.walks.bed.gz} +0 -0
  116. /package/src/RgfaTabixAdapter/test_data/{walks4_lanepairs.GRCh38.walks.bed.gz.tbi → walks5_lanepairs.GRCh38.walks.bed.gz.tbi} +0 -0
  117. /package/src/RgfaTabixAdapter/test_data/{walks4_maxnode.GRCh38.walks.bed.gz → walks5_maxnode.GRCh38.walks.bed.gz} +0 -0
  118. /package/src/RgfaTabixAdapter/test_data/{walks4_maxnode.GRCh38.walks.bed.gz.tbi → walks5_maxnode.GRCh38.walks.bed.gz.tbi} +0 -0
  119. /package/src/RgfaTabixAdapter/test_data/{walks4_rejoin.GRCh38.walks.bed.gz → walks5_rejoin.GRCh38.walks.bed.gz} +0 -0
  120. /package/src/RgfaTabixAdapter/test_data/{walks4_rejoin.GRCh38.walks.bed.gz.tbi → walks5_rejoin.GRCh38.walks.bed.gz.tbi} +0 -0
  121. /package/src/RgfaTabixAdapter/test_data/{walks4_twopart.GRCh38.walks.bed.gz → walks5_twopart.GRCh38.walks.bed.gz} +0 -0
  122. /package/src/RgfaTabixAdapter/test_data/{walks4_twopart.GRCh38.walks.bed.gz.tbi → walks5_twopart.GRCh38.walks.bed.gz.tbi} +0 -0
@@ -1,2 +1,2 @@
1
- var o=JBrowseExports["@jbrowse/core/configuration"],t=e=>o!=null&&e in Object(o)?o[e]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+e+"' from '@jbrowse/core/configuration' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:e}),n=t("ConfigurationReference"),r=t("ConfigurationSchema");var i=t("expandTabixShorthand");var a=t("getConf");var s=t("readConfObject");var c=t("setConf");var p=o&&o.__esModule?o.default:o;export{n as a,r as b,i as c,a as d,s as e,c as f};
2
- //# sourceMappingURL=chunk-MVVXRZXV.js.map
1
+ var o=JBrowseExports["@jbrowse/core/configuration"],t=e=>o!=null&&e in Object(o)?o[e]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+e+"' from '@jbrowse/core/configuration' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:e}),n=t("ConfigurationReference"),r=t("ConfigurationSchema");var i=t("getConf");var a=t("readConfObject");var s=t("setConf");var c=o&&o.__esModule?o.default:o;export{n as a,r as b,i as c,a as d,s as e};
2
+ //# sourceMappingURL=chunk-JRJHXLGP.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["host:@jbrowse/core/configuration"],
4
4
  "sourcesContent": ["const host = JBrowseExports[\"@jbrowse/core/configuration\"]\nconst read = name =>\n host != null && name in Object(host)\n ? host[name]\n : Object.assign(\n function () {\n throw new Error(\n \"This JBrowse does not provide '\" + name + \"' from '\" + \"@jbrowse/core/configuration\" + \"' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse\",\n )\n },\n { jbrowseHostMissing: name },\n )\nexport const ConfigurationReference = /* @__PURE__ */ read(\"ConfigurationReference\")\nexport const ConfigurationSchema = /* @__PURE__ */ read(\"ConfigurationSchema\")\nexport const ConfigurationSchemaUnion = /* @__PURE__ */ read(\"ConfigurationSchemaUnion\")\nexport const DEFAULT_FORMAT_DETAILS_DEPTH = /* @__PURE__ */ read(\"DEFAULT_FORMAT_DETAILS_DEPTH\")\nexport const FormatAboutConfigSchemaFactory = /* @__PURE__ */ read(\"FormatAboutConfigSchemaFactory\")\nexport const FormatDetailsConfigSchemaFactory = /* @__PURE__ */ read(\"FormatDetailsConfigSchemaFactory\")\nexport const PLOT_VOCABULARY = /* @__PURE__ */ read(\"PLOT_VOCABULARY\")\nexport const applyConfSettings = /* @__PURE__ */ read(\"applyConfSettings\")\nexport const applyRetiredSpellings = /* @__PURE__ */ read(\"applyRetiredSpellings\")\nexport const arraySlotUnion = /* @__PURE__ */ read(\"arraySlotUnion\")\nexport const bamIndexFields = /* @__PURE__ */ read(\"bamIndexFields\")\nexport const bamIndexSchema = /* @__PURE__ */ read(\"bamIndexSchema\")\nexport const evaluateJexl = /* @__PURE__ */ read(\"evaluateJexl\")\nexport const expandTabixShorthand = /* @__PURE__ */ read(\"expandTabixShorthand\")\nexport const expandUriShorthand = /* @__PURE__ */ read(\"expandUriShorthand\")\nexport const fillIndexType = /* @__PURE__ */ read(\"fillIndexType\")\nexport const fillLocations = /* @__PURE__ */ read(\"fillLocations\")\nexport const fullConfSnapshot = /* @__PURE__ */ read(\"fullConfSnapshot\")\nexport const getConf = /* @__PURE__ */ read(\"getConf\")\nexport const getConfigurationSchemaDefinition = /* @__PURE__ */ read(\"getConfigurationSchemaDefinition\")\nexport const getConfigurationSchemaMetadata = /* @__PURE__ */ read(\"getConfigurationSchemaMetadata\")\nexport const getConfigurationSchemaUnion = /* @__PURE__ */ read(\"getConfigurationSchemaUnion\")\nexport const getSlotDefinition = /* @__PURE__ */ read(\"getSlotDefinition\")\nexport const getTypeNamesFromExplicitlyTypedUnion = /* @__PURE__ */ read(\"getTypeNamesFromExplicitlyTypedUnion\")\nexport const hydrateTrackConfig = /* @__PURE__ */ read(\"hydrateTrackConfig\")\nexport const indexSnapshot = /* @__PURE__ */ read(\"indexSnapshot\")\nexport const indexSuffix = /* @__PURE__ */ read(\"indexSuffix\")\nexport const isBareConfigurationSchemaType = /* @__PURE__ */ read(\"isBareConfigurationSchemaType\")\nexport const isCallbackValue = /* @__PURE__ */ read(\"isCallbackValue\")\nexport const isConfigurationModel = /* @__PURE__ */ read(\"isConfigurationModel\")\nexport const isConfigurationSchemaType = /* @__PURE__ */ read(\"isConfigurationSchemaType\")\nexport const isConfigurationSlot = /* @__PURE__ */ read(\"isConfigurationSlot\")\nexport const isConstantEntry = /* @__PURE__ */ read(\"isConstantEntry\")\nexport const isCsiLocation = /* @__PURE__ */ read(\"isCsiLocation\")\nexport const isSlotDefinitionEntry = /* @__PURE__ */ read(\"isSlotDefinitionEntry\")\nexport const liftPlot = /* @__PURE__ */ read(\"liftPlot\")\nexport const liftRetiredSpellings = /* @__PURE__ */ read(\"liftRetiredSpellings\")\nexport const makeSlotFacade = /* @__PURE__ */ read(\"makeSlotFacade\")\nexport const mergeFormatCallbacks = /* @__PURE__ */ read(\"mergeFormatCallbacks\")\nexport const parsePlot = /* @__PURE__ */ read(\"parsePlot\")\nexport const plotKeysOf = /* @__PURE__ */ read(\"plotKeysOf\")\nexport const plotOf = /* @__PURE__ */ read(\"plotOf\")\nexport const plotWrites = /* @__PURE__ */ read(\"plotWrites\")\nexport const preProcessConfigSnapshot = /* @__PURE__ */ read(\"preProcessConfigSnapshot\")\nexport const preProcessSnapshotWith = /* @__PURE__ */ read(\"preProcessSnapshotWith\")\nexport const readConfObject = /* @__PURE__ */ read(\"readConfObject\")\nexport const readConfigValue = /* @__PURE__ */ read(\"readConfigValue\")\nexport const requestedIndexType = /* @__PURE__ */ read(\"requestedIndexType\")\nexport const requirementProblems = /* @__PURE__ */ read(\"requirementProblems\")\nexport const setConf = /* @__PURE__ */ read(\"setConf\")\nexport const shorthandTargets = /* @__PURE__ */ read(\"shorthandTargets\")\nexport const shorthandTargetsOf = /* @__PURE__ */ read(\"shorthandTargetsOf\")\nexport const slotChoices = /* @__PURE__ */ read(\"slotChoices\")\nexport const slotValueRefusal = /* @__PURE__ */ read(\"slotValueRefusal\")\nexport const tabixIndexFields = /* @__PURE__ */ read(\"tabixIndexFields\")\nexport const tabixIndexSchema = /* @__PURE__ */ read(\"tabixIndexSchema\")\nexport const tabixIndexSnapshot = /* @__PURE__ */ read(\"tabixIndexSnapshot\")\nexport const toCallbackValue = /* @__PURE__ */ read(\"toCallbackValue\")\nexport const toFixedValue = /* @__PURE__ */ read(\"toFixedValue\")\nexport default host && host.__esModule ? host.default : host"],
5
- "mappings": "AAAA,IAAMA,EAAO,eAAe,6BAA6B,EACnDC,EAAOC,GACXF,GAAQ,MAAQE,KAAQ,OAAOF,CAAI,EAC/BA,EAAKE,CAAI,EACT,OAAO,OACL,UAAY,CACV,MAAM,IAAI,MACR,kCAAoCA,EAAO,6IAC7C,CACF,EACA,CAAE,mBAAoBA,CAAK,CAC7B,EACOC,EAAyCF,EAAK,wBAAwB,EACtEG,EAAsCH,EAAK,qBAAqB,EAYtE,IAAMI,EAAuCC,EAAK,sBAAsB,EAKxE,IAAMC,EAA0BC,EAAK,SAAS,EA2B9C,IAAMC,EAAiCC,EAAK,gBAAgB,EAI5D,IAAMC,EAA0BC,EAAK,SAAS,EAUrD,IAAOC,EAAQC,GAAQA,EAAK,WAAaA,EAAK,QAAUA",
6
- "names": ["host", "read", "name", "ConfigurationReference", "ConfigurationSchema", "expandTabixShorthand", "read", "getConf", "read", "readConfObject", "read", "setConf", "read", "configuration_default", "host"]
5
+ "mappings": "AAAA,IAAMA,EAAO,eAAe,6BAA6B,EACnDC,EAAOC,GACXF,GAAQ,MAAQE,KAAQ,OAAOF,CAAI,EAC/BA,EAAKE,CAAI,EACT,OAAO,OACL,UAAY,CACV,MAAM,IAAI,MACR,kCAAoCA,EAAO,6IAC7C,CACF,EACA,CAAE,mBAAoBA,CAAK,CAC7B,EACOC,EAAyCF,EAAK,wBAAwB,EACtEG,EAAsCH,EAAK,qBAAqB,EAiBtE,IAAMI,EAA0BC,EAAK,SAAS,EA2B9C,IAAMC,EAAiCC,EAAK,gBAAgB,EAI5D,IAAMC,EAA0BC,EAAK,SAAS,EAUrD,IAAOC,EAAQC,GAAQA,EAAK,WAAaA,EAAK,QAAUA",
6
+ "names": ["host", "read", "name", "ConfigurationReference", "ConfigurationSchema", "getConf", "read", "readConfObject", "read", "setConf", "read", "configuration_default", "host"]
7
7
  }
@@ -1,4 +1,4 @@
1
- import{a as I,b as L,f as S,h as w}from"./chunk-MEMUEG5Z.js";import{p as T}from"./chunk-U5PIXAF2.js";var O=62,Z=60,G=9,k=48,z=57,_=/^(?:LN:i|SN:Z|SO:i|SR:i):/,q=/^[PEOUFG]\t/,C=e=>e.endsWith("\r")?e.slice(0,-1):e;function P(){return{nodes:new T(new Int32Array(65536)),reversed:new T(new Uint8Array(65536))}}var R=class{constructor(){this.names=[],this.byName=new Map,this.byNumber=new Map}has(e){return this.byName.has(e)}add(e){let s=this.names.length;this.byName.set(e,s),this.names.push(e);let t=+e;return Number.isSafeInteger(t)&&String(t)===e&&this.byNumber.set(t,s),s}of(e){return this.byName.get(e)??this.add(e)}ofNumber(e){return this.byNumber.get(e)}};function U(e){let[,s,t="*",...r]=e.split(" ");if(!s||/^\d+$/.test(t))return;let i=t==="*"?0:t.length,n,f,o;for(let c of r){if(!_.test(c))return;let a=c.slice(5),p=c.slice(0,2);p==="LN"?i=+a:p==="SN"?n=a:p==="SO"?f=+a:o=+a}return{name:s,length:i,stable:n!==void 0&&f!==void 0&&o!==void 0?{refName:n,start:f,rank:o}:void 0}}function $(e,s,t,r){let i=0,n=-1,f=0,o=!0,d=a=>{if(n>=0&&a>n){let p=o&&a-n<16&&(a-n===1||e.charCodeAt(n)!==k)?t.ofNumber(f):void 0;r.nodes.push(p??t.of(e.slice(n,a))),r.reversed.push(i)}},c=s;for(;c<e.length;c++){let a=e.charCodeAt(c);if(a===O||a===Z)d(c),i=a===Z?1:0,n=c+1,f=0,o=!0;else{if(a===G)break;o&&a>=k&&a<=z?f=f*10+a-k:o=!1}}return d(c),c}function x(e){let s=[],t=0;for(;s.length<6;){let d=e.indexOf(" ",t);if(d===-1)return;s.push(e.slice(t,d)),t=d+1}let[,r,i,n,f,o]=s;return r&&i&&n&&f&&o&&t<e.length?{sample:r,haplotype:i,contig:n,start:f,end:o,body:t}:void 0}function K(e){let s=e.split(`
1
+ import{a as I,b as L,f as S,h as w}from"./chunk-G53BI7VK.js";import{p as T}from"./chunk-LE7FZM6Y.js";var O=62,Z=60,G=9,k=48,z=57,_=/^(?:LN:i|SN:Z|SO:i|SR:i):/,q=/^[PEOUFG]\t/,C=e=>e.endsWith("\r")?e.slice(0,-1):e;function P(){return{nodes:new T(new Int32Array(65536)),reversed:new T(new Uint8Array(65536))}}var R=class{constructor(){this.names=[],this.byName=new Map,this.byNumber=new Map}has(e){return this.byName.has(e)}add(e){let s=this.names.length;this.byName.set(e,s),this.names.push(e);let t=+e;return Number.isSafeInteger(t)&&String(t)===e&&this.byNumber.set(t,s),s}of(e){return this.byName.get(e)??this.add(e)}ofNumber(e){return this.byNumber.get(e)}};function U(e){let[,s,t="*",...r]=e.split(" ");if(!s||/^\d+$/.test(t))return;let i=t==="*"?0:t.length,n,f,o;for(let c of r){if(!_.test(c))return;let a=c.slice(5),p=c.slice(0,2);p==="LN"?i=+a:p==="SN"?n=a:p==="SO"?f=+a:o=+a}return{name:s,length:i,stable:n!==void 0&&f!==void 0&&o!==void 0?{refName:n,start:f,rank:o}:void 0}}function $(e,s,t,r){let i=0,n=-1,f=0,o=!0,d=a=>{if(n>=0&&a>n){let p=o&&a-n<16&&(a-n===1||e.charCodeAt(n)!==k)?t.ofNumber(f):void 0;r.nodes.push(p??t.of(e.slice(n,a))),r.reversed.push(i)}},c=s;for(;c<e.length;c++){let a=e.charCodeAt(c);if(a===O||a===Z)d(c),i=a===Z?1:0,n=c+1,f=0,o=!0;else{if(a===G)break;o&&a>=k&&a<=z?f=f*10+a-k:o=!1}}return d(c),c}function x(e){let s=[],t=0;for(;s.length<6;){let d=e.indexOf(" ",t);if(d===-1)return;s.push(e.slice(t,d)),t=d+1}let[,r,i,n,f,o]=s;return r&&i&&n&&f&&o&&t<e.length?{sample:r,haplotype:i,contig:n,start:f,end:o,body:t}:void 0}function K(e){let s=e.split(`
2
2
  `),t=new R,r=[],i=[],n=[],f=[],o=[],d=new Map;for(let u of s){if(q.test(u))return;if(u.startsWith("S ")){let l=U(C(u));if(!l||t.has(l.name))return;t.add(l.name),r.push(l.length);let h=-1;l.stable&&(h=d.get(l.stable.refName)??o.length,h===o.length&&(o.push(l.stable.refName),d.set(l.stable.refName,h))),i.push(h),n.push(l.stable?.start??0),f.push(l.stable?.rank??0)}}let c=[],a=[],p=[],v=[],E=[],W=[],y=[0],g=P(),A=new w,N=new w;for(let u of s)if(u.startsWith("L ")){let[,l,h,b,m]=C(u).split(" ");l&&b&&m&&(c.push(t.of(l)),a.push(t.of(b)),p.push((h==="-"?1:0)|(m==="-"?2:0)))}else if(u.startsWith("W ")){let l=C(u),h=x(l);if(h){v.push(`${h.sample}#${h.haplotype}#${h.contig}`),E.push(h.start==="*"?0:+h.start),W.push(h.end==="*"?-1:+h.end);let b=$(l,h.body,t,g),m=F(l,b);if(m===void 0||(m.before&&A.push(m.before),m.after&&N.push(m.after),g.nodes.length===y.at(-1)))return;y.push(g.nodes.length)}}if(![A.kinds.length,N.kinds.length].some(u=>u>0&&u<v.length))return{nodes:{names:t.names,lengths:Int32Array.from(r),refs:Int32Array.from(i),starts:Float64Array.from(n),ranks:Int32Array.from(f),refNames:o},links:{from:Int32Array.from(c),to:Int32Array.from(a),strands:Uint8Array.from(p)},walks:{names:v,starts:Float64Array.from(E),ends:Float64Array.from(W),offsets:Int32Array.from(y),steps:g.nodes.data.slice(0,g.nodes.length),reversed:g.reversed.data.slice(0,g.reversed.length),...B(v.length,A,N)}}}function F(e,s){let t={};for(let r of s<e.length?e.slice(s+1).split(" "):[]){let i=r.slice(5);if(r.startsWith(`${I}:Z:`)){if(t.before=S(i),!t.before)return}else if(r.startsWith(`${L}:Z:`)&&(t.after=S(i),!t.after))return}return t}function B(e,s,t){return{...s.kinds.length===e&&e>0?{before:s.table()}:{},...t.kinds.length===e&&e>0?{after:t.table()}:{}}}var D=/([><])([^><]+)/g;function M(e){if(!e.startsWith(">")&&!e.startsWith("<"))return;let s=[];for(let[,t,r]of e.matchAll(D))s.push({name:r,strand:t===">"?"+":"-"});return s}function Q(e){let s=e.trimEnd(),t=s.split(" ");if(t.length<12||s.startsWith("#"))return;let r=M(t[5]);if(!r)return;let i,n=!1;for(let f=12;f<t.length;f++){let o=t[f];o.startsWith("cs:Z:")?i=o.slice(5):o==="tp:A:S"&&(n=!0)}return{name:t[0],queryLength:+t[1],queryStart:+t[2],queryEnd:+t[3],strand:t[4]==="-"?"-":"+",path:r,pathLength:+t[6],pathStart:+t[7],pathEnd:+t[8],matches:+t[9],blockLength:+t[10],mappingQuality:+t[11],secondary:n,...i===void 0?{}:{cs:i}}}function Y(e){let s=[];for(let t of e.split(`
3
3
  `)){let r=Q(t);r&&s.push(r)}return s}var j=/:(\d+)|=([A-Za-z]+)|\*[a-zA-Z]([a-zA-Z])|\+([A-Za-z]+)|-([A-Za-z]+)|~[a-z]{2}(\d+)[a-z]{2}/g;function tt(e){let s=[];for(let t of e.matchAll(j))t[1]!==void 0?s.push({op:"match",length:+t[1]}):t[2]!==void 0?s.push({op:"match",length:t[2].length}):t[3]!==void 0?s.push({op:"substitution",seq:t[3].toUpperCase()}):t[4]!==void 0?s.push({op:"insertion",seq:t[4].toUpperCase()}):t[5]!==void 0?s.push({op:"deletion",length:t[5].length}):t[6]!==void 0&&s.push({op:"match",length:+t[6]});return s}export{K as a,Q as b,Y as c,tt as d};
4
- //# sourceMappingURL=chunk-LFTZNUXB.js.map
4
+ //# sourceMappingURL=chunk-KIYRMZWP.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-VSSIYQYF.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-5OJZV6YT.js"],
3
+ "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.9.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-VSSIYQYF.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.9.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-5OJZV6YT.js"],
4
4
  "sourcesContent": ["import {\n END_STOP_TAG,\n START_STOP_TAG,\n StopColumns,\n parseStopTag\n} from \"./chunk-LG2UK4MB.js\";\nimport {\n Column\n} from \"./chunk-ZPZ7GNBT.js\";\n\n// src/gfa/gfaTables.ts\nvar GT = 62;\nvar LT = 60;\nvar TAB = 9;\nvar ZERO = 48;\nvar NINE = 57;\nvar TABLE_TAG = /^(?:LN:i|SN:Z|SO:i|SR:i):/;\nvar UNTABLED_RECORD = /^[PEOUFG]\\t/;\nvar trimCR = (line) => line.endsWith(\"\\r\") ? line.slice(0, -1) : line;\nfunction stepColumns() {\n return {\n nodes: new Column(new Int32Array(1 << 16)),\n reversed: new Column(new Uint8Array(1 << 16))\n };\n}\nvar SegmentIndex = class {\n constructor() {\n this.names = [];\n this.byName = /* @__PURE__ */ new Map();\n // ids that are plain decimal, so a walk step finds its segment without\n // slicing a string out of the body\n this.byNumber = /* @__PURE__ */ new Map();\n }\n has(name) {\n return this.byName.has(name);\n }\n add(name) {\n const i = this.names.length;\n this.byName.set(name, i);\n this.names.push(name);\n const n = +name;\n if (Number.isSafeInteger(n) && String(n) === name) {\n this.byNumber.set(n, i);\n }\n return i;\n }\n of(name) {\n return this.byName.get(name) ?? this.add(name);\n }\n ofNumber(n) {\n return this.byNumber.get(n);\n }\n};\nfunction readSegment(line) {\n const [, name, sequence = \"*\", ...tags] = line.split(\"\t\");\n if (!name || /^\\d+$/.test(sequence)) {\n return void 0;\n }\n let length = sequence === \"*\" ? 0 : sequence.length;\n let refName;\n let start;\n let rank;\n for (const tag of tags) {\n if (!TABLE_TAG.test(tag)) {\n return void 0;\n }\n const value = tag.slice(5);\n const key = tag.slice(0, 2);\n if (key === \"LN\") {\n length = +value;\n } else if (key === \"SN\") {\n refName = value;\n } else if (key === \"SO\") {\n start = +value;\n } else {\n rank = +value;\n }\n }\n const stable = refName !== void 0 && start !== void 0 && rank !== void 0 ? { refName, start, rank } : void 0;\n return { name, length, stable };\n}\nfunction readWalkBody(line, from, segments, steps) {\n let reversed = 0;\n let start = -1;\n let value = 0;\n let decimal = true;\n const finish = (end) => {\n if (start >= 0 && end > start) {\n const node = decimal && end - start < 16 && (end - start === 1 || line.charCodeAt(start) !== ZERO) ? segments.ofNumber(value) : void 0;\n steps.nodes.push(node ?? segments.of(line.slice(start, end)));\n steps.reversed.push(reversed);\n }\n };\n let i = from;\n for (; i < line.length; i++) {\n const ch = line.charCodeAt(i);\n if (ch === GT || ch === LT) {\n finish(i);\n reversed = ch === LT ? 1 : 0;\n start = i + 1;\n value = 0;\n decimal = true;\n } else if (ch === TAB) {\n break;\n } else if (decimal && ch >= ZERO && ch <= NINE) {\n value = value * 10 + ch - ZERO;\n } else {\n decimal = false;\n }\n }\n finish(i);\n return i;\n}\nfunction walkFields(line) {\n const fields = [];\n let at = 0;\n while (fields.length < 6) {\n const tab = line.indexOf(\"\t\", at);\n if (tab === -1) {\n return void 0;\n }\n fields.push(line.slice(at, tab));\n at = tab + 1;\n }\n const [, sample, haplotype, contig, start, end] = fields;\n return sample && haplotype && contig && start && end && at < line.length ? { sample, haplotype, contig, start, end, body: at } : void 0;\n}\nfunction gfaTables(text) {\n const lines = text.split(\"\\n\");\n const segments = new SegmentIndex();\n const lengths = [];\n const refs = [];\n const starts = [];\n const ranks = [];\n const refNames = [];\n const refIndex = /* @__PURE__ */ new Map();\n for (const raw of lines) {\n if (UNTABLED_RECORD.test(raw)) {\n return void 0;\n }\n if (raw.startsWith(\"S\t\")) {\n const s = readSegment(trimCR(raw));\n if (!s || segments.has(s.name)) {\n return void 0;\n }\n segments.add(s.name);\n lengths.push(s.length);\n let ref = -1;\n if (s.stable) {\n ref = refIndex.get(s.stable.refName) ?? refNames.length;\n if (ref === refNames.length) {\n refNames.push(s.stable.refName);\n refIndex.set(s.stable.refName, ref);\n }\n }\n refs.push(ref);\n starts.push(s.stable?.start ?? 0);\n ranks.push(s.stable?.rank ?? 0);\n }\n }\n const from = [];\n const to = [];\n const strands = [];\n const names = [];\n const walkStarts = [];\n const walkEnds = [];\n const offsets = [0];\n const steps = stepColumns();\n const before = new StopColumns();\n const after = new StopColumns();\n for (const raw of lines) {\n if (raw.startsWith(\"L\t\")) {\n const [, source, strand1, target, strand2] = trimCR(raw).split(\"\t\");\n if (source && target && strand2) {\n from.push(segments.of(source));\n to.push(segments.of(target));\n strands.push((strand1 === \"-\" ? 1 : 0) | (strand2 === \"-\" ? 2 : 0));\n }\n } else if (raw.startsWith(\"W\t\")) {\n const line = trimCR(raw);\n const w = walkFields(line);\n if (w) {\n names.push(`${w.sample}#${w.haplotype}#${w.contig}`);\n walkStarts.push(w.start === \"*\" ? 0 : +w.start);\n walkEnds.push(w.end === \"*\" ? -1 : +w.end);\n const end = readWalkBody(line, w.body, segments, steps);\n const tags = walkTags(line, end);\n if (tags === void 0) {\n return void 0;\n }\n if (tags.before) {\n before.push(tags.before);\n }\n if (tags.after) {\n after.push(tags.after);\n }\n if (steps.nodes.length === offsets.at(-1)) {\n return void 0;\n }\n offsets.push(steps.nodes.length);\n }\n }\n }\n if ([before.kinds.length, after.kinds.length].some(\n (n) => n > 0 && n < names.length\n )) {\n return void 0;\n }\n return {\n nodes: {\n names: segments.names,\n lengths: Int32Array.from(lengths),\n refs: Int32Array.from(refs),\n starts: Float64Array.from(starts),\n ranks: Int32Array.from(ranks),\n refNames\n },\n links: {\n from: Int32Array.from(from),\n to: Int32Array.from(to),\n strands: Uint8Array.from(strands)\n },\n walks: {\n names,\n starts: Float64Array.from(walkStarts),\n ends: Float64Array.from(walkEnds),\n offsets: Int32Array.from(offsets),\n steps: steps.nodes.data.slice(0, steps.nodes.length),\n reversed: steps.reversed.data.slice(0, steps.reversed.length),\n ...stopColumns(names.length, before, after)\n }\n };\n}\nfunction walkTags(line, from) {\n const out = {};\n for (const tag of from < line.length ? line.slice(from + 1).split(\"\t\") : []) {\n const value = tag.slice(5);\n if (tag.startsWith(`${START_STOP_TAG}:Z:`)) {\n out.before = parseStopTag(value);\n if (!out.before) {\n return void 0;\n }\n } else if (tag.startsWith(`${END_STOP_TAG}:Z:`)) {\n out.after = parseStopTag(value);\n if (!out.after) {\n return void 0;\n }\n }\n }\n return out;\n}\nfunction stopColumns(walks, before, after) {\n return {\n ...before.kinds.length === walks && walks > 0 ? { before: before.table() } : {},\n ...after.kinds.length === walks && walks > 0 ? { after: after.table() } : {}\n };\n}\n\nexport {\n gfaTables\n};\n", "// src/gaf/parseGaf.ts\nvar STEP = /([><])([^><]+)/g;\nfunction parseGafPath(column) {\n if (!column.startsWith(\">\") && !column.startsWith(\"<\")) {\n return void 0;\n }\n const steps = [];\n for (const [, arrow, name] of column.matchAll(STEP)) {\n steps.push({ name, strand: arrow === \">\" ? \"+\" : \"-\" });\n }\n return steps;\n}\nfunction parseGafLine(text) {\n const line = text.trimEnd();\n const columns = line.split(\"\t\");\n if (columns.length < 12 || line.startsWith(\"#\")) {\n return void 0;\n }\n const path = parseGafPath(columns[5]);\n if (!path) {\n return void 0;\n }\n let cs;\n let secondary = false;\n for (let i = 12; i < columns.length; i++) {\n const tag = columns[i];\n if (tag.startsWith(\"cs:Z:\")) {\n cs = tag.slice(5);\n } else if (tag === \"tp:A:S\") {\n secondary = true;\n }\n }\n return {\n name: columns[0],\n queryLength: +columns[1],\n queryStart: +columns[2],\n queryEnd: +columns[3],\n strand: columns[4] === \"-\" ? \"-\" : \"+\",\n path,\n pathLength: +columns[6],\n pathStart: +columns[7],\n pathEnd: +columns[8],\n matches: +columns[9],\n blockLength: +columns[10],\n mappingQuality: +columns[11],\n secondary,\n ...cs === void 0 ? {} : { cs }\n };\n}\nfunction parseGaf(text) {\n const records = [];\n for (const line of text.split(\"\\n\")) {\n const record = parseGafLine(line);\n if (record) {\n records.push(record);\n }\n }\n return records;\n}\nvar CS_OP = /:(\\d+)|=([A-Za-z]+)|\\*[a-zA-Z]([a-zA-Z])|\\+([A-Za-z]+)|-([A-Za-z]+)|~[a-z]{2}(\\d+)[a-z]{2}/g;\nfunction parseCs(cs) {\n const ops = [];\n for (const m of cs.matchAll(CS_OP)) {\n if (m[1] !== void 0) {\n ops.push({ op: \"match\", length: +m[1] });\n } else if (m[2] !== void 0) {\n ops.push({ op: \"match\", length: m[2].length });\n } else if (m[3] !== void 0) {\n ops.push({ op: \"substitution\", seq: m[3].toUpperCase() });\n } else if (m[4] !== void 0) {\n ops.push({ op: \"insertion\", seq: m[4].toUpperCase() });\n } else if (m[5] !== void 0) {\n ops.push({ op: \"deletion\", length: m[5].length });\n } else if (m[6] !== void 0) {\n ops.push({ op: \"match\", length: +m[6] });\n }\n }\n return ops;\n}\n\nexport {\n parseGafPath,\n parseGafLine,\n parseGaf,\n parseCs\n};\n"],
5
5
  "mappings": "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",
6
6
  "names": ["GT", "LT", "TAB", "ZERO", "NINE", "TABLE_TAG", "UNTABLED_RECORD", "trimCR", "line", "stepColumns", "Column", "SegmentIndex", "name", "i", "n", "readSegment", "sequence", "tags", "length", "refName", "start", "rank", "tag", "value", "key", "readWalkBody", "from", "segments", "steps", "reversed", "decimal", "finish", "end", "node", "ch", "walkFields", "fields", "at", "tab", "sample", "haplotype", "contig", "gfaTables", "text", "lines", "lengths", "refs", "starts", "ranks", "refNames", "refIndex", "raw", "s", "ref", "to", "strands", "names", "walkStarts", "walkEnds", "offsets", "before", "StopColumns", "after", "source", "strand1", "target", "strand2", "w", "walkTags", "stopColumns", "out", "START_STOP_TAG", "parseStopTag", "END_STOP_TAG", "walks", "STEP", "parseGafPath", "column", "steps", "arrow", "name", "parseGafLine", "text", "line", "columns", "path", "cs", "secondary", "i", "tag", "parseGaf", "records", "record", "CS_OP", "parseCs", "ops", "m"]
@@ -1,4 +1,4 @@
1
- import{Db as He,E as _e,F as Ce,G as Ee,Ga as y,Gb as W,H as Ae,Ha as ne,Hb as pe,Ib as ce,K as Oe,Ma as Be,Mb as $e,Na as re,Ob as Ke,Qa as Te,Sb as Ue,Ta as Ne,Ua as oe,Xb as Fe,Ya as ae,a as ge,b as K,bc as Xe,cb as We,dc as Ye,e as z,f as q,ib as Ge,kb as se,nb as De,t as Se,u as Me,v as Pe,w as ee,xa as Ie,y as Le,yb as ie,z as ve,zb as le}from"./chunk-55DIX25J.js";import{c as ye,j as T,m as Z,n as xe,o as Q,z as te}from"./chunk-S75MFZDE.js";import{B as J,l as P,n as F,o as j}from"./chunk-Q3BXNKEL.js";import{b as L,c as N}from"./chunk-JSRGX4TC.js";import{e as $}from"./chunk-NDRLCGPC.js";import{a as me,c as E,d as we,e as ke,f as U,g as Re}from"./chunk-YU7T5WOQ.js";import{a as C,b as p,c as R,d as m}from"./chunk-JMBDTNUR.js";var ct="data-pans-with-drawing";function Ve(e,t){return{position:"absolute",left:0,top:0,pointerEvents:"none",overflow:t,zIndex:e}}var S=m(function({model:t,zIndex:n,overflow:o="hidden",testId:r,pansWithDrawing:s,children:l}){return p("svg",{style:{...Ve(n,o),userSelect:s?"none":void 0},width:t.paneWidth,height:t.canvasHeight,"data-testid":r,...s?{[ct]:""}:{},children:l})}),ze=m(function({model:t,children:n}){let{scaleX:o,scaleY:r,translateX:s,translateY:l}=t;return p("g",{transform:`translate(${s} ${l}) scale(${o} ${r})`,children:n})});function A({model:e,zIndex:t,shown:n=!0,testId:o,paint:r}){let s=Re(null);return we(()=>{if(n)return ge(()=>{let l=s.current,i=l?.getContext("2d");if(l&&i){let c=e.paneWidth,d=e.canvasHeight;Ie(Ye());let u=He(l,c,d);i.setTransform(u,0,0,u,0,0),i.clearRect(0,0,c,d),r(i,u)}})},[e,n,r]),p("canvas",{ref:s,"data-testid":n?o:void 0,style:{...Ve(t),display:n?"block":"none"}})}var ut=m(function({model:t}){let{bubbleHalos:n,hoveredBubble:o}=t;if(n.length===0)return null;let r=t.contigThickness*$e;return p(S,{model:t,zIndex:2,testId:"graph-bubble-halos",children:p(ze,{model:t,children:n.filter(s=>!s.whole&&(!s.tick||o&&L(s.bubble,o))).map(s=>p("path",{d:s.path,fill:"none",stroke:y[s.kind],strokeOpacity:o&&L(s.bubble,o)?.45:t.bubbleFaded(s)?.06:.22,strokeWidth:r,strokeLinecap:"round",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"},N(s.bubble)))})})}),on=ut;var w=18,G=48,bt="rgba(160, 160, 160, 0.45)",ft=6,je=7,ht="#b8b8c0",ue=Me-4;function Y(e){return e.kind==="fill"?e.width??w:w}var M=e=>[{offset:0,color:e}];function X(e,t,n,o=w){return{key:e,label:n,swatch:{kind:"fill",stops:M(t),width:o}}}function qe(e){return e.flatMap((t,n)=>[{offset:n/e.length,color:t},{offset:(n+1)/e.length,color:t}])}function gt(e){let t=e.openBubble;if(!t)return[];let n=e.bubbleHalos.find(o=>L(o.bubble,t));return[{key:"open",label:`open: ${n?.label??"bubble"}`,swatch:n?{kind:"halo",color:y[n.kind]}:{kind:"blank"},closesBubble:!0}]}function mt(e){let t=e.walkLift?void 0:e.referenceRampDomain;if(!t)return[];let n=Math.round(t.start),o=Math.round(t.end);return[{key:"ramp",label:`${n.toLocaleString("en-US")}-${o.toLocaleString("en-US")} (${J(o-n)})`,swatch:{kind:"fill",stops:T,width:G}},...e.referenceRampDrawsOffReference?[X("off",Q,"off the reference",G)]:[]]}function wt(e){let t=e.walkLift;if(t)return t.walks.map(r=>te(r.encoding));if(e.effectiveColorScheme==="reference-position")return[T];let n=e.referenceStripBlocks.map(r=>r.colors[0]).filter((r,s,l)=>r!==l[s-1]),o=Math.min(ft,n.length);return[o===0?M(Z):Array.from({length:o},(r,s)=>({offset:o>1?s/(o-1):0,color:n[o>1?Math.round(s*(n.length-1)/(o-1)):0]}))]}function kt(e){if(!e.referenceStripShown)return[];let t=(e.walkLift?.walks.length??0)>1;return[{key:"strip",label:`top strip: reference${t?", a row per walk":""}`,swatch:{kind:"bands",bands:wt(e)}},...e.referenceStripFaded?[X("strip-faded",Z,e.walkLift?`reference not on ${t?"that row's walk":e.liftedWalksLabel}`:"reference outside the open bubble")]:[],...e.referenceStripOverhangs?[{key:"overhang",label:"graph runs past this edge",swatch:{kind:"overhang"}}]:[]]}function Rt(e){let t=new Map;for(let n of e.bubbleHalos)if(!n.whole){let o=y[n.kind],r=t.get(o)??new Set;r.add(ne[n.kind]),t.set(o,r)}return[...t].map(([n,o])=>{let r=[...o].join(" or ");return{key:`halo-${n}`,label:r===ne.superbubble?r:`${r} bubble`,swatch:{kind:"halo",color:n}}})}function yt(e){return e.genePins.some(t=>t.exonsByNode.length>0)?[{key:"exon",label:"exon",swatch:{kind:"outline",color:W,stroke:2,radius:5,height:8}}]:[]}function xt(e){let t=e.foldNote;return t?[{key:"fold",label:t}]:[]}function St(e){return e.pathLegend.map(({name:t,label:n,color:o})=>({key:`path-${t}`,label:n,swatch:{kind:"line",color:o}}))}function v(e,t,n){return{key:e,label:n,swatch:{kind:"fill",stops:t,height:je,square:!0}}}function Mt(e){let{roles:t,haplotypeTube:n,bundled:o,values:r,logWidths:s,foldBp:l,forwardReads:i,reverseReads:c,substitution:d,insertion:u,deletion:h}=e.tubeMapKeys,f=e.readsShown,a=[];if(r){a.push(v("value-reference",M(se),"reference"));for(let{value:b,color:g}of r)a.push(v(`value-${b}`,M(g),b))}return t&&a.push(v("ref",M(se),"reference"),v("hap",M(n),o?"shared route, \xD7n haplotypes":"haplotype")),i&&a.push(v("fwd",qe(z),"read on the forward strand")),c&&a.push(v("rev",qe(q),"read on the reverse strand")),f&&f.shown<f.total&&a.push({key:"sampled",label:`${f.shown.toLocaleString("en-US")} of ${f.total.toLocaleString("en-US")} reads shown`,swatch:{kind:"blank"}}),d&&a.push({key:"sub",label:"read mismatch",swatch:{kind:"glyph",char:"A"}}),u&&a.push({key:"ins",label:"read insertion",swatch:{kind:"glyph",char:"*"}}),h&&a.push(v("del",M("grey"),"read deletion")),l!==void 0&&a.push({key:"tube-fold",label:`haplotype variant < ${J(l)}`,swatch:{kind:"tick",color:Ne(),height:je,backing:ht}}),s&&a.push({key:"log",label:"width grows with log of length",swatch:{kind:"bracket"}}),a}function Pt(e){return e.kind==="gene"?{kind:"outline",color:Se,stroke:1.5,radius:0,height:ue}:{kind:"fill",stops:e.kind==="bar"&&e.ramp?T:M(e.fill),height:e.kind==="gap"?e.px:ue}}function Lt(e){let t=e.walkRowBars;if(!t)return[];let n=[t.reference,...t.rows].flatMap(r=>r.call??[]),o=(r,s,l)=>({key:r,label:l,swatch:{kind:"tick",color:s,height:ue}});return[..._e(t,{ramp:e.referenceRampDomain,genes:e.walkRowGeneKey}).map(r=>({key:`rows-${r.label}`,label:r.label,swatch:r.note?void 0:Pt(r.swatch)})),...n.some(r=>r.spanningReads!==0)?[o("call",Ce,"allele length called for this walk")]:[],...n.some(r=>r.spanningReads===0)?[o("unbacked",Ee,"called with no read spanning it")]:[],...n.some(r=>r.agrees===!1)?[o("disagrees",Ae,`walk and call over ${Math.round(.1*100)}% apart`)]:[]]}function vt(e,t){let n=Ue(t,e.walkReference);return{key:`walk-${t.name}`,strong:e.walkLabel(t.name),label:n.delta+n.gaps+n.reversed,swatch:{kind:"fill",stops:te(t.encoding),width:n.shades?G:w},under:n.scale,title:n.hover,walk:t}}function Je(e,t,n=w){return[...e.liftPaintsOffReference?[X("lift-off",Q,"off the reference",n)]:[],X("faded",bt,t,n)]}function _t(e){let t=e.walkLift;if(!t||e.facetPanels)return[];let n=t.walks.map(r=>vt(e,r)),o=n.some(r=>Y(r.swatch)===G)?G:w;return[...n,...Je(e,`not on ${e.liftedWalksLabel}`,o)]}function zn(e){return e.facetPanels?Je(e,"not on the panel's walk"):[]}function qn(e){return[{testid:"graph-open-bubble-legend",rows:gt(e)},{testid:"graph-ramp-legend",rows:mt(e)},{testid:"graph-reference-strip-legend",rows:kt(e)},{testid:"graph-halo-legend",rows:Rt(e)},{testid:"graph-gene-legend",rows:yt(e)},{testid:"graph-fold-legend",rows:xt(e)},{testid:"graph-path-legend",rows:St(e)},{testid:"graph-tube-map-legend",rows:Mt(e)},{testid:"graph-walk-rows-legend",rows:Lt(e)},{testid:"graph-walk-readout",rows:_t(e)}].filter(t=>t.rows.length>0)}function Ct(e){return e==="class"?"className":/^(data|aria)-/.test(e)?e:e.replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}function Ze(e,t){if(typeof e=="string")return e;let n={key:t};for(let[o,r]of Object.entries(e.attrs))r!==void 0&&(n[Ct(o)]=r);return me(e.tag,n,e.children.map(Ze))}function O(){return ke().replaceAll(/[^\w-]/g,"")}function D({el:e}){return Ze(e,0)}function Qe({id:e,x:t,y:n,stops:o,width:r,height:s,square:l}){let i=c=>p("rect",{x:t,y:n,width:r,height:s,rx:l?0:2,fill:c});return o.length>1?R(C,{children:[p("defs",{children:p("linearGradient",{id:e,children:o.map((c,d)=>p("stop",{offset:c.offset,stopColor:c.color},d))})}),i(`url(#${e})`)]}):i(o[0].color)}var et=e=>e.length>1?3:4;function de(e){switch(e.kind){case"fill":return e.height??8;case"bands":return et(e.bands)*e.bands.length;case"line":return 3;case"halo":case"overhang":return 10;case"outline":case"tick":return e.height;case"glyph":return 15;case"bracket":return 7;case"blank":return 0}}function Et({swatch:e,x:t,id:n}){switch(e.kind){case"fill":{let r=de(e);return p(Qe,{id:n,x:t,y:-5-r/2,stops:e.stops,width:Y(e),height:r,square:e.square})}case"bands":{let r=et(e.bands),s=-5-de(e)/2;return p(C,{children:e.bands.map((l,i)=>p(Qe,{id:`${n}-${i}`,x:t,y:s+i*r,stops:l,width:w,height:r,square:!0},i))})}case"line":return p("rect",{x:t,y:-5-1.5,width:w,height:3,rx:2,fill:e.color});case"halo":return p("line",{x1:t+5,x2:t+13,y1:-5,y2:-5,stroke:e.color,strokeOpacity:.35,strokeWidth:8,strokeLinecap:"round"});case"outline":{let r=e.stroke/2;return p("rect",{x:t+r,y:-5-e.height/2+r,width:w-e.stroke,height:e.height-e.stroke,rx:Math.max(0,e.radius-r),fill:"none",stroke:e.color,strokeWidth:e.stroke})}case"overhang":return p("path",{transform:`translate(${t} -10)`,d:"M0,5 L8,0 L8,10 Z M18,5 L10,0 L10,10 Z",fill:"#18181c"});case"glyph":return p("text",{x:t+w/2,y:-1,textAnchor:"middle",fontFamily:"monospace",fontSize:12,fill:"currentColor",children:e.char});case"tick":{let r=-5-e.height/2;return R(C,{children:[e.backing?p("rect",{x:t,y:r,width:w,height:e.height,fill:e.backing}):null,p("rect",{x:t+w/2-1,y:r,width:2,height:e.height,fill:e.color})]})}case"bracket":return p("path",{transform:`translate(${t} ${-5-3.5})`,d:`M0.5,6 V1.5 H5.5 V6 M8.5,6 V1.5 H${w-.5} V6`,fill:"none",stroke:Be()});case"blank":return null}}function nr({swatch:e}){let t=O(),n=de(e);return p("svg",{width:Y(e),height:n,overflow:"visible",style:{flex:"none"},children:p("g",{transform:`translate(0 ${n/2+5})`,children:p(Et,{swatch:e,x:0,id:t})})})}var At=m(function({model:t}){let n=`exon-outline-${O()}`,o=U(()=>K(()=>{let{genePins:h,walkLift:f}=t,a=f?void 0:t.openBubbleFocus,b=a?h.map(g=>({...g,exonsByNode:g.exonsByNode.filter(k=>a.nodeIds.has(k.nodeId))})):h;return pe(b,t.nodeInk.halfWidthPx,f)}),[t]),{scaleX:r,scaleY:s,translateX:l,translateY:i,paneWidth:c,canvasHeight:d}=t,u=ce(o.get(),{id:n,width:c,height:d,transform:`translate(${l} ${i}) scale(${r} ${s})`});return u?p(S,{model:t,zIndex:2,testId:"graph-gene-pins",children:p(D,{el:u})}):null}),ur=At;function tt(e,t,n){return{x:e-n/2,y:t-P-F+2,width:n,height:P+F*2-2}}function nt(e,t,n){let o=tt(e.x,e.y,e.w);return t>=o.x&&t<=o.x+o.width&&n>=o.y&&n<=o.y+o.height}function H({x:e,y:t,w:n,text:o,note:r,color:s,edge:l=s,italic:i,dimmed:c,title:d,testId:u,onClick:h,onHover:f}){return R("g",{style:{pointerEvents:h||f?"auto":"none",cursor:h?"pointer":void 0,opacity:c?.35:1},"data-testid":u,onClick:h,onMouseEnter:()=>{f?.(!0)},onMouseLeave:()=>{f?.(!1)},...h&&{role:"button",tabIndex:0,"aria-label":(d??o).replaceAll(`
1
+ import{Cb as He,E as _e,F as Ce,Fa as y,Fb as W,G as Ee,Ga as ne,Gb as pe,H as Ae,Hb as ce,K as Oe,La as Be,Lb as $e,Ma as re,Nb as Ke,Pa as Te,Rb as Ue,Sa as Ne,Ta as oe,Wb as Fe,Xa as ae,a as ge,ac as Xe,b as K,bb as We,cc as Ye,e as z,f as q,hb as Ge,jb as se,mb as De,t as Se,u as Me,v as Pe,w as ee,xa as Ie,xb as ie,y as Le,yb as le,z as ve}from"./chunk-WLRRI35A.js";import{D as te,f as ye,m as T,p as Z,q as xe,r as Q}from"./chunk-VZQ6VOUP.js";import{D as J,n as P,p as F,q as j}from"./chunk-S333HOG5.js";import{b as L,c as N}from"./chunk-P3FBI5ML.js";import{e as $}from"./chunk-NDRLCGPC.js";import{a as me,c as E,d as we,e as ke,f as U,g as Re}from"./chunk-YU7T5WOQ.js";import{a as C,b as p,c as R,d as m}from"./chunk-JMBDTNUR.js";var ct="data-pans-with-drawing";function Ve(e,t){return{position:"absolute",left:0,top:0,pointerEvents:"none",overflow:t,zIndex:e}}var S=m(function({model:t,zIndex:n,overflow:o="hidden",testId:r,pansWithDrawing:s,children:l}){return p("svg",{style:{...Ve(n,o),userSelect:s?"none":void 0},width:t.paneWidth,height:t.canvasHeight,"data-testid":r,...s?{[ct]:""}:{},children:l})}),ze=m(function({model:t,children:n}){let{scaleX:o,scaleY:r,translateX:s,translateY:l}=t;return p("g",{transform:`translate(${s} ${l}) scale(${o} ${r})`,children:n})});function A({model:e,zIndex:t,shown:n=!0,testId:o,paint:r}){let s=Re(null);return we(()=>{if(n)return ge(()=>{let l=s.current,i=l?.getContext("2d");if(l&&i){let c=e.paneWidth,d=e.canvasHeight;Ie(Ye());let u=He(l,c,d);i.setTransform(u,0,0,u,0,0),i.clearRect(0,0,c,d),r(i,u)}})},[e,n,r]),p("canvas",{ref:s,"data-testid":n?o:void 0,style:{...Ve(t),display:n?"block":"none"}})}var ut=m(function({model:t}){let{bubbleHalos:n,hoveredBubble:o}=t;if(n.length===0)return null;let r=t.contigThickness*$e;return p(S,{model:t,zIndex:2,testId:"graph-bubble-halos",children:p(ze,{model:t,children:n.filter(s=>!s.whole&&(!s.tick||o&&L(s.bubble,o))).map(s=>p("path",{d:s.path,fill:"none",stroke:y[s.kind],strokeOpacity:o&&L(s.bubble,o)?.45:t.bubbleFaded(s)?.06:.22,strokeWidth:r,strokeLinecap:"round",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke"},N(s.bubble)))})})}),on=ut;var w=18,G=48,bt="rgba(160, 160, 160, 0.45)",ft=6,je=7,ht="#b8b8c0",ue=Me-4;function Y(e){return e.kind==="fill"?e.width??w:w}var M=e=>[{offset:0,color:e}];function X(e,t,n,o=w){return{key:e,label:n,swatch:{kind:"fill",stops:M(t),width:o}}}function qe(e){return e.flatMap((t,n)=>[{offset:n/e.length,color:t},{offset:(n+1)/e.length,color:t}])}function gt(e){let t=e.openBubble;if(!t)return[];let n=e.bubbleHalos.find(o=>L(o.bubble,t));return[{key:"open",label:`open: ${n?.label??"bubble"}`,swatch:n?{kind:"halo",color:y[n.kind]}:{kind:"blank"},closesBubble:!0}]}function mt(e){let t=e.walkLift?void 0:e.referenceRampDomain;if(!t)return[];let n=Math.round(t.start),o=Math.round(t.end);return[{key:"ramp",label:`${n.toLocaleString("en-US")}-${o.toLocaleString("en-US")} (${J(o-n)})`,swatch:{kind:"fill",stops:T,width:G}},...e.referenceRampDrawsOffReference?[X("off",Q,"off the reference",G)]:[]]}function wt(e){let t=e.walkLift;if(t)return t.walks.map(r=>te(r.encoding));if(e.effectiveColorScheme==="reference-position")return[T];let n=e.referenceStripBlocks.map(r=>r.colors[0]).filter((r,s,l)=>r!==l[s-1]),o=Math.min(ft,n.length);return[o===0?M(Z):Array.from({length:o},(r,s)=>({offset:o>1?s/(o-1):0,color:n[o>1?Math.round(s*(n.length-1)/(o-1)):0]}))]}function kt(e){if(!e.referenceStripShown)return[];let t=(e.walkLift?.walks.length??0)>1;return[{key:"strip",label:`top strip: reference${t?", a row per walk":""}`,swatch:{kind:"bands",bands:wt(e)}},...e.referenceStripFaded?[X("strip-faded",Z,e.walkLift?`reference not on ${t?"that row's walk":e.liftedWalksLabel}`:"reference outside the open bubble")]:[],...e.referenceStripOverhangs?[{key:"overhang",label:"graph runs past this edge",swatch:{kind:"overhang"}}]:[]]}function Rt(e){let t=new Map;for(let n of e.bubbleHalos)if(!n.whole){let o=y[n.kind],r=t.get(o)??new Set;r.add(ne[n.kind]),t.set(o,r)}return[...t].map(([n,o])=>{let r=[...o].join(" or ");return{key:`halo-${n}`,label:r===ne.superbubble?r:`${r} bubble`,swatch:{kind:"halo",color:n}}})}function yt(e){return e.genePins.some(t=>t.exonsByNode.length>0)?[{key:"exon",label:"exon",swatch:{kind:"outline",color:W,stroke:2,radius:5,height:8}}]:[]}function xt(e){let t=e.foldNote;return t?[{key:"fold",label:t}]:[]}function St(e){return e.pathLegend.map(({name:t,label:n,color:o})=>({key:`path-${t}`,label:n,swatch:{kind:"line",color:o}}))}function v(e,t,n){return{key:e,label:n,swatch:{kind:"fill",stops:t,height:je,square:!0}}}function Mt(e){let{roles:t,haplotypeTube:n,bundled:o,values:r,logWidths:s,foldBp:l,forwardReads:i,reverseReads:c,substitution:d,insertion:u,deletion:h}=e.tubeMapKeys,f=e.readsShown,a=[];if(r){a.push(v("value-reference",M(se),"reference"));for(let{value:b,color:g}of r)a.push(v(`value-${b}`,M(g),b))}return t&&a.push(v("ref",M(se),"reference"),v("hap",M(n),o?"shared route, \xD7n haplotypes":"haplotype")),i&&a.push(v("fwd",qe(z),"read on the forward strand")),c&&a.push(v("rev",qe(q),"read on the reverse strand")),f&&f.shown<f.total&&a.push({key:"sampled",label:`${f.shown.toLocaleString("en-US")} of ${f.total.toLocaleString("en-US")} reads shown`,swatch:{kind:"blank"}}),d&&a.push({key:"sub",label:"read mismatch",swatch:{kind:"glyph",char:"A"}}),u&&a.push({key:"ins",label:"read insertion",swatch:{kind:"glyph",char:"*"}}),h&&a.push(v("del",M("grey"),"read deletion")),l!==void 0&&a.push({key:"tube-fold",label:`haplotype variant < ${J(l)}`,swatch:{kind:"tick",color:Ne(),height:je,backing:ht}}),s&&a.push({key:"log",label:"width grows with log of length",swatch:{kind:"bracket"}}),a}function Pt(e){return e.kind==="gene"?{kind:"outline",color:Se,stroke:1.5,radius:0,height:ue}:{kind:"fill",stops:e.kind==="bar"&&e.ramp?T:M(e.fill),height:e.kind==="gap"?e.px:ue}}function Lt(e){let t=e.walkRowBars;if(!t)return[];let n=[t.reference,...t.rows].flatMap(r=>r.call??[]),o=(r,s,l)=>({key:r,label:l,swatch:{kind:"tick",color:s,height:ue}});return[..._e(t,{ramp:e.referenceRampDomain,genes:e.walkRowGeneKey}).map(r=>({key:`rows-${r.label}`,label:r.label,swatch:r.note?void 0:Pt(r.swatch)})),...n.some(r=>r.spanningReads!==0)?[o("call",Ce,"allele length called for this walk")]:[],...n.some(r=>r.spanningReads===0)?[o("unbacked",Ee,"called with no read spanning it")]:[],...n.some(r=>r.agrees===!1)?[o("disagrees",Ae,`walk and call over ${Math.round(.1*100)}% apart`)]:[]]}function vt(e,t){let n=Ue(t,e.walkReference);return{key:`walk-${t.name}`,strong:e.walkLabel(t.name),label:n.delta+n.gaps+n.reversed,swatch:{kind:"fill",stops:te(t.encoding),width:n.shades?G:w},under:n.scale,title:n.hover,walk:t}}function Je(e,t,n=w){return[...e.liftPaintsOffReference?[X("lift-off",Q,"off the reference",n)]:[],X("faded",bt,t,n)]}function _t(e){let t=e.walkLift;if(!t||e.facetPanels)return[];let n=t.walks.map(r=>vt(e,r)),o=n.some(r=>Y(r.swatch)===G)?G:w;return[...n,...Je(e,`not on ${e.liftedWalksLabel}`,o)]}function zn(e){return e.facetPanels?Je(e,"not on the panel's walk"):[]}function qn(e){return[{testid:"graph-open-bubble-legend",rows:gt(e)},{testid:"graph-ramp-legend",rows:mt(e)},{testid:"graph-reference-strip-legend",rows:kt(e)},{testid:"graph-halo-legend",rows:Rt(e)},{testid:"graph-gene-legend",rows:yt(e)},{testid:"graph-fold-legend",rows:xt(e)},{testid:"graph-path-legend",rows:St(e)},{testid:"graph-tube-map-legend",rows:Mt(e)},{testid:"graph-walk-rows-legend",rows:Lt(e)},{testid:"graph-walk-readout",rows:_t(e)}].filter(t=>t.rows.length>0)}function Ct(e){return e==="class"?"className":/^(data|aria)-/.test(e)?e:e.replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}function Ze(e,t){if(typeof e=="string")return e;let n={key:t};for(let[o,r]of Object.entries(e.attrs))r!==void 0&&(n[Ct(o)]=r);return me(e.tag,n,e.children.map(Ze))}function O(){return ke().replaceAll(/[^\w-]/g,"")}function D({el:e}){return Ze(e,0)}function Qe({id:e,x:t,y:n,stops:o,width:r,height:s,square:l}){let i=c=>p("rect",{x:t,y:n,width:r,height:s,rx:l?0:2,fill:c});return o.length>1?R(C,{children:[p("defs",{children:p("linearGradient",{id:e,children:o.map((c,d)=>p("stop",{offset:c.offset,stopColor:c.color},d))})}),i(`url(#${e})`)]}):i(o[0].color)}var et=e=>e.length>1?3:4;function de(e){switch(e.kind){case"fill":return e.height??8;case"bands":return et(e.bands)*e.bands.length;case"line":return 3;case"halo":case"overhang":return 10;case"outline":case"tick":return e.height;case"glyph":return 15;case"bracket":return 7;case"blank":return 0}}function Et({swatch:e,x:t,id:n}){switch(e.kind){case"fill":{let r=de(e);return p(Qe,{id:n,x:t,y:-5-r/2,stops:e.stops,width:Y(e),height:r,square:e.square})}case"bands":{let r=et(e.bands),s=-5-de(e)/2;return p(C,{children:e.bands.map((l,i)=>p(Qe,{id:`${n}-${i}`,x:t,y:s+i*r,stops:l,width:w,height:r,square:!0},i))})}case"line":return p("rect",{x:t,y:-5-1.5,width:w,height:3,rx:2,fill:e.color});case"halo":return p("line",{x1:t+5,x2:t+13,y1:-5,y2:-5,stroke:e.color,strokeOpacity:.35,strokeWidth:8,strokeLinecap:"round"});case"outline":{let r=e.stroke/2;return p("rect",{x:t+r,y:-5-e.height/2+r,width:w-e.stroke,height:e.height-e.stroke,rx:Math.max(0,e.radius-r),fill:"none",stroke:e.color,strokeWidth:e.stroke})}case"overhang":return p("path",{transform:`translate(${t} -10)`,d:"M0,5 L8,0 L8,10 Z M18,5 L10,0 L10,10 Z",fill:"#18181c"});case"glyph":return p("text",{x:t+w/2,y:-1,textAnchor:"middle",fontFamily:"monospace",fontSize:12,fill:"currentColor",children:e.char});case"tick":{let r=-5-e.height/2;return R(C,{children:[e.backing?p("rect",{x:t,y:r,width:w,height:e.height,fill:e.backing}):null,p("rect",{x:t+w/2-1,y:r,width:2,height:e.height,fill:e.color})]})}case"bracket":return p("path",{transform:`translate(${t} ${-5-3.5})`,d:`M0.5,6 V1.5 H5.5 V6 M8.5,6 V1.5 H${w-.5} V6`,fill:"none",stroke:Be()});case"blank":return null}}function nr({swatch:e}){let t=O(),n=de(e);return p("svg",{width:Y(e),height:n,overflow:"visible",style:{flex:"none"},children:p("g",{transform:`translate(0 ${n/2+5})`,children:p(Et,{swatch:e,x:0,id:t})})})}var At=m(function({model:t}){let n=`exon-outline-${O()}`,o=U(()=>K(()=>{let{genePins:h,walkLift:f}=t,a=f?void 0:t.openBubbleFocus,b=a?h.map(g=>({...g,exonsByNode:g.exonsByNode.filter(k=>a.nodeIds.has(k.nodeId))})):h;return pe(b,t.nodeInk.halfWidthPx,f)}),[t]),{scaleX:r,scaleY:s,translateX:l,translateY:i,paneWidth:c,canvasHeight:d}=t,u=ce(o.get(),{id:n,width:c,height:d,transform:`translate(${l} ${i}) scale(${r} ${s})`});return u?p(S,{model:t,zIndex:2,testId:"graph-gene-pins",children:p(D,{el:u})}):null}),ur=At;function tt(e,t,n){return{x:e-n/2,y:t-P-F+2,width:n,height:P+F*2-2}}function nt(e,t,n){let o=tt(e.x,e.y,e.w);return t>=o.x&&t<=o.x+o.width&&n>=o.y&&n<=o.y+o.height}function H({x:e,y:t,w:n,text:o,note:r,color:s,edge:l=s,italic:i,dimmed:c,title:d,testId:u,onClick:h,onHover:f}){return R("g",{style:{pointerEvents:h||f?"auto":"none",cursor:h?"pointer":void 0,opacity:c?.35:1},"data-testid":u,onClick:h,onMouseEnter:()=>{f?.(!0)},onMouseLeave:()=>{f?.(!1)},...h&&{role:"button",tabIndex:0,"aria-label":(d??o).replaceAll(`
2
2
  `,", "),onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),h())},onFocus:()=>{f?.(!0)},onBlur:()=>{f?.(!1)}},children:[d?p("title",{children:d}):null,p("rect",{...tt(e,t,n),rx:3,fill:"rgba(255,255,255,0.85)",stroke:l,strokeWidth:1}),R("text",{x:e,y:t,fontSize:P,fontFamily:"sans-serif",fontStyle:i?"italic":void 0,fontWeight:i?600:void 0,fill:s,textAnchor:"middle",children:[o,r?p("tspan",{fontStyle:"normal",fontWeight:"normal",children:r}):null]})]})}var rt="#1c1c22",be=9,fe=3;function Or({genes:e},t,n){let o=e.find(l=>nt(l,t,n))?.item;if(!o)return;let{gene:r}=o,s=Ke(o);return{label:r.name,readout:`${r.refName}:${r.start.toLocaleString()}-${r.end.toLocaleString()}${s?`, ${s} in the cut`:""}`}}var Ot=m(function({model:t}){let{bubbles:n,genes:o,ticks:r}=t.overlayLabels;if(n.length+o.length+r.length===0)return null;let{scaleY:s,translateY:l,contigThickness:i,hoveredBubble:c}=t,d=c?r.find(a=>L(a.item.bubble,c)):void 0,u=a=>r[Number(a.getAttribute("data-tick"))],h=a=>t.bubbleFaded(a),f=a=>t.bubbleIsOpen(a.bubble);return R(S,{model:t,zIndex:3,testId:"graph-label-layer",pansWithDrawing:!0,children:[p("g",{"data-testid":"graph-bubble-ticks",onClick:a=>{let b=u(a.target);b&&t.toggleBubble(b.item.bubble)},onMouseOver:a=>{let b=u(a.target);b&&t.setHoveredBubble(b.item.bubble)},onMouseOut:()=>{$(t)&&t.setHoveredBubble(null)},onFocus:a=>{let b=u(a.target);b&&t.setHoveredBubble(b.item.bubble)},onBlur:()=>{$(t)&&t.setHoveredBubble(null)},onKeyDown:a=>{let b=u(a.target);b&&(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),t.toggleBubble(b.item.bubble))},children:r.map(({item:a,x:b,y:g},k)=>p("rect",{"data-tick":k,role:"button",tabIndex:0,"aria-label":`${a.label}, ${f(a)?"close":"open"} bubble`,x:b-fe/2,y:g-be,width:fe,height:be,rx:fe/2,fill:y[a.kind],opacity:h(a)?.35:1,style:{pointerEvents:"all",cursor:"pointer"}},N(a.bubble)))}),o.map(({item:a,x:b,y:g,w:k,text:I})=>{let{gene:x}=a;return R("g",{children:[p("line",{x1:b,x2:b,y1:g-P-2,y2:a.at.y*s+l+i/2,stroke:rt,strokeWidth:.8,strokeOpacity:.6}),p(H,{x:b,y:g,w:k,text:x.name,note:I.slice(x.name.length)||void 0,color:rt,edge:W,italic:!0,testId:"graph-gene-pin-label"})]},`${x.name}-${x.start}`)}),n.map(({item:a,x:b,y:g,w:k,text:I})=>p(H,{x:b,y:g,w:k,text:I,color:y[a.kind],dimmed:h(a),title:`${a.label}
3
3
  ${a.bubble.segmentCount} segments${a.bubble.covering?"":f(a)?" \xB7 click to close":" \xB7 click to open"}`,testId:"graph-bubble-halo-label",onClick:a.bubble.covering?void 0:()=>{t.toggleBubble(a.bubble)},onHover:x=>{$(t)&&t.setHoveredBubble(x?a.bubble:null)}},N(a.bubble))),d?p(H,{x:d.x,y:d.y-be-4,w:j(d.item.label),text:d.item.label,color:y[d.item.kind],testId:"graph-bubble-tick-label"}):null]})}),Ir=Ot;function It(e,t,{lit:n,dpr:o}){let r=t.hostBpFrame;r&&Xe(e,t.referenceStripBlocks,r,{width:t.paneWidth,lit:n,dpr:o})}var Bt=m(function({model:t}){let n=E((o,r)=>{It(o,t,{lit:t.referenceStripLit,dpr:r})},[t]);return p(A,{model:t,zIndex:5,shown:t.referenceStripShown,testId:"graph-reference-strip",paint:n})}),Hr=Bt;var Tt=.45;function Nt(e,t,{highlightNode:n}){let o=t.tubeMapPicture,r=t.tubeMapFrame;if(!o||!r)return;let s=t.paneWidth,l=t.tubeMapPanelViews;if(l){Wt(e,t,l,n);return}let i={...r,width:s,highlightNode:n,tubeColors:t.tubeMapTubeColors,nodeColors:t.tubeMapNodeColors};ae(e,o,i);let c=t.layoutResult?.tubeMap;c&&(ie(e,o,c.graph,i),le(e,c,i)),oe(e,t.tubeMapDeviations,i),Te(e,t.tubeMapConnectors,t.connectorZoneBottom,i);let{bounds:d}=o;Fe(e,t.tubeMapGenes,i,r.y(d.minY)-2);let u=t.tubeMapRulerBoxes;u&&re(e,u,i,r.y(d.maxY)+4,t.layoutResult?.referenceAxis)}function Wt(e,t,n,o){let r=t.paneWidth;for(let i of n){if(i.bottom<0||i.titleTop>t.canvasHeight)continue;let c={...i.frame,width:r,highlightNode:o,tubeColors:i.tubeColors,nodeColors:i.nodeColors};ae(e,i.picture,c),ie(e,i.picture,i.panel.result.tubeMap.graph,c),le(e,i.panel.result.tubeMap,c),e.globalAlpha=Tt,oe(e,i.deviations,c),e.globalAlpha=1,e.strokeStyle="rgba(0,0,0,0.15)",e.lineWidth=1,e.beginPath(),e.moveTo(0,Math.round(i.titleTop)+.5),e.lineTo(r,Math.round(i.titleTop)+.5),e.stroke(),e.font=De,e.textAlign="left",e.textBaseline="top",e.fillStyle="rgba(0,0,0,0.85)",e.fillText(i.label,6,i.titleTop+4)}let s=n.at(-1),l=t.tubeMapPanelRulerBoxes;s&&l&&re(e,l,{...s.frame,width:r},s.bottom+4,!0)}var Gt=m(function({model:t}){let n=E(o=>{Nt(o,t,{highlightNode:t.selectedNode})},[t]);return p(A,{model:t,zIndex:1,shown:!!t.tubeMapPicture,testId:"graph-tube-map",paint:n})}),Zr=Gt;var _=JBrowseExports["@jbrowse/render-core/marks"],Dt=e=>_!=null&&e in Object(_)?_[e]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+e+"' from '@jbrowse/render-core/marks' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:e});var ot=Dt("spanMark");var to=_&&_.__esModule?_.default:_;function st(e){if(e.startsWith("#")){let r=Number.parseInt(e.slice(1),16);return[r>>16&255,r>>8&255,r&255]}let[t=0,n=0,o=0]=e.match(/[\d.]+/g).map(Number);return e.startsWith("hsl")?xe(t,n/100,o/100).map(r=>r*255):[t,n,o]}var it=([e,t,n])=>ye(Math.round(e),Math.round(t),Math.round(n),255),at=new Map;function Ht(e){let t=at.get(e);return t===void 0&&(t=it(st(e)),at.set(e,t)),t}function $t(e,t,n){let o=e.start+e.bp,r=ve(e,t);if("fill"in r)return[[e.start,o,Ht(r.fill)]];let s=r.stops.map(st),l=r.stops.map(u=>Number(/[\d.]+/.exec(u)[0])),i=Math.abs(l.at(-1)-l[0]),c=Math.max(1,Math.min(Math.ceil(e.bp*n),Math.ceil(i),e.bp)),d=[];for(let u=0;u<c;u++){let h=(u+.5)/c*(s.length-1),f=Math.min(Math.floor(h),s.length-2),a=s[f],b=s[f+1],g=h-f;d.push([Math.round(e.start+e.bp*u/c),Math.round(e.start+e.bp*(u+1)/c),it([0,1,2].map(k=>a[k]+(b[k]-a[k])*g))])}return d}function he(e){return{x:new Uint32Array(e),x2:new Uint32Array(e),row:new Uint32Array(e),color:new Uint32Array(e),count:0}}function V(e,t,n){return{x:e.x.subarray(t,n),x2:e.x2.subarray(t,n),row:e.row.subarray(t,n),color:e.color.subarray(t,n),count:n-t}}function lt(e,t,n){let o=e.map(f=>Oe(f.runs,t).map(a=>({gap:a.gap,hairline:a.gap&&Le(a.cause).px===ee,pieces:$t(a,n,t)}))),r=0;for(let f of o)for(let a of f)r+=a.pieces.length;let s=he(r),l=he(r),i=he(r),c=new Uint32Array(e.length+1),d=new Uint32Array(e.length+1),u=new Uint32Array(e.length+1),h=1;return o.forEach((f,a)=>{for(let b of f){let g=b.hairline?i:b.gap?l:s;for(let[k,I,x]of b.pieces){let B=g.count++;g.x[B]=k,g.x2[B]=I,g.row[B]=a,g.color[B]=x,h=Math.max(h,g.x2[B])}}c[a+1]=s.count,d[a+1]=l.count,u[a+1]=i.count}),{bars:V(s,0,s.count),gaps:V(l,0,l.count),hairlines:V(i,0,i.count),barRows:c,gapRows:d,hairlineRows:u,longest:h}}function pt(e,t,n){let{longest:o}=t,r={start:0,end:o,screenStartPx:n.origin*n.scaleX+n.translateX,screenEndPx:(n.origin+o)*n.scaleX+n.translateX,reversed:!1,displayedRegionIndex:0},s={canvasWidth:n.width,canvasHeight:n.height},l=n.rowPx*n.scaleY;for(let{first:i,count:c,rowY:d}of n.blocks){let u=l/2-n.translateY-(d-i*n.rowPx)*n.scaleY,h=(d-n.rowPx/2)*n.scaleY+n.translateY;if(!(h>n.height||h+c*l<0))for(let[f,a,b]of[[t.bars,t.barRows,n.barPx],[t.gaps,t.gapRows,Math.min(Pe,n.barPx)],[t.hairlines,t.hairlineRows,Math.min(ee,n.barPx)]])ot.paintBlock(e,V(f,a[i],a[i+c]),r,s,{rowHeight:l,rowProportion:b/l,minWidthPx:1,seamPx:0,scrollTop:u})}}function Kt({model:e}){let t=U(()=>K(()=>{let o=e.walkRowBars;return o?lt([o.reference,...o.rows],e.scaleX,e.referenceRampDomain):void 0}),[e]),n=E(o=>{let r=e.walkRowBars,s=e.walkRowPlacement,l=e.walkRowPitch,i=t.get();if(!r||!s||!l||!i)return;let c=e.walkRowGroups?.sections,d=c?.length?[{first:0,count:1,rowY:s.rowY(0)},...c.map(u=>({first:u.first,count:u.count,rowY:s.rowY(u.first)}))]:[{first:0,count:r.rows.length+1,rowY:s.rowY(0)}];pt(o,i,{...e.screenTransform,width:e.paneWidth,height:e.canvasHeight,rowPx:l.rowPx,barPx:l.barPx,origin:r.origin,blocks:d})},[e,t]);return p(A,{model:e,zIndex:3,testId:"graph-walk-rows-spans",paint:n})}var Ut=m(function({model:t}){let n=t.walkRowBars,o=t.walkRowPlacement,r=t.walkRowPitch;if(!n||!o||!r||!t.hoveredWalkRowText)return null;let s=[n.reference,...n.rows],l=s.findIndex(d=>d.name===t.hoveredWalkRow),i=s[l];if(!i)return null;let c=t.toScreen({x:n.origin,y:o.rowY(l)});return p("rect",{"data-testid":"graph-walk-row-hovered",x:c.x-2,y:c.y-r.rowPx/2-1,width:i.bp*t.scaleX+4,height:r.rowPx+2,fill:"none",stroke:"#111",strokeWidth:1})}),Ft=m(function({model:t,vector:n=!1}){let o=O(),r=t.walkRowBars,s=t.walkRowPlacement,l=t.walkRowPitch;if(!r||!s||!l)return null;let{paneWidth:i,canvasHeight:c}=t,d={...t.screenTransform,width:i,height:c,...l,bars:n};return R(C,{children:[n?null:p(Kt,{model:t}),R(S,{model:t,zIndex:3,overflow:"visible",testId:"graph-walk-rows",children:[Ge(r,t.walkRowGroups?.sections??[],s.rowY,d,{ramp:t.referenceRampDomain,rowGenes:t.walkRowGenes,idPrefix:o}).map((u,h)=>p(D,{el:u},h)),s.headers.map(u=>p("text",{x:10,y:t.toScreen({x:0,y:u.top}).y+We-4,fontFamily:"sans-serif",fontSize:11,fontWeight:"bold",fill:"#333","data-testid":"graph-walk-section",children:u.title},u.key)),p(Ut,{model:t})]})]})}),go=Ft;export{ct as a,Ve as b,S as c,on as d,O as e,D as f,Y as g,Pt as h,vt as i,zn as j,qn as k,Et as l,nr as m,ur as n,Or as o,Ir as p,It as q,Hr as r,Nt as s,Zr as t,go as u};
4
- //# sourceMappingURL=chunk-WJGCVNGH.js.map
4
+ //# sourceMappingURL=chunk-LE43I4PT.js.map
@@ -1,2 +1,2 @@
1
- import{a as p}from"./chunk-RCXOOBLX.js";function b(t,s,e){let n=t.get(s);n?n.push(e):t.set(s,[e])}function F(t,s,e){let n=t.get(s);n?n.add(e):t.set(s,new Set([e]))}function m(t,s){let e=new Map;for(let n of t)b(e,s(n),n);return e}function g(t,s){let e=0,n=t;for(;e<n;){let r=e+n>>1;s(r)?e=r+1:n=r}return e}var l=0;function _(t){return t.stable!==void 0}function w(t){return t.stable?.rank===l}function G(t){return t.stable!==void 0&&t.stable.rank>l}function U(t){return t.nodes.filter(w)}function C(t,s){return t.stable.start<s.end&&t.stable.start+t.length>s.start}function K(t){let s={};for(let e of t)s[e.id]=[{x:e.stable.start,y:0},{x:e.stable.start+e.length,y:0}];return s}function T(t,s){return g(t.length,e=>t[e].stable.start<s)}function y(t){let s=1/0,e=-1/0;for(let n of t)s=Math.min(s,n.stable.start),e=Math.max(e,n.stable.start+n.length);return e-s}function $(t,s){return s&&s.end>s.start?s.end-s.start:y(t)}var A=class{constructor(t){this.segments=t.segments,this.offsets=t.offsets,this.path=t.path,this.start=t.start,this.reversed=t.reversed,this.paths=t.paths,this.samples=t.samples,this.slots=new Map(this.segments.map((s,e)=>[s,e]))}static from(t){let s=new u;for(let[e,n]of t){s.declare(e);for(let r of n)s.add(e,r.path,r.sample,r.start,r.strand==="-")}return s.build()}get size(){return this.segments.length}slot(t){return this.slots.get(t)??-1}pathIndex(t){return this.paths.indexOf(t)}firstBy(t,s){for(let e=this.offsets[t];e<this.offsets[t+1];e++)if(this.path[e]===s)return e;return-1}replay(){let t=new Map;return(s,e)=>{if(s<0||e<0)return-1;let n=s*this.paths.length+e,r=this.offsets[s+1],a=t.get(n)??this.offsets[s];for(;a<r&&this.path[a]!==e;)a++;return t.set(n,a+1),a<r?a:-1}}filter(t,s=()=>!0){let e=this.paths.map(t),n=new u;return this.segments.forEach((r,a)=>{if(!s(r))return;let h=n.declare(r);for(let o=this.offsets[a];o<this.offsets[a+1];o++){let i=this.path[o];e[i]&&n.addAt(h,n.pathOf(this.paths[i],this.samples[i]),this.start[o],this.reversed[o]===1)}}),n.build()}strand(t){return this.reversed[t]?"-":"+"}visit(t){let s=this.path[t];return{path:this.paths[s],sample:this.samples[s],start:this.start[t],strand:this.strand(t)}}visitsAt(t){let s=[];for(let e=this.offsets[t];e<this.offsets[t+1];e++)s.push(this.visit(e));return s}get(t){let s=this.slot(t);return s<0?void 0:this.visitsAt(s)}has(t){return this.slots.has(t)}keys(){return this.segments[Symbol.iterator]()}*values(){for(let t=0;t<this.segments.length;t++)yield this.visitsAt(t)}*entries(){for(let t=0;t<this.segments.length;t++)yield[this.segments[t],this.visitsAt(t)]}[Symbol.iterator](){return this.entries()}},d=class{constructor(t){this.data=t,this.length=0}push(t){if(this.length===this.data.length){let s=new this.data.constructor(this.data.length*2);s.set(this.data),this.data=s}this.data[this.length++]=t}},u=class{constructor(){this.segments=[],this.slots=new Map,this.paths=[],this.samples=[],this.pathIndex=new Map,this.slot=new d(new Int32Array(1024)),this.path=new d(new Int32Array(1024)),this.start=new d(new Float64Array(1024)),this.reversed=new d(new Uint8Array(1024))}declare(t){let s=this.slots.get(t);return s===void 0&&(s=this.segments.length,this.slots.set(t,s),this.segments.push(t)),s}pathOf(t,s){let e=this.pathIndex.get(t);return e===void 0&&(e=this.paths.length,this.pathIndex.set(t,e),this.paths.push(t),this.samples.push(s)),e}add(t,s,e,n,r){this.addAt(this.declare(t),this.pathOf(s,e),n,r)}addAt(t,s,e,n){this.slot.push(t),this.path.push(s),this.start.push(e),this.reversed.push(n?1:0)}build(){let t=this.slot.length,s=this.segments.length,e=new Int32Array(s+1),n=this.slot.data;for(let i=0;i<t;i++)e[n[i]+1]++;for(let i=0;i<s;i++)e[i+1]+=e[i];let r=e.slice(0,s),a=new Int32Array(t),h=new Float64Array(t),o=new Uint8Array(t);for(let i=0;i<t;i++){let f=r[n[i]]++;a[f]=this.path.data[i],h[f]=this.start.data[i],o[f]=this.reversed.data[i]}return new A({segments:this.segments,offsets:e,path:a,start:h,reversed:o,paths:this.paths,samples:this.samples})}};var v=/:(\d+)-\d+$/,x=/^([^#]*#[^#]*#[^#[]*)#(\d+)(?:\[(\d+)-\d+\])?$/,I=/\[(\d+)-\d+\]$/;function E(t){let s=x.exec(t);if(s)return{name:s[1],start:+s[2]+ +(s[3]??0)};let e=v.exec(t)??I.exec(t);return e?{name:t.slice(0,e.index),start:+e[1]}:{name:t,start:0}}function Q(t,s){let e=[],n=new u;for(let r of t){let a=p(r.name),h=n.pathOf(r.name,a),o=r.start;for(let i of r.steps)n.addAt(n.declare(i.id),h,o,i.strand==="-"),o+=s(i.id);e.push({name:r.name,sample:a,start:r.start,length:o-r.start})}return{anchorPaths:e,pathVisits:n.build()}}function P(t,s){return t.find(n=>n.sample===s||n.name===s)??t[0]}var R=1;function N(t,s,e,n){let r=s.slot(t.name);if(r<0||s.offsets[r]===s.offsets[r+1])return t;let a=s.firstBy(r,e),h=a>=0?a:s.offsets[r];return{...t,stable:{refName:s.paths[s.path[h]],start:s.start[h],rank:a>=0?l:R,strand:s.strand(h)},samples:n(r)}}function O(t){let s=[...new Set(t.samples)].sort(),e=new Map(s.map((h,o)=>[h,o])),n=Int32Array.from(t.samples,h=>e.get(h)),r=new Uint8Array(s.length),a=new Int32Array(s.length);return h=>{let o=0;for(let f=t.offsets[h];f<t.offsets[h+1];f++){let c=n[t.path[f]];r[c]===0&&(r[c]=1,a[o++]=c)}let i;if(o===s.length)i=s,r.fill(0);else if(o*8<s.length){let f=a.subarray(0,o);f.forEach(c=>r[c]=0),i=Array.from(f.sort(),c=>s[c])}else{i=[];for(let f=0;f<s.length;f++)r[f]===1&&(r[f]=0,i.push(s[f]))}return i}}function k(t,s){let{anchorPaths:e,pathVisits:n}=t,r=e&&n?P(e,s):void 0;if(!r||!e||!n)return t;let a=O(n),h=n.pathIndex(r.name);return{...t,nodes:t.nodes.map(o=>N(o,n,h,a)),anchoredBy:"paths",referencePath:r.name}}function Y(t,s){if(t.anchoredBy!=="tags")return k(t,s);let e=S(t);return e?{...t,referencePath:e}:t}function S(t){let s=t.nodes.find(e=>e.stable?.rank===0)?.stable?.refName;return s!==void 0&&t.anchorPaths?.some(e=>e.name===s)?s:void 0}function Z(t,s){if(!t.anchorPaths)return;let e=new Map(t.nodes.map(a=>[a.id,a.length])),n=(a,h=a.length)=>{let o=0;for(let i=0;i<h;i++)o+=e.get(a[i])??0;return o},r=m(t.paths??[],a=>E(a.name).name);return t.anchorPaths.map(a=>{let h=r.get(a.name),o=h?.length===1?h[0]:void 0,i=o&&s.get(o.name);return o&&i?{...a,start:a.start+n(o.nodeIds,i.first),length:n(i.nodeIds)}:a})}function tt(t){let{pathVisits:s}=t,e=new Map;return n=>{let r=e.get(n.id);if(!r){r=[];let a=s?s.slot(n.name):-1,h=a>=0?s.pathIndex(n.stable.refName):-1;if(h>=0)for(let o=s.offsets[a];o<s.offsets[a+1];o++)s.path[o]===h&&r.push(s.start[o]);r.length<2&&(r=[n.stable.start]),e.set(n.id,r)}return r}}export{b as a,F as b,m as c,g as d,l as e,_ as f,w as g,G as h,U as i,C as j,K as k,T as l,y as m,$ as n,A as o,d as p,u as q,E as r,Q as s,P as t,k as u,Y as v,Z as w,tt as x};
2
- //# sourceMappingURL=chunk-U5PIXAF2.js.map
1
+ import{a as p}from"./chunk-6SWXMRAV.js";function b(t,s,e){let n=t.get(s);n?n.push(e):t.set(s,[e])}function F(t,s,e){let n=t.get(s);n?n.add(e):t.set(s,new Set([e]))}function m(t,s){let e=new Map;for(let n of t)b(e,s(n),n);return e}function g(t,s){let e=0,n=t;for(;e<n;){let r=e+n>>1;s(r)?e=r+1:n=r}return e}var l=0;function _(t){return t.stable!==void 0}function w(t){return t.stable?.rank===l}function G(t){return t.stable!==void 0&&t.stable.rank>l}function U(t){return t.nodes.filter(w)}function C(t,s){return t.stable.start<s.end&&t.stable.start+t.length>s.start}function K(t){let s={};for(let e of t)s[e.id]=[{x:e.stable.start,y:0},{x:e.stable.start+e.length,y:0}];return s}function T(t,s){return g(t.length,e=>t[e].stable.start<s)}function y(t){let s=1/0,e=-1/0;for(let n of t)s=Math.min(s,n.stable.start),e=Math.max(e,n.stable.start+n.length);return e-s}function $(t,s){return s&&s.end>s.start?s.end-s.start:y(t)}var A=class{constructor(t){this.segments=t.segments,this.offsets=t.offsets,this.path=t.path,this.start=t.start,this.reversed=t.reversed,this.paths=t.paths,this.samples=t.samples,this.slots=new Map(this.segments.map((s,e)=>[s,e]))}static from(t){let s=new u;for(let[e,n]of t){s.declare(e);for(let r of n)s.add(e,r.path,r.sample,r.start,r.strand==="-")}return s.build()}get size(){return this.segments.length}slot(t){return this.slots.get(t)??-1}pathIndex(t){return this.paths.indexOf(t)}firstBy(t,s){for(let e=this.offsets[t];e<this.offsets[t+1];e++)if(this.path[e]===s)return e;return-1}replay(){let t=new Map;return(s,e)=>{if(s<0||e<0)return-1;let n=s*this.paths.length+e,r=this.offsets[s+1],a=t.get(n)??this.offsets[s];for(;a<r&&this.path[a]!==e;)a++;return t.set(n,a+1),a<r?a:-1}}filter(t,s=()=>!0){let e=this.paths.map(t),n=new u;return this.segments.forEach((r,a)=>{if(!s(r))return;let h=n.declare(r);for(let o=this.offsets[a];o<this.offsets[a+1];o++){let i=this.path[o];e[i]&&n.addAt(h,n.pathOf(this.paths[i],this.samples[i]),this.start[o],this.reversed[o]===1)}}),n.build()}strand(t){return this.reversed[t]?"-":"+"}visit(t){let s=this.path[t];return{path:this.paths[s],sample:this.samples[s],start:this.start[t],strand:this.strand(t)}}visitsAt(t){let s=[];for(let e=this.offsets[t];e<this.offsets[t+1];e++)s.push(this.visit(e));return s}get(t){let s=this.slot(t);return s<0?void 0:this.visitsAt(s)}has(t){return this.slots.has(t)}keys(){return this.segments[Symbol.iterator]()}*values(){for(let t=0;t<this.segments.length;t++)yield this.visitsAt(t)}*entries(){for(let t=0;t<this.segments.length;t++)yield[this.segments[t],this.visitsAt(t)]}[Symbol.iterator](){return this.entries()}},d=class{constructor(t){this.data=t,this.length=0}push(t){if(this.length===this.data.length){let s=new this.data.constructor(this.data.length*2);s.set(this.data),this.data=s}this.data[this.length++]=t}},u=class{constructor(){this.segments=[],this.slots=new Map,this.paths=[],this.samples=[],this.pathIndex=new Map,this.slot=new d(new Int32Array(1024)),this.path=new d(new Int32Array(1024)),this.start=new d(new Float64Array(1024)),this.reversed=new d(new Uint8Array(1024))}declare(t){let s=this.slots.get(t);return s===void 0&&(s=this.segments.length,this.slots.set(t,s),this.segments.push(t)),s}pathOf(t,s){let e=this.pathIndex.get(t);return e===void 0&&(e=this.paths.length,this.pathIndex.set(t,e),this.paths.push(t),this.samples.push(s)),e}add(t,s,e,n,r){this.addAt(this.declare(t),this.pathOf(s,e),n,r)}addAt(t,s,e,n){this.slot.push(t),this.path.push(s),this.start.push(e),this.reversed.push(n?1:0)}build(){let t=this.slot.length,s=this.segments.length,e=new Int32Array(s+1),n=this.slot.data;for(let i=0;i<t;i++)e[n[i]+1]++;for(let i=0;i<s;i++)e[i+1]+=e[i];let r=e.slice(0,s),a=new Int32Array(t),h=new Float64Array(t),o=new Uint8Array(t);for(let i=0;i<t;i++){let f=r[n[i]]++;a[f]=this.path.data[i],h[f]=this.start.data[i],o[f]=this.reversed.data[i]}return new A({segments:this.segments,offsets:e,path:a,start:h,reversed:o,paths:this.paths,samples:this.samples})}};var v=/:(\d+)-\d+$/,x=/^([^#]*#[^#]*#[^#[]*)#(\d+)(?:\[(\d+)-\d+\])?$/,I=/\[(\d+)-\d+\]$/;function E(t){let s=x.exec(t);if(s)return{name:s[1],start:+s[2]+ +(s[3]??0)};let e=v.exec(t)??I.exec(t);return e?{name:t.slice(0,e.index),start:+e[1]}:{name:t,start:0}}function Q(t,s){let e=[],n=new u;for(let r of t){let a=p(r.name),h=n.pathOf(r.name,a),o=r.start;for(let i of r.steps)n.addAt(n.declare(i.id),h,o,i.strand==="-"),o+=s(i.id);e.push({name:r.name,sample:a,start:r.start,length:o-r.start})}return{anchorPaths:e,pathVisits:n.build()}}function P(t,s){return t.find(n=>n.sample===s||n.name===s)??t[0]}var R=1;function N(t,s,e,n){let r=s.slot(t.name);if(r<0||s.offsets[r]===s.offsets[r+1])return t;let a=s.firstBy(r,e),h=a>=0?a:s.offsets[r];return{...t,stable:{refName:s.paths[s.path[h]],start:s.start[h],rank:a>=0?l:R,strand:s.strand(h)},samples:n(r)}}function O(t){let s=[...new Set(t.samples)].sort(),e=new Map(s.map((h,o)=>[h,o])),n=Int32Array.from(t.samples,h=>e.get(h)),r=new Uint8Array(s.length),a=new Int32Array(s.length);return h=>{let o=0;for(let f=t.offsets[h];f<t.offsets[h+1];f++){let c=n[t.path[f]];r[c]===0&&(r[c]=1,a[o++]=c)}let i;if(o===s.length)i=s,r.fill(0);else if(o*8<s.length){let f=a.subarray(0,o);f.forEach(c=>r[c]=0),i=Array.from(f.sort(),c=>s[c])}else{i=[];for(let f=0;f<s.length;f++)r[f]===1&&(r[f]=0,i.push(s[f]))}return i}}function k(t,s){let{anchorPaths:e,pathVisits:n}=t,r=e&&n?P(e,s):void 0;if(!r||!e||!n)return t;let a=O(n),h=n.pathIndex(r.name);return{...t,nodes:t.nodes.map(o=>N(o,n,h,a)),anchoredBy:"paths",referencePath:r.name}}function Y(t,s){if(t.anchoredBy!=="tags")return k(t,s);let e=S(t);return e?{...t,referencePath:e}:t}function S(t){let s=t.nodes.find(e=>e.stable?.rank===0)?.stable?.refName;return s!==void 0&&t.anchorPaths?.some(e=>e.name===s)?s:void 0}function Z(t,s){if(!t.anchorPaths)return;let e=new Map(t.nodes.map(a=>[a.id,a.length])),n=(a,h=a.length)=>{let o=0;for(let i=0;i<h;i++)o+=e.get(a[i])??0;return o},r=m(t.paths??[],a=>E(a.name).name);return t.anchorPaths.map(a=>{let h=r.get(a.name),o=h?.length===1?h[0]:void 0,i=o&&s.get(o.name);return o&&i?{...a,start:a.start+n(o.nodeIds,i.first),length:n(i.nodeIds)}:a})}function tt(t){let{pathVisits:s}=t,e=new Map;return n=>{let r=e.get(n.id);if(!r){r=[];let a=s?s.slot(n.name):-1,h=a>=0?s.pathIndex(n.stable.refName):-1;if(h>=0)for(let o=s.offsets[a];o<s.offsets[a+1];o++)s.path[o]===h&&r.push(s.start[o]);r.length<2&&(r=[n.stable.start]),e.set(n.id,r)}return r}}export{b as a,F as b,m as c,g as d,l as e,_ as f,w as g,G as h,U as i,C as j,K as k,T as l,y as m,$ as n,A as o,d as p,u as q,E as r,Q as s,P as t,k as u,Y as v,Z as w,tt as x};
2
+ //# sourceMappingURL=chunk-LE7FZM6Y.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-BSOZW3FC.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-HOAIOEI7.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-RJWPJCIB.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-ZPZ7GNBT.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-3YBP46PB.js"],
3
+ "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.9.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-BSOZW3FC.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.9.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-HOAIOEI7.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.9.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-RJWPJCIB.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.9.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-ZPZ7GNBT.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@11.9.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-3YBP46PB.js"],
4
4
  "sourcesContent": ["// src/util/groups.ts\nfunction pushTo(map, key, value) {\n const list = map.get(key);\n if (list) {\n list.push(value);\n } else {\n map.set(key, [value]);\n }\n}\nfunction addTo(map, key, value) {\n const set = map.get(key);\n if (set) {\n set.add(value);\n } else {\n map.set(key, /* @__PURE__ */ new Set([value]));\n }\n}\nfunction groupBy(items, keyOf) {\n const groups = /* @__PURE__ */ new Map();\n for (const item of items) {\n pushTo(groups, keyOf(item), item);\n }\n return groups;\n}\n\nexport {\n pushTo,\n addTo,\n groupBy\n};\n", "// src/util/partitionPoint.ts\nfunction partitionPoint(n, pred) {\n let lo = 0;\n let hi = n;\n while (lo < hi) {\n const mid = lo + hi >> 1;\n if (pred(mid)) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n return lo;\n}\n\nexport {\n partitionPoint\n};\n", "import {\n partitionPoint\n} from \"./chunk-HOAIOEI7.js\";\n\n// src/anchoredNodes.ts\nvar REFERENCE_RANK = 0;\nfunction isAnchored(node) {\n return node.stable !== void 0;\n}\nfunction isBackbone(node) {\n return node.stable?.rank === REFERENCE_RANK;\n}\nfunction isOffReference(node) {\n return node.stable !== void 0 && node.stable.rank > REFERENCE_RANK;\n}\nfunction backboneNodes(graph) {\n return graph.nodes.filter(isBackbone);\n}\nfunction overlapsWindow(node, window) {\n return node.stable.start < window.end && node.stable.start + node.length > window.start;\n}\nfunction backbonePositions(backbone) {\n const positions = {};\n for (const node of backbone) {\n positions[node.id] = [\n { x: node.stable.start, y: 0 },\n { x: node.stable.start + node.length, y: 0 }\n ];\n }\n return positions;\n}\nfunction firstNodeAtOrAfter(nodes, bp) {\n return partitionPoint(nodes.length, (i) => nodes[i].stable.start < bp);\n}\nfunction backboneSpan(backbone) {\n let min = Infinity;\n let max = -Infinity;\n for (const node of backbone) {\n min = Math.min(min, node.stable.start);\n max = Math.max(max, node.stable.start + node.length);\n }\n return max - min;\n}\nfunction referenceSpan(backbone, region) {\n return region && region.end > region.start ? region.end - region.start : backboneSpan(backbone);\n}\n\nexport {\n REFERENCE_RANK,\n isAnchored,\n isBackbone,\n isOffReference,\n backboneNodes,\n overlapsWindow,\n backbonePositions,\n firstNodeAtOrAfter,\n backboneSpan,\n referenceSpan\n};\n", "// src/pathVisits.ts\nvar PathVisits = class {\n constructor(columns) {\n this.segments = columns.segments;\n this.offsets = columns.offsets;\n this.path = columns.path;\n this.start = columns.start;\n this.reversed = columns.reversed;\n this.paths = columns.paths;\n this.samples = columns.samples;\n this.slots = new Map(this.segments.map((s, i) => [s, i]));\n }\n static from(entries) {\n const builder = new PathVisitsBuilder();\n for (const [segment, visits] of entries) {\n builder.declare(segment);\n for (const v of visits) {\n builder.add(segment, v.path, v.sample, v.start, v.strand === \"-\");\n }\n }\n return builder.build();\n }\n get size() {\n return this.segments.length;\n }\n // the segment's index into `segments` and `offsets`, -1 when unvisited\n slot(segment) {\n return this.slots.get(segment) ?? -1;\n }\n pathIndex(path) {\n return this.paths.indexOf(path);\n }\n // the first of `slot`'s visits by path `p`, -1 for none\n firstBy(slot, p) {\n for (let i = this.offsets[slot]; i < this.offsets[slot + 1]; i++) {\n if (this.path[i] === p) {\n return i;\n }\n }\n return -1;\n }\n // Paths' steps replayed in walk order against their visits: the k-th call\n // for one path and segment answers that path's k-th visit there, -1 past\n // its last. A walk in pieces lists its pieces in path order, so replaying\n // the pieces in order reads each step's own visit.\n replay() {\n const cursor = /* @__PURE__ */ new Map();\n return (slot, p) => {\n if (slot < 0 || p < 0) {\n return -1;\n }\n const key = slot * this.paths.length + p;\n const end = this.offsets[slot + 1];\n let at = cursor.get(key) ?? this.offsets[slot];\n while (at < end && this.path[at] !== p) {\n at++;\n }\n cursor.set(key, at + 1);\n return at < end ? at : -1;\n };\n }\n // the visits of paths `keepPath` accepts, at segments `keepSegment` does\n filter(keepPath, keepSegment = () => true) {\n const kept = this.paths.map(keepPath);\n const builder = new PathVisitsBuilder();\n this.segments.forEach((segment, s) => {\n if (!keepSegment(segment)) {\n return;\n }\n const slot = builder.declare(segment);\n for (let i = this.offsets[s]; i < this.offsets[s + 1]; i++) {\n const p = this.path[i];\n if (kept[p]) {\n builder.addAt(\n slot,\n builder.pathOf(this.paths[p], this.samples[p]),\n this.start[i],\n this.reversed[i] === 1\n );\n }\n }\n });\n return builder.build();\n }\n strand(i) {\n return this.reversed[i] ? \"-\" : \"+\";\n }\n visit(i) {\n const p = this.path[i];\n return {\n path: this.paths[p],\n sample: this.samples[p],\n start: this.start[i],\n strand: this.strand(i)\n };\n }\n visitsAt(slot) {\n const out = [];\n for (let i = this.offsets[slot]; i < this.offsets[slot + 1]; i++) {\n out.push(this.visit(i));\n }\n return out;\n }\n get(segment) {\n const slot = this.slot(segment);\n return slot < 0 ? void 0 : this.visitsAt(slot);\n }\n has(segment) {\n return this.slots.has(segment);\n }\n keys() {\n return this.segments[Symbol.iterator]();\n }\n *values() {\n for (let s = 0; s < this.segments.length; s++) {\n yield this.visitsAt(s);\n }\n }\n *entries() {\n for (let s = 0; s < this.segments.length; s++) {\n yield [this.segments[s], this.visitsAt(s)];\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n};\nvar Column = class {\n constructor(data) {\n this.data = data;\n this.length = 0;\n }\n push(value) {\n if (this.length === this.data.length) {\n const grown = new this.data.constructor(\n this.data.length * 2\n );\n grown.set(this.data);\n this.data = grown;\n }\n this.data[this.length++] = value;\n }\n};\nvar PathVisitsBuilder = class {\n constructor() {\n this.segments = [];\n this.slots = /* @__PURE__ */ new Map();\n this.paths = [];\n this.samples = [];\n this.pathIndex = /* @__PURE__ */ new Map();\n this.slot = new Column(new Int32Array(1024));\n this.path = new Column(new Int32Array(1024));\n this.start = new Column(new Float64Array(1024));\n this.reversed = new Column(new Uint8Array(1024));\n }\n // a segment's place in iteration order, though it has no visits yet\n declare(segment) {\n let s = this.slots.get(segment);\n if (s === void 0) {\n s = this.segments.length;\n this.slots.set(segment, s);\n this.segments.push(segment);\n }\n return s;\n }\n // a path's index, so a caller adding many of its visits names it once\n pathOf(path, sample) {\n let p = this.pathIndex.get(path);\n if (p === void 0) {\n p = this.paths.length;\n this.pathIndex.set(path, p);\n this.paths.push(path);\n this.samples.push(sample);\n }\n return p;\n }\n add(segment, path, sample, start, reversed) {\n this.addAt(\n this.declare(segment),\n this.pathOf(path, sample),\n start,\n reversed\n );\n }\n addAt(slot, path, start, reversed) {\n this.slot.push(slot);\n this.path.push(path);\n this.start.push(start);\n this.reversed.push(reversed ? 1 : 0);\n }\n build() {\n const n = this.slot.length;\n const segments = this.segments.length;\n const offsets = new Int32Array(segments + 1);\n const slot = this.slot.data;\n for (let i = 0; i < n; i++) {\n offsets[slot[i] + 1]++;\n }\n for (let s = 0; s < segments; s++) {\n offsets[s + 1] += offsets[s];\n }\n const fill = offsets.slice(0, segments);\n const path = new Int32Array(n);\n const start = new Float64Array(n);\n const reversed = new Uint8Array(n);\n for (let i = 0; i < n; i++) {\n const at = fill[slot[i]]++;\n path[at] = this.path.data[i];\n start[at] = this.start.data[i];\n reversed[at] = this.reversed.data[i];\n }\n return new PathVisits({\n segments: this.segments,\n offsets,\n path,\n start,\n reversed,\n paths: this.paths,\n samples: this.samples\n });\n }\n};\n\nexport {\n PathVisits,\n Column,\n PathVisitsBuilder\n};\n", "import {\n PathVisitsBuilder\n} from \"./chunk-ZPZ7GNBT.js\";\nimport {\n groupBy\n} from \"./chunk-BSOZW3FC.js\";\nimport {\n REFERENCE_RANK\n} from \"./chunk-RJWPJCIB.js\";\nimport {\n panSNSample\n} from \"./chunk-2JL2JVZ2.js\";\n\n// src/pathAnchoring.ts\nvar RANGE_SUFFIX = /:(\\d+)-\\d+$/;\nvar VG_FRAGMENT = /^([^#]*#[^#]*#[^#[]*)#(\\d+)(?:\\[(\\d+)-\\d+\\])?$/;\nvar VG_SUBRANGE = /\\[(\\d+)-\\d+\\]$/;\nfunction pathOrigin(pathName) {\n const fragment = VG_FRAGMENT.exec(pathName);\n if (fragment) {\n return { name: fragment[1], start: +fragment[2] + +(fragment[3] ?? 0) };\n }\n const match = RANGE_SUFFIX.exec(pathName) ?? VG_SUBRANGE.exec(pathName);\n return match ? { name: pathName.slice(0, match.index), start: +match[1] } : { name: pathName, start: 0 };\n}\nfunction surveyPaths(paths, lengthOf) {\n const anchorPaths = [];\n const visits = new PathVisitsBuilder();\n for (const path of paths) {\n const sample = panSNSample(path.name);\n const p = visits.pathOf(path.name, sample);\n let pos = path.start;\n for (const step of path.steps) {\n visits.addAt(visits.declare(step.id), p, pos, step.strand === \"-\");\n pos += lengthOf(step.id);\n }\n anchorPaths.push({\n name: path.name,\n sample,\n start: path.start,\n length: pos - path.start\n });\n }\n return { anchorPaths, pathVisits: visits.build() };\n}\nfunction chooseReferencePath(anchorPaths, preferred) {\n const named = anchorPaths.find(\n (p) => p.sample === preferred || p.name === preferred\n );\n return named ?? anchorPaths[0];\n}\nvar OFF_REFERENCE_RANK = 1;\nfunction anchorNode(node, visits, reference, samplesOf) {\n const slot = visits.slot(node.name);\n if (slot < 0 || visits.offsets[slot] === visits.offsets[slot + 1]) {\n return node;\n }\n const own = visits.firstBy(slot, reference);\n const anchor = own >= 0 ? own : visits.offsets[slot];\n return {\n ...node,\n stable: {\n refName: visits.paths[visits.path[anchor]],\n start: visits.start[anchor],\n rank: own >= 0 ? REFERENCE_RANK : OFF_REFERENCE_RANK,\n strand: visits.strand(anchor)\n },\n samples: samplesOf(slot)\n };\n}\nfunction sampleSorter(visits) {\n const sorted = [...new Set(visits.samples)].sort();\n const rank = new Map(sorted.map((sample, i) => [sample, i]));\n const pathRank = Int32Array.from(visits.samples, (s) => rank.get(s));\n const seen = new Uint8Array(sorted.length);\n const ranks = new Int32Array(sorted.length);\n return (slot) => {\n let n = 0;\n for (let i = visits.offsets[slot]; i < visits.offsets[slot + 1]; i++) {\n const r = pathRank[visits.path[i]];\n if (seen[r] === 0) {\n seen[r] = 1;\n ranks[n++] = r;\n }\n }\n let out;\n if (n === sorted.length) {\n out = sorted;\n seen.fill(0);\n } else if (n * 8 < sorted.length) {\n const found = ranks.subarray(0, n);\n found.forEach((r) => seen[r] = 0);\n out = Array.from(found.sort(), (r) => sorted[r]);\n } else {\n out = [];\n for (let r = 0; r < sorted.length; r++) {\n if (seen[r] === 1) {\n seen[r] = 0;\n out.push(sorted[r]);\n }\n }\n }\n return out;\n };\n}\nfunction anchorFromPaths(graph, preferred) {\n const { anchorPaths, pathVisits } = graph;\n const reference = anchorPaths && pathVisits ? chooseReferencePath(anchorPaths, preferred) : void 0;\n if (!reference || !anchorPaths || !pathVisits) {\n return graph;\n }\n const samplesOf = sampleSorter(pathVisits);\n const referenceIndex = pathVisits.pathIndex(reference.name);\n return {\n ...graph,\n nodes: graph.nodes.map(\n (node) => anchorNode(node, pathVisits, referenceIndex, samplesOf)\n ),\n anchoredBy: \"paths\",\n referencePath: reference.name\n };\n}\nfunction anchorGraph(graph, preferred) {\n if (graph.anchoredBy !== \"tags\") {\n return anchorFromPaths(graph, preferred);\n }\n const referencePath = taggedReferencePath(graph);\n return referencePath ? { ...graph, referencePath } : graph;\n}\nfunction taggedReferencePath(graph) {\n const refName = graph.nodes.find((n) => n.stable?.rank === 0)?.stable?.refName;\n return refName !== void 0 && graph.anchorPaths?.some((p) => p.name === refName) ? refName : void 0;\n}\nfunction trimOrigins(graph, kept) {\n if (!graph.anchorPaths) {\n return void 0;\n }\n const lengthOf = new Map(graph.nodes.map((n) => [n.id, n.length]));\n const bp = (ids, end = ids.length) => {\n let sum = 0;\n for (let i = 0; i < end; i++) {\n sum += lengthOf.get(ids[i]) ?? 0;\n }\n return sum;\n };\n const byOrigin = groupBy(graph.paths ?? [], (p) => pathOrigin(p.name).name);\n return graph.anchorPaths.map((o) => {\n const pieces = byOrigin.get(o.name);\n const path = pieces?.length === 1 ? pieces[0] : void 0;\n const stretch = path && kept.get(path.name);\n return path && stretch ? {\n ...o,\n start: o.start + bp(path.nodeIds, stretch.first),\n length: bp(stretch.nodeIds)\n } : o;\n });\n}\nfunction referenceVisitStarts(graph) {\n const { pathVisits } = graph;\n const cache = /* @__PURE__ */ new Map();\n return (node) => {\n let starts = cache.get(node.id);\n if (!starts) {\n starts = [];\n const slot = pathVisits ? pathVisits.slot(node.name) : -1;\n const p = slot >= 0 ? pathVisits.pathIndex(node.stable.refName) : -1;\n if (p >= 0) {\n for (let i = pathVisits.offsets[slot]; i < pathVisits.offsets[slot + 1]; i++) {\n if (pathVisits.path[i] === p) {\n starts.push(pathVisits.start[i]);\n }\n }\n }\n if (starts.length < 2) {\n starts = [node.stable.start];\n }\n cache.set(node.id, starts);\n }\n return starts;\n };\n}\n\nexport {\n pathOrigin,\n surveyPaths,\n chooseReferencePath,\n anchorFromPaths,\n anchorGraph,\n trimOrigins,\n referenceVisitStarts\n};\n"],
5
5
  "mappings": "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",
6
6
  "names": ["pushTo", "map", "key", "value", "list", "addTo", "set", "groupBy", "items", "keyOf", "groups", "item", "partitionPoint", "n", "pred", "lo", "hi", "mid", "REFERENCE_RANK", "isAnchored", "node", "isBackbone", "isOffReference", "backboneNodes", "graph", "overlapsWindow", "window", "backbonePositions", "backbone", "positions", "firstNodeAtOrAfter", "nodes", "bp", "partitionPoint", "i", "backboneSpan", "min", "max", "referenceSpan", "region", "PathVisits", "columns", "i", "entries", "builder", "PathVisitsBuilder", "segment", "visits", "v", "path", "slot", "p", "cursor", "key", "end", "at", "keepPath", "keepSegment", "kept", "s", "out", "Column", "data", "value", "grown", "sample", "start", "reversed", "n", "segments", "offsets", "fill", "RANGE_SUFFIX", "VG_FRAGMENT", "VG_SUBRANGE", "pathOrigin", "pathName", "fragment", "match", "surveyPaths", "paths", "lengthOf", "anchorPaths", "visits", "PathVisitsBuilder", "path", "sample", "panSNSample", "p", "pos", "step", "chooseReferencePath", "preferred", "OFF_REFERENCE_RANK", "anchorNode", "node", "reference", "samplesOf", "slot", "own", "anchor", "REFERENCE_RANK", "sampleSorter", "sorted", "rank", "i", "pathRank", "s", "seen", "ranks", "n", "r", "out", "found", "anchorFromPaths", "graph", "pathVisits", "referenceIndex", "anchorGraph", "referencePath", "taggedReferencePath", "refName", "trimOrigins", "kept", "bp", "ids", "end", "sum", "byOrigin", "groupBy", "o", "pieces", "stretch", "referenceVisitStarts", "cache", "starts"]
@@ -0,0 +1,2 @@
1
+ import{l as b,m as $,n as S,p as E,q as x,r as T}from"./chunk-FTXDTU27.js";function A(e){let{refName:n,start:t,end:r}=e??{};return typeof n=="string"&&Number.isFinite(t)&&Number.isFinite(r)&&t<r?{refName:n,start:t,end:r}:void 0}function D(e){let n=Number(e);return e!=="auto"&&Number.isFinite(n)?n:"auto"}var w=e=>e.toLocaleString("en-US"),v=({refName:e,start:n,end:t})=>`${e}:${w(n+1)}-${w(t)}`,L=e=>`Forms of ${v(e)}: `;var C={deletion:{svType:"DEL",type:"deletion",alt:"<DEL>"},insertion:{svType:"INS",type:"insertion",alt:"<INS>"},duplication:{svType:"DUP",type:"tandem_duplication",alt:"<DUP:TANDEM>"},replacement:{svType:"CPX",type:"complex_substitution",alt:"<CPX>"},inversion:{svType:"INV",type:"inversion",alt:"<INV>",consequence:"inversion"},shift:{svType:"CPX",type:"complex_structural_alteration",alt:"<CPX>",consequence:"shift"},net:{svType:"CPX",type:"complex_structural_alteration",alt:"<CPX>",consequence:"net"}},_=e=>e.lopsided??(e.delta<0?"deletion":"insertion"),P=e=>C[e.kind].consequence??(_(e)==="deletion"?"loss":"gain"),f=e=>`F${e+1}`,O="other",l=8;function F(e,n){let t=100*e/n;return t>0&&t<1?"<1%":`${Math.round(t)}%`}var d=({forms:e},n)=>e.length>n+1?Math.max(0,n):e.length,m=e=>e.reduce((n,t)=>n+t.members.length,0);function U(e,n=l){let t=d(e,n),r=e.forms.slice(t);return[...e.forms.slice(0,t).map((s,a)=>({name:f(a),label:`${F(s.members.length,e.placed)} \xB7 ${T(s,e)}`,haplotypes:s.members.length,forms:1})),...r.length>0?[{name:O,label:`other forms \xB7 ${F(m(r),e.placed)}`,haplotypes:m(r),forms:r.length}]:[]]}var N=5;function k(e){let n=e.slice(0,N).join(", "),t=e.length-N;return t>0?`${n} and ${t} more`:n}var u=e=>`${e} haplotype${e===1?"":"s"}`;function j(e,n=l){let{abridged:t,unplaced:r,forms:s}=e,a=d(e,n),i=s.slice(a);return[...i.length>0?[`${i.length} smaller forms, ${u(m(i))}, share the empty "other forms" row; maxForms sets how many forms get a row of their own`]:[],...t.length>0?[`${u(t.length)} kept an abridged walk past the forms cut's step budget, which shows as a net change over its span: ${k(t)}`]:[],...r.length>0?[`${u(r.length)} ${r.length===1?"has":"have"} no walk over the pinned window, so no form: ${k(r)}`]:[]]}function V(e,n=l){return Object.fromEntries(e.forms.slice(0,d(e,n)).map((t,r)=>[f(r),"0"]))}function q({copied:e,refStart:n,refEnd:t}){let[r,s]=e??[n,t];return{start:r,end:Math.max(s,r+1)}}var R=(e,n)=>e===n?"1":e===$||e===S?".":"0";function K(e,n=l){let{sites:t,forms:r,placed:s}=e,a=d(e,n);return t.flatMap((i,g)=>i.edge?[]:i.states.flatMap(c=>{if(c.key===b)return[];let h=r.map(o=>x(e,o,g)),y=Object.fromEntries(h.slice(0,a).map((o,p)=>[f(p),R(o,c.key)])),M=m(r.filter((o,p)=>h[p]===c.key));return Object.values(y).includes("1")?c.marks.map((o,p)=>({id:`${g}:${c.key}:${p}`,...q(o),name:E(o),description:`${M} of ${u(s)}`,...C[o.kind],consequence:P(o),mark:o,genotypes:y})):[]}))}export{A as a,D as b,v as c,L as d,l as e,U as f,j as g,V as h,K as i};
2
+ //# sourceMappingURL=chunk-MUONTMYZ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/WalkFormsAdapter/pinned.ts", "../../src/WalkFormsAdapter/formRows.ts"],
4
+ "sourcesContent": ["export interface Pinned {\n refName: string\n start: number\n end: number\n}\n\nexport type FloorBp = number | 'auto'\n\nexport function pinnedOf(value: unknown): Pinned | undefined {\n const { refName, start, end } = (value ?? {}) as Partial<Pinned>\n return typeof refName === 'string' &&\n Number.isFinite(start) &&\n Number.isFinite(end) &&\n start! < end!\n ? { refName, start: start!, end: end! }\n : undefined\n}\n\nexport function floorOf(value: unknown): FloorBp {\n const n = Number(value)\n return value !== 'auto' && Number.isFinite(n) ? n : 'auto'\n}\n\nconst n = (x: number) => x.toLocaleString('en-US')\n\n// 1-based and closed, as a locus box reads\nexport const pinnedLocus = ({ refName, start, end }: Pinned) =>\n `${refName}:${n(start + 1)}-${n(end)}`\n\n// Names the window in each warning toast, so a re-pin or floor change can take\n// the old ones down\nexport const warningPrefix = (pinned: Pinned) =>\n `Forms of ${pinnedLocus(pinned)}: `\n", "import {\n NO_CALL_STATE,\n RARER_STATE,\n REFERENCE_STATE,\n formStateAt,\n formTag,\n markTag,\n} from '@jbrowse/graph-walks'\n\nimport type { Mark, MarkKind, StructuralForms } from '@jbrowse/graph-walks'\n\nexport const CONSEQUENCES = [\n 'loss',\n 'gain',\n 'shift',\n 'inversion',\n 'net',\n] as const\n\nexport type Consequence = (typeof CONSEQUENCES)[number]\n\n// `svType` in core's vocabulary (UNIVERSAL_FIELD_PRESETS) and `type` as a\n// Sequence Ontology term, which VcfFeature gives `<DUP:TANDEM>` too\nconst KINDS: Record<\n MarkKind,\n { svType: string; type: string; alt: string; consequence?: Consequence }\n> = {\n deletion: { svType: 'DEL', type: 'deletion', alt: '<DEL>' },\n insertion: { svType: 'INS', type: 'insertion', alt: '<INS>' },\n duplication: {\n svType: 'DUP',\n type: 'tandem_duplication',\n alt: '<DUP:TANDEM>',\n },\n replacement: { svType: 'CPX', type: 'complex_substitution', alt: '<CPX>' },\n inversion: {\n svType: 'INV',\n type: 'inversion',\n alt: '<INV>',\n consequence: 'inversion',\n },\n shift: {\n svType: 'CPX',\n type: 'complex_structural_alteration',\n alt: '<CPX>',\n consequence: 'shift',\n },\n net: {\n svType: 'CPX',\n type: 'complex_structural_alteration',\n alt: '<CPX>',\n consequence: 'net',\n },\n}\n\n// A lopsided replacement colours by the side graph-walks names, which its net\n// sign agrees with; any other change by its net sign\nconst sideOf = (m: Mark) =>\n m.lopsided ?? (m.delta < 0 ? 'deletion' : 'insertion')\n\nconst consequenceOf = (m: Mark): Consequence =>\n KINDS[m.kind].consequence ?? (sideOf(m) === 'deletion' ? 'loss' : 'gain')\n\nexport const formName = (i: number) => `F${i + 1}`\n\nexport const OTHER_FORMS = 'other'\n\nexport const DEFAULT_MAX_FORMS = 8\n\nfunction percent(n: number, of: number) {\n const p = (100 * n) / of\n return p > 0 && p < 1 ? '<1%' : `${Math.round(p)}%`\n}\n\n// The forms drawn as rows of their own, largest first; one more than\n// `maxForms` gets its own row rather than an \"other forms\" row\nconst shownCount = ({ forms }: StructuralForms, maxForms: number) =>\n forms.length > maxForms + 1 ? Math.max(0, maxForms) : forms.length\n\nconst sum = (forms: StructuralForms['forms']) =>\n forms.reduce((n, f) => n + f.members.length, 0)\n\n/**\n * One row per form, largest first, labelled \"66% \u00B7 del 18.4kb\". Past\n * `maxForms` the rest share one empty \"other forms\" row. A row's `forms`\n * counts the forms it holds, so the rows sum to the window's forms.\n */\nexport function formSources(\n result: StructuralForms,\n maxForms = DEFAULT_MAX_FORMS,\n) {\n const shown = shownCount(result, maxForms)\n const rest = result.forms.slice(shown)\n return [\n ...result.forms.slice(0, shown).map((f, i) => ({\n name: formName(i),\n label: `${percent(f.members.length, result.placed)} \u00B7 ${formTag(f, result)}`,\n haplotypes: f.members.length,\n forms: 1,\n })),\n ...(rest.length > 0\n ? [\n {\n name: OTHER_FORMS,\n label: `other forms \u00B7 ${percent(sum(rest), result.placed)}`,\n haplotypes: sum(rest),\n forms: rest.length,\n },\n ]\n : []),\n ]\n}\n\nconst LISTED_NAMES = 5\n\nfunction names(haplotypes: string[]) {\n const listed = haplotypes.slice(0, LISTED_NAMES).join(', ')\n const more = haplotypes.length - LISTED_NAMES\n return more > 0 ? `${listed} and ${more} more` : listed\n}\n\nconst haplotypeCount = (n: number) => `${n} haplotype${n === 1 ? '' : 's'}`\n\nexport function formWarnings(\n result: StructuralForms,\n maxForms = DEFAULT_MAX_FORMS,\n) {\n const { abridged, unplaced, forms } = result\n const shown = shownCount(result, maxForms)\n const rest = forms.slice(shown)\n return [\n ...(rest.length > 0\n ? [\n `${rest.length} smaller forms, ${haplotypeCount(sum(rest))}, share the empty \"other forms\" row; maxForms sets how many forms get a row of their own`,\n ]\n : []),\n ...(abridged.length > 0\n ? [\n `${haplotypeCount(abridged.length)} kept an abridged walk past the forms cut's step budget, which shows as a net change over its span: ${names(abridged)}`,\n ]\n : []),\n ...(unplaced.length > 0\n ? [\n `${haplotypeCount(unplaced.length)} ${unplaced.length === 1 ? 'has' : 'have'} no walk over the pinned window, so no form: ${names(unplaced)}`,\n ]\n : []),\n ]\n}\n\n// Genotype `0` in every form with a row of its own\nexport function referenceGenotypes(\n result: StructuralForms,\n maxForms = DEFAULT_MAX_FORMS,\n): Record<string, string> {\n return Object.fromEntries(\n result.forms\n .slice(0, shownCount(result, maxForms))\n .map((_, j) => [formName(j), '0']),\n )\n}\n\nexport interface FormVariant {\n id: string\n start: number\n end: number\n name: string\n description: string\n type: string\n svType: string\n consequence: Consequence\n alt: string\n mark: Mark\n genotypes: Record<string, string>\n}\n\n// A duplication draws over the stretch it copies rather than its zero-width\n// junction, as a VCF `<DUP>` spans its copy\nfunction drawnSpan({ copied, refStart, refEnd }: Mark) {\n const [start, end] = copied ?? [refStart, refEnd]\n return { start, end: Math.max(end, start + 1) }\n}\n\nconst genotypeOf = (formState: string | undefined, state: string) =>\n formState === state\n ? '1'\n : formState === NO_CALL_STATE || formState === RARER_STATE\n ? '.'\n : '0'\n\n/**\n * The marks of each changed state at a site that is not an edge, one variant\n * each, with genotype `1` in the forms in that state, `0` in the others and\n * `.` where a form has no call or only a rarer change. Only the forms with a\n * row of their own get a genotype, so the \"other forms\" row draws empty, and\n * a state none of them carries gives no variant.\n */\nexport function formVariants(\n result: StructuralForms,\n maxForms = DEFAULT_MAX_FORMS,\n): FormVariant[] {\n const { sites, forms, placed } = result\n const shown = shownCount(result, maxForms)\n return sites.flatMap((site, s) =>\n site.edge\n ? []\n : site.states.flatMap(state => {\n if (state.key === REFERENCE_STATE) {\n return []\n }\n const states = forms.map(f => formStateAt(result, f, s))\n const genotypes = Object.fromEntries(\n states\n .slice(0, shown)\n .map((f, j) => [formName(j), genotypeOf(f, state.key)]),\n )\n const carriers = sum(forms.filter((_, j) => states[j] === state.key))\n return Object.values(genotypes).includes('1')\n ? state.marks.map((mark, k) => ({\n id: `${s}:${state.key}:${k}`,\n ...drawnSpan(mark),\n name: markTag(mark),\n description: `${carriers} of ${haplotypeCount(placed)}`,\n ...KINDS[mark.kind],\n consequence: consequenceOf(mark),\n mark,\n genotypes,\n }))\n : []\n }),\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["pinnedOf", "value", "refName", "start", "end", "floorOf", "n", "x", "pinnedLocus", "warningPrefix", "pinned", "KINDS", "sideOf", "m", "consequenceOf", "formName", "i", "OTHER_FORMS", "DEFAULT_MAX_FORMS", "percent", "n", "of", "p", "shownCount", "forms", "maxForms", "sum", "f", "formSources", "result", "shown", "rest", "formTag", "LISTED_NAMES", "names", "haplotypes", "listed", "more", "haplotypeCount", "formWarnings", "abridged", "unplaced", "referenceGenotypes", "_", "j", "drawnSpan", "copied", "refStart", "refEnd", "start", "end", "genotypeOf", "formState", "state", "NO_CALL_STATE", "RARER_STATE", "formVariants", "sites", "placed", "site", "s", "REFERENCE_STATE", "states", "formStateAt", "genotypes", "carriers", "mark", "k", "markTag"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{a as m}from"./chunk-J3AXN7JQ.js";import{d as u,e as o,g as l,k as g}from"./chunk-AWGMTI73.js";import{h as i}from"./chunk-RCXOOBLX.js";var B={steps:"walkStepBudget",bytes:"walkByteBudget"},b=class{constructor(t,e){this.file=t;this.adapter=e;this.reader=new l(t)}async haplotypeNames(t={}){let{haplotypes:e}=await this.reader.header(t);return e.length>0?e:void 0}budgets(){return{stepBudget:this.adapter.getConf("walkStepBudget"),byteBudget:this.adapter.getConf("walkByteBudget"),budgetNames:B}}async subgraph(t,e,{signal:n,haplotypes:d,walkRows:a,expand:r}){let s=this.budgets(),{graph:h,kept:c,fragments:f}=await this.reader.cut(t,e,{...s,stepBudget:a?1/0:s.stepBudget,signal:n,keep:o(d?.map(p=>i(this.adapter,p)),t),...r?.length?{expand:p=>r.includes(p)}:{}});return m(h.tables(c,f),e,a)}async referenceNodes(t,e,n){let d=[];await g(this.file,t,await this.reader.queryStart(e.start,{...n,refName:t,end:e.end}),e.end,{signal:n.signal,lineCallback:r=>{let s=r.split(" ");s[3]==="ref"&&d.push(s)}});let a=new Set;return u(d).filter(r=>r.refName!==t||r.end<=e.start||r.start>=e.end||a.has(r.id)?!1:(a.add(r.id),!0))}};export{b as a};
2
- //# sourceMappingURL=chunk-SFYSQ52W.js.map
1
+ import{a as m}from"./chunk-QV7SSOMJ.js";import{h as u,i as o,k as l,x as g}from"./chunk-FTXDTU27.js";import{h as i}from"./chunk-6SWXMRAV.js";var B={steps:"walkStepBudget",bytes:"walkByteBudget"},b=class{constructor(t,e){this.file=t;this.adapter=e;this.reader=new l(t)}async haplotypeNames(t={}){let{haplotypes:e}=await this.reader.header(t);return e.length>0?e:void 0}budgets(){return{stepBudget:this.adapter.getConf("walkStepBudget"),byteBudget:this.adapter.getConf("walkByteBudget"),budgetNames:B}}async subgraph(t,e,{signal:n,haplotypes:d,walkRows:a,expand:r}){let s=this.budgets(),{graph:h,kept:c,fragments:f}=await this.reader.cut(t,e,{...s,stepBudget:a?1/0:s.stepBudget,signal:n,keep:o(d?.map(p=>i(this.adapter,p)),t),...r?.length?{expand:p=>r.includes(p)}:{}});return m(h.tables(c,f),e,a)}async referenceNodes(t,e,n){let d=[];await g(this.file,t,await this.reader.queryStart(e.start,{...n,refName:t,end:e.end}),e.end,{signal:n.signal,lineCallback:r=>{let s=r.split(" ");s[3]==="ref"&&d.push(s)}});let a=new Set;return u(d).filter(r=>r.refName!==t||r.end<=e.start||r.start>=e.end||a.has(r.id)?!1:(a.add(r.id),!0))}};export{b as a};
2
+ //# sourceMappingURL=chunk-OJWBLPPH.js.map
@@ -1,2 +1,2 @@
1
1
  function o(t){return t===void 0||t==="*"?void 0:t}function s(t){let e=t.split(" ");return{refName:e[0],start:+e[1],end:+e[2],segmentCount:+e[3],pathCount:+e[4],inversion:e[5]==="1",shortestAlleleLength:+e[6],longestAlleleLength:+e[7],segments:e[11],shortestAllele:o(e[12]),longestAllele:o(e[13])}}function u(t,e){return t.key!==void 0||e.key!==void 0?t.key===e.key:t.refName===e.refName&&t.start===e.start&&t.end===e.end}function i(t){return t.key??`${t.refName}:${t.start}-${t.end}`}function b(t){let{shortestAlleleLength:e,longestAlleleLength:n}=t;return e===n?`${n.toLocaleString()} bp`:`${e.toLocaleString()}-${n.toLocaleString()} bp`}var r=2147483647;function a(t){let{pathCount:e,segmentCount:n,inversion:l}=t;return[`${n} segments`,e===r?"more paths than gfatools counts":`up to ${e.toLocaleString()} paths`,...l?["inversion"]:[]].join(", ")}export{s as a,u as b,i as c,b as d,r as e,a as f};
2
- //# sourceMappingURL=chunk-JSRGX4TC.js.map
2
+ //# sourceMappingURL=chunk-P3FBI5ML.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.7.1/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-FX4RDMDN.js"],
3
+ "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@11.9.0/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-FX4RDMDN.js"],
4
4
  "sourcesContent": ["// src/bubbles/bubbleLine.ts\nfunction sequence(field) {\n return field === void 0 || field === \"*\" ? void 0 : field;\n}\nfunction parseBubbleLine(line) {\n const cols = line.split(\"\t\");\n return {\n refName: cols[0],\n start: +cols[1],\n end: +cols[2],\n segmentCount: +cols[3],\n pathCount: +cols[4],\n inversion: cols[5] === \"1\",\n shortestAlleleLength: +cols[6],\n longestAlleleLength: +cols[7],\n segments: cols[11],\n shortestAllele: sequence(cols[12]),\n longestAllele: sequence(cols[13])\n };\n}\nfunction sameBubble(a, b) {\n return a.key !== void 0 || b.key !== void 0 ? a.key === b.key : a.refName === b.refName && a.start === b.start && a.end === b.end;\n}\nfunction bubbleKey(b) {\n return b.key ?? `${b.refName}:${b.start}-${b.end}`;\n}\nfunction bubbleLabel(bubble) {\n const { shortestAlleleLength: min, longestAlleleLength: max } = bubble;\n return min === max ? `${max.toLocaleString()} bp` : `${min.toLocaleString()}-${max.toLocaleString()} bp`;\n}\nvar SATURATED_PATH_COUNT = 2147483647;\nfunction bubbleDescription(bubble) {\n const { pathCount, segmentCount, inversion } = bubble;\n return [\n `${segmentCount} segments`,\n pathCount === SATURATED_PATH_COUNT ? \"more paths than gfatools counts\" : `up to ${pathCount.toLocaleString()} paths`,\n ...inversion ? [\"inversion\"] : []\n ].join(\", \");\n}\n\nexport {\n parseBubbleLine,\n sameBubble,\n bubbleKey,\n bubbleLabel,\n SATURATED_PATH_COUNT,\n bubbleDescription\n};\n"],
5
5
  "mappings": "AACA,SAASA,EAASC,EAAO,CACvB,OAAOA,IAAU,QAAUA,IAAU,IAAM,OAASA,CACtD,CACA,SAASC,EAAgBC,EAAM,CAC7B,IAAMC,EAAOD,EAAK,MAAM,GAAG,EAC3B,MAAO,CACL,QAASC,EAAK,CAAC,EACf,MAAO,CAACA,EAAK,CAAC,EACd,IAAK,CAACA,EAAK,CAAC,EACZ,aAAc,CAACA,EAAK,CAAC,EACrB,UAAW,CAACA,EAAK,CAAC,EAClB,UAAWA,EAAK,CAAC,IAAM,IACvB,qBAAsB,CAACA,EAAK,CAAC,EAC7B,oBAAqB,CAACA,EAAK,CAAC,EAC5B,SAAUA,EAAK,EAAE,EACjB,eAAgBJ,EAASI,EAAK,EAAE,CAAC,EACjC,cAAeJ,EAASI,EAAK,EAAE,CAAC,CAClC,CACF,CACA,SAASC,EAAWC,EAAGC,EAAG,CACxB,OAAOD,EAAE,MAAQ,QAAUC,EAAE,MAAQ,OAASD,EAAE,MAAQC,EAAE,IAAMD,EAAE,UAAYC,EAAE,SAAWD,EAAE,QAAUC,EAAE,OAASD,EAAE,MAAQC,EAAE,GAChI,CACA,SAASC,EAAUD,EAAG,CACpB,OAAOA,EAAE,KAAO,GAAGA,EAAE,OAAO,IAAIA,EAAE,KAAK,IAAIA,EAAE,GAAG,EAClD,CACA,SAASE,EAAYC,EAAQ,CAC3B,GAAM,CAAE,qBAAsBC,EAAK,oBAAqBC,CAAI,EAAIF,EAChE,OAAOC,IAAQC,EAAM,GAAGA,EAAI,eAAe,CAAC,MAAQ,GAAGD,EAAI,eAAe,CAAC,IAAIC,EAAI,eAAe,CAAC,KACrG,CACA,IAAIC,EAAuB,WAC3B,SAASC,EAAkBJ,EAAQ,CACjC,GAAM,CAAE,UAAAK,EAAW,aAAAC,EAAc,UAAAC,CAAU,EAAIP,EAC/C,MAAO,CACL,GAAGM,CAAY,YACfD,IAAcF,EAAuB,kCAAoC,SAASE,EAAU,eAAe,CAAC,SAC5G,GAAGE,EAAY,CAAC,WAAW,EAAI,CAAC,CAClC,EAAE,KAAK,IAAI,CACb",
6
6
  "names": ["sequence", "field", "parseBubbleLine", "line", "cols", "sameBubble", "a", "b", "bubbleKey", "bubbleLabel", "bubble", "min", "max", "SATURATED_PATH_COUNT", "bubbleDescription", "pathCount", "segmentCount", "inversion"]
@@ -0,0 +1,2 @@
1
+ import{l as o}from"./chunk-G53BI7VK.js";function u(a,r,e){return e?{...a,walkRowRuns:o(a,r)}:a}export{u as a};
2
+ //# sourceMappingURL=chunk-QV7SSOMJ.js.map
@@ -0,0 +1,2 @@
1
+ import{a as lt,c as dt,d as ht,g as C,j as U,l as xt,q as pt,r as R,w as mt,x as Mt}from"./chunk-LE7FZM6Y.js";import{b as yt}from"./chunk-6SWXMRAV.js";var bt=20;function fo(t){let n=o=>Math.round(o*100)/100;return t.map((o,e)=>`${e?"L":"M"}${n(o.x)},${n(o.y)}`).join("")}function gt(t,n,o,e,s){let r=Math.hypot(e-n,o-t);if(r===0)return[o,e];let c=(o-t)/r,a=(e-n)/r;return[o+s*c,e+s*a]}function Y(t,n){let o=1-n,e=o*o*o,s=3*o*o*n,r=3*o*n*n,c=n*n*n;return{x:e*t.x0+s*t.cx0+r*t.cx1+c*t.x1,y:e*t.y0+s*t.cy0+r*t.cy1+c*t.y1}}function Ot(t){let n=t[Math.floor(t.length/2)];return n?Y(n,.5):void 0}function Pt(t){let n=1/0,o=1/0,e=-1/0,s=-1/0;for(let r of t)n=Math.min(n,r.x0,r.cx0,r.cx1,r.x1),e=Math.max(e,r.x0,r.cx0,r.cx1,r.x1),o=Math.min(o,r.y0,r.cy0,r.cy1,r.y1),s=Math.max(s,r.y0,r.cy0,r.cy1,r.y1);return{minX:n,minY:o,maxX:e,maxY:s}}function Kt(t,n,o){let e=Y(t,n),s=Y(t,o),r=(o-n)/3,c=vt(t,n),a=vt(t,o);return{x0:e.x,y0:e.y,cx0:e.x+c.x*r,cy0:e.y+c.y*r,cx1:s.x-a.x*r,cy1:s.y-a.y*r,x1:s.x,y1:s.y}}function vt(t,n){let o=1-n,e=3*o*o,s=6*o*n,r=3*n*n;return{x:e*(t.cx0-t.x0)+s*(t.cx1-t.cx0)+r*(t.x1-t.cx1),y:e*(t.cy0-t.y0)+s*(t.cy1-t.cy0)+r*(t.y1-t.cy1)}}var $=32;function Qt(t,n,o,e){let s=[],r=0;return t.forEach((c,a)=>{let i=n[a],d=i/$,l=Y(c,0);for(let u=1;u<=$;u++){let h=Y(c,u/$);if(Math.max(l.x,h.x)+d>=o.minX&&Math.min(l.x,h.x)-d<=o.maxX&&Math.max(l.y,h.y)+d/e>=o.minY&&Math.min(l.y,h.y)-d/e<=o.maxY){let f=r+i*(u-1)/$,x=r+i*u/$,y=s.at(-1);y&&y[1]>=f?y[1]=x:s.push([f,x])}l=h}r+=i}),s}function uo(t,n,o=1,e){let s=t.map(u=>Math.hypot(u.cx0-u.x0,(u.cy0-u.y0)*o)+Math.hypot(u.cx1-u.cx0,(u.cy1-u.cy0)*o)+Math.hypot(u.x1-u.cx1,(u.y1-u.cy1)*o)),r=s.reduce((u,h)=>u+h,0),c=Math.round(r/n),a=Math.max(3,c%2?c:c+1),i=e?Qt(t,s,e,o):void 0,d=0,l=[];for(let u=0;u<a;u+=2){let h=u/a*r,f=(u+1)/a*r;if(i){for(;d<i.length&&i[d][1]<h;)d++;if(d===i.length)break;if(i[d][0]>f)continue}let x=[],y=[],p=0;t.forEach((b,m)=>{let M=s[m],v=p+M;if(M>0&&v>h&&p<f){let g=Math.max(0,(h-p)/M),A=Math.min(1,(f-p)/M);x.push(Kt(b,g,A)),y.push((m+g)/t.length,(m+A)/t.length)}p=v}),x.length&&l.push({curves:x,startAlong:y[0],endAlong:y.at(-1)})}return l}var lo=(t,n,o)=>({dx:t.dx+(n.dx-t.dx)*o,dy:t.dy+(n.dy-t.dy)*o});function ho(t,n,o,e,s){let r=t.length,c=new Array(r);for(let a=0;a<r;a++){let i=t[a],d=a/r,l=(a+1)/r,u=n+(e-n)*d,h=o+(s-o)*d,f=n+(e-n)*l,x=o+(s-o)*l;c[a]={x0:i.x0+u,y0:i.y0+h,cx0:i.cx0+u,cy0:i.cy0+h,cx1:i.cx1+f,cy1:i.cy1+x,x1:i.x1+f,y1:i.y1+x}}return c}function xo(t,n,o){let e=new Array(t.length);for(let s=0;s<t.length;s++){let r=t[s];e[s]={x0:r.x0+n,y0:r.y0+o,cx0:r.cx0+n,cy0:r.cy0+o,cx1:r.cx1+n,cy1:r.cy1+o,x1:r.x1+n,y1:r.y1+o}}return e}function H(t,n){let o=t.length-1;return n==="end"?{at:t[o],inward:t[o-1]}:{at:t[0],inward:t[1]}}var Zt=.5,tn=80;function G(t){return t.endsWith("-")?"-":"+"}function F(t){let n=(o,e)=>(e??G(o))===G(o);return{from:n(t.from,t.fromStrand)?"end":"start",to:n(t.to,t.toStrand)?"start":"end"}}function At(t){let n=1/0,o=-1/0;for(let e of t)n=Math.min(n,e.x),o=Math.max(o,e.x);return{min:n,max:o}}function wt(t,n){return Math.max(0,n.min-t,t-n.max)}function _t(t,n,o){let e=wt(t[0].x,n),s=wt(t[t.length-1].x,n);return e===s?o:e<s?"start":"end"}function nn(t,n){return{from:_t(t,At(n),"end"),to:_t(n,At(t),"start")}}var Et=new WeakMap;function on(t,n){let o=Et.get(t);o||(o=new WeakMap,Et.set(t,o));let e=o.get(n);return e||(e=nn(t,n),o.set(n,e)),e}var en=.75,sn=1.15,rn=.35,cn=3*bt;function an(t,n,o,e,s,r){let c=Math.hypot(o-t,e-n),a=c===0?1:(o-t)/c,i=c===0?0:(e-n)/c,d=0,l=1/0,u=-1/0;for(let y of s){let p=y.x-t,b=y.y-n,m=p*-i+b*a;Math.abs(m)>Math.abs(d)&&(d=m);let M=p*a+b*i;l=Math.min(l,M),u=Math.max(u,M)}let h=s.length?u-l:0,f=Math.max(Math.abs(d)*sn/en,h*rn),x=r===void 0?f:Math.min(f,r);return d<0?-x:x}function St({scaleX:t,scaleY:n}){return n/t}var fn=3;function K(t,n,o){let e=n.x-t.x,s=(n.y-t.y)*o,r=Math.hypot(e,s);return r===0?void 0:{x:e/r,y:s/r}}function yo(t,n,o,e){let s=St(e),r=fn/Math.max(e.scaleX,1e-6),c=K(t[t.length-1],n[0],s)??K(t[0],t.at(-1),s)??K(n[0],n.at(-1),s)??{x:1,y:0},a=[];for(let i=0;i<o;i++){let d=(i-(o-1)/2)*r;a.push({x:-c.y*d,y:c.x*d/s})}return a}function Q(t,n){return t.map(o=>({x:o.x,y:o.y*n}))}function un(t,n){for(let o of t)o.y0/=n,o.cy0/=n,o.cy1/=n,o.y1/=n;return t}function Z(t,n,o){let e=0;for(let s=1;s<t.length;s++){let r=t[s-1],c=t[s];e+=Math.hypot((c.x-r.x)*n,(c.y-r.y)*o)}return e}var ln=12,dn=40;function It(t,n){let o=Z(t,n,n);return Math.min(dn,Math.max(ln,o/2))/Math.max(n,Number.EPSILON)}function hn(t){return t.from!==t.to?!1:t.fromStrand&&t.toStrand&&t.fromStrand!==t.toStrand?t.fromStrand==="+"?"end":"start":!0}function Xt(t,n=!1){let o=hn(t);if(!n)return o;let e=F(t);return o===!1?e:e.from===e.to?e.from:!0}function xn(t,n){let{at:o,inward:e}=t,s=e?o.x-e.x:1,r=e?o.y-e.y:0,c=Math.hypot(s,r)||1,a=s/c,i=r/c,d=o.x,l=o.y,u=d+a*n/3,h=l+i*n/3,f=d+a*n,x=l+i*n,y=-i*n/2,p=a*n/2;return[{x0:d,y0:l,cx0:u,cy0:h,cx1:f+y,cy1:x+p,x1:f,y1:x},{x0:f,y0:x,cx0:f-y,cy0:x-p,cx1:u,cy1:h,x1:d,y1:l}]}function tt(t,n,o,e,s=[],r){let c=e.scaleX,a=St(e),i=r??(e.pixelRows?cn:void 0);if(o===!1&&(o=on(t,n)),a!==1)return un(tt(Q(t,a),Q(n,a),o,{scaleX:c,scaleY:c},Q(s,a),i===void 0?void 0:i*a),a);if(typeof o=="string")return xn(H(t,o),It(t,c));let d=o===!0,l=o===!0?{from:"end",to:"start"}:o,u=H(t,l.from),h=H(n,l.to),f=u.at,x=h.at,y=f.x,p=f.y,b=x.x,m=x.y;if(d){let M=1,v=0;if(u.inward){let P=f.x-u.inward.x,S=f.y-u.inward.y,N=Math.hypot(P,S);N>0&&(M=P/N,v=S/N)}let g=It(t,c),A=-v,_=M,I=(f.x+x.x)/2+A*g,E=(f.y+x.y)/2+_*g,w=y+M*g,X=p+v*g,O=b-M*g,L=m-v*g;return[{x0:y,y0:p,cx0:w,cy0:X,cx1:w+A*g,cy1:X+_*g,x1:I,y1:E},{x0:I,y0:E,cx0:O+A*g,cy0:L+_*g,cx1:O,cy1:L,x1:b,y1:m}]}else{let M=u.inward??{x:f.x-(x.x-f.x),y:f.y-(x.y-f.y)},v=h.inward??{x:x.x-(f.x-x.x),y:x.y-(f.y-x.y)},g=Math.hypot(b-y,m-p),A=(ct,at,qt,Jt)=>{let it=at.x-ct.x,ft=at.y-ct.y,ut=Math.hypot(it,ft),Ut=ut===0?0:(qt*it+Jt*ft)/ut;return Math.max(0,Math.min(g*Zt,tn,Ut*.5))},_=x.x-f.x,I=x.y-f.y,[E,w]=gt(M.x,M.y,f.x,f.y,A(M,f,_,I)),[X,O]=gt(v.x,v.y,x.x,x.y,A(v,x,-_,-I)),L=s.length?an(y,p,b,m,s,i):0,P=g===0?1:g,S=(b-y)/P,N=(m-p)/P,W=-N*L,T=S*L,k=S*Math.abs(L),rt=N*Math.abs(L);return[{x0:y,y0:p,cx0:E+W-k,cy0:w+T-rt,cx1:X+W+k,cy1:O+T+rt,x1:b,y1:m}]}}function Lt(t,n){let o=t[0],e=t.at(-1);return Math.hypot(o.x-n.x,o.y-n.y)<Math.hypot(e.x-n.x,e.y-n.y)?"start":"end"}function Nt(t,n,o,e){let s=H(t,e?.from??Lt(t,o[0])),r=H(n,e?.to??Lt(n,o.at(-1))),c=[s.at,...o,r.at],a=d=>{let l=c[d],u=f=>Math.hypot(f.x-l.x,f.y-l.y),h=(f,x)=>{let y=f?u(f):0,p=u(x);return y===0?{x:x.x-l.x,y:x.y-l.y}:{x:(l.x-f.x)/y*p,y:(l.y-f.y)/y*p}};if(d===0)return h(s.inward,c[1]);if(d===c.length-1){let f=h(r.inward,c[d-1]);return{x:-f.x,y:-f.y}}return{x:(c[d+1].x-c[d-1].x)/2,y:(c[d+1].y-c[d-1].y)/2}},i=[];for(let d=0;d<c.length-1;d++){let l=c[d],u=c[d+1],h=a(d),f=a(d+1);i.push({x0:l.x,y0:l.y,cx0:l.x+h.x/3,cy0:l.y+h.y/3,cx1:u.x-f.x/3,cy1:u.y-f.y/3,x1:u.x,y1:u.y})}return i}function nt(){let t=new WeakMap;return(n,o,e)=>{let s=t.get(n);if(s?.deps.length===o.length&&s.deps.every((c,a)=>Object.is(c,o[a])))return s.value;let r=e();return t.set(n,{deps:o,value:r}),r}}var Ct=11,yn=6.2,V=4;function ot(t){return t.length*yn+V*2}function pn(t,n){return t.x0<n.x1&&t.x1>n.x0&&t.y0<n.y1&&t.y1>n.y0}function Bt(t,n){return t.x1<=0||t.x0>=n.width||t.y1<=0||t.y0>=n.height}function mn(t,n){return t.x0>=0&&t.x1<=n.width&&t.y0>=0&&t.y1<=n.height}function Tt(t,n=[]){let o=[...n];return e=>Bt(e,t)||o.some(s=>pn(s,e))?!1:(o.push(e),!0)}function Mo(t,n,o){let e=[],s=Ct+V*2,r=(c,a)=>{let i=ot(a),d=c.y>n.height/2?-1:1;for(let l=0;l<=(c.stack??0);l++){let u=c.y+d*l*s,h={x0:c.x-i/2,x1:c.x+i/2,y0:u-Ct-V,y1:u+V};if(Bt(h,n))return;if(mn(h,n)&&(c.fits?.(h)??!0)&&o(h))return{...c,text:a,y:u,w:i}}};for(let c of t){let a=r(c,c.text)??(c.fallback===void 0?void 0:r(c,c.fallback));a&&e.push(a)}return e}function Wt(t){return t==="+"?"-":"+"}function wo(t,n=new Set){let o=t.edges.map(F),e=new Map,s=(f,x,y)=>{lt(e,`${f}|${x}`,y)};t.edges.forEach((f,x)=>{s(f.from,o[x].from,x),s(f.to,o[x].to,x)});let r=f=>{let x=e.get(`${f}|end`);if(x?.length!==1)return;let y=x[0],p=t.edges[y];return p.from===f&&p.to!==f&&!n.has(f)&&!n.has(p.to)&&o[y].from==="end"&&o[y].to==="start"&&e.get(`${p.to}|start`)?.length===1?y:void 0},c=new Set,a=new Map,i=new Map;for(let f of t.nodes){let x=e.get(`${f.id}|start`),y=x?.length===1?t.edges[x[0]].from:void 0;if(a.has(f.id)||y!==void 0&&r(y)===x[0])continue;let p=[f.id];for(;;){let b=r(p.at(-1)),m=b===void 0?void 0:t.edges[b].to;if(m===void 0||a.has(m))break;c.add(b),p.push(m)}for(let b of p)a.set(b,f.id);p.length>1&&i.set(f.id,p)}for(let f of t.nodes)a.has(f.id)||a.set(f.id,f.id);let d=new Map(t.nodes.map(f=>[f.id,f])),l=[];for(let f of t.nodes){if(a.get(f.id)!==f.id)continue;let x=i.get(f.id);if(!x){l.push(f);continue}let y=x.map(m=>d.get(m)),p=y.filter(C),b=p.length?p.reduce((m,M)=>m.stable.start<=M.stable.start?m:M):y[0];l.push({id:f.id,name:f.name,length:y.reduce((m,M)=>m+M.length,0),depth:f.depth,stable:b.stable})}let u=new Set,h=[];return t.edges.forEach((f,x)=>{let y=a.get(f.from),p=a.get(f.to),b=o[x],m=`${y}|${b.from}>${p}|${b.to}`;c.has(x)||u.has(m)||(u.add(m),h.push({from:y,to:p,...b.from==="start"?{fromStrand:Wt(G(y))}:{},...b.to==="end"?{toStrand:Wt(G(p))}:{}}))}),{graph:{...t,nodes:l,edges:h,paths:void 0,pathVisits:void 0},runs:i}}function _o(t,n,o){let e={...t};for(let[s,r]of n){let c=t[s];if(!c?.length)continue;delete e[s];let a=st(c),i=a.at(-1),d=r.map(h=>Math.max(o(h),0)),l=d.reduce((h,f)=>h+f,0),u=0;r.forEach((h,f)=>{let x=l?d[f]/l*i:i/r.length,y=f===r.length-1?i:u+x;e[h]=$t(c,a,u,y),u=y})}return e}function Eo(t,n,o){if(t.length===0)return[];let e=st(t),s=e.at(-1);return $t(t,e,n*s,o*s)}function kt(t){let n=st(t);return et(t,n,n.at(-1)/2)}function st(t){let n=[0];for(let o=1;o<t.length;o++)n.push(n[o-1]+Math.hypot(t[o].x-t[o-1].x,t[o].y-t[o-1].y));return n}function Rt(t,n){let o=0,e=t.length;for(;o<e;){let s=o+e>>1;t[s]<n?o=s+1:e=s}return o}function et(t,n,o){if(o<=0)return{...t[0]};let e=Rt(n,o);if(e>=n.length)return{...t.at(-1)};let s=n[e]-n[e-1],r=s>0?(o-n[e-1])/s:0,c=t[e-1],a=t[e];return{x:c.x+(a.x-c.x)*r,y:c.y+(a.y-c.y)*r}}function $t(t,n,o,e){let s=[et(t,n,o)];for(let r=Rt(n,o);r<t.length&&n[r]<e;r++)n[r]>o&&s.push({...t[r]});return s.push(et(t,n,e)),s}function So(t,n){let o=new Set(t.nodes.filter(i=>C(i)&&U(i,n)).map(i=>i.id)),e=t.paths??[];if(o.size===0||e.length===0)return t;let s=e.map(i=>{let d=-1,l=-1;return i.nodeIds.forEach((u,h)=>{o.has(u)&&(d<0&&(d=h),l=h)}),d<0?void 0:{first:d,last:l}});if(s.every((i,d)=>i?.first===0&&i.last===e[d].nodeIds.length-1))return t;let r=new Set,c=[],a=new Map;return e.forEach((i,d)=>{let l=s[d];if(l){let u=i.nodeIds.slice(l.first,l.last+1);for(let h of u)r.add(h);c.push({...i,nodeIds:u}),a.set(i.name,{first:l.first,nodeIds:u})}}),{...t,nodes:t.nodes.filter(i=>r.has(i.id)),edges:t.edges.filter(i=>r.has(i.from)&&r.has(i.to)),paths:c,pathVisits:t.pathVisits&&Mn(t.pathVisits,e,s,new Map(t.nodes.map(i=>[i.id,i.name]))),anchorPaths:mt(t,a)}}function Mn(t,n,o,e){let s=t.replay(),r=new pt;return n.forEach((c,a)=>{let i=t.pathIndex(R(c.name).name),d=o[a];c.nodeIds.forEach((l,u)=>{let h=e.get(l)??l,f=s(t.slot(h),i);f>=0&&d&&u>=d.first&&u<=d.last&&r.add(h,t.paths[i],t.samples[i],t.start[f],t.reversed[f]===1)})}),r.build()}function Xo(t,n,o){let e=t.nodes.map(s=>{if(!C(s))return s;let r=s.stable.start,c=r+s.length,[a,i]=U(s,n)?[Math.max(r,n.start),Math.min(c,n.end)]:c<=n.start?[Math.max(r,c-o),c]:[r,Math.min(c,r+o)];return a===r&&i===c?s:{...s,length:i-a,stable:{...s.stable,start:a},unclipped:{start:r,length:s.length}}});return e.some((s,r)=>s!==t.nodes[r])?{...t,nodes:e}:t}function Ht(t){return t.nodes.some(n=>n.unclipped)?{...t,nodes:t.nodes.map(({unclipped:n,...o})=>n&&o.stable?{...o,length:n.length,stable:{...o.stable,start:n.start}}:o)}:t}var bn=1;function gn(t,n){return n.flatMap(o=>t[o]??[])}function Gt(t,n,o,e,s,r){let c=t[n.from],a=t[n.to];if(!(!c?.length||!a?.length))return s?Nt(c,a,s,r?F(n):void 0):tt(c,a,Xt(n,r),o,e?gn(t,e):[])}function vn(t){let n=dt(t.nodes.filter(C),o=>o.stable.refName);for(let o of n.values())o.sort((e,s)=>e.stable.start-s.stable.start);return n}function An(t,n,o){let e=[];if(t)for(let s=xt(t,n);s<t.length;s++){let r=t[s];if(r.stable.start>=o)break;r.stable.start+r.length<=o&&e.push(r.id)}return e}function wn(t,n,o,e){let{fromStrand:s,toStrand:r}=t;if(s===void 0||r===void 0)return!0;let c=s===(n.stable.strand??"+"),a=r===(o.stable.strand??"+");return e?c&&a:!c&&!a}function _n(t,n,o,e){let s;for(let r of e(n))for(let c of e(o)){let a=r<=c,i=a?{start:r+n.length,end:c}:{start:c+o.length,end:r};wn(t,n,o,a)&&(!s||Math.abs(i.end-i.start)<Math.abs(s.end-s.start))&&(s=i)}return s}var En=.01;function In(t,n){let o=new Map;for(let[e,s]of t){let r=s.flatMap(c=>{let a=n(c);return a.slice(1).map((i,d)=>({at:a[d],copy:i-a[d]}))});r.length&&o.set(e,r.sort((c,a)=>c.at-a.at))}return o}function Ln(t,n,o){if(!t)return!1;let e=ht(t.length,r=>t[r].at<n),s=[t[e-1],t[e]].filter(r=>r!==void 0).sort((r,c)=>Math.abs(r.at-n)-Math.abs(c.at-n))[0];return s!==void 0&&Math.abs(s.at-n)<=s.copy&&Math.abs(o-s.copy)<=s.copy*En}function $o(t){let n=Ht(t),o=new Map(n.nodes.map(a=>[a.id,a])),e=vn(n),s=Mt(n),r=In(e,s),c=[];for(let a=0;a<n.edges.length;a++){let i=n.edges[a],d=o.get(i.from),l=o.get(i.to);if(!i.foldBridge&&d!==void 0&&l!==void 0&&C(d)&&C(l)&&d.stable.refName===l.stable.refName){let u=_n(i,d,l,s),h=d.stable.refName,f=u?u.end-u.start:0;if(u&&f>=bn&&!Ln(r.get(h),u.start,f)){let{start:x,end:y}=u;c.push({edgeIndex:a,from:i.from,to:i.to,...i.fromStrand?{fromStrand:i.fromStrand}:{},...i.toStrand?{toStrand:i.toStrand}:{},refName:h,start:x,end:y,bp:f,bypassed:An(e.get(h),x,y)})}}}return c}function On(t,n){let o=new Map,e=c=>{let a=c;for(;o.has(a);)a=o.get(a);return a!==c&&o.set(c,a),a},s=(c,a)=>{let[i,d]=[e(c),e(a)];return i!==d&&o.set(i,d),i!==d},r=new Set(n.map(c=>c.edgeIndex));return t.edges.forEach((c,a)=>{r.has(a)||s(c.from,c.to)}),new Set(n.filter(c=>!s(c.from,c.to)).map(c=>c.edgeIndex))}var Yt=new WeakMap;function Ho(t,n,o=!0){let e=Yt.get(n);e||(e=new Map,Yt.set(n,e));let s=e.get(o);if(!s){let r=o?new Set:On(t,n);s={shown:n.filter(c=>!r.has(c.edgeIndex)),bypassed:new Map(n.map(c=>[c.edgeIndex,c.bypassed])),hidden:r},e.set(o,s)}return s}var Pn=26,Sn=4e4,Xn=8,Nn=8,Cn=5.7,Bn=6,Tn=13,D=3,j=2;function J(t){return(t.length*Cn+Bn+D)/2}var B=(Tn+D)/2,Wn=J("1 bp");function z(t,n,o){return{x0:n-t,x1:n+t,y0:o-B,y1:o+B}}function zo(t,n){return{x0:6,x1:6+ot(t)+D,y0:n-8-D/2,y1:n+8+D/2}}function q(t,n,o){return o<n?t:Math.min(Math.max(t,n),o)}function Vt(t){return String(t).replace(/\B(?=(\d{3})+$)/g,",")}function jt(t){let[n,o]=t>=999500?[t/1e6,"Mb"]:t>=1e3?[t/1e3,"kb"]:[];return n===void 0?`${t} bp`:`${+n.toFixed(n>=100?0:1)} ${o}`}function Ft(t){return`${jt(t)} del`}function kn(t,n,o,e){let s=t[0],r=t[t.length-1],c=(n.x-(s.x0+r.x1)/2)*o,a=(n.y-(s.y0+r.y1)/2)*e,i=Math.hypot(c,a);return i===0?{x:0,y:-1}:{x:c/i,y:a/i}}function Rn(t,n){return Math.abs(n.x)*(t.x1-t.x0)/2+Math.abs(n.y)*(t.y1-t.y0)/2}function $n(t,n){let o=(t.x1-t.x0)/2,e=(t.y1-t.y0)/2;return Math.min(n.x===0?1/0:o/Math.abs(n.x),n.y===0?1/0:e/Math.abs(n.y))}function Hn(t,n){let o=1/0,e=1/0,s=-1/0,r=-1/0;for(let c of t)for(let a of n[c]??[])o=Math.min(o,a.x),s=Math.max(s,a.x),e=Math.min(e,a.y),r=Math.max(r,a.y);return o===1/0?void 0:{minX:o,minY:e,maxX:s,maxY:r}}var Yn=nt();function Gn(t,n){return Yn(t,[n],()=>Object.entries(t).filter(([o,e])=>e.length>0&&n.has(o)).sort(([o],[e])=>n.get(e)-n.get(o)))}var Fn=nt();function Dn(t,n,o,e,s,r){let{scaleX:c,scaleY:a}=o;return Fn(t,[n,s,r,c,a,e],()=>{let i=[];for(let d of[...n].sort((l,u)=>u.bp-l.bp)){let l=Gt(t,d,o,d.bypassed,s?.[d.edgeIndex],r),u=l?Ot(l):void 0;if(l&&u){let{minX:h,minY:f,maxX:x,maxY:y}=Pt(l);i.push({deletion:d,curves:l,apex:u,extent:Math.max((x-h)*c,(y-f)*a)})}}return i})}function Vn({nodePositions:t,nodeLengths:n,deletions:o,deletionRoutes:e,stranded:s=!1,alleleDeletions:r,axis:c,translateX:a,translateY:i,width:d,height:l,version:u=0}){let{scaleX:h,scaleY:f}=c,x=[],y=[];for(let{deletion:m,curves:M,apex:v,extent:g}of Dn(t,o,c,u,e,s))if(g>=Pn){let A=Ft(m.bp),_=J(A),I=z(_,0,0),E=v.x*h+a,w=v.y*f+i;if(E<0||E>d||w<0||w>l)continue;let X=g>=_*2/j,O=kn(M,v,h,f),L=Rn(I,O)+Nn,P=X?E:q(E+O.x*L,_,d-_),S=X?w:q(w+O.y*L,B,l-B),N=Math.hypot(P-E,S-w),W;if(N>0){let T={x:(P-E)/N,y:(S-w)/N},k=$n(I,T);W={arcX:E,arcY:w,labelX:P-T.x*k,labelY:S-T.y*k}}x.push({label:{key:`del:${m.edgeIndex}`,text:A,x:P,y:S,kind:"deletion",leader:W},box:z(_,P,S)})}let p=new Set,b=[...r??[]].sort((m,M)=>M.bp-m.bp);for(let m of b){let M=Hn(m.nodeIds,t);if(!M)continue;let v=Math.max(M.minX*h+a,0),g=Math.min(M.maxX*h+a,d),A=Math.max(M.minY*f+i,0),_=Math.min(M.maxY*f+i,l);if(g<v||_<A)continue;let I=Math.max(g-v,_-A),E=Ft(m.bp),w=J(E);if(I>=w*2/j){for(let L of m.nodeIds)p.add(L);let X=q((v+g)/2,w,d-w),O=q((A+_)/2,B,l-B);x.push({label:{key:`alleledel:${m.nodeIds.join(",")}`,text:E,x:X,y:O,kind:"deletion"},box:z(w,X,O)})}}for(let[m,M]of Gn(t,n)){if(p.has(m))continue;let{x:v,y:g}=kt(M),A=g*f+i;if(A+B<=0||A-B>=l)continue;let _=Z(M,h,f);if(_<Wn*2/j)continue;let I=jt(n.get(m)),E=J(I);if(_>=E*2/j){let w=v*h+a;y.push({label:{key:`node:${m}`,text:I,x:w,y:A,kind:"node"},box:z(E,w,A)})}}return{deletions:x,nodes:y}}function jn(t,n){return Math.max(Xn,Math.floor(t*n/Sn))}function Dt(t,n,o=1/0){let e=[];for(let{label:s,box:r}of t){if(e.length>=o)break;n(r)&&e.push(s)}return e}function qo({reserved:t,take:n,...o}){n??=Tt(o,t);let{deletions:e,nodes:s}=Vn(o);return[...Dt(e,n),...Dt(s,n,jn(o.width,o.height))]}function Zo(t){let n=0;for(let o=0;o<t.length;o++)n=t.charCodeAt(o)+((n<<5)-n);return Math.abs(n%360)}function zn(t,n){return t*360/n}var qn=.7,Jn=.5,Un=16;function te(t){return t>0&&t<=Un}function Kn(t,n){return`hsl(${zn(t,n)}, ${qn*100}%, ${Jn*100}%)`}function ne(t,n){return`hsl(0, 0%, ${n>1?25+45*t/(n-1):45}%)`}function Qn(t){let n=R(t).name.split("#"),o=n.join("#");if(n.length>=3&&yt(n[0])){let e=n.slice(2).join("#");return[e,e,o]}return[n[0],n.slice(0,2).join("#"),o]}function Zn(t,n){let{start:o}=R(t);return n.map(e=>`${e} @${Vt(o)}`)}function oe(t,n){let o=new Map;t.forEach((l,u)=>{o.has(l.name)||o.set(l.name,u)});let e=[...o].map(([l,u])=>({name:l,i:u})),s=e.map(l=>Qn(l.name)),r=l=>e.map((u,h)=>s[h][l]),c=l=>e.map((u,h)=>Zn(u.name,s[h])[l]),a=[r(0),r(1),c(0),r(2),c(1),c(2)],d=a.find(l=>new Set(l).size===e.length)??a.at(-1);return e.map(({name:l,i:u},h)=>({name:l,label:d[h],color:n?.[u]??Kn(u,t.length)}))}function ee(t){let n=new Map;return new Map([...t].sort((o,e)=>o.label.localeCompare(e.label)).map(o=>{let e=(n.get(o.label)??0)+1;return n.set(o.label,e),[o.name,e>1?`${o.label} (${e})`:o.label]}))}var re=[{value:"depth",label:"By depth",description:"Thicker the more paths carry a node, on the square root of its depth against the mean. A graph with one depth everywhere draws uniform."},{value:"uniform",label:"Uniform",description:"Every node the same thickness."}],to=.3,zt=3;function no(t){let n=0,o=0;for(let e of t.nodes)n+=e.depth*e.length,o+=e.length;return o>0?n/o:0}function oo(t,n){return!(n>0)||!(t.depth>0)?1:Math.min(zt,Math.max(to,Math.sqrt(t.depth/n)))}function eo(t,n,o,e){return n*(o==="depth"?oo(t,e):1)}function so(t,n){return t*(n==="depth"?zt:1)}var ro=4;function co(t,n){return Math.max(t/n,ro)}function ce(t,n,o,e,s=0){let r=t?no(t):0,c=a=>s>0?co(a,s)*s/2:a/2;return{maxHalfWidthPx:c(so(o,e)),halfWidthPx:a=>{let i=n?.get(a);return c(i?eo(i,o,e,r):o)}}}export{bt as a,fo as b,Pt as c,uo as d,lo as e,ho as f,xo as g,G as h,F as i,St as j,yo as k,Z as l,nt as m,Ct as n,yn as o,V as p,ot as q,Tt as r,Mo as s,wo as t,_o as u,Eo as v,So as w,Xo as x,Gt as y,$o as z,Ho as A,zo as B,Vt as C,jt as D,qo as E,Zo as F,zn as G,qn as H,Jn as I,Un as J,te as K,Kn as L,ne as M,oe as N,ee as O,re as P,no as Q,eo as R,co as S,ce as T};
2
+ //# sourceMappingURL=chunk-S333HOG5.js.map