@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.
- package/.eslintignore +4 -0
- package/.eslintrc.js +16 -22
- package/.gitattributes +1 -0
- package/.husky/pre-commit +4 -0
- package/.prettierignore +4 -0
- package/.prettierrc.json +3 -0
- package/.travis.yml +14 -11
- package/README.md +7 -29
- package/index.html +12 -0
- package/package.json +42 -55
- package/src/Api.ts +12 -0
- package/src/App.tsx +101 -0
- package/src/__tests__/decisionTreeUtils.test.ts +75 -0
- package/src/__tests__/field.test.ts +107 -0
- package/src/__tests__/query.test.ts +99 -0
- package/src/__tests__/sortUtils.test.ts +83 -0
- package/src/__tests__/utils.test.ts +24 -0
- package/src/__tests__/viewUtils.test.ts +125 -0
- package/src/assets/sass/main.scss +113 -0
- package/src/components/Abbr.tsx +20 -0
- package/src/components/Anchor.tsx +12 -0
- package/src/components/Breadcrumb.tsx +33 -0
- package/src/components/Checkbox.tsx +32 -0
- package/src/components/ConsequenceTable.tsx +38 -0
- package/src/components/DatasetDropdown.tsx +44 -0
- package/src/components/Error.tsx +9 -0
- package/src/components/FieldHeader.tsx +26 -0
- package/src/components/GenomeBrowser.tsx +114 -0
- package/src/components/InfoCollapsablePane.tsx +68 -0
- package/src/components/Loader.tsx +5 -0
- package/src/components/SampleTable.tsx +118 -0
- package/src/components/SearchBox.tsx +44 -0
- package/src/components/Sort.tsx +58 -0
- package/src/components/VariantInfoNestedTable.tsx +117 -0
- package/src/components/VariantInfoTable.tsx +30 -0
- package/src/components/VariantSampleTable.tsx +56 -0
- package/src/components/VariantTable.tsx +71 -0
- package/src/components/VariantsSampleTable.tsx +87 -0
- package/src/components/VariantsTable.tsx +135 -0
- package/src/components/VcfHeaderRow.tsx +15 -0
- package/src/components/filter/Filter.tsx +34 -0
- package/src/components/filter/FilterCategorical.tsx +66 -0
- package/src/components/filter/FilterIntegerDp.tsx +24 -0
- package/src/components/filter/FilterIntegerVid.tsx +28 -0
- package/src/components/filter/FilterIntegerVim.tsx +24 -0
- package/src/components/filter/Filters.tsx +27 -0
- package/src/components/filter/InfoFilter.tsx +36 -0
- package/src/components/filter/InfoFilters.tsx +32 -0
- package/src/components/filter/SampleFilters.tsx +44 -0
- package/src/components/filter/SamplesFilters.tsx +31 -0
- package/src/components/record/Allele.tsx +38 -0
- package/src/components/record/AlleleBreakend.tsx +5 -0
- package/src/components/record/AlleleMissing.tsx +5 -0
- package/src/components/record/AlleleNucs.tsx +49 -0
- package/src/components/record/AlleleSymbolic.tsx +5 -0
- package/src/components/record/Alt.tsx +17 -0
- package/src/components/record/Chrom.tsx +5 -0
- package/src/components/record/Filter.tsx +9 -0
- package/src/components/record/Format.tsx +31 -0
- package/src/components/record/Id.tsx +9 -0
- package/src/components/record/Info.tsx +53 -0
- package/src/components/record/Pager.tsx +64 -0
- package/src/components/record/Pos.tsx +5 -0
- package/src/components/record/Qual.tsx +5 -0
- package/src/components/record/RecordDownload.tsx +36 -0
- package/src/components/record/Ref.tsx +6 -0
- package/src/components/record/field/Field.tsx +20 -0
- package/src/components/record/field/FieldMultipleValue.tsx +22 -0
- package/src/components/record/field/FieldSingleValue.tsx +35 -0
- package/src/components/record/field/FieldValueCharacter.tsx +11 -0
- package/src/components/record/field/FieldValueFlag.tsx +11 -0
- package/src/components/record/field/FieldValueFloat.tsx +17 -0
- package/src/components/record/field/FieldValueInteger.tsx +11 -0
- package/src/components/record/field/FieldValueString.tsx +14 -0
- package/src/components/record/format/GenotypeField.tsx +63 -0
- package/src/components/record/info/ClinVar.tsx +37 -0
- package/src/components/record/info/Consequence.tsx +19 -0
- package/src/components/record/info/Gene.tsx +11 -0
- package/src/components/record/info/GnomAD.tsx +29 -0
- package/src/components/record/info/Hgvs.tsx +18 -0
- package/src/components/record/info/HpoTerm.tsx +12 -0
- package/src/components/record/info/PubMed.tsx +19 -0
- package/src/components/tree/DecisionTreeBoolMultiQuery.tsx +21 -0
- package/src/components/tree/DecisionTreeBoolQuery.tsx +22 -0
- package/src/components/tree/DecisionTreeNode.tsx +64 -0
- package/src/components/tree/DecisionTreeNodeBool.tsx +35 -0
- package/src/components/tree/DecisionTreeNodeBoolMulti.tsx +32 -0
- package/src/components/tree/DecisionTreeNodeCategorical.tsx +32 -0
- package/src/components/tree/DecisionTreeNodeExists.tsx +25 -0
- package/src/components/tree/DecisionTreeNodeLeaf.tsx +6 -0
- package/src/components/tree/DecisionTreeOutcomeNode.tsx +11 -0
- package/src/components/tree/DecisionTreePath.tsx +27 -0
- package/src/igv.d.ts +4 -1
- package/src/index.tsx +40 -0
- package/src/mocks/GRCh37/alignment.bam.blob +0 -0
- package/src/mocks/GRCh37/decisionTree.json +354 -0
- package/src/mocks/GRCh37/fasta/1-10042288-10042788.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/1-152520538-152521038.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/1-16375333-16375833.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/1-16376162-16376662.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/1-17348965-17349469.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/1-17348969-17349469.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/1-17354844-17355344.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/10-126091249-126091749.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/11-134013975-134014475.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/13-77569878-77570378.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/14-105167610-105168110.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/14-89307588-89308088.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/14-89309945-89310445.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/14-89336157-89336657.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/17-29555814-29556314.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/17-29585172-29585672.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/17-29663629-29664129.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/17-29675976-29676476.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/17-29683733-29684233.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/19-11215896-11216396.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/19-11223801-11224301.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/19-17449149-17449649.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/19-17451747-17452247.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/2-47635417-47635917.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/20-62326742-62327242.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/22-50627343-50627843.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/22-50721296-50721796.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/4-106320044-106320544.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/7-42017061-42017561.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/7-42064707-42065207.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/8-145140250-145140750.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/8-61764893-61765393.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/9-107546383-107546883.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/9-107584614-107585114.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/MT-15076-15576.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/X-48932771-48933271.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/fasta/Y-2655391-2655891.fasta.gz.blob +0 -0
- package/src/mocks/GRCh37/genes.txt.gz.blob +0 -0
- package/src/mocks/GRCh37/static.ts +192 -0
- package/src/mocks/GRCh37/vcf/family.vcf.blob +104 -0
- package/src/mocks/GRCh37/vcf/no_vep.vcf.blob +61 -0
- package/src/mocks/GRCh37/vcf/samples_0.vcf.blob +93 -0
- package/src/mocks/GRCh37/vcf/samples_1.vcf.blob +93 -0
- package/src/mocks/GRCh37/vcf/samples_100.vcf.blob +93 -0
- package/src/mocks/GRCh38/alignment.bam.blob +0 -0
- package/src/mocks/GRCh38/decisionTree.json +369 -0
- package/src/mocks/GRCh38/fasta/chr1-152548062-152548562.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr1-16049667-16050167.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr1-17022474-17022974.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr1-9982230-9982730.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr10-124402680-124403180.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr11-134144080-134144580.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr13-76995743-76996243.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr14-104701273-104701773.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr14-88869813-88870313.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr17-31228796-31229296.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr17-31336611-31337111.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr19-11105220-11105720.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr19-17340938-17341438.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr2-47408278-47408778.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr20-63695389-63695889.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr22-50188914-50189414.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr22-50282867-50283367.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr4-105398887-105399387.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr7-41977462-41977962.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr7-42025108-42025608.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr8-144085347-144085847.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr8-60852334-60852834.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chr9-104784102-104784602.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chrM-15075-15575.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chrX-49075112-49075612.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/fasta/chrY-2787350-2787850.fasta.gz.blob +0 -0
- package/src/mocks/GRCh38/genes.txt.gz.blob +0 -0
- package/src/mocks/GRCh38/static.ts +170 -0
- package/src/mocks/GRCh38/vcf/family.vcf.blob +270 -0
- package/src/mocks/GRCh38/vcf/no_vep.vcf.blob +238 -0
- package/src/mocks/GRCh38/vcf/samples_0.vcf.blob +265 -0
- package/src/mocks/GRCh38/vcf/samples_1.vcf.blob +266 -0
- package/src/mocks/GRCh38/vcf/samples_100.vcf.blob +266 -0
- package/src/mocks/MockApiClient.ts +375 -0
- package/src/mocks/static.ts +1636 -0
- package/src/mocks/utils.ts +16 -0
- package/src/store/index.tsx +163 -0
- package/src/utils/ApiUtils.ts +253 -0
- package/src/utils/decisionTreeUtils.ts +14 -0
- package/src/utils/field.ts +49 -0
- package/src/utils/query.ts +130 -0
- package/src/utils/sample.ts +5 -0
- package/src/utils/sortUtils.ts +65 -0
- package/src/utils/utils.ts +3 -0
- package/src/utils/viewUtils.ts +38 -0
- package/src/views/Home.tsx +121 -0
- package/src/views/Sample.tsx +26 -0
- package/src/views/SampleVariant.tsx +115 -0
- package/src/views/SampleVariantConsequence.tsx +105 -0
- package/src/views/SampleVariants.tsx +244 -0
- package/src/views/Samples.tsx +57 -0
- package/src/views/Variant.tsx +63 -0
- package/src/views/VariantConsequence.tsx +69 -0
- package/src/views/Variants.tsx +123 -0
- package/src/views/data/SampleData.tsx +11 -0
- package/src/views/data/SampleVariantConsequenceData.tsx +12 -0
- package/src/views/data/SampleVariantData.tsx +13 -0
- package/src/views/data/VariantConsequenceData.tsx +9 -0
- package/src/views/data/VariantData.tsx +12 -0
- package/tsconfig.json +9 -39
- package/vite.config.ts +18 -0
- package/.browserslistrc +0 -3
- package/.env +0 -2
- package/.prettierrc +0 -5
- package/.scannerwork/.sonar_lock +0 -0
- package/.scannerwork/css-bundle/stylelintconfig.json +0 -1
- package/.scannerwork/report-task.txt +0 -8
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_App_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Alerts_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Allele_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Anchor_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_AnnotationsNav_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Gene_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_GenomeBrowser_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Genotype_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_Identifiers_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_InfoButton_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_NavigationBar_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_PubMedAnchor_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordCommonDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoDetailsItemMultiline_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoDetailsItemValue_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoDetailsItem_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoNestedDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordInfoUnnestedDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordSampleDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordTableControls_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_RecordTable_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SampleDetails_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SampleInfo_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SampleNavigation_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SamplePedigree_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SamplePheno_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_SampleReport_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_TreeVisualisation_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_annotation_AnnotationControl_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_annotation_ClassificationAnnotation_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_annotation_GeneMatchAnnotation_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_components_annotation_NotesAnnotation_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_globals_filters_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_globals_utils_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_store_actions_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_store_getters_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_store_mutations_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_store_state_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_Alert_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_Annotations_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_Consequence_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_Gene_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_GenomeBrowserDb_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_State_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_types_Variant_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_utils_treeBuilder_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_utils_treeDrawer_ts_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_views_About_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_views_DecisionTreeViewer_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_views_Samples_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/_home_travis_build_molgenis_vip_report_template_src_views_VcfViewer_vue_1_1_P1_ENTRY.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_App_vue_27_16_FE_145_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_Allele_vue_26_9_FE_40_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_Allele_vue_38_18_FE_41_bas.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_29_19_FE_90_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_32_20_FE_91_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_36_24_A_65_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_44_25_A_66_eve.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_55_20_FE_92_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_AnnotationsNav_vue_61_20_FE_93_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_138_19_FE_28_new.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_19_7_FE_22_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_26_21_FE_23_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_29_30_FE_24_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_32_30_FE_25_rec.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_47_30_FE_26_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_52_30_FE_27_rec.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_GenomeBrowser_vue_73_26_A_26_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_Genotype_vue_39_17_FE_86_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_Genotype_vue_46_21_FE_87_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_Genotype_vue_49_48_A_33_a_b.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordCommonDetails_vue_80_11_FE_119_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordCommonDetails_vue_86_10_FE_120_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetailsItemValue_vue_114_23_FE_34_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetailsItemValue_vue_123_13_FE_35_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetailsItemValue_vue_151_16_FE_36_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetailsItemValue_vue_94_19_FE_32_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetailsItemValue_vue_99_22_FE_33_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_32_23_FE_99_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_33_68_A_68_inf.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_37_21_FE_100_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_38_66_A_69_inf.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_44_17_FE_101_thi_tha.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoDetails_vue_47_18_FE_102_met.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoNestedDetails_vue_36_11_FE_29_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoNestedDetails_vue_52_10_FE_30_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoNestedDetails_vue_57_12_FE_31_ind.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoUnnestedDetails_vue_39_11_FE_46_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoUnnestedDetails_vue_46_10_FE_47_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordInfoUnnestedDetails_vue_59_18_FE_48_thi_tha.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_257_9_FE_1_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_298_19_FE_2_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_301_11_FE_3_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_346_13_FE_4_ctx.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_354_44_A_11_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_361_9_FE_5_rec_ind_but.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_366_19_FE_6_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_370_16_FE_7_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_403_22_FE_8_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_410_33_FE_9_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_437_28_FE_10_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_444_31_FE_11_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_451_24_FE_12_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_454_32_FE_13_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_456_18_A_12_phe.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_457_14_A_13_phe.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_464_15_FE_14_ctx.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_472_19_A_14_a_b.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_481_19_A_15_a_b.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_505_19_FE_15_rec.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_511_41_A_16_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_520_41_A_17_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_532_43_A_18_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_537_41_A_19_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_541_41_A_20_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_545_41_A_21_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_556_41_A_22_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_560_41_A_23_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_564_41_A_24_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_568_41_A_25_con.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_580_11_FE_16_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_584_33_FE_17_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_587_44_FE_18_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_591_46_FE_19_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_595_41_FE_20_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_RecordTable_vue_599_40_FE_21_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_23_19_FE_49_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_24_34_A_28_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_31_10_FE_50_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_34_13_FE_51_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_37_13_FE_52_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_SampleNavigation_vue_40_15_FE_53_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_SamplePedigree_vue_30_19_FE_103_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_SamplePedigree_vue_34_19_FE_104_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_SamplePheno_vue_44_15_FE_0_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_101_10_FE_58_cli.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_104_10_FE_59_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_109_10_FE_60_cli.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_112_10_FE_61_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_116_13_FE_62_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_120_9_FE_63_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_124_14_FE_64_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_127_13_FE_65_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_130_10_FE_66_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_133_10_FE_67_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_138_10_FE_68_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_141_10_FE_69_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_144_15_FE_70_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_149_14_FE_71_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_153_14_FE_72_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_162_14_FE_73_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_167_11_FE_74_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_170_11_FE_75_pro.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_176_16_FE_76_nod_g.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_177_21_A_29_nod.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_181_16_FE_77_edg_g.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_182_21_A_30_edg.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_186_18_FE_78_nod_edg.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_199_14_FE_79_g.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_209_15_FE_80_svg_min_max.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_216_21_A_31_eve.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_225_11_FE_81_nod_edg.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_232_12_FE_82_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_69_10_FE_54_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_72_10_FE_55_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_75_12_FE_56_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_TreeVisualisation_vue_78_7_FE_57_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_AnnotationControl_vue_20_18_FE_88_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_AnnotationControl_vue_27_13_FE_89_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_ClassificationAnnotation_vue_12_7_FE_142_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_ClassificationAnnotation_vue_27_13_FE_143_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_ClassificationAnnotation_vue_32_10_FE_144_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_GeneMatchAnnotation_vue_12_7_FE_94_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_GeneMatchAnnotation_vue_23_13_FE_95_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_GeneMatchAnnotation_vue_28_10_FE_96_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_NotesAnnotation_vue_22_7_FE_42_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_NotesAnnotation_vue_29_13_FE_43_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_NotesAnnotation_vue_34_10_FE_44_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_components_annotation_NotesAnnotation_vue_40_15_FE_45_el.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_filters_ts_12_29_FE_37_x_Ptr.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_filters_ts_17_23_FE_38_thi_tha.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_133_1_FD_2_getInfoConsequences.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_233_1_FD_3_hasVepConsequences.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_238_1_FD_4_getVepConsequences.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_267_1_FD_5_hasSnpEffConsequences.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_272_1_FD_6_getSnpEffConsequences.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_364_1_FD_7_sortConsequences.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_394_8_FD_8_getConsequences.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_406_1_FD_9_getVepPhenotypesIndex.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_422_8_FD_10_getPhenotypesSelector.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_430_1_FD_11_getVepInheritanceModesGeneIndex.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_446_8_FD_12_getInheritanceModesGeneSelector.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_454_8_FD_13_getVariant.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_59_1_FD_0_createConsequence.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_globals_utils_ts_93_1_FD_1_createConsequences.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_100_27_FE_135_Ptr_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_103_26_FE_136_Ptr_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_106_11_FE_137_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_110_13_FE_138_Ptr_loc.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_113_13_FE_139_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_117_9_FE_140_Ptr_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_120_24_FE_141_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_129_8_FD_14_setTestApi.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_25_21_FE_121_Ptr.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_29_24_FE_122_Ptr.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_40_20_FE_123_Ptr.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_45_21_FE_124_Ptr_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_57_24_FE_125_Ptr.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_67_20_FE_126_Ptr_par.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_71_15_FE_127_Ptr_rec.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_74_14_FE_128_Ptr_ale.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_77_20_FE_129_Ptr.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_80_21_FE_130_Ptr.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_83_20_FE_131_Ptr_ann.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_86_19_FE_132_Ptr_ann.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_94_30_FE_133_Ptr_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_actions_ts_97_32_FE_134_Ptr_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_100_5_A_83_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_101_5_A_84_rec.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_129_24_A_85_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_13_23_FE_118_thi_tha.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_141_46_A_86_ite.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_150_31_A_87_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_162_64_A_88_ite.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_171_32_A_89_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_184_27_A_90_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_197_26_A_91_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_24_5_A_72_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_25_5_A_73_id.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_29_39_A_74_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_31_19_A_75_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_42_37_A_76_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_44_19_A_77_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_55_37_A_78_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_57_20_A_79_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_7_12_A_71_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_87_14_A_80_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_90_20_A_81_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_getters_ts_96_24_A_82_sta.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_10_13_FE_106_sta_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_13_20_FE_107_sta_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_17_30_FE_108_sta_phe.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_20_13_FE_109_sta_rec.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_24_20_FE_110_sta_rec.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_27_11_FE_111_sta_ale.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_32_14_FE_112_sta_ale.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_33_40_A_70_anA.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_35_17_FE_113_sta_ann.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_38_30_FE_114_sta_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_41_32_FE_115_sta_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_44_27_FE_116_sta_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_47_26_FE_117_sta_val.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_store_mutations_ts_7_14_FE_105_sta_met.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_111_33_A_10_k.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_13_30_A_0_inp.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_14_43_A_1_key.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_24_29_A_2_lab_typ_que.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_34_33_A_3_out_nod_key_edg.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_48_27_A_4_nex_lab_key_edg.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_62_30_A_5_inp.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_64_40_A_6_key.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_75_31_A_7_out.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_78_18_A_8_que.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeBuilder_ts_90_46_A_9_cat.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_103_29_A_49_lab.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_104_35_A_50_a_b.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_109_32_A_51_svg_pro.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_113_24_A_52_thi_nex_thi_nex_xOf_yOf_bar.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_12_26_A_34_fon.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_133_24_A_53_lab_fon_typ_fon.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_153_18_A_54_svg_x1_y1_x2_y2_str.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_16_41_A_35_fon.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_171_18_A_55_gEl_x_y_wid_hei_isE.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_192_18_A_56_gEl_x_y_lab_fon_nod.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_20_34_A_36_bar.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_210_25_A_57_svg.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_226_29_A_58_ele_can_can.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_234_23_A_59_bar_g_e_fon_val_off_svg.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_24_28_A_37_edg.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_254_18_A_60_coo_bar_svg_nex_ind.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_273_26_A_61_svg_g_fon_gra_gra_hor.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_282_21_A_62_v.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_28_30_A_38_svg_gra.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_301_26_A_63_svg_g_bar_fon_gra_gra_hor.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_312_21_A_64_e.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_32_36_A_39_wid_hei.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_39_26_A_40_y_ind_fon_yOf.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_43_26_A_41_y_ind_fon_lab.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_48_17_A_42_y_bar_off.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_55_17_A_43_x_xOf.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_59_26_A_44_xPo_tex.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_63_21_A_45_xPo_wid.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_71_20_A_46_svg_gra_hor.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_80_20_A_47_svg_gra.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_utils_treeDrawer_ts_85_22_A_48_inn_fon_fon.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_views_About_vue_14_10_FE_97_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_views_DecisionTreeViewer_vue_21_9_A_27_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_views_DecisionTreeViewer_vue_24_16_FE_39_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_views_Samples_vue_29_10_FE_83_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_views_Samples_vue_33_16_FE_84_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_views_Samples_vue_40_40_A_32_sam.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_views_Samples_vue_47_11_FE_85_to_fro.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_views_VcfViewer_vue_16_9_A_67_0.ucfg +0 -0
- package/.scannerwork/ucfg2/js/src_views_VcfViewer_vue_22_16_FE_98_0.ucfg +0 -0
- package/babel.config.js +0 -3
- package/jest.config.js +0 -5
- package/public/index.html +0 -19
- package/sonar-project.properties +0 -6
- package/src/App.vue +0 -149
- package/src/components/Alerts.vue +0 -28
- package/src/components/Allele.vue +0 -48
- package/src/components/Anchor.vue +0 -16
- package/src/components/AnnotationsNav.vue +0 -66
- package/src/components/Gene.vue +0 -32
- package/src/components/GenomeBrowser.vue +0 -143
- package/src/components/Genotype.vue +0 -59
- package/src/components/Identifiers.vue +0 -32
- package/src/components/InfoButton.vue +0 -15
- package/src/components/NavigationBar.vue +0 -27
- package/src/components/PubMedAnchor.vue +0 -25
- package/src/components/RecordCommonDetails.vue +0 -106
- package/src/components/RecordDetails.vue +0 -56
- package/src/components/RecordInfoDetails.vue +0 -58
- package/src/components/RecordInfoDetailsItem.vue +0 -44
- package/src/components/RecordInfoDetailsItemMultiline.vue +0 -26
- package/src/components/RecordInfoDetailsItemValue.vue +0 -166
- package/src/components/RecordInfoNestedDetails.vue +0 -73
- package/src/components/RecordInfoUnnestedDetails.vue +0 -66
- package/src/components/RecordSampleDetails.vue +0 -32
- package/src/components/RecordTable.vue +0 -605
- package/src/components/RecordTableControls.vue +0 -55
- package/src/components/SampleDetails.vue +0 -91
- package/src/components/SampleInfo.vue +0 -36
- package/src/components/SampleNavigation.vue +0 -45
- package/src/components/SamplePedigree.vue +0 -40
- package/src/components/SamplePheno.vue +0 -55
- package/src/components/SampleReport.vue +0 -36
- package/src/components/TreeVisualisation.vue +0 -240
- package/src/components/annotation/AnnotationControl.vue +0 -46
- package/src/components/annotation/ClassificationAnnotation.vue +0 -37
- package/src/components/annotation/GeneMatchAnnotation.vue +0 -33
- package/src/components/annotation/NotesAnnotation.vue +0 -46
- package/src/globals/filters.ts +0 -19
- package/src/globals/utils.ts +0 -467
- package/src/i18n.ts +0 -23
- package/src/locales/en.json +0 -82
- package/src/main.ts +0 -22
- package/src/mocks/apiDataMock.ts +0 -173
- package/src/plugins/bootstrap-vue.ts +0 -68
- package/src/router/index.ts +0 -48
- package/src/shims-tsx.d.ts +0 -13
- package/src/shims-vue.d.ts +0 -4
- package/src/store/actions.ts +0 -131
- package/src/store/getters.ts +0 -207
- package/src/store/mutations.ts +0 -50
- package/src/store/state.ts +0 -18
- package/src/store/store.ts +0 -16
- package/src/types/Alert.ts +0 -5
- package/src/types/Annotations.ts +0 -14
- package/src/types/Consequence.ts +0 -36
- package/src/types/DecisionTree.d.ts +0 -96
- package/src/types/Gene.ts +0 -4
- package/src/types/GenomeBrowserDb.ts +0 -7
- package/src/types/State.ts +0 -18
- package/src/types/Variant.ts +0 -6
- package/src/types/dagreGraphlib.d.ts +0 -596
- package/src/types/graphlib.d.ts +0 -1
- package/src/types/layout.d.ts +0 -1
- package/src/utils/treeBuilder.ts +0 -112
- package/src/utils/treeDrawer.ts +0 -359
- package/src/views/About.vue +0 -18
- package/src/views/DecisionTreeViewer.vue +0 -31
- package/src/views/Samples.vue +0 -55
- package/src/views/VcfViewer.vue +0 -27
- package/tests/unit/globals/filters.spec.ts +0 -25
- package/tests/unit/globals/utils.spec.ts +0 -453
- package/tests/unit/store/actions.spec.ts +0 -191
- package/tests/unit/store/getters.spec.ts +0 -660
- package/tests/unit/store/mutations.spec.ts +0 -80
- package/tests/unit/utils/treeBuilder.spec.ts +0 -320
- package/tests/unit/utils/treeDrawer.spec.ts +0 -104
- package/vue.config.js +0 -36
package/src/utils/treeBuilder.ts
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DecisionTree,
|
|
3
|
-
Node,
|
|
4
|
-
NodeWithOutcome,
|
|
5
|
-
OutcomeEnum,
|
|
6
|
-
OutcomeTypeEnum,
|
|
7
|
-
Query,
|
|
8
|
-
TreeEdgesArray,
|
|
9
|
-
TreeEdgesObj,
|
|
10
|
-
TreeNodes
|
|
11
|
-
} from '@/types/DecisionTree';
|
|
12
|
-
|
|
13
|
-
export const retrieveNodes = (inputTree: DecisionTree): TreeNodes => {
|
|
14
|
-
return Object.keys(inputTree.nodes).map((key) => {
|
|
15
|
-
const node = inputTree.nodes[key];
|
|
16
|
-
return {
|
|
17
|
-
id: key,
|
|
18
|
-
label: getNodeLabel(key, node.type, 'query' in node ? node.query : undefined),
|
|
19
|
-
type: node.type
|
|
20
|
-
};
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export const getNodeLabel = (label: string, type: string, query: Query | undefined): string => {
|
|
25
|
-
if (query) {
|
|
26
|
-
return `${label}\n(${query.operator} ${query.value})`;
|
|
27
|
-
} else if (type === 'EXISTS') {
|
|
28
|
-
return `${label}\n(exists)`;
|
|
29
|
-
} else {
|
|
30
|
-
return label;
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export const createSimpleEdge = (
|
|
35
|
-
outcomeType: OutcomeTypeEnum,
|
|
36
|
-
node: NodeWithOutcome,
|
|
37
|
-
key: string,
|
|
38
|
-
edges: TreeEdgesObj
|
|
39
|
-
): TreeEdgesObj => {
|
|
40
|
-
const outcome: OutcomeEnum = <OutcomeEnum>`outcome${outcomeType}`;
|
|
41
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
42
|
-
// @ts-ignore
|
|
43
|
-
const nextNode: string = node[outcome].nextNode;
|
|
44
|
-
edges = createEdge(nextNode, outcomeType, key, edges);
|
|
45
|
-
return edges;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export const createEdge = (nextNode: string, label: string, key: string, edges: TreeEdgesObj): TreeEdgesObj => {
|
|
49
|
-
const edgeKey = `${key}_${nextNode}`;
|
|
50
|
-
if (edges[edgeKey] === undefined) {
|
|
51
|
-
edges[edgeKey] = {
|
|
52
|
-
from: key,
|
|
53
|
-
to: nextNode,
|
|
54
|
-
label: label
|
|
55
|
-
};
|
|
56
|
-
} else {
|
|
57
|
-
edges[edgeKey].label = `${edges[edgeKey].label}\n${label}`;
|
|
58
|
-
}
|
|
59
|
-
return edges;
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export const retrieveEdges = (inputTree: DecisionTree): TreeEdgesArray => {
|
|
63
|
-
let edges: TreeEdgesObj = {};
|
|
64
|
-
Object.keys(inputTree.nodes).forEach((key) => {
|
|
65
|
-
const node: Node = inputTree.nodes[key];
|
|
66
|
-
switch (node.type) {
|
|
67
|
-
case 'BOOL':
|
|
68
|
-
edges = createSimpleEdge('True', node, key, edges);
|
|
69
|
-
edges = createSimpleEdge('False', node, key, edges);
|
|
70
|
-
if ('outcomeMissing' in node) {
|
|
71
|
-
edges = createSimpleEdge('Missing', node, key, edges);
|
|
72
|
-
}
|
|
73
|
-
break;
|
|
74
|
-
case 'BOOL_MULTI':
|
|
75
|
-
node.outcomes.forEach((outcome) => {
|
|
76
|
-
const nextNode = outcome.outcomeTrue.nextNode;
|
|
77
|
-
const label = outcome.queries
|
|
78
|
-
.map((query) => `${query.field} ${query.operator} ${query.value}`)
|
|
79
|
-
.join(` ${outcome.operator} `);
|
|
80
|
-
edges = createEdge(nextNode, label, key, edges);
|
|
81
|
-
});
|
|
82
|
-
if ('outcomeMissing' in node) {
|
|
83
|
-
edges = createSimpleEdge('Missing', node, key, edges);
|
|
84
|
-
}
|
|
85
|
-
if ('outcomeDefault' in node) {
|
|
86
|
-
edges = createSimpleEdge('Default', node, key, edges);
|
|
87
|
-
}
|
|
88
|
-
break;
|
|
89
|
-
case 'CATEGORICAL':
|
|
90
|
-
Object.keys(node.outcomeMap).forEach((category) => {
|
|
91
|
-
const nextNode = node.outcomeMap[category].nextNode;
|
|
92
|
-
edges = createEdge(nextNode, category, key, edges);
|
|
93
|
-
});
|
|
94
|
-
if ('outcomeMissing' in node) {
|
|
95
|
-
edges = createSimpleEdge('Missing', node, key, edges);
|
|
96
|
-
}
|
|
97
|
-
if ('outcomeDefault' in node) {
|
|
98
|
-
edges = createSimpleEdge('Default', node, key, edges);
|
|
99
|
-
}
|
|
100
|
-
break;
|
|
101
|
-
case 'EXISTS':
|
|
102
|
-
edges = createSimpleEdge('True', node, key, edges);
|
|
103
|
-
edges = createSimpleEdge('False', node, key, edges);
|
|
104
|
-
break;
|
|
105
|
-
case 'LEAF':
|
|
106
|
-
break;
|
|
107
|
-
default:
|
|
108
|
-
throw new Error('unknown node type');
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
return Object.keys(edges).map((k) => edges[k]);
|
|
112
|
-
};
|
package/src/utils/treeDrawer.ts
DELETED
|
@@ -1,359 +0,0 @@
|
|
|
1
|
-
import { Edge, Graph } from '@dagrejs/graphlib';
|
|
2
|
-
import { Selection } from 'd3-selection';
|
|
3
|
-
import { Coordinates } from '@/types/DecisionTree';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Functions that calculate reference sizes
|
|
7
|
-
*/
|
|
8
|
-
const fontSizeToBarHeightRatio = 3;
|
|
9
|
-
|
|
10
|
-
const nodeSideMargin = 5;
|
|
11
|
-
|
|
12
|
-
const getLineThickness = (fontSize: number): number => {
|
|
13
|
-
return fontSize / 10;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const getBarHeightFromFontSize = (fontSize: number): number => {
|
|
17
|
-
return fontSizeToBarHeightRatio * fontSize;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const getFontSizeFromBarHeight = (barHeight: number): number => {
|
|
21
|
-
return barHeight / fontSizeToBarHeightRatio;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const getMiddleEdgeIndex = (edges: { x: number; y: number }[]): number => {
|
|
25
|
-
return Math.floor(edges.length / 2);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export const getGraphScale = (svgSize: number, graphSize: number): number => {
|
|
29
|
-
return svgSize / (graphSize + 50);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export const calculateScaleToFit = (widthScale: number, heightScale: number): number => {
|
|
33
|
-
return Math.min(heightScale, widthScale);
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Functions that calculate y positions
|
|
38
|
-
*/
|
|
39
|
-
const getEdgeLabelYPos = (y: number, index: number, fontSize: number, yOffset: number): number => {
|
|
40
|
-
return y + index * fontSize + fontSize + yOffset;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const getNodeLabelYPos = (y: number, index: number, fontSize: number, labelLength: number): number => {
|
|
44
|
-
const margin = (getBarHeightFromFontSize(fontSize) - labelLength * fontSize) / 2;
|
|
45
|
-
return y + index * fontSize + fontSize + margin;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const getYPos = (y: number, barHeight: number, offset: number): number => {
|
|
49
|
-
return y + barHeight / 2 + offset;
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Functions that calculate x positions
|
|
54
|
-
*/
|
|
55
|
-
const getXPos = (x: number, xOffset: number): number => {
|
|
56
|
-
return x + xOffset;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
const getEdgeLabelXPos = (xPos: number, textWidth: number): number => {
|
|
60
|
-
return xPos + textWidth / 2 + 2;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const getNodeXPos = (xPos: number, width: number): number => {
|
|
64
|
-
return xPos - width / 2;
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Functions retrieve the sizes of elements on the screen
|
|
69
|
-
*/
|
|
70
|
-
|
|
71
|
-
const getXOffset = (svgWidth: number, graphWidth: number, horizontal: boolean): number => {
|
|
72
|
-
// Center the graph in the canvas
|
|
73
|
-
if (horizontal) {
|
|
74
|
-
return 25;
|
|
75
|
-
} else {
|
|
76
|
-
return svgWidth > graphWidth ? (svgWidth - graphWidth) / 2 : 100;
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
const getYOffset = (svgHeight: number, graphHeight: number): number => {
|
|
81
|
-
// Center the graph in the canvas when the layout is horizontal
|
|
82
|
-
return svgHeight > graphHeight ? (svgHeight - graphHeight) / 2 : 100;
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
const getTextWidth = (innerText: string, fontSize: number, font: string): number => {
|
|
86
|
-
const text = document.createElement('span');
|
|
87
|
-
document.body.appendChild(text);
|
|
88
|
-
text.style.font = font;
|
|
89
|
-
text.style.fontSize = fontSize + 'px';
|
|
90
|
-
text.style.height = 'auto';
|
|
91
|
-
text.style.width = 'auto';
|
|
92
|
-
text.style.position = 'absolute';
|
|
93
|
-
text.style.whiteSpace = 'no-wrap';
|
|
94
|
-
text.innerHTML = innerText;
|
|
95
|
-
const width = Math.ceil(text.clientWidth);
|
|
96
|
-
document.body.removeChild(text);
|
|
97
|
-
return width;
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Helper functions
|
|
102
|
-
* */
|
|
103
|
-
const getLongestLabelPart = (label: string): string => {
|
|
104
|
-
return label.split('\n').reduce((a, b) => {
|
|
105
|
-
return a.length > b.length ? a : b;
|
|
106
|
-
});
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
const getSizePropertyFromSvg = (svg: Selection<SVGSVGElement, never, null, undefined>, property: string): number => {
|
|
110
|
-
return Number(svg.style(property).replace('px', ''));
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
const getCoordinates = (
|
|
114
|
-
thisX: number,
|
|
115
|
-
nextX: number,
|
|
116
|
-
thisY: number,
|
|
117
|
-
nextY: number,
|
|
118
|
-
xOffset: number,
|
|
119
|
-
yOffset: number,
|
|
120
|
-
barHeight: number
|
|
121
|
-
): Coordinates => {
|
|
122
|
-
return {
|
|
123
|
-
x1: getXPos(thisX, xOffset),
|
|
124
|
-
x2: getXPos(nextX, xOffset),
|
|
125
|
-
y1: getYPos(thisY, barHeight, yOffset),
|
|
126
|
-
y2: getYPos(nextY, barHeight, yOffset)
|
|
127
|
-
};
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Functions define data to prepare for drawing
|
|
132
|
-
*/
|
|
133
|
-
export const getNode = (
|
|
134
|
-
label: string,
|
|
135
|
-
fontSize: number,
|
|
136
|
-
type: string,
|
|
137
|
-
font: string
|
|
138
|
-
): { width: number; label: string; type: string; height: number } => {
|
|
139
|
-
const longestLabel = getLongestLabelPart(label);
|
|
140
|
-
const textWidth = exportFunctions.getTextWidth(longestLabel, fontSize, font);
|
|
141
|
-
const barHeight = getBarHeightFromFontSize(fontSize);
|
|
142
|
-
return {
|
|
143
|
-
label: label,
|
|
144
|
-
width: textWidth + 2 * nodeSideMargin,
|
|
145
|
-
type: type,
|
|
146
|
-
height: barHeight
|
|
147
|
-
};
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Functions that define elements (that help) to draw on the screen
|
|
152
|
-
*/
|
|
153
|
-
const drawLine = (
|
|
154
|
-
svg: Selection<SVGSVGElement, never, null, undefined>,
|
|
155
|
-
x1: number,
|
|
156
|
-
y1: number,
|
|
157
|
-
x2: number,
|
|
158
|
-
y2: number,
|
|
159
|
-
strokeWidth: number
|
|
160
|
-
) => {
|
|
161
|
-
return svg
|
|
162
|
-
.append('line')
|
|
163
|
-
.style('stroke', 'black')
|
|
164
|
-
.style('stroke-width', strokeWidth)
|
|
165
|
-
.attr('x1', x1)
|
|
166
|
-
.attr('y1', y1)
|
|
167
|
-
.attr('x2', x2)
|
|
168
|
-
.attr('y2', y2);
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
const drawNode = (
|
|
172
|
-
gElement: Selection<SVGGElement, never, null, undefined>,
|
|
173
|
-
x: number,
|
|
174
|
-
y: number,
|
|
175
|
-
width: number,
|
|
176
|
-
height: number,
|
|
177
|
-
isExitNode: boolean
|
|
178
|
-
) => {
|
|
179
|
-
const nodeClass = isExitNode ? 'tree-exit-node' : 'tree-node';
|
|
180
|
-
gElement
|
|
181
|
-
.append('rect')
|
|
182
|
-
.attr('x', x)
|
|
183
|
-
.attr('y', y)
|
|
184
|
-
.attr('width', width)
|
|
185
|
-
.attr('height', height)
|
|
186
|
-
.attr('stroke', 'black')
|
|
187
|
-
.attr('rx', 3)
|
|
188
|
-
.attr('ry', 3)
|
|
189
|
-
.attr('class', nodeClass);
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
const addLabel = (
|
|
193
|
-
gElement: Selection<SVGGElement, never, null, undefined> | Selection<SVGSVGElement, never, null, undefined>,
|
|
194
|
-
x: number,
|
|
195
|
-
y: number,
|
|
196
|
-
label: string,
|
|
197
|
-
fontSize: number,
|
|
198
|
-
nodeLabelClass: string
|
|
199
|
-
) => {
|
|
200
|
-
gElement
|
|
201
|
-
.append('text')
|
|
202
|
-
.attr('x', x)
|
|
203
|
-
.attr('y', y)
|
|
204
|
-
.attr('class', nodeLabelClass)
|
|
205
|
-
.style('font-size', `${fontSize}px`)
|
|
206
|
-
.style('text-anchor', 'middle')
|
|
207
|
-
.text(label);
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
const defineArrowHead = (svg: Selection<SVGSVGElement, never, null, undefined>) => {
|
|
211
|
-
svg
|
|
212
|
-
.append('defs')
|
|
213
|
-
.append('marker')
|
|
214
|
-
.attr('id', 'arrow')
|
|
215
|
-
.attr('viewBox', '0, 0, 10, 10')
|
|
216
|
-
.attr('refX', 9)
|
|
217
|
-
.attr('refY', 5)
|
|
218
|
-
.attr('markerWidth', 8)
|
|
219
|
-
.attr('markerHeight', 6)
|
|
220
|
-
.attr('orient', 'auto')
|
|
221
|
-
.append('path')
|
|
222
|
-
.attr('d', 'M 0 0 L 0 10 L 10 5')
|
|
223
|
-
.attr('stroke', 'black');
|
|
224
|
-
};
|
|
225
|
-
|
|
226
|
-
export const defineCanvas = (
|
|
227
|
-
element: Selection<Element, never, null, undefined>,
|
|
228
|
-
canvasWidth: number,
|
|
229
|
-
canvasHeight: number
|
|
230
|
-
): Selection<SVGSVGElement, never, null, undefined> => {
|
|
231
|
-
return element.append('svg').attr('width', canvasWidth).attr('height', canvasHeight);
|
|
232
|
-
};
|
|
233
|
-
|
|
234
|
-
const addEdgeLabels = (
|
|
235
|
-
barHeight: number,
|
|
236
|
-
g: Graph,
|
|
237
|
-
e: Edge,
|
|
238
|
-
font: string,
|
|
239
|
-
value: { x: number; y: number },
|
|
240
|
-
offset: { xOffset: number; yOffset: number },
|
|
241
|
-
svg: Selection<SVGSVGElement, never, null, undefined>
|
|
242
|
-
) => {
|
|
243
|
-
const fontSize = getFontSizeFromBarHeight(barHeight);
|
|
244
|
-
const labels = g.edge(e).label.split('\n');
|
|
245
|
-
const longestLabel = getLongestLabelPart(g.edge(e).label);
|
|
246
|
-
const textWidth = exportFunctions.getTextWidth(longestLabel, fontSize, font);
|
|
247
|
-
for (const [labelIndex, label] of labels.entries()) {
|
|
248
|
-
const xPos = getEdgeLabelXPos(getXPos(value.x, offset.xOffset), textWidth);
|
|
249
|
-
const yPos = getEdgeLabelYPos(value.y, labelIndex, fontSize, offset.yOffset);
|
|
250
|
-
addLabel(svg, xPos, yPos, label, fontSize, 'tree-edge-label');
|
|
251
|
-
}
|
|
252
|
-
};
|
|
253
|
-
|
|
254
|
-
const drawEdge = (
|
|
255
|
-
coordinates: Coordinates,
|
|
256
|
-
barHeight: number,
|
|
257
|
-
svg: Selection<SVGSVGElement, never, null, undefined>,
|
|
258
|
-
nextNodeIndex: number,
|
|
259
|
-
indexOfLastPoint: number
|
|
260
|
-
) => {
|
|
261
|
-
const lineThickness = getLineThickness(getFontSizeFromBarHeight(barHeight));
|
|
262
|
-
const drawnLine = drawLine(svg, coordinates.x1, coordinates.y1, coordinates.x2, coordinates.y2, lineThickness);
|
|
263
|
-
// if line == last line (node is 0 based, length is 1 based), add arrowhead
|
|
264
|
-
if (nextNodeIndex === indexOfLastPoint) {
|
|
265
|
-
defineArrowHead(svg);
|
|
266
|
-
drawnLine.attr('marker-end', 'url(#arrow)').attr('fill', 'none');
|
|
267
|
-
}
|
|
268
|
-
};
|
|
269
|
-
|
|
270
|
-
/**
|
|
271
|
-
* Functions that go through the nodes and edges to draw them on the screen
|
|
272
|
-
*/
|
|
273
|
-
export const drawNodes = (
|
|
274
|
-
svg: Selection<SVGSVGElement, never, null, undefined>,
|
|
275
|
-
g: Graph,
|
|
276
|
-
fontSize: number,
|
|
277
|
-
graphWidth: number,
|
|
278
|
-
graphHeight: number,
|
|
279
|
-
horizontal: boolean
|
|
280
|
-
): void => {
|
|
281
|
-
const xOffset = getXOffset(getSizePropertyFromSvg(svg, 'width'), graphWidth, horizontal);
|
|
282
|
-
g.nodes().forEach((v: string) => {
|
|
283
|
-
const node = g.node(v);
|
|
284
|
-
if (node.x && node.y) {
|
|
285
|
-
const gElement = svg.append('g');
|
|
286
|
-
const xPos = getXPos(node.x, xOffset);
|
|
287
|
-
const yOffset = getYOffset(getSizePropertyFromSvg(svg, 'height'), graphHeight);
|
|
288
|
-
const yPos = node.y + yOffset;
|
|
289
|
-
const isExitNode = node.type === 'LEAF';
|
|
290
|
-
drawNode(gElement, getNodeXPos(xPos, node.width), yPos, node.width, node.height, isExitNode);
|
|
291
|
-
const labels = node.label.split('\n');
|
|
292
|
-
for (const [labelIndex, label] of labels.entries()) {
|
|
293
|
-
const labelYPos = getNodeLabelYPos(yPos, labelIndex, fontSize, labels.length);
|
|
294
|
-
const nodeLabelClass = isExitNode ? 'tree-exit-node-label' : 'tree-node-label';
|
|
295
|
-
addLabel(gElement, xPos, labelYPos, label, fontSize, nodeLabelClass);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
});
|
|
299
|
-
};
|
|
300
|
-
|
|
301
|
-
export const drawEdges = (
|
|
302
|
-
svg: Selection<SVGSVGElement, never, null, undefined>,
|
|
303
|
-
g: Graph,
|
|
304
|
-
barHeight: number,
|
|
305
|
-
font: string,
|
|
306
|
-
graphWidth: number,
|
|
307
|
-
graphHeight: number,
|
|
308
|
-
horizontal: boolean
|
|
309
|
-
): void => {
|
|
310
|
-
const xOffset = getXOffset(getSizePropertyFromSvg(svg, 'width'), graphWidth, horizontal);
|
|
311
|
-
const yOffset = getYOffset(getSizePropertyFromSvg(svg, 'height'), graphHeight);
|
|
312
|
-
g.edges().forEach((e: Edge) => {
|
|
313
|
-
const points = g.edge(e).points;
|
|
314
|
-
if (points) {
|
|
315
|
-
for (const [nodeIndex, value] of points.entries()) {
|
|
316
|
-
const nextNodeIndex = nodeIndex + 1;
|
|
317
|
-
if (nextNodeIndex !== points.length) {
|
|
318
|
-
const coordinates = getCoordinates(
|
|
319
|
-
value.x,
|
|
320
|
-
points[nextNodeIndex].x,
|
|
321
|
-
value.y,
|
|
322
|
-
points[nextNodeIndex].y,
|
|
323
|
-
xOffset,
|
|
324
|
-
yOffset,
|
|
325
|
-
barHeight
|
|
326
|
-
);
|
|
327
|
-
drawEdge(coordinates, barHeight, svg, nextNodeIndex, points.length - 1);
|
|
328
|
-
if (nodeIndex === getMiddleEdgeIndex(points)) {
|
|
329
|
-
const labelXOffset = horizontal ? xOffset - 15 : xOffset;
|
|
330
|
-
addEdgeLabels(barHeight, g, e, font, value, { xOffset: labelXOffset, yOffset: yOffset }, svg);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
});
|
|
336
|
-
};
|
|
337
|
-
|
|
338
|
-
const exportFunctions = {
|
|
339
|
-
getLineThickness,
|
|
340
|
-
getBarHeightFromFontSize,
|
|
341
|
-
getFontSizeFromBarHeight,
|
|
342
|
-
getNode,
|
|
343
|
-
getTextWidth,
|
|
344
|
-
getMiddleEdgeIndex,
|
|
345
|
-
getEdgeLabelXPos,
|
|
346
|
-
getEdgeLabelYPos,
|
|
347
|
-
getNodeXPos,
|
|
348
|
-
getNodeLabelYPos,
|
|
349
|
-
getXPos,
|
|
350
|
-
getYPos,
|
|
351
|
-
getXOffset,
|
|
352
|
-
getYOffset,
|
|
353
|
-
getLongestLabelPart,
|
|
354
|
-
getCoordinates,
|
|
355
|
-
getGraphScale,
|
|
356
|
-
calculateScaleToFit
|
|
357
|
-
};
|
|
358
|
-
|
|
359
|
-
export default exportFunctions;
|
package/src/views/About.vue
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<span v-if="metadata !== null">{{ $t('footer', [metadata.app.name, metadata.app.version, metadata.app.args]) }}</span>
|
|
3
|
-
</template>
|
|
4
|
-
|
|
5
|
-
<script lang="ts">
|
|
6
|
-
import Vue from 'vue';
|
|
7
|
-
import { mapActions, mapState } from 'vuex';
|
|
8
|
-
|
|
9
|
-
export default Vue.extend({
|
|
10
|
-
methods: mapActions(['loadMetadata']),
|
|
11
|
-
computed: {
|
|
12
|
-
...mapState(['metadata'])
|
|
13
|
-
},
|
|
14
|
-
created() {
|
|
15
|
-
this.loadMetadata();
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
</script>
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<TreeVisualisation v-if="decisionTree" :tree="decisionTree" />
|
|
4
|
-
<p v-else>{{ $t('missingDecisionTree') }}</p>
|
|
5
|
-
</div>
|
|
6
|
-
</template>
|
|
7
|
-
|
|
8
|
-
<script lang="ts">
|
|
9
|
-
import { mapActions } from 'vuex';
|
|
10
|
-
import Vue from 'vue';
|
|
11
|
-
import TreeVisualisation from '@/components/TreeVisualisation.vue';
|
|
12
|
-
|
|
13
|
-
export default Vue.extend({
|
|
14
|
-
name: 'DecisionTreeViewer',
|
|
15
|
-
components: {
|
|
16
|
-
TreeVisualisation
|
|
17
|
-
},
|
|
18
|
-
methods: {
|
|
19
|
-
...mapActions(['getDecisionTree'])
|
|
20
|
-
},
|
|
21
|
-
data: () => ({
|
|
22
|
-
decisionTree: null as string | null
|
|
23
|
-
}),
|
|
24
|
-
async created() {
|
|
25
|
-
const decisionTree = await this.getDecisionTree();
|
|
26
|
-
if (decisionTree) {
|
|
27
|
-
this.decisionTree = decisionTree;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
</script>
|
package/src/views/Samples.vue
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<b-row v-if="selectedSample">
|
|
3
|
-
<b-col cols="1">
|
|
4
|
-
<SampleNavigation v-if="samples" :samples="samples" />
|
|
5
|
-
</b-col>
|
|
6
|
-
<b-col>
|
|
7
|
-
<SampleReport :sample="selectedSample" :phenotypes="selectedSamplePhenotypes" />
|
|
8
|
-
</b-col>
|
|
9
|
-
</b-row>
|
|
10
|
-
<RecordTable v-else />
|
|
11
|
-
</template>
|
|
12
|
-
|
|
13
|
-
<script lang="ts">
|
|
14
|
-
import Vue from 'vue';
|
|
15
|
-
import SampleNavigation from '@/components/SampleNavigation.vue';
|
|
16
|
-
import SampleReport from '@/components/SampleReport.vue';
|
|
17
|
-
import { mapActions, mapGetters, mapState } from 'vuex';
|
|
18
|
-
import { Api } from '@molgenis/vip-report-api';
|
|
19
|
-
import RecordTable from '@/components/RecordTable.vue';
|
|
20
|
-
|
|
21
|
-
export default Vue.extend({
|
|
22
|
-
components: { SampleNavigation, RecordTable, SampleReport },
|
|
23
|
-
computed: {
|
|
24
|
-
...mapGetters(['samples', 'getSampleById']),
|
|
25
|
-
...mapState(['selectedSample', 'selectedSamplePhenotypes'])
|
|
26
|
-
},
|
|
27
|
-
methods: {
|
|
28
|
-
...mapActions(['loadMetadata', 'loadSamples', 'selectSample']),
|
|
29
|
-
getId(sample: Api.Sample) {
|
|
30
|
-
return sample.person.individualId;
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
async created() {
|
|
34
|
-
await this.loadMetadata();
|
|
35
|
-
await this.loadSamples();
|
|
36
|
-
if (this.$route.params.id) {
|
|
37
|
-
const sample = this.getSampleById(this.$route.params.id);
|
|
38
|
-
this.selectSample(sample);
|
|
39
|
-
} else {
|
|
40
|
-
const sample = this.samples.find((sample: Api.Sample) => sample.index !== -1 && sample.proband === true);
|
|
41
|
-
if (sample !== undefined) {
|
|
42
|
-
await this.$router.push({ params: { id: this.getId(sample) } });
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
watch: {
|
|
47
|
-
$route(to, from) {
|
|
48
|
-
if (to.params.id !== from.params.id) {
|
|
49
|
-
const sample = this.getSampleById(to.params.id);
|
|
50
|
-
this.selectSample(sample);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
</script>
|
package/src/views/VcfViewer.vue
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<b-row>
|
|
3
|
-
<b-col class="d-flex justify-content-center text-center">
|
|
4
|
-
<textarea v-if="vcf" v-model="vcf" rows="50" cols="200" wrap="off"></textarea>
|
|
5
|
-
</b-col>
|
|
6
|
-
</b-row>
|
|
7
|
-
</template>
|
|
8
|
-
|
|
9
|
-
<script lang="ts">
|
|
10
|
-
import Vue from 'vue';
|
|
11
|
-
import { mapActions } from 'vuex';
|
|
12
|
-
import { Buffer } from 'buffer';
|
|
13
|
-
import { gunzipSync } from 'fflate';
|
|
14
|
-
|
|
15
|
-
export default Vue.extend({
|
|
16
|
-
data: () => ({
|
|
17
|
-
vcf: null as string | null
|
|
18
|
-
}),
|
|
19
|
-
methods: {
|
|
20
|
-
...mapActions(['getVcfGz'])
|
|
21
|
-
},
|
|
22
|
-
async created() {
|
|
23
|
-
const vcfGz = await this.getVcfGz();
|
|
24
|
-
this.vcf = Buffer.from(gunzipSync(vcfGz).buffer).toString();
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
</script>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { append, formatNumber } from '@/globals/filters';
|
|
2
|
-
|
|
3
|
-
test('format number between -10000 and -1000', () => {
|
|
4
|
-
expect(formatNumber(-1234, true)).toEqual('-1,234');
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
test('format number between -1000 and 0', () => {
|
|
8
|
-
expect(formatNumber(-999)).toEqual('-999');
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
test('format number between 0 and 1000', () => {
|
|
12
|
-
expect(formatNumber(999)).toEqual('999');
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
test('format number between 1000 and 10000', () => {
|
|
16
|
-
expect(formatNumber(1234, true)).toEqual('1,234');
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
test('format number between 1000000 and 10000000', () => {
|
|
20
|
-
expect(formatNumber(1234567, true)).toEqual('1,234,567');
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
test('append the first string to the last string', () => {
|
|
24
|
-
expect(append('last', 'first')).toEqual('firstlast');
|
|
25
|
-
});
|