@molgenis/vip-report-template 2.7.3 → 3.0.0-beta

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 (593) hide show
  1. package/.eslintignore +4 -0
  2. package/.eslintrc.js +16 -22
  3. package/.gitattributes +1 -0
  4. package/.husky/pre-commit +4 -0
  5. package/.prettierignore +4 -0
  6. package/.prettierrc.json +3 -0
  7. package/.travis.yml +14 -11
  8. package/README.md +7 -29
  9. package/index.html +12 -0
  10. package/package.json +42 -55
  11. package/src/Api.ts +12 -0
  12. package/src/App.tsx +101 -0
  13. package/src/__tests__/decisionTreeUtils.test.ts +75 -0
  14. package/src/__tests__/field.test.ts +107 -0
  15. package/src/__tests__/query.test.ts +99 -0
  16. package/src/__tests__/sortUtils.test.ts +83 -0
  17. package/src/__tests__/utils.test.ts +24 -0
  18. package/src/__tests__/viewUtils.test.ts +125 -0
  19. package/src/assets/sass/main.scss +113 -0
  20. package/src/components/Abbr.tsx +20 -0
  21. package/src/components/Anchor.tsx +12 -0
  22. package/src/components/Breadcrumb.tsx +33 -0
  23. package/src/components/Checkbox.tsx +32 -0
  24. package/src/components/ConsequenceTable.tsx +38 -0
  25. package/src/components/DatasetDropdown.tsx +44 -0
  26. package/src/components/Error.tsx +9 -0
  27. package/src/components/FieldHeader.tsx +26 -0
  28. package/src/components/GenomeBrowser.tsx +114 -0
  29. package/src/components/InfoCollapsablePane.tsx +68 -0
  30. package/src/components/Loader.tsx +5 -0
  31. package/src/components/SampleTable.tsx +118 -0
  32. package/src/components/SearchBox.tsx +44 -0
  33. package/src/components/Sort.tsx +58 -0
  34. package/src/components/VariantInfoNestedTable.tsx +117 -0
  35. package/src/components/VariantInfoTable.tsx +30 -0
  36. package/src/components/VariantSampleTable.tsx +56 -0
  37. package/src/components/VariantTable.tsx +71 -0
  38. package/src/components/VariantsSampleTable.tsx +87 -0
  39. package/src/components/VariantsTable.tsx +135 -0
  40. package/src/components/VcfHeaderRow.tsx +15 -0
  41. package/src/components/filter/Filter.tsx +34 -0
  42. package/src/components/filter/FilterCategorical.tsx +66 -0
  43. package/src/components/filter/FilterIntegerDp.tsx +24 -0
  44. package/src/components/filter/FilterIntegerVid.tsx +28 -0
  45. package/src/components/filter/FilterIntegerVim.tsx +24 -0
  46. package/src/components/filter/Filters.tsx +27 -0
  47. package/src/components/filter/InfoFilter.tsx +36 -0
  48. package/src/components/filter/InfoFilters.tsx +32 -0
  49. package/src/components/filter/SampleFilters.tsx +44 -0
  50. package/src/components/filter/SamplesFilters.tsx +31 -0
  51. package/src/components/record/Allele.tsx +38 -0
  52. package/src/components/record/AlleleBreakend.tsx +5 -0
  53. package/src/components/record/AlleleMissing.tsx +5 -0
  54. package/src/components/record/AlleleNucs.tsx +49 -0
  55. package/src/components/record/AlleleSymbolic.tsx +5 -0
  56. package/src/components/record/Alt.tsx +17 -0
  57. package/src/components/record/Chrom.tsx +5 -0
  58. package/src/components/record/Filter.tsx +9 -0
  59. package/src/components/record/Format.tsx +31 -0
  60. package/src/components/record/Id.tsx +9 -0
  61. package/src/components/record/Info.tsx +53 -0
  62. package/src/components/record/Pager.tsx +64 -0
  63. package/src/components/record/Pos.tsx +5 -0
  64. package/src/components/record/Qual.tsx +5 -0
  65. package/src/components/record/RecordDownload.tsx +36 -0
  66. package/src/components/record/Ref.tsx +6 -0
  67. package/src/components/record/field/Field.tsx +20 -0
  68. package/src/components/record/field/FieldMultipleValue.tsx +22 -0
  69. package/src/components/record/field/FieldSingleValue.tsx +35 -0
  70. package/src/components/record/field/FieldValueCharacter.tsx +11 -0
  71. package/src/components/record/field/FieldValueFlag.tsx +11 -0
  72. package/src/components/record/field/FieldValueFloat.tsx +17 -0
  73. package/src/components/record/field/FieldValueInteger.tsx +11 -0
  74. package/src/components/record/field/FieldValueString.tsx +14 -0
  75. package/src/components/record/format/GenotypeField.tsx +63 -0
  76. package/src/components/record/info/ClinVar.tsx +37 -0
  77. package/src/components/record/info/Consequence.tsx +19 -0
  78. package/src/components/record/info/Gene.tsx +11 -0
  79. package/src/components/record/info/GnomAD.tsx +29 -0
  80. package/src/components/record/info/Hgvs.tsx +18 -0
  81. package/src/components/record/info/HpoTerm.tsx +12 -0
  82. package/src/components/record/info/PubMed.tsx +19 -0
  83. package/src/components/tree/DecisionTreeBoolMultiQuery.tsx +21 -0
  84. package/src/components/tree/DecisionTreeBoolQuery.tsx +22 -0
  85. package/src/components/tree/DecisionTreeNode.tsx +64 -0
  86. package/src/components/tree/DecisionTreeNodeBool.tsx +35 -0
  87. package/src/components/tree/DecisionTreeNodeBoolMulti.tsx +32 -0
  88. package/src/components/tree/DecisionTreeNodeCategorical.tsx +32 -0
  89. package/src/components/tree/DecisionTreeNodeExists.tsx +25 -0
  90. package/src/components/tree/DecisionTreeNodeLeaf.tsx +6 -0
  91. package/src/components/tree/DecisionTreeOutcomeNode.tsx +11 -0
  92. package/src/components/tree/DecisionTreePath.tsx +27 -0
  93. package/src/igv.d.ts +4 -1
  94. package/src/index.tsx +40 -0
  95. package/src/mocks/GRCh37/alignment.bam.blob +0 -0
  96. package/src/mocks/GRCh37/decisionTree.json +354 -0
  97. package/src/mocks/GRCh37/fasta/1-10042288-10042788.fasta.gz.blob +0 -0
  98. package/src/mocks/GRCh37/fasta/1-152520538-152521038.fasta.gz.blob +0 -0
  99. package/src/mocks/GRCh37/fasta/1-16375333-16375833.fasta.gz.blob +0 -0
  100. package/src/mocks/GRCh37/fasta/1-16376162-16376662.fasta.gz.blob +0 -0
  101. package/src/mocks/GRCh37/fasta/1-17348965-17349469.fasta.gz.blob +0 -0
  102. package/src/mocks/GRCh37/fasta/1-17348969-17349469.fasta.gz.blob +0 -0
  103. package/src/mocks/GRCh37/fasta/1-17354844-17355344.fasta.gz.blob +0 -0
  104. package/src/mocks/GRCh37/fasta/10-126091249-126091749.fasta.gz.blob +0 -0
  105. package/src/mocks/GRCh37/fasta/11-134013975-134014475.fasta.gz.blob +0 -0
  106. package/src/mocks/GRCh37/fasta/13-77569878-77570378.fasta.gz.blob +0 -0
  107. package/src/mocks/GRCh37/fasta/14-105167610-105168110.fasta.gz.blob +0 -0
  108. package/src/mocks/GRCh37/fasta/14-89307588-89308088.fasta.gz.blob +0 -0
  109. package/src/mocks/GRCh37/fasta/14-89309945-89310445.fasta.gz.blob +0 -0
  110. package/src/mocks/GRCh37/fasta/14-89336157-89336657.fasta.gz.blob +0 -0
  111. package/src/mocks/GRCh37/fasta/17-29555814-29556314.fasta.gz.blob +0 -0
  112. package/src/mocks/GRCh37/fasta/17-29585172-29585672.fasta.gz.blob +0 -0
  113. package/src/mocks/GRCh37/fasta/17-29663629-29664129.fasta.gz.blob +0 -0
  114. package/src/mocks/GRCh37/fasta/17-29675976-29676476.fasta.gz.blob +0 -0
  115. package/src/mocks/GRCh37/fasta/17-29683733-29684233.fasta.gz.blob +0 -0
  116. package/src/mocks/GRCh37/fasta/19-11215896-11216396.fasta.gz.blob +0 -0
  117. package/src/mocks/GRCh37/fasta/19-11223801-11224301.fasta.gz.blob +0 -0
  118. package/src/mocks/GRCh37/fasta/19-17449149-17449649.fasta.gz.blob +0 -0
  119. package/src/mocks/GRCh37/fasta/19-17451747-17452247.fasta.gz.blob +0 -0
  120. package/src/mocks/GRCh37/fasta/2-47635417-47635917.fasta.gz.blob +0 -0
  121. package/src/mocks/GRCh37/fasta/20-62326742-62327242.fasta.gz.blob +0 -0
  122. package/src/mocks/GRCh37/fasta/22-50627343-50627843.fasta.gz.blob +0 -0
  123. package/src/mocks/GRCh37/fasta/22-50721296-50721796.fasta.gz.blob +0 -0
  124. package/src/mocks/GRCh37/fasta/4-106320044-106320544.fasta.gz.blob +0 -0
  125. package/src/mocks/GRCh37/fasta/7-42017061-42017561.fasta.gz.blob +0 -0
  126. package/src/mocks/GRCh37/fasta/7-42064707-42065207.fasta.gz.blob +0 -0
  127. package/src/mocks/GRCh37/fasta/8-145140250-145140750.fasta.gz.blob +0 -0
  128. package/src/mocks/GRCh37/fasta/8-61764893-61765393.fasta.gz.blob +0 -0
  129. package/src/mocks/GRCh37/fasta/9-107546383-107546883.fasta.gz.blob +0 -0
  130. package/src/mocks/GRCh37/fasta/9-107584614-107585114.fasta.gz.blob +0 -0
  131. package/src/mocks/GRCh37/fasta/MT-15076-15576.fasta.gz.blob +0 -0
  132. package/src/mocks/GRCh37/fasta/X-48932771-48933271.fasta.gz.blob +0 -0
  133. package/src/mocks/GRCh37/fasta/Y-2655391-2655891.fasta.gz.blob +0 -0
  134. package/src/mocks/GRCh37/genes.txt.gz.blob +0 -0
  135. package/src/mocks/GRCh37/static.ts +192 -0
  136. package/src/mocks/GRCh37/vcf/family.vcf.blob +104 -0
  137. package/src/mocks/GRCh37/vcf/no_vep.vcf.blob +61 -0
  138. package/src/mocks/GRCh37/vcf/samples_0.vcf.blob +93 -0
  139. package/src/mocks/GRCh37/vcf/samples_1.vcf.blob +93 -0
  140. package/src/mocks/GRCh37/vcf/samples_100.vcf.blob +93 -0
  141. package/src/mocks/GRCh38/alignment.bam.blob +0 -0
  142. package/src/mocks/GRCh38/decisionTree.json +369 -0
  143. package/src/mocks/GRCh38/fasta/chr1-152548062-152548562.fasta.gz.blob +0 -0
  144. package/src/mocks/GRCh38/fasta/chr1-16049667-16050167.fasta.gz.blob +0 -0
  145. package/src/mocks/GRCh38/fasta/chr1-17022474-17022974.fasta.gz.blob +0 -0
  146. package/src/mocks/GRCh38/fasta/chr1-9982230-9982730.fasta.gz.blob +0 -0
  147. package/src/mocks/GRCh38/fasta/chr10-124402680-124403180.fasta.gz.blob +0 -0
  148. package/src/mocks/GRCh38/fasta/chr11-134144080-134144580.fasta.gz.blob +0 -0
  149. package/src/mocks/GRCh38/fasta/chr13-76995743-76996243.fasta.gz.blob +0 -0
  150. package/src/mocks/GRCh38/fasta/chr14-104701273-104701773.fasta.gz.blob +0 -0
  151. package/src/mocks/GRCh38/fasta/chr14-88869813-88870313.fasta.gz.blob +0 -0
  152. package/src/mocks/GRCh38/fasta/chr17-31228796-31229296.fasta.gz.blob +0 -0
  153. package/src/mocks/GRCh38/fasta/chr17-31336611-31337111.fasta.gz.blob +0 -0
  154. package/src/mocks/GRCh38/fasta/chr19-11105220-11105720.fasta.gz.blob +0 -0
  155. package/src/mocks/GRCh38/fasta/chr19-17340938-17341438.fasta.gz.blob +0 -0
  156. package/src/mocks/GRCh38/fasta/chr2-47408278-47408778.fasta.gz.blob +0 -0
  157. package/src/mocks/GRCh38/fasta/chr20-63695389-63695889.fasta.gz.blob +0 -0
  158. package/src/mocks/GRCh38/fasta/chr22-50188914-50189414.fasta.gz.blob +0 -0
  159. package/src/mocks/GRCh38/fasta/chr22-50282867-50283367.fasta.gz.blob +0 -0
  160. package/src/mocks/GRCh38/fasta/chr4-105398887-105399387.fasta.gz.blob +0 -0
  161. package/src/mocks/GRCh38/fasta/chr7-41977462-41977962.fasta.gz.blob +0 -0
  162. package/src/mocks/GRCh38/fasta/chr7-42025108-42025608.fasta.gz.blob +0 -0
  163. package/src/mocks/GRCh38/fasta/chr8-144085347-144085847.fasta.gz.blob +0 -0
  164. package/src/mocks/GRCh38/fasta/chr8-60852334-60852834.fasta.gz.blob +0 -0
  165. package/src/mocks/GRCh38/fasta/chr9-104784102-104784602.fasta.gz.blob +0 -0
  166. package/src/mocks/GRCh38/fasta/chrM-15075-15575.fasta.gz.blob +0 -0
  167. package/src/mocks/GRCh38/fasta/chrX-49075112-49075612.fasta.gz.blob +0 -0
  168. package/src/mocks/GRCh38/fasta/chrY-2787350-2787850.fasta.gz.blob +0 -0
  169. package/src/mocks/GRCh38/genes.txt.gz.blob +0 -0
  170. package/src/mocks/GRCh38/static.ts +170 -0
  171. package/src/mocks/GRCh38/vcf/family.vcf.blob +270 -0
  172. package/src/mocks/GRCh38/vcf/no_vep.vcf.blob +238 -0
  173. package/src/mocks/GRCh38/vcf/samples_0.vcf.blob +265 -0
  174. package/src/mocks/GRCh38/vcf/samples_1.vcf.blob +266 -0
  175. package/src/mocks/GRCh38/vcf/samples_100.vcf.blob +266 -0
  176. package/src/mocks/MockApiClient.ts +375 -0
  177. package/src/mocks/static.ts +1636 -0
  178. package/src/mocks/utils.ts +16 -0
  179. package/src/store/index.tsx +163 -0
  180. package/src/utils/ApiUtils.ts +253 -0
  181. package/src/utils/decisionTreeUtils.ts +14 -0
  182. package/src/utils/field.ts +49 -0
  183. package/src/utils/query.ts +130 -0
  184. package/src/utils/sample.ts +5 -0
  185. package/src/utils/sortUtils.ts +65 -0
  186. package/src/utils/utils.ts +3 -0
  187. package/src/utils/viewUtils.ts +38 -0
  188. package/src/views/Home.tsx +121 -0
  189. package/src/views/Sample.tsx +26 -0
  190. package/src/views/SampleVariant.tsx +115 -0
  191. package/src/views/SampleVariantConsequence.tsx +105 -0
  192. package/src/views/SampleVariants.tsx +244 -0
  193. package/src/views/Samples.tsx +57 -0
  194. package/src/views/Variant.tsx +63 -0
  195. package/src/views/VariantConsequence.tsx +69 -0
  196. package/src/views/Variants.tsx +123 -0
  197. package/src/views/data/SampleData.tsx +11 -0
  198. package/src/views/data/SampleVariantConsequenceData.tsx +12 -0
  199. package/src/views/data/SampleVariantData.tsx +13 -0
  200. package/src/views/data/VariantConsequenceData.tsx +9 -0
  201. package/src/views/data/VariantData.tsx +12 -0
  202. package/tsconfig.json +9 -39
  203. package/vite.config.ts +18 -0
  204. package/.browserslistrc +0 -3
  205. package/.env +0 -2
  206. package/.prettierrc +0 -5
  207. package/.scannerwork/.sonar_lock +0 -0
  208. package/.scannerwork/css-bundle/stylelintconfig.json +0 -1
  209. package/.scannerwork/report-task.txt +0 -8
  210. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_App_vue_1_1_P1_ENTRY.ucfg +0 -0
  211. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Alerts_vue_1_1_P1_ENTRY.ucfg +0 -0
  212. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Allele_vue_1_1_P1_ENTRY.ucfg +0 -0
  213. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Anchor_vue_1_1_P1_ENTRY.ucfg +0 -0
  214. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_AnnotationsNav_vue_1_1_P1_ENTRY.ucfg +0 -0
  215. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Gene_vue_1_1_P1_ENTRY.ucfg +0 -0
  216. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_GenomeBrowser_vue_1_1_P1_ENTRY.ucfg +0 -0
  217. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Genotype_vue_1_1_P1_ENTRY.ucfg +0 -0
  218. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Identifiers_vue_1_1_P1_ENTRY.ucfg +0 -0
  219. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_InfoButton_vue_1_1_P1_ENTRY.ucfg +0 -0
  220. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_NavigationBar_vue_1_1_P1_ENTRY.ucfg +0 -0
  221. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_PubMedAnchor_vue_1_1_P1_ENTRY.ucfg +0 -0
  222. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordCommonDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
  223. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
  224. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoDetailsItemMultiline_vue_1_1_P1_ENTRY.ucfg +0 -0
  225. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoDetailsItemValue_vue_1_1_P1_ENTRY.ucfg +0 -0
  226. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoDetailsItem_vue_1_1_P1_ENTRY.ucfg +0 -0
  227. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
  228. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoNestedDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
  229. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoUnnestedDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
  230. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordSampleDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
  231. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordTableControls_vue_1_1_P1_ENTRY.ucfg +0 -0
  232. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordTable_vue_1_1_P1_ENTRY.ucfg +0 -0
  233. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SampleDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
  234. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SampleInfo_vue_1_1_P1_ENTRY.ucfg +0 -0
  235. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SampleNavigation_vue_1_1_P1_ENTRY.ucfg +0 -0
  236. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SamplePedigree_vue_1_1_P1_ENTRY.ucfg +0 -0
  237. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SamplePheno_vue_1_1_P1_ENTRY.ucfg +0 -0
  238. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SampleReport_vue_1_1_P1_ENTRY.ucfg +0 -0
  239. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_TreeVisualisation_vue_1_1_P1_ENTRY.ucfg +0 -0
  240. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_annotation_AnnotationControl_vue_1_1_P1_ENTRY.ucfg +0 -0
  241. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_annotation_ClassificationAnnotation_vue_1_1_P1_ENTRY.ucfg +0 -0
  242. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_annotation_GeneMatchAnnotation_vue_1_1_P1_ENTRY.ucfg +0 -0
  243. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_annotation_NotesAnnotation_vue_1_1_P1_ENTRY.ucfg +0 -0
  244. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_globals_filters_ts_1_1_P1_ENTRY.ucfg +0 -0
  245. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_globals_utils_ts_1_1_P1_ENTRY.ucfg +0 -0
  246. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_store_actions_ts_1_1_P1_ENTRY.ucfg +0 -0
  247. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_store_getters_ts_1_1_P1_ENTRY.ucfg +0 -0
  248. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_store_mutations_ts_1_1_P1_ENTRY.ucfg +0 -0
  249. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_store_state_ts_1_1_P1_ENTRY.ucfg +0 -0
  250. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_Alert_ts_1_1_P1_ENTRY.ucfg +0 -0
  251. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_Annotations_ts_1_1_P1_ENTRY.ucfg +0 -0
  252. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_Consequence_ts_1_1_P1_ENTRY.ucfg +0 -0
  253. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_Gene_ts_1_1_P1_ENTRY.ucfg +0 -0
  254. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_GenomeBrowserDb_ts_1_1_P1_ENTRY.ucfg +0 -0
  255. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_State_ts_1_1_P1_ENTRY.ucfg +0 -0
  256. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_Variant_ts_1_1_P1_ENTRY.ucfg +0 -0
  257. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_utils_treeBuilder_ts_1_1_P1_ENTRY.ucfg +0 -0
  258. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_utils_treeDrawer_ts_1_1_P1_ENTRY.ucfg +0 -0
  259. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_views_About_vue_1_1_P1_ENTRY.ucfg +0 -0
  260. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_views_DecisionTreeViewer_vue_1_1_P1_ENTRY.ucfg +0 -0
  261. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_views_Samples_vue_1_1_P1_ENTRY.ucfg +0 -0
  262. package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_views_VcfViewer_vue_1_1_P1_ENTRY.ucfg +0 -0
  263. package/.scannerwork/ucfg2/js/src_App_vue_27_16_FE_145_0.ucfg +0 -0
  264. package/.scannerwork/ucfg2/js/src_components_Allele_vue_26_9_FE_40_0.ucfg +0 -0
  265. package/.scannerwork/ucfg2/js/src_components_Allele_vue_38_18_FE_41_bas.ucfg +0 -0
  266. package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_29_19_FE_90_0.ucfg +0 -0
  267. package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_32_20_FE_91_0.ucfg +0 -0
  268. package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_36_24_A_65_0.ucfg +0 -0
  269. package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_44_25_A_66_eve.ucfg +0 -0
  270. package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_55_20_FE_92_0.ucfg +0 -0
  271. package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_61_20_FE_93_0.ucfg +0 -0
  272. package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_138_19_FE_28_new.ucfg +0 -0
  273. package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_19_7_FE_22_0.ucfg +0 -0
  274. package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_26_21_FE_23_0.ucfg +0 -0
  275. package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_29_30_FE_24_con.ucfg +0 -0
  276. package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_32_30_FE_25_rec.ucfg +0 -0
  277. package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_47_30_FE_26_0.ucfg +0 -0
  278. package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_52_30_FE_27_rec.ucfg +0 -0
  279. package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_73_26_A_26_sam.ucfg +0 -0
  280. package/.scannerwork/ucfg2/js/src_components_Genotype_vue_39_17_FE_86_0.ucfg +0 -0
  281. package/.scannerwork/ucfg2/js/src_components_Genotype_vue_46_21_FE_87_0.ucfg +0 -0
  282. package/.scannerwork/ucfg2/js/src_components_Genotype_vue_49_48_A_33_a_b.ucfg +0 -0
  283. package/.scannerwork/ucfg2/js/src_components_RecordCommonDetails_vue_80_11_FE_119_0.ucfg +0 -0
  284. package/.scannerwork/ucfg2/js/src_components_RecordCommonDetails_vue_86_10_FE_120_0.ucfg +0 -0
  285. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetailsItemValue_vue_114_23_FE_34_0.ucfg +0 -0
  286. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetailsItemValue_vue_123_13_FE_35_val.ucfg +0 -0
  287. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetailsItemValue_vue_151_16_FE_36_val.ucfg +0 -0
  288. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetailsItemValue_vue_94_19_FE_32_0.ucfg +0 -0
  289. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetailsItemValue_vue_99_22_FE_33_0.ucfg +0 -0
  290. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_32_23_FE_99_0.ucfg +0 -0
  291. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_33_68_A_68_inf.ucfg +0 -0
  292. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_37_21_FE_100_0.ucfg +0 -0
  293. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_38_66_A_69_inf.ucfg +0 -0
  294. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_44_17_FE_101_thi_tha.ucfg +0 -0
  295. package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_47_18_FE_102_met.ucfg +0 -0
  296. package/.scannerwork/ucfg2/js/src_components_RecordInfoNestedDetails_vue_36_11_FE_29_0.ucfg +0 -0
  297. package/.scannerwork/ucfg2/js/src_components_RecordInfoNestedDetails_vue_52_10_FE_30_0.ucfg +0 -0
  298. package/.scannerwork/ucfg2/js/src_components_RecordInfoNestedDetails_vue_57_12_FE_31_ind.ucfg +0 -0
  299. package/.scannerwork/ucfg2/js/src_components_RecordInfoUnnestedDetails_vue_39_11_FE_46_0.ucfg +0 -0
  300. package/.scannerwork/ucfg2/js/src_components_RecordInfoUnnestedDetails_vue_46_10_FE_47_0.ucfg +0 -0
  301. package/.scannerwork/ucfg2/js/src_components_RecordInfoUnnestedDetails_vue_59_18_FE_48_thi_tha.ucfg +0 -0
  302. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_257_9_FE_1_0.ucfg +0 -0
  303. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_298_19_FE_2_0.ucfg +0 -0
  304. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_301_11_FE_3_0.ucfg +0 -0
  305. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_346_13_FE_4_ctx.ucfg +0 -0
  306. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_354_44_A_11_0.ucfg +0 -0
  307. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_361_9_FE_5_rec_ind_but.ucfg +0 -0
  308. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_366_19_FE_6_0.ucfg +0 -0
  309. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_370_16_FE_7_0.ucfg +0 -0
  310. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_403_22_FE_8_0.ucfg +0 -0
  311. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_410_33_FE_9_0.ucfg +0 -0
  312. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_437_28_FE_10_0.ucfg +0 -0
  313. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_444_31_FE_11_0.ucfg +0 -0
  314. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_451_24_FE_12_0.ucfg +0 -0
  315. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_454_32_FE_13_0.ucfg +0 -0
  316. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_456_18_A_12_phe.ucfg +0 -0
  317. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_457_14_A_13_phe.ucfg +0 -0
  318. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_464_15_FE_14_ctx.ucfg +0 -0
  319. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_472_19_A_14_a_b.ucfg +0 -0
  320. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_481_19_A_15_a_b.ucfg +0 -0
  321. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_505_19_FE_15_rec.ucfg +0 -0
  322. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_511_41_A_16_con.ucfg +0 -0
  323. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_520_41_A_17_con.ucfg +0 -0
  324. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_532_43_A_18_con.ucfg +0 -0
  325. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_537_41_A_19_con.ucfg +0 -0
  326. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_541_41_A_20_con.ucfg +0 -0
  327. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_545_41_A_21_con.ucfg +0 -0
  328. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_556_41_A_22_con.ucfg +0 -0
  329. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_560_41_A_23_con.ucfg +0 -0
  330. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_564_41_A_24_con.ucfg +0 -0
  331. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_568_41_A_25_con.ucfg +0 -0
  332. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_580_11_FE_16_0.ucfg +0 -0
  333. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_584_33_FE_17_0.ucfg +0 -0
  334. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_587_44_FE_18_0.ucfg +0 -0
  335. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_591_46_FE_19_0.ucfg +0 -0
  336. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_595_41_FE_20_0.ucfg +0 -0
  337. package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_599_40_FE_21_0.ucfg +0 -0
  338. package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_23_19_FE_49_0.ucfg +0 -0
  339. package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_24_34_A_28_sam.ucfg +0 -0
  340. package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_31_10_FE_50_sam.ucfg +0 -0
  341. package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_34_13_FE_51_sam.ucfg +0 -0
  342. package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_37_13_FE_52_sam.ucfg +0 -0
  343. package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_40_15_FE_53_sam.ucfg +0 -0
  344. package/.scannerwork/ucfg2/js/src_components_SamplePedigree_vue_30_19_FE_103_0.ucfg +0 -0
  345. package/.scannerwork/ucfg2/js/src_components_SamplePedigree_vue_34_19_FE_104_0.ucfg +0 -0
  346. package/.scannerwork/ucfg2/js/src_components_SamplePheno_vue_44_15_FE_0_0.ucfg +0 -0
  347. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_101_10_FE_58_cli.ucfg +0 -0
  348. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_104_10_FE_59_0.ucfg +0 -0
  349. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_109_10_FE_60_cli.ucfg +0 -0
  350. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_112_10_FE_61_0.ucfg +0 -0
  351. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_116_13_FE_62_0.ucfg +0 -0
  352. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_120_9_FE_63_0.ucfg +0 -0
  353. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_124_14_FE_64_0.ucfg +0 -0
  354. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_127_13_FE_65_0.ucfg +0 -0
  355. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_130_10_FE_66_0.ucfg +0 -0
  356. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_133_10_FE_67_0.ucfg +0 -0
  357. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_138_10_FE_68_0.ucfg +0 -0
  358. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_141_10_FE_69_0.ucfg +0 -0
  359. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_144_15_FE_70_0.ucfg +0 -0
  360. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_149_14_FE_71_0.ucfg +0 -0
  361. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_153_14_FE_72_0.ucfg +0 -0
  362. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_162_14_FE_73_0.ucfg +0 -0
  363. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_167_11_FE_74_0.ucfg +0 -0
  364. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_170_11_FE_75_pro.ucfg +0 -0
  365. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_176_16_FE_76_nod_g.ucfg +0 -0
  366. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_177_21_A_29_nod.ucfg +0 -0
  367. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_181_16_FE_77_edg_g.ucfg +0 -0
  368. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_182_21_A_30_edg.ucfg +0 -0
  369. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_186_18_FE_78_nod_edg.ucfg +0 -0
  370. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_199_14_FE_79_g.ucfg +0 -0
  371. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_209_15_FE_80_svg_min_max.ucfg +0 -0
  372. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_216_21_A_31_eve.ucfg +0 -0
  373. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_225_11_FE_81_nod_edg.ucfg +0 -0
  374. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_232_12_FE_82_0.ucfg +0 -0
  375. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_69_10_FE_54_0.ucfg +0 -0
  376. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_72_10_FE_55_0.ucfg +0 -0
  377. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_75_12_FE_56_0.ucfg +0 -0
  378. package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_78_7_FE_57_0.ucfg +0 -0
  379. package/.scannerwork/ucfg2/js/src_components_annotation_AnnotationControl_vue_20_18_FE_88_val.ucfg +0 -0
  380. package/.scannerwork/ucfg2/js/src_components_annotation_AnnotationControl_vue_27_13_FE_89_val.ucfg +0 -0
  381. package/.scannerwork/ucfg2/js/src_components_annotation_ClassificationAnnotation_vue_12_7_FE_142_0.ucfg +0 -0
  382. package/.scannerwork/ucfg2/js/src_components_annotation_ClassificationAnnotation_vue_27_13_FE_143_0.ucfg +0 -0
  383. package/.scannerwork/ucfg2/js/src_components_annotation_ClassificationAnnotation_vue_32_10_FE_144_val.ucfg +0 -0
  384. package/.scannerwork/ucfg2/js/src_components_annotation_GeneMatchAnnotation_vue_12_7_FE_94_0.ucfg +0 -0
  385. package/.scannerwork/ucfg2/js/src_components_annotation_GeneMatchAnnotation_vue_23_13_FE_95_0.ucfg +0 -0
  386. package/.scannerwork/ucfg2/js/src_components_annotation_GeneMatchAnnotation_vue_28_10_FE_96_val.ucfg +0 -0
  387. package/.scannerwork/ucfg2/js/src_components_annotation_NotesAnnotation_vue_22_7_FE_42_0.ucfg +0 -0
  388. package/.scannerwork/ucfg2/js/src_components_annotation_NotesAnnotation_vue_29_13_FE_43_0.ucfg +0 -0
  389. package/.scannerwork/ucfg2/js/src_components_annotation_NotesAnnotation_vue_34_10_FE_44_val.ucfg +0 -0
  390. package/.scannerwork/ucfg2/js/src_components_annotation_NotesAnnotation_vue_40_15_FE_45_el.ucfg +0 -0
  391. package/.scannerwork/ucfg2/js/src_globals_filters_ts_12_29_FE_37_x_Ptr.ucfg +0 -0
  392. package/.scannerwork/ucfg2/js/src_globals_filters_ts_17_23_FE_38_thi_tha.ucfg +0 -0
  393. package/.scannerwork/ucfg2/js/src_globals_utils_ts_133_1_FD_2_getInfoConsequences.ucfg +0 -0
  394. package/.scannerwork/ucfg2/js/src_globals_utils_ts_233_1_FD_3_hasVepConsequences.ucfg +0 -0
  395. package/.scannerwork/ucfg2/js/src_globals_utils_ts_238_1_FD_4_getVepConsequences.ucfg +0 -0
  396. package/.scannerwork/ucfg2/js/src_globals_utils_ts_267_1_FD_5_hasSnpEffConsequences.ucfg +0 -0
  397. package/.scannerwork/ucfg2/js/src_globals_utils_ts_272_1_FD_6_getSnpEffConsequences.ucfg +0 -0
  398. package/.scannerwork/ucfg2/js/src_globals_utils_ts_364_1_FD_7_sortConsequences.ucfg +0 -0
  399. package/.scannerwork/ucfg2/js/src_globals_utils_ts_394_8_FD_8_getConsequences.ucfg +0 -0
  400. package/.scannerwork/ucfg2/js/src_globals_utils_ts_406_1_FD_9_getVepPhenotypesIndex.ucfg +0 -0
  401. package/.scannerwork/ucfg2/js/src_globals_utils_ts_422_8_FD_10_getPhenotypesSelector.ucfg +0 -0
  402. package/.scannerwork/ucfg2/js/src_globals_utils_ts_430_1_FD_11_getVepInheritanceModesGeneIndex.ucfg +0 -0
  403. package/.scannerwork/ucfg2/js/src_globals_utils_ts_446_8_FD_12_getInheritanceModesGeneSelector.ucfg +0 -0
  404. package/.scannerwork/ucfg2/js/src_globals_utils_ts_454_8_FD_13_getVariant.ucfg +0 -0
  405. package/.scannerwork/ucfg2/js/src_globals_utils_ts_59_1_FD_0_createConsequence.ucfg +0 -0
  406. package/.scannerwork/ucfg2/js/src_globals_utils_ts_93_1_FD_1_createConsequences.ucfg +0 -0
  407. package/.scannerwork/ucfg2/js/src_store_actions_ts_100_27_FE_135_Ptr_val.ucfg +0 -0
  408. package/.scannerwork/ucfg2/js/src_store_actions_ts_103_26_FE_136_Ptr_val.ucfg +0 -0
  409. package/.scannerwork/ucfg2/js/src_store_actions_ts_106_11_FE_137_0.ucfg +0 -0
  410. package/.scannerwork/ucfg2/js/src_store_actions_ts_110_13_FE_138_Ptr_loc.ucfg +0 -0
  411. package/.scannerwork/ucfg2/js/src_store_actions_ts_113_13_FE_139_0.ucfg +0 -0
  412. package/.scannerwork/ucfg2/js/src_store_actions_ts_117_9_FE_140_Ptr_sam.ucfg +0 -0
  413. package/.scannerwork/ucfg2/js/src_store_actions_ts_120_24_FE_141_0.ucfg +0 -0
  414. package/.scannerwork/ucfg2/js/src_store_actions_ts_129_8_FD_14_setTestApi.ucfg +0 -0
  415. package/.scannerwork/ucfg2/js/src_store_actions_ts_25_21_FE_121_Ptr.ucfg +0 -0
  416. package/.scannerwork/ucfg2/js/src_store_actions_ts_29_24_FE_122_Ptr.ucfg +0 -0
  417. package/.scannerwork/ucfg2/js/src_store_actions_ts_40_20_FE_123_Ptr.ucfg +0 -0
  418. package/.scannerwork/ucfg2/js/src_store_actions_ts_45_21_FE_124_Ptr_sam.ucfg +0 -0
  419. package/.scannerwork/ucfg2/js/src_store_actions_ts_57_24_FE_125_Ptr.ucfg +0 -0
  420. package/.scannerwork/ucfg2/js/src_store_actions_ts_67_20_FE_126_Ptr_par.ucfg +0 -0
  421. package/.scannerwork/ucfg2/js/src_store_actions_ts_71_15_FE_127_Ptr_rec.ucfg +0 -0
  422. package/.scannerwork/ucfg2/js/src_store_actions_ts_74_14_FE_128_Ptr_ale.ucfg +0 -0
  423. package/.scannerwork/ucfg2/js/src_store_actions_ts_77_20_FE_129_Ptr.ucfg +0 -0
  424. package/.scannerwork/ucfg2/js/src_store_actions_ts_80_21_FE_130_Ptr.ucfg +0 -0
  425. package/.scannerwork/ucfg2/js/src_store_actions_ts_83_20_FE_131_Ptr_ann.ucfg +0 -0
  426. package/.scannerwork/ucfg2/js/src_store_actions_ts_86_19_FE_132_Ptr_ann.ucfg +0 -0
  427. package/.scannerwork/ucfg2/js/src_store_actions_ts_94_30_FE_133_Ptr_val.ucfg +0 -0
  428. package/.scannerwork/ucfg2/js/src_store_actions_ts_97_32_FE_134_Ptr_val.ucfg +0 -0
  429. package/.scannerwork/ucfg2/js/src_store_getters_ts_100_5_A_83_sta.ucfg +0 -0
  430. package/.scannerwork/ucfg2/js/src_store_getters_ts_101_5_A_84_rec.ucfg +0 -0
  431. package/.scannerwork/ucfg2/js/src_store_getters_ts_129_24_A_85_sta.ucfg +0 -0
  432. package/.scannerwork/ucfg2/js/src_store_getters_ts_13_23_FE_118_thi_tha.ucfg +0 -0
  433. package/.scannerwork/ucfg2/js/src_store_getters_ts_141_46_A_86_ite.ucfg +0 -0
  434. package/.scannerwork/ucfg2/js/src_store_getters_ts_150_31_A_87_sta.ucfg +0 -0
  435. package/.scannerwork/ucfg2/js/src_store_getters_ts_162_64_A_88_ite.ucfg +0 -0
  436. package/.scannerwork/ucfg2/js/src_store_getters_ts_171_32_A_89_sta.ucfg +0 -0
  437. package/.scannerwork/ucfg2/js/src_store_getters_ts_184_27_A_90_sta.ucfg +0 -0
  438. package/.scannerwork/ucfg2/js/src_store_getters_ts_197_26_A_91_sta.ucfg +0 -0
  439. package/.scannerwork/ucfg2/js/src_store_getters_ts_24_5_A_72_sta.ucfg +0 -0
  440. package/.scannerwork/ucfg2/js/src_store_getters_ts_25_5_A_73_id.ucfg +0 -0
  441. package/.scannerwork/ucfg2/js/src_store_getters_ts_29_39_A_74_sam.ucfg +0 -0
  442. package/.scannerwork/ucfg2/js/src_store_getters_ts_31_19_A_75_sta.ucfg +0 -0
  443. package/.scannerwork/ucfg2/js/src_store_getters_ts_42_37_A_76_sam.ucfg +0 -0
  444. package/.scannerwork/ucfg2/js/src_store_getters_ts_44_19_A_77_sta.ucfg +0 -0
  445. package/.scannerwork/ucfg2/js/src_store_getters_ts_55_37_A_78_sam.ucfg +0 -0
  446. package/.scannerwork/ucfg2/js/src_store_getters_ts_57_20_A_79_sta.ucfg +0 -0
  447. package/.scannerwork/ucfg2/js/src_store_getters_ts_7_12_A_71_sta.ucfg +0 -0
  448. package/.scannerwork/ucfg2/js/src_store_getters_ts_87_14_A_80_sta.ucfg +0 -0
  449. package/.scannerwork/ucfg2/js/src_store_getters_ts_90_20_A_81_sta.ucfg +0 -0
  450. package/.scannerwork/ucfg2/js/src_store_getters_ts_96_24_A_82_sta.ucfg +0 -0
  451. package/.scannerwork/ucfg2/js/src_store_mutations_ts_10_13_FE_106_sta_sam.ucfg +0 -0
  452. package/.scannerwork/ucfg2/js/src_store_mutations_ts_13_20_FE_107_sta_sam.ucfg +0 -0
  453. package/.scannerwork/ucfg2/js/src_store_mutations_ts_17_30_FE_108_sta_phe.ucfg +0 -0
  454. package/.scannerwork/ucfg2/js/src_store_mutations_ts_20_13_FE_109_sta_rec.ucfg +0 -0
  455. package/.scannerwork/ucfg2/js/src_store_mutations_ts_24_20_FE_110_sta_rec.ucfg +0 -0
  456. package/.scannerwork/ucfg2/js/src_store_mutations_ts_27_11_FE_111_sta_ale.ucfg +0 -0
  457. package/.scannerwork/ucfg2/js/src_store_mutations_ts_32_14_FE_112_sta_ale.ucfg +0 -0
  458. package/.scannerwork/ucfg2/js/src_store_mutations_ts_33_40_A_70_anA.ucfg +0 -0
  459. package/.scannerwork/ucfg2/js/src_store_mutations_ts_35_17_FE_113_sta_ann.ucfg +0 -0
  460. package/.scannerwork/ucfg2/js/src_store_mutations_ts_38_30_FE_114_sta_val.ucfg +0 -0
  461. package/.scannerwork/ucfg2/js/src_store_mutations_ts_41_32_FE_115_sta_val.ucfg +0 -0
  462. package/.scannerwork/ucfg2/js/src_store_mutations_ts_44_27_FE_116_sta_val.ucfg +0 -0
  463. package/.scannerwork/ucfg2/js/src_store_mutations_ts_47_26_FE_117_sta_val.ucfg +0 -0
  464. package/.scannerwork/ucfg2/js/src_store_mutations_ts_7_14_FE_105_sta_met.ucfg +0 -0
  465. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_111_33_A_10_k.ucfg +0 -0
  466. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_13_30_A_0_inp.ucfg +0 -0
  467. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_14_43_A_1_key.ucfg +0 -0
  468. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_24_29_A_2_lab_typ_que.ucfg +0 -0
  469. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_34_33_A_3_out_nod_key_edg.ucfg +0 -0
  470. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_48_27_A_4_nex_lab_key_edg.ucfg +0 -0
  471. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_62_30_A_5_inp.ucfg +0 -0
  472. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_64_40_A_6_key.ucfg +0 -0
  473. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_75_31_A_7_out.ucfg +0 -0
  474. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_78_18_A_8_que.ucfg +0 -0
  475. package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_90_46_A_9_cat.ucfg +0 -0
  476. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_103_29_A_49_lab.ucfg +0 -0
  477. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_104_35_A_50_a_b.ucfg +0 -0
  478. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_109_32_A_51_svg_pro.ucfg +0 -0
  479. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_113_24_A_52_thi_nex_thi_nex_xOf_yOf_bar.ucfg +0 -0
  480. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_12_26_A_34_fon.ucfg +0 -0
  481. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_133_24_A_53_lab_fon_typ_fon.ucfg +0 -0
  482. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_153_18_A_54_svg_x1_y1_x2_y2_str.ucfg +0 -0
  483. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_16_41_A_35_fon.ucfg +0 -0
  484. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_171_18_A_55_gEl_x_y_wid_hei_isE.ucfg +0 -0
  485. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_192_18_A_56_gEl_x_y_lab_fon_nod.ucfg +0 -0
  486. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_20_34_A_36_bar.ucfg +0 -0
  487. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_210_25_A_57_svg.ucfg +0 -0
  488. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_226_29_A_58_ele_can_can.ucfg +0 -0
  489. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_234_23_A_59_bar_g_e_fon_val_off_svg.ucfg +0 -0
  490. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_24_28_A_37_edg.ucfg +0 -0
  491. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_254_18_A_60_coo_bar_svg_nex_ind.ucfg +0 -0
  492. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_273_26_A_61_svg_g_fon_gra_gra_hor.ucfg +0 -0
  493. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_282_21_A_62_v.ucfg +0 -0
  494. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_28_30_A_38_svg_gra.ucfg +0 -0
  495. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_301_26_A_63_svg_g_bar_fon_gra_gra_hor.ucfg +0 -0
  496. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_312_21_A_64_e.ucfg +0 -0
  497. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_32_36_A_39_wid_hei.ucfg +0 -0
  498. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_39_26_A_40_y_ind_fon_yOf.ucfg +0 -0
  499. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_43_26_A_41_y_ind_fon_lab.ucfg +0 -0
  500. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_48_17_A_42_y_bar_off.ucfg +0 -0
  501. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_55_17_A_43_x_xOf.ucfg +0 -0
  502. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_59_26_A_44_xPo_tex.ucfg +0 -0
  503. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_63_21_A_45_xPo_wid.ucfg +0 -0
  504. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_71_20_A_46_svg_gra_hor.ucfg +0 -0
  505. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_80_20_A_47_svg_gra.ucfg +0 -0
  506. package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_85_22_A_48_inn_fon_fon.ucfg +0 -0
  507. package/.scannerwork/ucfg2/js/src_views_About_vue_14_10_FE_97_0.ucfg +0 -0
  508. package/.scannerwork/ucfg2/js/src_views_DecisionTreeViewer_vue_21_9_A_27_0.ucfg +0 -0
  509. package/.scannerwork/ucfg2/js/src_views_DecisionTreeViewer_vue_24_16_FE_39_0.ucfg +0 -0
  510. package/.scannerwork/ucfg2/js/src_views_Samples_vue_29_10_FE_83_sam.ucfg +0 -0
  511. package/.scannerwork/ucfg2/js/src_views_Samples_vue_33_16_FE_84_0.ucfg +0 -0
  512. package/.scannerwork/ucfg2/js/src_views_Samples_vue_40_40_A_32_sam.ucfg +0 -0
  513. package/.scannerwork/ucfg2/js/src_views_Samples_vue_47_11_FE_85_to_fro.ucfg +0 -0
  514. package/.scannerwork/ucfg2/js/src_views_VcfViewer_vue_16_9_A_67_0.ucfg +0 -0
  515. package/.scannerwork/ucfg2/js/src_views_VcfViewer_vue_22_16_FE_98_0.ucfg +0 -0
  516. package/babel.config.js +0 -3
  517. package/jest.config.js +0 -5
  518. package/public/index.html +0 -19
  519. package/sonar-project.properties +0 -6
  520. package/src/App.vue +0 -149
  521. package/src/components/Alerts.vue +0 -28
  522. package/src/components/Allele.vue +0 -48
  523. package/src/components/Anchor.vue +0 -16
  524. package/src/components/AnnotationsNav.vue +0 -66
  525. package/src/components/Gene.vue +0 -32
  526. package/src/components/GenomeBrowser.vue +0 -143
  527. package/src/components/Genotype.vue +0 -59
  528. package/src/components/Identifiers.vue +0 -32
  529. package/src/components/InfoButton.vue +0 -15
  530. package/src/components/NavigationBar.vue +0 -27
  531. package/src/components/PubMedAnchor.vue +0 -25
  532. package/src/components/RecordCommonDetails.vue +0 -106
  533. package/src/components/RecordDetails.vue +0 -56
  534. package/src/components/RecordInfoDetails.vue +0 -58
  535. package/src/components/RecordInfoDetailsItem.vue +0 -44
  536. package/src/components/RecordInfoDetailsItemMultiline.vue +0 -26
  537. package/src/components/RecordInfoDetailsItemValue.vue +0 -166
  538. package/src/components/RecordInfoNestedDetails.vue +0 -73
  539. package/src/components/RecordInfoUnnestedDetails.vue +0 -66
  540. package/src/components/RecordSampleDetails.vue +0 -32
  541. package/src/components/RecordTable.vue +0 -605
  542. package/src/components/RecordTableControls.vue +0 -55
  543. package/src/components/SampleDetails.vue +0 -91
  544. package/src/components/SampleInfo.vue +0 -36
  545. package/src/components/SampleNavigation.vue +0 -45
  546. package/src/components/SamplePedigree.vue +0 -40
  547. package/src/components/SamplePheno.vue +0 -55
  548. package/src/components/SampleReport.vue +0 -36
  549. package/src/components/TreeVisualisation.vue +0 -240
  550. package/src/components/annotation/AnnotationControl.vue +0 -46
  551. package/src/components/annotation/ClassificationAnnotation.vue +0 -37
  552. package/src/components/annotation/GeneMatchAnnotation.vue +0 -33
  553. package/src/components/annotation/NotesAnnotation.vue +0 -46
  554. package/src/globals/filters.ts +0 -19
  555. package/src/globals/utils.ts +0 -467
  556. package/src/i18n.ts +0 -23
  557. package/src/locales/en.json +0 -82
  558. package/src/main.ts +0 -22
  559. package/src/mocks/apiDataMock.ts +0 -173
  560. package/src/plugins/bootstrap-vue.ts +0 -68
  561. package/src/router/index.ts +0 -48
  562. package/src/shims-tsx.d.ts +0 -13
  563. package/src/shims-vue.d.ts +0 -4
  564. package/src/store/actions.ts +0 -131
  565. package/src/store/getters.ts +0 -207
  566. package/src/store/mutations.ts +0 -50
  567. package/src/store/state.ts +0 -18
  568. package/src/store/store.ts +0 -16
  569. package/src/types/Alert.ts +0 -5
  570. package/src/types/Annotations.ts +0 -14
  571. package/src/types/Consequence.ts +0 -36
  572. package/src/types/DecisionTree.d.ts +0 -96
  573. package/src/types/Gene.ts +0 -4
  574. package/src/types/GenomeBrowserDb.ts +0 -7
  575. package/src/types/State.ts +0 -18
  576. package/src/types/Variant.ts +0 -6
  577. package/src/types/dagreGraphlib.d.ts +0 -596
  578. package/src/types/graphlib.d.ts +0 -1
  579. package/src/types/layout.d.ts +0 -1
  580. package/src/utils/treeBuilder.ts +0 -112
  581. package/src/utils/treeDrawer.ts +0 -359
  582. package/src/views/About.vue +0 -18
  583. package/src/views/DecisionTreeViewer.vue +0 -31
  584. package/src/views/Samples.vue +0 -55
  585. package/src/views/VcfViewer.vue +0 -27
  586. package/tests/unit/globals/filters.spec.ts +0 -25
  587. package/tests/unit/globals/utils.spec.ts +0 -453
  588. package/tests/unit/store/actions.spec.ts +0 -191
  589. package/tests/unit/store/getters.spec.ts +0 -660
  590. package/tests/unit/store/mutations.spec.ts +0 -80
  591. package/tests/unit/utils/treeBuilder.spec.ts +0 -320
  592. package/tests/unit/utils/treeDrawer.spec.ts +0 -104
  593. package/vue.config.js +0 -36
