gosling.js 2.0.0-alpha.7 → 2.0.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/demo/gosling-component.d.ts.map +1 -1
  2. package/dist/demo/renderer/dataFetcher.d.ts.map +1 -1
  3. package/dist/demo/renderer/main.d.ts.map +1 -1
  4. package/dist/demo/track-def/main.d.ts +4 -1
  5. package/dist/demo/track-def/main.d.ts.map +1 -1
  6. package/dist/demo/track-def/types.d.ts +13 -3
  7. package/dist/demo/track-def/types.d.ts.map +1 -1
  8. package/dist/{exported-utils-b3cf08ff.js → exported-utils-bca41fe4.js} +96 -5
  9. package/dist/exported-utils-bca41fe4.js.map +1 -0
  10. package/dist/gosling.js +1162 -83
  11. package/dist/gosling.js.map +1 -1
  12. package/dist/src/compiler/_normalize-3d-spec.d.ts +8 -0
  13. package/dist/src/compiler/_normalize-3d-spec.d.ts.map +1 -0
  14. package/dist/src/compiler/spec-preprocess.d.ts.map +1 -1
  15. package/dist/src/core/utils/assembly.d.ts +3 -1
  16. package/dist/src/core/utils/assembly.d.ts.map +1 -1
  17. package/dist/src/core/utils/assert.d.ts +17 -0
  18. package/dist/src/core/utils/assert.d.ts.map +1 -0
  19. package/dist/src/core/utils/chrom-size.d.ts +18 -0
  20. package/dist/src/core/utils/chrom-size.d.ts.map +1 -1
  21. package/dist/src/core/utils/data-transform.d.ts +10 -1
  22. package/dist/src/core/utils/data-transform.d.ts.map +1 -1
  23. package/dist/src/gosling-schema/gosling.schema.d.ts +41 -4
  24. package/dist/src/gosling-schema/gosling.schema.d.ts.map +1 -1
  25. package/dist/src/tracks/gosling-track/gosling-track.d.ts +1 -1
  26. package/dist/src/tracks/gosling-track/gosling-track.d.ts.map +1 -1
  27. package/dist/src/tracks/spatial-track/spatial-track.d.ts +22 -0
  28. package/dist/src/tracks/spatial-track/spatial-track.d.ts.map +1 -0
  29. package/dist/utils.js +1 -1
  30. package/package.json +4 -2
  31. package/dist/exported-utils-b3cf08ff.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"gosling-component.d.ts","sourceRoot":"","sources":["../../demo/gosling-component.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAuB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE,CAAC;AAIjE,UAAU,qBAAqB;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,GAAG,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5B,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,qHAAqH;IACrH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,eAwD5D;AACD;;GAEG;AACH,wBAAgB,aAAa,CACzB,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,OAAO,CAAC,EAAE,MAAM,IAAI;;;;;;;;EA2DvB"}
