@datagrok-libraries/bio 5.16.0 → 5.16.2

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/index.d.ts CHANGED
@@ -7,7 +7,6 @@ import { DrawStyle, printLeftOrCentered } from './src/utils/cell-renderer';
7
7
  import { FastaFileHandler } from './src/utils/fasta-handler';
8
8
  import { NotationConverter } from './src/utils/notation-converter';
9
9
  import { splitAlignedSequences } from './src/utils/splitter';
10
- import { getTreeHelper, ITreeHelper } from './src/trees/tree-helper';
11
10
  import { UnitsHandler } from './src/utils/units-handler';
12
11
  import { VdRegion, VdRegionType } from './src/vd-regions';
13
12
  import { CanvasCallback, getPhylocanvasGlService, IPhylocanvasGlViewer, NodeStyleType, PhylocanvasGlServiceBase, PhylocanvasGlTask, StylesType, TreeTypesNames } from './src/viewers/phylocanvas-gl-viewer';
@@ -18,9 +17,12 @@ import { readLibrary } from './src/monomer-works/monomer-utils';
18
17
  import { getNglGlService, NglGlServiceBase, NglGlTask } from './src/viewers/ngl-gl-viewer';
19
18
  import { parseNewick, PhylocanvasTreeNode } from './src/trees/phylocanvas';
20
19
  import { isLeaf } from './src/trees';
20
+ export { DistanceMatrix } from './src/trees/distance-matrix';
21
21
  export { ALIGNMENT, ALPHABET, NOTATION, TAGS, getSplitter, splitterAsFasta, getSplitterForColumn, SplitterFunc, monomerToShort, splitterAsHelm, getStats, pickUpPalette, getPaletteByType, getAlphabet, getAlphabetSimilarity } from './src/utils/macromolecule';
22
22
  export { IMonomerLib, Monomer } from './src/types';
23
23
  export { NodeType, NodeCuttedType } from './src/trees';
24
+ export { ITreeHelper, getTreeHelper } from './src/trees/tree-helper';
25
+ export { TreeCutOptions, IDendrogramService, getDendrogramService } from './src/trees/dendrogram';
24
26
  export { Shapes, TreeTypes } from './src/trees/phylocanvas';
25
- export { NotationConverter, splitAlignedSequences, SeqPalette, SeqPaletteBase, Aminoacids, AminoacidsPalettes, Nucleotides, NucleotidesPalettes, UnknownSeqPalettes, UnknownSeqPalette, PositionHeight, PositionInfo, PositionMonomerInfo, WebLogoViewer, UnitsHandler, DrawStyle, printLeftOrCentered, FastaFileHandler, VdRegionType, VdRegion, IVdRegionsViewer, isLeaf, PhylocanvasTreeNode, NodeStyleType, StylesType, IPhylocanvasGlViewer, TreeTypesNames, PhylocanvasGlServiceBase, CanvasCallback, PhylocanvasGlTask, getPhylocanvasGlService, parseNewick, ITreeHelper, getTreeHelper, getNglGlService, NglGlServiceBase, NglGlTask, MonomerWorks, MonomerLib, readLibrary };
27
+ export { NotationConverter, splitAlignedSequences, SeqPalette, SeqPaletteBase, Aminoacids, AminoacidsPalettes, Nucleotides, NucleotidesPalettes, UnknownSeqPalettes, UnknownSeqPalette, PositionHeight, PositionInfo, PositionMonomerInfo, WebLogoViewer, UnitsHandler, DrawStyle, printLeftOrCentered, FastaFileHandler, VdRegionType, VdRegion, IVdRegionsViewer, isLeaf, PhylocanvasTreeNode, NodeStyleType, StylesType, IPhylocanvasGlViewer, TreeTypesNames, PhylocanvasGlServiceBase, CanvasCallback, PhylocanvasGlTask, getPhylocanvasGlService, parseNewick, getNglGlService, NglGlServiceBase, NglGlTask, MonomerWorks, MonomerLib, readLibrary };
26
28
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,SAAS,EAAE,mBAAmB,EAAC,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAC,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC/G,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,EACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAEnC,OAAO,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,WAAW,EACX,OAAO,EACR,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EACR,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,MAAM,EACN,SAAS,EACV,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAEhB,MAAM,EACN,mBAAmB,EAEnB,aAAa,EAAE,UAAU,EAEzB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EAEvB,WAAW,EAGX,WAAW,EACX,aAAa,EAEb,eAAe,EACf,gBAAgB,EAChB,SAAS,EAGT,YAAY,EACZ,UAAU,EACV,WAAW,EACZ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAC,YAAY,EAAC,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,SAAS,EAAE,mBAAmB,EAAC,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAC,cAAc,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAC,MAAM,+BAA+B,CAAC;AAC/G,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,EACV,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAEnC,OAAO,EACL,cAAc,EACf,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,WAAW,EACX,OAAO,EACR,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EACR,cAAc,EACf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,WAAW,EACX,aAAa,EACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,MAAM,EACN,SAAS,EACV,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAEhB,MAAM,EACN,mBAAmB,EAEnB,aAAa,EAAE,UAAU,EAEzB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EAEvB,WAAW,EAIX,eAAe,EACf,gBAAgB,EAChB,SAAS,EAGT,YAAY,EACZ,UAAU,EACV,WAAW,EACZ,CAAC"}
package/index.js CHANGED
@@ -7,7 +7,6 @@ import { DrawStyle, printLeftOrCentered } from './src/utils/cell-renderer';
7
7
  import { FastaFileHandler } from './src/utils/fasta-handler';
8
8
  import { NotationConverter } from './src/utils/notation-converter';
9
9
  import { splitAlignedSequences } from './src/utils/splitter';
10
- import { getTreeHelper } from './src/trees/tree-helper';
11
10
  import { UnitsHandler } from './src/utils/units-handler';
12
11
  import { VdRegion, VdRegionType } from './src/vd-regions';
13
12
  import { getPhylocanvasGlService, PhylocanvasGlServiceBase, TreeTypesNames } from './src/viewers/phylocanvas-gl-viewer';
@@ -17,9 +16,15 @@ import { readLibrary } from './src/monomer-works/monomer-utils';
17
16
  import { getNglGlService, NglGlServiceBase } from './src/viewers/ngl-gl-viewer';
18
17
  import { parseNewick } from './src/trees/phylocanvas';
19
18
  import { isLeaf } from './src/trees';
19
+ export { DistanceMatrix } from './src/trees/distance-matrix';
20
20
  export { getSplitter, splitterAsFasta, getSplitterForColumn, monomerToShort, splitterAsHelm, getStats, pickUpPalette, getPaletteByType, getAlphabet, getAlphabetSimilarity } from './src/utils/macromolecule';
21
+ export { getTreeHelper } from './src/trees/tree-helper';
22
+ export { getDendrogramService } from './src/trees/dendrogram';
21
23
  export { Shapes, TreeTypes } from './src/trees/phylocanvas';
