@datagrok-libraries/bio 5.40.8 → 5.41.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.
Files changed (81) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/package.json +5 -5
  3. package/src/helm/helm-helper.d.ts +4 -2
  4. package/src/helm/helm-helper.d.ts.map +1 -1
  5. package/src/helm/helm-helper.js +1 -0
  6. package/src/helm/helm-helper.js.map +1 -1
  7. package/src/helm/types.d.ts +3 -24
  8. package/src/helm/types.d.ts.map +1 -1
  9. package/src/helm/types.js +1 -1
  10. package/src/helm/types.js.map +1 -1
  11. package/src/monomer-works/monomer-utils.d.ts +19 -0
  12. package/src/monomer-works/monomer-utils.d.ts.map +1 -1
  13. package/src/monomer-works/monomer-utils.js +2 -2
  14. package/src/monomer-works/monomer-utils.js.map +1 -1
  15. package/src/monomer-works/monomer-works.d.ts +3 -2
  16. package/src/monomer-works/monomer-works.d.ts.map +1 -1
  17. package/src/monomer-works/monomer-works.js +27 -0
  18. package/src/monomer-works/monomer-works.js.map +1 -1
  19. package/src/monomer-works/to-atomic-level.js +1 -1
  20. package/src/tests/monomer-lib-tests.d.ts +7 -0
  21. package/src/tests/monomer-lib-tests.d.ts.map +1 -0
  22. package/src/tests/monomer-lib-tests.js +27 -0
  23. package/src/tests/monomer-lib-tests.js.map +1 -0
  24. package/src/types/dojo.d.ts +4 -0
  25. package/src/types/dojo.d.ts.map +1 -0
  26. package/src/types/dojo.js +2 -0
  27. package/src/types/dojo.js.map +1 -0
  28. package/src/types/helm-web-editor.d.ts +26 -0
  29. package/src/types/helm-web-editor.d.ts.map +1 -0
  30. package/src/types/helm-web-editor.js +2 -0
  31. package/src/types/helm-web-editor.js.map +1 -0
  32. package/src/types/helm.d.ts +122 -0
  33. package/src/types/helm.d.ts.map +1 -0
  34. package/src/types/helm.js +2 -0
  35. package/src/types/helm.js.map +1 -0
  36. package/src/types/index.d.ts +26 -8
  37. package/src/types/index.d.ts.map +1 -1
  38. package/src/types/index.js +1 -0
  39. package/src/types/index.js.map +1 -1
  40. package/src/types/jsdraw2.d.ts +80 -0
  41. package/src/types/jsdraw2.d.ts.map +1 -0
  42. package/src/types/jsdraw2.js +2 -0
  43. package/src/types/jsdraw2.js.map +1 -0
  44. package/src/types/renderer.d.ts +2 -2
  45. package/src/types/renderer.d.ts.map +1 -1
  46. package/src/types/renderer.js +5 -4
  47. package/src/types/renderer.js.map +1 -1
  48. package/src/utils/cell-renderer-async-base.d.ts +90 -0
  49. package/src/utils/cell-renderer-async-base.d.ts.map +1 -0
  50. package/src/utils/cell-renderer-async-base.js +394 -0
  51. package/src/utils/cell-renderer-async-base.js.map +1 -0
  52. package/src/utils/cell-renderer-back-base.d.ts +33 -0
  53. package/src/utils/cell-renderer-back-base.d.ts.map +1 -0
  54. package/src/utils/cell-renderer-back-base.js +104 -0
  55. package/src/utils/cell-renderer-back-base.js.map +1 -0
  56. package/src/utils/cell-renderer-monomer-placer.d.ts +9 -12
  57. package/src/utils/cell-renderer-monomer-placer.d.ts.map +1 -1
  58. package/src/utils/cell-renderer-monomer-placer.js +67 -68
  59. package/src/utils/cell-renderer-monomer-placer.js.map +1 -1
  60. package/src/utils/const.d.ts +10 -10
  61. package/src/utils/const.d.ts.map +1 -1
  62. package/src/utils/const.js +1 -0
  63. package/src/utils/const.js.map +1 -1
  64. package/src/utils/macromolecule/utils.d.ts.map +1 -1
  65. package/src/utils/macromolecule/utils.js +14 -1
  66. package/src/utils/macromolecule/utils.js.map +1 -1
  67. package/src/utils/seq-handler.d.ts +1 -1
  68. package/src/utils/seq-handler.d.ts.map +1 -1
  69. package/src/utils/seq-handler.js +4 -4
  70. package/src/utils/seq-handler.js.map +1 -1
  71. package/src/viewers/helm-service.d.ts +17 -0
  72. package/src/viewers/helm-service.d.ts.map +1 -0
  73. package/src/viewers/helm-service.js +19 -0
  74. package/src/viewers/helm-service.js.map +1 -0
  75. package/src/viewers/ngl-gl-service.d.ts +7 -27
  76. package/src/viewers/ngl-gl-service.d.ts.map +1 -1
  77. package/src/viewers/ngl-gl-service.js +8 -1
  78. package/src/viewers/ngl-gl-service.js.map +1 -1
  79. package/src/viewers/viewer.d.ts.map +1 -1
  80. package/src/viewers/viewer.js +2 -2
  81. package/src/viewers/viewer.js.map +1 -1
