jbrowse-plugin-graphgenomeviewer 6.27.0 → 7.0.0

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 (105) hide show
  1. package/dist/chunks/GbzBaseSyntenyAdapter-4EMCRZFD.js +2 -0
  2. package/dist/chunks/{GbzBaseSyntenyAdapter-O5OWS5EK.js.map → GbzBaseSyntenyAdapter-4EMCRZFD.js.map} +1 -1
  3. package/dist/chunks/{GraphGenomeView-T4YQMLAX.js → GraphGenomeView-Q3ZQDV5H.js} +2 -2
  4. package/dist/chunks/{GraphGenomeView-T4YQMLAX.js.map → GraphGenomeView-Q3ZQDV5H.js.map} +1 -1
  5. package/dist/chunks/LinearGraphDisplay-M6ITGK2E.js +2 -0
  6. package/dist/chunks/{LinearGraphDisplay-MQ4LD2RQ.js.map → LinearGraphDisplay-M6ITGK2E.js.map} +1 -1
  7. package/dist/chunks/{MinigraphBubbleAdapter-DPRKYY5Y.js → MinigraphBubbleAdapter-DZJIN4J2.js} +2 -2
  8. package/dist/chunks/RgfaTabixAdapter-IZMJCSYQ.js +3 -0
  9. package/dist/chunks/RgfaTabixAdapter-IZMJCSYQ.js.map +7 -0
  10. package/dist/chunks/WalkTabixSyntenyAdapter-H5NDC7U5.js +2 -0
  11. package/dist/chunks/WalkTabixSyntenyAdapter-H5NDC7U5.js.map +7 -0
  12. package/dist/chunks/chunk-4O7LDKI5.js +3 -0
  13. package/dist/chunks/chunk-4O7LDKI5.js.map +7 -0
  14. package/dist/chunks/{chunk-STTY74OG.js → chunk-5Q2F5SF4.js} +2 -2
  15. package/dist/chunks/{chunk-STTY74OG.js.map → chunk-5Q2F5SF4.js.map} +1 -1
  16. package/dist/chunks/{chunk-V4YHDVV3.js → chunk-CRL7N4KQ.js} +2 -2
  17. package/dist/chunks/chunk-GHL7VXRC.js +2 -0
  18. package/dist/chunks/chunk-GHL7VXRC.js.map +7 -0
  19. package/dist/chunks/chunk-IXQK7JAW.js +2 -0
  20. package/dist/chunks/chunk-IXQK7JAW.js.map +7 -0
  21. package/dist/chunks/chunk-LUTMKRXY.js +2 -0
  22. package/dist/chunks/chunk-LUTMKRXY.js.map +7 -0
  23. package/dist/chunks/chunk-TXI43PEN.js +2 -0
  24. package/dist/chunks/chunk-TXI43PEN.js.map +7 -0
  25. package/dist/chunks/chunk-WO5OWZPP.js +9 -0
  26. package/dist/chunks/chunk-WO5OWZPP.js.map +7 -0
  27. package/dist/chunks/{chunk-U6CKN6LS.js → chunk-WRH2EJKX.js} +2 -2
  28. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js +4 -4
  29. package/dist/jbrowse-plugin-graphgenomeviewer.esm.js.map +4 -4
  30. package/package.json +2 -1
  31. package/src/RgfaTabixAdapter/RgfaTabixAdapter.ts +8 -13
  32. package/src/RgfaTabixAdapter/configSchema.ts +14 -32
  33. package/src/RgfaTabixAdapter/walkFiles.test.ts +87 -268
  34. package/src/RgfaTabixAdapter/walkReader.ts +8 -278
  35. package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.test.ts +4 -8
  36. package/src/WalkTabixSyntenyAdapter/WalkTabixSyntenyAdapter.ts +7 -15
  37. package/src/WalkTabixSyntenyAdapter/configSchema.ts +12 -47
  38. package/src/WalkTabixSyntenyAdapter/gbzParity.test.ts +4 -7
  39. package/src/WalkTabixSyntenyAdapter/walkLanes.ts +1 -1
  40. package/src/version.ts +1 -1
  41. package/dist/chunks/GbzBaseSyntenyAdapter-O5OWS5EK.js +0 -2
  42. package/dist/chunks/LinearGraphDisplay-MQ4LD2RQ.js +0 -2
  43. package/dist/chunks/RgfaTabixAdapter-DRAJSERI.js +0 -3
  44. package/dist/chunks/RgfaTabixAdapter-DRAJSERI.js.map +0 -7
  45. package/dist/chunks/WalkTabixSyntenyAdapter-PY4HXRFX.js +0 -2
  46. package/dist/chunks/WalkTabixSyntenyAdapter-PY4HXRFX.js.map +0 -7
  47. package/dist/chunks/chunk-G57N55FV.js +0 -3
  48. package/dist/chunks/chunk-G57N55FV.js.map +0 -7
  49. package/dist/chunks/chunk-KJOBOE4W.js +0 -2
  50. package/dist/chunks/chunk-KJOBOE4W.js.map +0 -7
  51. package/dist/chunks/chunk-Q5PP7UMC.js +0 -9
  52. package/dist/chunks/chunk-Q5PP7UMC.js.map +0 -7
  53. package/src/RgfaTabixAdapter/test_data/walks1_follow.GRCh38.links.bed.gz +0 -0
  54. package/src/RgfaTabixAdapter/test_data/walks1_follow.GRCh38.links.bed.gz.tbi +0 -0
  55. package/src/RgfaTabixAdapter/test_data/walks1_follow.GRCh38.nodes.bed.gz +0 -0
  56. package/src/RgfaTabixAdapter/test_data/walks1_follow.GRCh38.nodes.bed.gz.tbi +0 -0
  57. package/src/RgfaTabixAdapter/test_data/walks1_follow.GRCh38.walks.bed.gz +0 -0
  58. package/src/RgfaTabixAdapter/test_data/walks1_follow.GRCh38.walks.bed.gz.tbi +0 -0
  59. package/src/RgfaTabixAdapter/test_data/walks1_header.GRCh38.links.bed.gz +0 -0
  60. package/src/RgfaTabixAdapter/test_data/walks1_header.GRCh38.links.bed.gz.tbi +0 -0
  61. package/src/RgfaTabixAdapter/test_data/walks1_header.GRCh38.nodes.bed.gz +0 -0
  62. package/src/RgfaTabixAdapter/test_data/walks1_header.GRCh38.nodes.bed.gz.tbi +0 -0
  63. package/src/RgfaTabixAdapter/test_data/walks1_maxnode.GRCh38.links.bed.gz +0 -0
  64. package/src/RgfaTabixAdapter/test_data/walks1_maxnode.GRCh38.links.bed.gz.tbi +0 -0
  65. package/src/RgfaTabixAdapter/test_data/walks1_maxnode.GRCh38.nodes.bed.gz +0 -0
  66. package/src/RgfaTabixAdapter/test_data/walks1_maxnode.GRCh38.nodes.bed.gz.tbi +0 -0
  67. package/src/RgfaTabixAdapter/test_data/walks1_maxnode.GRCh38.walks.bed.gz +0 -0
  68. package/src/RgfaTabixAdapter/test_data/walks1_maxnode.GRCh38.walks.bed.gz.tbi +0 -0
  69. package/src/RgfaTabixAdapter/test_data/walks1_rejoin.GRCh38.links.bed.gz +0 -0
  70. package/src/RgfaTabixAdapter/test_data/walks1_rejoin.GRCh38.links.bed.gz.tbi +0 -0
  71. package/src/RgfaTabixAdapter/test_data/walks1_rejoin.GRCh38.nodes.bed.gz +0 -0
  72. package/src/RgfaTabixAdapter/test_data/walks1_rejoin.GRCh38.nodes.bed.gz.tbi +0 -0
  73. package/src/RgfaTabixAdapter/test_data/walks1_rejoin.GRCh38.walks.bed.gz +0 -0
  74. package/src/RgfaTabixAdapter/test_data/walks1_rejoin.GRCh38.walks.bed.gz.tbi +0 -0
  75. package/src/RgfaTabixAdapter/test_data/walks_follow.links.bed.gz +0 -0
  76. package/src/RgfaTabixAdapter/test_data/walks_follow.links.bed.gz.tbi +0 -0
  77. package/src/RgfaTabixAdapter/test_data/walks_follow.nodes.bed.gz +0 -0
  78. package/src/RgfaTabixAdapter/test_data/walks_follow.nodes.bed.gz.tbi +0 -0
  79. package/src/RgfaTabixAdapter/test_data/walks_follow.walks.bed.gz +0 -0
  80. package/src/RgfaTabixAdapter/test_data/walks_follow.walks.bed.gz.tbi +0 -0
  81. package/src/RgfaTabixAdapter/test_data/walks_header.links.bed.gz +0 -0
  82. package/src/RgfaTabixAdapter/test_data/walks_header.links.bed.gz.tbi +0 -0
  83. package/src/RgfaTabixAdapter/test_data/walks_header.nodes.bed.gz +0 -0
  84. package/src/RgfaTabixAdapter/test_data/walks_header.nodes.bed.gz.tbi +0 -0
  85. package/src/RgfaTabixAdapter/test_data/walks_header.walks.bed.gz +0 -0
  86. package/src/RgfaTabixAdapter/test_data/walks_header.walks.bed.gz.tbi +0 -0
  87. package/src/RgfaTabixAdapter/test_data/walks_maxnode.links.bed.gz +0 -0
  88. package/src/RgfaTabixAdapter/test_data/walks_maxnode.links.bed.gz.tbi +0 -0
  89. package/src/RgfaTabixAdapter/test_data/walks_maxnode.nodes.bed.gz +0 -0
  90. package/src/RgfaTabixAdapter/test_data/walks_maxnode.nodes.bed.gz.tbi +0 -0
  91. package/src/RgfaTabixAdapter/test_data/walks_maxnode.walks.bed.gz +0 -0
  92. package/src/RgfaTabixAdapter/test_data/walks_maxnode.walks.bed.gz.tbi +0 -0
  93. package/src/RgfaTabixAdapter/test_data/walks_rejoin.links.bed.gz +0 -0
  94. package/src/RgfaTabixAdapter/test_data/walks_rejoin.links.bed.gz.tbi +0 -0
  95. package/src/RgfaTabixAdapter/test_data/walks_rejoin.nodes.bed.gz +0 -0
  96. package/src/RgfaTabixAdapter/test_data/walks_rejoin.nodes.bed.gz.tbi +0 -0
  97. package/src/RgfaTabixAdapter/test_data/walks_rejoin.walks.bed.gz +0 -0
  98. package/src/RgfaTabixAdapter/test_data/walks_rejoin.walks.bed.gz.tbi +0 -0
  99. package/src/RgfaTabixAdapter/walkFormat2.test.ts +0 -186
  100. package/src/RgfaTabixAdapter/walkFormat2.ts +0 -682
  101. package/src/RgfaTabixAdapter/walkRows.test.ts +0 -449
  102. package/src/RgfaTabixAdapter/walkRows.ts +0 -746
  103. /package/dist/chunks/{MinigraphBubbleAdapter-DPRKYY5Y.js.map → MinigraphBubbleAdapter-DZJIN4J2.js.map} +0 -0
  104. /package/dist/chunks/{chunk-V4YHDVV3.js.map → chunk-CRL7N4KQ.js.map} +0 -0
  105. /package/dist/chunks/{chunk-U6CKN6LS.js.map → chunk-WRH2EJKX.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../node_modules/.pnpm/@jbrowse+bandage-core@10.2.2/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-RAKOB6IV.js", "../../node_modules/.pnpm/@jbrowse+bandage-core@10.2.2/node_modules/@jbrowse/bandage-core/dist/chunks/chunk-G45YY72K.js"],
4
+ "sourcesContent": ["import {\n isGenericSample,\n panSNContig,\n panSNHaplotype,\n panSNSample\n} from \"./chunk-BPLIXMH7.js\";\nimport {\n isBackbone\n} from \"./chunk-FYQWPEEY.js\";\n\n// src/reference.ts\nvar WELL_KNOWN_SAMPLES = /* @__PURE__ */ new Map([\n [\"hg38\", \"GRCh38\"],\n [\"hg19\", \"GRCh37\"],\n [\"hs1\", \"CHM13\"],\n [\"t2t-chm13\", \"CHM13\"],\n [\"chm13v2\", \"CHM13\"]\n]);\nfunction wellKnownSample(assemblyName) {\n return WELL_KNOWN_SAMPLES.get(assemblyName.toLowerCase());\n}\nfunction sampleOf(refName) {\n const sample = refName.includes(\"#\") ? panSNSample(refName) : void 0;\n return sample === void 0 || isGenericSample(sample) ? void 0 : sample;\n}\nfunction haplotypeOf(refName) {\n return panSNHaplotype(refName) ?? panSNSample(refName);\n}\nfunction graphHaplotypes(graph) {\n const refNames = new Set((graph.anchorPaths ?? []).map((p) => p.name));\n for (const node of graph.nodes) {\n if (node.stable) {\n refNames.add(node.stable.refName);\n }\n }\n const bySample = /* @__PURE__ */ new Map();\n for (const refName of refNames) {\n const sample = sampleOf(refName);\n if (sample !== void 0) {\n const haplotypes = bySample.get(sample) ?? bySample.set(sample, /* @__PURE__ */ new Set()).get(sample);\n haplotypes.add(haplotypeOf(refName));\n }\n }\n return bySample;\n}\nfunction backboneFrom(contigs, haplotypes) {\n const samples = new Set(contigs.map((c) => sampleOf(c.refName)));\n const [sample] = samples;\n if (samples.size !== 1 || sample === void 0) {\n return { contigs, prefixes: [], named: false };\n }\n const own = new Set(contigs.map((c) => haplotypeOf(c.refName)));\n const unique = [...haplotypes.get(sample) ?? []].every((h) => own.has(h));\n const shared = new Set(contigs.map((c) => panSNHaplotype(c.refName)));\n const [haplotype] = shared;\n return {\n contigs,\n prefixes: [\n ...unique ? [sample] : [],\n ...shared.size === 1 && haplotype ? [haplotype] : []\n ],\n named: true\n };\n}\nfunction graphBackbone(graph) {\n const spans = /* @__PURE__ */ new Map();\n for (const node of graph.nodes) {\n if (isBackbone(node)) {\n const { refName, start } = node.stable;\n const end = start + node.length;\n const span = spans.get(refName);\n if (span) {\n span.start = Math.min(span.start, start);\n span.end = Math.max(span.end, end);\n } else {\n spans.set(refName, {\n refName,\n contig: panSNContig(refName),\n start,\n end\n });\n }\n }\n }\n const contigs = [...spans.values()];\n return contigs.length ? backboneFrom(contigs, graphHaplotypes(graph)) : void 0;\n}\nfunction referenceLabel(graph, region) {\n const backbone = graphBackbone(graph);\n const contig = region ? panSNContig(region.refName) : backbone?.contigs.length === 1 ? backbone.contigs[0].contig : void 0;\n const sample = backbone?.named ? panSNSample(backbone.contigs[0].refName) : void 0;\n return contig && (sample ? `${sample} ${contig}` : contig);\n}\nfunction backboneAssembly(backbone, assemblies) {\n const names = (a) => [a.name, ...a.aliases ?? []];\n const naming = (prefix) => (a) => names(a).some((n) => n.toLowerCase() === prefix.toLowerCase());\n const prefixes = [...backbone?.prefixes ?? []].reverse();\n const sample = backbone?.prefixes.find((p) => !p.includes(\"#\"))?.toLowerCase();\n for (const prefix of prefixes) {\n const assembly = assemblies.find(naming(prefix));\n if (assembly) {\n return assembly;\n }\n }\n return sample === void 0 ? void 0 : assemblies.find(\n (a) => names(a).some((n) => wellKnownSample(n)?.toLowerCase() === sample)\n );\n}\nfunction assemblyWalk(graph, assembly) {\n const haplotypes = graphHaplotypes(graph);\n return graph.anchorPaths?.find(\n (walk) => backboneAssembly(\n backboneFrom(\n [\n {\n refName: walk.name,\n contig: panSNContig(walk.name),\n start: walk.start,\n end: walk.start + walk.length\n }\n ],\n haplotypes\n ),\n [assembly]\n )\n );\n}\nfunction contigNames(contig) {\n const bare = contig.replace(/^chr/i, \"\");\n const forms = !bare ? [] : /^(M|MT)$/i.test(bare) ? [\"M\", \"MT\"] : [bare];\n return [.../* @__PURE__ */ new Set([contig, ...forms.flatMap((f) => [f, `chr${f}`])])];\n}\nfunction refNameBinding(refNames, aliases = {}) {\n const exact = new Set(refNames);\n const byName = /* @__PURE__ */ new Map();\n for (const refName of exact) {\n const contig = panSNContig(refName);\n const alias = aliases[contig];\n for (const name of /* @__PURE__ */ new Set([\n ...contigNames(contig),\n ...alias ? [alias] : []\n ])) {\n byName.set(name, byName.has(name) ? void 0 : refName);\n }\n }\n return (name) => exact.has(name) ? name : byName.get(name);\n}\nfunction featuresOnBackbone(features, backbone, aliases) {\n const bind = refNameBinding(\n backbone.contigs.map((c) => c.refName),\n aliases\n );\n return features.flatMap((f) => {\n const refName = bind(f.refName);\n return refName === void 0 ? [] : [refName === f.refName ? f : { ...f, refName }];\n });\n}\n\nexport {\n WELL_KNOWN_SAMPLES,\n wellKnownSample,\n graphBackbone,\n referenceLabel,\n backboneAssembly,\n assemblyWalk,\n contigNames,\n refNameBinding,\n featuresOnBackbone\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;\nvar Steps = class {\n constructor() {\n this.nodes = new Int32Array(1 << 16);\n this.reversed = new Uint8Array(1 << 16);\n this.length = 0;\n }\n push(node, reversed) {\n if (this.length === this.nodes.length) {\n const nodes = new Int32Array(this.length * 2);\n nodes.set(this.nodes);\n this.nodes = nodes;\n const rev = new Uint8Array(this.length * 2);\n rev.set(this.reversed);\n this.reversed = rev;\n }\n this.nodes[this.length] = node;\n this.reversed[this.length++] = reversed;\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.push(node ?? segments.of(line.slice(start, end)), 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}\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 = new Steps();\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 readWalkBody(line, w.body, segments, steps);\n if (steps.length === offsets.at(-1)) {\n return void 0;\n }\n offsets.push(steps.length);\n }\n }\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.slice(0, steps.length),\n reversed: steps.reversed.slice(0, steps.length)\n }\n };\n}\n\nexport {\n gfaTables\n};\n"],
5
+ "mappings": "qGAWA,IAAIA,EAAqC,IAAI,IAAI,CAC/C,CAAC,OAAQ,QAAQ,EACjB,CAAC,OAAQ,QAAQ,EACjB,CAAC,MAAO,OAAO,EACf,CAAC,YAAa,OAAO,EACrB,CAAC,UAAW,OAAO,CACrB,CAAC,EACD,SAASC,EAAgBC,EAAc,CACrC,OAAOF,EAAmB,IAAIE,EAAa,YAAY,CAAC,CAC1D,CACA,SAASC,EAASC,EAAS,CACzB,IAAMC,EAASD,EAAQ,SAAS,GAAG,EAAIE,EAAYF,CAAO,EAAI,OAC9D,OAAOC,IAAW,QAAUE,EAAgBF,CAAM,EAAI,OAASA,CACjE,CACA,SAASG,EAAYJ,EAAS,CAC5B,OAAOK,EAAeL,CAAO,GAAKE,EAAYF,CAAO,CACvD,CACA,SAASM,EAAgBC,EAAO,CAC9B,IAAMC,EAAW,IAAI,KAAKD,EAAM,aAAe,CAAC,GAAG,IAAKE,GAAMA,EAAE,IAAI,CAAC,EACrE,QAAWC,KAAQH,EAAM,MACnBG,EAAK,QACPF,EAAS,IAAIE,EAAK,OAAO,OAAO,EAGpC,IAAMC,EAA2B,IAAI,IACrC,QAAWX,KAAWQ,EAAU,CAC9B,IAAMP,EAASF,EAASC,CAAO,EAC3BC,IAAW,SACMU,EAAS,IAAIV,CAAM,GAAKU,EAAS,IAAIV,EAAwB,IAAI,GAAK,EAAE,IAAIA,CAAM,GAC1F,IAAIG,EAAYJ,CAAO,CAAC,CAEvC,CACA,OAAOW,CACT,CACA,SAASC,EAAaC,EAASC,EAAY,CACzC,IAAMC,EAAU,IAAI,IAAIF,EAAQ,IAAK,GAAMd,EAAS,EAAE,OAAO,CAAC,CAAC,EACzD,CAACE,CAAM,EAAIc,EACjB,GAAIA,EAAQ,OAAS,GAAKd,IAAW,OACnC,MAAO,CAAE,QAAAY,EAAS,SAAU,CAAC,EAAG,MAAO,EAAM,EAE/C,IAAMG,EAAM,IAAI,IAAIH,EAAQ,IAAK,GAAMT,EAAY,EAAE,OAAO,CAAC,CAAC,EACxDa,EAAS,CAAC,GAAGH,EAAW,IAAIb,CAAM,GAAK,CAAC,CAAC,EAAE,MAAOiB,GAAMF,EAAI,IAAIE,CAAC,CAAC,EAClEC,EAAS,IAAI,IAAIN,EAAQ,IAAK,GAAMR,EAAe,EAAE,OAAO,CAAC,CAAC,EAC9D,CAACe,CAAS,EAAID,EACpB,MAAO,CACL,QAAAN,EACA,SAAU,CACR,GAAGI,EAAS,CAAChB,CAAM,EAAI,CAAC,EACxB,GAAGkB,EAAO,OAAS,GAAKC,EAAY,CAACA,CAAS,EAAI,CAAC,CACrD,EACA,MAAO,EACT,CACF,CACA,SAASC,EAAcd,EAAO,CAC5B,IAAMe,EAAwB,IAAI,IAClC,QAAWZ,KAAQH,EAAM,MACvB,GAAIgB,EAAWb,CAAI,EAAG,CACpB,GAAM,CAAE,QAAAV,EAAS,MAAAwB,CAAM,EAAId,EAAK,OAC1Be,EAAMD,EAAQd,EAAK,OACnBgB,EAAOJ,EAAM,IAAItB,CAAO,EAC1B0B,GACFA,EAAK,MAAQ,KAAK,IAAIA,EAAK,MAAOF,CAAK,EACvCE,EAAK,IAAM,KAAK,IAAIA,EAAK,IAAKD,CAAG,GAEjCH,EAAM,IAAItB,EAAS,CACjB,QAAAA,EACA,OAAQ2B,EAAY3B,CAAO,EAC3B,MAAAwB,EACA,IAAAC,CACF,CAAC,CAEL,CAEF,IAAMZ,EAAU,CAAC,GAAGS,EAAM,OAAO,CAAC,EAClC,OAAOT,EAAQ,OAASD,EAAaC,EAASP,EAAgBC,CAAK,CAAC,EAAI,MAC1E,CACA,SAASqB,EAAerB,EAAOsB,EAAQ,CACrC,IAAMC,EAAWT,EAAcd,CAAK,EAC9BwB,EAASF,EAASF,EAAYE,EAAO,OAAO,EAAIC,GAAU,QAAQ,SAAW,EAAIA,EAAS,QAAQ,CAAC,EAAE,OAAS,OAC9G7B,EAAS6B,GAAU,MAAQ5B,EAAY4B,EAAS,QAAQ,CAAC,EAAE,OAAO,EAAI,OAC5E,OAAOC,IAAW9B,EAAS,GAAGA,CAAM,IAAI8B,CAAM,GAAKA,EACrD,CACA,SAASC,EAAiBF,EAAUG,EAAY,CAC9C,IAAMC,EAASC,GAAM,CAACA,EAAE,KAAM,GAAGA,EAAE,SAAW,CAAC,CAAC,EAC1CC,EAAUC,GAAYF,GAAMD,EAAMC,CAAC,EAAE,KAAMG,GAAMA,EAAE,YAAY,IAAMD,EAAO,YAAY,CAAC,EACzFE,EAAW,CAAC,GAAGT,GAAU,UAAY,CAAC,CAAC,EAAE,QAAQ,EACjD7B,EAAS6B,GAAU,SAAS,KAAMrB,GAAM,CAACA,EAAE,SAAS,GAAG,CAAC,GAAG,YAAY,EAC7E,QAAW4B,KAAUE,EAAU,CAC7B,IAAMC,EAAWP,EAAW,KAAKG,EAAOC,CAAM,CAAC,EAC/C,GAAIG,EACF,OAAOA,CAEX,CACA,OAAOvC,IAAW,OAAS,OAASgC,EAAW,KAC5CE,GAAMD,EAAMC,CAAC,EAAE,KAAMG,GAAMzC,EAAgByC,CAAC,GAAG,YAAY,IAAMrC,CAAM,CAC1E,CACF,CACA,SAASwC,EAAalC,EAAOiC,EAAU,CACrC,IAAM1B,EAAaR,EAAgBC,CAAK,EACxC,OAAOA,EAAM,aAAa,KACvBmC,GAASV,EACRpB,EACE,CACE,CACE,QAAS8B,EAAK,KACd,OAAQf,EAAYe,EAAK,IAAI,EAC7B,MAAOA,EAAK,MACZ,IAAKA,EAAK,MAAQA,EAAK,MACzB,CACF,EACA5B,CACF,EACA,CAAC0B,CAAQ,CACX,CACF,CACF,CACA,SAASG,EAAYZ,EAAQ,CAC3B,IAAMa,EAAOb,EAAO,QAAQ,QAAS,EAAE,EACjCc,EAASD,EAAY,YAAY,KAAKA,CAAI,EAAI,CAAC,IAAK,IAAI,EAAI,CAACA,CAAI,EAAjD,CAAC,EACvB,MAAO,CAAC,GAAmB,IAAI,IAAI,CAACb,EAAQ,GAAGc,EAAM,QAASC,GAAM,CAACA,EAAG,MAAMA,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACvF,CACA,SAASC,EAAevC,EAAUwC,EAAU,CAAC,EAAG,CAC9C,IAAMC,EAAQ,IAAI,IAAIzC,CAAQ,EACxB0C,EAAyB,IAAI,IACnC,QAAWlD,KAAWiD,EAAO,CAC3B,IAAMlB,EAASJ,EAAY3B,CAAO,EAC5BmD,EAAQH,EAAQjB,CAAM,EAC5B,QAAWqB,KAAwB,IAAI,IAAI,CACzC,GAAGT,EAAYZ,CAAM,EACrB,GAAGoB,EAAQ,CAACA,CAAK,EAAI,CAAC,CACxB,CAAC,EACCD,EAAO,IAAIE,EAAMF,EAAO,IAAIE,CAAI,EAAI,OAASpD,CAAO,CAExD,CACA,OAAQoD,GAASH,EAAM,IAAIG,CAAI,EAAIA,EAAOF,EAAO,IAAIE,CAAI,CAC3D,CACA,SAASC,GAAmBC,EAAUxB,EAAUkB,EAAS,CACvD,IAAMO,EAAOR,EACXjB,EAAS,QAAQ,IAAK0B,GAAMA,EAAE,OAAO,EACrCR,CACF,EACA,OAAOM,EAAS,QAASR,GAAM,CAC7B,IAAM9C,EAAUuD,EAAKT,EAAE,OAAO,EAC9B,OAAO9C,IAAY,OAAS,CAAC,EAAI,CAACA,IAAY8C,EAAE,QAAUA,EAAI,CAAE,GAAGA,EAAG,QAAA9C,CAAQ,CAAC,CACjF,CAAC,CACH,CC3JA,IAAIyD,EAAK,GACLC,EAAK,GACLC,EAAM,EACNC,EAAO,GACPC,EAAO,GACPC,EAAY,4BACZC,EAAkB,cAClBC,EAAUC,GAASA,EAAK,SAAS,IAAI,EAAIA,EAAK,MAAM,EAAG,EAAE,EAAIA,EAC7DC,EAAQ,KAAM,CAChB,aAAc,CACZ,KAAK,MAAQ,IAAI,WAAW,KAAO,EACnC,KAAK,SAAW,IAAI,WAAW,KAAO,EACtC,KAAK,OAAS,CAChB,CACA,KAAKC,EAAMC,EAAU,CACnB,GAAI,KAAK,SAAW,KAAK,MAAM,OAAQ,CACrC,IAAMC,EAAQ,IAAI,WAAW,KAAK,OAAS,CAAC,EAC5CA,EAAM,IAAI,KAAK,KAAK,EACpB,KAAK,MAAQA,EACb,IAAMC,EAAM,IAAI,WAAW,KAAK,OAAS,CAAC,EAC1CA,EAAI,IAAI,KAAK,QAAQ,EACrB,KAAK,SAAWA,CAClB,CACA,KAAK,MAAM,KAAK,MAAM,EAAIH,EAC1B,KAAK,SAAS,KAAK,QAAQ,EAAIC,CACjC,CACF,EACIG,EAAe,KAAM,CACvB,aAAc,CACZ,KAAK,MAAQ,CAAC,EACd,KAAK,OAAyB,IAAI,IAGlC,KAAK,SAA2B,IAAI,GACtC,CACA,IAAIC,EAAM,CACR,OAAO,KAAK,OAAO,IAAIA,CAAI,CAC7B,CACA,IAAIA,EAAM,CACR,IAAMC,EAAI,KAAK,MAAM,OACrB,KAAK,OAAO,IAAID,EAAMC,CAAC,EACvB,KAAK,MAAM,KAAKD,CAAI,EACpB,IAAME,EAAI,CAACF,EACX,OAAI,OAAO,cAAcE,CAAC,GAAK,OAAOA,CAAC,IAAMF,GAC3C,KAAK,SAAS,IAAIE,EAAGD,CAAC,EAEjBA,CACT,CACA,GAAGD,EAAM,CACP,OAAO,KAAK,OAAO,IAAIA,CAAI,GAAK,KAAK,IAAIA,CAAI,CAC/C,CACA,SAASE,EAAG,CACV,OAAO,KAAK,SAAS,IAAIA,CAAC,CAC5B,CACF,EACA,SAASC,EAAYV,EAAM,CACzB,GAAM,CAAC,CAAEO,EAAMI,EAAW,IAAK,GAAGC,CAAI,EAAIZ,EAAK,MAAM,GAAG,EACxD,GAAI,CAACO,GAAQ,QAAQ,KAAKI,CAAQ,EAChC,OAEF,IAAIE,EAASF,IAAa,IAAM,EAAIA,EAAS,OACzCG,EACAC,EACAC,EACJ,QAAWC,KAAOL,EAAM,CACtB,GAAI,CAACf,EAAU,KAAKoB,CAAG,EACrB,OAEF,IAAMC,EAAQD,EAAI,MAAM,CAAC,EACnBE,EAAMF,EAAI,MAAM,EAAG,CAAC,EACtBE,IAAQ,KACVN,EAAS,CAACK,EACDC,IAAQ,KACjBL,EAAUI,EACDC,IAAQ,KACjBJ,EAAQ,CAACG,EAETF,EAAO,CAACE,CAEZ,CAEA,MAAO,CAAE,KAAAX,EAAM,OAAAM,EAAQ,OADRC,IAAY,QAAUC,IAAU,QAAUC,IAAS,OAAS,CAAE,QAAAF,EAAS,MAAAC,EAAO,KAAAC,CAAK,EAAI,MACxE,CAChC,CACA,SAASI,EAAapB,EAAMqB,EAAMC,EAAUC,EAAO,CACjD,IAAIpB,EAAW,EACXY,EAAQ,GACRG,EAAQ,EACRM,EAAU,GACRC,EAAUC,GAAQ,CACtB,GAAIX,GAAS,GAAKW,EAAMX,EAAO,CAC7B,IAAMb,EAAOsB,GAAWE,EAAMX,EAAQ,KAAOW,EAAMX,IAAU,GAAKf,EAAK,WAAWe,CAAK,IAAMpB,GAAQ2B,EAAS,SAASJ,CAAK,EAAI,OAChIK,EAAM,KAAKrB,GAAQoB,EAAS,GAAGtB,EAAK,MAAMe,EAAOW,CAAG,CAAC,EAAGvB,CAAQ,CAClE,CACF,EACIK,EAAIa,EACR,KAAOb,EAAIR,EAAK,OAAQQ,IAAK,CAC3B,IAAMmB,EAAK3B,EAAK,WAAWQ,CAAC,EAC5B,GAAImB,IAAOnC,GAAMmC,IAAOlC,EACtBgC,EAAOjB,CAAC,EACRL,EAAWwB,IAAOlC,EAAK,EAAI,EAC3BsB,EAAQP,EAAI,EACZU,EAAQ,EACRM,EAAU,OACL,IAAIG,IAAOjC,EAChB,MACS8B,GAAWG,GAAMhC,GAAQgC,GAAM/B,EACxCsB,EAAQA,EAAQ,GAAKS,EAAKhC,EAE1B6B,EAAU,GAEd,CACAC,EAAOjB,CAAC,CACV,CACA,SAASoB,EAAW5B,EAAM,CACxB,IAAM6B,EAAS,CAAC,EACZC,EAAK,EACT,KAAOD,EAAO,OAAS,GAAG,CACxB,IAAME,EAAM/B,EAAK,QAAQ,IAAK8B,CAAE,EAChC,GAAIC,IAAQ,GACV,OAEFF,EAAO,KAAK7B,EAAK,MAAM8B,EAAIC,CAAG,CAAC,EAC/BD,EAAKC,EAAM,CACb,CACA,GAAM,CAAC,CAAEC,EAAQC,EAAWC,EAAQnB,EAAOW,CAAG,EAAIG,EAClD,OAAOG,GAAUC,GAAaC,GAAUnB,GAASW,GAAOI,EAAK9B,EAAK,OAAS,CAAE,OAAAgC,EAAQ,UAAAC,EAAW,OAAAC,EAAQ,MAAAnB,EAAO,IAAAW,EAAK,KAAMI,CAAG,EAAI,MACnI,CACA,SAASK,GAAUC,EAAM,CACvB,IAAMC,EAAQD,EAAK,MAAM;AAAA,CAAI,EACvBd,EAAW,IAAIhB,EACfgC,EAAU,CAAC,EACXC,EAAO,CAAC,EACRC,EAAS,CAAC,EACVC,EAAQ,CAAC,EACTC,EAAW,CAAC,EACZC,EAA2B,IAAI,IACrC,QAAWC,KAAOP,EAAO,CACvB,GAAIvC,EAAgB,KAAK8C,CAAG,EAC1B,OAEF,GAAIA,EAAI,WAAW,IAAI,EAAG,CACxB,IAAMC,EAAInC,EAAYX,EAAO6C,CAAG,CAAC,EACjC,GAAI,CAACC,GAAKvB,EAAS,IAAIuB,EAAE,IAAI,EAC3B,OAEFvB,EAAS,IAAIuB,EAAE,IAAI,EACnBP,EAAQ,KAAKO,EAAE,MAAM,EACrB,IAAIC,EAAM,GACND,EAAE,SACJC,EAAMH,EAAS,IAAIE,EAAE,OAAO,OAAO,GAAKH,EAAS,OAC7CI,IAAQJ,EAAS,SACnBA,EAAS,KAAKG,EAAE,OAAO,OAAO,EAC9BF,EAAS,IAAIE,EAAE,OAAO,QAASC,CAAG,IAGtCP,EAAK,KAAKO,CAAG,EACbN,EAAO,KAAKK,EAAE,QAAQ,OAAS,CAAC,EAChCJ,EAAM,KAAKI,EAAE,QAAQ,MAAQ,CAAC,CAChC,CACF,CACA,IAAMxB,EAAO,CAAC,EACR0B,EAAK,CAAC,EACNC,EAAU,CAAC,EACXC,EAAQ,CAAC,EACTC,EAAa,CAAC,EACdC,EAAW,CAAC,EACZC,EAAU,CAAC,CAAC,EACZ7B,EAAQ,IAAItB,EAClB,QAAW2C,KAAOP,EAChB,GAAIO,EAAI,WAAW,IAAI,EAAG,CACxB,GAAM,CAAC,CAAES,EAAQC,EAASC,EAAQC,CAAO,EAAIzD,EAAO6C,CAAG,EAAE,MAAM,GAAG,EAC9DS,GAAUE,GAAUC,IACtBnC,EAAK,KAAKC,EAAS,GAAG+B,CAAM,CAAC,EAC7BN,EAAG,KAAKzB,EAAS,GAAGiC,CAAM,CAAC,EAC3BP,EAAQ,MAAMM,IAAY,IAAM,EAAI,IAAME,IAAY,IAAM,EAAI,EAAE,EAEtE,SAAWZ,EAAI,WAAW,IAAI,EAAG,CAC/B,IAAM5C,EAAOD,EAAO6C,CAAG,EACjBa,EAAI7B,EAAW5B,CAAI,EACzB,GAAIyD,EAAG,CAKL,GAJAR,EAAM,KAAK,GAAGQ,EAAE,MAAM,IAAIA,EAAE,SAAS,IAAIA,EAAE,MAAM,EAAE,EACnDP,EAAW,KAAKO,EAAE,QAAU,IAAM,EAAI,CAACA,EAAE,KAAK,EAC9CN,EAAS,KAAKM,EAAE,MAAQ,IAAM,GAAK,CAACA,EAAE,GAAG,EACzCrC,EAAapB,EAAMyD,EAAE,KAAMnC,EAAUC,CAAK,EACtCA,EAAM,SAAW6B,EAAQ,GAAG,EAAE,EAChC,OAEFA,EAAQ,KAAK7B,EAAM,MAAM,CAC3B,CACF,CAEF,MAAO,CACL,MAAO,CACL,MAAOD,EAAS,MAChB,QAAS,WAAW,KAAKgB,CAAO,EAChC,KAAM,WAAW,KAAKC,CAAI,EAC1B,OAAQ,aAAa,KAAKC,CAAM,EAChC,MAAO,WAAW,KAAKC,CAAK,EAC5B,SAAAC,CACF,EACA,MAAO,CACL,KAAM,WAAW,KAAKrB,CAAI,EAC1B,GAAI,WAAW,KAAK0B,CAAE,EACtB,QAAS,WAAW,KAAKC,CAAO,CAClC,EACA,MAAO,CACL,MAAAC,EACA,OAAQ,aAAa,KAAKC,CAAU,EACpC,KAAM,aAAa,KAAKC,CAAQ,EAChC,QAAS,WAAW,KAAKC,CAAO,EAChC,MAAO7B,EAAM,MAAM,MAAM,EAAGA,EAAM,MAAM,EACxC,SAAUA,EAAM,SAAS,MAAM,EAAGA,EAAM,MAAM,CAChD,CACF,CACF",
6
+ "names": ["WELL_KNOWN_SAMPLES", "wellKnownSample", "assemblyName", "sampleOf", "refName", "sample", "panSNSample", "isGenericSample", "haplotypeOf", "panSNHaplotype", "graphHaplotypes", "graph", "refNames", "p", "node", "bySample", "backboneFrom", "contigs", "haplotypes", "samples", "own", "unique", "h", "shared", "haplotype", "graphBackbone", "spans", "isBackbone", "start", "end", "span", "panSNContig", "referenceLabel", "region", "backbone", "contig", "backboneAssembly", "assemblies", "names", "a", "naming", "prefix", "n", "prefixes", "assembly", "assemblyWalk", "walk", "contigNames", "bare", "forms", "f", "refNameBinding", "aliases", "exact", "byName", "alias", "name", "featuresOnBackbone", "features", "bind", "c", "GT", "LT", "TAB", "ZERO", "NINE", "TABLE_TAG", "UNTABLED_RECORD", "trimCR", "line", "Steps", "node", "reversed", "nodes", "rev", "SegmentIndex", "name", "i", "n", "readSegment", "sequence", "tags", "length", "refName", "start", "rank", "tag", "value", "key", "readWalkBody", "from", "segments", "steps", "decimal", "finish", "end", "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", "source", "strand1", "target", "strand2", "w"]
7
+ }
@@ -1,4 +1,4 @@
1
- import{a as Bo,c as Co,e as Bt,f as En,g as nr,i as or,j as rr}from"./chunk-ZWMYT35X.js";import{A as Jo,Aa as Rr,B as Zo,Ba as Lr,C as Qo,Ca as Nr,D as er,Da as Pr,Ea as Ar,Fa as Tr,G as tr,Ga as Er,H as Tn,I as Ke,Ia as On,J as qe,K as At,Ka as Ir,L as se,La as Dt,M as Tt,O as Et,Oa as Je,P as It,Pa as Br,Q as ir,Qa as Cr,R as cr,Ra as Wt,Sa as _r,U as be,Ua as Gr,V as dr,Va as Or,W as Cn,Wa as $r,X as ur,Y as _n,Z as pr,Za as Fr,_ as lr,aa as mr,ab as Dr,b as yt,cb as Wr,d as xn,da as ue,db as Hr,eb as Xr,fa as fr,fb as Vr,g as ze,ga as hr,gb as jr,h as ge,ha as gr,hb as Yr,ia as br,ib as Ur,ja as wr,jb as zr,ka as Ot,kb as Ht,l as zo,la as Gn,mb as Kr,n as Ko,o as Ln,oa as yr,p as qo,pa as xr,q as Lt,r as Nn,ra as kr,sa as $t,v as Pn,va as Mr,w as Nt,wa as Sr,xa as Ft,y as An,z as Pt,za as vr}from"./chunk-CH2E7TRS.js";import{a as kn,c as Mn,f as de,g as vt,h as Pe,k as Ae,l as Yo,m as Uo,n as Rt,q as In,r as sr,s as ar,t as Bn}from"./chunk-XJDTSPBL.js";import{A as vn,C as Fo,D as Do,E as Wo,F as Ho,G as Rn,H as Xo,J as Ye,S as Ne,T as Vo,U as jo,V as Ue,W as Mt,_ as St,a as te,b as Xe,f as kt,g as fe,n as he,o as Sn,p as Ve,q as _o,s as W,t as Go,w as Oo,x as $o,y as je,z as Le}from"./chunk-G73A6PEI.js";import{b as Ct,c as _t,e as Gt}from"./chunk-TOT4S3TG.js";import{b as fn,c as hn,d as gn,f as bn,g as Ao,i as Io,j as yn}from"./chunk-G57N55FV.js";import{b as Re,c as E,d as We,e as ce,f as pn,g as me,h as ln,i as mn,j as He}from"./chunk-HW4LIGPA.js";import{c as To,e as $}from"./chunk-MVVXRZXV.js";import{a as Se,c as Po,d as ve}from"./chunk-OUN4BNWJ.js";import{a as wn,b as Eo}from"./chunk-5OI6LO4I.js";import{g as N}from"./chunk-NDRLCGPC.js";import{f as Lo,g as De,h as No,j as Q}from"./chunk-TENPGIPX.js";import{b as xt}from"./chunk-6OPB7FOJ.js";import{b as ee}from"./chunk-JMBDTNUR.js";var we=JBrowseExports["@mui/material/SvgIcon"],Da=e=>we!=null&&e in Object(we)?we[e]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+e+"' from '@mui/material/SvgIcon' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:e}),q=Da("createSvgIcon"),od=we&&we.__esModule?we.default:we;var Wa=/^[^#]+#\d+$/;function Ha(e,t){let n=e.assemblyNameToPanSN??{},o=new Set(Object.values(n)),s={};for(let{name:r,aliases:a}of t){let i=a.find(c=>Wa.test(c));i!==void 0&&!o.has(i)&&(s[r]=i)}return Object.keys(s).length===0?e:{...e,assemblyNameToPanSN:{...s,...n}}}var Xa=new Set(["GbzBaseSyntenyAdapter","WalkTabixSyntenyAdapter"]);function qr(e,t){let n=$(t,"adapter");return Xa.has(n.type)?Ha(n,Q(e).assemblyManager.assemblyList.map(o=>({name:$(o,"name"),aliases:$(o,"aliases")??[]}))):n}function Jr(e){return Re(e)?Zr(e):void 0}function Zr(e){return{sample:Se(e.stable.refName),haplotype:Po(e.stable.refName),refName:ve(e.stable.refName),start:e.stable.start,end:e.stable.start+e.length}}function Va(e,t){let n=[...e].sort((r,a)=>r.start-a.start),o,s;for(let r of n)s=s&&r.start-s.end<=t?{start:s.start,end:Math.max(s.end,r.end)}:{start:r.start,end:r.end},(!o||s.end-s.start>o.end-o.start)&&(o=s);return o}function ja(e){return`${e.haplotype??e.sample}\0${e.refName}`}function Qr(e,{maxGap:t=1/0}={}){let n=new Map;for(let s of e.nodes)if(Re(s)){let r=Zr(s),a=ja(r),i=n.get(a);i?(i.spans.push({start:r.start,end:r.end}),i.rank=Math.min(i.rank,s.stable.rank)):n.set(a,{sample:r.sample,haplotype:r.haplotype,refName:r.refName,rank:s.stable.rank,spans:[{start:r.start,end:r.end}]})}let o=new Map;for(let s of n.values()){let r=Va(s.spans,t);if(r){let a={sample:s.sample,haplotype:s.haplotype,refName:s.refName,start:r.start,end:r.end,rank:s.rank,nodeCount:s.spans.length},i=s.haplotype??s.sample,c=o.get(i);(!c||a.nodeCount>c.nodeCount)&&o.set(i,a)}}return[...o.values()].sort((s,r)=>+(s.rank!==0)-+(r.rank!==0)||s.sample.localeCompare(r.sample)||(s.haplotype??"").localeCompare(r.haplotype??""))}function Te(e,t){return(t.haplotype===void 0?void 0:e(t.haplotype))??e(t.sample)}function es(e,t){return e.flatMap(n=>{let o=Te(t,n);return o===void 0?[]:[{...n,sample:o}]})}function Xt(e){return`${e.refName}:${e.start+1}-${e.end}`}function Ee(e){return`${e.refName}:${(e.start+1).toLocaleString()}-${e.end.toLocaleString()}`}function $n(e){return e.walkStrip&&e.mode.drawsNodes&&!e.drawsPicture&&!e.popped&&!e.host&&e.walks>1}function Fn(e,t){return e.wholeWalks||t.walkStrip&&!t.host}var Ze=6,os=260,Ya=11,Ua=3,za=1.3,Ka="#111",ts=3;function Dn(e,t,n){let o=e.pathVisits?.get(n.name)??[],s=[];for(let r of t){let a=r.axis;if(!a)continue;let i=W(r.name).name;for(let c of o){if(c.path!==i)continue;let{start:d,end:l}=Ko(a,c.start,c.start+n.length);l>0&&d<r.bp&&s.push({row:r.name,start:d,bp:l-d})}}return s}var ns=new WeakMap;function qa(e,t){let n=ns.get(e);if(n||(n=new Map,ns.set(e,n)),n.has(t))return n.get(t);let o=new Map(e.nodes.map(a=>[a.id,a.length])),s=(e.paths??[]).filter(a=>a.name===t),r;if(s.every(a=>a.start!==void 0)){r={ids:[],starts:[],ends:[]};for(let a of[...s].sort((i,c)=>i.start-c.start)){let i=a.start;for(let c of a.nodeIds){let d=o.get(c)??0;r.ids.push(c),r.starts.push(i),r.ends.push(i+d),i+=d}}}return n.set(t,r),r}function Ja(e,t,n,o){let s=t.axis,r=s&&qa(e,t.name);if(!s||!r||n<0||n>t.bp)return;let a=s.reversed?s.start-n:s.start+n,i=.5/o,c=s.reversed?{start:s.start-t.bp,end:s.start}:{start:s.start,end:s.start+t.bp},d=Math.max(a-i,c.start),l=Math.min(a+i,c.end),p=0,u=r.starts.length;for(;p<u;){let m=p+u>>1;r.ends[m]<=d?p=m+1:u=m}let h,g=-1,b=!1;for(let m=p;m<r.starts.length&&r.starts[m]<l;m++){let f=r.ends[m]-r.starts[m],y=r.starts[m]<=a&&a<r.ends[m];(f>g||f===g&&y&&!b)&&(g=f,h=r.ids[m],b=y)}return h}function Qe(e,t){let n=t.maxHeight??os,o=t.labelPx??Math.max(...[e.reference,...e.rows].map(h=>h.label.length))*Le+16,s=e.rows.length+1,{rowPx:r,barPx:a,labelled:i,readouts:c}=Nt(s,n-2*Ze,Ua),d=Math.max(e.reference.bp,...e.rows.map(h=>h.bp),1),l=i?o:Ze,u=Math.max(1,t.width-l-Ze)/(d*(c?za:1));return{scaleX:u,scaleY:1,translateX:l-e.origin*u,translateY:Ze+r/2,width:t.width,height:s*r+2*Ze,rowPx:r,barPx:a,readouts:c,labelled:i,boxesGenes:Lt(r,a)}}function Za(e,t,n,o){let s=Math.round((o-t.translateY)/t.rowPx),r=[e.reference,...e.rows][s],a=(n-t.translateX)/t.scaleX-e.origin;return r&&s>=0&&a>=0&&a<=r.bp?{index:s,row:r,offset:a}:void 0}function Qa(e,t,n){let o=new Map([e.reference,...e.rows].map((r,a)=>[r.name,a])),s=r=>(e.origin+r)*t.scaleX+t.translateX;return ze("g",{"data-testid":"graph-walk-marks"},...n.flatMap(r=>{let a=o.get(r.row);if(a===void 0)return[];let i=a*t.rowPx+t.translateY,c=s(r.start),d=Math.max(2,r.bp*t.scaleX),l=p=>ze("rect",{x:c,y:p,width:d,height:ts,fill:Ka});return[l(i-t.barPx/2-ts-1),l(i+t.barPx/2+1)]}))}function Wn(e,t,n=new Set){return ze("g",{"font-family":"sans-serif","font-size":Ya,fill:"#333"},...(t.labelled?[e.reference,...e.rows]:[]).map((o,s)=>ze("text",{x:6,y:s*t.rowPx+t.translateY+4,"font-weight":n.has(o.name)?600:void 0},o.label)))}function Hn(e,t,n){if(t?.size)return e.boxesGenes?n:{untracked:0,unread:0,...n,crowded:!0}}function et(e,t,n){let o=new Map;for(let r of e.nodes)if(Re(r)){let{refName:a}=r.stable;if(n[r.id]?.length){let i=o.get(a)??o.set(a,{nodes:[],reach:0}).get(a);i.nodes.push(r),i.reach=Math.max(i.reach,r.length)}}for(let{nodes:r}of o.values())r.sort((a,i)=>a.stable.start-i.stable.start);let s=[];for(let r of t){let a=o.get(r.refName);if(!a)continue;let i=[],c=[],d=new Set,l,p=1/0,u=0,h=(r.start+r.end)/2,{nodes:g,reach:b}=a;for(let m=ln(g,r.start-b);m<g.length&&g[m].stable.start<r.end;m++){let f=g[m],y=f.stable.start,x=y+f.length;if(x<=r.start)continue;let w=n[f.id];d.add(f.id),u+=Math.min(x,r.end)-Math.max(y,r.start);let k=[];for(let T of r.exons){let _=Math.max(T.start,y),H=Math.min(T.end,x);if(H<=_)continue;let j=Rn(w,(_-y)/f.length,(H-y)/f.length);j.length===1&&j.push({...j[0]}),k.push(Xe(j))}k.length>0&&(i.push(...k),c.push({nodeId:f.id,d:k.join("")}));let S=Math.min(Math.max(h,y),x),P=Math.abs(S-h);if(P<p){p=P;let[T]=Rn(w,(S-y)/f.length,(S-y)/f.length);l=T}}l&&s.push({gene:r,exons:i.join(""),exonsByNode:c,nodeIds:d,at:l,covered:u/(r.end-r.start)})}return s}function tt(e,t,n={}){return{nodePositions:n.drawsRows?{}:e.nodePositions,deletions:t.bypassed,deletionRoutes:e.deletionRoutes,stranded:e.stranded,hiddenEdges:t.hidden}}var rs="10.2.2";var ss=30;function ei(e,t){let{opts:n}=t,o=new Map(t.nodes.map(u=>[u.id,Bt(n,u.length)])),s=u=>o.get(u)??n.minimumNodeLength,r=e.nodes.filter(E).sort((u,h)=>u.stable.start-h.stable.start),a=new Map,i=0;for(let u of r)a.set(u.id,{x:i,y:0}),i+=s(u.id)+n.edgeLength;let c=de(e),d=new Map(r.map(u=>[u.id,0])),l=r.map(u=>u.id);for(let u of l){let h=a.get(u),g=d.get(u)+1;for(let b of c.get(u)??[])d.has(b)||(d.set(b,g),a.set(b,{x:h.x+s(u)/2,y:ss*g}),l.push(b))}let p=0;for(let u of e.nodes)a.has(u.id)||a.set(u.id,{x:p++*i/e.nodes.length,y:ss*3});return a}function as(e,t){let n=ei(e,t);return t.nodes.map(o=>({...o,...n.get(o.id)}))}var ti=Math.PI/24;function is(e,t){let n=e[t-1],o=e[t],s=e[t+1];if(!n||!s)return 0;let r=Math.abs(Math.atan2(s.y-o.y,s.x-o.x)-Math.atan2(o.y-n.y,o.x-n.x));return r>Math.PI?2*Math.PI-r:r}function ni(e,t,n,o,s){let r=(g,b)=>Math.max(Math.hypot(b.x-g.x,b.y-g.y)**.5,1e-9),a=r(e,t),i=a+r(t,n),c=i+r(n,o),d=a+s*(i-a),l=(g,b,m,f)=>{let y=(d-m)/(f-m);return{x:g.x+(b.x-g.x)*y,y:g.y+(b.y-g.y)*y}},p=l(e,t,0,a),u=l(t,n,a,i),h=l(n,o,i,c);return l(l(p,u,0,i),l(u,h,a,c),a,i)}var cs=(e,t)=>({x:2*t.x-e.x,y:2*t.y-e.y});function ds(e){if(e.length<3)return e;let t=[e[0]];for(let n=0;n+1<e.length;n++){let o=e[n],s=e[n+1],r=Math.ceil(Math.max(is(e,n),is(e,n+1))/ti),a=e[n-1]??cs(s,o),i=e[n+2]??cs(o,s);for(let c=1;c<r;c++)t.push(ni(a,o,s,i,c/r));t.push(s)}return t}var oi=.5;function us(e,t,n=new Set){let o=new Map(t.map(r=>[r.edgeIndex,`${Bo}${r.edgeIndex}`])),s=[];return e.edges.forEach((r,a)=>{let i=o.get(a);if(!n.has(a))if(i===void 0)s.push(r);else{let{fromStrand:c,toStrand:d}=r;s.push({from:r.from,to:i,...c?{fromStrand:c}:{}},{from:i,to:r.to,...d?{toStrand:d}:{}})}}),{graph:{...e,nodes:[...e.nodes,...[...o.values()].map(r=>({id:r,name:r,length:0,depth:0}))],edges:s},routes:o,ids:new Set(o.values())}}function ps(e,t,n,o,s){let r=new Map(e.nodes.map(a=>[a.id,a.length]));return t.map(a=>{let i=a.bypassed.reduce((l,p)=>l+(r.get(p)??0),0),c=Math.max(s.minimumNodeLength,o(i)*oi),d=n.get(a.edgeIndex);return{id:d,name:d,length:Math.round(c*1e6/s.nodeLengthPerMegabase),depth:0}})}function ls(e,t){let n={...e},o={};for(let[s,r]of t){let a=n[r];delete n[r],a?.length&&(o[s]=a)}return{nodePositions:n,deletionRoutes:o}}function ms(e,t){let n=e.nodes.filter(m=>E(m)&&(t[m.id]?.length??0)>0);if(n.length<2)return t;let o=n.map(m=>{let f=t[m.id],y=f[Math.floor(f.length/2)];return{x:y.x,y:y.y,r:m.stable.start+m.length/2,w:m.length}}),s=o.reduce((m,f)=>m+f.w,0),r=o.reduce((m,f)=>m+f.x*f.w,0)/s,a=o.reduce((m,f)=>m+f.y*f.w,0)/s,i=o.reduce((m,f)=>m+f.r*f.w,0)/s,c=0,d=0;for(let m of o)c+=m.w*(m.x-r)*(m.r-i),d+=m.w*(m.y-a)*(m.r-i);let l=-Math.atan2(d,c),p=Math.cos(l),u=Math.sin(l),h={};for(let[m,f]of Object.entries(t))h[m]=f.map(y=>{let x=y.x-r,w=y.y-a;return{x:r+p*x-u*w,y:a+u*x+p*w}});let g=0,b=0;for(let m of e.nodes)if(!E(m))for(let f of h[m.id]??[])f.y>a?g++:b++;if(b>g)for(let m of Object.values(h))for(let f of m)f.y=2*a-f.y;return h}function ri(e,t){let n=e.indexOf(":"),o=e.indexOf(":",n+1);if(n!==-1&&o!==-1){let s=e.slice(0,n),r=e.slice(n+1,o),a=e.slice(o+1);r==="i"||r==="f"?t[s]=+a:r==="Z"&&(t[s]=a)}}function nt(e){let t={};for(let n of e)ri(n,t);return t}function hs(e){let{SN:t,SO:n,SR:o}=e.tags;return typeof t=="string"&&typeof n=="number"&&typeof o=="number"?{refName:t,start:n,rank:o}:void 0}var fs=62,si=60;function ai(e){let t=[],n="+",o=0;function s(r){r>o&&t.push({id:e.slice(o,r),strand:n})}for(let r=0;r<e.length;r++){let a=e.charCodeAt(r);(a===fs||a===si)&&(s(r),n=a===fs?"+":"-",o=r+1)}return s(e.length),t}function gs(e){let t={nodes:[],links:[],paths:[],walks:[],header:[],id:""};for(let n of e.split(`
1
+ import{a as Bo,c as Co,e as Bt,f as En,g as nr,i as or,j as rr}from"./chunk-ZWMYT35X.js";import{A as Jo,Aa as Rr,B as Zo,Ba as Lr,C as Qo,Ca as Nr,D as er,Da as Pr,Ea as Ar,Fa as Tr,G as tr,Ga as Er,H as Tn,I as Ke,Ia as On,J as qe,K as At,Ka as Ir,L as se,La as Dt,M as Tt,O as Et,Oa as Je,P as It,Pa as Br,Q as ir,Qa as Cr,R as cr,Ra as Wt,Sa as _r,U as be,Ua as Gr,V as dr,Va as Or,W as Cn,Wa as $r,X as ur,Y as _n,Z as pr,Za as Fr,_ as lr,aa as mr,ab as Dr,b as yt,cb as Wr,d as xn,da as ue,db as Hr,eb as Xr,fa as fr,fb as Vr,g as ze,ga as hr,gb as jr,h as ge,ha as gr,hb as Yr,ia as br,ib as Ur,ja as wr,jb as zr,ka as Ot,kb as Ht,l as zo,la as Gn,mb as Kr,n as Ko,o as Ln,oa as yr,p as qo,pa as xr,q as Lt,r as Nn,ra as kr,sa as $t,v as Pn,va as Mr,w as Nt,wa as Sr,xa as Ft,y as An,z as Pt,za as vr}from"./chunk-CH2E7TRS.js";import{a as kn,c as Mn,f as de,g as vt,h as Pe,k as Ae,l as Yo,m as Uo,n as Rt,q as In,r as sr,s as ar,t as Bn}from"./chunk-XJDTSPBL.js";import{A as vn,C as Fo,D as Do,E as Wo,F as Ho,G as Rn,H as Xo,J as Ye,S as Ne,T as Vo,U as jo,V as Ue,W as Mt,_ as St,a as te,b as Xe,f as kt,g as fe,n as he,o as Sn,p as Ve,q as _o,s as W,t as Go,w as Oo,x as $o,y as je,z as Le}from"./chunk-G73A6PEI.js";import{b as Ct,c as _t,e as Gt}from"./chunk-TOT4S3TG.js";import{b as fn,c as hn,d as gn,f as bn,g as Ao}from"./chunk-4O7LDKI5.js";import{b as Re,c as E,d as We,e as ce,f as pn,g as me,h as ln,i as mn,j as He}from"./chunk-HW4LIGPA.js";import{b as Io,c as yn}from"./chunk-TXI43PEN.js";import{c as To,e as $}from"./chunk-MVVXRZXV.js";import{a as Se,c as Po,d as ve}from"./chunk-OUN4BNWJ.js";import{a as wn,b as Eo}from"./chunk-5OI6LO4I.js";import{g as N}from"./chunk-NDRLCGPC.js";import{f as Lo,g as De,h as No,j as Q}from"./chunk-TENPGIPX.js";import{b as xt}from"./chunk-6OPB7FOJ.js";import{b as ee}from"./chunk-JMBDTNUR.js";var we=JBrowseExports["@mui/material/SvgIcon"],Da=e=>we!=null&&e in Object(we)?we[e]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+e+"' from '@mui/material/SvgIcon' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:e}),q=Da("createSvgIcon"),od=we&&we.__esModule?we.default:we;var Wa=/^[^#]+#\d+$/;function Ha(e,t){let n=e.assemblyNameToPanSN??{},o=new Set(Object.values(n)),s={};for(let{name:r,aliases:a}of t){let i=a.find(c=>Wa.test(c));i!==void 0&&!o.has(i)&&(s[r]=i)}return Object.keys(s).length===0?e:{...e,assemblyNameToPanSN:{...s,...n}}}var Xa=new Set(["GbzBaseSyntenyAdapter","WalkTabixSyntenyAdapter"]);function qr(e,t){let n=$(t,"adapter");return Xa.has(n.type)?Ha(n,Q(e).assemblyManager.assemblyList.map(o=>({name:$(o,"name"),aliases:$(o,"aliases")??[]}))):n}function Jr(e){return Re(e)?Zr(e):void 0}function Zr(e){return{sample:Se(e.stable.refName),haplotype:Po(e.stable.refName),refName:ve(e.stable.refName),start:e.stable.start,end:e.stable.start+e.length}}function Va(e,t){let n=[...e].sort((r,a)=>r.start-a.start),o,s;for(let r of n)s=s&&r.start-s.end<=t?{start:s.start,end:Math.max(s.end,r.end)}:{start:r.start,end:r.end},(!o||s.end-s.start>o.end-o.start)&&(o=s);return o}function ja(e){return`${e.haplotype??e.sample}\0${e.refName}`}function Qr(e,{maxGap:t=1/0}={}){let n=new Map;for(let s of e.nodes)if(Re(s)){let r=Zr(s),a=ja(r),i=n.get(a);i?(i.spans.push({start:r.start,end:r.end}),i.rank=Math.min(i.rank,s.stable.rank)):n.set(a,{sample:r.sample,haplotype:r.haplotype,refName:r.refName,rank:s.stable.rank,spans:[{start:r.start,end:r.end}]})}let o=new Map;for(let s of n.values()){let r=Va(s.spans,t);if(r){let a={sample:s.sample,haplotype:s.haplotype,refName:s.refName,start:r.start,end:r.end,rank:s.rank,nodeCount:s.spans.length},i=s.haplotype??s.sample,c=o.get(i);(!c||a.nodeCount>c.nodeCount)&&o.set(i,a)}}return[...o.values()].sort((s,r)=>+(s.rank!==0)-+(r.rank!==0)||s.sample.localeCompare(r.sample)||(s.haplotype??"").localeCompare(r.haplotype??""))}function Te(e,t){return(t.haplotype===void 0?void 0:e(t.haplotype))??e(t.sample)}function es(e,t){return e.flatMap(n=>{let o=Te(t,n);return o===void 0?[]:[{...n,sample:o}]})}function Xt(e){return`${e.refName}:${e.start+1}-${e.end}`}function Ee(e){return`${e.refName}:${(e.start+1).toLocaleString()}-${e.end.toLocaleString()}`}function $n(e){return e.walkStrip&&e.mode.drawsNodes&&!e.drawsPicture&&!e.popped&&!e.host&&e.walks>1}function Fn(e,t){return e.wholeWalks||t.walkStrip&&!t.host}var Ze=6,os=260,Ya=11,Ua=3,za=1.3,Ka="#111",ts=3;function Dn(e,t,n){let o=e.pathVisits?.get(n.name)??[],s=[];for(let r of t){let a=r.axis;if(!a)continue;let i=W(r.name).name;for(let c of o){if(c.path!==i)continue;let{start:d,end:l}=Ko(a,c.start,c.start+n.length);l>0&&d<r.bp&&s.push({row:r.name,start:d,bp:l-d})}}return s}var ns=new WeakMap;function qa(e,t){let n=ns.get(e);if(n||(n=new Map,ns.set(e,n)),n.has(t))return n.get(t);let o=new Map(e.nodes.map(a=>[a.id,a.length])),s=(e.paths??[]).filter(a=>a.name===t),r;if(s.every(a=>a.start!==void 0)){r={ids:[],starts:[],ends:[]};for(let a of[...s].sort((i,c)=>i.start-c.start)){let i=a.start;for(let c of a.nodeIds){let d=o.get(c)??0;r.ids.push(c),r.starts.push(i),r.ends.push(i+d),i+=d}}}return n.set(t,r),r}function Ja(e,t,n,o){let s=t.axis,r=s&&qa(e,t.name);if(!s||!r||n<0||n>t.bp)return;let a=s.reversed?s.start-n:s.start+n,i=.5/o,c=s.reversed?{start:s.start-t.bp,end:s.start}:{start:s.start,end:s.start+t.bp},d=Math.max(a-i,c.start),l=Math.min(a+i,c.end),p=0,u=r.starts.length;for(;p<u;){let m=p+u>>1;r.ends[m]<=d?p=m+1:u=m}let h,g=-1,b=!1;for(let m=p;m<r.starts.length&&r.starts[m]<l;m++){let f=r.ends[m]-r.starts[m],y=r.starts[m]<=a&&a<r.ends[m];(f>g||f===g&&y&&!b)&&(g=f,h=r.ids[m],b=y)}return h}function Qe(e,t){let n=t.maxHeight??os,o=t.labelPx??Math.max(...[e.reference,...e.rows].map(h=>h.label.length))*Le+16,s=e.rows.length+1,{rowPx:r,barPx:a,labelled:i,readouts:c}=Nt(s,n-2*Ze,Ua),d=Math.max(e.reference.bp,...e.rows.map(h=>h.bp),1),l=i?o:Ze,u=Math.max(1,t.width-l-Ze)/(d*(c?za:1));return{scaleX:u,scaleY:1,translateX:l-e.origin*u,translateY:Ze+r/2,width:t.width,height:s*r+2*Ze,rowPx:r,barPx:a,readouts:c,labelled:i,boxesGenes:Lt(r,a)}}function Za(e,t,n,o){let s=Math.round((o-t.translateY)/t.rowPx),r=[e.reference,...e.rows][s],a=(n-t.translateX)/t.scaleX-e.origin;return r&&s>=0&&a>=0&&a<=r.bp?{index:s,row:r,offset:a}:void 0}function Qa(e,t,n){let o=new Map([e.reference,...e.rows].map((r,a)=>[r.name,a])),s=r=>(e.origin+r)*t.scaleX+t.translateX;return ze("g",{"data-testid":"graph-walk-marks"},...n.flatMap(r=>{let a=o.get(r.row);if(a===void 0)return[];let i=a*t.rowPx+t.translateY,c=s(r.start),d=Math.max(2,r.bp*t.scaleX),l=p=>ze("rect",{x:c,y:p,width:d,height:ts,fill:Ka});return[l(i-t.barPx/2-ts-1),l(i+t.barPx/2+1)]}))}function Wn(e,t,n=new Set){return ze("g",{"font-family":"sans-serif","font-size":Ya,fill:"#333"},...(t.labelled?[e.reference,...e.rows]:[]).map((o,s)=>ze("text",{x:6,y:s*t.rowPx+t.translateY+4,"font-weight":n.has(o.name)?600:void 0},o.label)))}function Hn(e,t,n){if(t?.size)return e.boxesGenes?n:{untracked:0,unread:0,...n,crowded:!0}}function et(e,t,n){let o=new Map;for(let r of e.nodes)if(Re(r)){let{refName:a}=r.stable;if(n[r.id]?.length){let i=o.get(a)??o.set(a,{nodes:[],reach:0}).get(a);i.nodes.push(r),i.reach=Math.max(i.reach,r.length)}}for(let{nodes:r}of o.values())r.sort((a,i)=>a.stable.start-i.stable.start);let s=[];for(let r of t){let a=o.get(r.refName);if(!a)continue;let i=[],c=[],d=new Set,l,p=1/0,u=0,h=(r.start+r.end)/2,{nodes:g,reach:b}=a;for(let m=ln(g,r.start-b);m<g.length&&g[m].stable.start<r.end;m++){let f=g[m],y=f.stable.start,x=y+f.length;if(x<=r.start)continue;let w=n[f.id];d.add(f.id),u+=Math.min(x,r.end)-Math.max(y,r.start);let k=[];for(let T of r.exons){let _=Math.max(T.start,y),H=Math.min(T.end,x);if(H<=_)continue;let j=Rn(w,(_-y)/f.length,(H-y)/f.length);j.length===1&&j.push({...j[0]}),k.push(Xe(j))}k.length>0&&(i.push(...k),c.push({nodeId:f.id,d:k.join("")}));let S=Math.min(Math.max(h,y),x),P=Math.abs(S-h);if(P<p){p=P;let[T]=Rn(w,(S-y)/f.length,(S-y)/f.length);l=T}}l&&s.push({gene:r,exons:i.join(""),exonsByNode:c,nodeIds:d,at:l,covered:u/(r.end-r.start)})}return s}function tt(e,t,n={}){return{nodePositions:n.drawsRows?{}:e.nodePositions,deletions:t.bypassed,deletionRoutes:e.deletionRoutes,stranded:e.stranded,hiddenEdges:t.hidden}}var rs="10.2.2";var ss=30;function ei(e,t){let{opts:n}=t,o=new Map(t.nodes.map(u=>[u.id,Bt(n,u.length)])),s=u=>o.get(u)??n.minimumNodeLength,r=e.nodes.filter(E).sort((u,h)=>u.stable.start-h.stable.start),a=new Map,i=0;for(let u of r)a.set(u.id,{x:i,y:0}),i+=s(u.id)+n.edgeLength;let c=de(e),d=new Map(r.map(u=>[u.id,0])),l=r.map(u=>u.id);for(let u of l){let h=a.get(u),g=d.get(u)+1;for(let b of c.get(u)??[])d.has(b)||(d.set(b,g),a.set(b,{x:h.x+s(u)/2,y:ss*g}),l.push(b))}let p=0;for(let u of e.nodes)a.has(u.id)||a.set(u.id,{x:p++*i/e.nodes.length,y:ss*3});return a}function as(e,t){let n=ei(e,t);return t.nodes.map(o=>({...o,...n.get(o.id)}))}var ti=Math.PI/24;function is(e,t){let n=e[t-1],o=e[t],s=e[t+1];if(!n||!s)return 0;let r=Math.abs(Math.atan2(s.y-o.y,s.x-o.x)-Math.atan2(o.y-n.y,o.x-n.x));return r>Math.PI?2*Math.PI-r:r}function ni(e,t,n,o,s){let r=(g,b)=>Math.max(Math.hypot(b.x-g.x,b.y-g.y)**.5,1e-9),a=r(e,t),i=a+r(t,n),c=i+r(n,o),d=a+s*(i-a),l=(g,b,m,f)=>{let y=(d-m)/(f-m);return{x:g.x+(b.x-g.x)*y,y:g.y+(b.y-g.y)*y}},p=l(e,t,0,a),u=l(t,n,a,i),h=l(n,o,i,c);return l(l(p,u,0,i),l(u,h,a,c),a,i)}var cs=(e,t)=>({x:2*t.x-e.x,y:2*t.y-e.y});function ds(e){if(e.length<3)return e;let t=[e[0]];for(let n=0;n+1<e.length;n++){let o=e[n],s=e[n+1],r=Math.ceil(Math.max(is(e,n),is(e,n+1))/ti),a=e[n-1]??cs(s,o),i=e[n+2]??cs(o,s);for(let c=1;c<r;c++)t.push(ni(a,o,s,i,c/r));t.push(s)}return t}var oi=.5;function us(e,t,n=new Set){let o=new Map(t.map(r=>[r.edgeIndex,`${Bo}${r.edgeIndex}`])),s=[];return e.edges.forEach((r,a)=>{let i=o.get(a);if(!n.has(a))if(i===void 0)s.push(r);else{let{fromStrand:c,toStrand:d}=r;s.push({from:r.from,to:i,...c?{fromStrand:c}:{}},{from:i,to:r.to,...d?{toStrand:d}:{}})}}),{graph:{...e,nodes:[...e.nodes,...[...o.values()].map(r=>({id:r,name:r,length:0,depth:0}))],edges:s},routes:o,ids:new Set(o.values())}}function ps(e,t,n,o,s){let r=new Map(e.nodes.map(a=>[a.id,a.length]));return t.map(a=>{let i=a.bypassed.reduce((l,p)=>l+(r.get(p)??0),0),c=Math.max(s.minimumNodeLength,o(i)*oi),d=n.get(a.edgeIndex);return{id:d,name:d,length:Math.round(c*1e6/s.nodeLengthPerMegabase),depth:0}})}function ls(e,t){let n={...e},o={};for(let[s,r]of t){let a=n[r];delete n[r],a?.length&&(o[s]=a)}return{nodePositions:n,deletionRoutes:o}}function ms(e,t){let n=e.nodes.filter(m=>E(m)&&(t[m.id]?.length??0)>0);if(n.length<2)return t;let o=n.map(m=>{let f=t[m.id],y=f[Math.floor(f.length/2)];return{x:y.x,y:y.y,r:m.stable.start+m.length/2,w:m.length}}),s=o.reduce((m,f)=>m+f.w,0),r=o.reduce((m,f)=>m+f.x*f.w,0)/s,a=o.reduce((m,f)=>m+f.y*f.w,0)/s,i=o.reduce((m,f)=>m+f.r*f.w,0)/s,c=0,d=0;for(let m of o)c+=m.w*(m.x-r)*(m.r-i),d+=m.w*(m.y-a)*(m.r-i);let l=-Math.atan2(d,c),p=Math.cos(l),u=Math.sin(l),h={};for(let[m,f]of Object.entries(t))h[m]=f.map(y=>{let x=y.x-r,w=y.y-a;return{x:r+p*x-u*w,y:a+u*x+p*w}});let g=0,b=0;for(let m of e.nodes)if(!E(m))for(let f of h[m.id]??[])f.y>a?g++:b++;if(b>g)for(let m of Object.values(h))for(let f of m)f.y=2*a-f.y;return h}function ri(e,t){let n=e.indexOf(":"),o=e.indexOf(":",n+1);if(n!==-1&&o!==-1){let s=e.slice(0,n),r=e.slice(n+1,o),a=e.slice(o+1);r==="i"||r==="f"?t[s]=+a:r==="Z"&&(t[s]=a)}}function nt(e){let t={};for(let n of e)ri(n,t);return t}function hs(e){let{SN:t,SO:n,SR:o}=e.tags;return typeof t=="string"&&typeof n=="number"&&typeof o=="number"?{refName:t,start:n,rank:o}:void 0}var fs=62,si=60;function ai(e){let t=[],n="+",o=0;function s(r){r>o&&t.push({id:e.slice(o,r),strand:n})}for(let r=0;r<e.length;r++){let a=e.charCodeAt(r);(a===fs||a===si)&&(s(r),n=a===fs?"+":"-",o=r+1)}return s(e.length),t}function gs(e){let t={nodes:[],links:[],paths:[],walks:[],header:[],id:""};for(let n of e.split(`
2
2
  `)){let o=n.endsWith("\r")?n.slice(0,-1):n;if(o.startsWith("H")){let[,...s]=o.split(" ");t.header.push(nt(s))}else if(o.startsWith("S")){let[,s,...r]=o.split(" "),a,i,c,d=!1,l=r[0]??"*";/^\d+$/.test(l)?(a=+l,i=r[1]??"*",c=r.slice(2)):(d=!0,i=l,a=i==="*"?0:i.length,c=r.slice(1));let p=nt(c);d&&"LN"in p&&(a=+p.LN),t.nodes.push({id:s,length:a,sequence:i,tags:p})}else if(o.startsWith("E")){let[,,s,r,,,,,a,...i]=o.split(" ");s&&r&&t.links.push({source:s.slice(0,-1),target:r.slice(0,-1),strand1:s.at(-1),strand2:r.at(-1),cigar:a??"*",tags:nt(i)})}else if(o.startsWith("L")){let[,s,r,a,i,c,...d]=o.split(" ");s&&a&&i&&t.links.push({source:s,target:a,strand1:r,strand2:i,cigar:c??"*",tags:nt(d)})}else if(o.startsWith("W")){let[,s,r,a,i,c,d,...l]=o.split(" ");s&&r&&a&&i&&c&&d&&t.walks.push({sample:s,haplotype:+r,contig:a,start:i==="*"?-1:+i,end:c==="*"?-1:+c,segments:ai(d),tags:nt(l)})}else if(o.startsWith("P")){let[,s,r,...a]=o.split(" ");s&&r&&t.paths.push({name:s,path:r,rest:a})}}return t}function ii(e){let t=new Map,n=new Map;function o(r,a){t.has(r)||t.set(r,a)}function s(r,a){let i=n.get(r);i===void 0&&o(r,a),n.set(r,(i??0)+1)}for(let r of e.links)o(r.source,r.strand1==="-"?"-":"+"),o(r.target,r.strand2==="-"?"-":"+");for(let r of e.paths)for(let a of r.path.split(","))s(a.slice(0,-1),a.endsWith("-")?"-":"+");for(let r of e.walks)for(let a of r.segments)s(a.id,a.strand==="-"?"-":"+");return{canonical:t,traversals:n}}var bs=e=>e.start===-1?0:e.start,ci=e=>e.strand==="+"||e.strand==="-";function di(e){return[...e.paths.map(t=>({...W(t.name),steps:t.path.split(",").map(n=>({id:n.slice(0,-1),strand:n.endsWith("-")?"-":"+"}))})),...e.walks.map(t=>({name:`${t.sample}#${t.haplotype}#${t.contig}`,start:bs(t),steps:t.segments.every(ci)?t.segments:t.segments.map(n=>({id:n.id,strand:n.strand==="-"?"-":"+"}))}))]}function ui(e){let t=e.tags.SM;if(typeof t!="string")return;let n=t.split(",").map(o=>o.trim()).filter(Boolean);return n.length>0?n:void 0}var ot=e=>typeof e=="number"&&e>0?e:void 0;function pi({tags:e,length:t}){let n=ot(e.RC)??ot(e.FC)??ot(e.KC);return ot(e.dp)??ot(e.DP)??(n!==void 0&&t>0?n/t:void 0)}function li(e,t,n){return{id:`${e.id}${t}`,name:e.id,length:e.length,depth:n,stable:hs(e),samples:ui(e)}}function ws(e,t="Imported GFA"){let n=[],o=[],{canonical:s,traversals:r}=ii(e),a=new Map,i=m=>{let f=a.get(m);return f===void 0&&(f=`${m}${s.get(m)??"+"}`,a.set(m,f)),f};for(let m of e.nodes){let f=pi(m)??Math.max(r.get(m.id)??1,1);n.push(li(m,s.get(m.id)??"+",f))}for(let m of e.links)o.push({from:i(m.source),to:i(m.target),fromStrand:m.strand1==="-"?"-":"+",toStrand:m.strand2==="-"?"-":"+"});let c=[],d=new Map,l=(m,f)=>d.get(m)?.get(f);function p(m,f,y){let x=d.get(m);x||(x=new Map,d.set(m,x)),x.set(f,y)}let u=o.map(m=>{let f=l(m.from,m.to);return f||(f=new Set,p(m.from,m.to,f),p(m.to,m.from,f)),f});function h(m,f){for(let y=0;y<m.length-1;y++)l(m[y],m[y+1])?.add(f)}for(let m of e.paths){let f=m.path.split(",").map(y=>i(y.slice(0,-1)));c.push({name:m.name,nodeIds:f,start:W(m.name).start}),h(f,m.name)}for(let m of e.walks){let f=m.segments.map(x=>i(x.id)),y=`${m.sample}#${m.haplotype}#${m.contig}`;c.push({name:y,nodeIds:f,start:bs(m),sample:m.sample,haplotype:m.haplotype,contig:m.contig}),h(f,y)}o.forEach((m,f)=>{let y=u[f];y.size>0&&(m.pathIds=[...y])});let g=new Map(e.nodes.map(m=>[m.id,m.length])),b=e.paths.length>0||e.walks.length>0?Go(di(e),m=>g.get(m)??0):void 0;return{name:t,nodes:n,edges:o,paths:c.length>0?c:void 0,anchorPaths:b?.anchorPaths,pathVisits:b?.pathVisits,anchoredBy:n.some(m=>m.stable)?"tags":void 0}}function mi(e){let[t="",n="",...o]=e.split("#");return{sample:t,haplotype:n,contig:o.join("#")}}function fi(e,t,n,o){let s=new Int32Array(n+1);for(let c of e)s[c+1]++;for(let c=0;c<n;c++)s[c+1]+=s[c];let r=s.slice(0,n),a=new Int32Array(e.length);e.forEach((c,d)=>{a[r[c]++]=t[d]});let i=new Int32Array(o.length).fill(-1);return Array.from({length:n},(c,d)=>{let l=[];for(let p=s[d];p<s[d+1];p++){let u=a[p];i[u]!==d&&(i[u]=d,l.push(o[u]))}return l})}function Xn({nodes:e,links:t,walks:n},o="Imported GFA"){let s=e.names.length,r=e.lengths.length,a=new Uint8Array(s),i=(M,v)=>{a[M]===0&&(a[M]=v?2:1)};for(let M=0;M<t.from.length;M++)i(t.from[M],t.strands[M]&1),i(t.to[M],t.strands[M]&2);let c=[];for(let M=0;M<n.names.length;M++)n.offsets[M+1]>n.offsets[M]&&c.push(M);let d=new Int32Array(s);for(let M of c)for(let v=n.offsets[M];v<n.offsets[M+1];v++){let R=n.steps[v];d[R]===0&&i(R,n.reversed[v]),d[R]++}let l=e.names.map((M,v)=>`${M}${a[v]===2?"-":"+"}`),p=[];for(let M=0;M<r;M++){let v=e.refs[M];p.push({id:l[M],name:e.names[M],length:e.lengths[M],depth:Math.max(d[M],1),stable:v<0?void 0:{refName:e.refNames[v],start:e.starts[M],rank:e.ranks[M]},samples:void 0})}let u=[],h=new Array(s),g=(M,v)=>{let R=h[M];if(R){for(let B=0;B<R.length;B+=2)if(R[B]===v)return R[B+1]}},b=(M,v,R)=>{let B=h[M];B?B.push(v,R):h[M]=[v,R]},m=[],f=0;for(let M=0;M<t.from.length;M++){let v=t.from[M],R=t.to[M];u.push({from:l[v],to:l[R],fromStrand:t.strands[M]&1?"-":"+",toStrand:t.strands[M]&2?"-":"+"});let B=g(v,R);B===void 0&&(B=f++,b(v,R,B),b(R,v,B)),m.push(B)}let y=new Int32Array(s+1);for(let M=0;M<s;M++)y[M+1]=y[M]+(h[M]?.length??0)/2;let x=new Int32Array(y[s]),w=new Int32Array(y[s]);h.forEach((M,v)=>{for(let R=0;R<M.length;R+=2)x[y[v]+R/2]=M[R],w[y[v]+R/2]=M[R+1]});let k=(M,v)=>{for(let R=y[M];R<y[M+1];R++)if(x[R]===v)return w[R];return-1},S=new Map,P=[],T=new Int32Array(n.offsets[n.names.length]??0),_=new Int32Array(T.length),H=0,j=new Int32Array(f).fill(-1),oe=[],F=[],Y=n.offsets[n.names.length]??0,V=new Int32Array(Y),U=new Float64Array(Y),X=new Uint8Array(Y),Z=new Int32Array(s).fill(-1),A=[],L=[0],I=[];for(let M of c){let{sample:v,haplotype:R,contig:B}=mi(n.names[M]),G=`${v}#${+R}#${B}`,z=S.get(G);z===void 0&&(z=P.length,S.set(G,z),P.push(G),I.push(Se(G)));let K=n.starts[M],an=I[z],$e=n.offsets[M],bt=new Array(n.offsets[M+1]-$e),cn=K,dn=-1;for(let Fe=$e;Fe<n.offsets[M+1];Fe++){let re=n.steps[Fe];bt[Fe-$e]=l[re],Z[re]===-1&&(Z[re]=L.at(-1),L.push(Z[re]+d[re]),A.push(re));let un=Z[re]++;if(V[un]=z,U[un]=cn,X[un]=n.reversed[Fe],cn+=re<r?e.lengths[re]:0,dn>=0){let wt=k(dn,re);wt>=0&&j[wt]!==M&&(j[wt]=M,T[H]=wt,_[H++]=z)}dn=re}oe.push({name:G,nodeIds:bt,start:K,sample:v,haplotype:+R,contig:B}),F.push({name:G,sample:an,start:K,length:cn-K})}let D=fi(T.subarray(0,H),_,f,P);u.forEach((M,v)=>{let R=D[m[v]];R.length>0&&(M.pathIds=R)});let O=c.length>0;return{name:o,nodes:p,edges:u,paths:O?oe:void 0,anchorPaths:O?F:void 0,pathVisits:O?new _o({segments:A.map(M=>e.names[M]),offsets:Int32Array.from(L),path:V.subarray(0,L.at(-1)),start:U.subarray(0,L.at(-1)),reversed:X.subarray(0,L.at(-1)),paths:P,samples:I}):void 0,anchoredBy:p.some(M=>M.stable)?"tags":void 0}}function hi(e,t){if(typeof e!="string")return Xn(e,t);let n=Ao(e);return n?Xn(n,t):ws(gs(e),t)}function gi(e,t,n={}){let o=Oo(hi(e,t),n.referencePath);if(o.nodes.length===0)throw new Error(`No graph segments in ${t}`);if(n.maxNodes!==void 0&&o.nodes.length>n.maxNodes)throw new Error(`Graph too large to draw: ${o.nodes.length.toLocaleString()} nodes (limit ${n.maxNodes.toLocaleString()}). Zoom in to a smaller region, or raise maxGraphNodes on this view.`);return o}var ae={engine:"fmmm",quality:2,linearLayout:!1,bubbleSpread:"auto",spacing:1,componentSeparation:1,showDeletionEdges:!0};function bi(e={}){return{engine:e.engine??ae.engine,quality:e.quality??ae.quality,linearLayout:e.linearLayout??ae.linearLayout,bubbleSpread:e.bubbleSpread??ae.bubbleSpread,spacing:e.spacing??ae.spacing,componentSeparation:e.componentSeparation??ae.componentSeparation,showDeletionEdges:e.showDeletionEdges??ae.showDeletionEdges}}var wi=15;function ys(e,t,n){let o=e.nodes.some(E),s={...t,opts:{...t.opts,edgeLength:t.opts.edgeLength*(n.spacing??1)}};return{graph:{nodes:o?as(e,s):s.nodes,edges:e.edges},options:{quality:n.quality,linearLayout:n.linearLayout,...s.opts,componentSeparation:wi*(n.componentSeparation??1),...o?{rotateComponents:!1}:{},engine:n.engine??"fmmm"}}}function Vt(e,t){let n=e.nodes.some(E);return`${t.engine??"fmmm"}|${t.quality}|${t.linearLayout}|${t.bubbleSpread}|${t.spacing??1}|${t.componentSeparation??1}|${t.showDeletionEdges!==!1}|${n}|${e.referencePath??""}`}async function Vn(e,t,n){let o=rr(t.bubbleSpread),s=he(e),r=t.showDeletionEdges===!1?Sn(e,s):new Set,a=s.filter(x=>!r.has(x.edgeIndex)),i=us(e,a,r),c=Wo(i.graph,i.ids),d={...c.graph,nodes:c.graph.nodes.filter(x=>!i.ids.has(x.id))},l=En(d,o),{result:p,duration:u}=await n(ys(c.graph,{...l,nodes:[...l.nodes,...ps(e,a,i.routes,nr(d,o),l.opts)]},t)),h=En(e,o),g=new Map(h.nodes.map(x=>[x.id,Bt(h.opts,x.length)])),b=Object.fromEntries(Object.entries(p.nodePositions).map(([x,w])=>[x,ds(w)])),m=Ho(b,c.runs,x=>g.get(x)??0),{nodePositions:f,deletionRoutes:y}=ls(e.nodes.some(E)?ms(e,m):m,i.routes);return{result:{...p,nodePositions:f,stranded:!0,...a.length?{deletionRoutes:y,extent:jn(y)}:{}},duration:u}}function jn(e){let t=1/0,n=1/0,o=-1/0,s=-1/0;for(let r of Object.values(e))for(let a of r)t=Math.min(t,a.x),n=Math.min(n,a.y),o=Math.max(o,a.x),s=Math.max(s,a.y);return{minX:t,minY:n,maxX:o,maxY:s}}var C=40,yi=1e-6,xi=100;function jt(e){return Math.max(yi,Math.min(xi,e))}function xs(e,t,n,o=C){let s=t-e.h*n;return o-e.minY*n+Math.max(0,s)/2}function Ie(e,t,n,o,{minScale:s=0,padLeft:r=C,padTop:a=C,padRight:i=C,padBottom:c=C}={}){let d=t-r-i,l=n-a-c;if(d<=0||l<=0||!(e.w>0||!o&&e.h>0))return;let p=e.w>0?d/e.w:1/0,u=e.h>0?l/e.h:1/0,h=jt(Math.max(s,o?p:Math.min(p,u))),g=d-e.w*h;return{scale:h,translateX:r-e.minX*h+Math.max(0,g)/2,translateY:xs(e,l,o?1:h,a)}}function rt(e,t={}){let{minX:n,minY:o,maxX:s,maxY:r}=jn(e.nodePositions),{region:a}=t;e.referenceAxis&&a&&a.end>a.start&&(n=a.start,s=a.end);let i=t.extent??e.extent;return i&&(n=Math.min(n,i.minX??n),o=Math.min(o,i.minY??o),s=Math.max(s,i.maxX??s),r=Math.max(r,i.maxY??r)),{minX:n,minY:o,w:s-n,h:r-o}}function ye(e,t){return{scaleX:e,scaleY:t?1:e,pixelRows:t}}function Yn(e,t,n,o){return{minX:-e.translateX/t.scaleX,minY:-e.translateY/t.scaleY,maxX:(n-e.translateX)/t.scaleX,maxY:(o-e.translateY)/t.scaleY}}function Un(e,t){let n=(e.maxX-e.minX)*t,o=(e.maxY-e.minY)*t;return{minX:e.minX-n,minY:e.minY-o,maxX:e.maxX+n,maxY:e.maxY+o}}function ki(e,t){return t.minX>=e.minX&&t.maxX<=e.maxX&&t.minY>=e.minY&&t.maxY<=e.maxY}function Mi(e,t,n,o,s){let r=jt(e.scale*t),a=r/e.scale;return{scale:r,translateX:n-(n-e.translateX)*a,translateY:s?e.translateY:o-(o-e.translateY)*a}}var ks=(e,t)=>!!e.referencePath&&W(t).name===e.referencePath;function Si(e,t){return(e.paths??[]).filter(n=>n.name===t).sort((n,o)=>(n.start??0)-(o.start??0))}function Ms(e,t){let n=Si(e,t),o=n[0];if(!o)return;let s=new Map(e.nodes.map(f=>[f.id,f])),r=new Map;e.edges.forEach((f,y)=>{r.set(`${f.from}>${f.to}`,y)});let a=f=>s.get(f)?.length??0,i=f=>f.nodeIds.reduce((y,x)=>y+a(x),0),c=n.reduce((f,y)=>f+i(y),0),d=o.start===void 0?void 0:{contig:o.contig??ve(W(t).name),start:o.start,end:Math.max(...n.map(f=>(f.start??0)+i(f)))},l=d?d.end-d.start:c,p=new Set,u=new Set,h=new Map,g=0;for(let f of n)d&&(g=Math.max(g,(f.start??0)-d.start)),f.nodeIds.forEach((y,x)=>{if(p.add(y),x>0){let k=f.nodeIds[x-1],S=r.get(`${k}>${y}`)??r.get(`${y}>${k}`);S!==void 0&&u.add(S)}let w=a(y);h.has(y)||h.set(y,l>0?(g+w/2)/l:0),g+=w});let b=ks(e,t),m=b?[]:(e.paths??[]).filter(f=>ks(e,f.name));return{name:t,reference:b,range:d,nodeIds:p,edgeIndexes:u,progress:h,steps:n.reduce((f,y)=>f+y.nodeIds.length,0),bp:c,referenceBp:m.length>0?m.reduce((f,y)=>f+i(y),0):void 0}}function Ss(e,t,n,o){let s=new Map(e.nodes.map(a=>[a.id,a])),r=new Map;for(let[a,i]of t.progress){let c=s.get(a),d=o?.midpoints.get(a),l=n.field==="progress"?i:o&&d!==void 0&&!(c?.stable&&c.stable.rank>0)?(d-o.start)/o.span:void 0;r.set(a,sr(n,l))}return r}function vi(e,t){let n=new Set,o=0,s=e.referencePath;if(!s||t.reference)return{reversed:n,bp:o};let r=e.pathVisits;if(!r)return{reversed:n,bp:o};let a=r.pathIndex(W(t.name).name),i=r.pathIndex(s),c=new Map(e.nodes.map(d=>[d.id,d]));for(let d of t.progress.keys()){let l=c.get(d),p=l?r.slot(l.name):-1,u=p<0?-1:r.firstBy(p,a),h=p<0?-1:r.firstBy(p,i);u>=0&&h>=0&&r.reversed[u]!==r.reversed[h]&&(n.add(d),o+=l.length)}return{reversed:n,bp:o}}function st(e,t,n){let o=new Set,s=t.filter(i=>!o.has(i.walk)&&o.add(i.walk)).flatMap(i=>{let c=Ms(e,i.walk);return c?[{walk:c,layer:i}]:[]}).sort((i,c)=>Number(c.walk.reference)-Number(i.walk.reference));if(s.length===0)return;let r=0,a=s.map(({walk:i,layer:c})=>{let d=In(c,i.reference,i.reference?0:r++,s.length===1),{reversed:l,bp:p}=vi(e,i);return{...i,encoding:d,colors:Ss(e,i,d,n),reversed:l,reversedBp:p}});return vs(a,n)}var Ri={field:"progress",scheme:"red"};function at(e,t,n,o){return t.walks.map(s=>{let r=n.find(i=>i.walk===s.name)?.color,a=In({walk:s.name,color:{...Ri,...r}},s.reference,0);return vs([{...s,encoding:a,colors:Ss(e,s,a,o)}],o)})}function vs(e,t){return{walks:e,referenceDomain:t?{start:t.start,end:t.start+t.span}:void 0,nodeIds:new Set(e.flatMap(n=>[...n.nodeIds])),edgeIndexes:new Set(e.flatMap(n=>[...n.edgeIndexes])),names:new Set(e.map(n=>n.name))}}function Rs(e){return e.sample??Se(e.name)}function Li(e){return e.haplotype!==void 0&&e.sample!==void 0?`${e.sample}#${e.haplotype}`:Rs(e)}var Ni=class{constructor(e){this.index=new Map,this.lengths=[],this.onReference=new Uint8Array(0),this.referenceStart=new Float64Array(0),this.referenceEnd=new Float64Array(0);for(let t of e.nodes)this.lengths[this.indexOf(t.id)]=t.length}indexOf(e){let t=this.index.get(e);return t===void 0&&(t=this.lengths.length,this.index.set(e,t),this.lengths.push(0)),t}nodesOf(e){let t=new Int32Array(e.nodeIds.length);return e.nodeIds.forEach((n,o)=>{t[o]=this.indexOf(n)}),t}spanAt(e,t){let n=t>=0&&t<e.length?e[t]:-1;return n>=0&&this.onReference[n]?{start:this.referenceStart[n],end:this.referenceEnd[n]}:void 0}};function Pi(e,t){let n=[],o;for(let s of e){o!==void 0&&s.start!==void 0&&s.start>o&&n.push(o-s.start);let r=0;for(let a of s.nodes)n.push(a),r+=t.lengths[a];o=s.start===void 0?void 0:s.start+r}return Float64Array.from(n)}function Ai(e,t,n){let o,s=0,r;for(let a of e){if(a.start===void 0||o!==void 0&&a.start<o)return;o!==void 0&&a.start>o&&s++===n&&(r={start:o,end:a.start});let i=a.start;for(let c of a.nodes){let d=t.lengths[c];s++===n&&(r={start:i,end:i+d}),i+=d}o=i}return r}function Ti(e,t,n,o=!0){if(!n||!o)return{ids:e,complete:!0,from:-1,to:-1};let{onReference:s,referenceStart:r,referenceEnd:a}=t,i=-1,c=-1,d=-1/0,l=1/0;for(let w=0;w<e.length;w++){let k=e[w];if(k>=0&&s[k]){let S=a[k],P=r[k];S<=n.start&&S>d&&(d=S,i=w),P>=n.end&&P<l&&(l=P,c=w)}}if(i>=0&&c>=0){let w=e.slice(Math.min(i,c)+1,Math.max(i,c));return{ids:i<c?w:w.reverse(),complete:!0,from:i,to:c}}let p=w=>t.spanAt(e,w),u=i>=0?i:c,h=-1;for(let w=1;u>=0&&h<0&&w<e.length;w++)h=[u-w,u+w].find(k=>p(k)!==void 0)??-1;if(h<0)return{ids:e,complete:!1,from:-1,to:-1};let b=h>u==p(h).start>p(u).start===(u===i),m=b?e.slice(u+1):e.slice(0,u).reverse(),f=m.length>0?m.length-1:-1,y=f<0?p(u):p(b?u+1+f:0),x={contigEnds:y!==void 0,shortBp:y?Math.max(0,n.start-y.end,y.start-n.end):0};return{ids:m,complete:!1,from:u,to:b?e.length:-1,stop:x}}function Be(e,t){return t?e.filter(n=>t.includes(n.sample)).sort((n,o)=>t.indexOf(n.sample)-t.indexOf(o.sample)||n.label.localeCompare(o.label)):e}function Ce(e,t,n){let o=e.paths??[],s=x=>W(x.name).name===e.referencePath,r=o.some(s)?o.filter(s).sort((x,w)=>(x.start??0)-(w.start??0)):o.slice(0,1),a=r[0],i=o.filter(x=>!r.includes(x));if(!a||i.length===0)return;let c=new Map;for(let x of i){let w=c.get(x.name);w?w.push(x):c.set(x.name,[x])}let d=new Ni(e),l=a.start??0,p=t&&t.end>t.start?t:void 0,u=r.map(x=>d.nodesOf(x)),h=d.lengths.length;d.onReference=new Uint8Array(h),d.referenceStart=new Float64Array(h),d.referenceEnd=new Float64Array(h);let g=!1,b=!1;for(let[x,w]of r.entries()){let k=w.start??0;for(let S of u[x]){let P=d.lengths[S];d.onReference[S]||(d.onReference[S]=1,d.referenceStart[S]=k,d.referenceEnd[S]=k+P,g||=p!==void 0&&k+P<=p.start,b||=p!==void 0&&k>=p.end),k+=P}}let m=p===void 0||g&&b,f=(x,w)=>{let k=x[0],S=x.map((v,R)=>({start:v.start,nodes:w?.[R]??d.nodesOf(v)})).sort((v,R)=>(v.start??0)-(R.start??0)),{ids:P,complete:T,from:_,to:H,stop:j}=Ti(Pi(S,d),d,p,m),oe=k.contig??ve(W(k.name).name),F=Ai(S,d,_<0?0:_),Y=F?_<0?{contig:oe,start:F.start,reversed:!1}:_<H?{contig:oe,start:F.end,reversed:!1}:{contig:oe,start:F.start,reversed:!0}:void 0,{lengths:V,onReference:U,referenceStart:X,referenceEnd:Z}=d,A=[],L,I=0,D=0,O=0,M=0;for(let v of P){if(v<0){L={start:I,bp:-v,onReference:!1,gap:!0},A.push(L),I-=v,O-=v,M=0;continue}let R=V[v],B=U[v]===1,G=L?.referenceStart,z=B&&G!==void 0&&M>=0&&G+L.bp===X[v],K=B&&G!==void 0&&M<=0&&Z[v]===G;!B&&L&&!L.onReference&&!L.gap?L.bp+=R:z||K?(L.bp+=R,z||(L.referenceStart=X[v],L.reversed=!0),M=z?1:-1):(L={start:I,bp:R,onReference:B,referenceStart:B?X[v]:void 0},A.push(L),M=0),I+=R,B||(D+=R)}return{name:k.name,label:Li(k),sample:Rs(k),haplotype:k.haplotype,bp:I,offReferenceBp:D,gapBp:O,complete:T,stop:j,runs:A,axis:Y}};return{origin:p?p.start:l,unit:n,reference:f(r,u),rows:[...c.values()].map(x=>f(x)).sort((x,w)=>Number(w.complete)-Number(x.complete)||w.bp-x.bp||x.label.localeCompare(w.label))}}var Ei=1.3;function _e(e,t={rowPx:te,readouts:!0}){let n=e.reference.bp;for(let o of e.rows)n=Math.max(n,o.bp);return{maxX:e.origin+n*(t.readouts?Ei:1),maxY:e.rows.length*t.rowPx}}function it(e,t,n){return e?n&&!n.labelled?[]:[e.reference,...e.rows].map((o,s)=>({label:o.label,y:s*(n?.rowPx??te)})):t?.rowLabels??[]}function zn(e,t){let n=ce(e),o=Ce(e,t);if(n.length===0||!o)return;let s=t?n.filter(i=>pn(i,t)):n,r=me(s.length>0?s:n),a=[{label:o.reference.label,y:0},...o.rows.map((i,c)=>({label:i.label,y:(c+1)*te}))];return{nodePositions:r,rowLabels:a,referenceAxis:!0,pixelRows:!0,extent:_e(o)}}var Ls=[{value:"auto",label:"Auto"},{value:"uniform",label:"Uniform"},{value:"random",label:"Random"},{value:"rainbow",label:"Rainbow"},{value:"depth",label:"Depth"},{value:"node-length",label:"Node length"},{value:"stable-rank",label:"Stable rank"},{value:"reference-position",label:"Reference position"},{value:"grey",label:"Grey"}],Ii=Ls.map(e=>e.value);function ct(e,t){return e!=="auto"?e:t?.anchoredBy?"reference-position":"uniform"}var qn='font-family="Helvetica, Arial, sans-serif" font-size="11"',Bi=48,Yt=18,Ci=16,_i=22,Gi="rgb(160,160,160)",Ps="#1c1c22";function xe(e){return e.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;")}function Kn(e,t,n,o,s,r,a,i=1){let c=o.length>1?Bi:Yt,d=o.length>1?`fill="url(#${e})"`:`fill="${o[0].color}"${i<1?` fill-opacity="${i}"`:""}`,l=o.length>1?`<linearGradient id="${e}">${o.map(u=>`<stop offset="${u.offset}" stop-color="${u.color}"/>`).join("")}</linearGradient>`:"";return{width:Math.max(c+5+(s.length+r.length)*Le,(a?.length??0)*Le),markup:`${l}<g transform="translate(${t} ${n})" ${qn}><rect y="5" width="${c}" height="8" rx="2" ${d}/><text x="${c+5}" y="13"><tspan font-weight="bold">${xe(s)}</tspan>${xe(r)}</text>${a?`<text y="28">${xe(a)}</text>`:""}</g>`}}function Oi(e,t){return{width:Yt+5+4*Le,markup:`<g transform="translate(${e} ${t})" ${qn}><rect x="1" y="4" width="${Yt-2}" height="10" rx="4" fill="none" stroke="${_n}" stroke-width="2"/><text x="${Yt+5}" y="13">exon</text></g>`}}function Ns(e,t,n,o,s,r){let a=br(o,r);return Kn(e,t,n,Bn(o.encoding),s,a.delta+a.outside+a.reversed,a.scale)}function $i(e,t){return e.replaceAll(/([ML])(-?[\d.e-]+),(-?[\d.e-]+)/g,(n,o,s,r)=>`${o}${+(Number(s)*t.scaleX+t.translateX).toFixed(1)},${+(Number(r)*t.scaleY+t.translateY).toFixed(1)}`)}function Fi(e,t,n,o,s){return`<rect x="${e-n/2}" y="${t-je-vn+2}" width="${n}" height="${je+vn*2-2}" rx="3" fill="#fff" fill-opacity="0.85" stroke="${_n}"/><text x="${e}" y="${t}" font-family="Helvetica, Arial, sans-serif" font-size="${je}" fill="${Ps}" text-anchor="middle"><tspan font-style="italic" font-weight="600">${xe(o)}</tspan>${s?xe(s):""}</text>`}function Jn(e,t,n={}){let o=n.width??1200,s=n.height??800,r=n.region,a=n.colorDomain??r,i=n.walkRows,c=rt(t,{region:n.fitToDrawing?void 0:r,extent:i&&t.extent?_e(i,n.walkRowPitch):void 0}),d=t.pixelRows??!1,l=new Map(e.nodes.map(A=>[A.id,A])),p=ct(n.colorScheme??"auto",e),u=p==="reference-position"&&!t.tubeMap?Ae(e,a):void 0,h=u&&{start:u.start,end:u.start+u.span},g=Ve(e,t.tubeMap?[]:he(e),n.showDeletionEdges),b=n.walks??[],m=b.some(A=>A.color?.field==="reference")?u??Ae(e,a):void 0,f=b.length>0&&!t.tubeMap?st(e,b,m):void 0,y=Et(n.facet),x=y.field&&f&&f.walks.length>1?at(e,f,b,m):void 0,w=Mt(e.paths?.length?Ue(e.paths):[]),k=A=>w.get(A)??A,S=n.referenceName??hn(e,r),P=f?.referenceDomain&&{...f.referenceDomain,name:S},T=n.contigThickness??6,_=n.nodeWidth??"depth",H=n.genes?.length&&!t.tubeMap&&!i?et(e,n.genes,t.nodePositions):[],j=St(e,l,T,_),oe=0;function F(A,L,I,D){let O=[],M=lr(pr(H,j.halfWidthPx,A,G=>$i(G,L)),{id:`exons${oe++}`,width:I,height:D});M&&O.push(ge(M));let v=G=>({x:G.x*L.scaleX+L.translateX,y:G.y*L.scaleY+L.translateY}),R={width:I,height:D};for(let{item:G,x:z,y:K,w:an,text:$e}of Do(fr(H,v,T,mr(t.nodePositions,L)),R,Fo(R))){let bt=v(G.at).y+T/2;O.push(`<line x1="${z}" x2="${z}" y1="${K-je-2}" y2="${bt}" stroke="${Ps}" stroke-width="0.8" stroke-opacity="0.6"/>`,Fi(z,K,an,G.gene.name,$e.slice(G.gene.name.length)))}i&&O.push(ge(An(i,{...L,width:I,height:D,...n.walkRowPitch},{ramp:h,rowGenes:n.rowGenes})));let B=it(i,t,n.walkRowPitch);for(let{label:G,y:z}of B){let K=z*L.scaleY+L.translateY;K>=0&&K<=D&&O.push(`<text x="6" y="${K+4}" ${qn} stroke="#fff" stroke-width="3" paint-order="stroke">${xe(G)}</text>`)}return O.join("")}function Y(A,L,I){let D=Ie(c,L,I,d,x?{padLeft:se,padTop:se,padRight:se,padBottom:se}:{});if(!D)return"";let O=ye(D.scale,d),{canvas:M,markup:v}=dr(L,I),R=new ur(M);R.uploadGeometry(Rt({...tt(t,g,{drawsRows:!!i}),graph:e,nodeById:l,colorScheme:p,contigThickness:T,connectorThickness:n.connectorThickness??2,drawPaths:!1,nodeWidth:_,linearLayout:n.linearLayout,highlight:A,axis:O,referenceRamp:u}));let B={scaleX:O.scaleX,scaleY:O.scaleY,translateX:D.translateX,translateY:D.translateY};return R.updateTransform({...B,dpr:1}),R.render([1,1,1,1]),v()+F(A,B,L,I)}let V=[],U;if(x){let A=It(x.map(I=>I.walks[0].name),y.field||"walk",y.domain),L=Tt({count:A.count,bounds:c,pixelRows:d,width:o,room:s,columns:A.columns??y.columns});x.forEach((I,D)=>{let O=A.cells[D],M=O%L.columns*(L.width+qe),v=Math.floor(O/L.columns)*(L.height+At+qe),R=I.walks[0];V.push(Ns(`key${D}`,M+6,v+2,R,k(R.name),P).markup,`<svg x="${M}" y="${v+At}" width="${L.width}" height="${L.height}">${Y(I,L.width,L.height)}</svg>`)}),U=L.total}else{let A=6,L=v=>{V.push(v.markup),A+=v.width+Ci};if(f&&(f.walks.forEach((v,R)=>{L(Ns(`key${R}`,A,2,v,k(v.name),P))}),L(Kn("faded",A,2,[{offset:0,color:Gi}],"",`not on ${f.walks.length===1?k(f.walks[0].name):"these walks"}`,void 0,.3))),i){let v=Pn(Nn(i,{ramp:h,genes:n.rowGenes?.size?n.rowGeneGaps:void 0}),A,2,"rows-key");L({width:v.width,markup:ge(v.tree)})}else!f&&u&&L(Kn("ramp",A,2,Bn({field:"reference",scheme:"rainbow"}),S?`${S} position`:"Reference position","",gr(S,u.start,u.start+u.span)));H.some(v=>v.exonsByNode.length>0)&&L(Oi(A,2));let I=V.length>0?At:0,D=o-2*C,O=d||!(c.w>0)?c.h:c.h*D/c.w,M=Math.max(160,Math.min(s-I,Math.ceil(O+2*C)));V.push(`<svg y="${I}" width="${o}" height="${M}">${Y(f,o,M)}</svg>`),U=I+M}let X=n.walkStrip;if(X&&!i&&!t.tubeMap){let A=Qe(X.rows,{width:o}),L=Pn(Nn(X.rows,{ramp:h,genes:Hn(A,X.rowGenes,X.rowGeneGaps)}),6,U+A.height,"strip-key");V.push(`<line x1="0" x2="${o}" y1="${U+.5}" y2="${U+.5}" stroke="#ddd"/>`,`<svg y="${U}" width="${o}" height="${A.height}">${ge(An(X.rows,A,{ramp:h,rowGenes:X.rowGenes,idPrefix:"strip"}))}${ge(Wn(X.rows,A,new Set(b.map(I=>I.walk))))}</svg>`,ge(L.tree)),U+=A.height+_i}let Z=JSON.stringify({generator:`@jbrowse/bandage-core@${rs}`,...n.spec===void 0?{}:{spec:n.spec}});return`<svg xmlns="http://www.w3.org/2000/svg" width="${o}" height="${U}" viewBox="0 0 ${o} ${U}"><metadata>${xe(Z)}</metadata><rect width="${o}" height="${U}" fill="#fff"/>${V.join("")}</svg>