22
- export { NotationConverter, splitAlignedSequences, SeqPaletteBase, Aminoacids, AminoacidsPalettes, Nucleotides, NucleotidesPalettes, UnknownSeqPalettes, UnknownSeqPalette, PositionHeight, PositionInfo, PositionMonomerInfo, WebLogoViewer, UnitsHandler, DrawStyle, printLeftOrCentered, FastaFileHandler, VdRegionType, VdRegion, isLeaf, TreeTypesNames, PhylocanvasGlServiceBase, getPhylocanvasGlService, parseNewick, getTreeHelper, getNglGlService, NglGlServiceBase,
24
+ export { NotationConverter, splitAlignedSequences, SeqPaletteBase, Aminoacids, AminoacidsPalettes, Nucleotides, NucleotidesPalettes, UnknownSeqPalettes, UnknownSeqPalette, PositionHeight, PositionInfo, PositionMonomerInfo, WebLogoViewer, UnitsHandler, DrawStyle, printLeftOrCentered, FastaFileHandler, VdRegionType, VdRegion, isLeaf, TreeTypesNames, PhylocanvasGlServiceBase, getPhylocanvasGlService, parseNewick,
25
+ // Utils,
26
+ // Newick,
27
+ getNglGlService, NglGlServiceBase,
23
28
  //Monomer lib and features
24
29
  MonomerWorks, MonomerLib, readLibrary };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQWEsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxTQUFTLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQUUsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxFQUVMLHVCQUF1QixFQUd2Qix3QkFBd0IsRUFHeEIsY0FBYyxFQUNmLE1BQU0scUNBQXFDLENBQUM7QUFFN0MsT0FBTyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0csT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUVqQixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxXQUFXLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUVuQyxPQUFPLEVBS0wsV0FBVyxFQUNYLGVBQWUsRUFDZixvQkFBb0IsRUFFcEIsY0FBYyxFQUNkLGNBQWMsRUFDZCxRQUFRLEVBQ1IsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gscUJBQXFCLEVBQ3RCLE1BQU0sMkJBQTJCLENBQUM7QUFZbkMsT0FBTyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHFCQUFxQixFQUVyQixjQUFjLEVBQ2QsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLFlBQVksRUFDWixTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osUUFBUSxFQUdSLE1BQU0sRUFNTixjQUFjLEVBQ2Qsd0JBQXdCLEVBR3hCLHVCQUF1QixFQUV2QixXQUFXLEVBSVgsYUFBYSxFQUViLGVBQWUsRUFDZixnQkFBZ0I7QUFHaEIsMEJBQTBCO0FBQzFCLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FtaW5vYWNpZHMsIEFtaW5vYWNpZHNQYWxldHRlc30gZnJvbSAnLi9zcmMvYW1pbm9hY2lkcyc7XG5pbXBvcnQge01vbm9tZXJXb3Jrc30gZnJvbSAnLi9zcmMvbW9ub21lci13b3Jrcy9tb25vbWVyLXdvcmtzJztcbmltcG9ydCB7TnVjbGVvdGlkZXMsIE51Y2xlb3RpZGVzUGFsZXR0ZXN9IGZyb20gJy4vc3JjL251Y2xlb3RpZGVzJztcbmltcG9ydCB7U2VxUGFsZXR0ZSwgU2VxUGFsZXR0ZUJhc2V9IGZyb20gJy4vc3JjL3NlcS1wYWxldHRlcyc7XG5pbXBvcnQge1Vua25vd25TZXFQYWxldHRlLCBVbmtub3duU2VxUGFsZXR0ZXN9IGZyb20gJy4vc3JjL3Vua25vd24nO1xuaW1wb3J0IHtEcmF3U3R5bGUsIHByaW50TGVmdE9yQ2VudGVyZWR9IGZyb20gJy4vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuaW1wb3J0IHtGYXN0YUZpbGVIYW5kbGVyfSBmcm9tICcuL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyJztcbmltcG9ydCB7Tm90YXRpb25Db252ZXJ0ZXJ9IGZyb20gJy4vc3JjL3V0aWxzL25vdGF0aW9uLWNvbnZlcnRlcic7XG5pbXBvcnQge3NwbGl0QWxpZ25lZFNlcXVlbmNlc30gZnJvbSAnLi9zcmMvdXRpbHMvc3BsaXR0ZXInO1xuaW1wb3J0IHtnZXRUcmVlSGVscGVyLCBJVHJlZUhlbHBlcn0gZnJvbSAnLi9zcmMvdHJlZXMvdHJlZS1oZWxwZXInO1xuaW1wb3J0IHtVbml0c0hhbmRsZXJ9IGZyb20gJy4vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuaW1wb3J0IHtWZFJlZ2lvbiwgVmRSZWdpb25UeXBlfSBmcm9tICcuL3NyYy92ZC1yZWdpb25zJztcbmltcG9ydCB7XG4gIENhbnZhc0NhbGxiYWNrLFxuICBnZXRQaHlsb2NhbnZhc0dsU2VydmljZSxcbiAgSVBoeWxvY2FudmFzR2xWaWV3ZXIsXG4gIE5vZGVTdHlsZVR5cGUsXG4gIFBoeWxvY2FudmFzR2xTZXJ2aWNlQmFzZSxcbiAgUGh5bG9jYW52YXNHbFRhc2ssXG4gIFN0eWxlc1R5cGUsXG4gIFRyZWVUeXBlc05hbWVzXG59IGZyb20gJy4vc3JjL3ZpZXdlcnMvcGh5bG9jYW52YXMtZ2wtdmlld2VyJztcbmltcG9ydCB7SVZkUmVnaW9uc1ZpZXdlcn0gZnJvbSAnLi9zcmMvdmlld2Vycy92ZC1yZWdpb25zLXZpZXdlcic7XG5pbXBvcnQge1Bvc2l0aW9uSGVpZ2h0LCBQb3NpdGlvbkluZm8sIFBvc2l0aW9uTW9ub21lckluZm8sIFdlYkxvZ29WaWV3ZXJ9IGZyb20gJy4vc3JjL3ZpZXdlcnMvd2ViLWxvZ28tdmlld2VyJztcbmltcG9ydCB7TW9ub21lckxpYn0gZnJvbSAnLi9zcmMvbW9ub21lci13b3Jrcy9tb25vbWVyLWxpYic7XG5pbXBvcnQge3JlYWRMaWJyYXJ5fSBmcm9tICcuL3NyYy9tb25vbWVyLXdvcmtzL21vbm9tZXItdXRpbHMnO1xuaW1wb3J0IHtcbiAgZ2V0TmdsR2xTZXJ2aWNlLFxuICBOZ2xHbFNlcnZpY2VCYXNlLFxuICBOZ2xHbFRhc2tcbn0gZnJvbSAnLi9zcmMvdmlld2Vycy9uZ2wtZ2wtdmlld2VyJztcbmltcG9ydCB7cGFyc2VOZXdpY2ssIFBoeWxvY2FudmFzVHJlZU5vZGV9IGZyb20gJy4vc3JjL3RyZWVzL3BoeWxvY2FudmFzJztcbmltcG9ydCB7aXNMZWFmfSBmcm9tICcuL3NyYy90cmVlcyc7XG5cbmV4cG9ydCB7XG4gIEFMSUdOTUVOVCxcbiAgQUxQSEFCRVQsXG4gIE5PVEFUSU9OLFxuICBUQUdTLFxuICBnZXRTcGxpdHRlcixcbiAgc3BsaXR0ZXJBc0Zhc3RhLFxuICBnZXRTcGxpdHRlckZvckNvbHVtbixcbiAgU3BsaXR0ZXJGdW5jLFxuICBtb25vbWVyVG9TaG9ydCxcbiAgc3BsaXR0ZXJBc0hlbG0sXG4gIGdldFN0YXRzLFxuICBwaWNrVXBQYWxldHRlLFxuICBnZXRQYWxldHRlQnlUeXBlLFxuICBnZXRBbHBoYWJldCxcbiAgZ2V0QWxwaGFiZXRTaW1pbGFyaXR5XG59IGZyb20gJy4vc3JjL3V0aWxzL21hY3JvbW9sZWN1bGUnO1xuXG5leHBvcnQge1xuICBJTW9ub21lckxpYixcbiAgTW9ub21lclxufSBmcm9tICcuL3NyYy90eXBlcyc7XG5cbmV4cG9ydCB7XG4gIE5vZGVUeXBlLFxuICBOb2RlQ3V0dGVkVHlwZVxufSBmcm9tICcuL3NyYy90cmVlcyc7XG5cbmV4cG9ydCB7XG4gIFNoYXBlcyxcbiAgVHJlZVR5cGVzXG59IGZyb20gJy4vc3JjL3RyZWVzL3BoeWxvY2FudmFzJztcblxuZXhwb3J0IHtcbiAgTm90YXRpb25Db252ZXJ0ZXIsXG4gIHNwbGl0QWxpZ25lZFNlcXVlbmNlcyxcbiAgU2VxUGFsZXR0ZSxcbiAgU2VxUGFsZXR0ZUJhc2UsXG4gIEFtaW5vYWNpZHMsXG4gIEFtaW5vYWNpZHNQYWxldHRlcyxcbiAgTnVjbGVvdGlkZXMsXG4gIE51Y2xlb3RpZGVzUGFsZXR0ZXMsXG4gIFVua25vd25TZXFQYWxldHRlcyxcbiAgVW5rbm93blNlcVBhbGV0dGUsXG4gIFBvc2l0aW9uSGVpZ2h0LFxuICBQb3NpdGlvbkluZm8sXG4gIFBvc2l0aW9uTW9ub21lckluZm8sXG4gIFdlYkxvZ29WaWV3ZXIsXG4gIFVuaXRzSGFuZGxlcixcbiAgRHJhd1N0eWxlLFxuICBwcmludExlZnRPckNlbnRlcmVkLFxuICBGYXN0YUZpbGVIYW5kbGVyLFxuICBWZFJlZ2lvblR5cGUsXG4gIFZkUmVnaW9uLFxuICBJVmRSZWdpb25zVmlld2VyLFxuXG4gIGlzTGVhZixcbiAgUGh5bG9jYW52YXNUcmVlTm9kZSxcbiAgLy8gdHJlZVRyYXZlcnNhbCxcbiAgTm9kZVN0eWxlVHlwZSwgU3R5bGVzVHlwZSxcblxuICBJUGh5bG9jYW52YXNHbFZpZXdlcixcbiAgVHJlZVR5cGVzTmFtZXMsXG4gIFBoeWxvY2FudmFzR2xTZXJ2aWNlQmFzZSxcbiAgQ2FudmFzQ2FsbGJhY2ssXG4gIFBoeWxvY2FudmFzR2xUYXNrLFxuICBnZXRQaHlsb2NhbnZhc0dsU2VydmljZSxcblxuICBwYXJzZU5ld2ljayxcbiAgLy8gVXRpbHMsXG4gIC8vIE5ld2ljayxcbiAgSVRyZWVIZWxwZXIsXG4gIGdldFRyZWVIZWxwZXIsXG5cbiAgZ2V0TmdsR2xTZXJ2aWNlLFxuICBOZ2xHbFNlcnZpY2VCYXNlLFxuICBOZ2xHbFRhc2ssXG5cbiAgLy9Nb25vbWVyIGxpYiBhbmQgZmVhdHVyZXNcbiAgTW9ub21lcldvcmtzLFxuICBNb25vbWVyTGliLFxuICByZWFkTGlicmFyeVxufTtcbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRSxPQUFPLEVBQWEsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGtCQUFrQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxTQUFTLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBRUwsdUJBQXVCLEVBR3ZCLHdCQUF3QixFQUd4QixjQUFjLEVBQ2YsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3QyxPQUFPLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFDTCxlQUFlLEVBQ2YsZ0JBQWdCLEVBRWpCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUFDLFdBQVcsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRW5DLE9BQU8sRUFDTCxjQUFjLEVBQ2YsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLEVBS0wsV0FBVyxFQUNYLGVBQWUsRUFDZixvQkFBb0IsRUFFcEIsY0FBYyxFQUNkLGNBQWMsRUFDZCxRQUFRLEVBQ1IsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gscUJBQXFCLEVBQ3RCLE1BQU0sMkJBQTJCLENBQUM7QUFZbkMsT0FBTyxFQUVMLGFBQWEsRUFDZCxNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFHTCxvQkFBb0IsRUFDckIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIscUJBQXFCLEVBRXJCLGNBQWMsRUFDZCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IsWUFBWSxFQUNaLFNBQVMsRUFDVCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixRQUFRLEVBR1IsTUFBTSxFQU1OLGNBQWMsRUFDZCx3QkFBd0IsRUFHeEIsdUJBQXVCLEVBRXZCLFdBQVc7QUFDWCxTQUFTO0FBQ1QsVUFBVTtBQUVWLGVBQWUsRUFDZixnQkFBZ0I7QUFHaEIsMEJBQTBCO0FBQzFCLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FtaW5vYWNpZHMsIEFtaW5vYWNpZHNQYWxldHRlc30gZnJvbSAnLi9zcmMvYW1pbm9hY2lkcyc7XG5pbXBvcnQge01vbm9tZXJXb3Jrc30gZnJvbSAnLi9zcmMvbW9ub21lci13b3Jrcy9tb25vbWVyLXdvcmtzJztcbmltcG9ydCB7TnVjbGVvdGlkZXMsIE51Y2xlb3RpZGVzUGFsZXR0ZXN9IGZyb20gJy4vc3JjL251Y2xlb3RpZGVzJztcbmltcG9ydCB7U2VxUGFsZXR0ZSwgU2VxUGFsZXR0ZUJhc2V9IGZyb20gJy4vc3JjL3NlcS1wYWxldHRlcyc7XG5pbXBvcnQge1Vua25vd25TZXFQYWxldHRlLCBVbmtub3duU2VxUGFsZXR0ZXN9IGZyb20gJy4vc3JjL3Vua25vd24nO1xuaW1wb3J0IHtEcmF3U3R5bGUsIHByaW50TGVmdE9yQ2VudGVyZWR9IGZyb20gJy4vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuaW1wb3J0IHtGYXN0YUZpbGVIYW5kbGVyfSBmcm9tICcuL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyJztcbmltcG9ydCB7Tm90YXRpb25Db252ZXJ0ZXJ9IGZyb20gJy4vc3JjL3V0aWxzL25vdGF0aW9uLWNvbnZlcnRlcic7XG5pbXBvcnQge3NwbGl0QWxpZ25lZFNlcXVlbmNlc30gZnJvbSAnLi9zcmMvdXRpbHMvc3BsaXR0ZXInO1xuaW1wb3J0IHtnZXRUcmVlSGVscGVyLCBJVHJlZUhlbHBlcn0gZnJvbSAnLi9zcmMvdHJlZXMvdHJlZS1oZWxwZXInO1xuaW1wb3J0IHtVbml0c0hhbmRsZXJ9IGZyb20gJy4vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuaW1wb3J0IHtWZFJlZ2lvbiwgVmRSZWdpb25UeXBlfSBmcm9tICcuL3NyYy92ZC1yZWdpb25zJztcbmltcG9ydCB7XG4gIENhbnZhc0NhbGxiYWNrLFxuICBnZXRQaHlsb2NhbnZhc0dsU2VydmljZSxcbiAgSVBoeWxvY2FudmFzR2xWaWV3ZXIsXG4gIE5vZGVTdHlsZVR5cGUsXG4gIFBoeWxvY2FudmFzR2xTZXJ2aWNlQmFzZSxcbiAgUGh5bG9jYW52YXNHbFRhc2ssXG4gIFN0eWxlc1R5cGUsXG4gIFRyZWVUeXBlc05hbWVzXG59IGZyb20gJy4vc3JjL3ZpZXdlcnMvcGh5bG9jYW52YXMtZ2wtdmlld2VyJztcbmltcG9ydCB7SVZkUmVnaW9uc1ZpZXdlcn0gZnJvbSAnLi9zcmMvdmlld2Vycy92ZC1yZWdpb25zLXZpZXdlcic7XG5pbXBvcnQge1Bvc2l0aW9uSGVpZ2h0LCBQb3NpdGlvbkluZm8sIFBvc2l0aW9uTW9ub21lckluZm8sIFdlYkxvZ29WaWV3ZXJ9IGZyb20gJy4vc3JjL3ZpZXdlcnMvd2ViLWxvZ28tdmlld2VyJztcbmltcG9ydCB7TW9ub21lckxpYn0gZnJvbSAnLi9zcmMvbW9ub21lci13b3Jrcy9tb25vbWVyLWxpYic7XG5pbXBvcnQge3JlYWRMaWJyYXJ5fSBmcm9tICcuL3NyYy9tb25vbWVyLXdvcmtzL21vbm9tZXItdXRpbHMnO1xuaW1wb3J0IHtcbiAgZ2V0TmdsR2xTZXJ2aWNlLFxuICBOZ2xHbFNlcnZpY2VCYXNlLFxuICBOZ2xHbFRhc2tcbn0gZnJvbSAnLi9zcmMvdmlld2Vycy9uZ2wtZ2wtdmlld2VyJztcblxuaW1wb3J0IHtwYXJzZU5ld2ljaywgUGh5bG9jYW52YXNUcmVlTm9kZX0gZnJvbSAnLi9zcmMvdHJlZXMvcGh5bG9jYW52YXMnO1xuaW1wb3J0IHtpc0xlYWZ9IGZyb20gJy4vc3JjL3RyZWVzJztcblxuZXhwb3J0IHtcbiAgRGlzdGFuY2VNYXRyaXhcbn0gZnJvbSAnLi9zcmMvdHJlZXMvZGlzdGFuY2UtbWF0cml4JztcblxuZXhwb3J0IHtcbiAgQUxJR05NRU5ULFxuICBBTFBIQUJFVCxcbiAgTk9UQVRJT04sXG4gIFRBR1MsXG4gIGdldFNwbGl0dGVyLFxuICBzcGxpdHRlckFzRmFzdGEsXG4gIGdldFNwbGl0dGVyRm9yQ29sdW1uLFxuICBTcGxpdHRlckZ1bmMsXG4gIG1vbm9tZXJUb1Nob3J0LFxuICBzcGxpdHRlckFzSGVsbSxcbiAgZ2V0U3RhdHMsXG4gIHBpY2tVcFBhbGV0dGUsXG4gIGdldFBhbGV0dGVCeVR5cGUsXG4gIGdldEFscGhhYmV0LFxuICBnZXRBbHBoYWJldFNpbWlsYXJpdHlcbn0gZnJvbSAnLi9zcmMvdXRpbHMvbWFjcm9tb2xlY3VsZSc7XG5cbmV4cG9ydCB7XG4gIElNb25vbWVyTGliLFxuICBNb25vbWVyXG59IGZyb20gJy4vc3JjL3R5cGVzJztcblxuZXhwb3J0IHtcbiAgTm9kZVR5cGUsXG4gIE5vZGVDdXR0ZWRUeXBlXG59IGZyb20gJy4vc3JjL3RyZWVzJztcblxuZXhwb3J0IHtcbiAgSVRyZWVIZWxwZXIsXG4gIGdldFRyZWVIZWxwZXJcbn0gZnJvbSAnLi9zcmMvdHJlZXMvdHJlZS1oZWxwZXInO1xuXG5leHBvcnQge1xuICBUcmVlQ3V0T3B0aW9ucyxcbiAgSURlbmRyb2dyYW1TZXJ2aWNlLFxuICBnZXREZW5kcm9ncmFtU2VydmljZVxufSBmcm9tICcuL3NyYy90cmVlcy9kZW5kcm9ncmFtJztcblxuZXhwb3J0IHtcbiAgU2hhcGVzLFxuICBUcmVlVHlwZXNcbn0gZnJvbSAnLi9zcmMvdHJlZXMvcGh5bG9jYW52YXMnO1xuXG5leHBvcnQge1xuICBOb3RhdGlvbkNvbnZlcnRlcixcbiAgc3BsaXRBbGlnbmVkU2VxdWVuY2VzLFxuICBTZXFQYWxldHRlLFxuICBTZXFQYWxldHRlQmFzZSxcbiAgQW1pbm9hY2lkcyxcbiAgQW1pbm9hY2lkc1BhbGV0dGVzLFxuICBOdWNsZW90aWRlcyxcbiAgTnVjbGVvdGlkZXNQYWxldHRlcyxcbiAgVW5rbm93blNlcVBhbGV0dGVzLFxuICBVbmtub3duU2VxUGFsZXR0ZSxcbiAgUG9zaXRpb25IZWlnaHQsXG4gIFBvc2l0aW9uSW5mbyxcbiAgUG9zaXRpb25Nb25vbWVySW5mbyxcbiAgV2ViTG9nb1ZpZXdlcixcbiAgVW5pdHNIYW5kbGVyLFxuICBEcmF3U3R5bGUsXG4gIHByaW50TGVmdE9yQ2VudGVyZWQsXG4gIEZhc3RhRmlsZUhhbmRsZXIsXG4gIFZkUmVnaW9uVHlwZSxcbiAgVmRSZWdpb24sXG4gIElWZFJlZ2lvbnNWaWV3ZXIsXG5cbiAgaXNMZWFmLFxuICBQaHlsb2NhbnZhc1RyZWVOb2RlLFxuICAvLyB0cmVlVHJhdmVyc2FsLFxuICBOb2RlU3R5bGVUeXBlLCBTdHlsZXNUeXBlLFxuXG4gIElQaHlsb2NhbnZhc0dsVmlld2VyLFxuICBUcmVlVHlwZXNOYW1lcyxcbiAgUGh5bG9jYW52YXNHbFNlcnZpY2VCYXNlLFxuICBDYW52YXNDYWxsYmFjayxcbiAgUGh5bG9jYW52YXNHbFRhc2ssXG4gIGdldFBoeWxvY2FudmFzR2xTZXJ2aWNlLFxuXG4gIHBhcnNlTmV3aWNrLFxuICAvLyBVdGlscyxcbiAgLy8gTmV3aWNrLFxuXG4gIGdldE5nbEdsU2VydmljZSxcbiAgTmdsR2xTZXJ2aWNlQmFzZSxcbiAgTmdsR2xUYXNrLFxuXG4gIC8vTW9ub21lciBsaWIgYW5kIGZlYXR1cmVzXG4gIE1vbm9tZXJXb3JrcyxcbiAgTW9ub21lckxpYixcbiAgcmVhZExpYnJhcnlcbn07XG4iXX0=
package/index.ts CHANGED
@@ -29,9 +29,14 @@ import {
29
29
  NglGlServiceBase,
30
30
  NglGlTask
31
31
  } from './src/viewers/ngl-gl-viewer';
32
+
32
33
  import {parseNewick, PhylocanvasTreeNode} from './src/trees/phylocanvas';
33
34
  import {isLeaf} from './src/trees';
34
35
 
36
+ export {
37
+ DistanceMatrix
38
+ } from './src/trees/distance-matrix';
39
+
35
40
  export {
36
41
  ALIGNMENT,
37
42
  ALPHABET,
@@ -60,6 +65,17 @@ export {
60
65
  NodeCuttedType
61
66
  } from './src/trees';
62
67
 
68
+ export {
69
+ ITreeHelper,
70
+ getTreeHelper
71
+ } from './src/trees/tree-helper';
72
+
73
+ export {
74
+ TreeCutOptions,
75
+ IDendrogramService,
76
+ getDendrogramService
77
+ } from './src/trees/dendrogram';
78
+
63
79
  export {
64
80
  Shapes,
65
81
  TreeTypes
@@ -103,8 +119,6 @@ export {
103
119
  parseNewick,
104
120
  // Utils,
105
121
  // Newick,
106
- ITreeHelper,
107
- getTreeHelper,
108
122
 
109
123
  getNglGlService,
110
124
  NglGlServiceBase,
package/package.json CHANGED
@@ -4,9 +4,10 @@
4
4
  "access": "public"
5
5
  },
6
6
  "friendlyName": "Datagrok bio library",
7
- "version": "5.16.0",
7
+ "version": "5.16.2",
8
8
  "description": "",
9
9
  "dependencies": {
10
+ "@datagrok-libraries/gridext": "^1.3.22",
10
11
  "@datagrok-libraries/utils": "^1.10.1",
11
12
  "cash-dom": "latest",
12
13
  "datagrok-api": "^1.8.2",
@@ -0,0 +1,16 @@
1
+ import * as DG from 'datagrok-api/dg';
2
+ import { GridNeighbor } from '@datagrok-libraries/gridext/src/ui/GridNeighbor';
3
+ import { NodeType } from '.';
4
+ export type TreeCutOptions = {
5
+ min: number;
6
+ max: number;
7
+ dataDf: DG.DataFrame;
8
+ clusterDf: DG.DataFrame;
9
+ clusterColName: string;
10
+ };
11
+ export interface IDendrogramService {
12
+ /** Inject Dendrogram tree to {@see grid}. Requires Dendrogram package. */
13
+ injectTreeForGrid(grid: DG.Grid, treeRoot: NodeType, leafColName?: string, neighborWidth?: number, cut?: TreeCutOptions): GridNeighbor;
14
+ }
15
+ export declare function getDendrogramService(): Promise<IDendrogramService>;
16
+ //# sourceMappingURL=dendrogram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dendrogram.d.ts","sourceRoot":"","sources":["dendrogram.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,YAAY,EAAC,MAAM,iDAAiD,CAAC;AAC7E,OAAO,EAAC,QAAQ,EAAC,MAAM,GAAG,CAAC;AAE3B,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;IAC/C,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;CACjD,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,iBAAiB,CACf,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,GACpG,YAAY,CAAC;CACjB;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAExE"}
@@ -0,0 +1,16 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import * as grok from 'datagrok-api/grok';
11
+ export function getDendrogramService() {
12
+ return __awaiter(this, void 0, void 0, function* () {
13
+ return yield grok.functions.call('Dendrogram:getDendrogramService', {});
14
+ });
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVuZHJvZ3JhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlbmRyb2dyYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxtQkFBbUIsQ0FBQztBQW1CMUMsTUFBTSxVQUFnQixvQkFBb0I7O1FBQ3hDLE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuXG5pbXBvcnQge0dyaWROZWlnaGJvcn0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9ncmlkZXh0L3NyYy91aS9HcmlkTmVpZ2hib3InO1xuaW1wb3J0IHtOb2RlVHlwZX0gZnJvbSAnLic7XG5cbmV4cG9ydCB0eXBlIFRyZWVDdXRPcHRpb25zID0ge1xuICBtaW46IG51bWJlciwgbWF4OiBudW1iZXIsIGRhdGFEZjogREcuRGF0YUZyYW1lLFxuICBjbHVzdGVyRGY6IERHLkRhdGFGcmFtZSwgY2x1c3RlckNvbE5hbWU6IHN0cmluZyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGVuZHJvZ3JhbVNlcnZpY2Uge1xuICAvKiogSW5qZWN0IERlbmRyb2dyYW0gdHJlZSB0byB7QHNlZSBncmlkfS4gUmVxdWlyZXMgRGVuZHJvZ3JhbSBwYWNrYWdlLiAqL1xuICBpbmplY3RUcmVlRm9yR3JpZChcbiAgICBncmlkOiBERy5HcmlkLCB0cmVlUm9vdDogTm9kZVR5cGUsIGxlYWZDb2xOYW1lPzogc3RyaW5nLCBuZWlnaGJvcldpZHRoPzogbnVtYmVyLCBjdXQ/OiBUcmVlQ3V0T3B0aW9uc1xuICApOiBHcmlkTmVpZ2hib3I7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREZW5kcm9ncmFtU2VydmljZSgpOiBQcm9taXNlPElEZW5kcm9ncmFtU2VydmljZT4ge1xuICByZXR1cm4gYXdhaXQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnRGVuZHJvZ3JhbTpnZXREZW5kcm9ncmFtU2VydmljZScsIHt9KTtcbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ /** Distance matrix class compatible with data structure of scipy.spatial.distance.pdist */
2
+ export declare class DistanceMatrix {
3
+ _data: Float32Array;
4
+ _size: number;
5
+ get data(): Float32Array;
6
+ get size(): number;
7
+ /**
8
+ * @param {Float64Array} data Distance data
9
+ * @param {number} m Number of original observations
10
+ */
11
+ constructor(data?: Float32Array, size?: number);
12
+ private _linearizeIJ;
13
+ get(i: number, j: number): number;
14
+ set(i: number, j: number, value: number): void;
15
+ static calc<TObj>(list: TObj[], method: (a: TObj, b: TObj) => number): DistanceMatrix;
16
+ }
17
+ //# sourceMappingURL=distance-matrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distance-matrix.d.ts","sourceRoot":"","sources":["distance-matrix.ts"],"names":[],"mappings":"AAIA,2FAA2F;AAC3F,qBAAa,cAAc;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,IAAI,IAAI,IAAI,YAAY,CAAuB;IAE/C,IAAI,IAAI,IAAI,MAAM,CAAuB;IAEzC;;;OAGG;gBACS,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM;IAqB9C,OAAO,CAAC,YAAY;IAKpB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IASxB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIvC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,KAAK,MAAM,GAAG,cAAc;CAStF"}
@@ -0,0 +1,57 @@
1
+ /** Distance matrix class compatible with data structure of scipy.spatial.distance.pdist */
2
+ export class DistanceMatrix {
3
+ get data() { return this._data; }
4
+ get size() { return this._size; }
5
+ /**
6
+ * @param {Float64Array} data Distance data
7
+ * @param {number} m Number of original observations
8
+ */
9
+ constructor(data, size) {
10
+ if (size == undefined) {
11
+ if (data == undefined)
12
+ throw new Error('Arguments error: data or size is required.');
13
+ this._data = data;
14
+ this._size = (1 + Math.sqrt(1 + 4 * 2 * this._data.length)) / 2;
15
+ if (this._size != Math.floor(this._size))
16
+ throw new Error(`Invalid data length ${this._data.length} leads to non integer size ${this._size}`);
17
+ }
18
+ else {
19
+ this._size = size;
20
+ const dataLength = size * (size - 1) / 2;
21
+ if (data) {
22
+ if (data.length != dataLength)
23
+ throw new Error(`Invalid data length. Observations size ${size} requires data length ${dataLength}.`);
24
+ this._data = data;
25
+ }
26
+ else {
27
+ this._data = new Float32Array(dataLength);
28
+ }
29
+ }
30
+ }
31
+ _linearizeIJ(i, j) {
32
+ if (!(i < j))
33
+ throw new Error('i must be less than j');
34
+ return this._size * i + j - Math.floor(((i + 2) * (i + 1)) / 2);
35
+ }
36
+ get(i, j) {
37
+ if (i == j)
38
+ return 0;
39
+ else if (i < j)
40
+ return this._data[this._linearizeIJ(i, j)];
41
+ else
42
+ return this._data[this._linearizeIJ(j, i)];
43
+ }
44
+ set(i, j, value) {
45
+ this._data[this._linearizeIJ(i, j)] = value;
46
+ }
47
+ static calc(list, method) {
48
+ const size = list.length;
49
+ const res = new DistanceMatrix(undefined, size);
50
+ for (let i = 0; i < size; i++) {
51
+ for (let j = i + 1; j < size; j++)
52
+ res.set(i, j, method(list[i], list[j]));
53
+ }
54
+ return res;
55
+ }
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdGFuY2UtbWF0cml4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlzdGFuY2UtbWF0cml4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLDJGQUEyRjtBQUMzRixNQUFNLE9BQU8sY0FBYztJQUl6QixJQUFJLElBQUksS0FBbUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUUvQyxJQUFJLElBQUksS0FBYSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRXpDOzs7T0FHRztJQUNILFlBQVksSUFBbUIsRUFBRSxJQUFhO1FBQzVDLElBQUksSUFBSSxJQUFJLFNBQVMsRUFBRTtZQUNyQixJQUFJLElBQUksSUFBSSxTQUFTO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUVyRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sOEJBQThCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZHO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixNQUFNLFVBQVUsR0FBVyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pELElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxVQUFVO29CQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxJQUFJLHlCQUF5QixVQUFVLEdBQUcsQ0FBQyxDQUFDO2dCQUN4RyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzthQUNuQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzNDO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ3ZDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ1IsT0FBTyxDQUFDLENBQUM7YUFDTixJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7O1lBRTNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFhO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQU8sSUFBWSxFQUFFLE1BQW9DO1FBQ2xFLE1BQU0sSUFBSSxHQUFXLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDakMsTUFBTSxHQUFHLEdBQUcsSUFBSSxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDN0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFO2dCQUMvQixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuXG4vKiogRGlzdGFuY2UgbWF0cml4IGNsYXNzIGNvbXBhdGlibGUgd2l0aCBkYXRhIHN0cnVjdHVyZSBvZiBzY2lweS5zcGF0aWFsLmRpc3RhbmNlLnBkaXN0ICovXG5leHBvcnQgY2xhc3MgRGlzdGFuY2VNYXRyaXgge1xuICBfZGF0YTogRmxvYXQzMkFycmF5O1xuICBfc2l6ZTogbnVtYmVyO1xuXG4gIGdldCBkYXRhKCk6IEZsb2F0MzJBcnJheSB7IHJldHVybiB0aGlzLl9kYXRhOyB9XG5cbiAgZ2V0IHNpemUoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX3NpemU7IH1cblxuICAvKipcbiAgICogQHBhcmFtIHtGbG9hdDY0QXJyYXl9IGRhdGEgIERpc3RhbmNlIGRhdGFcbiAgICogQHBhcmFtIHtudW1iZXJ9IG0gICAgICAgICAgIE51bWJlciBvZiBvcmlnaW5hbCBvYnNlcnZhdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBGbG9hdDMyQXJyYXksIHNpemU/OiBudW1iZXIpIHtcbiAgICBpZiAoc2l6ZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChkYXRhID09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKCdBcmd1bWVudHMgZXJyb3I6IGRhdGEgb3Igc2l6ZSBpcyByZXF1aXJlZC4nKTtcblxuICAgICAgdGhpcy5fZGF0YSA9IGRhdGEhO1xuICAgICAgdGhpcy5fc2l6ZSA9ICgxICsgTWF0aC5zcXJ0KDEgKyA0ICogMiAqIHRoaXMuX2RhdGEubGVuZ3RoKSkgLyAyO1xuICAgICAgaWYgKHRoaXMuX3NpemUgIT0gTWF0aC5mbG9vcih0aGlzLl9zaXplKSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRhdGEgbGVuZ3RoICR7dGhpcy5fZGF0YS5sZW5ndGh9IGxlYWRzIHRvIG5vbiBpbnRlZ2VyIHNpemUgJHt0aGlzLl9zaXplfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zaXplID0gc2l6ZTtcbiAgICAgIGNvbnN0IGRhdGFMZW5ndGg6IG51bWJlciA9IHNpemUgKiAoc2l6ZSAtIDEpIC8gMjtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGlmIChkYXRhLmxlbmd0aCAhPSBkYXRhTGVuZ3RoKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkYXRhIGxlbmd0aC4gT2JzZXJ2YXRpb25zIHNpemUgJHtzaXplfSByZXF1aXJlcyBkYXRhIGxlbmd0aCAke2RhdGFMZW5ndGh9LmApO1xuICAgICAgICB0aGlzLl9kYXRhID0gZGF0YTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2RhdGEgPSBuZXcgRmxvYXQzMkFycmF5KGRhdGFMZW5ndGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xpbmVhcml6ZUlKKGk6IG51bWJlciwgajogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoIShpIDwgaikpIHRocm93IG5ldyBFcnJvcignaSBtdXN0IGJlIGxlc3MgdGhhbiBqJyk7XG4gICAgcmV0dXJuIHRoaXMuX3NpemUgKiBpICsgaiAtIE1hdGguZmxvb3IoKChpICsgMikgKiAoaSArIDEpKSAvIDIpO1xuICB9XG5cbiAgZ2V0KGk6IG51bWJlciwgajogbnVtYmVyKSB7XG4gICAgaWYgKGkgPT0gailcbiAgICAgIHJldHVybiAwO1xuICAgIGVsc2UgaWYgKGkgPCBqKVxuICAgICAgcmV0dXJuIHRoaXMuX2RhdGFbdGhpcy5fbGluZWFyaXplSUooaSwgaildO1xuICAgIGVsc2VcbiAgICAgIHJldHVybiB0aGlzLl9kYXRhW3RoaXMuX2xpbmVhcml6ZUlKKGosIGkpXTtcbiAgfVxuXG4gIHNldChpOiBudW1iZXIsIGo6IG51bWJlciwgdmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2RhdGFbdGhpcy5fbGluZWFyaXplSUooaSwgaildID0gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgY2FsYzxUT2JqPihsaXN0OiBUT2JqW10sIG1ldGhvZDogKGE6IFRPYmosIGI6IFRPYmopID0+IG51bWJlcik6IERpc3RhbmNlTWF0cml4IHtcbiAgICBjb25zdCBzaXplOiBudW1iZXIgPSBsaXN0Lmxlbmd0aDtcbiAgICBjb25zdCByZXMgPSBuZXcgRGlzdGFuY2VNYXRyaXgodW5kZWZpbmVkLCBzaXplKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgc2l6ZTsgaisrKVxuICAgICAgICByZXMuc2V0KGksIGosIG1ldGhvZChsaXN0W2ldLCBsaXN0W2pdKSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import * as DG from 'datagrok-api/dg';
2
2
  import { NodeCuttedType, NodeType } from './index';
3
+ import { DistanceMatrix } from './distance-matrix';
3
4
  export interface ITreeHelper {
4
5
  /** Generates data frame with row per node, parent relation, distance, annotation
5
6
  * @param {string} newick Newick format data
@@ -11,26 +12,37 @@ export interface ITreeHelper {
11
12
  toNewick(node: NodeType | null): string;
12
13
  getLeafList<TNode extends NodeType>(node: TNode): TNode[];
13
14
  getNodeList<TNode extends NodeType>(node: TNode): TNode[];
14
- treeFilterByLeaves(node: NodeType, leaves: {
15
+ /** Filters tree by leaves (by set).
16
+ * An internal node will be eliminated only if all its subs (children/leaves) are filtered out by {link @leaves}.
17
+ */
18
+ filterTreeByLeaves(node: NodeType, leaves: {
15
19
  [name: string]: any;
16
20
  }): NodeType | null;
21
+ /** Collects nodes by leaves (by set).
22
+ * Node will be returned only if all its subs (children/leaves) are present in {@link leaves}.
23
+ */
24
+ getNodesByLeaves<TNode extends NodeType>(node: TNode, leaves: {
25
+ [name: string]: any;
26
+ }): TNode[];
17
27
  treeCutAsLeaves(node: NodeType, cutHeight: number, currentHeight?: number): NodeType[];
18
28
  treeCutAsTree(node: NodeType, cutHeight: number, keepShorts?: boolean, currentHeight?: number): NodeType | null;
19
29
  /** Reorder the grid's rows according to the leaves' order in the tree.
20
30
  * @param {string|null} leafColName Column name for leaf name in newick, null - use row index
21
31
  */
22
- setGridOrder(tree: NodeType, grid: DG.Grid, leafColName: string | null): [NodeType, string[]];
32
+ setGridOrder(tree: NodeType, grid: DG.Grid, leafColName?: string): [NodeType, string[]];
23
33
  markClusters(tree: NodeCuttedType, dataDf: DG.DataFrame, leafColName: string | null, clusterColName: string, na?: any): void;
24
34
  /**
25
35
  * @param {string|null} leafColName Column name for leaf name in newick, null - use row index
26
36
  */
27
- buildClusters(tree: NodeCuttedType, clusterDf: DG.DataFrame, clusterColName: string, leafColName: string | null): void;
37
+ buildClusters(tree: NodeCuttedType, clusterDf: DG.DataFrame, clusterColName: string, leafColName?: string): void;
28
38
  /** Modifies the tree ({@link node}) cutting at {@link cutHeight} creating extra nodes.
29
39
  * @param {string|null} leafColName Column name for leaf name in newick, null - use row index
30
40
  */
31
41
  cutTreeToGrid(node: NodeType, cutHeight: number, dataDf: DG.DataFrame, leafColName: string, clusterColName: string, na?: any): void;
32
42
  /** Generate tree structures with {@link size} nodes number (counting internal).*/
33
43
  generateTree(size: number): NodeType;
44
+ hierarchicalClustering(df: DG.DataFrame, distance: string, linkage: string): Promise<NodeType>;
45
+ hierarchicalClusteringByDistance(distance: DistanceMatrix, linkage: string): Promise<NodeType>;
34
46
  }
35
47
  export declare function getTreeHelper(): Promise<ITreeHelper>;
36
48
  //# sourceMappingURL=tree-helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-helper.d.ts","sourceRoot":"","sources":["tree-helper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAGjD,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAE3G,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;IAExC,WAAW,CAAC,KAAK,SAAS,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IAE1D,WAAW,CAAC,KAAK,SAAS,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IAE1D,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,QAAQ,GAAG,IAAI,CAAC;IAErF,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IAEvF,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;IAEhH;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9F,YAAY,CAAC,IAAI,EAAE,cAAc,EAC/B,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE5F;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,cAAc,EAChC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAErF;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,EACnE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE/D,kFAAkF;IAClF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;CACtC;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,CAO1D"}
1
+ {"version":3,"file":"tree-helper.d.ts","sourceRoot":"","sources":["tree-helper.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AACjD,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IAE3G,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;IAExC,WAAW,CAAC,KAAK,SAAS,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IAE1D,WAAW,CAAC,KAAK,SAAS,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IAE1D;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,QAAQ,GAAG,IAAI,CAAC;IAErF;;OAEG;IACH,gBAAgB,CAAC,KAAK,SAAS,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,KAAK,EAAE,CAAC;IAEhG,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IAEvF,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;IAEhH;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAExF,YAAY,CAAC,IAAI,EAAE,cAAc,EAC/B,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE5F;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjH;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,EACnE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE/D,kFAAkF;IAClF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IAErC,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/F,gCAAgC,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAChG;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,CAO1D"}
@@ -17,4 +17,4 @@ export function getTreeHelper() {
17
17
  return res;
18
18
  });
19
19
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0cmVlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBa0R0QyxNQUFNLFVBQWdCLGFBQWE7O1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQztRQUM5RSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFFbEYsTUFBTSxHQUFHLEdBQWdCLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsRUFBaUIsQ0FBQztRQUNuRyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5cbmltcG9ydCB7Tm9kZUN1dHRlZFR5cGUsIE5vZGVUeXBlfSBmcm9tICcuL2luZGV4JztcblxuXG5leHBvcnQgaW50ZXJmYWNlIElUcmVlSGVscGVyIHtcbiAgLyoqIEdlbmVyYXRlcyBkYXRhIGZyYW1lIHdpdGggcm93IHBlciBub2RlLCBwYXJlbnQgcmVsYXRpb24sIGRpc3RhbmNlLCBhbm5vdGF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdpY2sgICAgICAgICAgICAgICAgTmV3aWNrIGZvcm1hdCBkYXRhXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lICAgICAgICAgICAgICAgICAgUmVzdWx0IGRhdGEgZnJhbWUgbmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbm9kZVByZWZpeCAgICAgICAgICAgIFByZWZpeCBmb3Igbm9kZXMgd2l0aCBhdXRvIGdlbmVyYXRlZCBuYW1lICAgKlxuICAgKiBAcGFyYW0ge2Jvb2x9ICAgZW1wdHlQYXJlbnRSb290U2tpcCAgIFNraXAgcm93IHdpdGggcm9vdCBub2RlIGFuZCBlbXB0eSBwYXJlbnQgKGZvciBOZXR3b3JrIERpYWdyYW0pXG4gICAqL1xuICBuZXdpY2tUb0RmKG5ld2ljazogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIG5vZGVQcmVmaXg/OiBzdHJpbmcsIGVtcHR5UGFyZW50Um9vdFNraXA/OiBib29sZWFuKTogREcuRGF0YUZyYW1lO1xuXG4gIHRvTmV3aWNrKG5vZGU6IE5vZGVUeXBlIHwgbnVsbCk6IHN0cmluZztcblxuICBnZXRMZWFmTGlzdDxUTm9kZSBleHRlbmRzIE5vZGVUeXBlPihub2RlOiBUTm9kZSk6IFROb2RlW107XG5cbiAgZ2V0Tm9kZUxpc3Q8VE5vZGUgZXh0ZW5kcyBOb2RlVHlwZT4obm9kZTogVE5vZGUpOiBUTm9kZVtdO1xuXG4gIHRyZWVGaWx0ZXJCeUxlYXZlcyhub2RlOiBOb2RlVHlwZSwgbGVhdmVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSk6IE5vZGVUeXBlIHwgbnVsbDtcblxuICB0cmVlQ3V0QXNMZWF2ZXMobm9kZTogTm9kZVR5cGUsIGN1dEhlaWdodDogbnVtYmVyLCBjdXJyZW50SGVpZ2h0PzogbnVtYmVyKTogTm9kZVR5cGVbXTtcblxuICB0cmVlQ3V0QXNUcmVlKG5vZGU6IE5vZGVUeXBlLCBjdXRIZWlnaHQ6IG51bWJlciwga2VlcFNob3J0cz86IGJvb2xlYW4sIGN1cnJlbnRIZWlnaHQ/OiBudW1iZXIpOiBOb2RlVHlwZSB8IG51bGw7XG5cbiAgLyoqIFJlb3JkZXIgdGhlIGdyaWQncyByb3dzIGFjY29yZGluZyB0byB0aGUgbGVhdmVzJyBvcmRlciBpbiB0aGUgdHJlZS5cbiAgICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gbGVhZkNvbE5hbWUgQ29sdW1uIG5hbWUgZm9yIGxlYWYgbmFtZSBpbiBuZXdpY2ssIG51bGwgLSB1c2Ugcm93IGluZGV4XG4gICAqL1xuICBzZXRHcmlkT3JkZXIodHJlZTogTm9kZVR5cGUsIGdyaWQ6IERHLkdyaWQsIGxlYWZDb2xOYW1lOiBzdHJpbmcgfCBudWxsKTogW05vZGVUeXBlLCBzdHJpbmdbXV07XG5cbiAgbWFya0NsdXN0ZXJzKHRyZWU6IE5vZGVDdXR0ZWRUeXBlLFxuICAgIGRhdGFEZjogREcuRGF0YUZyYW1lLCBsZWFmQ29sTmFtZTogc3RyaW5nIHwgbnVsbCwgY2x1c3RlckNvbE5hbWU6IHN0cmluZywgbmE/OiBhbnkpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xudWxsfSBsZWFmQ29sTmFtZSBDb2x1bW4gbmFtZSBmb3IgbGVhZiBuYW1lIGluIG5ld2ljaywgbnVsbCAtIHVzZSByb3cgaW5kZXhcbiAgICovXG4gIGJ1aWxkQ2x1c3RlcnModHJlZTogTm9kZUN1dHRlZFR5cGUsXG4gICAgY2x1c3RlckRmOiBERy5EYXRhRnJhbWUsIGNsdXN0ZXJDb2xOYW1lOiBzdHJpbmcsIGxlYWZDb2xOYW1lOiBzdHJpbmcgfCBudWxsKTogdm9pZDtcblxuICAvKiogTW9kaWZpZXMgdGhlIHRyZWUgKHtAbGluayBub2RlfSkgY3V0dGluZyBhdCB7QGxpbmsgY3V0SGVpZ2h0fSBjcmVhdGluZyBleHRyYSBub2Rlcy5cbiAgICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gbGVhZkNvbE5hbWUgQ29sdW1uIG5hbWUgZm9yIGxlYWYgbmFtZSBpbiBuZXdpY2ssIG51bGwgLSB1c2Ugcm93IGluZGV4XG4gICAqL1xuICBjdXRUcmVlVG9HcmlkKG5vZGU6IE5vZGVUeXBlLCBjdXRIZWlnaHQ6IG51bWJlciwgZGF0YURmOiBERy5EYXRhRnJhbWUsXG4gICAgbGVhZkNvbE5hbWU6IHN0cmluZywgY2x1c3RlckNvbE5hbWU6IHN0cmluZywgbmE/OiBhbnkpOiB2b2lkO1xuXG4gIC8qKiBHZW5lcmF0ZSB0cmVlIHN0cnVjdHVyZXMgd2l0aCB7QGxpbmsgc2l6ZX0gbm9kZXMgbnVtYmVyIChjb3VudGluZyBpbnRlcm5hbCkuKi9cbiAgZ2VuZXJhdGVUcmVlKHNpemU6IG51bWJlcik6IE5vZGVUeXBlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VHJlZUhlbHBlcigpOiBQcm9taXNlPElUcmVlSGVscGVyPiB7XG4gIGNvbnN0IGZ1bmNMaXN0ID0gREcuRnVuYy5maW5kKHtwYWNrYWdlOiAnRGVuZHJvZ3JhbScsIG5hbWU6ICdnZXRUcmVlSGVscGVyJ30pO1xuICBpZiAoZnVuY0xpc3QubGVuZ3RoID09PSAwKVxuICAgIHRocm93IG5ldyBFcnJvcignUGFja2FnZSBcIlBoeWxvVHJlZVZpZXdlclwiXCIgbXVzdCBiZSBpbnN0YWxsZWQgZm9yIFRyZWVIZWxwZXIuJyk7XG5cbiAgY29uc3QgcmVzOiBJVHJlZUhlbHBlciA9IChhd2FpdCBmdW5jTGlzdFswXS5wcmVwYXJlKCkuY2FsbCgpKS5nZXRPdXRwdXRQYXJhbVZhbHVlKCkgYXMgSVRyZWVIZWxwZXI7XG4gIHJldHVybiByZXM7XG59XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0cmVlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBNkR0QyxNQUFNLFVBQWdCLGFBQWE7O1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFDLENBQUMsQ0FBQztRQUM5RSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFFbEYsTUFBTSxHQUFHLEdBQWdCLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsRUFBaUIsQ0FBQztRQUNuRyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5cbmltcG9ydCB7Tm9kZUN1dHRlZFR5cGUsIE5vZGVUeXBlfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCB7RGlzdGFuY2VNYXRyaXh9IGZyb20gJy4vZGlzdGFuY2UtbWF0cml4JztcblxuZXhwb3J0IGludGVyZmFjZSBJVHJlZUhlbHBlciB7XG4gIC8qKiBHZW5lcmF0ZXMgZGF0YSBmcmFtZSB3aXRoIHJvdyBwZXIgbm9kZSwgcGFyZW50IHJlbGF0aW9uLCBkaXN0YW5jZSwgYW5ub3RhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3aWNrICAgICAgICAgICAgICAgIE5ld2ljayBmb3JtYXQgZGF0YVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAgICAgICAgICAgICAgICAgIFJlc3VsdCBkYXRhIGZyYW1lIG5hbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5vZGVQcmVmaXggICAgICAgICAgICBQcmVmaXggZm9yIG5vZGVzIHdpdGggYXV0byBnZW5lcmF0ZWQgbmFtZSAgICpcbiAgICogQHBhcmFtIHtib29sfSAgIGVtcHR5UGFyZW50Um9vdFNraXAgICBTa2lwIHJvdyB3aXRoIHJvb3Qgbm9kZSBhbmQgZW1wdHkgcGFyZW50IChmb3IgTmV0d29yayBEaWFncmFtKVxuICAgKi9cbiAgbmV3aWNrVG9EZihuZXdpY2s6IHN0cmluZywgbmFtZTogc3RyaW5nLCBub2RlUHJlZml4Pzogc3RyaW5nLCBlbXB0eVBhcmVudFJvb3RTa2lwPzogYm9vbGVhbik6IERHLkRhdGFGcmFtZTtcblxuICB0b05ld2ljayhub2RlOiBOb2RlVHlwZSB8IG51bGwpOiBzdHJpbmc7XG5cbiAgZ2V0TGVhZkxpc3Q8VE5vZGUgZXh0ZW5kcyBOb2RlVHlwZT4obm9kZTogVE5vZGUpOiBUTm9kZVtdO1xuXG4gIGdldE5vZGVMaXN0PFROb2RlIGV4dGVuZHMgTm9kZVR5cGU+KG5vZGU6IFROb2RlKTogVE5vZGVbXTtcblxuICAvKiogRmlsdGVycyB0cmVlIGJ5IGxlYXZlcyAoYnkgc2V0KS5cbiAgICogQW4gaW50ZXJuYWwgbm9kZSB3aWxsIGJlIGVsaW1pbmF0ZWQgb25seSBpZiBhbGwgaXRzIHN1YnMgKGNoaWxkcmVuL2xlYXZlcykgYXJlIGZpbHRlcmVkIG91dCBieSB7bGluayBAbGVhdmVzfS5cbiAgICovXG4gIGZpbHRlclRyZWVCeUxlYXZlcyhub2RlOiBOb2RlVHlwZSwgbGVhdmVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSk6IE5vZGVUeXBlIHwgbnVsbDtcblxuICAvKiogQ29sbGVjdHMgbm9kZXMgYnkgbGVhdmVzIChieSBzZXQpLlxuICAgKiBOb2RlIHdpbGwgYmUgcmV0dXJuZWQgb25seSBpZiBhbGwgaXRzIHN1YnMgKGNoaWxkcmVuL2xlYXZlcykgYXJlIHByZXNlbnQgaW4ge0BsaW5rIGxlYXZlc30uXG4gICAqL1xuICBnZXROb2Rlc0J5TGVhdmVzPFROb2RlIGV4dGVuZHMgTm9kZVR5cGU+KG5vZGU6IFROb2RlLCBsZWF2ZXM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9KTogVE5vZGVbXTtcblxuICB0cmVlQ3V0QXNMZWF2ZXMobm9kZTogTm9kZVR5cGUsIGN1dEhlaWdodDogbnVtYmVyLCBjdXJyZW50SGVpZ2h0PzogbnVtYmVyKTogTm9kZVR5cGVbXTtcblxuICB0cmVlQ3V0QXNUcmVlKG5vZGU6IE5vZGVUeXBlLCBjdXRIZWlnaHQ6IG51bWJlciwga2VlcFNob3J0cz86IGJvb2xlYW4sIGN1cnJlbnRIZWlnaHQ/OiBudW1iZXIpOiBOb2RlVHlwZSB8IG51bGw7XG5cbiAgLyoqIFJlb3JkZXIgdGhlIGdyaWQncyByb3dzIGFjY29yZGluZyB0byB0aGUgbGVhdmVzJyBvcmRlciBpbiB0aGUgdHJlZS5cbiAgICogQHBhcmFtIHtzdHJpbmd8bnVsbH0gbGVhZkNvbE5hbWUgQ29sdW1uIG5hbWUgZm9yIGxlYWYgbmFtZSBpbiBuZXdpY2ssIG51bGwgLSB1c2Ugcm93IGluZGV4XG4gICAqL1xuICBzZXRHcmlkT3JkZXIodHJlZTogTm9kZVR5cGUsIGdyaWQ6IERHLkdyaWQsIGxlYWZDb2xOYW1lPzogc3RyaW5nKTogW05vZGVUeXBlLCBzdHJpbmdbXV07XG5cbiAgbWFya0NsdXN0ZXJzKHRyZWU6IE5vZGVDdXR0ZWRUeXBlLFxuICAgIGRhdGFEZjogREcuRGF0YUZyYW1lLCBsZWFmQ29sTmFtZTogc3RyaW5nIHwgbnVsbCwgY2x1c3RlckNvbE5hbWU6IHN0cmluZywgbmE/OiBhbnkpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xudWxsfSBsZWFmQ29sTmFtZSBDb2x1bW4gbmFtZSBmb3IgbGVhZiBuYW1lIGluIG5ld2ljaywgbnVsbCAtIHVzZSByb3cgaW5kZXhcbiAgICovXG4gIGJ1aWxkQ2x1c3RlcnModHJlZTogTm9kZUN1dHRlZFR5cGUsIGNsdXN0ZXJEZjogREcuRGF0YUZyYW1lLCBjbHVzdGVyQ29sTmFtZTogc3RyaW5nLCBsZWFmQ29sTmFtZT86IHN0cmluZyk6IHZvaWQ7XG5cbiAgLyoqIE1vZGlmaWVzIHRoZSB0cmVlICh7QGxpbmsgbm9kZX0pIGN1dHRpbmcgYXQge0BsaW5rIGN1dEhlaWdodH0gY3JlYXRpbmcgZXh0cmEgbm9kZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfG51bGx9IGxlYWZDb2xOYW1lIENvbHVtbiBuYW1lIGZvciBsZWFmIG5hbWUgaW4gbmV3aWNrLCBudWxsIC0gdXNlIHJvdyBpbmRleFxuICAgKi9cbiAgY3V0VHJlZVRvR3JpZChub2RlOiBOb2RlVHlwZSwgY3V0SGVpZ2h0OiBudW1iZXIsIGRhdGFEZjogREcuRGF0YUZyYW1lLFxuICAgIGxlYWZDb2xOYW1lOiBzdHJpbmcsIGNsdXN0ZXJDb2xOYW1lOiBzdHJpbmcsIG5hPzogYW55KTogdm9pZDtcblxuICAvKiogR2VuZXJhdGUgdHJlZSBzdHJ1Y3R1cmVzIHdpdGgge0BsaW5rIHNpemV9IG5vZGVzIG51bWJlciAoY291bnRpbmcgaW50ZXJuYWwpLiovXG4gIGdlbmVyYXRlVHJlZShzaXplOiBudW1iZXIpOiBOb2RlVHlwZTtcblxuICBoaWVyYXJjaGljYWxDbHVzdGVyaW5nKGRmOiBERy5EYXRhRnJhbWUsIGRpc3RhbmNlOiBzdHJpbmcsIGxpbmthZ2U6IHN0cmluZyk6IFByb21pc2U8Tm9kZVR5cGU+O1xuXG4gIGhpZXJhcmNoaWNhbENsdXN0ZXJpbmdCeURpc3RhbmNlKGRpc3RhbmNlOiBEaXN0YW5jZU1hdHJpeCwgbGlua2FnZTogc3RyaW5nKTogUHJvbWlzZTxOb2RlVHlwZT47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUcmVlSGVscGVyKCk6IFByb21pc2U8SVRyZWVIZWxwZXI+IHtcbiAgY29uc3QgZnVuY0xpc3QgPSBERy5GdW5jLmZpbmQoe3BhY2thZ2U6ICdEZW5kcm9ncmFtJywgbmFtZTogJ2dldFRyZWVIZWxwZXInfSk7XG4gIGlmIChmdW5jTGlzdC5sZW5ndGggPT09IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKCdQYWNrYWdlIFwiUGh5bG9UcmVlVmlld2VyXCJcIiBtdXN0IGJlIGluc3RhbGxlZCBmb3IgVHJlZUhlbHBlci4nKTtcblxuICBjb25zdCByZXM6IElUcmVlSGVscGVyID0gKGF3YWl0IGZ1bmNMaXN0WzBdLnByZXBhcmUoKS5jYWxsKCkpLmdldE91dHB1dFBhcmFtVmFsdWUoKSBhcyBJVHJlZUhlbHBlcjtcbiAgcmV0dXJuIHJlcztcbn1cbiJdfQ==