@datagrok-libraries/bio 5.33.0 → 5.33.1

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/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "access": "public"
9
9
  },
10
10
  "friendlyName": "Datagrok bio library",
11
- "version": "5.33.0",
11
+ "version": "5.33.1",
12
12
  "description": "",
13
13
  "dependencies": {
14
14
  "@datagrok-libraries/gridext": "^1.3.54",
@@ -11,18 +11,25 @@ type MonomerPlacerProps = {
11
11
  monomerLengthLimit: number;
12
12
  };
13
13
  export declare class MonomerPlacer {
14
- readonly view: DG.View | null;
14
+ readonly grid: DG.Grid | null;
15
15
  readonly col: DG.Column<string>;
16
16
  private readonly propsProvider;
17
17
  private readonly _splitter;
18
18
  private _monomerLengthList;
19
19
  private separatorWidth;
20
20
  private props;
21
+ private _rowsProcessed;
21
22
  private _updated;
22
23
  get updated(): boolean;
24
+ _monomerLengthMap: {
25
+ [key: string]: TextMetrics;
26
+ };
27
+ _monomerStructureMap: {
28
+ [key: string]: HTMLDivElement;
29
+ };
23
30
  private readonly subs;
24
31
  /** View is required to subscribe and handle for data frame changes */
25
- constructor(view: DG.View | null, col: DG.Column<string>, propsProvider: () => MonomerPlacerProps);
32
+ constructor(grid: DG.Grid | null, col: DG.Column<string>, propsProvider: () => MonomerPlacerProps);
26
33
  private destroy;
27
34
  /** Returns monomers lengths of the {@link rowIdx} and cumulative sums for borders, monomer places */
28
35
  getCellMonomerLengths(rowIdx: number): [number[], number[]];
@@ -1 +1 @@
1
- {"version":3,"file":"cell-renderer-monomer-placer.d.ts","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAyB,kBAAkB,EAAiC,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,UAAU,CAAC;AAG9C,KAAK,kBAAkB,GAAG;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IACjD,cAAc,EAAE,kBAAkB,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;CAChE,CAAC;AASF,qBAAa,aAAa;aAeN,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI;aACpB,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAhBhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,kBAAkB,CAA2B;IAGrD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,KAAK,CAAqB;IAElC,OAAO,CAAC,QAAQ,CAAkB;IAClC,IAAW,OAAO,IAAI,OAAO,CAA0B;IAEvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAE7C,sEAAsE;gBAEpD,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EACpB,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,aAAa,EAAE,MAAM,kBAAkB;IAiB1D,OAAO,CAAC,OAAO;IAIf,qGAAqG;IAC9F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;IAWlE,OAAO,CAAC,2BAA2B;IAuBnC,OAAO,CAAC,8BAA8B;IAwBtC,yCAAyC;IAClC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiC5D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAKhC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAM1C,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKtC,KAAK,IAAI,OAAO;CAGxB"}
1
+ {"version":3,"file":"cell-renderer-monomer-placer.d.ts","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAyB,kBAAkB,EAAiC,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,UAAU,CAAC;AAG9C,KAAK,kBAAkB,GAAG;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IACjD,cAAc,EAAE,kBAAkB,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;CAChE,CAAC;AASF,qBAAa,aAAa;aAiBN,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI;aACpB,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAlBhC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,kBAAkB,CAA2B;IAGrD,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,cAAc,CAAY;IAElC,OAAO,CAAC,QAAQ,CAAkB;IAClC,IAAW,OAAO,IAAI,OAAO,CAA0B;IAChD,iBAAiB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAC,CAAM;IACrD,oBAAoB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAA;KAAC,CAAM;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAE7C,sEAAsE;gBAEpD,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EACpB,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,aAAa,EAAE,MAAM,kBAAkB;IAkB1D,OAAO,CAAC,OAAO;IAIf,qGAAqG;IAC9F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;IAWlE,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,8BAA8B;IA0BtC,yCAAyC;IAClC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiC5D,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAKhC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAM1C,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKtC,KAAK,IAAI,OAAO;CAGxB"}
@@ -1,4 +1,5 @@
1
1
  import * as grok from 'datagrok-api/grok';
2
+ import * as DG from 'datagrok-api/dg';
2
3
  import { getSplitterForColumn } from './macromolecule';
3
4
  const polymerTypeMap = {
4
5
  ["DNA" /* ALPHABET.DNA */]: "RNA" /* HELM_POLYMER_TYPE.RNA */,
@@ -9,25 +10,29 @@ const polymerTypeMap = {
9
10
  export class MonomerPlacer {
10
11
  get updated() { return this._updated; }
11
12
  /** View is required to subscribe and handle for data frame changes */
12
- constructor(view, col, propsProvider) {
13
- this.view = view;
13
+ constructor(grid, col, propsProvider) {
14
+ this.grid = grid;
14
15
  this.col = col;
15
16
  this.propsProvider = propsProvider;
16
17
  this._monomerLengthList = null;
17
18
  // width of separator symbol
18
19
  this.separatorWidth = 5;
19
20
  this._updated = false;
21
+ this._monomerLengthMap = {}; // caches the lengths to save time on g.measureText
22
+ this._monomerStructureMap = {}; // caches the atomic structures of monomers
20
23
  this.subs = [];
21
24
  this._splitter = getSplitterForColumn(this.col);
22
25
  this.props = this.propsProvider();
23
- if (this.view) {
26
+ this._rowsProcessed = DG.BitSet.create(this.col.length);
27
+ if (this.grid) {
24
28
  // Changes handling is available only in with a view
25
29
  this.subs.push(col.dataFrame.onDataChanged.subscribe(() => {
26
30
  this.props = this.propsProvider();
27
31
  this._monomerLengthList = null;
32
+ this._rowsProcessed = DG.BitSet.create(this.col.length);
28
33
  }));
29
34
  this.subs.push(grok.events.onViewRemoved.subscribe((view) => {
30
- if (this.view.id === view.id)
35
+ if (this.grid?.view.id === view.id)
31
36
  this.destroy();
32
37
  }));
33
38
  }
@@ -66,22 +71,25 @@ export class MonomerPlacer {
66
71
  return res;
67
72
  }
68
73
  getCellMonomerLengthsForSeqMsa() {
74
+ var _a;
69
75
  if (this._monomerLengthList === null) {
70
76
  this._monomerLengthList = new Array(1).fill(null);
71
77
  this._updated = true;
72
78
  }
73
- let res = this._monomerLengthList[0];
74
- if (res === null) {
75
- res = this._monomerLengthList[0] = new Array(0);
76
- for (let seqIdx = 0; seqIdx < Math.max(this.col.length, 100); seqIdx++) {
77
- const seqMonList = this.getSeqMonList(seqIdx);
78
- if (seqMonList.length > res.length)
79
- res.push(...new Array(seqMonList.length - res.length).fill(0));
80
- for (const [seqMonI, seqMonLabel] of seqMonList.entries()) {
81
- const shortMon = this.props.monomerToShort(seqMonLabel, this.props.monomerLengthLimit);
82
- const seqMonWidth = this.props.separatorWidth + shortMon.length * this.props.monomerCharWidth;
83
- res[seqMonI] = Math.max(res[seqMonI] ?? 0, seqMonWidth);
84
- }
79
+ (_a = this._monomerLengthList)[0] ?? (_a[0] = new Array(0));
80
+ const res = this._monomerLengthList[0];
81
+ const startIdx = Math.max(Math.floor((this.grid?.vertScroll.min ?? 0) - 10), 0);
82
+ const endIdx = Math.min(Math.ceil((this.grid?.vertScroll.max ?? 0) + 10), this.col.length);
83
+ for (let seqIdx = startIdx; seqIdx < endIdx; seqIdx++) {
84
+ if (this._rowsProcessed.get(seqIdx))
85
+ continue;
86
+ const seqMonList = this.getSeqMonList(seqIdx);
87
+ if (seqMonList.length > res.length)
88
+ res.push(...new Array(seqMonList.length - res.length).fill(0));
89
+ for (const [seqMonI, seqMonLabel] of seqMonList.entries()) {
90
+ const shortMon = this.props.monomerToShort(seqMonLabel, this.props.monomerLengthLimit);
91
+ const seqMonWidth = this.props.separatorWidth + shortMon.length * this.props.monomerCharWidth;
92
+ res[seqMonI] = Math.max(res[seqMonI] ?? 0, seqMonWidth);
85
93
  }
86
94
  this._updated = true;
87
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cell-renderer-monomer-placer.js","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cell-renderer-monomer-placer.js","sourceRoot":"","sources":["cell-renderer-monomer-placer.ts"],"names":[],"mappings":"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"}
@@ -3,28 +3,28 @@ export declare enum DrawStyle {
3
3
  MSA = "MSA",
4
4
  classic = "classic"
5
5
  }
6
- /**
7
- * A function that prints a string aligned to left or centered.
8
- *
9
- * @param {number} x x coordinate.
10
- * @param {number} y y coordinate.
11
- * @param {number} w Width.
12
- * @param {number} h Height.
13
- * @param {CanvasRenderingContext2D} g Canvas rendering context.
14
- * @param {string} s String to print.
15
- * @param {string} [color=undefinedColor] String color.
16
- * @param {number} [pivot=0] Pirvot.
17
- * @param {boolean} [left=false] Is left aligned.
18
- * @param {number} [transparencyRate=0.0] Transparency rate where 1.0 is fully transparent
19
- * @param {string} [separator=''] Is separator for sequence.
20
- * @param {boolean} [last=false] Is checker if element last or not.
21
- * @param drawStyle Is draw style. MSA - for multicharSeq, classic - for other seq.
22
- * @param maxWord {{[pos: number]: number}} Max word lengths per position.
23
- * @param wordIdx Is index of word we currently draw.
24
- * @param gridCell Is grid cell.
25
- * @param referenceSequence Is reference sequence for diff mode.
26
- * @param maxLengthOfMonomer Is max length of monomer.
27
- * @return {number} x coordinate to start printing at.
28
- */
29
- export declare const printLeftOrCentered: (x: number, y: number, w: number, h: number, g: CanvasRenderingContext2D, s: string, color?: string, pivot?: number, left?: boolean, transparencyRate?: number, separator?: string, last?: boolean, drawStyle?: DrawStyle, maxWord?: number[], wordIdx?: number, gridCell?: DG.GridCell | null, referenceSequence?: string[], maxLengthOfMonomer?: number | null) => number;
6
+ /** A function that prints a string aligned to left or centered.
7
+ * @param {number}x x coordinate.
8
+ * @param {number}y y coordinate.
9
+ * @param {number}w Width.
10
+ * @param {number}h Height.
11
+ * @param {CanvasRenderingContext2D}g Canvas rendering context.
12
+ * @param {string}s String to print.
13
+ * @param {string}color String color.
14
+ * @param {number}pivot Pirvot.
15
+ * @param {boolean}left Is left aligned.
16
+ * @param {number}transparencyRate Transparency rate where 1.0 is fully transparent
17
+ * @param {string}separator Is separator for sequence.
18
+ * @param {boolean}last Is checker if element last or not.
19
+ * @param {DrawStyle}drawStyle Is draw style. MSA - for multicharSeq, classic - for other seq.
20
+ * @param {number[]}maxWord {{[pos: number]: number}} Max word lengths per position.
21
+ * @param {number}wordIdx Is index of word we currently draw.
22
+ * @param {DG.GridCell}gridCell Is grid cell.
23
+ * @param {string[]}referenceSequence Is reference sequence for diff mode.
24
+ * @param {number}maxLengthOfMonomer Is max length of monomer.
25
+ * @param {{[key: string]: TextMetrics}}monomerTextSizeMap Is map of monomer text sizes.
26
+ * @return {number} x coordinate to start printing at.*/
27
+ export declare function printLeftOrCentered(x: number, y: number, w: number, h: number, g: CanvasRenderingContext2D, s: string, color?: string, pivot?: number, left?: boolean, transparencyRate?: number, separator?: string, last?: boolean, drawStyle?: DrawStyle, maxWord?: number[], wordIdx?: number, gridCell?: DG.GridCell | null, referenceSequence?: string[], maxLengthOfMonomer?: number | null, monomerTextSizeMap?: {
28
+ [key: string]: TextMetrics;
29
+ }): number;
30
30
  //# sourceMappingURL=cell-renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cell-renderer.d.ts","sourceRoot":"","sources":["cell-renderer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAStC,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,mBAAmB,MAC3B,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KACvC,wBAAwB,KAAK,MAAM,UAAS,MAAM,UAC9C,MAAM,qCAAsC,MAAM,cAC9C,MAAM,SAAa,OAAO,cAAqB,SAAS,YAC1D,MAAM,EAAE,YAAgB,MAAM,aAAgB,GAAG,QAAQ,GAAG,IAAI,sBACtD,MAAM,EAAE,uBAA2B,MAAM,GAAG,IAAI,KAClE,MA0DF,CAAC"}
1
+ {"version":3,"file":"cell-renderer.d.ts","sourceRoot":"","sources":["cell-renderer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAStC,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED;;;;;;;;;;;;;;;;;;;;wDAoBwD;AACxD,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAC1C,CAAC,EAAE,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAuB,EACtE,KAAK,GAAE,MAAU,EAAE,IAAI,GAAE,OAAe,EAAE,gBAAgB,GAAE,MAAY,EACxE,SAAS,GAAE,MAAW,EAAE,IAAI,GAAE,OAAe,EAAE,SAAS,GAAE,SAA6B,EACvF,OAAO,GAAE,MAAM,EAAO,EAAE,OAAO,GAAE,MAAU,EAAE,QAAQ,GAAE,EAAE,CAAC,QAAQ,GAAG,IAAW,EAChF,iBAAiB,GAAE,MAAM,EAAO,EAAE,kBAAkB,GAAE,MAAM,GAAG,IAAW,EAC1E,kBAAkB,GAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAAM,GAAG,MAAM,CA4D/D"}
@@ -8,30 +8,28 @@ export var DrawStyle;
8
8
  DrawStyle["MSA"] = "MSA";
9
9
  DrawStyle["classic"] = "classic";
10
10
  })(DrawStyle || (DrawStyle = {}));
11
- /**
12
- * A function that prints a string aligned to left or centered.
13
- *
14
- * @param {number} x x coordinate.
15
- * @param {number} y y coordinate.
16
- * @param {number} w Width.
17
- * @param {number} h Height.
18
- * @param {CanvasRenderingContext2D} g Canvas rendering context.
19
- * @param {string} s String to print.
20
- * @param {string} [color=undefinedColor] String color.
21
- * @param {number} [pivot=0] Pirvot.
22
- * @param {boolean} [left=false] Is left aligned.
23
- * @param {number} [transparencyRate=0.0] Transparency rate where 1.0 is fully transparent
24
- * @param {string} [separator=''] Is separator for sequence.
25
- * @param {boolean} [last=false] Is checker if element last or not.
26
- * @param drawStyle Is draw style. MSA - for multicharSeq, classic - for other seq.
27
- * @param maxWord {{[pos: number]: number}} Max word lengths per position.
28
- * @param wordIdx Is index of word we currently draw.
29
- * @param gridCell Is grid cell.
30
- * @param referenceSequence Is reference sequence for diff mode.
31
- * @param maxLengthOfMonomer Is max length of monomer.
32
- * @return {number} x coordinate to start printing at.
33
- */
34
- export const printLeftOrCentered = (x, y, w, h, g, s, color = undefinedColor, pivot = 0, left = false, transparencyRate = 1.0, separator = '', last = false, drawStyle = DrawStyle.classic, maxWord = [], wordIdx = 0, gridCell = null, referenceSequence = [], maxLengthOfMonomer = null) => {
11
+ /** A function that prints a string aligned to left or centered.
12
+ * @param {number}x x coordinate.
13
+ * @param {number}y y coordinate.
14
+ * @param {number}w Width.
15
+ * @param {number}h Height.
16
+ * @param {CanvasRenderingContext2D}g Canvas rendering context.
17
+ * @param {string}s String to print.
18
+ * @param {string}color String color.
19
+ * @param {number}pivot Pirvot.
20
+ * @param {boolean}left Is left aligned.
21
+ * @param {number}transparencyRate Transparency rate where 1.0 is fully transparent
22
+ * @param {string}separator Is separator for sequence.
23
+ * @param {boolean}last Is checker if element last or not.
24
+ * @param {DrawStyle}drawStyle Is draw style. MSA - for multicharSeq, classic - for other seq.
25
+ * @param {number[]}maxWord {{[pos: number]: number}} Max word lengths per position.
26
+ * @param {number}wordIdx Is index of word we currently draw.
27
+ * @param {DG.GridCell}gridCell Is grid cell.
28
+ * @param {string[]}referenceSequence Is reference sequence for diff mode.
29
+ * @param {number}maxLengthOfMonomer Is max length of monomer.
30
+ * @param {{[key: string]: TextMetrics}}monomerTextSizeMap Is map of monomer text sizes.
31
+ * @return {number} x coordinate to start printing at.*/
32
+ export function printLeftOrCentered(x, y, w, h, g, s, color = undefinedColor, pivot = 0, left = false, transparencyRate = 1.0, separator = '', last = false, drawStyle = DrawStyle.classic, maxWord = [], wordIdx = 0, gridCell = null, referenceSequence = [], maxLengthOfMonomer = null, monomerTextSizeMap = {}) {
35
33
  g.textAlign = 'start';
36
34
  let colorPart = s.substring(0);
37
35
  let grayPart = last ? '' : separator;
@@ -52,9 +50,13 @@ export const printLeftOrCentered = (x, y, w, h, g, s, color = undefinedColor, pi
52
50
  transparencyRate = (colorPart != currentMonomer) ? 0.3 : transparencyRate;
53
51
  if (maxLengthOfMonomer != null)
54
52
  colorPart = monomerToShortFunction(colorPart, maxLengthOfMonomer);
55
- let textSize = g.measureText(colorPart + grayPart);
56
- let maxColorTextSize = g.measureText(colorPart).width;
57
- const colorTextSize = g.measureText(colorPart).width;
53
+ const fullText = colorPart + grayPart;
54
+ monomerTextSizeMap[fullText] ?? (monomerTextSizeMap[fullText] = g.measureText(fullText));
55
+ let textSize = monomerTextSizeMap[fullText];
56
+ monomerTextSizeMap[colorPart] ?? (monomerTextSizeMap[colorPart] = g.measureText(colorPart));
57
+ let maxColorTextSize = monomerTextSizeMap[colorPart].width;
58
+ monomerTextSizeMap[grayPart] ?? (monomerTextSizeMap[grayPart] = g.measureText(grayPart));
59
+ const grayPartSize = monomerTextSizeMap[grayPart].width;
58
60
  const dy = h / 2 - (textSize.fontBoundingBoxAscent + textSize.fontBoundingBoxDescent) / 2 + 1;
59
61
  textSize = textSize.width;
60
62
  if (drawStyle === DrawStyle.MSA) {
@@ -71,20 +73,19 @@ export const printLeftOrCentered = (x, y, w, h, g, s, color = undefinedColor, pi
71
73
  g.fillStyle = grayColor;
72
74
  g.fillText(grayPart, x + dx2, y + dy);
73
75
  }
74
- if (drawStyle === DrawStyle.MSA) {
75
- g.fillStyle = drawColor;
76
+ if (drawStyle === DrawStyle.MSA)
76
77
  g.fillText(colorPart, x + dx1, y + dy);
77
- }
78
78
  }
79
79
  const placeX = (maxWord[wordIdx] ?? 0) - (maxWord[0] ?? 0);
80
80
  if (left || textSize > w) {
81
81
  draw(placeX, placeX + maxColorTextSize);
82
- return x + placeX + maxColorTextSize + g.measureText(grayPart).width;
82
+ return x + placeX + maxColorTextSize + grayPartSize;
83
83
  }
84
84
  else {
85
85
  const dx = (w - textSize) / 2;
86
86
  draw(dx, dx + maxColorTextSize);
87
87
  return x + placeX + dx + maxColorTextSize;
88
88
  }
89
- };
89
+ }
90
+ ;
90
91
  //# sourceMappingURL=cell-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cell-renderer.js","sourceRoot":"","sources":["cell-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cell-renderer.js","sourceRoot":"","sources":["cell-renderer.ts"],"names":[],"mappings":"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"}