@datagrok/bio 2.16.0 → 2.16.3

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.
@@ -19,14 +19,13 @@ import {getHelmHelper} from '@datagrok-libraries/bio/src/helm/helm-helper';
19
19
  import {IRenderer} from '@datagrok-libraries/bio/src/types/renderer';
20
20
  import {ILogger} from '@datagrok-libraries/bio/src/utils/logger';
21
21
  import {PromiseSyncer} from '@datagrok-libraries/bio/src/utils/syncer';
22
+ import {ISeqHelper} from '@datagrok-libraries/bio/src/utils/seq-helper';
22
23
 
23
24
  import {helmSubstructureSearch, linearSubstructureSearch} from '../substructure-search/substructure-search';
24
25
  import {updateDivInnerHTML} from '../utils/ui-utils';
25
26
  import {BioFilterBase, BioFilterProps, IBioFilter, IFilterProps} from './bio-substructure-filter-types';
26
27
  import {HelmBioFilter} from './bio-substructure-filter-helm';
27
28
 
28
- import {_package} from '../package';
29
-
30
29
  const FILTER_SYNC_EVENT: string = 'bio-substructure-filter';
31
30
 
32
31
  class FilterState {
@@ -55,7 +54,6 @@ export class BioSubstructureFilter extends DG.Filter implements IRenderer {
55
54
  readonly loader: HTMLDivElement;
56
55
  notation: string | undefined = undefined;
57
56
 
58
- readonly logger: ILogger;
59
57
  readonly filterSyncer: PromiseSyncer;
60
58
 
61
59
  get calculating(): boolean { return this.loader.style.display == 'initial'; }
@@ -87,22 +85,15 @@ export class BioSubstructureFilter extends DG.Filter implements IRenderer {
87
85
  return res;
88
86
  }
89
87
 
90
- constructor() {
88
+ constructor(
89
+ private readonly seqHelper: ISeqHelper,
90
+ private logger: ILogger
91
+ ) {
91
92
  super();
92
93
  this.root = ui.divV([]);
93
94
  this.loader = ui.loader();
94
95
  this.calculating = false;
95
- this.filterSyncer = new PromiseSyncer(this.logger = _package.logger);
96
-
97
- return new Proxy(this, {
98
- set(target: any, key, value) {
99
- if (key === 'column') {
100
- const k = 42;
101
- }
102
- target[key] = value;
103
- return true;
104
- }
105
- });
96
+ this.filterSyncer = new PromiseSyncer(this.logger);
106
97
  }
107
98
 
108
99
  private static filterCounter: number = -1;
@@ -124,13 +115,13 @@ export class BioSubstructureFilter extends DG.Filter implements IRenderer {
124
115
  else
125
116
  this.column = dataFrame.columns.bySemType(DG.SEMTYPE.MACROMOLECULE);
126
117
  }
127
- const sh = _package.seqHelper.getSeqHandler(this.column!);
118
+ const sh = this.seqHelper.getSeqHandler(this.column!);
128
119
  this.columnName ??= this.column?.name;
129
120
  this.notation ??= this.column?.meta.units!;
130
121
 
131
122
  this.bioFilter = this.notation === NOTATION.FASTA ?
132
123
  new FastaBioFilter() : this.notation === NOTATION.SEPARATOR ?
133
- new SeparatorBioFilter(this.column!.getTag(bioTAGS.separator)) : new HelmBioFilter();
124
+ new SeparatorBioFilter(this.column!.getTag(bioTAGS.separator)) : new HelmBioFilter(this.seqHelper);
134
125
  this.root.appendChild(this.bioFilter!.filterPanel);
135
126
  this.root.appendChild(this.loader);
136
127
  await this.bioFilter.attach(); // may await waitForElementInDom
@@ -200,7 +191,7 @@ export class BioSubstructureFilter extends DG.Filter implements IRenderer {
200
191
 
201
192
  private fireFilterSync(): void {
202
193
  const logPrefix = `${this.filterToLog()}.fireFilterSync()`;
203
- _package.logger.debug(`${logPrefix}, ` +
194
+ this.logger.debug(`${logPrefix}, ` +
204
195
  `bioFilter = ${!!this.bioFilter ? this.bioFilter.constructor.name : 'null'}` +
205
196
  (!!this.bioFilter ? `, props = ${JSON.stringify(this.bioFilter!.saveProps())}` : ''));
206
197
 
@@ -218,7 +209,7 @@ export class BioSubstructureFilter extends DG.Filter implements IRenderer {
218
209
  bioFilterOnChangedDebounced(): void {
219
210
  if (!this.dataFrame) return; // Debounced event can be handled postponed
220
211
  const logPrefix = `${this.filterToLog()}.bioFilterOnChangedDebounced()`;
221
- _package.logger.debug(`${logPrefix}, start, ` +
212
+ this.logger.debug(`${logPrefix}, start, ` +
222
213
  `isFiltering = ${this.isFiltering}, ` +
223
214
  `props = ${JSON.stringify(this.bioFilter!.saveProps())}`);
224
215
 
@@ -235,22 +226,22 @@ export class BioSubstructureFilter extends DG.Filter implements IRenderer {
235
226
  this.filterSyncer.sync(logPrefix, async () => {
236
227
  this.calculating = true;
237
228
  try {
238
- _package.logger.debug(`${logPrefix}, before substructureSearch`);
229
+ this.logger.debug(`${logPrefix}, before substructureSearch`);
239
230
  this.bitset = await this.bioFilter?.substructureSearch(this.column!)!;
240
- _package.logger.debug(`${logPrefix}, after substructureSearch`);
231
+ this.logger.debug(`${logPrefix}, after substructureSearch`);
241
232
  this.calculating = false;
242
233
  this.fireFilterSync();
243
234
  this.dataFrame?.rows.requestFilter();
244
235
  } finally {
245
236
  this.calculating = false;
246
- _package.logger.debug(`${logPrefix}, end`);
237
+ this.logger.debug(`${logPrefix}, end`);
247
238
  }
248
239
  });
249
240
  }
250
241
 
251
242
  grokEventsOnResetFilterRequest(): void {
252
243
  const logPrefix = `${this.filterToLog()}.grokEventsOnResetFilterRequest()`;
253
- _package.logger.debug(`${logPrefix}`);
244
+ this.logger.debug(`${logPrefix}`);
254
245
  this.bioFilter?.resetFilter();
255
246
  }
256
247