@@ -0,0 +1,394 @@
1
+ import * as DG from 'datagrok-api/dg';
2
+ import * as ui from 'datagrok-api/ui';
3
+ import { errInfo } from './err-info';
4
+ import { CellRendererBackBase } from './cell-renderer-back-base';
5
+ export class PropsBase {
6
+ constructor(backColor, width, height) {
7
+ this.backColor = backColor;
8
+ this.width = width;
9
+ this.height = height;
10
+ }
11
+ }
12
+ export class RenderTask {
13
+ constructor(name, props, onAfterRender, isPriority) {
14
+ this.name = name;
15
+ this.props = props;
16
+ this.onAfterRender = onAfterRender;
17
+ this.isPriority = isPriority;
18
+ }
19
+ }
20
+ export class RenderServiceBase {
21
+ constructor(logger, retryLimit = 3, _errorCount = 0, errorLimit = 3, taskTimout = 1000) {
22
+ this.logger = logger;
23
+ this.retryLimit = retryLimit;
24
+ this._errorCount = _errorCount;
25
+ this.errorLimit = errorLimit;
26
+ this.taskTimout = taskTimout;
27
+ this.consumerCounter = 0;
28
+ /** The flag allows {@link _processQueue}() on add item to the queue with {@link render}() */
29
+ this._busy = false;
30
+ this._sweeperHandle = null;
31
+ this.viewerId = ++RenderServiceBase.viewerCounter;
32
+ this._queue = [];
33
+ this._queueDict = {};
34
+ this._sweepToggle(false);
35
+ }
36
+ toLog() {
37
+ return `${this.constructor.name}<${this.viewerId}>`;
38
+ }
39
+ get errorCount() { return this._errorCount; }
40
+ /** Queues render tasks
41
+ * @param consumerId Identifier of the consumer of this render service
42
+ * @param task Task to render
43
+ * @param key Specify to skip previously queued tasks with the same key
44
+ * @return {@link consumerId} or assigned new if null
45
+ */
46
+ render(consumerId, task, key, tryCount = 0) {
47
+ const logPrefix = `${this.toLog()}.render()`;
48
+ this.logger.debug(`${logPrefix}, start ` + `key: ${key?.toString()}`);
49
+ if (key !== undefined) {
50
+ if (key in this._queueDict) {
51
+ // remove outdated task from the queue
52
+ const oldTaskI = this._queue.findIndex((item) => item.key === key);
53
+ this._queue.splice(oldTaskI, 1);
54
+ }
55
+ this.logger.debug(`${logPrefix}, _queueDict[ key: ${key?.toString()} ] = <task>`);
56
+ this._queueDict[key] = task;
57
+ }
58
+ this.logger.debug(`${logPrefix}, _queue.push(), ` + `key: ${key?.toString()}`);
59
+ if (consumerId === null)
60
+ consumerId = ++this.consumerCounter;
61
+ this._queue.push({ consumerId, key, task, tryCount, dt: window.performance.now() });
62
+ if (!this._busy) {
63
+ this._sweepToggle(this._busy = true);
64
+ // TODO: Use requestAnimationFrame()
65
+ this.logger.debug(`${logPrefix}, window.setTimeout() -> this._processQueue() `);
66
+ window.setTimeout(() => { this._processQueue(); }, 0 /* next event cycle */);
67
+ }
68
+ return consumerId;
69
+ }
70
+ getTask() {
71
+ if (this._queue.length == 0)
72
+ return undefined;
73
+ let resItem = undefined;
74
+ const head = this._queue[0];
75
+ if (head.task.isPriority && !head.task.isPriority()) {
76
+ let priorityItemIdx = null;
77
+ for (let i = 0; i < this._queue.length; ++i) {
78
+ const item = this._queue[i];
79
+ if (item.consumerId === head.consumerId && item.task.isPriority) {
80
+ if (item.task.isPriority()) {
81
+ priorityItemIdx = i;
82
+ break;
83
+ }
84
+ else {
85
+ // Push back not-priority items to the end of the queue
86
+ const deferredItemList = this._queue.splice(i);
87
+ this._queue.push(...deferredItemList);
88
+ }
89
+ }
90
+ }
91
+ if (priorityItemIdx !== null)
92
+ resItem = this._queue.splice(priorityItemIdx, 1)[0];
93
+ }
94
+ if (!resItem)
95
+ resItem = this._queue.shift();
96
+ return resItem;
97
+ }
98
+ _processQueue() {
99
+ const logPrefix = `${this.toLog()}._processQueue()`;
100
+ if (this._queue.length === 0)
101
+ return;
102
+ this.logger.debug(`${logPrefix}, ` +
103
+ `queue: ${JSON.stringify(this._queue.map((t) => t.key))}`);
104
+ let renderSub = null;
105
+ const finallyProcessQueue = (caller) => {
106
+ const logPrefixR = `${logPrefix}.finallyProcessQueue( <- ${caller} )`;
107
+ if (renderSub)
108
+ renderSub.unsubscribe(); // renderSub can be undefined for a sync render service (?)
109
+ if (this._queue.length > 0) {
110
+ // Schedule processQueue the next item only afterRender has asynchronously completed for the previous one
111
+ this.logger.debug(`${logPrefixR}, ` + 'window.setTimeout() -> this._processQueue() ');
112
+ window.setTimeout(() => { this._processQueue(); }, 0 /* next event cycle */);
113
+ }
114
+ else {
115
+ // release flag allowing _processQueue on add queue item
116
+ this.logger.debug(`${logPrefixR}, ` + 'this._busy = false');
117
+ this._sweepToggle(this._busy = false);
118
+ }
119
+ };
120
+ const queueItem = this.getTask();
121
+ if (!queueItem) {
122
+ this.logger.error(`${logPrefix}, queueItem = undefined `);
123
+ finallyProcessQueue('no queue item');
124
+ return;
125
+ } // in case of empty queue
126
+ const { consumerId, key, task, tryCount, dt } = queueItem;
127
+ if (key !== undefined) {
128
+ this.logger.debug(`${logPrefix}, ` + `key: ${key.toString()}`);
129
+ delete this._queueDict[key];
130
+ }
131
+ if (tryCount > this.retryLimit) {
132
+ this.logger.warning(`${logPrefix}, skip task, ` +
133
+ ` key: ${key?.toString()}, tryCount: ${tryCount}`);
134
+ finallyProcessQueue('try count limit');
135
+ return;
136
+ }
137
+ let emptyCanvasHash;
138
+ let handled = false;
139
+ const timeoutHandle = window.setTimeout(() => {
140
+ if (!handled) {
141
+ this.logger.warning(`${logPrefix}.timeoutHandle(), not handled, ` +
142
+ `key: ${key?.toString()}.` + `\n` +
143
+ ` The .requestRender() overridden method must call renderHandler callback from args.`);
144
+ this._errorCount += 1;
145
+ this.render(consumerId, task, key, tryCount + 1); // return task to the queue
146
+ finallyProcessQueue('timeout');
147
+ }
148
+ }, 1000);
149
+ const renderHandler = (aux) => {
150
+ this.logger.debug(`${logPrefix}.renderHandler(), ` + `key: ${key?.toString()}`);
151
+ if (this.onRendered(key, task, emptyCanvasHash, aux)) {
152
+ handled = true;
153
+ window.clearTimeout(timeoutHandle);
154
+ finallyProcessQueue('render');
155
+ }
156
+ };
157
+ this.requestRender(key, task, renderHandler).then((res) => {
158
+ const logPrefixInt = `${logPrefix}, requestRender().then()`;
159
+ renderSub = res[0];
160
+ emptyCanvasHash = res[1];
161
+ const triggerRender = res[2];
162
+ if (emptyCanvasHash === undefined)
163
+ console.warn(`${logPrefixInt}, this.requestRender.then() emptyCanvasHash undefined`);
164
+ triggerRender();
165
+ })
166
+ .catch((err) => {
167
+ const logPrefixInt = `${logPrefix}, requestRender().catch()`;
168
+ // Not waiting timeout on error
169
+ const [errMsg, errStack] = errInfo(err);
170
+ this.logger.error(errMsg, undefined, errStack);
171
+ window.clearTimeout(timeoutHandle);
172
+ this._errorCount += 1;
173
+ this.render(consumerId, task, key, tryCount + 1); // return task to the queue
174
+ finallyProcessQueue(`${logPrefixInt}`);
175
+ });
176
+ }
177
+ /** Sweep queue for stalled tasks */
178
+ _sweepQueue() {
179
+ const logPrefix = `${this.toLog()}._sweepQueue()`;
180
+ const nowDt = window.performance.now();
181
+ let swept = 0;
182
+ for (let qI = this._queue.length - 1; qI >= 0; qI--) {
183
+ const { key, task: _task, dt } = this._queue[qI];
184
+ if ((nowDt - dt) > this.taskTimout) {
185
+ // stalled task
186
+ this.logger.warning(`${logPrefix}, remove task key = ${key?.toString()}`);
187
+ this._queue.splice(qI);
188
+ delete this._queueDict[key];
189
+ ++swept;
190
+ }
191
+ }
192
+ this._sweepToggle(this._busy = this._queue.length > 0);
193
+ if (!this._busy && swept)
194
+ this.logger.warning(`${logPrefix}, ${swept} task(s) had been swept`);
195
+ }
196
+ _sweepToggle(busy) {
197
+ const logPrefix = `${this.toLog()}._sweepToggle( busy = ${busy} )`;
198
+ if (busy && this._sweeperHandle !== null) {
199
+ this.logger.debug(`${logPrefix}, disable queue sweeper`);
200
+ window.clearInterval(this._sweeperHandle);
201
+ this._sweeperHandle = null;
202
+ }
203
+ if (!busy && this._sweeperHandle === null) {
204
+ this.logger.debug(`${logPrefix}, enable queue sweeper`);
205
+ this._sweeperHandle = window.setInterval(() => { this._sweepQueue(); }, 500);
206
+ }
207
+ return busy;
208
+ }
209
+ }
210
+ RenderServiceBase.viewerCounter = -1;
211
+ export class CellRendererBackAsyncBase extends CellRendererBackBase {
212
+ constructor(gridCol, tableCol, logger, cacheEnabled = true) {
213
+ super(gridCol, tableCol, logger);
214
+ this.cacheEnabled = cacheEnabled;
215
+ this.taskQueueMap = new Map;
216
+ this.imageCache = new Map();
217
+ /** Consumer identifier of the render service */
218
+ this.consumerId = null;
219
+ }
220
+ reset() {
221
+ if (this.imageCache) {
222
+ // for (const cellImageData of this.imageCache.values())
223
+ // cellImageData.remove();
224
+ }
225
+ this.imageCache = new Map();
226
+ }
227
+ render(g, x, y, w, h, gridCell, cellStyle) {
228
+ const dpr = window.devicePixelRatio;
229
+ const service = this.getRenderService();
230
+ if (gridCell.tableRowIndex == null)
231
+ return;
232
+ const rowIdx = gridCell.tableRowIndex;
233
+ this.logger.debug('PdbRenderer.render() start ' + `rowIdx=${rowIdx}`);
234
+ g.save();
235
+ try {
236
+ const cellImageData = this.imageCache.has(rowIdx) ? this.imageCache.get(rowIdx) : null;
237
+ const bd = new DG.Rect(x, y, w, h);
238
+ let gridCellWidth;
239
+ let gridCellHeight;
240
+ let backColor;
241
+ if (this.gridCol) {
242
+ // Rendering for a grid
243
+ gridCellWidth = gridCell.gridColumn.width * dpr - 2;
244
+ gridCellHeight = gridCell.grid.props.rowHeight * dpr - 2;
245
+ backColor = cellStyle ? cellStyle.backColor : null;
246
+ backColor = backColor ?? (this.gridCol ? this.gridCol.grid.props.backColor : null);
247
+ backColor = backColor ?? DG.Color.argb(0, 0, 0, 0);
248
+ }
249
+ else {
250
+ // Rendering probably for row tooltip (scatter plot)
251
+ gridCellWidth = w * dpr - 2;
252
+ gridCellHeight = h * dpr - 2;
253
+ backColor = DG.Color.argb(0, 0, 0, 0);
254
+ }
255
+ if (!this.cacheEnabled || !cellImageData ||
256
+ Math.abs(cellImageData.width / dpr - gridCellWidth) > 0.5 ||
257
+ Math.abs(cellImageData.height / dpr - gridCellHeight) > 0.5) {
258
+ let toUpdate = true;
259
+ if (cellImageData)
260
+ toUpdate = this.renderCellImageData(g, bd, gridCell, cellImageData);
261
+ if (!toUpdate)
262
+ return;
263
+ const task = new RenderTask(gridCell.cell.rowIndex.toString(), this.getRenderTaskProps(gridCell, backColor, gridCellWidth, gridCellHeight),
264
+ /* onAfterRender */ (cellCanvas, aux) => {
265
+ this.storeAux(gridCell, aux);
266
+ g.save();
267
+ try {
268
+ this.logger.debug('PdbRenderer.render() onAfterRender() ' + `rowIdx = ${rowIdx}`);
269
+ let cellCanvasCtx = cellCanvas.getContext('2d');
270
+ if (!cellCanvasCtx) {
271
+ // Fallback for canvas with WebGL context
272
+ const tempCanvas = ui.canvas(cellCanvas.width, cellCanvas.height);
273
+ cellCanvasCtx = tempCanvas.getContext('2d');
274
+ cellCanvasCtx.drawImage(cellCanvas, 0, 0);
275
+ }
276
+ const cellCanvasData = cellCanvasCtx.getImageData(0, 0, cellCanvas.width, cellCanvas.height);
277
+ this.renderOnGrid(g, new DG.Rect(x, y, w, h), gridCell, cellCanvasData);
278
+ this.imageCache.set(rowIdx, cellCanvasData);
279
+ }
280
+ finally {
281
+ g.restore();
282
+ this.taskQueueMap.delete(rowIdx);
283
+ if (this.taskQueueMap.size === 0)
284
+ this._onRendered.next();
285
+ }
286
+ },
287
+ /* isPriority */ !this.gridCol ? undefined : () => {
288
+ const grid = gridCell.grid;
289
+ return (grid.vertScroll.min - 1) <= gridCell.gridRow && gridCell.gridRow <= grid.vertScroll.max;
290
+ });
291
+ this.taskQueueMap.set(rowIdx, task);
292
+ this.consumerId = service.render(this.consumerId, task, rowIdx);
293
+ }
294
+ else {
295
+ this.logger.debug('PdbRenderer.render(), ' + `from imageCache[${rowIdx}]`);
296
+ this.renderOnGrid(g, bd, gridCell, cellImageData);
297
+ }
298
+ }
299
+ catch (err) {
300
+ const errMsg = err instanceof Error ? err.message : err.toString();
301
+ this.logger.error(`BsV:PdbGridCellRenderer.render() no rethrown error: ${errMsg}`, undefined, err instanceof Error ? err.stack : undefined);
302
+ //throw err; // Do not throw to prevent disabling event handler
303
+ }
304
+ finally {
305
+ g.restore();
306
+ }
307
+ }
308
+ /** Renders cell from image data (cache)
309
+ * @param {CanvasRenderingContext2D} gCtx Grid canvas context
310
+ * @param {DG.Rect} bd Bound rect to clip drawing
311
+ * @param {DG.GridCell} gridCell Grid cell to draw
312
+ * @param {ImageData} cellImageData Cell image data from cache
313
+ * @return {boolean} true - cell is requiring update by render service
314
+ */
315
+ renderCellImageData(gCtx, bd, gCell, cellImageData) {
316
+ const dpr = window.devicePixelRatio;
317
+ // Draw cell image data to scale it with drawImage() while transform()
318
+ const cellCanvas = ui.canvas(cellImageData.width, cellImageData.height);
319
+ const cellCtx = cellCanvas.getContext('2d');
320
+ cellCtx.putImageData(cellImageData, 0, 0);
321
+ const fitCanvasWidth = (bd.width - 1) * dpr;
322
+ const fitCanvasHeight = (bd.height - 1) * dpr;
323
+ const fitCanvas = ui.canvas(fitCanvasWidth, fitCanvasHeight);
324
+ const fitScale = Math.min(fitCanvasWidth / cellImageData.width, fitCanvasHeight / cellImageData.height);
325
+ const fitWidth = cellImageData.width * fitScale;
326
+ const fitHeight = cellImageData.height * fitScale;
327
+ const fitLeft = (fitCanvasWidth - fitWidth) / 2;
328
+ const fitTop = (fitCanvasHeight - fitHeight) / 2;
329
+ const fitCtx = fitCanvas.getContext('2d');
330
+ fitCtx.transform(fitScale, 0, 0, fitScale, fitLeft, fitTop);
331
+ fitCtx.drawImage(cellCanvas, 0, 0);
332
+ const fitImageData = fitCtx.getImageData(0, 0, fitCanvasWidth, fitCanvasHeight);
333
+ this.renderOnGrid(gCtx, bd, gCell, fitImageData);
334
+ return true;
335
+ }
336
+ /** Default implementation of rendering tree on grid cell
337
+ * @param gCtx Context to draw on grid
338
+ * @param bd Bound rect to clip drawing on task moment
339
+ * @param gCell Grid cell to draw
340
+ * @param cellImageData Image data of the cell to be drawn
341
+ */
342
+ renderOnGrid(gCtx, bd, gCell, cellImageData) {
343
+ const callLog = `renderOnGridCell( gRow = ${gCell.gridRow} )`;
344
+ const logPrefix = `${this.toLog()}.${callLog}`;
345
+ const dpr = window.devicePixelRatio;
346
+ this.logger.debug(`${logPrefix}, start`);
347
+ gCtx.save();
348
+ try {
349
+ gCtx.resetTransform();
350
+ if (this.gridCol) {
351
+ const grid = this.gridCol.grid;
352
+ const vertScrollMin = Math.floor(grid.vertScroll.min);
353
+ // Correction for vert scrolling happened between task and render, calculate bd.y directly
354
+ bd.y = ((gCell.gridRow - vertScrollMin) * grid.props.rowHeight +
355
+ grid.colHeaderHeight) * dpr;
356
+ // Correction for horz scrolling happened between task and render, calculate bd.x directly
357
+ let left = 0;
358
+ for (let colI = 0; colI < this.gridCol.idx; colI++) {
359
+ const col = grid.columns.byIndex(colI);
360
+ left += col.visible ? col.width : 0;
361
+ }
362
+ bd.x = (left - grid.horzScroll.min) * dpr;
363
+ }
364
+ /** Clip rect*/ const cr = new DG.Rect(bd.x + dpr, bd.y + dpr, (bd.width - 1) * dpr, (bd.height - 1) * dpr);
365
+ // gCtx.beginPath();
366
+ // gCtx.strokeStyle = '#408000';
367
+ // gCtx.rect(cr.x, cr.y, cr.width, cr.height);
368
+ // gCtx.stroke();
369
+ gCtx.beginPath();
370
+ gCtx.rect(cr.x, cr.y, cr.width, cr.height);
371
+ gCtx.clip();
372
+ //gCtx.drawImage(cellImageData, cr.x, cr.y, cr.width, cr.height);
373
+ gCtx.putImageData(cellImageData, bd.x + dpr, bd.y + dpr); // does not respect clip
374
+ }
375
+ finally {
376
+ gCtx.restore();
377
+ }
378
+ }
379
+ }
380
+ async function base64ToImg(base64) {
381
+ return new Promise((resolve, reject) => {
382
+ try {
383
+ const img = new Image();
384
+ img.onload = () => {
385
+ resolve(img);
386
+ };
387
+ img.src = base64;
388
+ }
389
+ catch (err) {
390
+ reject(err);
391
+ }
392
+ });
393
+ }
394
+ //# sourceMappingURL=cell-renderer-async-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-renderer-async-base.js","sourceRoot":"","sources":["cell-renderer-async-base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import * as DG from 'datagrok-api/dg';
2
+ import { Observable, Subject, Unsubscribable } from 'rxjs';
3
+ import { ILogger } from './logger';
4
+ import { IRenderer } from '../types/renderer';
5
+ type GridCellRendererTemp<TBack> = {
6
+ rendererBack: TBack;
7
+ };
8
+ export declare function getGridCellRendererBack<TValue, TBack extends CellRendererBackBase<TValue>>(gridCell: DG.GridCell): [DG.GridColumn | null, DG.Column<TValue>, GridCellRendererTemp<TBack>];
9
+ export declare abstract class CellRendererBackBase<TValue> implements IRenderer {
10
+ /** Not null if rendered on a grid */
11
+ protected readonly gridCol: DG.GridColumn | null;
12
+ protected readonly tableCol: DG.Column<TValue>;
13
+ readonly logger: ILogger;
14
+ protected subs: Unsubscribable[];
15
+ protected destroyed: boolean;
16
+ /** Overriding care to trigger {@link onRendered} event. */
17
+ protected constructor(
18
+ /** Not null if rendered on a grid */
19
+ gridCol: DG.GridColumn | null, tableCol: DG.Column<TValue>, logger: ILogger);
20
+ private static viewerCounter;
21
+ private readonly viewerId;
22
+ protected toLog(): string;
23
+ protected destroy(): void;
24
+ protected invalidateGrid(): void;
25
+ protected abstract reset(): void;
26
+ errors: Error[];
27
+ protected _onRendered: Subject<void>;
28
+ get onRendered(): Observable<void>;
29
+ invalidate(caller?: string): void;
30
+ awaitRendered(timeout?: number, reason?: string): Promise<void>;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=cell-renderer-back-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-renderer-back-base.d.ts","sourceRoot":"","sources":["cell-renderer-back-base.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAC,UAAU,EAAE,OAAO,EAAE,cAAc,EAAC,MAAM,MAAM,CAAC;AAIzD,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE5C,KAAK,oBAAoB,CAAC,KAAK,IAAI;IACjC,YAAY,EAAE,KAAK,CAAC;CACrB,CAAA;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,KAAK,SAAS,oBAAoB,CAAC,MAAM,CAAC,EACxF,QAAQ,EAAE,EAAE,CAAC,QAAQ,GACpB,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAcxE;AAED,8BAAsB,oBAAoB,CAAC,MAAM,CAAE,YAAW,SAAS;IAMnE,qCAAqC;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI;IAChD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;aAC9B,MAAM,EAAE,OAAO;IARjC,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,CAAM;IACtC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAS;IAErC,2DAA2D;IAC3D,SAAS;IACP,qCAAqC;IAClB,OAAO,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,EAC7B,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO;IAiCjC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IAEzE,SAAS,CAAC,KAAK,IAAI,MAAM;IAIzB,SAAS,CAAC,OAAO,IAAI,IAAI;IAMzB,SAAS,CAAC,cAAc,IAAI,IAAI;IAIhC,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI;IAIzB,MAAM,EAAE,KAAK,EAAE,CAAM;IAE5B,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAuB;IAE3D,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,CAA6B;IAE/D,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3B,aAAa,CACjB,OAAO,GAAE,MAAc,EAAE,MAAM,GAAE,MAA4C,GAC5E,OAAO,CAAC,IAAI,CAAC;CAejB"}
@@ -0,0 +1,104 @@
1
+ import * as grok from 'datagrok-api/grok';
2
+ import { Subject } from 'rxjs';
3
+ import { testEvent } from '@datagrok-libraries/utils/src/test';
4
+ export function getGridCellRendererBack(gridCell) {
5
+ let temp = null;
6
+ let gridCol = null;
7
+ try {
8
+ gridCol = gridCell.dart ? gridCell.gridColumn : null;
9
+ temp = gridCol ? gridCol.temp : null;
10
+ }
11
+ catch {
12
+ [gridCol, temp] = [null, null];
13
+ }
14
+ const tableCol = gridCell.cell.column;
15
+ temp = temp ?? tableCol.temp;
16
+ if (!temp)
17
+ throw new Error(`Grid cell renderer back store (GridColumn or Column) not found.`);
18
+ return [gridCol, tableCol, temp];
19
+ }
20
+ export class CellRendererBackBase {
21
+ /** Overriding care to trigger {@link onRendered} event. */
22
+ constructor(
23
+ /** Not null if rendered on a grid */
24
+ gridCol, tableCol, logger) {
25
+ this.gridCol = gridCol;
26
+ this.tableCol = tableCol;
27
+ this.logger = logger;
28
+ this.subs = [];
29
+ this.destroyed = false;
30
+ this.viewerId = ++CellRendererBackBase.viewerCounter;
31
+ // -- IRenderer --
32
+ this.errors = [];
33
+ this._onRendered = new Subject();
34
+ this.reset();
35
+ if (this.tableCol && this.tableCol.dataFrame) {
36
+ this.subs.push(this.tableCol.dataFrame.onDataChanged.subscribe(() => {
37
+ try {
38
+ this.reset();
39
+ }
40
+ catch (err) {
41
+ this.logger.error(err);
42
+ }
43
+ }));
44
+ }
45
+ if (this.tableCol) {
46
+ this.subs.push(grok.events.onTableRemoved.subscribe((eventData) => {
47
+ try {
48
+ const eventDf = eventData.args.dataFrame;
49
+ if (this.tableCol?.dataFrame.id === eventDf.id && !this.destroyed)
50
+ this.destroy();
51
+ }
52
+ catch (err) {
53
+ this.logger.error(err);
54
+ }
55
+ }));
56
+ }
57
+ if (this.gridCol) {
58
+ this.subs.push(grok.events.onViewRemoving.subscribe((eventData) => {
59
+ try {
60
+ const eventView = eventData.args.view;
61
+ if (this.gridCol?.dart &&
62
+ this.gridCol.grid && this.gridCol?.grid?.dart &&
63
+ this.gridCol?.grid?.view?.id === eventView.id && !this.destroyed)
64
+ this.destroy();
65
+ }
66
+ catch (err) {
67
+ this.logger.error(err);
68
+ }
69
+ }));
70
+ }
71
+ }
72
+ toLog() {
73
+ return `${this.constructor.name}<${this.viewerId}>`;
74
+ }
75
+ destroy() {
76
+ for (const sub of this.subs)
77
+ sub.unsubscribe();
78
+ this.destroyed = true;
79
+ }
80
+ invalidateGrid() {
81
+ if (this.gridCol && this.gridCol.dart)
82
+ this.gridCol.grid?.invalidate();
83
+ }
84
+ get onRendered() { return this._onRendered; }
85
+ invalidate(caller) {
86
+ this.invalidateGrid();
87
+ }
88
+ async awaitRendered(timeout = 10000, reason = `await rendered ${timeout} timeout`) {
89
+ const logPrefix = `${this.toLog()}.awaitRendered()`;
90
+ this.logger.debug(`${logPrefix}, start, testEvent before`);
91
+ await testEvent(this._onRendered, () => { }, () => {
92
+ this.invalidate();
93
+ }, timeout, reason);
94
+ // Rethrow stored syncer error (for test purposes)
95
+ if (this.errors.length > 0) {
96
+ const err = this.errors[0];
97
+ this.errors = [];
98
+ throw err;
99
+ }
100
+ this.logger.debug(`${logPrefix}, end`);
101
+ }
102
+ }
103
+ CellRendererBackBase.viewerCounter = -1;
104
+ //# sourceMappingURL=cell-renderer-back-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-renderer-back-base.js","sourceRoot":"","sources":["cell-renderer-back-base.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,22 @@
1
1
  import * as DG from 'datagrok-api/dg';
2
2
  import { SeqHandler } from './seq-handler';
3
3
  import { MonomerToShortFunc } from './macromolecule';
4
- import { IMonomerLib } from '../types';
4
+ import { CellRendererBackBase } from './cell-renderer-back-base';
5
+ import { ILogger } from './logger';
5
6
  type MonomerPlacerProps = {
6
7
  seqHandler: SeqHandler;
7
- monomerLib: IMonomerLib;
8
8
  monomerCharWidth: number;
9
9
  separatorWidth: number;
10
10
  monomerToShort: MonomerToShortFunc;
11
11
  monomerLengthLimit: number;
12
12
  };
13
- export declare class MonomerPlacer {
14
- readonly grid: DG.Grid | null;
15
- readonly col: DG.Column<string>;
13
+ export declare class MonomerPlacer extends CellRendererBackBase<string> {
16
14
  private readonly propsProvider;
17
15
  private _monomerLengthList;
18
16
  private separatorWidth;
19
17
  props: MonomerPlacerProps;
20
- private _rowsProcessed;
18
+ private _processedRows;
19
+ private _processedMaxVisibleSeqLength;
21
20
  private _updated;
22
21
  get updated(): boolean;
23
22
  _monomerLengthMap: {
@@ -26,17 +25,15 @@ export declare class MonomerPlacer {
26
25
  _monomerStructureMap: {
27
26
  [key: string]: HTMLElement;
28
27
  };
29
- private readonly subs;
30
- private destroyed;
31
28
  /** View is required to subscribe and handle for data frame changes */
32
- constructor(grid: DG.Grid | null, col: DG.Column<string>, propsProvider: () => MonomerPlacerProps);
33
- private destroy;
29
+ constructor(gridCol: DG.GridColumn | null, tableCol: DG.Column<string>, logger: ILogger, propsProvider: () => MonomerPlacerProps);
30
+ protected reset(): void;
34
31
  /** Returns monomers lengths of the {@link rowIdx} and cumulative sums for borders, monomer places */
35
- getCellMonomerLengths(rowIdx: number): [number[], number[]];
32
+ getCellMonomerLengths(rowIdx: number, width: number): [number[], number[]];
36
33
  private getCellMonomerLengthsForSeq;
37
34
  private getCellMonomerLengthsForSeqMsa;
38
35
  /** Returns seq position for pointer x */
39
- getPosition(rowIdx: number, x: number): number | null;
36
+ getPosition(rowIdx: number, x: number, width: number): number | null;
40
37
  setMonomerLengthLimit(limit: number): void;
41
38
  setSeparatorWidth(width: number): void;
42
39
  isMsa(): boolean;
@@ -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;AAKtC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAGrC,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IACjD,cAAc,EAAE,kBAAkB,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;CAChE,CAAC;AAEF,qBAAa,aAAa;aAmBN,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI;aACpB,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa;IApBhC,OAAO,CAAC,kBAAkB,CAA2B;IAGrD,OAAO,CAAC,cAAc,CAAK;IACpB,KAAK,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,cAAc,CAAY;IAElC,OAAO,CAAC,QAAQ,CAAkB;IAClC,IAAW,OAAO,IAAI,OAAO,CAA0B;IAEhD,iBAAiB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAM;IACvD,oBAAoB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAM;IAEjE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,SAAS,CAAkB;IAEnC,sEAAsE;gBAEpD,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EACpB,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EACrB,aAAa,EAAE,MAAM,kBAAkB;IAuC1D,OAAO,CAAC,OAAO;IAKf,qGAAqG;IAC9F,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;IAWlE,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,8BAA8B;IAwCtC,yCAAyC;IAClC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAkCrD,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;AAKtC,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAGjC,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IACjD,cAAc,EAAE,kBAAkB,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;CAChE,CAAC;AAEF,qBAAa,aAAc,SAAQ,oBAAoB,CAAC,MAAM,CAAC;IAoB3D,OAAO,CAAC,QAAQ,CAAC,aAAa;IAnBhC,OAAO,CAAC,kBAAkB,CAA2B;IAGrD,OAAO,CAAC,cAAc,CAAK;IACpB,KAAK,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,cAAc,CAAY;IAClC,OAAO,CAAC,6BAA6B,CAAa;IAElD,OAAO,CAAC,QAAQ,CAAkB;IAClC,IAAW,OAAO,IAAI,OAAO,CAA0B;IAEhD,iBAAiB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAM;IACvD,oBAAoB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAM;IAEjE,sEAAsE;gBAEpE,OAAO,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,EAC7B,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAC3B,MAAM,EAAE,OAAO,EACE,aAAa,EAAE,MAAM,kBAAkB;cAsBvC,KAAK,IAAI,IAAI;IAQhC,qGAAqG;IAC9F,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC;IAWjF,OAAO,CAAC,2BAA2B;IA8BnC,OAAO,CAAC,8BAA8B;IAmDtC,yCAAyC;IAClC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAmCpE,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKtC,KAAK,IAAI,OAAO;CAGxB"}