@datagrok/bio 2.11.23 → 2.11.26
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/CHANGELOG.md +1 -0
- package/dist/100.js +2 -0
- package/dist/100.js.map +1 -0
- package/dist/118.js +2 -0
- package/dist/118.js.map +1 -0
- package/dist/361.js +1 -1
- package/dist/361.js.map +1 -1
- package/dist/471.js +2 -0
- package/dist/471.js.map +1 -0
- package/dist/649.js +2 -0
- package/dist/649.js.map +1 -0
- package/dist/664.js +2 -0
- package/dist/664.js.map +1 -0
- package/dist/886.js +3 -0
- package/dist/886.js.map +1 -0
- package/dist/package-test.js +1 -2
- package/dist/package-test.js.map +1 -1
- package/dist/package.js +1 -2
- package/dist/package.js.map +1 -1
- package/package.json +4 -4
- package/src/analysis/sequence-space.ts +2 -75
- package/src/demo/bio01b-hierarchical-clustering-and-activity-cliffs.ts +3 -2
- package/src/demo/bio05-helm-msa-sequence-space.ts +1 -1
- package/src/demo/utils.ts +6 -5
- package/src/package.ts +53 -67
- package/src/tests/activity-cliffs-tests.ts +7 -7
- package/src/tests/activity-cliffs-utils.ts +5 -4
- package/src/tests/msa-tests.ts +2 -2
- package/src/tests/pepsea-tests.ts +1 -1
- package/src/tests/sequence-space-test.ts +1 -1
- package/src/tests/sequence-space-utils.ts +1 -1
- package/src/tests/utils.ts +4 -2
- package/src/widgets/bio-substructure-filter.ts +51 -24
- package/dist/23.js +0 -2
- package/dist/23.js.map +0 -1
- package/dist/282.js +0 -2
- package/dist/282.js.map +0 -1
- package/dist/378.js +0 -2
- package/dist/378.js.map +0 -1
- package/dist/40.js +0 -2
- package/dist/40.js.map +0 -1
- package/dist/65.js +0 -2
- package/dist/65.js.map +0 -1
- package/dist/935.js +0 -3
- package/dist/935.js.map +0 -1
- package/dist/package-test.js.LICENSE.txt +0 -51
- package/dist/package.js.LICENSE.txt +0 -51
- /package/dist/{935.js.LICENSE.txt → 886.js.LICENSE.txt} +0 -0
|
@@ -6,17 +6,21 @@
|
|
|
6
6
|
|
|
7
7
|
import * as ui from 'datagrok-api/ui';
|
|
8
8
|
import * as DG from 'datagrok-api/dg';
|
|
9
|
-
|
|
10
9
|
import * as grok from 'datagrok-api/grok';
|
|
10
|
+
|
|
11
11
|
import wu from 'wu';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
|
|
12
|
+
import {fromEvent, Subject, Subscription, Unsubscribable} from 'rxjs';
|
|
13
|
+
import {debounceTime} from 'rxjs/operators';
|
|
14
|
+
|
|
15
15
|
import {TAGS as bioTAGS, NOTATION} from '@datagrok-libraries/bio/src/utils/macromolecule';
|
|
16
|
+
import {errInfo, errStack} from '@datagrok-libraries/bio/src/utils/err-info';
|
|
16
17
|
import {delay} from '@datagrok-libraries/utils/src/test';
|
|
17
|
-
import {
|
|
18
|
+
import {IHelmWebEditor} from '@datagrok-libraries/bio/src/types/editor';
|
|
18
19
|
|
|
19
|
-
import {
|
|
20
|
+
import {helmSubstructureSearch, linearSubstructureSearch} from '../substructure-search/substructure-search';
|
|
21
|
+
import {updateDivInnerHTML} from '../utils/ui-utils';
|
|
22
|
+
|
|
23
|
+
import {_package} from '../package';
|
|
20
24
|
|
|
21
25
|
export class BioSubstructureFilter extends DG.Filter {
|
|
22
26
|
bioFilter: BioFilterBase | null = null;
|
|
@@ -84,6 +88,7 @@ export class BioSubstructureFilter extends DG.Filter {
|
|
|
84
88
|
}
|
|
85
89
|
|
|
86
90
|
detach() {
|
|
91
|
+
if (this.bioFilter) this.bioFilter.detach();
|
|
87
92
|
super.detach();
|
|
88
93
|
}
|
|
89
94
|
|
|
@@ -147,18 +152,16 @@ abstract class BioFilterBase {
|
|
|
147
152
|
return new HTMLElement();
|
|
148
153
|
}
|
|
149
154
|
|
|
150
|
-
get substructure()
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
set substructure(s: string) {
|
|
155
|
-
}
|
|
155
|
+
abstract get substructure(): string;
|
|
156
|
+
abstract set substructure(s: string);
|
|
156
157
|
|
|
157
158
|
async substructureSearch(_column: DG.Column): Promise<DG.BitSet | null> {
|
|
158
159
|
return null;
|
|
159
160
|
}
|
|
160
161
|
|
|
161
162
|
abstract resetFilter(): void;
|
|
163
|
+
|
|
164
|
+
abstract detach(): void;
|
|
162
165
|
}
|
|
163
166
|
|
|
164
167
|
class FastaFilter extends BioFilterBase {
|
|
@@ -191,6 +194,8 @@ class FastaFilter extends BioFilterBase {
|
|
|
191
194
|
resetFilter(): void {
|
|
192
195
|
this.substructureInput.value = '';
|
|
193
196
|
}
|
|
197
|
+
|
|
198
|
+
detach(): void { }
|
|
194
199
|
}
|
|
195
200
|
|
|
196
201
|
export class SeparatorFilter extends FastaFilter {
|
|
@@ -227,10 +232,12 @@ export class SeparatorFilter extends FastaFilter {
|
|
|
227
232
|
async substructureSearch(column: DG.Column): Promise<DG.BitSet | null> {
|
|
228
233
|
return linearSubstructureSearch(this.substructure, column, this.colSeparator);
|
|
229
234
|
}
|
|
235
|
+
|
|
236
|
+
detach(): void { }
|
|
230
237
|
}
|
|
231
238
|
|
|
232
239
|
export class HelmFilter extends BioFilterBase {
|
|
233
|
-
helmEditor:
|
|
240
|
+
helmEditor: IHelmWebEditor;
|
|
234
241
|
_filterPanel = ui.div('', {style: {cursor: 'pointer'}});
|
|
235
242
|
helmSubstructure = '';
|
|
236
243
|
|
|
@@ -239,14 +246,18 @@ export class HelmFilter extends BioFilterBase {
|
|
|
239
246
|
this.init();
|
|
240
247
|
}
|
|
241
248
|
|
|
249
|
+
viewSubs: Unsubscribable[] = [];
|
|
250
|
+
|
|
242
251
|
async init() {
|
|
243
|
-
this.helmEditor = await grok.functions.call('
|
|
252
|
+
this.helmEditor = await grok.functions.call('Helm:helmWebEditor');
|
|
244
253
|
await ui.tools.waitForElementInDom(this._filterPanel);
|
|
245
254
|
this.updateFilterPanel();
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
255
|
+
let editorDiv: HTMLDivElement | undefined;
|
|
256
|
+
let webEditor: any | undefined;
|
|
257
|
+
// TODO: Unsubscribe 'click' and 'sizeChanged'
|
|
258
|
+
this.viewSubs.push(fromEvent(this._filterPanel, 'click').subscribe(() => {
|
|
259
|
+
({editorDiv, webEditor} = this.helmEditor.createWebEditor(this.helmSubstructure));
|
|
260
|
+
const dlg = ui.dialog({showHeader: false, showFooter: true})
|
|
250
261
|
.add(editorDiv)
|
|
251
262
|
.onOK(() => {
|
|
252
263
|
const helmString = webEditor.canvas.getHelm(true)
|
|
@@ -255,12 +266,24 @@ export class HelmFilter extends BioFilterBase {
|
|
|
255
266
|
this.updateFilterPanel(this.substructure);
|
|
256
267
|
setTimeout(() => { this.onChanged.next(); }, 10);
|
|
257
268
|
}).show({modal: true, fullScreen: true});
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
});
|
|
269
|
+
const onCloseSub = dlg.onClose.subscribe(() => {
|
|
270
|
+
onCloseSub.unsubscribe();
|
|
271
|
+
editorDiv = undefined;
|
|
272
|
+
webEditor = undefined;
|
|
273
|
+
});
|
|
274
|
+
}));
|
|
275
|
+
this.viewSubs.push(ui.onSizeChanged(this._filterPanel).subscribe((_) => {
|
|
276
|
+
try {
|
|
277
|
+
if (!!webEditor) {
|
|
278
|
+
const helmString = webEditor.canvas.getHelm(true)
|
|
279
|
+
.replace(/<\/span>/g, '').replace(/<span style='background:#bbf;'>/g, '');
|
|
280
|
+
this.updateFilterPanel(helmString);
|
|
281
|
+
}
|
|
282
|
+
} catch (err: any) {
|
|
283
|
+
const [errMsg, errStack] = errInfo(err);
|
|
284
|
+
_package.logger.error(errMsg, undefined, errStack);
|
|
285
|
+
}
|
|
286
|
+
}));
|
|
264
287
|
}
|
|
265
288
|
|
|
266
289
|
get filterPanel() {
|
|
@@ -302,4 +325,8 @@ export class HelmFilter extends BioFilterBase {
|
|
|
302
325
|
this.helmSubstructure = '';
|
|
303
326
|
this.updateFilterPanel(this.substructure);
|
|
304
327
|
}
|
|
328
|
+
|
|
329
|
+
detach(): void {
|
|
330
|
+
for (const sub of this.viewSubs) sub.unsubscribe();
|
|
331
|
+
}
|
|
305
332
|
}
|
package/dist/23.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var bio;(()=>{"use strict";var e,r,t={5023:(e,r,t)=>{const o=e=>null==e;var n=t(6361),a=t(9657);onmessage=async e=>{const{values:r,startIdx:t,endIdx:s,threshold:i,fnName:c,opts:l}=e.data;try{const e=[],p=[],h=[],f=s-t;if((0,n.sQ)(c))for(let e=0;e<r.length;++e)o(r[e])||(r[e]=new a.Z(r[e]._data,r[e]._length));let u=0;const g=new n.UH(c).getMeasure(l),v=r.length-2-Math.floor(Math.sqrt(-8*t+4*r.length*(r.length-1)-7)/2-.5),b=t-r.length*v+Math.floor((v+1)*(v+2)/2);let d=v,w=b;for(;u<f;){const t=o(r[d])||o(r[w])?1:g(r[d],r[w]);1-t>=i&&(e.push(d),p.push(w),h.push(t)),u++,w++,w===r.length&&(d++,w=d+1)}const y=new Int32Array(e),m=new Int32Array(p),x=new Float32Array(h);postMessage({i:y,j:m,distance:x})}catch(e){postMessage({error:e})}}}},o={};function n(e){var r=o[e];if(void 0!==r)return r.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.m=t,n.x=()=>{var e=n.O(void 0,[378,361],(()=>n(5023)));return n.O(e)},e=[],n.O=(r,t,o,a)=>{if(!t){var s=1/0;for(p=0;p<e.length;p++){for(var[t,o,a]=e[p],i=!0,c=0;c<t.length;c++)(!1&a||s>=a)&&Object.keys(n.O).every((e=>n.O[e](t[c])))?t.splice(c--,1):(i=!1,a<s&&(s=a));if(i){e.splice(p--,1);var l=o();void 0!==l&&(r=l)}}return r}a=a||0;for(var p=e.length;p>0&&e[p-1][2]>a;p--)e[p]=e[p-1];e[p]=[t,o,a]},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((r,t)=>(n.f[t](e,r),r)),[])),n.u=e=>e+".js",n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var r=n.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&!e;)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{var e={23:1};n.f.i=(r,t)=>{e[r]||importScripts(n.p+n.u(r))};var r=self.webpackChunkbio=self.webpackChunkbio||[],t=r.push.bind(r);r.push=r=>{var[o,a,s]=r;for(var i in a)n.o(a,i)&&(n.m[i]=a[i]);for(s&&s(n);o.length;)e[o.pop()]=1;t(r)}})(),r=n.x,n.x=()=>Promise.all([n.e(378),n.e(361)]).then(r);var a=n.x();bio=a})();
|
|
2
|
-
//# sourceMappingURL=23.js.map
|
package/dist/23.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"23.js","mappings":"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","sources":["webpack://bio/webpack/runtime/chunk loaded","webpack://bio/webpack/runtime/startup chunk dependencies","webpack://bio/./node_modules/@datagrok-libraries/ml/src/distance-matrix/utils.js","webpack://bio/./node_modules/@datagrok-libraries/ml/src/distance-matrix/sparse-matrix-worker.js","webpack://bio/webpack/bootstrap","webpack://bio/webpack/runtime/define property getters","webpack://bio/webpack/runtime/ensure chunk","webpack://bio/webpack/runtime/get javascript chunk filename","webpack://bio/webpack/runtime/global","webpack://bio/webpack/runtime/hasOwnProperty shorthand","webpack://bio/webpack/runtime/publicPath","webpack://bio/webpack/runtime/importScripts chunk loading","webpack://bio/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\n\t\t__webpack_require__.e(378),\n\t\t__webpack_require__.e(361)\n\t]).then(next);\n};","export const isNil = (x) => x === null || x === undefined;\nexport function insertSmaller(distancesAr, indexes, num, index) {\n if (num > distancesAr[distancesAr.length - 1]) {\n return;\n }\n const newPosition = distancesAr.findIndex((v) => num < v);\n distancesAr.pop();\n distancesAr.splice(newPosition, 0, num);\n indexes.pop();\n indexes.splice(newPosition, 0, index);\n}\nexport function insertLarger(distancesAr, indexes, num, index) {\n if (num < distancesAr[distancesAr.length - 1]) {\n return;\n }\n const newPosition = distancesAr.findIndex((v) => num > v);\n distancesAr.pop();\n distancesAr.splice(newPosition, 0, num);\n indexes.pop();\n indexes.splice(newPosition, 0, index);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQztBQUUvRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFdBQXFCLEVBQUUsT0FBaUIsRUFBRSxHQUFXLEVBQUUsS0FBYTtJQUM5RixJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsRUFBRTtRQUN6QyxPQUFPO0tBQ1Y7SUFDRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDZCxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsV0FBcUIsRUFBRSxPQUFpQixFQUFFLEdBQVcsRUFBRSxLQUFhO0lBQzdGLElBQUksR0FBRyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3pDLE9BQU87S0FDVjtJQUNELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbEIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzTmlsID0gKHg6IGFueSkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRTbWFsbGVyKGRpc3RhbmNlc0FyOiBudW1iZXJbXSwgaW5kZXhlczogbnVtYmVyW10sIG51bTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKG51bSA+IGRpc3RhbmNlc0FyW2Rpc3RhbmNlc0FyLmxlbmd0aC0xXSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0TGFyZ2VyKGRpc3RhbmNlc0FyOiBudW1iZXJbXSwgaW5kZXhlczogbnVtYmVyW10sIG51bTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKG51bSA8IGRpc3RhbmNlc0FyW2Rpc3RhbmNlc0FyLmxlbmd0aC0xXSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPiB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuIl19","import { isNil } from './utils';\nimport { Measure, isBitArrayMetric } from '../typed-metrics';\nimport BitArray from '@datagrok-libraries/utils/src/bit-array';\nonmessage = async (event) => {\n const { values, startIdx, endIdx, threshold, fnName, opts } = event.data;\n try {\n // if (startIdx != -1)\n // throw new Error('Error in sparse matrix worker'); // TODO: remove this line\n const i = [];\n const j = [];\n const distances = [];\n const chunkSize = endIdx - startIdx;\n //const mi = startRow;\n //const mj = startCol;\n if (isBitArrayMetric(fnName)) {\n for (let i = 0; i < values.length; ++i) {\n if (isNil(values[i]))\n continue;\n values[i] = new BitArray(values[i]._data, values[i]._length);\n }\n }\n let cnt = 0;\n const distanceFn = new Measure(fnName).getMeasure(opts);\n const startRow = values.length - 2 - Math.floor(Math.sqrt(-8 * startIdx + 4 * values.length * (values.length - 1) - 7) / 2 - 0.5);\n const startCol = startIdx - values.length * startRow + Math.floor((startRow + 1) * (startRow + 2) / 2);\n let mi = startRow;\n let mj = startCol;\n while (cnt < chunkSize) {\n //const value = seq1List[mi] && seq1List[mj] ? hamming(seq1List[mi], seq1List[mj]) : 0;\n const value = !isNil(values[mi]) && !isNil(values[mj]) ?\n distanceFn(values[mi], values[mj]) : 1;\n if (1 - value >= threshold) {\n i.push(mi);\n j.push(mj);\n distances.push(value);\n }\n cnt++;\n mj++;\n if (mj === values.length) {\n mi++;\n mj = mi + 1;\n }\n }\n const iArray = new Int32Array(i);\n const jArray = new Int32Array(j);\n const distanceArray = new Float32Array(distances);\n postMessage({ i: iArray, j: jArray, distance: distanceArray });\n }\n catch (e) {\n postMessage({ error: e });\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnNlLW1hdHJpeC13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcGFyc2UtbWF0cml4LXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sRUFBZSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLFFBQVEsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRCxTQUFTLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQzFCLE1BQU0sRUFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxHQUNpRCxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3JILElBQUk7UUFDRixzQkFBc0I7UUFDdEIsZ0ZBQWdGO1FBQ2hGLE1BQU0sQ0FBQyxHQUFhLEVBQUUsQ0FBQztRQUN2QixNQUFNLENBQUMsR0FBYSxFQUFFLENBQUM7UUFDdkIsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO1FBQy9CLE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDcEMsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUV0QixJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUUsU0FBUztnQkFDL0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzlEO1NBQ0Y7UUFDRCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNwRixNQUFNLFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2RyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUM7UUFDbEIsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxHQUFHLFNBQVMsRUFBRTtZQUN0Qix1RkFBdUY7WUFDdkYsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxTQUFTLEVBQUU7Z0JBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDWCxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZCO1lBQ0QsR0FBRyxFQUFFLENBQUM7WUFDTixFQUFFLEVBQUUsQ0FBQztZQUNMLElBQUksRUFBRSxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ3hCLEVBQUUsRUFBRSxDQUFDO2dCQUNMLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ2I7U0FDRjtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sYUFBYSxHQUFHLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELFdBQVcsQ0FBQyxFQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztLQUM5RDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsV0FBVyxDQUFDLEVBQUMsS0FBSyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7S0FDekI7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2lzTmlsfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7S25vd25NZXRyaWNzLCBNZWFzdXJlLCBpc0JpdEFycmF5TWV0cmljfSBmcm9tICcuLi90eXBlZC1tZXRyaWNzJztcbmltcG9ydCBCaXRBcnJheSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9iaXQtYXJyYXknO1xub25tZXNzYWdlID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IHt2YWx1ZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIHRocmVzaG9sZCwgZm5OYW1lLCBvcHRzfTpcbiAgICB7dmFsdWVzOiBhbnlbXSwgc3RhcnRJZHg6IG51bWJlciwgZW5kSWR4OiBudW1iZXIsIHRocmVzaG9sZDogbnVtYmVyLCBmbk5hbWU6IEtub3duTWV0cmljcywgb3B0czogYW55fSA9IGV2ZW50LmRhdGE7XG4gIHRyeSB7XG4gICAgLy8gaWYgKHN0YXJ0SWR4ICE9IC0xKVxuICAgIC8vICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBpbiBzcGFyc2UgbWF0cml4IHdvcmtlcicpOyAvLyBUT0RPOiByZW1vdmUgdGhpcyBsaW5lXG4gICAgY29uc3QgaTogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBqOiBudW1iZXJbXSA9IFtdO1xuICAgIGNvbnN0IGRpc3RhbmNlczogbnVtYmVyW10gPSBbXTtcbiAgICBjb25zdCBjaHVua1NpemUgPSBlbmRJZHggLSBzdGFydElkeDtcbiAgICAvL2NvbnN0IG1pID0gc3RhcnRSb3c7XG4gICAgLy9jb25zdCBtaiA9IHN0YXJ0Q29sO1xuXG4gICAgaWYgKGlzQml0QXJyYXlNZXRyaWMoZm5OYW1lKSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgaWYgKGlzTmlsKHZhbHVlc1tpXSkpIGNvbnRpbnVlO1xuICAgICAgICB2YWx1ZXNbaV0gPSBuZXcgQml0QXJyYXkodmFsdWVzW2ldLl9kYXRhLCB2YWx1ZXNbaV0uX2xlbmd0aCk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBjbnQgPSAwO1xuICAgIGNvbnN0IGRpc3RhbmNlRm4gPSBuZXcgTWVhc3VyZShmbk5hbWUpLmdldE1lYXN1cmUob3B0cyk7XG4gICAgY29uc3Qgc3RhcnRSb3cgPSB2YWx1ZXMubGVuZ3RoIC0gMiAtIE1hdGguZmxvb3IoXG4gICAgICBNYXRoLnNxcnQoLTggKiBzdGFydElkeCArIDQgKiB2YWx1ZXMubGVuZ3RoICogKHZhbHVlcy5sZW5ndGggLSAxKSAtIDcpIC8gMiAtIDAuNSk7XG4gICAgY29uc3Qgc3RhcnRDb2wgPSBzdGFydElkeCAtIHZhbHVlcy5sZW5ndGggKiBzdGFydFJvdyArIE1hdGguZmxvb3IoKHN0YXJ0Um93ICsgMSkgKiAoc3RhcnRSb3cgKyAyKSAvIDIpO1xuICAgIGxldCBtaSA9IHN0YXJ0Um93O1xuICAgIGxldCBtaiA9IHN0YXJ0Q29sO1xuICAgIHdoaWxlIChjbnQgPCBjaHVua1NpemUpIHtcbiAgICAgIC8vY29uc3QgdmFsdWUgPSBzZXExTGlzdFttaV0gJiYgc2VxMUxpc3RbbWpdID8gaGFtbWluZyhzZXExTGlzdFttaV0sIHNlcTFMaXN0W21qXSkgOiAwO1xuICAgICAgY29uc3QgdmFsdWUgPSAhaXNOaWwodmFsdWVzW21pXSkgJiYgIWlzTmlsKHZhbHVlc1ttal0pID9cbiAgICAgICAgZGlzdGFuY2VGbih2YWx1ZXNbbWldLCB2YWx1ZXNbbWpdKSA6IDE7XG4gICAgICBpZiAoMSAtIHZhbHVlID49IHRocmVzaG9sZCkge1xuICAgICAgICBpLnB1c2gobWkpO1xuICAgICAgICBqLnB1c2gobWopO1xuICAgICAgICBkaXN0YW5jZXMucHVzaCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBjbnQrKztcbiAgICAgIG1qKys7XG4gICAgICBpZiAobWogPT09IHZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgbWkrKztcbiAgICAgICAgbWogPSBtaSArIDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaUFycmF5ID0gbmV3IEludDMyQXJyYXkoaSk7XG4gICAgY29uc3QgakFycmF5ID0gbmV3IEludDMyQXJyYXkoaik7XG4gICAgY29uc3QgZGlzdGFuY2VBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoZGlzdGFuY2VzKTtcbiAgICBwb3N0TWVzc2FnZSh7aTogaUFycmF5LCBqOiBqQXJyYXksIGRpc3RhbmNlOiBkaXN0YW5jZUFycmF5fSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBwb3N0TWVzc2FnZSh7ZXJyb3I6IGV9KTtcbiAgfVxufTsiXX0=","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [378,361], () => (__webpack_require__(5023)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t23: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkbio\"] = self[\"webpackChunkbio\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","next","isNil","x","onmessage","async","event","values","startIdx","endIdx","threshold","fnName","opts","data","i","j","distances","chunkSize","length","_data","_length","cnt","distanceFn","getMeasure","startRow","Math","floor","sqrt","startCol","mi","mj","value","push","iArray","Int32Array","jArray","distanceArray","Float32Array","postMessage","distance","e","error","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","__webpack_exports__","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","Error","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","bind","moreModules","runtime","pop","then"],"sourceRoot":""}
|
package/dist/282.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var bio;(()=>{"use strict";var e,r,t={1282:(e,r,t)=>{const n=e=>null==e;function o(e,r,t,n){if(t>e[e.length-1])return;const o=e.findIndex((e=>t<e));e.pop(),e.splice(o,0,t),r.pop(),r.splice(o,0,n)}var a=t(6361),i=t(9657);onmessage=async e=>{const{values:r,startIdx:t,endIdx:l,fnName:s,opts:c,nNeighbours:p}=e.data;try{const e=new Array(r.length).fill(null).map((()=>new Array(p).fill(-1))),f=new Array(r.length).fill(null).map((()=>new Array(p).fill(999999))),h=l-t;if((0,a.sQ)(s))for(let e=0;e<r.length;++e)n(r[e])||(r[e]=new i.Z(r[e]._data,r[e]._length));let u=0;const g=new a.UH(s).getMeasure(c),v=r.length-2-Math.floor(Math.sqrt(-8*t+4*r.length*(r.length-1)-7)/2-.5),b=t-r.length*v+Math.floor((v+1)*(v+2)/2);let d=v,w=b;for(;u<h;){const t=n(r[d])||n(r[w])?1:g(r[d],r[w]);o(f[d],e[d],t,w),o(f[w],e[w],t,d),u++,w++,w===r.length&&(d++,w=d+1)}postMessage({knnDistances:f,knnIndexes:e})}catch(e){postMessage({error:e})}}}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,o),a.exports}o.m=t,o.x=()=>{var e=o.O(void 0,[378,361],(()=>o(1282)));return o.O(e)},e=[],o.O=(r,t,n,a)=>{if(!t){var i=1/0;for(p=0;p<e.length;p++){for(var[t,n,a]=e[p],l=!0,s=0;s<t.length;s++)(!1&a||i>=a)&&Object.keys(o.O).every((e=>o.O[e](t[s])))?t.splice(s--,1):(l=!1,a<i&&(i=a));if(l){e.splice(p--,1);var c=n();void 0!==c&&(r=c)}}return r}a=a||0;for(var p=e.length;p>0&&e[p-1][2]>a;p--)e[p]=e[p-1];e[p]=[t,n,a]},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce(((r,t)=>(o.f[t](e,r),r)),[])),o.u=e=>e+".js",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;o.g.importScripts&&(e=o.g.location+"");var r=o.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&!e;)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),o.p=e})(),(()=>{var e={282:1};o.f.i=(r,t)=>{e[r]||importScripts(o.p+o.u(r))};var r=self.webpackChunkbio=self.webpackChunkbio||[],t=r.push.bind(r);r.push=r=>{var[n,a,i]=r;for(var l in a)o.o(a,l)&&(o.m[l]=a[l]);for(i&&i(o);n.length;)e[n.pop()]=1;t(r)}})(),r=o.x,o.x=()=>Promise.all([o.e(378),o.e(361)]).then(r);var a=o.x();bio=a})();
|
|
2
|
-
//# sourceMappingURL=282.js.map
|
package/dist/282.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"282.js","mappings":"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","sources":["webpack://bio/webpack/runtime/chunk loaded","webpack://bio/webpack/runtime/startup chunk dependencies","webpack://bio/./node_modules/@datagrok-libraries/ml/src/distance-matrix/utils.js","webpack://bio/./node_modules/@datagrok-libraries/ml/src/distance-matrix/knn-worker.js","webpack://bio/webpack/bootstrap","webpack://bio/webpack/runtime/define property getters","webpack://bio/webpack/runtime/ensure chunk","webpack://bio/webpack/runtime/get javascript chunk filename","webpack://bio/webpack/runtime/global","webpack://bio/webpack/runtime/hasOwnProperty shorthand","webpack://bio/webpack/runtime/publicPath","webpack://bio/webpack/runtime/importScripts chunk loading","webpack://bio/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var next = __webpack_require__.x;\n__webpack_require__.x = () => {\n\treturn Promise.all([\n\t\t__webpack_require__.e(378),\n\t\t__webpack_require__.e(361)\n\t]).then(next);\n};","export const isNil = (x) => x === null || x === undefined;\nexport function insertSmaller(distancesAr, indexes, num, index) {\n if (num > distancesAr[distancesAr.length - 1]) {\n return;\n }\n const newPosition = distancesAr.findIndex((v) => num < v);\n distancesAr.pop();\n distancesAr.splice(newPosition, 0, num);\n indexes.pop();\n indexes.splice(newPosition, 0, index);\n}\nexport function insertLarger(distancesAr, indexes, num, index) {\n if (num < distancesAr[distancesAr.length - 1]) {\n return;\n }\n const newPosition = distancesAr.findIndex((v) => num > v);\n distancesAr.pop();\n distancesAr.splice(newPosition, 0, num);\n indexes.pop();\n indexes.splice(newPosition, 0, index);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQztBQUUvRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFdBQXFCLEVBQUUsT0FBaUIsRUFBRSxHQUFXLEVBQUUsS0FBYTtJQUM5RixJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUMsRUFBRTtRQUN6QyxPQUFPO0tBQ1Y7SUFDRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDZCxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsV0FBcUIsRUFBRSxPQUFpQixFQUFFLEdBQVcsRUFBRSxLQUFhO0lBQzdGLElBQUksR0FBRyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3pDLE9BQU87S0FDVjtJQUNELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbEIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzTmlsID0gKHg6IGFueSkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRTbWFsbGVyKGRpc3RhbmNlc0FyOiBudW1iZXJbXSwgaW5kZXhlczogbnVtYmVyW10sIG51bTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKG51bSA+IGRpc3RhbmNlc0FyW2Rpc3RhbmNlc0FyLmxlbmd0aC0xXSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0TGFyZ2VyKGRpc3RhbmNlc0FyOiBudW1iZXJbXSwgaW5kZXhlczogbnVtYmVyW10sIG51bTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKG51bSA8IGRpc3RhbmNlc0FyW2Rpc3RhbmNlc0FyLmxlbmd0aC0xXSkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPiB2KTtcbiAgICBkaXN0YW5jZXNBci5wb3AoKTtcbiAgICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gICAgaW5kZXhlcy5wb3AoKTtcbiAgICBpbmRleGVzLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgaW5kZXgpO1xufVxuIl19","import { insertSmaller, isNil } from './utils';\nimport { Measure, isBitArrayMetric } from '../typed-metrics';\nimport BitArray from '@datagrok-libraries/utils/src/bit-array';\nonmessage = async (event) => {\n const { values, startIdx, endIdx, fnName, opts, nNeighbours } = event.data;\n try {\n const knnIndexes = new Array(values.length).fill(null).map(() => new Array(nNeighbours).fill(-1));\n const knnDistances = new Array(values.length).fill(null).map(() => new Array(nNeighbours).fill(999999));\n const chunkSize = endIdx - startIdx;\n if (isBitArrayMetric(fnName)) {\n for (let i = 0; i < values.length; ++i) {\n if (isNil(values[i]))\n continue;\n values[i] = new BitArray(values[i]._data, values[i]._length);\n }\n }\n let cnt = 0;\n const distanceFn = new Measure(fnName).getMeasure(opts);\n const startRow = values.length - 2 - Math.floor(Math.sqrt(-8 * startIdx + 4 * values.length * (values.length - 1) - 7) / 2 - 0.5);\n const startCol = startIdx - values.length * startRow + Math.floor((startRow + 1) * (startRow + 2) / 2);\n let mi = startRow;\n let mj = startCol;\n while (cnt < chunkSize) {\n //const value = seq1List[mi] && seq1List[mj] ? hamming(seq1List[mi], seq1List[mj]) : 0;\n const value = !isNil(values[mi]) && !isNil(values[mj]) ?\n distanceFn(values[mi], values[mj]) : 1;\n insertSmaller(knnDistances[mi], knnIndexes[mi], value, mj);\n insertSmaller(knnDistances[mj], knnIndexes[mj], value, mi);\n cnt++;\n mj++;\n if (mj === values.length) {\n mi++;\n mj = mi + 1;\n }\n }\n postMessage({ knnDistances, knnIndexes });\n }\n catch (e) {\n postMessage({ error: e });\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia25uLXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtubi13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDN0MsT0FBTyxFQUFlLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sUUFBUSxNQUFNLHlDQUF5QyxDQUFDO0FBRS9ELFNBQVMsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDMUIsTUFBTSxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDLEdBQ2lELEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDdkgsSUFBSTtRQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFTLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUcsTUFBTSxZQUFZLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQVMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFaEgsTUFBTSxTQUFTLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUVwQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUN0QyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUUsU0FBUztnQkFDL0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzlEO1NBQ0Y7UUFDRCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNwRixNQUFNLFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2RyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUM7UUFDbEIsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxHQUFHLFNBQVMsRUFBRTtZQUN0Qix1RkFBdUY7WUFDdkYsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzRCxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFM0QsR0FBRyxFQUFFLENBQUM7WUFDTixFQUFFLEVBQUUsQ0FBQztZQUNMLElBQUksRUFBRSxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ3hCLEVBQUUsRUFBRSxDQUFDO2dCQUNMLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ2I7U0FDRjtRQUVELFdBQVcsQ0FBQyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO0tBQ3pDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztLQUN6QjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5zZXJ0U21hbGxlciwgaXNOaWx9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtLbm93bk1ldHJpY3MsIE1lYXN1cmUsIGlzQml0QXJyYXlNZXRyaWN9IGZyb20gJy4uL3R5cGVkLW1ldHJpY3MnO1xuaW1wb3J0IEJpdEFycmF5IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2JpdC1hcnJheSc7XG5cbm9ubWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4ge1xuICBjb25zdCB7dmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBmbk5hbWUsIG9wdHMsIG5OZWlnaGJvdXJzfTpcbiAgICB7dmFsdWVzOiBhbnlbXSwgc3RhcnRJZHg6IG51bWJlciwgZW5kSWR4OiBudW1iZXIsIGZuTmFtZTogS25vd25NZXRyaWNzLCBvcHRzOiBhbnksIG5OZWlnaGJvdXJzOiBudW1iZXJ9ID0gZXZlbnQuZGF0YTtcbiAgdHJ5IHtcbiAgICBjb25zdCBrbm5JbmRleGVzID0gbmV3IEFycmF5KHZhbHVlcy5sZW5ndGgpLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBBcnJheTxudW1iZXI+KG5OZWlnaGJvdXJzKS5maWxsKC0xKSk7XG4gICAgY29uc3Qga25uRGlzdGFuY2VzID0gbmV3IEFycmF5KHZhbHVlcy5sZW5ndGgpLmZpbGwobnVsbCkubWFwKCgpID0+IG5ldyBBcnJheTxudW1iZXI+KG5OZWlnaGJvdXJzKS5maWxsKDk5OTk5OSkpO1xuXG4gICAgY29uc3QgY2h1bmtTaXplID0gZW5kSWR4IC0gc3RhcnRJZHg7XG5cbiAgICBpZiAoaXNCaXRBcnJheU1ldHJpYyhmbk5hbWUpKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAoaXNOaWwodmFsdWVzW2ldKSkgY29udGludWU7XG4gICAgICAgIHZhbHVlc1tpXSA9IG5ldyBCaXRBcnJheSh2YWx1ZXNbaV0uX2RhdGEsIHZhbHVlc1tpXS5fbGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IGNudCA9IDA7XG4gICAgY29uc3QgZGlzdGFuY2VGbiA9IG5ldyBNZWFzdXJlKGZuTmFtZSkuZ2V0TWVhc3VyZShvcHRzKTtcbiAgICBjb25zdCBzdGFydFJvdyA9IHZhbHVlcy5sZW5ndGggLSAyIC0gTWF0aC5mbG9vcihcbiAgICAgIE1hdGguc3FydCgtOCAqIHN0YXJ0SWR4ICsgNCAqIHZhbHVlcy5sZW5ndGggKiAodmFsdWVzLmxlbmd0aCAtIDEpIC0gNykgLyAyIC0gMC41KTtcbiAgICBjb25zdCBzdGFydENvbCA9IHN0YXJ0SWR4IC0gdmFsdWVzLmxlbmd0aCAqIHN0YXJ0Um93ICsgTWF0aC5mbG9vcigoc3RhcnRSb3cgKyAxKSAqIChzdGFydFJvdyArIDIpIC8gMik7XG4gICAgbGV0IG1pID0gc3RhcnRSb3c7XG4gICAgbGV0IG1qID0gc3RhcnRDb2w7XG4gICAgd2hpbGUgKGNudCA8IGNodW5rU2l6ZSkge1xuICAgICAgLy9jb25zdCB2YWx1ZSA9IHNlcTFMaXN0W21pXSAmJiBzZXExTGlzdFttal0gPyBoYW1taW5nKHNlcTFMaXN0W21pXSwgc2VxMUxpc3RbbWpdKSA6IDA7XG4gICAgICBjb25zdCB2YWx1ZSA9ICFpc05pbCh2YWx1ZXNbbWldKSAmJiAhaXNOaWwodmFsdWVzW21qXSkgP1xuICAgICAgICBkaXN0YW5jZUZuKHZhbHVlc1ttaV0sIHZhbHVlc1ttal0pIDogMTsgXG4gICAgICBpbnNlcnRTbWFsbGVyKGtubkRpc3RhbmNlc1ttaV0sIGtubkluZGV4ZXNbbWldLCB2YWx1ZSwgbWopO1xuICAgICAgaW5zZXJ0U21hbGxlcihrbm5EaXN0YW5jZXNbbWpdLCBrbm5JbmRleGVzW21qXSwgdmFsdWUsIG1pKTtcblxuICAgICAgY250Kys7XG4gICAgICBtaisrO1xuICAgICAgaWYgKG1qID09PSB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgIG1pKys7XG4gICAgICAgIG1qID0gbWkgKyAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBvc3RNZXNzYWdlKHtrbm5EaXN0YW5jZXMsIGtubkluZGV4ZXN9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHBvc3RNZXNzYWdlKHtlcnJvcjogZX0pO1xuICB9XG59OyJdfQ==","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// the startup function\n__webpack_require__.x = () => {\n\t// Load entry module and return exports\n\t// This entry module depends on other loaded chunks and execution need to be delayed\n\tvar __webpack_exports__ = __webpack_require__.O(undefined, [378,361], () => (__webpack_require__(1282)))\n\t__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n\treturn __webpack_exports__;\n};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks and sibling chunks for the entrypoint\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t282: 1\n};\n\n// importScripts chunk loading\nvar installChunk = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\twhile(chunkIds.length)\n\t\tinstalledChunks[chunkIds.pop()] = 1;\n\tparentChunkLoadingFunction(data);\n};\n__webpack_require__.f.i = (chunkId, promises) => {\n\t// \"1\" is the signal for \"already loaded\"\n\tif(!installedChunks[chunkId]) {\n\t\tif(true) { // all chunks have JS\n\t\t\timportScripts(__webpack_require__.p + __webpack_require__.u(chunkId));\n\t\t}\n\t}\n};\n\nvar chunkLoadingGlobal = self[\"webpackChunkbio\"] = self[\"webpackChunkbio\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = installChunk;\n\n// no HMR\n\n// no HMR manifest","// run startup\nvar __webpack_exports__ = __webpack_require__.x();\n"],"names":["deferred","next","isNil","x","insertSmaller","distancesAr","indexes","num","index","length","newPosition","findIndex","v","pop","splice","onmessage","async","event","values","startIdx","endIdx","fnName","opts","nNeighbours","data","knnIndexes","Array","fill","map","knnDistances","chunkSize","i","_data","_length","cnt","distanceFn","getMeasure","startRow","Math","floor","sqrt","startCol","mi","mj","value","postMessage","e","error","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","__webpack_exports__","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","key","r","d","definition","o","defineProperty","enumerable","get","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","Error","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","push","bind","moreModules","runtime","then"],"sourceRoot":""}
|
package/dist/378.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkbio=self.webpackChunkbio||[]).push([[378],{708:(t,e,n)=>{function r(t={}){const e=function(){if(!t||!t.scoringMatrix||!t.alphabetIndexes)return(t,e)=>t===e?0:1;if(t.scoringMatrix.length!==Object.keys(t.alphabetIndexes).length)throw new Error("Scoring matrix and alphabet indexes should have the same length");const e=t.alphabetIndexes,n=t.scoringMatrix,r=Math.min(...Object.keys(e).map((t=>t.charCodeAt(0))))+1,s=new Float32Array((n.length+r)*(n.length+r));return Object.entries(e).forEach((([t,r])=>{const h=n[r];Object.entries(e).forEach((([e,r])=>{s[t.charCodeAt(0)*n.length+e.charCodeAt(0)]=h[r]}))})),(t,e)=>s[t.charCodeAt(0)*n.length+e.charCodeAt(0)]}(),n=t?.threshold??0;return(t,r)=>{let s=0;const h=t.length,i=r.length,o=Math.max(h,i)*(1-n);h!==i&&(s=Math.abs(h-i));let a=0;for(let n=0;n<Math.min(h,i);n++)if(t[n]!==r[n]&&(a+=e(t[n],r[n]),a>o))return 1;return a+=s,a/=Math.max(h,i),a}}n.d(e,{U:()=>i,o:()=>o});var s=n(1811);const h={gapOpen:1,gapExtend:.6,scoringMatrix:[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]],alphabetIndexes:{A:0,R:1,N:2,D:3,C:4,Q:5,E:6,G:7,H:8,I:9,L:10,K:11,M:12,F:13,P:14,S:15,T:16,W:17,Y:18,V:19,B:20,Z:21,X:22,"*":23}};var i;!function(t){t.HAMMING="Hamming",t.LEVENSHTEIN="Levenshtein",t.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",t.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance"}(i||(i={}));const o={[i.HAMMING]:r,[i.LEVENSHTEIN]:function(){return(t,e)=>(0,s.T)(t,e)/Math.max(t.length,e.length)},[i.NEEDLEMANN_WUNSCH]:function(t){const e=new Uint16Array(65536),{gapOpen:n,gapExtend:r,scoringMatrix:s,alphabetIndexes:i}={...h,...t};Object.entries(i).forEach((([t,n])=>e[t.charCodeAt(0)]=n));const o=[new Float32Array(1e4),new Float32Array(1e4)];return(t,h)=>{const i=new Array(t.length+1).fill(!1),a=new Array(t.length+1).fill(!1);let l=0,g=1;for(let e=1;e<t.length+1;e++)o[0][e]=-n-(e-1)*r,o[1][e]=0;for(let f=1;f<h.length+1;f++){o[g][0]=-n-(f-1)*r;for(let _=1;_<t.length+1;_++){const c=o[l][_-1]+s[e[t.charCodeAt(_-1)]][e[h.charCodeAt(f-1)]],u=o[l][_]-(i[_]?r:n),d=o[g][_-1]-(a[_-1]?r:n);o[g][_]=Math.max(c,d,u),o[g][_]===c?(i[_]=!1,a[_]=!1):o[g][_]===d?(i[_]=!1,a[_]=!0):(i[_]=!0,a[_]=!1)}l=g,g=(g+1)%2}const f=Math.max(t.length,h.length);return(f-o[l][t.length])/f}},[i.MONOMER_CHEMICAL_DISTANCE]:r}},9657:(t,e,n)=>{n.d(e,{Z:()=>r});class r{constructor(t,e=!1){if(this._length=0,this._version=0,this._updateLevel=0,this._selectedCount=0,this._selectedCountVersion=-1,this._selectedIndexesVersion=-1,this._versionedName="",this._versionedNameVersion=-1,this.SHRINK_THRESHOLD=256,"number"==typeof t){const n=t,s=r._createBuffer(n);if(e)for(let t=0;t<s.length;t++)s[t]=-1;this._data=s,this._length=n}else{if(!(t instanceof Uint32Array))throw new Error("Invalid constructor");this._data=t,this._length=e}}getRawData(){return this._data}assureGoez(t,e){if(t<0)throw new Error(`${e} should be greater than zero`)}assureInRange(t,e,n,r){if(t<e||t>n)throw new Error(`Argument ${r} (${t}) out of range (${e}, ${n})`)}copy(t,e,n){for(let r=0;r<n;r++)e[r]=t[r]}copyFrom(t){if(this._length!=t._length)throw new Error(`Lengths differ (${this._length} != ${t._length})`);this.copy(t._data,this._data,this.lengthInInts),this._version++}get length(){return this._length}get buffer(){return this._data}set buffer(t){this._data=t,this._version++}get version(){return this._version}set version(t){this._version=t}incrementVersion(t=!0){this._version++}get lengthInInts(){return Math.floor((this._length+31)/32)}get versionedName(){return this._version==this._versionedNameVersion?this._versionedName:""}set versionedName(t){this._versionedName=t,this._versionedNameVersion=this._version}get self(){return this}setLength(t){if(t<0)throw new Error("should be >= 0");if(t==this._length)return;const e=Math.floor((t+31)/32);if(e>this._data.length||e+this.SHRINK_THRESHOLD<this._data.length){const t=new Uint32Array(e);this.copy(this._data,t,e>this._data.length?this._data.length:e),this._data=t}t>this._length&&(this._length%32>0&&(this._data[this.lengthInInts-1]&=(1<<(this._length%32&31))-1),this._data.fill(0,this.lengthInInts,e)),this._length=t,this._version++}static fromAnd(t,e){if(t._length!=e._length)throw new Error(`Lengths differ (${t._length} != ${e._length})`);const n=new r(t._length);n._length=t._length,n._data=r._createBuffer(n._length),n._version=0;const s=t.lengthInInts;for(let r=0;r<s;r++)n._data[r]=t._data[r]&e._data[r];return n}static _createBuffer(t){return new Uint32Array(Math.floor((t+31)/32))}static fromValues(t){const e=new r(t.length);e._version=0;for(let n=0;n<e._length;n++)t[n]&&(e._data[Math.floor(n/32)]|=1<<(n%32&31));return e}static fromSeq(t,e){const n=new r(t);for(let r=0;r<t;++r)n.setBit(r,e(r));return n._version=0,n}static fromString(t){return r.fromSeq(t.length,(e=>"1"==t.charAt(e)))}static fromUint32Array(t,e){const n=new r(t);return n._data=e,n}static fromBytes(t){const e=t.length,n=new r(8*e);n._data=new Uint32Array(Math.floor((e+3)/4)),n._length=8*e;let s=0,h=0;for(;e-h>=4;)n._data[s++]=255&t[h]|(255&t[h+1])<<8|(255&t[h+2])<<16|(255&t[h+3])<<24,h+=4;return e-h==3&&(n._data[s]=(255&t[h+2])<<16),e-h==2&&(n._data[s]|=(255&t[h+1])<<8),e-h==1&&(n._data[s]|=255&t[h]),n._version=0,n}toString(){return`${this._length} bits, ${this.countBits(!0)} set`}equals(t){if(this==t)return!0;if(null==t)return!1;if(this._length!=t._length)return!1;if(0==this._length)return!0;for(let e=0;e<this._data.length-1;e++)if(this._data[e]!=t._data[e])return!1;for(let e=8*(this._data.length-1);e<this._length;e++)if(this.getBit(e)!=t.getBit(e))return!1;return!0}clone(){const t=new r(0,!1);return t._data=Uint32Array.from(this._data),t._length=this._length,t._version=this._version,t}init(t,e){this.setAll(!1,!1);for(let e=0;e<this._length;e++)t(e)&&(this._data[Math.floor(e/32)]|=1<<(e%32&31));return this.incrementVersion(e),this}invert(t=!0){for(let t=0;t<this._data.length;t++)this._data[t]^=-1;this.incrementVersion(t)}setAll(t,e=!1){const n=t?-1:0,r=this.lengthInInts;for(let t=0;t<r;t++)this._data[t]=n;this.incrementVersion(e)}setIndexes(t,e=!0,n=!0,r=!0){n&&this.setAll(!e,!1);for(const n of t)this.setFast(n,e);this.incrementVersion(r)}everyIndex(t,e=!0){for(const n of t)if(this.getBit(n)!=e)return!1;return!0}anyIndex(t,e=!0){for(const n of t)if(this.getBit(n)==e)return!0;return!1}setWhere(t,e=!0,n=!0,r=!0,s=!0){if(n&&s&&this.setAll(!e,!1),s)for(let n=0;n<this._length;n++)t(n)&&this.setFast(n,e);else for(let n=0;n<this._length;n++)this.setFast(n,t(n)?e:!e);this.incrementVersion(r)}getRange(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return r.fromValues(n)}getRangeAsList(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return n}setRange(t,e,n,r=!0){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length-1,"to");const s=Math.min(t,e),h=Math.max(t,e);if(n)for(let t=s;t<=h;t++)this.setTrue(t);else for(let t=s;t<=h;t++)this.setFalse(t);return this.incrementVersion(r),this}setRandom(t,e,n=!0){if(t<0||t>this._length)throw new Error("n must be >= 0 && <= Count");t>this._length/2&&this.setRandom(this._length-t,!e),this.setAll(!e);for(let n=0;n<t;){const t=Math.floor(Math.random()*this._length);this.getBit(t)!=e&&(this.setFast(t,e),n++)}this.incrementVersion(n)}and(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]&=t._data[e];return this.incrementVersion(e),this}andNot(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");const n=this.lengthInInts;for(let e=0;e<n;e++)this._data[e]&=~t._data[e];return this.incrementVersion(e),this}notAnd(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]=~this._data[e]&t._data[e];return this.incrementVersion(e),this}not(t=!0){for(let t=0,e=this.lengthInInts;t<e;t++)this._data[t]=~this._data[t];return this.incrementVersion(t),this}or(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]|=t._data[e];return this.incrementVersion(e),this}xor(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]^=t._data[e];return this.incrementVersion(e),this}insertAt(t,e,n=!1){if(this.assureInRange(t,0,this._length,"pos"),0==e)return;const r=this._length;this.setLength(this._length+e);for(let n=r-1;n>=t;n--)this.setBit(n+e,this.getBit(n));for(let r=t;r<t+e;r++)this.setBit(r,n)}removeAt(t,e=1){if(e<0)throw new Error("n cannot be negative");if(this.assureInRange(t,0,this._length-e,"pos"),this.contains(!0))for(let n=t;n<this._length-e;n++)this.setBit(n,this.getBit(n+e));this.setLength(this._length-e)}removeByMask(t,e=!0){if(this._length!=t.length)throw new Error("length != mask.length");if(t==this)this.setLength(t.countBits(!e)),this.setAll(!e);else{let n=0;for(let r=-1;-1!=(r=t.findNext(r,!e));)this.setFast(n++,this.getBit(r));this._length=n,this._version++}return this}getBit(t){return 0!=(this._data[Math.floor(t/32)]&1<<(31&t))}setBit(t,e,n=!0){this.setFast(t,e),this._version++}setFast(t,e){e?this._data[Math.floor(t/32)]|=1<<(31&t):this._data[Math.floor(t/32)]&=~(1<<(31&t))}setTrue(t){this._data[Math.floor(t/32)]|=1<<(31&t)}setFalse(t){this._data[Math.floor(t/32)]&=~(1<<(31&t))}trueCount(){return this.countBits(!0)}falseCount(){return this.countBits(!1)}countBits(t){if(0==this._length)return 0;if(this._selectedCountVersion!=this._version){this._selectedCount=0;const t=this.lengthInInts;let e=0;for(;e<t-1;e++)for(let t=this._data[e];0!=t;t>>>=8)this._selectedCount+=r._onBitCount[255&t];let n=this._data[e];const s=31&this._length;for(0!=s&&(n&=~(4294967295<<s));0!=n;n>>>=8)this._selectedCount+=r._onBitCount[255&n];this._selectedCountVersion=this._version}return t?this._selectedCount:this._length-this._selectedCount}countWhere(t){let e=0;if(this.trueCount()==this._length)for(let n=0;n<this._length;n++)e+=t(n)?1:0;else for(let n=-1;-1!=(n=this.findNext(n,!0));)e+=t(n)?1:0;return e}andWithCountBits(t,e){if(0==this._length)return 0;let n=0;const s=this.lengthInInts;let h=0;for(;h<s-1;h++)for(let e=this._data[h]&t._data[h];0!=e;e>>>=8)n+=r._onBitCount[255&e];let i=this._data[h]&t._data[h];const o=31&this._length;for(0!=o&&(i&=~(4294967295<<o));0!=i;i>>>=8)n+=r._onBitCount[255&i];return e?n:this._length-n}clear(){this.setLength(0)}contains(t){return this.findNext(-1,t)>=0}get allTrue(){return this.countBits(!0)==this._length}get allFalse(){return this.countBits(!1)==this._length}get anyTrue(){return this.countBits(!0)>0}get anyFalse(){return this.countBits(!1)>0}findNext(t,e=!0){if(this.assureInRange(t,-1,this._length,"index"),t>=this._length-1)return-1;let n=31&(t=t<0?0:t+1);const s=this.lengthInInts;for(let h=Math.floor(t/32);h<s;h++){let s=e?this._data[h]:~this._data[h];if(0!=n)s&=4294967295<<n&4294967295,n=0;else if(!e&&-4294967296==s)continue;for(let e=0;0!=s;e+=8,s>>>=8){const n=r._firstOnBit[255&s];if(n>=0)return(t=n+32*h+e)>=this._length?-1:t}}return-1}findPrev(t,e=!0){if(0==t)return-1;this.assureInRange(t,-1,this._length,"index");let n=1+(t=t<0?this._length-1:t-1)&31;for(let s=Math.floor(t/32);s>=0;s--){let t=e?this._data[s]:~this._data[s];0!=n&&(t&=~(4294967295<<n),n=0);for(let e=24;0!=t;e-=8,t<<=8){const n=r._lastOnBit[t>>>24];if(n>=0)return n+32*s+e}}return-1}}r._onBitCount=Int8Array.from([0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]),r._firstOnBit=Int8Array.from([-1,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0]),r._lastOnBit=Int8Array.from([-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7])},1811:(t,e,n)=>{n.d(e,{T:()=>s});const r=new Uint32Array(65536),s=(t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return 0===e.length?t.length:t.length<=32?((t,e)=>{const n=t.length,s=e.length,h=1<<n-1;let i=-1,o=0,a=n,l=n;for(;l--;)r[t.charCodeAt(l)]|=1<<l;for(l=0;l<s;l++){let t=r[e.charCodeAt(l)];const n=t|o;t|=(t&i)+i^i,o|=~(t|i),i&=t,o&h&&a++,i&h&&a--,o=o<<1|1,i=i<<1|~(n|o),o&=n}for(l=n;l--;)r[t.charCodeAt(l)]=0;return a})(t,e):((t,e)=>{const n=e.length,s=t.length,h=[],i=[],o=Math.ceil(n/32),a=Math.ceil(s/32);for(let t=0;t<o;t++)i[t]=-1,h[t]=0;let l=0;for(;l<a-1;l++){let o=0,a=-1;const g=32*l,f=Math.min(32,s)+g;for(let e=g;e<f;e++)r[t.charCodeAt(e)]|=1<<e;for(let t=0;t<n;t++){const n=r[e.charCodeAt(t)],s=i[t/32|0]>>>t&1,l=h[t/32|0]>>>t&1,g=n|o,f=((n|l)&a)+a^a|n|l;let _=o|~(f|a),c=a&f;_>>>31^s&&(i[t/32|0]^=1<<t),c>>>31^l&&(h[t/32|0]^=1<<t),_=_<<1|s,c=c<<1|l,a=c|~(g|_),o=_&g}for(let e=g;e<f;e++)r[t.charCodeAt(e)]=0}let g=0,f=-1;const _=32*l,c=Math.min(32,s-_)+_;for(let e=_;e<c;e++)r[t.charCodeAt(e)]|=1<<e;let u=s;for(let t=0;t<n;t++){const n=r[e.charCodeAt(t)],o=i[t/32|0]>>>t&1,a=h[t/32|0]>>>t&1,l=n|g,_=((n|a)&f)+f^f|n|a;let c=g|~(_|f),d=f&_;u+=c>>>s-1&1,u-=d>>>s-1&1,c>>>31^o&&(i[t/32|0]^=1<<t),d>>>31^a&&(h[t/32|0]^=1<<t),c=c<<1|o,d=d<<1|a,f=d|~(l|c),g=c&l}for(let e=_;e<c;e++)r[t.charCodeAt(e)]=0;return u})(t,e)}},3979:(t,e)=>{e.H$=void 0,e.H$=function(t,e,n){var r=function(t,e,n){if(0===t.length||0===e.length)return 0;if(n&&!n.caseSensitive&&(t=t.toUpperCase(),e=e.toUpperCase()),t===e)return 1;for(var r=0,s=t.length,h=e.length,i=Math.floor(Math.max(s,h)/2)-1,o=new Array(s),a=new Array(h),l=0;l<s;l++)for(var g=Math.max(0,l-i);g<=Math.min(h,l+i+1);g++)if(!o[l]&&!a[g]&&t[l]===e[g]){++r,o[l]=a[g]=!0;break}if(0===r)return 0;var f=0,_=0;for(l=0;l<s;l++)if(o[l]){for(;!a[_];)_++;t.charAt(l)!==e.charAt(_++)&&f++}return(r/s+r/h+(r-(f/=2))/r)/3}(t,e,n),s=0;if(r>.7){for(var h=Math.min(t.length,e.length),i=0;t[i]===e[i]&&i<4&&i<h;)++s,i++;r+=.1*s*(1-r)}return r}}}]);
|
|
2
|
-
//# sourceMappingURL=378.js.map
|