3
3
  `}var As={...ae,colorScheme:"auto",nodeWidth:"depth",contigThickness:6,connectorThickness:2};function Zn(e){let t=As,n={};for(let[o,s]of Object.entries(e))s!==void 0&&s!==t[o]&&(n[o]=s);return n}var Di=1,Wi=.015;function Ut({graph:e,span:t,rowY:n,positions:o}){let s=t*Wi,r=Jo(e),a=new Map(e.nodes.map(l=>[l.id,l])),i=[];for(let l of r){let p=l.refSpan-l.pathLength;p>=Di&&i.push({nodeIds:l.nodeIds,bp:p});let u=Math.max(l.refSpan,s),h=l.pathLength>0?u/l.pathLength:0;l.nodeIds.forEach((g,b)=>{let m=a.get(g);if(m){let f=l.nodeOffsets[b],y=u/l.nodeIds.length,x=k=>l.start+k*h,w=n(m);o[g]=h?[{x:x(f),y:w},{x:x(f+m.length),y:w}]:[{x:l.start+b*y,y:w},{x:l.start+(b+1)*y,y:w}]}})}let c=de(e),d=Object.keys(o);for(let l of d){let p=o[l].at(-1).x;for(let u of c.get(l)??[]){let h=a.get(u);if(h&&!(u in o)){let g=n(h);o[u]=[{x:p,y:g},{x:p+s,y:g}],d.push(u)}}}return i}function Hi(e,t){let n=new Map;for(let s of e.nodes)if(We(s)){let{sample:r}=Pt(s.stable.refName);n.set(r,(n.get(r)??0)+s.length)}let o=new Map(t.map((s,r)=>[s,r]));return[...n.keys()].sort((s,r)=>(o.get(s)??1/0)-(o.get(r)??1/0)||n.get(r)-n.get(s)||s.localeCompare(r))}function Ts(e,t,n=[]){let o=ce(e),s=Hi(e,n);if(o.length===0||s.length===0)return;let r=He(o,t),a=new Map(s.map((u,h)=>[u,h+1])),i=me(o),c=s.length+1,d=Ut({graph:e,span:r,rowY:u=>{let h=u.stable;return((h?a.get(Pt(h.refName).sample):void 0)??c)*te},positions:i}),p=[{label:Pt(o[0].stable.refName).sample,y:0},...s.map(u=>({label:u,y:a.get(u)*te}))];return{nodePositions:i,rowLabels:p,sampleRows:s,referenceAxis:!0,pixelRows:!0,alleleDeletions:d}}function Xi(e){let t=new Map(e.nodes.map(s=>[s.id,s])),n=e.pathVisits,o=n?.replay();return(e.paths??[]).map(s=>{let r=n?.pathIndex(W(s.name).name)??-1;return s.nodeIds.flatMap(a=>{let i=t.get(a);if(!i)return[];let c=n&&o?o(n.slot(i.name),r):-1;return[{node:i,strand:c>=0?n.strand(c):Zo(i)}]})})}function Vi(e){let t=Xi(e),n=(e.paths??[]).flatMap((s,r)=>{let a=t[r].map(i=>Qo(i.node,i.strand));return a.length>0?[{id:r,name:s.name,sequence:a,sourceTrackID:0,type:"haplotype",...s.members?{freq:s.members.length}:{}}]:[]}),o=n.findIndex(s=>W(s.name).name===e.referencePath);return o>0&&n.unshift(...n.splice(o,1)),n}function ji(e){return e.nodes.map(t=>({name:t.id,seq:"",sequenceLength:Math.max(1,t.length)}))}function dt(e){return(e.paths?.length??0)>0}var Yi=600,Ui=3,zi=15;function Ki(e){return Math.max(Ui,Math.min(zi,Math.floor(Yi/Math.max(1,e))))}function qi(e){let t=new Set,n=new Set;for(let o of e?.sequence??[])Tn(o)?n.has(Ke(o))||t.add(Ke(o)):n.add(o);return t}function Ji(e,t,n){let o=qi(n[0]),s=new Map;for(let{sequence:c,is_secondary:d}of n)d||c.forEach((l,p)=>{let u=Ke(l),g=Tn(l)!==o.has(u)?c[p+1]:c[p-1];!t.nodeMap.has(u)&&g!==void 0&&s.set(u,Ke(g))});let r=new Map(e.nodes.map(c=>[c.id,Math.max(1,c.length)])),a=new Map([...s].map(([c,d])=>[d,c])),i=new Map;for(let c of a.keys()){let d=t.nodeMap.get(c);if(d!==void 0){let l=[c];for(let u=a.get(c);u!==void 0;u=a.get(u))l.push(u);l.reduce((u,h)=>u+(r.get(h)??0),0)===t.nodes[d].sequenceLength&&i.set(c,l)}}return{members:i,flipped:o}}var Zi={start:"end",end:"start"},Es={"+":"-","-":"+"};function Qi(e,{members:t,flipped:n}){if(t.size===0)return e;let o=new Map(e.nodes.map(u=>[u.id,u])),s=new Map,r=new Set,a=(u,h)=>n.has(u)?Zi[h]:h;for(let[u,h]of t)h.forEach((g,b)=>{s.set(g,u);let m=h[b+1];m!==void 0&&r.add(`${g}:${a(g,"end")} ${m}:${a(m,"start")}`)});let i=new Set([...s].filter(([u,h])=>u!==h).map(([u])=>u)),c=e.nodes.flatMap(u=>{let h=t.get(u.id);if(!h)return i.has(u.id)?[]:[u];let g=h.map(m=>o.get(m)),b=g.flatMap(m=>m.stable?[m.stable.start]:[]);return[{...u,length:g.reduce((m,f)=>m+f.length,0),stable:u.stable&&{...u.stable,start:Math.min(...b)}}]}),d=(u,h,g)=>a(h,a(u,g))==="end"?kt(h):Es[kt(h)],l=e.edges.flatMap(u=>{let h=fe(u),g=`${u.from}:${h.from}`,b=`${u.to}:${h.to}`;if(r.has(`${g} ${b}`)||r.has(`${b} ${g}`))return[];let m=s.get(u.from),f=s.get(u.to);return[{...u,...m===void 0?{}:{from:m,fromStrand:d(u.from,m,h.from)},...f===void 0?{}:{to:f,toStrand:Es[d(u.to,f,h.to)]}}]}),p=new Set([...i].map(u=>o.get(u)?.name??u));return{...e,nodes:c,edges:l,paths:e.paths?.map(u=>({...u,nodeIds:u.nodeIds.filter(h=>!i.has(h))})),pathVisits:e.pathVisits?.filter(()=>!0,u=>!p.has(u))}}function Is(e){let t=e.paths??[],n=Vi(e),o=e.reads?er(e,e.reads,t.length):[],s=o.length>0?jo:Vo,r=t.map((l,p)=>s(p,t.length)),a=t.some(l=>l.members),i=t.reduce((l,p)=>l+(p.members?.length??1),0),c=tr(ji(e),n,o,{nodeWidthOption:"compressed",trackWidth:Ki(a?i:n.length),...a?{freqWidth:"linear"}:{}});if(!c)return;let d=Ji(e,c,[...n,...o]);return{layout:c,pathColors:r,members:d.members,graph:Qi(e,d)}}function Qn(e){let t=[];return e.nodes.forEach(n=>{n.order>=0&&t.push(n)}),t}function Bs(e,t,n,o){let s=e.y+e.contentHeight/2-t;return[{x:n,y:s},{x:o,y:s}]}function Cs(e,t){return{minY:e.bounds.minY-t,maxY:e.bounds.maxY-t}}function _s(e){let t=dt(e)?Is(e):void 0;if(!t)return;let{layout:n,...o}=t,s=n.bounds.minY,r={};for(let c of Qn(n))r[c.name]=Bs(c,s,c.x,c.x+c.pixelWidth);let{minY:a,maxY:i}=Cs(n,s);return{nodePositions:r,tubeMap:{layout:n,yOffset:s,...o},extent:{minX:n.bounds.minX,maxX:n.bounds.maxX,minY:a,maxY:i}}}function ec(e,t){let n=new Map(e.nodes.map(i=>[i.id,i])),o=new Map;for(let i of Qn(t)){let c=o.get(i.order);c?c.push(i):o.set(i.order,[i])}let s=[],r=-1/0;for(let i of[...o.keys()].sort((c,d)=>c-d)){let c=o.get(i),d=1/0,l=-1/0;for(let p of c){let u=n.get(p.name);u&&E(u)&&(d=Math.min(d,u.stable.start),l=Math.max(l,u.stable.start+u.length))}d===1/0&&(d=l=r),d<r&&(d=r,l=Math.max(r,l)),r=Math.max(r,l),s.push({order:i,x0:Math.min(...c.map(p=>p.x)),x1:Math.max(...c.map(p=>p.x+p.pixelWidth)),bp0:d,bp1:l})}let a=s.find(i=>i.bp0!==-1/0);for(let i of s)i.bp0===-1/0&&(i.bp0=i.bp1=a?.bp0??0);return s}function zt(e){return dt(e)&&e.nodes.some(E)}function Gs(e){let t=zt(e)?Is(e):void 0;if(!t)return;let{layout:n,...o}=t,s=ec(o.graph,n),r=new Map(s.map(c=>[c.order,c])),a=n.bounds.minY,i={};for(let c of Qn(n)){let d=r.get(c.order);i[c.name]=Bs(c,a,d.bp0,d.bp1)}return{nodePositions:i,tubeMap:{layout:n,yOffset:a,columns:s,...o},referenceAxis:!0,pixelRows:!0,extent:Cs(n,a)}}function tc(e){let t=new Set;for(let n of e.nodes)n.stable&&t.add(n.stable.rank);return new Map([...t].sort((n,o)=>n-o).map((n,o)=>[n,o]))}function Os(e,t){let n=ce(e);if(n.length===0)return;let o=He(n,t),s=tc(e),r=me(n),a=Ut({graph:e,span:o,rowY:c=>(c.stable?s.get(c.stable.rank)??s.size:s.size)*te,positions:r}),i=[...s].map(([c,d])=>({label:c===0?"Reference (rank 0)":`Rank ${c}`,y:d*te}));return{nodePositions:r,rowLabels:i,referenceAxis:!0,pixelRows:!0,alleleDeletions:a}}var nc=12,eo=te;function $s(e){return 10+8*Math.log2(1+e.length)}function pe(e,t){return e<t?-1:e>t?1:0}function Ds(e,t){return pe(e.at,t.at)||pe(e.side,t.side)||pe(e.hops,t.hops)}var Fs={at:1/0,side:0,hops:0};function to(e){let t=new Map(e.nodes.map(o=>[o.id,o])),n=sc(e);return e.nodes.map(o=>o.id).sort((o,s)=>Ds(n.get(o)??Fs,n.get(s)??Fs)||pe(t.get(o).name,t.get(s).name)||pe(o,s))}function oc(e,t){let n=new Set(e.nodes.map(l=>l.id)),o=new Map(t.map(l=>[l.id,l.stable.start])),s=new Map,r=new Map;t.forEach((l,p)=>{r.set(l.id,t[p-1]?.id),s.set(l.id,t[p+1]?.id)});let a=t[0]?.id,i=(l,p)=>{let u=s.get(l);s.set(l,p),r.set(p,l),s.set(p,u),u!==void 0&&r.set(u,p)},c=(l,p)=>{let u=r.get(l);u===void 0?(a=p,r.set(p,void 0),s.set(p,l),r.set(l,p)):i(u,p)};for(let l of e.paths??[]){let p=0,u=0,h;for(let f of l.nodeIds){let y=o.get(f);y!==void 0&&(h!==void 0&&y!==h&&(y>h?p++:u++),h=y)}let g=u>p?[...l.nodeIds].reverse():l.nodeIds,b,m=new Set;for(let f of g)if(s.has(f)){if(b===void 0)for(let y of m)c(f,y);b=f}else n.has(f)&&(b===void 0?m.add(f):(i(b,f),b=f))}let d=[];for(let l=a;l!==void 0;l=s.get(l))d.push(l);return d}function rc(e,t){let n=[...t.entries()].sort(([a,i],[c,d])=>Ds(i,d)||pe(a,c)).map(([a])=>a),o=n.length;for(let a of n){let i=t.get(a);for(let c of e.get(a)??[])t.has(c)||(t.set(c,{at:i.at,side:1,hops:i.hops+1}),n.push(c))}let s=new Set(n.slice(o)),r=new Set;for(let a of s){if(r.has(a))continue;let{at:i}=t.get(a),c=[a];r.add(a);let d=!0;for(let l of c){let{hops:p}=t.get(l),u=!0,h=!1;for(let g of e.get(l)??[]){let b=t.get(g);b.at===i&&s.has(g)?(u&&=b.hops<=p,r.has(g)||(r.add(g),c.push(g))):b.at!==i&&(h||=b.at<i,d&&=b.at<i)}d&&=!u||h}if(d)for(let l of c){let p=t.get(l);t.set(l,{...p,side:-1,hops:-p.hops})}}}function sc(e){let t=new Set(e.nodes.map(r=>r.id)),n=new Map;for(let r of e.edges)!t.has(r.from)||!t.has(r.to)||((n.get(r.from)??n.set(r.from,[]).get(r.from)).push(r.to),(n.get(r.to)??n.set(r.to,[]).get(r.to)).push(r.from));let o=e.nodes.filter(E).sort((r,a)=>pe(r.stable.start,a.stable.start)||pe(r.name,a.name)),s=new Map;return oc(e,o).forEach((r,a)=>{s.set(r,{at:a,side:0,hops:0})}),rc(n,s),s}function ac(e){let t=new Map(e.nodes.map(p=>[p.id,p])),n=to(e),o=new Map(n.map((p,u)=>[p,u])),s=p=>E(t.get(p)),r=new Map(n.map(p=>[p,[]])),a=new Map(n.map(p=>[p,[]])),i=(p,u)=>{r.get(u).push(p),a.get(p).push(u)};for(let p of e.edges)p.from===p.to||!o.has(p.from)||!o.has(p.to)||(o.get(p.from)<o.get(p.to)?i(p.from,p.to):i(p.to,p.from));let c=n.filter(s);for(let p=1;p<c.length;p++)i(c[p-1],c[p]);let d=new Map;for(let p of n){let u=0;for(let h of r.get(p))u=Math.max(u,d.get(h)+1);d.set(p,u)}for(let p=n.length-1;p>=0;p--){let u=n[p],h=a.get(u);if(s(u)||h.length===0)continue;let g=1/0;for(let f of h)g=Math.min(g,d.get(f));let b=d.get(u),m=Math.max(b,g-1);d.set(u,Math.floor((b+m)/2))}let l=[];for(let p of n)(l[d.get(p)]??=[]).push(p);return{layers:l,layerOf:d,preds:r}}function Ws(e){if(!e.nodes.some(E))return;let t=new Map(e.nodes.map(p=>[p.id,p])),n=p=>E(t.get(p)),{layers:o,layerOf:s,preds:r}=ac(e),a=o.map(p=>{let u=0;for(let h of p)u=Math.max(u,$s(t.get(h)));return u}),i=[],c=0;for(let p=0;p<o.length;p++)i[p]=c,c+=a[p]+nc;let d=new Map;for(let p of o){let u=[];for(let g of p){if(n(g)){d.set(g,0);continue}let b=r.get(g).filter(f=>d.has(f)),m=0;for(let f of b)m+=d.get(f)/b.length;u.push({id:g,ideal:m===0?eo:m})}u.sort((g,b)=>g.ideal-b.ideal);let h=new Set([0]);for(let{id:g,ideal:b}of u){let m=Math.round(b/eo);m===0&&(m=b>=0?1:-1);for(let f=1;h.has(m);f++)h.has(m+f)?h.has(m-f)||(m-=f):m+=f;h.add(m),d.set(g,m*eo)}}let l={};for(let p of e.nodes){let u=s.get(p.id),h=$s(p),g=i[u]+a[u]/2,b=d.get(p.id);l[p.id]=[{x:g-h/2,y:b},{x:g+h/2,y:b}]}return{nodePositions:l,referenceAxis:!1,pixelRows:!0}}var Vs="Force-directed layout",Ge=e=>e.nodes.some(E),Hs=e=>Ge(e)&&(e.paths?.length??0)>1,Xs=e=>Ge(e)&&e.nodes.some(We),Kt=[{value:"auto",label:"Anchored",description:"x is reference bp, one row per stable rank. Needs rGFA tags or a reference path.",run:Os,cutMargins:!0,wholeWalks:!1,available:Ge,drawsLocally:Ge,drawsNodes:!0},{value:"samplerows",label:"Sample rows",description:"x is reference bp, one row per contributing assembly. Needs rGFA tags or a reference path.",run:Ts,cutMargins:!0,wholeWalks:!1,available:Xs,drawsLocally:Xs,drawsNodes:!0},{value:"walkrows",label:"Walk rows",description:"x is each walk's own bp: one bar per haplotype, blue on the reference's path and purple off it, so a repeat expansion reads as bar length, and each bar boxes its haplotype's own genes where the session has them. Needs W or P lines.",run:zn,cutMargins:!1,wholeWalks:!0,available:Hs,drawsLocally:Hs,drawsNodes:!1},{value:"ordered",label:"Ordered",description:"x is reference order, not bp: every node gets room, bubbles read as lenses. Needs rGFA tags or a reference path.",run:Ws,cutMargins:!1,wholeWalks:!1,available:Ge,drawsLocally:Ge,drawsNodes:!0},{value:"tubemap",label:"Tube map",description:"sequenceTubeMap: every path a coloured tube through boxed nodes, columns in node order and node widths log-scaled. Needs P or W lines.",run:_s,cutMargins:!1,wholeWalks:!1,available:dt,drawsLocally:dt,drawsNodes:!1},{value:"tubemapref",label:"Tube map on reference",description:"The tube map with each column at the reference bp it covers, so the tubes line up with the tracks around them. Needs P or W lines and a reference path.",run:Gs,cutMargins:!0,wholeWalks:!1,available:zt,drawsLocally:zt,drawsNodes:!1},{value:"force",label:Vs,description:"OGDF FMMM, via the external Bandage engine.",run:()=>{},cutMargins:!1,wholeWalks:!1,available:()=>!0,drawsLocally:()=>!1,drawsNodes:!0}],ic=Kt.map(e=>e.value);function no(e,t){return!ne(e).drawsLocally(t)}function ne(e){return Kt.find(t=>t.value===e)??Kt[0]}var cc=.05,qt=9;function dc(e,t){let{minY:n,maxY:o}=e.layout.bounds,s=o-n;return e.columns&&s>0?Math.max(cc,Math.min(1,t/s)):1}function Jt(e,t){let{scaleX:n,translateX:o,translateY:s}=t,r=t.scaleY*dc(e,t.usableHeight),a=c=>(c-e.yOffset)*r+s,{columns:i}=e;if(i){let c=Mr(i,d=>d*n+o);return{x:d=>Sr(c,d),y:a,yScale:r}}return{x:c=>c*n+o,y:a,yScale:r}}function oo(e,{x:t,y:n},o,s){let r=null;return e.layout.nodes.forEach(a=>{a.order>=0&&t(a.x-qt)<=o&&o<=t(a.x+a.pixelWidth+qt)&&n(a.y-qt)<=s&&s<=n(a.y+a.contentHeight+qt)&&(r=a.name)}),r}function ut(e,t,n){if(t==="uniform"||t==="grey")return;let o={...Yo(e),referenceRamp:n};return new Map(e.nodes.map((s,r)=>[s.id,kn(Uo(s,r,t,o))]))}function js(e){if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.horizontalScroll=="function"&&typeof t.zoomTo=="function"&&"coarseDynamicBlocks"in t&&"dynamicBlocks"in t}function Ys(e){return e.reduce((t,n)=>t&&t.end-t.start>=n.end-n.start?t:n,void 0)}function Us(e,t){let n=Ys(e.dynamicBlocks.contentBlocks.filter(r=>r.refName===t.refName&&r.assemblyName===t.assemblyName)),{bpPerPx:o}=e;if(!n||!(o>0))return;let s=n.offsetPx-e.offsetPx;return n.reversed?{scale:-1/o,translateX:s+n.end/o}:{scale:1/o,translateX:s-n.start/o}}function Ff(e){let t=Ys(e.dynamicBlocks.contentBlocks),n=t?.displayedRegionIndex===void 0?void 0:e.displayedRegions[t.displayedRegionIndex];return t&&e.bpPerPx>0?{refName:t.refName,assemblyName:t.assemblyName,start:t.start,end:t.end,bpPerPx:e.bpPerPx,span:e.bpPerPx*e.width,regionStart:n?.start??t.start,regionEnd:n?.end??t.end}:void 0}function uc(e,t,n=!0){let o=e.end-e.start,s=n?Math.max(0,Math.min(e.span,(t-o)/2)):0,r=Math.max(e.regionStart,Math.floor(e.start-s)),a=Math.min(e.regionEnd,Math.ceil(e.end+s)),i=a-r-t;return i>0&&(r+=Math.floor(i/2),a-=Math.ceil(i/2)),{refName:e.refName,assemblyName:e.assemblyName,start:r,end:a}}function Df(e,t,n=!0){if(e?.refName!==t.refName||e.assemblyName!==t.assemblyName)return!1;if(n)return e.start<=t.start+1&&t.end<=e.end+1;let o=uc(t,1/0,!1);return Math.abs(e.start-o.start)<1&&Math.abs(e.end-o.end)<1}var pc=4;function ro(e=pc){let t=new WeakMap,n=o=>{let s=t.get(o);return s||(s=new Map,t.set(o,s)),s};return{layout(o,s,r){let a=n(o),i=Vt(o,s),c=a.get(i);if(c)return c.run;a.size>=e&&a.delete(a.keys().next().value);let d=performance.now(),l={run:Vn(o,s,r).then(p=>(l.done=p.result,{...p,duration:p.duration||performance.now()-d}))};return l.run.catch(()=>a.delete(i)),a.set(i,l),l.run},ready(o,s){return t.get(o)?.get(Vt(o,s))?.done},inherit(o,s){let r=t.get(o);r&&o!==s&&t.set(s,r)}}}var ke=JBrowseExports["@jbrowse/render-core/RenderLifecycleMixin"],lc=e=>ke!=null&&e in Object(ke)?ke[e]:Object.assign(function(){throw new Error("This JBrowse does not provide '"+e+"' from '@jbrowse/render-core/RenderLifecycleMixin' to plugins: GraphGenomeView was built for a different JBrowse version, so update the plugin or JBrowse")},{jbrowseHostMissing:e}),zs=lc("RenderLifecycleMixin"),lh=ke&&ke.__esModule?ke.default:ke;function Ks(e){return t=>e.includes(t)?t:void 0}function hh(e){return N.snapshotProcessor(N.maybe(N.enumeration(e)),{preProcessor:Ks(e)})}function Zt(e,t){return N.snapshotProcessor(N.optional(N.enumeration(e),t),{preProcessor:Ks(e)})}var qs=600,Qt=160,en=[1,1,1,1],tn=[.12,.12,.12,1],Js=([e,t,n])=>`rgb(${[e,t,n].map(o=>Math.round(o*255)).join(", ")})`,Zs=5,Qs=new Set(["tubemap","tubemapref"]),Lh=xt(()=>import("./ChooseSamplesDialog-BNVYBGJQ.js")),Nh=xt(()=>import("./ChooseWalksDialog-EN3C6AQA.js")),Ph=xt(()=>import("./HighlightColorDialog-3BONNNBR.js")),Ah=12,Th=[{bp:0,label:"None"},{bp:3,label:"Under 3 bp"},{bp:10,label:"Under 10 bp"},{bp:50,label:"Under 50 bp, leaving structural variants"},{bp:1e3,label:"Under 1 kb"}];function Eh(e){if(typeof e.uri=="string")return e.uri;let n=e.segmentsLocation?.uri;return typeof n=="string"&&n.endsWith(wn)?n.slice(0,-wn.length):void 0}var so=1.15,ea=1.6,Ih=150,ta=1,ao=40,Bh=[{value:"each",label:"A tube per haplotype"},{value:"grouped",label:"A tube per haplotype, grouped by route"},{value:"bundled",label:"A tube per route"}],mc={nodeStrokes:[],nodeStrokeRuns:new Map,arrows:[],arrowRuns:new Map,edgeCurves:[],edgeCurveRuns:new Map};function pt(...e){}var Ch=5e6;function _h(e){return e>=1e6?`${+(e/1e6).toFixed(1)} Mb`:`${Math.round(e/1e3)} kb`}var fc=2e4;function Gh(e){return("uri"in e?e.uri.split(/[?#]/)[0]:"localPath"in e?e.localPath:"name"in e?e.name:"").split(/[\\/]/).at(-1)??""}function Oe(e){return e&&"uri"in e&&e.uri?new URL(e.uri,e.baseUri??window.location.href).href:void 0}function na(e){return e.builtViewport!==void 0&&e.paintedViewport===e.builtViewport&&e.builtViewport.viewportDirty===e.viewportDirty&&!e.viewportRebuildPending}function oa(e){let{width:t,height:n}=e.viewBox;return Yn(e,e.axisScale,t,n)}var Oh=ro(),ra=N.compose("GraphPane",zs(),N.model({layoutQuality:N.optional(N.number,2),layoutEngine:Zt(Co,"fmmm"),linearLayout:N.optional(N.boolean,!1),bubbleSpread:Zt(or,"auto"),tubeMapFold:N.optional(N.number,0),tubeMapRoutes:Zt(["each","grouped","bundled"],"each"),tubeMapColorBy:N.optional(N.string,""),geneTrackId:N.optional(N.string,""),repeatTrackId:N.optional(N.string,""),repeatKey:N.optional(N.string,""),walkLayers:N.optional(N.frozen(),[]),referencePath:N.optional(N.string,""),showPerf:N.optional(N.boolean,!1),connectorThickness:N.optional(N.number,2),scale:N.optional(N.number,1),translateX:N.optional(N.number,0),translateY:N.optional(N.number,0),paneHeight:N.maybe(N.number),maxGraphNodes:N.optional(N.number,fc),connectedViewId:N.maybe(N.string)})).volatile(()=>({graph:void 0,walkCut:void 0,graphRegion:void 0,loadedReferencePath:void 0,layoutResult:void 0,drawnLayoutMode:void 0,legendSize:{width:0,height:0},indexBubbles:void 0,foldedBelowBp:void 0,geneTrackFeatures:void 0,walkGeneFeatures:void 0,walkRowSampleTable:void 0,repeatArrays:void 0,handledLayoutMode:void 0,openBubbles:[],error:void 0,isLoading:!1,loadCanceled:!1,statusMessage:"",hoveredNode:null,hoveredAt:null,hoveredTube:null,hoveredPanel:null,hoveredRowWalks:[],hoveredBubble:null,pointerInPane:!1,stripHover:null,hoveredWalkRow:null,hoveredEdge:null,selectedNode:null,viewportDirty:0,positionsVersion:0,morphEntering:void 0,drawnBatch:mc,builtViewport:void 0,paintedViewport:void 0,draggingNode:null,isPanning:!1,viewportOwner:"fit",viewportDirtyTimer:void 0,positionsDirtyFrame:0,lastFetchMs:void 0,readsShown:void 0,lastLayoutMs:void 0,lastGeometryMs:void 0,lastGeometryStrokeCount:void 0,viewportRebuildPending:!1}));var aa=.9;function lt(e,t){return e+2>=t||e>=aa*t}var ia=50,io=2,hc=1e3;function co(e,t,n,o=r=>r,s=[]){let r=new Map(e.nodes.map(i=>[i.name,i])),a=[];for(let i of t){let c=[],d=1/0,l=-1/0,p=1/0,u=[],h=[],g=be(i);for(let[x,w]of g.entries()){let k=r.get(w),S=k&&n[k.id];if(!(!k||!S?.length)){if(i.key?x===0||x===g.length-1:E(k)&&(k.stable.start<i.start||k.stable.start>=i.end)){h.push(S[Math.floor(S.length/2)]);continue}u.push(k.id),c.push(Xe(S.length===1?[S[0],S[0]]:S));for(let P of S)d=Math.min(d,P.x),l=Math.max(l,P.x),p=Math.min(p,P.y)}}if(u.length===0)continue;let b={x:(d+l)/2,y:p},m=h.length?{x:h.reduce((x,w)=>x+w.x,0)/h.length,y:h.reduce((x,w)=>x+w.y,0)/h.length}:b,f=[];for(let[x,w]of gc(i)){let k,S=-1;for(let P of w)for(let T of n[P]??[]){let _=Math.hypot(T.x-m.x,T.y-m.y);_>S&&(S=_,k=T)}k&&f.push({route:x,at:k,text:bc(x,o)})}let y=i.covering===!0||lt(u.length,e.nodes.length);a.push({bubble:i,...cr(i,s),path:c.join(""),labelAt:b,members:u.length,nodeIds:u,whole:y,tick:!y&&!i.partial&&i.longestAlleleLength<ia,routes:f})}return a}var sa=new WeakMap;function gc(e){let t=sa.get(e);if(t)return t;let n=e.longestAlleleLength<hc?[]:e.routes??[],o=new Map;n.forEach((r,a)=>{let i=new Map;for(let c of r.steps)i.get(c)!==a&&(i.set(c,a),o.set(c,(o.get(c)??0)+1))});let s=new Map;for(let r of n){let a=1/0;for(let c of r.steps)a=Math.min(a,o.get(c));let i=new Set(r.steps.filter(c=>o.get(c)===a));i.size>0&&s.set(r,[...i])}return sa.set(e,s),s}function bc(e,t){let n=[...new Set(e.walks.map(t))].sort(),o=n.slice(0,io).join(", "),s=n.length>io?` +${n.length-io}`:"";return`${o}${s} \xB7 ${ir(e.bp)}`}function mt(e,t){let n=new Set(t),o=e.nodes.filter(c=>n.has(c.name)),s=new Set(o.map(c=>c.id)),r=new Map(e.nodes.map(c=>[c.id,c.length])),a=new Map,i=e.paths?.flatMap(c=>{let d=c.nodeIds.findIndex(u=>s.has(u));if(d<0)return[];let l=c.nodeIds.filter(u=>s.has(u));a.set(c.name,{first:d,nodeIds:l});let p=c.nodeIds.slice(0,d).reduce((u,h)=>u+(r.get(h)??0),0);return[{...c,nodeIds:l,...c.start===void 0?{}:{start:c.start+p}}]});return{name:e.name,nodes:o,edges:e.edges.filter(c=>s.has(c.from)&&s.has(c.to)),...i?.length?{paths:i}:{},anchorPaths:$o(e,a),pathVisits:e.pathVisits,anchoredBy:e.anchoredBy,referencePath:e.referencePath}}function ca(e){if(!e.nodes.some(E))return[];let t=new Map(e.nodes.map(u=>[u.id,u])),n=to(e),o=new Map(n.map((u,h)=>[u,h])),s=new Int32Array(n.length+1),r=new Map,a=new Set;for(let u of e.edges){let h=o.get(u.from),g=o.get(u.to);if(h===void 0||g===void 0||h===g)continue;a.add(`${u.from}>${u.to}`).add(`${u.to}>${u.from}`);let[b,m]=h<g?[h,g]:[g,h];s[b+1]++,s[m]--;let[f,y]=h<g?[u.from,u.to]:[u.to,u.from];(r.get(f)??r.set(f,new Set).get(f)).add(y)}for(let u=1;u<s.length;u++)s[u]+=s[u-1];let i=e.nodes.filter(E).sort((u,h)=>u.stable.start-h.stable.start),c=new Set([i[0].id,i.at(-1).id]),d=i.map(u=>[u,o.get(u.id)]).filter(([u,h])=>c.has(u.id)||s[h]===0).sort(([u,h],[g,b])=>h-b||u.stable.start-g.stable.start),l=uo(e,d.map(([u])=>u.id)),p=[];for(let u=0;u+1<d.length;u++){let[h,g]=d[u],[b,m]=d[u+1],f=n.slice(g+1,m);if(f.length===0)continue;let y=new Map([[h.id,{min:0,max:0,n:1}]]);for(let F of[h.id,...f]){let Y=y.get(F);if(Y)for(let V of r.get(F)??[]){if(o.get(V)>m)continue;let X=V===b.id?0:t.get(V).length,Z=y.get(V);y.set(V,{min:Math.min(Z?.min??1/0,Y.min+X),max:Math.max(Z?.max??-1/0,Y.max+X),n:Math.min(Gt,Y.n+(Z?.n??0))})}}let x=l&&po(e,t,l,h.id,b.id),w=x?.n?x:void 0,k=w??y.get(b.id)??{min:0,max:0,n:0},S=x!==void 0&&x.left>0,P=h.stable.start+h.length,T=b.stable.start,_=[h.id,...f.filter(F=>E(t.get(F))),b.id],H=_.some((F,Y)=>Y>0&&!a.has(`${_[Y-1]}>${F}`)),j=H||S,oe=H&&!w;p.push({refName:h.stable.refName,start:P,end:T,segmentCount:f.length+2,pathCount:k.n,inversion:!1,shortestAlleleLength:oe?T-P:k.min,longestAlleleLength:oe?T-P:k.max,segments:[h,...f.map(F=>t.get(F)),b].map(F=>F.name).join(","),shortestAllele:void 0,longestAllele:void 0,partial:j,routes:w?.routes})}return p}function uo(e,t){let n=e.paths;if(!n)return;let o=new Map;for(let s of t)o.set(s,new Int32Array(n.length).fill(-1));return n.forEach((s,r)=>{let a=s.nodeIds;for(let i=0;i<a.length;i++){let c=o.get(a[i]);c?.[r]===-1&&(c[r]=i)}}),o}function po(e,t,n,o,s){let r=[],a=1/0,i=-1/0,c=0,d=n.get(o),l=n.get(s);return e.paths.forEach((p,u)=>{let h=d[u],g=l[u];if(h<0||g<0){(h>=0||g>=0)&&c++;return}let b=p.nodeIds,m=Math.min(h,g)+1,f=Math.max(h,g),y=g<h?w=>b[f-1-w]:w=>b[m+w],x=r.find(w=>w.steps.length===f-m&&w.steps.every((k,S)=>k===y(S)));if(!x){let w=Array.from({length:f-m},(S,P)=>y(P)),k=0;for(let S of w)k+=t.get(S)?.length??0;x={steps:w,bp:k,walks:[]},r.push(x)}x.walks.push(p.name),a=Math.min(a,x.bp),i=Math.max(i,x.bp)}),r.length||c?{min:a,max:i,n:r.length,left:c,routes:r}:void 0}function wc(e,t){let n=e.nodes.length*2,o=new Set,s=[],r=new Int32Array(n);for(let d of e.edges){let l=t.get(d.from),p=t.get(d.to);if(l===void 0||p===void 0)continue;let u=fe(d),h=l*2+(u.from==="end"?1:0),g=p*2+(u.to==="end"?1:0),b=Math.min(h,g)*n+Math.max(h,g);o.has(b)||(o.add(b),s.push(h,g),r[h]++,h!==g&&r[g]++)}let a=new Int32Array(n+1);for(let d=0;d<n;d++)a[d+1]=a[d]+r[d];let i=new Int32Array(a[n]),c=a.slice(0,n);for(let d=0;d<s.length;d+=2){let l=s[d],p=s[d+1];i[c[l]++]=p,l!==p&&(i[c[p]++]=l)}return{offset:a,next:i}}function yc(e,t,n){let o=new Int32Array(e),s=new Uint8Array(e*2),r=new Int32Array(e*2),a=new Int32Array(e),i=[],c=0;return d=>{let l=d>>1;c++,i.length=0;let p=0,u=0,h=0,g,b=m=>{s[m]||(s[m]=1,p++,i.push(m))};b(d),r[u++]=d;e:for(;u>0;){let m=r[--u],f=m>>1;if(o[f]=c,f!==l&&(a[h++]=m),s[m]&&(s[m]=0,p--),t[m]===t[m+1])break;for(let y=t[m];y<t[m+1];y++){let x=n[y],w=x>>1;if(w===l)break e;if(b(x^1),o[w]===c)continue;let k=!0;for(let S=t[x];S<t[x+1];S++)if(o[n[S]>>1]!==c){k=!1;break}k&&(r[u++]=x^1)}if(u===1&&p===1){h>0&&(g={source:d,sink:r[0],inside:a.slice(0,h)});break}}for(let m of i)s[m]=0;return g}}function xc(e){return{source:e.sink^1,sink:e.source^1,inside:e.inside.map(t=>t^1).reverse()}}var pa=new Intl.Collator(void 0,{numeric:!0});function lo(e,t){return E(e)&&E(t)&&e.stable.refName===t.stable.refName}function da(e,t){let n=t[e.source>>1],o=t[e.sink>>1],s=lo(n,o)?n.stable.start-o.stable.start:0,r=((e.sink^1)&1)-(e.source&1);return(s||r||pa.compare(n.name,o.name))<0}function ua(e){return[e.source>>1,...Array.from(e.inside,t=>t>>1),e.sink>>1]}function kc(e){let{nodes:t}=e,n=new Map(t.map((c,d)=>[c.id,d])),{offset:o,next:s}=wc(e,n),r=yc(t.length,o,s),a=new Map;for(let c=0;c<t.length*2;c++){let d=r(c);if(!d)continue;let l=d.source>>1,p=d.sink>>1,u=Math.min(l,p)*t.length+Math.max(l,p);(da(d,t)||!a.has(u))&&a.set(u,d)}return{found:[...a.values()].map(c=>da(c,t)?c:xc(c)),offset:o,next:s}}function Mc(e,t,n,o){let s=o.sink>>1,r=new Map([[o.source>>1,{min:0,max:0,n:1}]]);for(let a of[o.source,...o.inside]){let i=r.get(a>>1);if(i)for(let c=t[a];c<t[a+1];c++){let d=n[c]>>1,l=d===s?0:e[d].length,p=r.get(d);r.set(d,{min:Math.min(p?.min??1/0,i.min+l),max:Math.max(p?.max??-1/0,i.max+l),n:Math.min(Gt,i.n+(p?.n??0))})}}return r.get(s)??{min:0,max:0,n:0}}function mo(e,t){let{nodes:n}=e,{found:o,offset:s,next:r}=kc(e),a=o.map(g=>lt(g.inside.length,n.length)),i=o.map(ua),c=new Map;i.forEach((g,b)=>{for(let m of g)(c.get(m)??c.set(m,[]).get(m)).push(b)});let d=(g,b)=>c.get(g.inside[0]>>1).some(m=>m!==b&&!a[m]&&i[m].length>i[b].length&&i[b].every(f=>c.get(f).includes(m))),l=g=>t!==void 0||lo(n[g.source>>1],n[g.sink>>1]),p=o.filter((g,b)=>!a[b]&&l(g)&&!d(g,b)),u=new Map(n.map(g=>[g.id,g])),h=uo(e,p.flatMap(g=>[n[g.source>>1].id,n[g.sink>>1].id]));return p.map(g=>{let b=n[g.source>>1],m=n[g.sink>>1],f=h&&po(e,u,h,b.id,m.id),y=f?.n?f:void 0,x=y??Mc(n,s,r,g),w=lo(b,m);return{refName:w?b.stable.refName:t.refName,start:w?b.stable.start+b.length:t.start,end:w?m.stable.start:t.end,segmentCount:g.inside.length+2,pathCount:x.n,inversion:!1,shortestAlleleLength:x.min,longestAlleleLength:x.max,segments:ua(g).map(k=>n[k].name).join(","),shortestAllele:void 0,longestAllele:void 0,partial:f!==void 0&&f.left>0,routes:y?.routes,key:`${b.name}>${m.name}`,...w?{}:{offReference:!0}}}).sort((g,b)=>g.start-b.start||g.end-b.end||pa.compare(g.key,b.key))}function nn(e,t){let n=e.nodes.length,o=ca(e);if(o.length===0){let s=mo(e,t);return t?[...s,{...t,covering:!0}]:s}return o.flatMap(s=>lt(s.segmentCount-2,n)?[...mo(s.segmentCount===n?e:mt(e,be(s)),s),{...s,covering:!0}]:[s])}var on=JBrowseExports["@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain"];var la=on&&on.__esModule?on.default:on;function fo(e){let t=[];for(let n of[...e].sort((o,s)=>o.start-s.start)){let o=t.at(-1);o&&n.start<=o.end?o.end=Math.max(o.end,n.end):t.push({...n})}return t}function ho(e){let t=[],n=new Map;for(let o of[...e].sort((s,r)=>s.start-r.start)){let s=`${o.refName} ${o.strand} ${o.name}`,r=n.get(s);if(r&&o.start<r.end)r.end=Math.max(r.end,o.end),r.exons=fo([...r.exons,...o.exons]);else{let a={...o,exons:fo(o.exons)};t.push(a),n.set(s,a)}}return t}var wo=new Set(["BedAdapter","BedTabixAdapter","BigBedAdapter","VcfAdapter","VcfTabixAdapter"]),yo=/repeat|tandem|\bstr\b|vntr|trf|trgt|vamos|expansion|microsat/i;function ma(e,t){return t?e.find(o=>o.trackId===t):e.filter(o=>wo.has(o.adapterType)).find(o=>yo.test(`${o.trackId} ${o.name??""}`))}function ft(e,t){return typeof e.get=="function"?e.get(t):e[t]}var fa=/^\w+=[^;]*(;\w+=[^;]*)*$/;function Sc(e){let t=ft(e,"name");if(!(typeof t!="string"||!fa.test(t)))return Object.fromEntries(t.split(";").map(n=>{let o=n.indexOf("=");return[n.slice(0,o),n.slice(o+1)]}))}function ie(e,t){let n=ft(e,t);return n!==void 0?n:ft(e,"INFO")?.[t]??Sc(e)?.[t]}var ha=["RUS","MOTIFS","RU","motifs","motif","sequence","consensus"],vc=["RUL","period","PERIOD","consensusSize","unit","unitLength"],Rc=["TRID","REPID","VARID","ID","name","id"];function rn(e,t){for(let n of t){let o=ie(e,n),s=String((Array.isArray(o)?o[0]:o)??"").split(",")[0].trim();if(s!==""&&s!==".")return s}}var ga=/^[ACGTURYSWKMBDHVN]+$/i;function Lc(e){let t=Number(rn(e,vc));if(Number.isFinite(t)&&t>0)return Math.round(t);let n=rn(e,ha);return n&&ga.test(n)?n.length:void 0}function Me(e){return(Array.isArray(e)?e:String(e??"").split(",")).map(n=>{let o=n===""||n===null||n===void 0?NaN:Number(n);return Number.isFinite(o)?o:void 0})}function bo(e){return(Array.isArray(e)?e:String(e??"").split(",")).map(n=>{let o=String(n??"").trim();return o===""||o==="."?void 0:o})}var go="<CNV:TR>";function Nc(e){let t=bo(ft(e,"ALT"));if(!t.includes(go))return;let n=Me(ie(e,"RN")),o=bo(ie(e,"RUS")),s=Me(ie(e,"RUL")),r=Me(ie(e,"RUC")),a=Me(ie(e,"RB")),i=0;return t.map((c,d)=>{let l=n[d]??(c===go?1:0),p=0,u=0;for(let h=0;h<l;h++,i++){let g=o[i],b=s[i]??(g&&ga.test(g)?g.length:void 0),m=r[i],f=a[i]??(b&&m!==void 0?Math.round(b*m):void 0);f!==void 0&&(p+=f,u++)}return c===go&&l>0&&u===l?p:void 0})}function Pc(e,t,n){let o=e?.includes("|");return(e??"").split(/[/|]/).flatMap((s,r)=>{let a=Number(s),i=a>0?t[a-1]:n;return!Number.isInteger(a)||i===void 0?[]:[{bp:i,...o?{haplotype:r+1}:{}}]})}function Ac(e,t,n){let o=ft(e,"samples"),s={};for(let[r,a]of Object.entries(o??{})){let i=Me(a.SD),c=Me(a.AL).flatMap((l,p)=>l!==void 0&&l>0?[i[p]===void 0?{bp:l}:{bp:l,spanningReads:i[p]}]:[]),d=c.length>0||!t?c:Pc(bo(a.GT)[0],t,n);d.length>0&&(s[r]=d)}return Object.keys(s).length>0?s:void 0}function Tc(e,t){let n=ie(e,"start"),o=ie(e,"end"),s=Me(ie(e,"SVLEN"))[0];return t&&s!==void 0?{start:n+1,end:n+1+s}:{start:n,end:o}}function rw(e){let t=[];for(let n of e){let o=Nc(n),{start:s,end:r}=Tc(n,o!==void 0),a=Lc(n);if(!(r>s)||a===void 0)continue;let i=ie(n,"refName"),c=rn(n,ha),d=rn(n,Rc);t.push({key:`${i}:${s}-${r}`,name:(d&&!fa.test(d)?d:void 0)??(c&&c.length<=12?`(${c})n`:`${i}:${(s+1).toLocaleString()}-${r.toLocaleString()}`),refName:i,start:s,end:r,unit:a,motif:c,calls:Ac(n,o,r-s)})}return t.sort((n,o)=>n.start-o.start)}var ht=new Set(["Gff3TabixAdapter","Gff3Adapter","BedTabixAdapter","BedAdapter","GtfTabixAdapter","GtfAdapter","BigBedAdapter","NCListAdapter"]),Ec=/gene|refseq|gencode|ensembl|annotation/i,Ic=new Set(["BedTabixAdapter","BedAdapter"]);function sn(e,t){if(t)return e.find(s=>s.trackId===t);let n=s=>`${s.trackId} ${s.name??""}`,o=e.filter(s=>ht.has(s.adapterType)&&!yo.test(n(s)));return o.find(s=>Ec.test(n(s)))??o.find(s=>!Ic.has(s.adapterType))}function ba(e,t){let n=e.tracks?.find(o=>$(o.configuration,"trackId")===t)?.displays[0];return n?$(n.configuration,"filter")??[]:[]}var Bc=new Set(["chromosome","region","contig","supercontig","scaffold"]);function J(e,t){return typeof e.get=="function"?e.get(t):e[t]}var Cc=new Set(["exon","CDS","five_prime_UTR","three_prime_UTR","UTR"]);function wa(e,t){let n=J(e,"type");typeof n=="string"&&Cc.has(n)&&t.push({start:J(e,"start"),end:J(e,"end")});let o=J(e,"subfeatures");for(let s of o??[])wa(s,t)}function _c(e){let t=[...e].sort((o,s)=>o.start-s.start),n=[];for(let o of t){let s=n.at(-1);s&&o.start<=s.end?s.end=Math.max(s.end,o.end):n.push({...o})}return n}function ya(e){let t=[];for(let n of e){let o=J(n,"gene_name")??J(n,"name")??J(n,"gene")??J(n,"gene_id"),s=J(n,"start"),r=J(n,"end");if(!o||!(r>s)||Bc.has(J(n,"type")))continue;let a=[];wa(n,a),t.push({name:o,refName:J(n,"refName"),start:s,end:r,strand:J(n,"strand")??0,exons:a.length?_c(a):[{start:s,end:r}]})}return ho(t)}var xo={paths:!1,bubbles:!1,deletions:!0,genes:!0,referenceStrip:!0,walkStrip:!1};function xa(e){let t=typeof e=="object"&&e!==null?e:{};return new Set(Object.keys(xo).filter(n=>t[n]??xo[n]))}function uw(e,t,n){let{[t]:o,...s}=typeof e=="object"&&e!==null?e:{};return n===xo[t]?s:{...s,[t]:n}}function le(e){return typeof e=="object"&&e!==null}var ko={depth:"depth",length:"node-length",rank:"stable-rank",position:"reference-position"},ka=Object.fromEntries(Object.entries(ko).map(([e,t])=>[t,e]));function Ma(e){if(e==="grey"||e==="uniform")return e;if(le(e)){let{field:t,scheme:n}=e;if(t==="id")return n==="rainbow"?"rainbow":"random";if(typeof t=="string"&&t in ko)return ko[t]}return"auto"}function Sa(e){return le(e)&&typeof e.domainMin=="number"&&typeof e.domainMax=="number"?{start:e.domainMin,end:e.domainMax}:void 0}function fw(e,t){return e==="grey"||e==="uniform"?e:e==="random"?{field:"id",scale:"categorical"}:e==="rainbow"?{field:"id",scheme:"rainbow"}:e==="reference-position"&&t?{field:"position",domainMin:t.start,domainMax:t.end}:ka[e]?{field:ka[e]}:{}}var va=6;function Mo(e){return typeof e=="number"?{width:"uniform",px:e}:le(e)?{width:e.field==="depth"?"depth":"uniform",px:typeof e.value=="number"?e.value:va}:{width:"depth",px:va}}function bw(e,t){return e==="depth"?{field:"depth",value:t}:t}function Gc(e,t,n){let o=Io(e,t);return o?yn(o,n):void 0}var Ra=ra.views(e=>({get grammar(){return{}},get darkMode(){return!1},get hasPendingSource(){return!1},get canRetryLoad(){return!1},get sourceTrack(){try{return Lo(e).configuration}catch{return}}})).views(e=>{let t=r=>yt(r,{equals:(a,i)=>JSON.stringify(a)===JSON.stringify(i)}),n=t(()=>Sa(e.grammar.color)),o=t(()=>Et(e.grammar.facet)),s=t(()=>{let r=Hr(e.grammar.facet);return r&&r.field!=="walk"&&r.field!=="sample"?r:void 0});return{get chosenLayoutMode(){return e.grammar.layoutMode??"force"},get chosenColorScheme(){return Ma(e.grammar.color)},get statedColorDomain(){return n.get()},get chosenHover(){return e.grammar.hover??"nodes"},get nodeWidth(){return Mo(e.grammar.size).width},get contigThickness(){return Mo(e.grammar.size).px},get layerSet(){return xa(e.grammar.layers)},get drawPaths(){return this.layerSet.has("paths")},get showBubbles(){return this.layerSet.has("bubbles")},get showDeletionEdges(){return this.layerSet.has("deletions")},get showGenes(){return this.layerSet.has("genes")},get showReferenceStrip(){return this.layerSet.has("referenceStrip")},get walkStrip(){return this.layerSet.has("walkStrip")},get facetSetting(){return o.get()},get walkRowGroupBy(){return s.get()},get walkRowSamples(){let r=e.grammar.rows?.kept;return Array.isArray(r)?r:void 0},get hoverLightsEverything(){return this.chosenHover==="everything"},get litNode(){return this.chosenHover==="off"?null:e.hoveredNode}}}).views(e=>({get paneWidth(){return De(e).width},get paneMeasured(){return!0},get drawnGraph(){return e.layoutResult?.tubeMap?.graph??e.graph}})).views(e=>({get nodeById(){if(e.drawnGraph){let t=new Map;for(let n of e.drawnGraph.nodes)t.set(n.id,n);return t}},get nodeLengths(){let t=new Map;for(let n of e.drawnGraph?.nodes??[])t.set(n.id,n.length);return t},get nodeCount(){return e.graph?.nodes.length??0},get edgeCount(){return e.graph?.edges.length??0},get pathCount(){return e.graph?.paths?.length??0},get hasGraph(){return e.graph!==void 0},get geometryPainted(){return na(e)},get showLoading(){return e.error===void 0&&(e.isLoading||e.hasPendingSource||e.graph!==void 0&&!this.geometryPainted)},get canCancelLoad(){return e.isLoading&&!e.layoutResult},get usesLayoutEngine(){return e.graph?no(e.chosenLayoutMode,e.graph):!1},get anchorPaths(){return e.graph?.anchorPaths??[]},get walkChoices(){let t=e.graph?.paths;return t?.length?Ue(t):[]},get effectiveDrawPaths(){return e.drawPaths&&Ne(e.graph?.paths?.length??0)},get activeReferencePath(){return e.graph?.referencePath},get rampDomain(){let t=e.openBubbles.at(-1);return t&&!t.offReference&&t.end>t.start?{start:t.start,end:t.end}:e.statedColorDomain??e.graphRegion},get walkRamp(){let{graph:t}=e;return t&&e.walkLayers.some(n=>n.color?.field==="reference")?Ae(t,this.rampDomain):void 0},get modeDrawsNodes(){return ne(e.chosenLayoutMode).drawsNodes},get liftedWalkLayers(){return e.walkLayers.length>0||!this.modeDrawsNodes?e.walkLayers:e.hoveredRowWalks.map(t=>({walk:t}))},get walkLift(){let{graph:t}=e,n=this.liftedWalkLayers;return t&&!e.walkCut&&n.length>0&&!e.layoutResult?.tubeMap?st(t,n,this.walkRamp):void 0},get facetPanels(){let{graph:t}=e,n=this.walkLift;return e.facetSetting.field!==""&&this.modeDrawsNodes&&t&&n&&e.walkLayers.length>1&&n.walks.length>1?at(t,n,e.walkLayers,this.walkRamp):void 0},get drawnWalks(){return this.facetPanels?.map(t=>t.walks[0])??this.walkLift?.walks??[]},get liftsWalks(){return!Qs.has(e.chosenLayoutMode)},get walkReference(){let t=this.walkLift?.referenceDomain;return t&&{...t,name:e.graphRegion?.refName}},get walkLabels(){return Mt(this.walkChoices)},walkLabel(t){return this.walkLabels.get(t)??t},get liftPaintsOffReference(){for(let t of this.walkLift?.walks??[])if(t.encoding.field!=="walk"){for(let n of t.colors.values())if(n===ar)return!0}return!1},get liftedWalksLabel(){let t=this.walkLift?.walks??[];return t.length===1?this.walkLabel(t[0].name):"these walks"},get effectiveColorScheme(){return e.layoutResult?.tubeMap&&(this.tubeMapReads||e.chosenColorScheme==="auto")?"uniform":ct(e.chosenColorScheme,e.graph)},get tubeMapReads(){return(e.layoutResult?.tubeMap?.layout.reads.length??0)>0},get colorSchemeLock(){return this.walkLift?{value:"By walk",why:"Each highlighted haplotype colours its own lane: set it under Haplotypes, Color highlighted..."}:this.tubeMapReads?{value:"By strand",why:"Reads take the reds and blues, so the tube map leaves its nodes clear"}:void 0},get nodePositions(){return e.layoutResult?.nodePositions},get labelsNodeSizes(){return!e.layoutResult?.tubeMap&&!this.walkLift},get rowLabels(){return e.layoutResult?.rowLabels??[]},get alleleDeletions(){return e.layoutResult?.alleleDeletions??[]},get deletionRoutes(){return e.layoutResult?.deletionRoutes},get stranded(){return e.layoutResult?.stranded},get pixelRows(){return e.layoutResult?.pixelRows??!1},get zoomPercent(){return`${(e.scale*100).toFixed(1)}%`},get isDefaultViewport(){return e.scale===1&&e.translateX===0&&e.translateY===0}})).views(e=>({get derivedBubbles(){return e.graph?nn(e.graph):[]},get openBubbleInsides(){let{graph:t}=e;return t?e.openBubbles.map(n=>nn(mt(t,be(n)),n).filter(o=>!o.covering)):[]},get openBubble(){return e.openBubbles.at(-1)},get openBubbleFocus(){let t=this.openBubble,{graph:n}=e;if(!t||!n)return;let o=new Set(be(t)),s=new Set(n.nodes.filter(a=>o.has(a.name)).map(a=>a.id)),r=new Set;return n.edges.forEach((a,i)=>{s.has(a.from)&&s.has(a.to)&&r.add(i)}),{walks:[],nodeIds:s,edgeIndexes:r,names:new Set}},bubbleIsOpen(t){return e.openBubbles.some(n=>Ct(n,t))},bubbleFaded({bubble:t,nodeIds:n}){let o=e.walkLift,s=this.openBubbleFocus;return o?!n.some(r=>o.nodeIds.has(r)):!!s&&!this.bubbleIsOpen(t)&&!n.every(r=>s.nodeIds.has(r))}})).views(e=>({get bubbles(){let t=e.indexBubbles?.length?e.indexBubbles:e.derivedBubbles,n=new Set(t.map(_t));return[...t,...e.openBubbleInsides.flat().filter(o=>!n.has(_t(o))&&n.add(_t(o)))]},get foldNote(){let t=e.foldedBelowBp;return t===void 0?void 0:`variants under ${Ye(t)} folded into the reference`}})).views(e=>({get cutHaplotypes(){},get sourceGfaLocation(){},get sourceAdapter(){let t=e.sourceTrack;return t?qr(e,t):void 0},get sourceTrackId(){let t=e.sourceTrack;return t?$(t,"trackId"):void 0},get assemblyTrackChoices(){let t=e.graphRegion;return t?Q(e).tracks.filter(n=>$(n,"assemblyNames").includes(t.assemblyName)).map(n=>({trackId:n.trackId,name:$(n,"name"),adapterType:$(n,"adapter").type})):[]}})).views(e=>({get geneTrackChoices(){return e.assemblyTrackChoices.filter(t=>ht.has(t.adapterType))},get repeatTrackChoices(){return e.assemblyTrackChoices.filter(t=>wo.has(t.adapterType))},get repeatChoices(){return e.repeatArrays??[]}})).views(e=>({get repeatTrack(){return ma(e.repeatTrackChoices,e.repeatTrackId)},get geneTrack(){return sn(e.geneTrackChoices,e.geneTrackId)},get selectedRepeat(){return e.repeatChoices.find(t=>t.key===e.repeatKey)},get backbone(){return e.graph?fn(e.graph):void 0},get cutWalkRows(){let t=e.walkCut?.walkRowRuns;return t?yn(t):e.graph?Ce(e.graph,e.graphRegion):void 0},assemblySpellings(t){let{assemblyManager:n}=Q(e),o=n.has(t)?n.get(t):void 0,s=e.sourceAdapter?.assemblyNameToPanSN??{},r=[t,...o?[o.name,...o.aliases]:[]];return{name:t,aliases:[...r,...r.flatMap(a=>s[a]??[])]}},get drawsLoadedReference(){let t=e.graph;return t?.anchoredBy==="tags"||t?.referencePath!==void 0&&t.referencePath===e.loadedReferencePath}})).views(e=>({get geneAssembly(){let t=e.graphRegion;return t?e.assemblySpellings(t.assemblyName):void 0},get geneLaneFilter(){let t;try{t=De(e)}catch{return}let n=ba(t,e.geneTrack?.trackId);return n.length?new la({filters:n,jexl:No(e).pluginManager.jexl}):void 0},get geneFeatures(){let t=e.geneTrackFeatures,n=this.geneLaneFilter;return t?ya(n?t.filter(o=>n.passes(o)):t):void 0}})).views(e=>({get backboneGenes(){let{backbone:t,geneAssembly:n,geneFeatures:o}=e,s=e.drawsLoadedReference||n!==void 0&&gn(t,[n])!==void 0;return t&&o&&s?bn(o,t):void 0}})).views(e=>({get nodeNeighbors(){return e.drawnGraph?de(e.drawnGraph):void 0},get nodeInk(){return St(e.drawnGraph,e.nodeById,e.contigThickness,e.nodeWidth)},get allDeletions(){return e.graph&&this.drawsNodes?he(e.graph):[]},get cohortWalkRows(){if(e.chosenLayoutMode!=="walkrows"||!e.graph)return;let t=e.selectedRepeat,n=e.walkCut,o=t?n?Gc(n,t,t.unit):Ce(e.graph,t,t.unit):e.cutWalkRows;if(!o)return;let[s,...r]=Kr([o.reference,...o.rows],t?.calls);return{...o,reference:s,rows:r}},get walkRowSampleChoices(){let t=this.cohortWalkRows?.rows??[];return{samples:[...new Set(t.map(n=>n.sample))].sort(),disagreeing:[...new Set(t.filter(n=>n.call?.agrees===!1).map(n=>n.sample))]}},get walkRowSamplesTsv(){let t=e.sourceAdapter?.samplesTsvLocation;return t&&Eo(t)?t:void 0},get walkRowGroupFields(){return Wr(e.walkRowSampleTable)},get tubeMapColoring(){let t=e.tubeMapColorBy,n=e.walkRowSampleTable;if(!t||!n||!this.walkRowGroupFields.includes(t))return;let o=_r(t,n),s=(e.graph?.paths??[]).map(r=>W(r.name).name).filter(r=>r!==e.graph?.referencePath);return{field:t,valueOf:o,palette:Cr(s.map(o)),unvalued:s.some(r=>o(r)==="")}},get tubeMapPanelSplit(){let{field:t,domain:n}=e.facetSetting,o=e.walkRowGroupBy,s=e.walkRowSampleTable;return t!==""?{by:t,domain:n}:o&&s&&this.walkRowGroupFields.includes(o.field)?{by:"column",...o,table:s}:void 0},get walkRowGroups(){let t=this.cohortWalkRows,n=e.walkRowSampleTable,o=e.walkRowGroupBy;return t&&n&&o&&this.walkRowGroupFields.includes(o.field)?Xr(Be(t.rows,e.walkRowSamples),n,o):void 0},get walkRowBars(){let t=this.cohortWalkRows;return t?{...t,rows:this.walkRowGroups?.rows??Be(t.rows,e.walkRowSamples)}:void 0},get drawsNodes(){return ne(e.drawnLayoutMode??e.chosenLayoutMode).drawsNodes},get genePins(){pt(e.positionsVersion);let t=e.layoutResult?.nodePositions;return e.showGenes&&this.drawsNodes&&e.graph&&e.backboneGenes&&t?et(e.graph,e.backboneGenes,t):[]},get bubbleHalos(){pt(e.positionsVersion);let t=e.layoutResult?.nodePositions;return!e.showBubbles||!this.drawsNodes||!e.graph||!t?[]:co(e.graph,e.bubbles,t,n=>e.walkLabel(n),e.repeatArrays)},get referenceRamp(){return e.effectiveColorScheme==="reference-position"&&e.drawnGraph?Ae(e.drawnGraph,e.rampDomain):void 0},get assemblyNames(){let t=e.graphRegion;return t?[t.assemblyName]:[]},get scaleX(){return ye(e.scale,e.pixelRows).scaleX},get scaleY(){return ye(e.scale,e.pixelRows).scaleY},get axisScale(){return ye(e.scale,e.pixelRows)}})).views(e=>({get deletionDrawing(){return e.graph?Ve(e.graph,e.allDeletions,e.showDeletionEdges):void 0},get deletions(){return this.deletionDrawing?.shown??[]},get deletionEdgeIndexes(){return this.deletionDrawing?.bypassed},get hiddenEdgeIndexes(){return this.deletionDrawing?.hidden},get referenceRampDomain(){let t=e.referenceRamp;return t?{start:t.start,end:t.start+t.span}:void 0},get referenceRampOffKeys(){let t=e.referenceRamp,n=e.layoutResult,o=n?.tubeMap?n.nodePositions:void 0,s=!1,r=!1;if(t&&e.drawnGraph)for(let a of e.drawnGraph.nodes)o&&!o[a.id]||(t.midpoints.has(a.id)?a.stable&&a.stable.rank>0&&(s=!0):r=!0);return{offReference:s,unplaced:r}},get tubeMapNodeColors(){let t=e.drawnGraph;return e.layoutResult?.tubeMap&&t?ut(t,e.effectiveColorScheme,e.referenceRamp):void 0},get tubeMapTubeColors(){let t=e.layoutResult?.tubeMap,n=t?.pathColors,o=e.drawnGraph?.paths,s=e.tubeMapColoring,r=n&&o&&s&&t.layout.reads.length===0?Wt(o,e.drawnGraph.referencePath,s.valueOf,s.palette):n&&o&&this.tubeMapNodeColors?Je(o,e.drawnGraph.referencePath,Dt):n&&o&&t.layout.reads.length===0&&(!Ne(o.length)||o.some(i=>i.members))?Je(o,e.drawnGraph.referencePath):n,a=new Set(e.hoveredRowWalks);return r&&o&&a.size>0?r.map((i,c)=>a.has(o[c]?.name??"")?i:Pe):r},nodeSpan(t){let{nodeById:n,nodeNeighbors:o}=e;return n&&o?vt({nodeId:t,nodeById:n,neighbors:o}):void 0},get hoverDrawing(){let t=e.hoveredPanel;return(t===null?void 0:e.layoutResult?.tubeMapPanels?.[t]?.result.tubeMap)??e.layoutResult?.tubeMap}})).views(e=>({get hoverGraph(){return e.hoverDrawing?.graph??e.drawnGraph}})).views(e=>({get hoverNodeById(){let t=e.hoverGraph;return t===e.drawnGraph?e.nodeById:t&&new Map(t.nodes.map(n=>[n.id,n]))},get hoverNeighbors(){let t=e.hoverGraph;return t===e.drawnGraph?e.nodeNeighbors:t&&de(t)}})).views(e=>({get pathLegend(){let t=e.drawnGraph?.paths,n=e.layoutResult?.tubeMap;return(e.drawPaths||n)&&t&&Ne(t.length)&&!e.layoutResult?.tubeMapPanels&&!e.tubeMapNodeColors&&!t.some(s=>s.members)&&!e.tubeMapColoring?Ue(t,e.tubeMapTubeColors):[]},get hoveredSpan(){let t=e.hoveredNode,n=e.hoveredBubble,o=e.hoverNodeById,s=e.hoverNeighbors;return t!==null?o&&s?vt({nodeId:t,nodeById:o,neighbors:s}):void 0:n&&!n.offReference?{start:n.start,end:n.end}:void 0}})).views(e=>({get hoverHighlight(){let t=e.graphRegion,n=e.hoveredSpan;return t&&n&&e.chosenHover!=="off"?{refName:t.refName,assemblyName:t.assemblyName,...n}:void 0}}));function Oc(e){return le(e)&&e.type==="LinearGenomeView"&&typeof e.id=="string"&&typeof e.navToLocString=="function"&&Array.isArray(e.assemblyNames)}function $c(e){return e.flatMap(t=>le(t)&&Array.isArray(t.views)?[t,...t.views]:[t])}function gt({views:e,connectedViewId:t,assemblyName:n}){let o=$c(e).filter(r=>Oc(r)).filter(r=>r.assemblyNames.includes(n));return o.find(r=>r.id===t)??(o.length===1?o[0]:void 0)}function So(e,t){let n=e.assemblyManager;return n?.has(t)?n.get(t)?.name??t:t}function Fc(e,t){let n=$(t,"assemblyNames");return Array.isArray(n)?n.filter(o=>typeof o=="string").map(o=>So(e,o)):[]}function Na(e,t,n){n.catch(o=>{console.error(`[GraphGenomeView] ${t}`,o),e.notifyError?.(`${t}: ${o}`,o)})}var Dc=1e3;function vo(e,t=Dc){let n=Math.max(0,Math.ceil((t-(e.end-e.start))/2));return{...e,start:Math.max(0,e.start-n),end:e.end+n}}function Pa(e,t){return t?e.map(n=>n.rank===0?{...n,sample:t.assemblyName,haplotype:void 0,refName:t.refName,start:t.start,end:t.end}:n):e}function dy({session:e,location:t,assembly:n,connectedViewId:o,tracks:s=[]}){let r=gt({views:e.views,connectedViewId:o,assemblyName:n}),a;return r?(Na(e,`Could not show ${n} ${Ee(t)}`,Promise.resolve(r.navToLocString(Xt(t),n))),a=r.id):a=e.addView("LinearGenomeView",{displayName:`${n} \u2014 ${Ee(t)}`,init:{assembly:n,loc:Xt(t),tracks:s}}).id,a}function uy({session:e,location:t,assembly:n,connectedViewId:o}){let s=gt({views:e.views,connectedViewId:o,assemblyName:n});return s&&e.addHighlight?.({refName:t.refName,start:t.start,end:t.end,assemblyName:n}),s!==void 0}function La(e,t){let n=t===void 0?void 0:e.tracks.find(o=>$(o,"trackId")===t);return n?Fc(e,n):[]}function py({session:e,contributors:t,trackId:n,graphTrackId:o}){let s=La(e,o),r=La(e,n),a=t.filter(d=>r.includes(d.sample)),i=a.length>=2?a:t,c={init:{views:i.map(d=>({assembly:d.sample,loc:Xt(d),...o!==void 0&&s.includes(d.sample)?{tracks:[o]}:{}})),tracks:n?i.slice(1).map(()=>[n]):[],collapseEmptyRows:!0}};e.launchView?Na(e,"Could not open the synteny view",e.launchView("LinearSyntenyView",c)):e.addView("LinearSyntenyView",c)}var Aa=Ra.views(e=>({get host(){let t;try{t=De(e)}catch{return}return js(t)?t:void 0}})).views(e=>({get pairedViewId(){return e.host?.id??e.connectedViewId}})).views(e=>({get contributingAssemblies(){let t=e.graph,n=t?ce(t):[];return t?Qr(t,{maxGap:n.length>0?mn(n):1/0}):[]}})).views(e=>({get assemblyResolver(){let{assemblyManager:t}=Q(e),n=e.sourceAdapter?.assemblyNameToPanSN,o=new Map(Object.entries(n??{}).map(([r,a])=>[a,r])),s=r=>r!==void 0&&t.has(r)?t.get(r)?.name??r:void 0;return r=>s(o.get(r))??s(r)},get geneTracksByAssembly(){let t=new Map;for(let n of Q(e).tracks){let o=$(n,"adapter").type;if(!ht.has(o))continue;let s={trackId:n.trackId,name:$(n,"name"),adapterType:o};for(let r of $(n,"assemblyNames")){let a=So(Q(e),r);t.set(a,[...t.get(a)??[],s])}}return new Map([...t].flatMap(([n,o])=>{let s=sn(o,"");return s?[[n,s]]:[]}))}})).views(e=>({get launchableAssemblies(){return es(Pa(e.contributingAssemblies,e.graphRegion),e.assemblyResolver)},get canHighlightInLinearView(){let t=e.graphRegion;return t!==void 0&&gt({views:[...Q(e).views],connectedViewId:e.pairedViewId,assemblyName:t.assemblyName})!==void 0},nodeLaunchTargets(t){let n=e.nodeById?.get(t),o=n?Jr(n):void 0,s=o?Te(e.assemblyResolver,o):void 0,r=e.graphRegion,a=r?e.nodeSpan(t):void 0,i=r&&a?{sample:r.assemblyName,haplotype:void 0,refName:r.refName,...a}:void 0;return{own:o&&s?{location:vo(o),assembly:s}:void 0,reference:r&&i?{location:vo(i),assembly:r.assemblyName}:void 0,highlight:r&&i?{location:i,assembly:r.assemblyName}:void 0}}}));var Ta=Aa.views(e=>({get walkStripShown(){return $n({walkStrip:e.walkStrip,mode:{drawsNodes:e.modeDrawsNodes},drawsPicture:!!e.layoutResult?.tubeMap||!!e.walkRowBars,walks:e.graph?.paths?.length??0,host:!!e.host})},get walkStripRows(){let t=this.walkStripShown?e.cutWalkRows:void 0;return t?{...t,rows:Be(t.rows,e.walkRowSamples)}:void 0},get walkStripFrame(){let t=this.walkStripRows;if(t)return Qe(t,{width:e.paneWidth})},get cutsWholeWalks(){return Fn(ne(e.chosenLayoutMode),{walkStrip:e.walkStrip,host:!!e.host})},get walkStripMarks(){let t=this.walkStripRows,n=e.hoveredNode??e.selectedNode,o=n===null?void 0:e.nodeById?.get(n);return t&&o&&e.graph?Dn(e.graph,[t.reference,...t.rows],o):[]},get walkStripLocator(){let t=e.stripHover?e.hoveredNode:null;return t===null?void 0:Ht(e.nodePositions?.[t],n=>({x:n.x*e.scaleX+e.translateX,y:n.y*e.scaleY+e.translateY}))}})).views(e=>({get walkGeneReads(){let t=e.walkRowBars??e.walkStripRows;if(!t||!e.showGenes)return;let n=[],o=0,s=0;for(let r of t.rows){if(!r.axis){s++;continue}let a=Te(e.assemblyResolver,{sample:r.sample,haplotype:r.haplotype===void 0?void 0:`${r.sample}#${r.haplotype}`}),i=a?e.geneTracksByAssembly.get(a):void 0;if(!a||!i){o++;continue}n.push({row:r.name,trackId:i.trackId,region:{assemblyName:a,refName:r.axis.contig,...Ln(r.axis,r.bp)}})}return{reads:n.slice(0,ao),gaps:{untracked:o,unplaced:s,unread:Math.max(0,n.length-ao)}}},get walkRowGeneGaps(){return this.walkGeneReads?.gaps},walkRowLaunchTarget(t,n=e.walkRowBars){let o=n?[n.reference,...n.rows][t]:void 0;if(!o?.axis)return;let s=o.haplotype===void 0?void 0:`${o.sample}#${o.haplotype}`,r=t===0?e.graphRegion?.assemblyName:Te(e.assemblyResolver,{sample:o.sample,haplotype:s});return{label:o.label,assembly:r,location:{sample:o.sample,haplotype:s,refName:o.axis.contig,...Ln(o.axis,o.bp)}}},get walkRowGenes(){let t=e.walkRowBars??e.walkStripRows;if(!t||!e.showGenes)return;let n=new Map(e.walkGeneFeatures??[]);return e.geneFeatures&&n.set(t.reference.name,e.geneFeatures),n.size?qo([t.reference,...t.rows],n):void 0}}));var Ea=Ta.views(e=>({get xIsReferenceBp(){return e.layoutResult?.referenceAxis===!0&&ne(e.drawnLayoutMode??e.chosenLayoutMode).cutMargins}})).views(e=>({get hostPlacesX(){let{host:t,graphRegion:n}=e;return t!==void 0&&t.initialized&&n!==void 0&&e.xIsReferenceBp&&!t.dynamicBlocks.contentBlocks.some(o=>o.refName===n.refName&&o.reversed)}})).views(e=>({get hostBpFrame(){let{host:t,graphRegion:n}=e;return t?.initialized&&n?Us(t,n):void 0}})).views(e=>({get hostFrame(){return e.hostPlacesX?e.hostBpFrame:void 0},get tubeMapPicture(){let t=e.layoutResult?.tubeMap;return t?Ft(t):void 0},get tubeMapReference(){let t=e.layoutResult?.tubeMap;return t?Ot(t):void 0},get tubeMapDeviations(){let t=e.layoutResult?.tubeMap;return t?.coarse?$t(t,t.coarse.deviations):[]},get tubeMapConnectedBoxes(){let t=this.tubeMapReference,{layoutResult:n}=e;return t&&!n?.referenceAxis&&!n?.tubeMapPanels?[...t.values()].flat():void 0}})).views(e=>({get tubeMapGenes(){let t=e.tubeMapReference;return e.showGenes&&!e.host&&t&&e.backboneGenes&&!e.layoutResult?.tubeMapPanels?Ar(t,e.backboneGenes):[]},get referenceStripApplies(){return!!e.host?.initialized&&!!e.layoutResult&&e.drawsNodes&&!e.hostPlacesX&&!e.facetPanels}})).views(e=>({get referenceStripBlocks(){let{graph:t}=e;if(!e.showReferenceStrip||!e.referenceStripApplies||!t)return[];let n=Yr(t,{colorScheme:e.effectiveColorScheme,referenceRamp:e.referenceRamp,walks:e.walkLift?.walks}),o=e.walkLift?void 0:e.openBubbleFocus;return o?n.map(s=>o.nodeIds.has(s.node)?s:{...s,colors:[Pe],faded:!0}):n}})).views(e=>({get referenceStripShown(){return e.referenceStripBlocks.length>0&&e.hostBpFrame!==void 0},get referenceStripOverhangs(){let t=e.hostBpFrame;if(!t||e.referenceStripBlocks.length===0)return!1;let{left:n,right:o}=Ur(e.referenceStripBlocks,t,e.paneWidth);return n>0||o>0},get referenceStripFaded(){return e.referenceStripBlocks.some(t=>t.faded)}})).views(e=>({get referenceStripLit(){if(!e.referenceStripShown)return;let t=r=>({x:r.x*e.scaleX+e.translateX,y:r.y*e.scaleY+e.translateY}),n=e.hoveredNode===null?e.hoveredBubble:null;if(n&&!n.offReference){let r=e.bubbleHalos.find(a=>Ct(a.bubble,n));return{start:n.start,end:n.end,anchor:r?t(r.labelAt):void 0}}let o=e.hoveredNode??e.selectedNode,s=o===null?void 0:e.nodeSpan(o);return s&&o!==null?{...s,anchor:Ht(e.nodePositions?.[o],t)}:void 0},referenceStripNodeAt(t,n){let o=e.hostBpFrame;return e.referenceStripShown&&o?zr(e.referenceStripBlocks,o,t,n):void 0},get paperCss(){return Js(e.darkMode?tn:en)},get referenceStripZonePx(){return e.referenceStripShown?jr:0}}));var w0=3e3,y0=350,x0=34;function Wc(e){let t=[0];for(let n=1;n<e.length;n++)t.push(t[n-1]+Math.hypot(e[n].x-e[n-1].x,e[n].y-e[n-1].y));return t}function Hc(e,t){if(e.length===1||t===1)return Array.from({length:t},()=>({...e[0]}));let n=Wc(e),o=n.at(-1),s=[],r=1;for(let a=0;a<t;a++){let i=o*a/(t-1);for(;r<e.length-1&&n[r]<i;)r++;let c=n[r]-n[r-1],d=c>0?(i-n[r-1])/c:0,l=e[r-1],p=e[r];s.push({x:l.x+(p.x-l.x)*d,y:l.y+(p.y-l.y)*d})}return s}var Xc=400,Ia=1.8,Vc=.1;function k0(e,t,n,o,s){let r=w=>({x:(w.x*t.scaleX+t.translateX-o.translateX)/o.scaleX,y:(w.y*t.scaleY+t.translateY-o.translateY)/o.scaleY}),a={};for(let[w,k]of Object.entries(n)){let S=e[w];S?.length&&k.length&&(a[w]=Hc(S.map(r),k.length))}let i=new Map,c=(w,k)=>{let S=i.get(w);S?S.push(k):i.set(w,[k])};for(let w of s){let{from:k,to:S}=w;if(k!==S&&n[k]?.length&&n[S]?.length){let P=fe(w);c(k,{id:S,side:P.to}),c(S,{id:k,side:P.from})}}let d=new Map,l=w=>d.get(w.id)??(w.side==="start"?a[w.id][0]:a[w.id].at(-1)),p=Object.keys(a),u=[];for(let w of p)for(let k of i.get(w)??[]){if(a[k.id]||d.has(k.id))continue;let S=i.get(k.id).find(P=>P.id===w);d.set(k.id,{...l(S)}),p.push(k.id),u.push(k.id)}let h=new Map(u.map((w,k)=>[w,k])),g=new Float64Array(u.map(w=>d.get(w).x)),b=new Float64Array(u.map(w=>d.get(w).y)),m=new Float64Array(u.length),f=new Float64Array(u.length),y=u.map((w,k)=>i.get(w).flatMap(S=>{let P=h.get(S.id);if(P===void 0){let T=l(S);return m[k]+=T.x,f[k]+=T.y,[]}return[P]})),x=u.map(w=>i.get(w).length);for(let w=0;w<Xc;w++){let k=0;for(let S=0;S<u.length;S++){let P=m[S],T=f[S];for(let j of y[S])P+=g[j],T+=b[j];let _=Ia*(P/x[S]-g[S]),H=Ia*(T/x[S]-b[S]);k=Math.max(k,Math.abs(_*o.scaleX)+Math.abs(H*o.scaleY)),g[S]+=_,b[S]+=H}if(k<Vc)break}u.forEach((w,k)=>{a[w]=n[w].map(()=>({x:g[k],y:b[k]}))});for(let[w,k]of Object.entries(n))a[w]??=k.map(S=>({...S}));return a}function jc(e,t){let n=0,o=1/0;return e.forEach((s,r)=>{let a=(s.x-t.x)**2+(s.y-t.y)**2;a<o&&(o=a,n=r)}),n}function M0(e,t,n,o){let s=(r,a)=>{let i=n[r],c=o[r];if(!i||!c||c.length===0)return{x:0,y:0};let d=jc(c,a);return{x:i[d].x-c[d].x,y:i[d].y-c[d].y}};return Object.fromEntries(Object.entries(e).map(([r,a])=>{let i=t[Number(r)],c=s(i?.from??"",a[0]),d=s(i?.to??"",a.at(-1));return[r,a.map((l,p)=>{let u=a.length>1?p/(a.length-1):0;return{x:l.x+c.x+(d.x-c.x)*u,y:l.y+c.y+(d.y-c.y)*u}})]}))}function Ba(e,t,{ids:n,alpha:o}){let s=(r,a)=>{for(let i=0;a&&i<a.count;i++){let c=r[a.start+i];c.color=Mn(c.color,o)}};for(let r of n)s(e.nodeStrokes,e.nodeStrokeRuns.get(r));t.forEach(({from:r,to:a},i)=>{(n.has(r)||n.has(a))&&(s(e.edgeCurves,e.edgeCurveRuns.get(i)),s(e.arrows,e.arrowRuns.get(i)))})}function S0(e){return e<.5?4*e*e*e:1-(-2*e+2)**3/2}function v0(e,t,n,o){for(let[s,r]of Object.entries(e)){let a=t[s],i=n[s];!a||!i||r.forEach((c,d)=>{c.x=o===1?i[d].x:a[d].x+(i[d].x-a[d].x)*o,c.y=o===1?i[d].y:a[d].y+(i[d].y-a[d].y)*o})}}var Ca=20,Yc=8,Uc=19,_a=qe+Uc,zc=48,Kc=.05,Ga=6;function qc(e){let t=e.length-Ga;return t>0?`${e.slice(0,Ga).join(", ")} and ${t} more`:e.join(", ")}function Jc(e){if(e.kind==="deletion")return`deletion of ${Ye(e.length)}`;if(e.kind==="substitution")return`substitution ${e.seq}`;let t=e.seq??"",n=t.length>Ca?`${t.slice(0,Ca)}\u2026`:t;return`insertion of ${Ye(t.length)} ${n}`.trim()}function Zc(e,t,n){let o={substitution:!1,insertion:!1,deletion:!1};if(e&&t&&Rr(t.yScale)){let s=3;for(let r of e.mismatches)if(!o[r.kind]&&Lr(r,{x:t.x,width:n})&&(o[r.kind]=!0,--s===0))break}return o}function Qc(e,t,n){if(!(!e||!t))return Lt(e.rowPx,e.barPx)?n:{untracked:0,unread:0,...n,crowded:!0}}var ox=Ea.views(e=>({get paneCeiling(){return Math.max(Qt,e.paneHeight??qs)},get fitRoom(){return e.host?this.canvasHeight:this.paneCeiling},get walkRowPitch(){let t=e.walkRowBars;if(!t)return;let n=this.fitRoom,o=(e.walkRowGroups?.sections.length??0)*Dr;return Nt(t.rows.length+1,n-this.fitPadTopBase-C-o)},get walkRowPlacement(){let t=this.walkRowPitch;return t?Vr(e.walkRowGroups?.sections??[],t.rowPx):void 0},get walkRowGeneKey(){return Qc(this.walkRowPitch,!!e.walkRowGenes?.size,e.walkRowGeneGaps)},get drawnRowLabels(){let t=this.walkRowPlacement,n=it(e.walkRowBars,e.layoutResult,this.walkRowPitch);return e.walkRowBars&&t?n.map((o,s)=>({...o,y:t.rowY(s)})):n},get fitPadLeft(){return Math.max(C,...this.drawnRowLabels.map(t=>Xo(t.label,0).x1+6))},get layoutBounds(){let t=e.layoutResult,n=e.walkRowBars,o=n&&t?.extent?_e(n,this.walkRowPitch):void 0;return t?rt(t,{region:e.graphRegion,extent:o&&{...o,maxY:o.maxY+(this.walkRowPlacement?.headersPx??0)}}):void 0},get hoveredWalkRowText(){let t=e.walkRowBars,n=e.hoveredWalkRow;if(!t||n===null||this.walkRowPitch?.readouts!==!1)return;let o=t.reference.name===n,s=o?t.reference:t.rows.find(r=>r.name===n);return s?{label:s.label,readout:zo(s,o?void 0:t.reference,t.unit,s.call)}:void 0},walkRowAt(t,n){let o=e.walkRowBars,s=this.walkRowPitch,r=this.walkRowPlacement;if(!o||!s||!r)return;let a=r.rowAt((n-e.translateY)/e.scaleY,o.rows.length+1),i=[o.reference,...o.rows][a],c=r.rowY(a)*e.scaleY+e.translateY,d=(t-e.translateX)/e.scaleX-o.origin;return i&&Math.abs(n-c)<=s.barPx/2+2&&d>=0&&d<=i.bp?a:void 0},get fitPadTopBase(){let t=Er(e.tubeMapGenes);return C+Math.max(0,t-1)*Tr+e.referenceStripZonePx},get legendRoom(){let t=this.layoutBounds,{width:n,height:o}=e.legendSize;if(!t||t.w<=0||n===0||e.facetPanels||e.tubeMapReads)return;if(e.hostPlacesX)return"top";let s=this.fitPadTopBase,r=this.fitRoom,a=l=>(e.paneWidth-this.fitPadLeft-l)/t.w,i=l=>e.pixelRows?t.h+l+C<=r?1/0:0:(r-l-C)/t.h,c=Math.min(a(n+2*ue),i(s));return Math.min(a(C),i(s+o+ue))>=c?"top":"right"},get fitPadTop(){return this.fitPadTopBase+(this.legendRoom==="top"?e.legendSize.height+ue:0)},get fitPadRight(){return this.legendRoom==="right"?Math.max(C,e.legendSize.width+2*ue):C},get minFitScale(){let t=this.layoutBounds,n=e.layoutResult,o=n?.tubeMap?.layout.tracks[0]?.width;return t&&t.h>0&&o&&!n.referenceAxis?Math.min(Zs/o,(this.paneCeiling-this.fitPadTop-C)/t.h):0},get facetSpec(){let{field:t,domain:n,columns:o}=e.facetSetting;return t===""?void 0:n.length===0&&o===void 0?t:{field:t,domain:[...n],...o===void 0?{}:{columns:o}}},get facetPlacement(){let t=e.facetPanels,{field:n,domain:o}=e.facetSetting;return t?It(t.map(s=>s.walks[0].name),e.hostPlacesX||n===""?"walk":n,o):void 0},facetGridIn(t){let n=this.facetPlacement,o=this.layoutBounds;return n&&o&&o.w>0?Tt({count:n.count,bounds:o,pixelRows:e.pixelRows,width:e.paneWidth,room:t,columns:e.hostPlacesX?1:n.columns??e.facetSetting.columns}):void 0},get facetGrid(){return this.facetGridIn(this.fitRoom-_a)},get tooltipRightPx(){let{width:t,height:n}=e.legendSize,o=ue+e.referenceStripZonePx+n;return!e.facetPanels&&t>0&&o>this.canvasHeight-zc?t+2*ue:Yc},get canvasHeight(){let t=this.layoutBounds,n=e.paneWidth-C-this.fitPadRight,o=this.paneCeiling;if(!t)return o;let s=this.facetGrid;if(s)return Math.max(Qt,s.total+_a);let r=Math.max(Qt,e.legendSize.height+2*ue+e.referenceStripZonePx);return e.pixelRows?Math.min(o,Math.max(r,t.h+this.fitPadTop+C)):t.w>0&&n>0?Math.min(o,Math.max(r,t.h*Math.max(n/t.w,this.minFitScale)+this.fitPadTop+C)):o},get viewBox(){let t=this.facetGrid;return t?{width:t.width,height:t.height}:{width:e.paneWidth,height:this.canvasHeight}},get fittedTransform(){let t=this.layoutBounds,n=this.facetGrid;return t?n?Ie(t,n.width,n.height,e.pixelRows,{padLeft:se,padTop:se,padRight:se,padBottom:se}):Ie(t,e.paneWidth,this.canvasHeight,e.pixelRows,{minScale:this.minFitScale,padLeft:this.fitPadLeft,padTop:this.fitPadTop,padRight:this.fitPadRight}):void 0}})).views(e=>({viewportToBuild(){return Un(oa(e),ta)},applySelection(t){let n=e.selectedNode;t.setNodeHighlights(n===null?new Map:new Map([[n,ea]]))},get hoverLayerNode(){let{litNode:t,selectedNode:n}=e;return t===n?null:t},get paintTransform(){let t=Cn();return{scaleX:e.scaleX*t,scaleY:e.scaleY*t,translateX:e.translateX*t,translateY:e.translateY*t,dpr:t}}})).views(e=>({paint(t){t.updateTransform(e.paintTransform),t.render(e.referenceStripShown?[0,0,0,0]:e.darkMode?tn:en)}})).views(e=>({buildDrawing(t,n){let{graph:o,nodeById:s,layoutResult:r,deletionDrawing:a}=e;if(!o||!s||!r||!a)return;pt(e.viewportDirty,e.positionsVersion);let i=xn(()=>e.viewportToBuild()),c=Rt({...tt(r,a,{drawsRows:!!e.walkRowBars}),graph:o,nodeById:s,colorScheme:e.effectiveColorScheme,contigThickness:e.contigThickness,connectorThickness:e.connectorThickness,drawPaths:n,nodeWidth:e.nodeWidth,highlight:t,axis:xn(()=>e.axisScale),linearLayout:e.linearLayout,viewportBounds:i,referenceRamp:e.referenceRamp,version:e.positionsVersion}),d=e.morphEntering;return d?.layout===r&&Ba(c,o.edges,d),{batch:c,viewportBounds:i}},get overlayLabels(){return hr(e)},hoveredOn(t){let n=e.hoveredNode,o=n?e.nodeById?.get(n):void 0;return o?wr(t,o.id,o.length)??"not on this walk":void 0},figureSpec(){let t=e.graphRegion,n=e.sourceAdapter,o=n?.assemblyNameToPanSN,s=t&&`${t.refName}:${t.start}-${t.end}`,r=Oe(e.sourceGfaLocation),a=n?.type==="GbzBaseSyntenyAdapter"?Oe(n.gbzDbLocation):void 0,i=r?{gfa:r,region:s}:a&&t&&s?{gbz:{db:a,index:Oe(n.haplotypeIndexLocation),region:s,haplotypes:e.cutHaplotypes?.map(u=>o?.[u]??u),referenceSample:n.referenceSample||o?.[t.assemblyName]||t.assemblyName,context:n.context,snarls:e.cutsWholeWalks?"overlapping":n.subgraphSnarls}}:void 0;if(!i)return;let c=e.showGenes?e.geneTrack:void 0,d=c?Q(e).tracks.find(u=>u.trackId===c.trackId):void 0,l=d?To($(d,"adapter"),"gffGzLocation"):void 0,p=l?.type==="Gff3TabixAdapter"?{file:Oe(l.gffGzLocation),index:Oe(l.index?.location),format:"gff3"}:void 0;return JSON.parse(JSON.stringify({...i,genes:p?.file&&p.index?p:void 0,referencePath:e.referencePath||void 0,layout:e.chosenLayoutMode,...Zn({engine:e.layoutEngine,quality:e.layoutQuality,linearLayout:e.linearLayout,bubbleSpread:e.bubbleSpread,showDeletionEdges:e.showDeletionEdges,colorScheme:e.chosenColorScheme,nodeWidth:e.nodeWidth,contigThickness:e.contigThickness,connectorThickness:e.connectorThickness,colorDomain:e.statedColorDomain}),walks:e.walkLayers.length?e.walkLayers.map(u=>u.color?u:u.walk):void 0,facet:e.walkLayers.length>1?e.facetSpec:void 0,walkStrip:e.walkStripShown||void 0,walkRowSamples:e.walkStripShown?e.walkRowSamples:void 0,width:e.paneWidth,height:e.paneCeiling}))},get figureUnavailable(){return e.layoutResult?e.walkRowGroups?"The SVG export cannot group walk rows yet: set Group by... to None first":e.drawsNodes||e.walkRowBars?void 0:`${ne(e.chosenLayoutMode).label} draws a picture of its own, which the SVG export does not`:"Nothing is drawn yet"},get figureSpecUnavailable(){return e.drawsNodes?this.figureSpec()?void 0:"bandage-figure reads a graph cut from a gbz-base track or a GFA url":`bandage-figure draws no ${ne(e.chosenLayoutMode).label} layout`},figure(){let{graph:t,layoutResult:n}=e;return t&&n&&!this.figureUnavailable?Jn(t,n,{width:e.paneWidth,height:e.paneCeiling,walks:e.walkLayers,facet:e.facetSpec,colorScheme:e.effectiveColorScheme,nodeWidth:e.nodeWidth,showDeletionEdges:e.showDeletionEdges,linearLayout:e.linearLayout,contigThickness:e.contigThickness,connectorThickness:e.connectorThickness,region:e.graphRegion,colorDomain:e.statedColorDomain,genes:e.showGenes?e.backboneGenes:void 0,walkRows:e.walkRowBars,walkRowPitch:e.walkRowPitch,rowGenes:e.walkRowGenes,rowGeneGaps:e.walkRowGeneGaps,walkStrip:e.walkStripRows&&{rows:e.walkStripRows,rowGenes:e.walkRowGenes,rowGeneGaps:e.walkRowGeneGaps},spec:this.figureSpecUnavailable?void 0:this.figureSpec()}):void 0},get tubeMapFrame(){let t=e.layoutResult?.tubeMap;return t?Jt(t,{scaleX:e.scaleX,translateX:e.translateX,scaleY:e.scaleY,translateY:e.translateY,usableHeight:e.canvasHeight-e.fitPadTop-C}):void 0}})).views(e=>({get tubeMapRulerBoxes(){let t=e.tubeMapReference;return t&&!e.hostPlacesX&&!e.layoutResult?.tubeMapPanels?Gn(t):void 0},get tubeMapPanelRulerBoxes(){let{layoutResult:t}=e,n=t?.tubeMapPanels?.at(-1);return n&&t?.referenceAxis&&!e.hostPlacesX?Gn(Ot(n.result.tubeMap)):void 0},get connectorZoneBottom(){let t=e.tubeMapPicture,n=e.tubeMapFrame;return t&&n?n.y(t.bounds.minY)-2:0},get tubeMapConnectors(){let t=e.tubeMapConnectedBoxes,n=e.tubeMapFrame,o=t&&n?e.hostBpFrame:void 0;return t&&n&&o?yr(t,s=>s*o.scale+o.translateX,n.x,e.paneWidth):[]},get tubeMapPanelPictures(){let t=e.layoutResult?.tubeMapPanels;if(!t)return;let n=new Set(e.hoveredRowWalks),o=e.tubeMapColoring,s=a=>{let i=a.paths??[];return(o?Wt(i,a.referencePath,o.valueOf,o.palette):Je(i,a.referencePath)).map((d,l)=>{let p=i[l].name;return n.size>0&&!n.has(p)&&W(p).name!==a.referencePath?Pe:d})},{field:r}=e.facetSetting;return t.map(a=>{let i=a.result.tubeMap,{graph:c,coarse:d}=i;return{panel:a,label:a.label??(r==="walk"?e.walkLabel(a.paths[0]):a.key),picture:Ft(i),tubeColors:s(c),nodeColors:e.tubeMapNodeColors?ut(c,e.effectiveColorScheme,e.referenceRamp):void 0,deviations:d?$t(i,d.deviations):[]}})}})).views(e=>({get hoveredMember(){let t=e.hoveredNode,n=t===null?void 0:e.hoverDrawing?.members.get(t);if(!n)return t;let o=e.hoveredAt,s=e.hoveredPanel,r=s===null?void 0:this.tubeMapPanelViews?.[s],a;return r?.panel.result.tubeMap.layout.nodes.forEach(c=>{c.name===t&&(a=c)}),(o&&r&&a?Or(n,c=>e.nodeSpan(c),r.frame.x(a.x),r.frame.x(a.x+a.pixelWidth),o.x):void 0)??n[0]},get tubeMapPanelHover(){let t=e.hoveredNode,n=e.tubeMapPanelPictures;if(t===null||!n)return;let o=this.hoveredMember??t;return n.map(({panel:s})=>{let r=s.result.tubeMap,a=Gr(r,o);return a?{box:a,...$r(r.graph,a)}:void 0})},get tubeMapPanelViews(){let t=e.tubeMapPanelPictures,n=e.layoutResult;if(!t||!n)return;let o=t.length*On,s=t.reduce((c,d)=>c+d.panel.height,0),r=e.canvasHeight-e.fitPadTop-C-o,a=e.scaleY*(n.referenceAxis&&s>0?Math.max(Kc,Math.min(1,r/s)):1),i=e.translateY;return t.map(c=>{let{panel:d}=c,l=d.result.extent?.minY??0,p=i,u=p+On;return i=u+d.height*a,{...c,frame:Jt(d.result.tubeMap,{scaleX:e.scaleX,translateX:e.translateX,scaleY:a,translateY:u-l*a,usableHeight:1/0}),titleTop:p,top:u,bottom:i}})}})).views(e=>({tubeMapPanelAt(t){let n=e.tubeMapPanelViews?.findIndex(o=>o.titleTop<=t&&t<=o.bottom)??-1;return n<0?null:n}})).views(e=>({paintHover(t,n){let o=e.tubeMapPicture,s=e.tubeMapFrame,r=e.hoverLayerNode;if(o&&s){let{ctx:a,canvas:i}=t,c=Cn();a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,i.width,i.height),a.setTransform(c,0,0,c,0,0);let d=e.tubeMapPanelViews;d?Fr(a,d,e.tubeMapPanelHover,{width:e.paneWidth,lit:r!==null}):vr(a,o,{...s,width:e.paneWidth,highlightNode:r}),kr(a,e.tubeMapConnectors,e.connectorZoneBottom,r),a.setTransform(1,0,0,1,0,0)}else t.uploadGeometry(n),t.setNodeHighlights(r===null?new Map:new Map([[r,so]])),t.setEdgeHighlight(e.hoveredEdge,so),t.updateTransform(e.paintTransform),t.renderHighlights()}})).views(e=>{let t=yt(()=>{let n=e.layoutResult,o=n?.tubeMapPanels!==void 0,s=o?[]:n?.tubeMap?.layout.reads??[],r=e.drawnGraph?.paths??[],a=e.tubeMapColoring;return{bundled:r.some(i=>i.members),values:a&&s.length===0?[...[...a.palette].map(([i,c])=>({value:i,color:c})),...a.unvalued?[{value:`${a.field}: none`,color:Br}]:[]]:void 0,roles:!(a&&s.length===0)&&(o||n?.tubeMap!==void 0&&(!!e.tubeMapNodeColors||s.length===0&&(!Ne(r.length)||r.some(i=>i.members)))),haplotypeTube:!o&&e.tubeMapNodeColors?Dt[0]:Ir,logWidths:n?.tubeMap!==void 0&&!n.referenceAxis,foldBp:e.tubeMapDeviations.length>0?e.tubeMapFold:void 0,forwardReads:s.some(i=>!i.is_reverse),reverseReads:s.some(i=>i.is_reverse),...Zc(o?void 0:e.tubeMapPicture,e.tubeMapFrame,e.paneWidth)}},{equals:(n,o)=>JSON.stringify(n)===JSON.stringify(o)});return{get tubeMapKeys(){return t.get()}}}).views(e=>({tubeMapUnder(t){let n=e.tubeMapPanelViews;if(n){let a=e.tubeMapPanelAt(t),i=a===null?void 0:n[a];return i&&{drawing:i.panel.result.tubeMap,...i}}let o=e.layoutResult?.tubeMap,s=e.tubeMapPicture,r=e.tubeMapFrame;return o&&s&&r?{drawing:o,picture:s,frame:r}:void 0}})).views(e=>({tubeMapNodeAt(t,n){let o=e.tubeMapUnder(n);return(o?oo(o.drawing,o.frame,t,n):null)??xr(e.tubeMapConnectors,e.connectorZoneBottom,t,n)??null},tubeAt(t,n){let o=e.tubeMapUnder(n);if(!o)return null;let{picture:s,frame:r}=o,a=Pr(s,r,t,n),i=a?.readId??Nr(s,r,t,n);return i===void 0?null:{track:i,mismatch:a}},get hoveredTubeText(){let t=e.hoveredTube,n=e.layoutResult?.tubeMap?.layout,o=t&&n?.reads.find(a=>a.id===t.track);if(t&&o){let a=o.mapping_quality;return{label:o.name??"read",readout:[`MAPQ ${a??"unknown"}`,`${o.is_reverse?"reverse":"forward"} strand`,...t.mismatch?[Jc(t.mismatch)]:[]].join(", ")}}let s=t?e.hoverGraph?.paths?.[t.track]:void 0,r=s?.members;return r?{label:`${r.length} haplotypes`,readout:`one route: ${qc(r.map(a=>e.walkLabel(a)))}`}:s?{label:e.walkLabel(s.name),readout:"haplotype"}:void 0}}));var Oa=q(ee("path",{d:"M9.01 14H2v2h7.01v3L13 15l-3.99-4zm5.98-1v-3H22V8h-7.01V5L11 9z"}),"CompareArrows");var $a=q(ee("path",{d:"M17 5h-2V3h2zm-2 16h2v-2.59L19.59 21 21 19.59 18.41 17H21v-2h-6zm4-12h2V7h-2zm0 4h2v-2h-2zm-8 8h2v-2h-2zM7 5h2V3H7zM3 17h2v-2H3zm2 4v-2H3c0 1.1.9 2 2 2M19 3v2h2c0-1.1-.9-2-2-2m-8 2h2V3h-2zM3 9h2V7H3zm4 12h2v-2H7zm-4-8h2v-2H3zm0-8h2V3c-1.1 0-2 .9-2 2"}),"HighlightAlt");var Ro=q(ee("path",{d:"M3 16h5v-2H3zm6.5 0h5v-2h-5zm6.5 0h5v-2h-5zM3 20h2v-2H3zm4 0h2v-2H7zm4 0h2v-2h-2zm4 0h2v-2h-2zm4 0h2v-2h-2zM3 12h8v-2H3zm10 0h8v-2h-8zM3 4v4h18V4z"}),"LineStyle");var ed="Linear genome view",td="Linear synteny view",nd="No synteny track in this session aligns these assemblies";function Fa({label:e,icon:t,entries:n,entryLabel:o,onSelect:s,disabledHelpText:r,nameTheOnlyEntry:a=!0}){let[i]=n,c=r?[{label:e,icon:t,disabled:!0,disabledHelpText:r,onClick:()=>{}}]:[];return n.length===0?c:n.length===1&&i?[{label:a?`${e} \u2014 ${o(i)}`:e,icon:t,onClick:s(i)}]:[{label:e,icon:t,type:"subMenu",subMenu:n.map(d=>({label:o(d),onClick:s(d)}))}]}function wx({contributors:e,syntenyTracks:t,onShowLinear:n,onShowSynteny:o}){let s=t[0]?.coverage??e.length;return[...Fa({label:ed,icon:Ro,entries:e,entryLabel:r=>`${r.sample} ${Ee(r)}`,onSelect:r=>()=>{n({location:r,assembly:r.sample})}}),...e.length>=2?Fa({label:`${td} (${s} assemblies)`,icon:Oa,entries:t,entryLabel:r=>r.coverage<s?`${r.name} (${r.coverage} of ${s})`:r.name,nameTheOnlyEntry:!1,disabledHelpText:nd,onSelect:r=>()=>{o(r.trackId)}}):[]]}function yx({own:e,reference:t,highlight:n,onShowLinear:o,onHighlight:s}){let r=[e?{label:`Open in ${e.assembly} \u2014 ${Ee(e.location)}`,target:e}:void 0,t&&t.assembly!==e?.assembly?{label:`Open in ${t.assembly} \u2014 around this node`,target:t}:void 0].filter(a=>a!==void 0);return[...s&&n?[{label:`Highlight in ${n.assembly}`,icon:$a,onClick:()=>{s(n)}}]:[],...r.map(({label:a,target:i})=>({label:a,icon:Ro,onClick:()=>{o(i)}}))]}var Sx=q(ee("path",{d:"M19 15.18V7c0-2.21-1.79-4-4-4s-4 1.79-4 4v10c0 1.1-.9 2-2 2s-2-.9-2-2V8.82C8.16 8.4 9 7.3 9 6c0-1.66-1.34-3-3-3S3 4.34 3 6c0 1.3.84 2.4 2 2.82V17c0 2.21 1.79 4 4 4s4-1.79 4-4V7c0-1.1.9-2 2-2s2 .9 2 2v8.18c-1.16.41-2 1.51-2 2.82 0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82"}),"Route");var Nx=q(ee("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"}),"Settings");var Ex=q(ee("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"}),"Visibility");export{q as a,Fn as b,Ja as c,Za as d,Qa as e,Wn as f,Hn as g,Xi as h,_e as i,Kt as j,ic as k,ne as l,Ls as m,Ex as n,gi as o,bi as p,C as q,jt as r,xs as s,ki as t,Mi as u,hh as v,Zt as w,Qs as x,Lh as y,Nh as z,Ph as A,Ah as B,Th as C,Eh as D,Ih as E,Bh as F,mc as G,pt as H,Ch as I,_h as J,Gh as K,oa as L,Oh as M,Ff as N,uc as O,Df as P,qr as Q,rw as R,ya as S,uw as T,le as U,fw as V,bw as W,Jr as X,Ee as Y,$c as Z,So as _,Fc as $,dy as aa,uy as ba,py as ca,w0 as da,y0 as ea,x0 as fa,k0 as ga,M0 as ha,S0 as ia,v0 as ja,Yc as ka,Uc as la,_a as ma,ox as na,Ro as oa,wx as pa,yx as qa,Sx as ra,Nx as sa};
4
- //# sourceMappingURL=chunk-STTY74OG.js.map
4
+ //# sourceMappingURL=chunk-5Q2F5SF4.js.map