1
+ {"version":3,"file":"gosling-component.d.ts","sourceRoot":"","sources":["../../demo/gosling-component.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAuB,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE,CAAC;AAIjE,UAAU,qBAAqB;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,GAAG,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5B,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,qHAAqH;IACrH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,eAwD5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CACzB,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,cAAc,EACzB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,OAAO,CAAC,EAAE,MAAM,IAAI;;;;;;;;EA2DvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../demo/renderer/dataFetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAM9D,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE/E,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,EAAE,iBAAiB,CAAC,EAAE,iBAAiB;;;;;;;;;;;eA0CtG"}
1
+ {"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../demo/renderer/dataFetcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAM9D,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE/E,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,EAAE,iBAAiB,CAAC,EAAE,iBAAiB;;;;;;;;;;;eA4CtG"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../demo/renderer/main.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAK9D;;;;GAIG;AACH,wBAAgB,eAAe,CAC3B,SAAS,EAAE,SAAS,EAAE,EACtB,eAAe,EAAE,cAAc,EAAE,EACjC,WAAW,EAAE,WAAW,EACxB,iBAAiB,CAAC,EAAE,iBAAiB,2BAwHxC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../demo/renderer/main.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAO9D;;;;GAIG;AACH,wBAAgB,eAAe,CAC3B,SAAS,EAAE,SAAS,EAAE,EACtB,eAAe,EAAE,cAAc,EAAE,EACjC,WAAW,EAAE,WAAW,EACxB,iBAAiB,CAAC,EAAE,iBAAiB,2BAyIxC"}
@@ -6,6 +6,7 @@ import { type BrushLinearTrackOptions } from '@gosling-lang/brush-linear';
6
6
  import type { TrackInfo } from '../../src/compiler/bounding-box';
7
7
  import type { CompleteThemeDeep } from '../../src/core/utils/theme';
8
8
  import type { GoslingTrackOptions } from '../../src/tracks/gosling-track/gosling-track';
9
+ import type { SpatialTrackOptions } from 'src/tracks/spatial-track/spatial-track';
9
10
  import { type BrushCircularTrackOptions } from '@gosling-lang/brush-circular';
10
11
  import { type HeatmapTrackOptions } from '@gosling-lang/heatmap';
11
12
  /**
@@ -18,7 +19,8 @@ export declare enum TrackType {
18
19
  Axis = 3,
19
20
  BrushLinear = 4,
20
21
  BrushCircular = 5,
21
- Heatmap = 6
22
+ Heatmap = 6,
23
+ Spatial = 7
22
24
  }
23
25
  /**
24
26
  * Associate options to each track type
@@ -31,6 +33,7 @@ interface TrackOptionsMap {
31
33
  [TrackType.BrushLinear]: BrushLinearTrackOptions;
32
34
  [TrackType.BrushCircular]: BrushCircularTrackOptions;
33
35
  [TrackType.Heatmap]: HeatmapTrackOptions;
36
+ [TrackType.Spatial]: SpatialTrackOptions;
34
37
  }
35
38
  /**
36
39
  * This interface contains all of the information needed to render each track type.
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../demo/track-def/main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAKxF,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAIjE;;GAEG;AACH,oBAAY,SAAS;IACjB,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,OAAO,IAAA;IACP,IAAI,IAAA;IACJ,WAAW,IAAA;IACX,aAAa,IAAA;IACb,OAAO,IAAA;CACV;AAED;;GAEG;AACH,UAAU,eAAe;IACrB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACzC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACnC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACrC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACnC,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACjD,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,yBAAyB,CAAC;IACrD,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,OAAO,EAAE,CAAC,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;KACnB,CAAC,IAAI,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAC7D,CAAC,MAAM,eAAe,CAAC,CAAC;AAEzB;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,SAAS,EAAE,CAuBxG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,WAAW,QAQvF"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../demo/track-def/main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAKlF,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAIjE;;GAEG;AACH,oBAAY,SAAS;IACjB,IAAI,IAAA;IACJ,KAAK,IAAA;IACL,OAAO,IAAA;IACP,IAAI,IAAA;IACJ,WAAW,IAAA;IACX,aAAa,IAAA;IACb,OAAO,IAAA;IACP,OAAO,IAAA;CACV;AAED;;GAEG;AACH,UAAU,eAAe;IACrB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACzC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACnC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACrC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACnC,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACjD,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,yBAAyB,CAAC;IACrD,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACzC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,OAAO,EAAE,CAAC,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;KACnB,CAAC,IAAI,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;CAC7D,CAAC,MAAM,eAAe,CAAC,CAAC;AAEzB;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,SAAS,EAAE,CAoCxG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,WAAW,QAQvF"}
@@ -11,15 +11,15 @@ import type { DataDeep, Assembly, DummyTrackStyle, Mark, X, Y } from '@gosling-l
11
11
  * TODO: this file is incomplete. It should be updated to include all the properties that a processed spec can have.
12
12
  */
13
13
  /** A Track after it has been compiled */
14
- export type ProcessedTrack = ProcessedLinearTrack | ProcessedCircularTrack | ProcessedDummyTrack;
14
+ export type ProcessedTrack = ProcessedLinearTrack | ProcessedCircularTrack | ProcessedDummyTrack | ProcessedSpatialTrack;
15
15
  /** All tracks potentially have these properties */
16
16
  export interface ProcessedTrackBase {
17
- layout?: 'linear' | 'circular';
17
+ layout?: 'linear' | 'circular' | 'spatial';
18
18
  id: string;
19
19
  height: number;
20
20
  width: number;
21
21
  static: boolean;
22
- mark?: string;
22
+ mark?: Mark;
23
23
  orientation: 'horizontal' | 'vertical';
24
24
  title?: string;
25
25
  subtitle?: string;
@@ -53,6 +53,16 @@ export type ProcessedCircularTrack = ProcessedTrackBase & {
53
53
  outerRadius: number;
54
54
  innerRadius: number;
55
55
  };
56
+ export type ProcessedSpatialTrack = ProcessedTrackBase & {
57
+ layout: 'spatial';
58
+ spatial: {
59
+ x: string;
60
+ y: string;
61
+ z: string;
62
+ chr: string;
63
+ coord: string;
64
+ };
65
+ };
56
66
  export type ProcessedDummyTrack = (ProcessedLinearTrack | ProcessedCircularTrack) & {
57
67
  type: 'dummy-track';
58
68
  style?: DummyTrackStyle;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../demo/track-def/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,8BAA8B,CAAC;AAEpG;;;;;;;;;;GAUG;AAEH,yCAAyC;AACzC,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAEjG,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG;IACpD,MAAM,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,oBAAoB,GAAG,sBAAsB,CAAC,GAAG;IAChF,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,CAAC,CAAC,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,6BAA6B;AAC7B,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../demo/track-def/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,8BAA8B,CAAC;AAEpG;;;;;;;;;;GAUG;AAEH,yCAAyC;AACzC,MAAM,MAAM,cAAc,GACpB,oBAAoB,GACpB,sBAAsB,GACtB,mBAAmB,GACnB,qBAAqB,CAAC;AAC5B,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,WAAW,EAAE,YAAY,GAAG,UAAU,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG;IACpD,MAAM,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,MAAM,MAAM,qBAAqB,GAAG,kBAAkB,GAAG;IACrD,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE;QACL,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,oBAAoB,GAAG,sBAAsB,CAAC,GAAG;IAChF,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,CAAC,CAAC,EAAE,CAAC,CAAC;CACT,CAAC;AAEF,6BAA6B;AAC7B,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B"}
@@ -9165,6 +9165,41 @@ function uuid() {
9165
9165
  var _a, _b, _c;
9166
9166
  return (_c = (_b = (_a = globalThis.crypto).randomUUID) == null ? void 0 : _b.call(_a)) != null ? _c : fallback();
9167
9167
  }
9168
+ function propagateSpatialLayoutInfo(t) {
9169
+ var _a, _b, _c, _d, _e, _f, _g;
9170
+ const { layout } = t;
9171
+ if (typeof layout == "object" && "type" in layout && layout.type === "spatial") {
9172
+ const { model } = layout;
9173
+ const [x, y, z] = model.xyz;
9174
+ const { url, chromosome: chr, position: coord } = model;
9175
+ t.spatial = {
9176
+ x,
9177
+ y,
9178
+ z,
9179
+ chr,
9180
+ coord
9181
+ };
9182
+ t.layout = "spatial";
9183
+ const dataTransform = {
9184
+ type: "join",
9185
+ from: { url, chromosomeField: chr, genomicField: coord }
9186
+ };
9187
+ let to = { startField: "start", endField: "end" };
9188
+ if (((_a = t.data) == null ? void 0 : _a.type) === "bigwig") {
9189
+ to = { startField: "start", endField: "end" };
9190
+ } else if (((_b = t.data) == null ? void 0 : _b.type) === "csv") {
9191
+ const startField = (_d = (_c = t.data.genomicFields) == null ? void 0 : _c[0]) != null ? _d : "unknown";
9192
+ const endField = (_f = (_e = t.data.genomicFields) == null ? void 0 : _e[1]) != null ? _f : void 0;
9193
+ to = { startField, endField };
9194
+ }
9195
+ t.dataTransform = [{ ...dataTransform, to }, ...(_g = t.dataTransform) != null ? _g : []];
9196
+ } else if (typeof layout == "object") {
9197
+ t.layout = layout.type;
9198
+ }
9199
+ if (t.locus && !t.x) {
9200
+ t.x = { ...t.locus, type: "genomic" };
9201
+ }
9202
+ }
9168
9203
  function traverseTracks(spec, callback) {
9169
9204
  if ("tracks" in spec) {
9170
9205
  spec.tracks.forEach((t, i, ts) => {
@@ -9316,6 +9351,11 @@ function traverseToFixSpecDownstream(spec, parentDef) {
9316
9351
  track.static = spec.static !== void 0 ? spec.static : false;
9317
9352
  if (!track.zoomLimits)
9318
9353
  track.zoomLimits = spec.zoomLimits;
9354
+ if (track.layout && typeof track.layout === "object" && track.layout.type === "spatial") {
9355
+ if (!("template" in track)) {
9356
+ propagateSpatialLayoutInfo(track);
9357
+ }
9358
+ }
9319
9359
  track.style = getStyleOverridden(spec.style, track.style);
9320
9360
  if (IsOverlaidTrack(track)) {
9321
9361
  track._overlay = track._overlay.filter((overlayTrack) => {
@@ -9733,6 +9773,24 @@ const CHROM_SIZE_MM9 = {
9733
9773
  chrY: 15902555,
9734
9774
  chrM: 16299
9735
9775
  };
9776
+ const CHROM_SIZE_SACCER3 = {
9777
+ chrI: 230218,
9778
+ chrII: 813184,
9779
+ chrIII: 316620,
9780
+ chrIV: 1531933,
9781
+ chrV: 576874,
9782
+ chrVI: 270161,
9783
+ chrVII: 1090940,
9784
+ chrVIII: 562643,
9785
+ chrIX: 439888,
9786
+ chrX: 745751,
9787
+ chrXI: 666816,
9788
+ chrXII: 1078177,
9789
+ chrXIII: 924431,
9790
+ chrXIV: 784333,
9791
+ chrXV: 1091291,
9792
+ chrXVI: 948066
9793
+ };
9736
9794
  function getRelativeGenomicPosition(absPos, assembly, returnWithinAssembly = false) {
9737
9795
  const chrSizes = Object.entries(computeChromSizes(assembly).interval);
9738
9796
  const minPosChr = { chromosome: "unknown", position: Infinity };
@@ -9826,6 +9884,12 @@ const CRHOM_SIZES = Object.freeze({
9826
9884
  total: getChromTotalSize(CHROM_SIZE_MM9),
9827
9885
  path: basePath("mm9")
9828
9886
  },
9887
+ sacCer3: {
9888
+ size: CHROM_SIZE_SACCER3,
9889
+ interval: getChromInterval(CHROM_SIZE_SACCER3),
9890
+ total: getChromTotalSize(CHROM_SIZE_SACCER3),
9891
+ path: "https://gosling-lang.s3.us-east-1.amazonaws.com/data/sacCer3.chrom.sizes"
9892
+ },
9829
9893
  // `unknown` assembly contains only one chromosome with max length
9830
9894
  unknown: {
9831
9895
  size: { chr: Number.MAX_VALUE },
@@ -9847,8 +9911,25 @@ function getChromTotalSize(chromSize) {
9847
9911
  return Object.values(chromSize).reduce((sum, current) => sum + current, 0);
9848
9912
  }
9849
9913
  function parseGenomicPosition(position) {
9850
- const [chromosome, intervalString] = position.split(":");
9851
- if (intervalString) {
9914
+ const firstColonIndex = position.indexOf(":");
9915
+ if (firstColonIndex === -1) {
9916
+ return { chromosome: position };
9917
+ }
9918
+ const chromosome = position.substring(0, firstColonIndex);
9919
+ const intervalString = position.substring(firstColonIndex + 1);
9920
+ if (intervalString.includes(":")) {
9921
+ const dashIndex = intervalString.indexOf("-");
9922
+ if (dashIndex !== -1) {
9923
+ const startPosStr = intervalString.substring(0, dashIndex);
9924
+ const endPart = intervalString.substring(dashIndex + 1);
9925
+ const [chromosomeEnd, endPosStr] = endPart.split(":");
9926
+ const start = +startPosStr.replace(/,/g, "");
9927
+ const end = +endPosStr.replace(/,/g, "");
9928
+ if (!Number.isNaN(start) && !Number.isNaN(end)) {
9929
+ return { chromosome, start, chromosomeEnd, end };
9930
+ }
9931
+ }
9932
+ } else {
9852
9933
  const [start, end] = intervalString.split("-").map((s) => +s.replace(/,/g, ""));
9853
9934
  if (!Number.isNaN(start) && !Number.isNaN(end)) {
9854
9935
  return { chromosome, start, end };
@@ -9857,14 +9938,15 @@ function parseGenomicPosition(position) {
9857
9938
  return { chromosome };
9858
9939
  }
9859
9940
  class GenomicPositionHelper {
9860
- constructor(chromosome, start, end) {
9941
+ constructor(chromosome, start, end, chromosomeEnd) {
9861
9942
  this.chromosome = chromosome;
9862
9943
  this.start = start;
9863
9944
  this.end = end;
9945
+ this.chromosomeEnd = chromosomeEnd;
9864
9946
  }
9865
9947
  static fromString(str) {
9866
9948
  const result = parseGenomicPosition(str);
9867
- return new GenomicPositionHelper(result.chromosome, result.start, result.end);
9949
+ return new GenomicPositionHelper(result.chromosome, result.start, result.end, result.chromosomeEnd);
9868
9950
  }
9869
9951
  toAbsoluteCoordinates(assembly, padding = 0) {
9870
9952
  const info = computeChromSizes(assembly);
@@ -9878,6 +9960,15 @@ class GenomicPositionHelper {
9878
9960
  [start, end] = [1, size];
9879
9961
  }
9880
9962
  const offset = interval[0];
9963
+ if (this.chromosomeEnd && this.chromosomeEnd !== this.chromosome) {
9964
+ const endSize = info.size[this.chromosomeEnd];
9965
+ const endInterval = info.interval[this.chromosomeEnd];
9966
+ if (endSize === void 0 || endInterval === void 0) {
9967
+ throw new Error(`End chromosome name ${this.chromosomeEnd} is not valid`);
9968
+ }
9969
+ const endOffset = endInterval[0];
9970
+ return [start + offset - padding, end + endOffset + padding];
9971
+ }
9881
9972
  return [start + offset - padding, end + offset + padding];
9882
9973
  }
9883
9974
  }
@@ -9951,4 +10042,4 @@ export {
9951
10042
  commonjsGlobal as y,
9952
10043
  RemoteFile as z
9953
10044
  };
9954
- //# sourceMappingURL=exported-utils-b3cf08ff.js.map
10045
+ //# sourceMappingURL=exported-utils-bca41fe4.js.map