@@ -0,0 +1,3 @@
1
+ export function arrayEquals<T>(a: T[], b: T[]) {
2
+ return Array.isArray(a) && Array.isArray(b) && a.length === b.length && a.every((val, index) => val === b[index]);
3
+ }
@@ -0,0 +1,38 @@
1
+ import { Value, ValueArray } from "@molgenis/vip-report-vcf/src/ValueParser";
2
+ import { Record } from "@molgenis/vip-report-vcf/src/Vcf";
3
+ import { Sample } from "@molgenis/vip-report-api/src/Api";
4
+ import { FieldMetadata } from "@molgenis/vip-report-vcf/src/MetadataParser";
5
+
6
+ export function getSpecificConsequence(csqs: ValueArray, rowIndex: number): ValueArray {
7
+ if (rowIndex < 0) {
8
+ throw new Error("Consequences index must be 0 or higher.");
9
+ }
10
+ return csqs.length >= rowIndex ? (csqs[rowIndex] as ValueArray) : [];
11
+ }
12
+
13
+ export function getConsequenceLabel(csq: ValueArray, rowIndex: number, csqMetadataArray: FieldMetadata[]) {
14
+ const csqIndex = csqMetadataArray.findIndex((csqMetadata) => csqMetadata.id === "Consequence");
15
+ const csqValues: ValueArray = getSpecificConsequence(csq, rowIndex);
16
+ const csqValue: Value = csqValues[csqIndex];
17
+ return csqValue;
18
+ }
19
+
20
+ export function getRecordSamples(record: Record, sample: Sample, pedigreeSamples: Sample[]) {
21
+ return [record.s[sample.index], ...pedigreeSamples.map((pedigreeSample) => record.s[pedigreeSample.index])];
22
+ }
23
+
24
+ export function getHeaderValue(key: string, lines: string[]) {
25
+ let value = null;
26
+ lines.forEach((line: string) => {
27
+ if (line.startsWith(`##${key}`)) {
28
+ const splitted: string[] = line.split("=");
29
+ if (splitted.length === 2) {
30
+ value = splitted[1];
31
+ return;
32
+ } else {
33
+ throw new Error("Invalid header format for key");
34
+ }
35
+ }
36
+ });
37
+ return value;
38
+ }
@@ -0,0 +1,121 @@
1
+ import { Component, createResource, createSignal, For, Show } from "solid-js";
2
+ import { Breadcrumb } from "../components/Breadcrumb";
3
+ import { Item, Phenotype, PhenotypicFeature } from "@molgenis/vip-report-api/src/Api";
4
+ import { HpoTerm } from "../components/record/info/HpoTerm";
5
+ import {
6
+ EMPTY_APP_METADATA,
7
+ EMPTY_HTS_FILE_METADATA,
8
+ EMPTY_PARAMS,
9
+ EMPTY_PHENOTYPES,
10
+ EMPTY_RECORDS_METADATA,
11
+ EMPTY_RECORDS_PAGE,
12
+ EMPTY_SAMPLES_PAGE,
13
+ fetchAppMetadata,
14
+ fetchHtsFileMetadata,
15
+ fetchPhenotypes,
16
+ fetchRecords,
17
+ fetchRecordsMeta,
18
+ fetchSamples,
19
+ } from "../utils/ApiUtils";
20
+ import { getHeaderValue } from "../utils/viewUtils";
21
+ import { Loader } from "../components/Loader";
22
+ import { VcfHeaderRow } from "../components/VcfHeaderRow";
23
+
24
+ export const Home: Component = () => {
25
+ const [params] = createSignal(EMPTY_PARAMS);
26
+ const [samples] = createResource(params, fetchSamples, { initialValue: EMPTY_SAMPLES_PAGE });
27
+ const [records] = createResource(params, fetchRecords, { initialValue: EMPTY_RECORDS_PAGE });
28
+ const [recordsMetadata] = createResource(params, fetchRecordsMeta, { initialValue: EMPTY_RECORDS_METADATA });
29
+ const [phenotypes] = createResource(params, fetchPhenotypes, { initialValue: EMPTY_PHENOTYPES });
30
+ const [htsFileMetadata] = createResource(params, fetchHtsFileMetadata, { initialValue: EMPTY_HTS_FILE_METADATA });
31
+ const [appMetadata] = createResource(params, fetchAppMetadata, { initialValue: EMPTY_APP_METADATA });
32
+
33
+ return (
34
+ <Show
35
+ when={
36
+ !samples.loading &&
37
+ !records.loading &&
38
+ !recordsMetadata.loading &&
39
+ !phenotypes.loading &&
40
+ !htsFileMetadata.loading &&
41
+ !appMetadata.loading
42
+ }
43
+ fallback={<Loader />}
44
+ >
45
+ <Breadcrumb items={[]} />
46
+ <div class="table-container">
47
+ <table class="table is-narrow">
48
+ <thead>
49
+ <tr>
50
+ <th colSpan={2}>Software metadata</th>
51
+ </tr>
52
+ </thead>
53
+ <tbody>
54
+ <tr>
55
+ <th>Name:</th>
56
+ <td>{appMetadata().name}</td>
57
+ </tr>
58
+ <tr>
59
+ <th>Version:</th>
60
+ <td>{appMetadata().version}</td>
61
+ </tr>
62
+ <tr>
63
+ <th>Arguments:</th>
64
+ <td>{appMetadata().args}</td>
65
+ </tr>
66
+ <VcfHeaderRow value={getHeaderValue("VIP_Version", recordsMetadata().lines)} title={"VIP Version"} />
67
+ <VcfHeaderRow value={getHeaderValue("VIP_Command", recordsMetadata().lines)} title={"VIP Command"} />
68
+ </tbody>
69
+ </table>
70
+ </div>
71
+ <div class="table-container">
72
+ <table class="table is-narrow">
73
+ <thead>
74
+ <tr>
75
+ <th colSpan={2}>Input metadata</th>
76
+ </tr>
77
+ </thead>
78
+ <tbody>
79
+ <tr>
80
+ <th>Filename:</th>
81
+ <td>{htsFileMetadata().uri}</td>
82
+ </tr>
83
+ <tr>
84
+ <th>Assembly:</th>
85
+ <td>{htsFileMetadata().genomeAssembly}</td>
86
+ </tr>
87
+ <tr>
88
+ <th>Number of records:</th>
89
+ <td>{records().total}</td>
90
+ </tr>
91
+ <tr>
92
+ <th>Number of samples:</th>
93
+ <td>{samples().total}</td>
94
+ </tr>
95
+ <tr>
96
+ <th>Phenotypes:</th>
97
+ <td>
98
+ <For each={phenotypes().items}>
99
+ {(item: Item<Phenotype>) => (
100
+ <>
101
+ <b>{item.data.subject.id}: </b>
102
+ <For each={item.data.phenotypicFeaturesList}>
103
+ {(phenotypicFeature: PhenotypicFeature, i) => (
104
+ <>
105
+ {i() > 0 ? ", " : ""}
106
+ <HpoTerm ontologyClass={phenotypicFeature.type} />
107
+ </>
108
+ )}
109
+ </For>
110
+ <br />
111
+ </>
112
+ )}
113
+ </For>
114
+ </td>
115
+ </tr>
116
+ </tbody>
117
+ </table>
118
+ </div>
119
+ </Show>
120
+ );
121
+ };
@@ -0,0 +1,26 @@
1
+ import { Component, For, Show } from "solid-js";
2
+ import { Link, useRouteData } from "solid-app-router";
3
+ import { Loader } from "../components/Loader";
4
+ import { Breadcrumb } from "../components/Breadcrumb";
5
+ import { SampleRouteData } from "./data/SampleData";
6
+
7
+ export const Sample: Component = () => {
8
+ const { sample } = useRouteData<SampleRouteData>();
9
+
10
+ return (
11
+ <Show when={!sample.loading} fallback={<Loader />}>
12
+ <Breadcrumb items={[{ href: "/samples", text: "Samples" }, { text: sample().data.person.individualId }]} />
13
+ <p class="has-text-weight-semibold">Sample</p>
14
+ <div class="columns">
15
+ <div class="column is-1">
16
+ <For each={Object.keys(sample().data.person)}>{(key) => <p>{key}</p>}</For>
17
+ </div>
18
+ <div class="column is-1">
19
+ <For each={Object.values(sample().data.person)}>{(value) => <p>{value}</p>}</For>
20
+ </div>
21
+ </div>
22
+ <br />
23
+ <Link href={`/samples/${sample().id}/variants`}>Variants</Link>
24
+ </Show>
25
+ );
26
+ };
@@ -0,0 +1,115 @@
1
+ import { Component, createResource, For, Show } from "solid-js";
2
+ import { useRouteData } from "solid-app-router";
3
+ import { Loader } from "../components/Loader";
4
+ import { GenomeBrowser } from "../components/GenomeBrowser";
5
+ import { fetchPedigreeSamples, fetchRecordsMeta, getRecordLabel } from "../utils/ApiUtils";
6
+ import { VariantTable } from "../components/VariantTable";
7
+ import { VariantInfoTable } from "../components/VariantInfoTable";
8
+ import { VariantInfoNestedTable } from "../components/VariantInfoNestedTable";
9
+ import { Value } from "@molgenis/vip-report-vcf/src/ValueParser";
10
+ import { getNestedInfoFieldsWithValues } from "../utils/field";
11
+ import { VariantSampleTable } from "../components/VariantSampleTable";
12
+ import { Breadcrumb } from "../components/Breadcrumb";
13
+ import { getRecordSamples } from "../utils/viewUtils";
14
+ import { SampleVariantRouteData } from "./data/SampleVariantData";
15
+ import { getSampleLabel } from "../utils/sample";
16
+ import { Item, Sample } from "@molgenis/vip-report-api/src/Api";
17
+ import { Metadata, Record } from "@molgenis/vip-report-vcf/src/Vcf";
18
+
19
+ export const SampleVariantView: Component = () => {
20
+ const { sample, variant } = useRouteData<SampleVariantRouteData>();
21
+
22
+ const [pedigreeSamples] = createResource(sample, fetchPedigreeSamples);
23
+ const [recordsMeta] = createResource(fetchRecordsMeta);
24
+
25
+ return (
26
+ <Show when={sample() && variant()} fallback={<Loader />}>
27
+ <Breadcrumb
28
+ items={[
29
+ { href: "/samples", text: "Samples" },
30
+ { href: `/samples/${sample()!.id}`, text: getSampleLabel(sample()!) },
31
+ { href: `/samples/${sample()!.id}/variants`, text: "Variants" },
32
+ { text: getRecordLabel(variant()!) },
33
+ ]}
34
+ />
35
+ <Show when={pedigreeSamples() && recordsMeta()} fallback={<Loader />}>
36
+ <SampleVariant
37
+ sample={sample()!}
38
+ pedigreeSamples={pedigreeSamples()!.items}
39
+ recordsMeta={recordsMeta()!}
40
+ record={variant()!}
41
+ />
42
+ </Show>
43
+ </Show>
44
+ );
45
+ };
46
+
47
+ export const SampleVariant: Component<{
48
+ sample: Item<Sample>;
49
+ pedigreeSamples: Item<Sample>[];
50
+ recordsMeta: Metadata;
51
+ record: Item<Record>;
52
+ }> = (props) => {
53
+ return (
54
+ <>
55
+ <div class="columns">
56
+ <div class="column">
57
+ <GenomeBrowser
58
+ contig={props.record.data.c}
59
+ position={props.record.data.p}
60
+ samples={[props.sample.data, ...props.pedigreeSamples.map((item) => item.data)]}
61
+ />
62
+ </div>
63
+ </div>
64
+ <div class="columns">
65
+ <div class="column is-3">
66
+ <h1 class="title is-5">Record</h1>
67
+ <VariantTable variant={props.record.data} />
68
+ </div>
69
+ <Show
70
+ when={
71
+ Object.values(props.recordsMeta.info).filter(
72
+ (info) => !info.nested && props.record.data.n[info.id] !== undefined
73
+ ).length > 0
74
+ }
75
+ >
76
+ <div class="column is-3">
77
+ <h1 class="title is-5">Info</h1>
78
+ <VariantInfoTable infoValues={props.record.data.n} infoFields={props.recordsMeta.info} />
79
+ </div>
80
+ </Show>
81
+ <div class="column">
82
+ <h1 class="title is-5">Samples</h1>
83
+ <VariantSampleTable
84
+ formatFields={props.recordsMeta.format}
85
+ samples={[props.sample.data, ...props.pedigreeSamples.map((item) => item.data)]}
86
+ sampleValues={getRecordSamples(
87
+ props.record.data,
88
+ props.sample.data,
89
+ props.pedigreeSamples.map((item) => item.data)
90
+ )}
91
+ record={props.record.data}
92
+ />
93
+ </div>
94
+ </div>
95
+ <div class="columns">
96
+ <div class="column" style={{ "max-width": "100%" }}>
97
+ <For each={getNestedInfoFieldsWithValues(props.recordsMeta.info, props.record.data.n)}>
98
+ {(infoField) => (
99
+ <>
100
+ <h1 class="title is-5">{infoField.id}</h1>
101
+ <p class="mb-4">{infoField.description}</p>
102
+ <VariantInfoNestedTable
103
+ infoValue={props.record.data.n[infoField.id] as unknown as Value[][]}
104
+ infoField={infoField}
105
+ sample={{ id: props.sample.id, label: props.sample.data.person.individualId }}
106
+ record={props.record}
107
+ />
108
+ </>
109
+ )}
110
+ </For>
111
+ </div>
112
+ </div>
113
+ </>
114
+ );
115
+ };
@@ -0,0 +1,105 @@
1
+ import { Component, createResource, Show } from "solid-js";
2
+ import { useRouteData } from "solid-app-router";
3
+ import { Loader } from "../components/Loader";
4
+ import { fetchDecisionTree, fetchPedigreeSamples, fetchRecordsMeta, getRecordLabel } from "../utils/ApiUtils";
5
+ import { VariantTable } from "../components/VariantTable";
6
+ import { VariantInfoTable } from "../components/VariantInfoTable";
7
+ import { VariantSampleTable } from "../components/VariantSampleTable";
8
+ import { Breadcrumb } from "../components/Breadcrumb";
9
+ import { ConsequenceTable } from "../components/ConsequenceTable";
10
+ import { getRecordSamples, getSpecificConsequence } from "../utils/viewUtils";
11
+ import { DecisionTreePath } from "../components/tree/DecisionTreePath";
12
+ import { getDecisionTreePath } from "../utils/decisionTreeUtils";
13
+ import { SampleVariantConsequenceRouteData } from "./data/SampleVariantConsequenceData";
14
+ import { getSampleLabel } from "../utils/sample";
15
+ import { DecisionTree, Item, Sample } from "@molgenis/vip-report-api/src/Api";
16
+ import { Metadata, Record } from "@molgenis/vip-report-vcf/src/Vcf";
17
+ import { ValueArray } from "@molgenis/vip-report-vcf/src/ValueParser";
18
+
19
+ export const SampleVariantConsequenceView: Component = () => {
20
+ const { sample, variant, consequenceId } = useRouteData<SampleVariantConsequenceRouteData>();
21
+
22
+ const [pedigreeSamples] = createResource(sample, fetchPedigreeSamples);
23
+ const [recordsMeta] = createResource(fetchRecordsMeta);
24
+ const [decisionTree] = createResource(fetchDecisionTree, { initialValue: null });
25
+
26
+ return (
27
+ <Show when={sample() && variant()} fallback={<Loader />}>
28
+ <Breadcrumb
29
+ items={[
30
+ { href: "/samples", text: "Samples" },
31
+ { href: `/samples/${sample()!.id}`, text: getSampleLabel(sample()!) },
32
+ { href: `/samples/${sample()!.id}/variants`, text: "Variants" },
33
+ { href: `/samples/${sample()!.id}/variants/${variant()!.id}`, text: getRecordLabel(variant()!) },
34
+ { text: `Consequence #${consequenceId}` },
35
+ ]}
36
+ />
37
+ <Show when={pedigreeSamples() && recordsMeta()} fallback={<Loader />}>
38
+ <SampleVariantConsequence
39
+ sample={sample()!}
40
+ pedigreeSamples={pedigreeSamples()!.items}
41
+ recordsMeta={recordsMeta()!}
42
+ variant={variant()!}
43
+ consequenceId={consequenceId}
44
+ decisionTree={decisionTree()}
45
+ />
46
+ </Show>
47
+ </Show>
48
+ );
49
+ };
50
+
51
+ export const SampleVariantConsequence: Component<{
52
+ sample: Item<Sample>;
53
+ pedigreeSamples: Item<Sample>[];
54
+ recordsMeta: Metadata;
55
+ variant: Item<Record>;
56
+ consequenceId: number;
57
+ decisionTree: DecisionTree | null;
58
+ }> = (props) => {
59
+ return (
60
+ <>
61
+ <div class="columns">
62
+ <div class="column is-6">
63
+ <h1 class="title is-5">Consequence</h1>
64
+ <ConsequenceTable
65
+ csqMetadata={props.recordsMeta.info.CSQ.nested !== undefined ? props.recordsMeta.info.CSQ.nested.items : []}
66
+ csqValues={getSpecificConsequence(props.variant.data.n.CSQ as ValueArray, props.consequenceId)}
67
+ record={props.variant.data}
68
+ />
69
+ </div>
70
+ {props.decisionTree !== null && (
71
+ <div class="column">
72
+ <h1 class="title is-5">Classification tree path</h1>
73
+ <DecisionTreePath
74
+ decisionTree={props.decisionTree}
75
+ path={getDecisionTreePath(props.recordsMeta, props.variant, props.consequenceId)}
76
+ />
77
+ </div>
78
+ )}
79
+ </div>
80
+ <div class="columns">
81
+ <div class="column is-3">
82
+ <h1 class="title is-5">Record</h1>
83
+ <VariantTable variant={props.variant.data} />
84
+ </div>
85
+ <div class="column is-3">
86
+ <h1 class="title is-5">Info</h1>
87
+ <VariantInfoTable infoValues={props.variant.data.n} infoFields={props.recordsMeta.info} />
88
+ </div>
89
+ <div class="column">
90
+ <h1 class="title is-5">Samples</h1>
91
+ <VariantSampleTable
92
+ formatFields={props.recordsMeta.format}
93
+ samples={[props.sample.data, ...props.pedigreeSamples.map((item) => item.data)]}
94
+ sampleValues={getRecordSamples(
95
+ props.variant.data,
96
+ props.sample.data,
97
+ props.pedigreeSamples.map((item) => item.data)
98
+ )}
99
+ record={props.variant.data}
100
+ />
101
+ </div>
102
+ </div>
103
+ </>
104
+ );
105
+ };
@@ -0,0 +1,244 @@
1
+ import { Component, createMemo, createResource, Show } from "solid-js";
2
+ import { useRouteData } from "solid-app-router";
3
+ import { Item, Params, PhenotypicFeature, Sample, SortPath } from "@molgenis/vip-report-api/src/Api";
4
+ import { Loader } from "../components/Loader";
5
+ import { SearchBox } from "../components/SearchBox";
6
+ import { Sort, SortEvent } from "../components/Sort";
7
+ import { Pager } from "../components/record/Pager";
8
+ import { RecordDownload } from "../components/record/RecordDownload";
9
+ import { createQuery, infoSelector, infoSortPath, sampleSelector } from "../utils/query";
10
+ import { VariantsSampleTable } from "../components/VariantsSampleTable";
11
+ import { fetchPedigreeSamples, fetchPhenotypicFeatures, fetchRecords, fetchRecordsMeta } from "../utils/ApiUtils";
12
+ import { Breadcrumb } from "../components/Breadcrumb";
13
+ import { FieldMetadata } from "@molgenis/vip-report-vcf/src/MetadataParser";
14
+ import { Filters } from "../components/filter/Filters";
15
+ import { DIRECTION_ASCENDING, DIRECTION_DESCENDING } from "../utils/sortUtils";
16
+ import { SampleRouteData } from "./data/SampleData";
17
+ import { useStore } from "../store";
18
+ import { Metadata } from "@molgenis/vip-report-vcf/src/Vcf";
19
+ import { getSampleLabel } from "../utils/sample";
20
+ import { FilterChangeEvent, FilterClearEvent } from "../components/filter/Filter";
21
+ import { arrayEquals } from "../utils/utils";
22
+
23
+ export const SampleVariantsView: Component = () => {
24
+ const { sample } = useRouteData<SampleRouteData>();
25
+
26
+ const [pedigreeSamples] = createResource(sample, fetchPedigreeSamples);
27
+ const [samplePhenotypes] = createResource(sample, fetchPhenotypicFeatures);
28
+ const [recordsMeta] = createResource(fetchRecordsMeta);
29
+
30
+ return (
31
+ <Show when={sample()} fallback={<Loader />}>
32
+ <Breadcrumb
33
+ items={[
34
+ { href: "/samples", text: "Samples" },
35
+ { href: `/samples/${sample()!.id}`, text: getSampleLabel(sample()!) },
36
+ { text: "Variants" },
37
+ ]}
38
+ />
39
+ <Show when={pedigreeSamples() && samplePhenotypes() && recordsMeta()} fallback={<Loader />}>
40
+ <SampleVariants
41
+ sample={sample()!}
42
+ samplePhenotypes={samplePhenotypes()!}
43
+ pedigreeSamples={pedigreeSamples()!.items}
44
+ recordsMeta={recordsMeta()!}
45
+ />
46
+ </Show>
47
+ </Show>
48
+ );
49
+ };
50
+
51
+ export const SampleVariants: Component<{
52
+ sample: Item<Sample>;
53
+ samplePhenotypes: PhenotypicFeature[];
54
+ pedigreeSamples: Item<Sample>[];
55
+ recordsMeta: Metadata;
56
+ }> = (props) => {
57
+ const [state, actions] = useStore();
58
+
59
+ // state initialization - start
60
+ if (state.samples[props.sample.id]?.variants?.page === undefined) {
61
+ actions.setSampleVariantsPage(props.sample, 0);
62
+ }
63
+ if (state.samples[props.sample.id]?.variants?.pageSize === undefined) {
64
+ actions.setSampleVariantsPageSize(props.sample, 20);
65
+ }
66
+
67
+ if (state.samples[props.sample.id]?.variants?.filterQueries === undefined) {
68
+ const hpoField = props.recordsMeta.info?.CSQ?.nested?.items?.find((field) => field.id === "HPO");
69
+ if (hpoField) {
70
+ actions.setSampleVariantsFilterQuery(props.sample, {
71
+ selector: infoSelector(hpoField),
72
+ operator: "any_has_any",
73
+ args: props.samplePhenotypes.map((phenotype) => phenotype.type.id),
74
+ });
75
+ }
76
+
77
+ const vimField = props.recordsMeta.format?.VIM;
78
+ if (vimField) {
79
+ actions.setSampleVariantsFilterQuery(props.sample, {
80
+ selector: sampleSelector(props.sample, vimField),
81
+ operator: "==",
82
+ args: 1,
83
+ });
84
+ }
85
+ const dpField = props.recordsMeta.format?.DP;
86
+ if (dpField) {
87
+ actions.setSampleVariantsFilterQuery(props.sample, {
88
+ selector: sampleSelector(props.sample, dpField),
89
+ operator: ">=",
90
+ args: 20,
91
+ });
92
+ }
93
+ }
94
+
95
+ if (state.samples[props.sample.id]?.variants?.sort === undefined) {
96
+ const capiceScField = props.recordsMeta.info?.CSQ?.nested?.items?.find((field) => field.id === "CAPICE_SC");
97
+ if (capiceScField) {
98
+ actions.setSampleVariantsSort(props.sample, {
99
+ property: infoSortPath(capiceScField),
100
+ compare: DIRECTION_DESCENDING,
101
+ });
102
+ }
103
+ }
104
+ // state initialization - end
105
+
106
+ const infoFields = createMemo(() => {
107
+ const csqNestedFields = props.recordsMeta.info.CSQ?.nested?.items;
108
+ const includedFields = [
109
+ "Consequence",
110
+ "SYMBOL",
111
+ "InheritanceModesGene",
112
+ "IncompletePenetrance",
113
+ "HPO",
114
+ "HGVSc",
115
+ "HGVSp",
116
+ "CAPICE_SC",
117
+ "VIPC",
118
+ "UMCG_CL",
119
+ "VKGL_CL",
120
+ "CLIN_SIG",
121
+ "gnomAD_AF",
122
+ "gnomAD_HN",
123
+ "PUBMED",
124
+ ];
125
+ return csqNestedFields
126
+ ? (includedFields
127
+ .map((fieldId) => csqNestedFields.find((field) => field.id === fieldId))
128
+ .filter((field) => field !== undefined) as FieldMetadata[])
129
+ : [];
130
+ });
131
+
132
+ const formatFields = createMemo(() => {
133
+ const formatFieldMap = props.recordsMeta.format;
134
+ const includedFields = ["VIM", "VID", "DP"];
135
+ return formatFieldMap
136
+ ? includedFields.map((fieldId) => formatFieldMap[fieldId]).filter((field) => field !== undefined)
137
+ : [];
138
+ });
139
+
140
+ const page = () => state.samples[props.sample.id]?.variants?.page;
141
+ const pageSize = () => state.samples[props.sample.id]?.variants?.pageSize;
142
+ const searchQuery = () => state.samples[props.sample.id]?.variants?.searchQuery;
143
+ const filterQueries = () => state.samples[props.sample.id]?.variants?.filterQueries;
144
+ const sort = () => state.samples[props.sample.id]?.variants?.sort;
145
+
146
+ const onPageChange = (page: number) => actions.setSampleVariantsPage(props.sample, page);
147
+ const onSearchChange = (search: string) => actions.setSampleVariantsSearchQuery(props.sample, search);
148
+ const onFilterChange = (event: FilterChangeEvent) => actions.setSampleVariantsFilterQuery(props.sample, event.query);
149
+ const onFilterClear = (event: FilterClearEvent) =>
150
+ actions.clearSampleVariantsFilterQuery(props.sample, event.selector);
151
+ const onSortChange = (event: SortEvent) => actions.setSampleVariantsSort(props.sample, event.order);
152
+ const onSortClear = () => actions.setSampleVariantsSort(props.sample, null);
153
+
154
+ const params = (): Params => {
155
+ return {
156
+ query: createQuery(searchQuery(), filterQueries(), props.recordsMeta) || undefined,
157
+ sort: sort() || undefined,
158
+ page: page() || undefined,
159
+ size: pageSize() || undefined,
160
+ };
161
+ };
162
+
163
+ const [records] = createResource(params, fetchRecords);
164
+
165
+ const sortOptions = () =>
166
+ infoFields().flatMap((field) => [
167
+ {
168
+ order: { field, direction: DIRECTION_ASCENDING },
169
+ selected:
170
+ arrayEquals(infoSortPath(field), sort()?.property as SortPath) && sort()?.compare === DIRECTION_ASCENDING
171
+ ? true
172
+ : undefined,
173
+ },
174
+ {
175
+ order: { field, direction: DIRECTION_DESCENDING },
176
+ selected:
177
+ arrayEquals(infoSortPath(field), sort()?.property as SortPath) && sort()?.compare === DIRECTION_DESCENDING
178
+ ? true
179
+ : undefined,
180
+ },
181
+ ]);
182
+
183
+ return (
184
+ <div class="columns">
185
+ <div class="column is-1-fullhd is-2">
186
+ <SearchBox value={searchQuery()} onInput={onSearchChange} />
187
+ <Filters
188
+ fields={infoFields()}
189
+ samplesFields={[{ sample: props.sample, fields: formatFields() }]}
190
+ queries={filterQueries()}
191
+ onChange={onFilterChange}
192
+ onClear={onFilterClear}
193
+ />
194
+ </div>
195
+ <div class="column">
196
+ <div class="columns">
197
+ <div class="column is-offset-1-fullhd is-3-fullhd is-4">
198
+ {infoFields().length > 0 && <Sort options={sortOptions()} onChange={onSortChange} onClear={onSortClear} />}
199
+ </div>
200
+ <div class="column is-4">
201
+ <Show when={records()} fallback={<Loader />}>
202
+ {(records) => <Pager page={records.page} onPageChange={onPageChange} />}
203
+ </Show>
204
+ </div>
205
+ <div class="column">
206
+ <div class="columns">
207
+ <div class="column is-10">
208
+ <Show when={records()} fallback={<Loader />}>
209
+ {(records) => (
210
+ <span class="is-pulled-right" style={{ margin: "auto" }}>
211
+ {records.page.totalElements} records
212
+ </span>
213
+ )}
214
+ </Show>
215
+ </div>
216
+ <div class="column">
217
+ <div class="is-pulled-right">
218
+ <RecordDownload
219
+ recordsMetadata={props.recordsMeta}
220
+ query={params().query}
221
+ samples={[props.sample.data, ...props.pedigreeSamples.map((item) => item.data)]}
222
+ />
223
+ </div>
224
+ </div>
225
+ </div>
226
+ </div>
227
+ </div>
228
+ <div class="columns">
229
+ <Show when={records()} fallback={<Loader />}>
230
+ {(records) => (
231
+ <VariantsSampleTable
232
+ item={props.sample}
233
+ pedigreeSamples={props.pedigreeSamples}
234
+ records={records.items}
235
+ recordsMetadata={props.recordsMeta}
236
+ nestedFields={infoFields()}
237
+ />
238
+ )}
239
+ </Show>
240
+ </div>
241
+ </div>
242
+ </div>
243
+ );
244
+ };