@datagrok-libraries/bio 5.33.0 → 5.33.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/package.json +1 -1
- package/src/utils/cell-renderer-monomer-placer.d.ts +9 -2
- package/src/utils/cell-renderer-monomer-placer.d.ts.map +1 -1
- package/src/utils/cell-renderer-monomer-placer.js +24 -16
- package/src/utils/cell-renderer-monomer-placer.js.map +1 -1
- package/src/utils/cell-renderer.d.ts +24 -24
- package/src/utils/cell-renderer.d.ts.map +1 -1
- package/src/utils/cell-renderer.js +33 -32
- package/src/utils/cell-renderer.js.map +1 -1
package/package.json
CHANGED
|
@@ -11,18 +11,25 @@ type MonomerPlacerProps = {
|
|
|
11
11
|
monomerLengthLimit: number;
|
|
12
12
|
};
|
|
13
13
|
export declare class MonomerPlacer {
|
|
14
|
-
readonly
|
|
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(
|
|
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;
|
|
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(
|
|
13
|
-
this.
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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":"AAAA,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAC;
|
|
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
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* @param {number}
|
|
10
|
-
* @param {number}
|
|
11
|
-
* @param {
|
|
12
|
-
* @param {
|
|
13
|
-
* @param {
|
|
14
|
-
* @param {
|
|
15
|
-
* @param {
|
|
16
|
-
* @param {number}
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {
|
|
19
|
-
* @param {
|
|
20
|
-
* @param {
|
|
21
|
-
* @param
|
|
22
|
-
* @param
|
|
23
|
-
* @param
|
|
24
|
-
* @param
|
|
25
|
-
* @param
|
|
26
|
-
* @
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
|
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
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* @param {number}
|
|
15
|
-
* @param {number}
|
|
16
|
-
* @param {
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {
|
|
19
|
-
* @param {
|
|
20
|
-
* @param {
|
|
21
|
-
* @param {number}
|
|
22
|
-
* @param {
|
|
23
|
-
* @param {
|
|
24
|
-
* @param {
|
|
25
|
-
* @param {
|
|
26
|
-
* @param
|
|
27
|
-
* @param
|
|
28
|
-
* @param
|
|
29
|
-
* @param
|
|
30
|
-
* @param
|
|
31
|
-
* @
|
|
32
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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 +
|
|
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":"AAIA,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAErD,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,sBAAsB,GAA0D,cAAc,CAAC;AAErG,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,gCAAmB,CAAA;AACrB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED
|
|
1
|
+
{"version":3,"file":"cell-renderer.js","sourceRoot":"","sources":["cell-renderer.ts"],"names":[],"mappings":"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"}
|