@datagrok/bio 2.14.2 → 2.15.0

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 (77) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/css/monomer-manager.css +66 -0
  3. package/detectors.js +7 -2
  4. package/dist/111.js +1 -1
  5. package/dist/111.js.map +1 -1
  6. package/dist/234.js +1 -1
  7. package/dist/234.js.map +1 -1
  8. package/dist/242.js.map +1 -1
  9. package/dist/603.js +1 -1
  10. package/dist/603.js.map +1 -1
  11. package/dist/682.js +1 -1
  12. package/dist/682.js.map +1 -1
  13. package/dist/705.js +1 -1
  14. package/dist/705.js.map +1 -1
  15. package/dist/778.js +1 -1
  16. package/dist/778.js.map +1 -1
  17. package/dist/793.js +1 -1
  18. package/dist/793.js.map +1 -1
  19. package/dist/801.js +2 -0
  20. package/dist/801.js.map +1 -0
  21. package/dist/950.js +1 -1
  22. package/dist/950.js.map +1 -1
  23. package/dist/980.js +2 -0
  24. package/dist/980.js.map +1 -0
  25. package/dist/package-test.js +6 -6
  26. package/dist/package-test.js.map +1 -1
  27. package/dist/package.js +5 -5
  28. package/dist/package.js.map +1 -1
  29. package/files/monomer-libraries/polytool-lib.json +48 -0
  30. package/files/monomer-libraries/sample-lib-Aca-colored.json +2 -2
  31. package/package.json +20 -12
  32. package/src/analysis/sequence-space.ts +2 -1
  33. package/src/demo/bio05-helm-msa-sequence-space.ts +1 -1
  34. package/src/package-test.ts +3 -1
  35. package/src/package-types.ts +9 -1
  36. package/src/package.ts +77 -33
  37. package/src/seq_align.ts +1 -1
  38. package/src/substructure-search/substructure-search.ts +2 -2
  39. package/src/tests/WebLogo-project-tests.ts +3 -4
  40. package/src/tests/activity-cliffs-tests.ts +5 -18
  41. package/src/tests/detectors-benchmark-tests.ts +24 -9
  42. package/src/tests/mm-distance-tests.ts +4 -3
  43. package/src/tests/monomer-libraries-tests.ts +3 -3
  44. package/src/tests/seq-handler-get-helm-tests.ts +88 -0
  45. package/src/tests/sequence-space-test.ts +4 -3
  46. package/src/tests/to-atomic-level-tests.ts +2 -0
  47. package/src/tests/to-atomic-level-ui-tests.ts +74 -0
  48. package/src/utils/cell-renderer.ts +3 -0
  49. package/src/utils/convert.ts +2 -2
  50. package/src/utils/cyclized.ts +20 -1
  51. package/src/utils/dimerized.ts +12 -0
  52. package/src/utils/get-region-func-editor.ts +1 -1
  53. package/src/utils/helm-to-molfile/converter/converter.ts +58 -30
  54. package/src/utils/helm-to-molfile/converter/mol-atoms.ts +2 -0
  55. package/src/utils/helm-to-molfile/converter/mol-bonds.ts +2 -0
  56. package/src/utils/helm-to-molfile/converter/mol-wrapper.ts +5 -1
  57. package/src/utils/helm-to-molfile/converter/monomer-wrapper.ts +7 -3
  58. package/src/utils/helm-to-molfile/converter/polymer.ts +21 -6
  59. package/src/utils/helm-to-molfile/converter/types.ts +11 -0
  60. package/src/utils/helm-to-molfile/utils.ts +11 -15
  61. package/src/utils/monomer-lib/lib-manager.ts +15 -1
  62. package/src/utils/monomer-lib/library-file-manager/file-manager.ts +1 -1
  63. package/src/utils/monomer-lib/library-file-manager/file-validator.ts +8 -0
  64. package/src/utils/monomer-lib/library-file-manager/ui.ts +150 -3
  65. package/src/utils/monomer-lib/monomer-lib.ts +59 -21
  66. package/src/utils/monomer-lib/monomer-manager/duplicate-monomer-manager.ts +155 -0
  67. package/src/utils/monomer-lib/monomer-manager/monomer-manager.ts +924 -0
  68. package/src/utils/multiple-sequence-alignment-ui.ts +3 -3
  69. package/src/utils/seq-helper/index.ts +1 -0
  70. package/src/utils/seq-helper/seq-helper.ts +131 -0
  71. package/src/utils/sequence-to-mol.ts +47 -18
  72. package/src/widgets/bio-substructure-filter.ts +9 -7
  73. package/src/widgets/package-settings-editor-widget.ts +6 -6
  74. package/src/widgets/representations.ts +12 -12
  75. package/dist/449.js +0 -2
  76. package/dist/449.js.map +0 -1
  77. /package/src/tests/{seq-handler-get-region.ts → seq-handler-get-region-tests.ts} +0 -0
package/dist/793.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"793.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/distance-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(242),\n\t\t__webpack_require__.e(589)\n\t]).then(next);\n};","import { DistanceAggregationMethods } from './types';\nexport const isNil = (x) => x === null || x === undefined;\nexport function insertSmaller(distancesAr, indexes, num, index) {\n if (num > distancesAr[distancesAr.length - 1])\n return;\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 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 getAggregationFunction(aggregationMethod, weights) {\n switch (aggregationMethod) {\n case DistanceAggregationMethods.MANHATTAN:\n return (vs) => vs.reduce((acc, val, idx) => acc + val * weights[idx], 0);\n default:\n return (vs) => {\n // euclidean\n const sum = vs.reduce((acc, val, idx) => acc + (val * weights[idx]) ** 2, 0);\n return Math.sqrt(sum);\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLDBCQUEwQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDO0FBRS9ELE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBcUIsRUFBRSxPQUFpQixFQUFFLEdBQVcsRUFBRSxLQUFhO0lBQ2hHLElBQUksR0FBRyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQztRQUN6QyxPQUFPO0lBRVQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNsQixXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFdBQXFCLEVBQUUsT0FBaUIsRUFBRSxHQUFXLEVBQUUsS0FBYTtJQUMvRixJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7UUFDekMsT0FBTztJQUVULE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbEIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxpQkFBNEMsRUFBRSxPQUFpQjtJQUUvRCxRQUFRLGlCQUFpQixFQUFFLENBQUM7UUFDMUIsS0FBSywwQkFBMEIsQ0FBQyxTQUFTO1lBQ3ZDLE9BQU8sQ0FBQyxFQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckY7WUFDRSxPQUFPLENBQUMsRUFBWSxFQUFFLEVBQUU7Z0JBQ3RCLFlBQVk7Z0JBQ1osTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Rpc3RhbmNlQWdncmVnYXRpb25NZXRob2QsIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzTmlsID0gKHg6IGFueSkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRTbWFsbGVyKGRpc3RhbmNlc0FyOiBudW1iZXJbXSwgaW5kZXhlczogbnVtYmVyW10sIG51bTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gIGlmIChudW0gPiBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGgtMV0pXG4gICAgcmV0dXJuO1xuXG4gIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgZGlzdGFuY2VzQXIucG9wKCk7XG4gIGRpc3RhbmNlc0FyLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgbnVtKTtcbiAgaW5kZXhlcy5wb3AoKTtcbiAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExhcmdlcihkaXN0YW5jZXNBcjogbnVtYmVyW10sIGluZGV4ZXM6IG51bWJlcltdLCBudW06IG51bWJlciwgaW5kZXg6IG51bWJlcikge1xuICBpZiAobnVtIDwgZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoLTFdKVxuICAgIHJldHVybjtcblxuICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtID4gdik7XG4gIGRpc3RhbmNlc0FyLnBvcCgpO1xuICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gIGluZGV4ZXMucG9wKCk7XG4gIGluZGV4ZXMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpbmRleCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uKFxuICBhZ2dyZWdhdGlvbk1ldGhvZDogRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0czogbnVtYmVyW11cbik6ICh2YWx1ZXM6IG51bWJlcltdKSA9PiBudW1iZXIge1xuICBzd2l0Y2ggKGFnZ3JlZ2F0aW9uTWV0aG9kKSB7XG4gICAgY2FzZSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5NQU5IQVRUQU46XG4gICAgICByZXR1cm4gKHZzOiBudW1iZXJbXSkgPT4gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyB2YWwgKiB3ZWlnaHRzW2lkeF0sIDApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gKHZzOiBudW1iZXJbXSkgPT4ge1xuICAgICAgICAvLyBldWNsaWRlYW5cbiAgICAgICAgY29uc3Qgc3VtID0gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyAodmFsICogd2VpZ2h0c1tpZHhdKSAqKiAyLCAwKTtcbiAgICAgICAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xuICAgICAgfTtcbiAgfVxufVxuIl19","import { getAggregationFunction, isNil } from './utils';\nimport { Measure, isBitArrayMetric } from '../typed-metrics';\nimport BitArray from '@datagrok-libraries/utils/src/bit-array';\nonmessage = (event) => {\n const { values, fnNames, startRow, startCol, chunckSize, opts, weights, aggregationMethod } = event.data;\n const data = {};\n try {\n // if (startRow != -1)\n // throw new Error('Error in distance matrix worker'); // TODO: remove this line\n let i = startRow;\n let j = startCol;\n let cnt = 0;\n let lmin = 0;\n let lmax = Number.MIN_VALUE;\n const aggregate = getAggregationFunction(aggregationMethod, weights);\n values.forEach((v, colIdx) => {\n if (isBitArrayMetric(fnNames[colIdx])) {\n for (let mi = 0; mi < v.length; ++mi) {\n if (isNil(v[mi]))\n continue;\n values[colIdx][mi] = new BitArray(values[colIdx][mi]._data, values[colIdx][mi]._length);\n }\n }\n });\n const distanceFns = new Array(fnNames.length)\n .fill(null)\n .map((_, di) => new Measure(fnNames[di]).getMeasure(opts[di]));\n const retVal = new Float32Array(chunckSize);\n while (cnt < chunckSize) {\n const distanceValues = distanceFns.map((fn, idx) => !isNil(values[idx][i]) && !isNil(values[idx][j]) ?\n fn(values[idx][i], values[idx][j]) : 1);\n const value = distanceValues.length === 1 ? distanceValues[0] : aggregate(distanceValues);\n retVal[cnt] = value;\n if (value < lmin)\n lmin = value;\n if (value > lmax)\n lmax = value;\n cnt++;\n j++;\n if (j === values[0].length) {\n i++;\n j = i + 1;\n }\n }\n data.distanceMatrixData = retVal;\n data.min = lmin;\n data.max = lmax;\n }\n catch (e) {\n data.error = e;\n }\n postMessage(data);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdGFuY2UtbWF0cml4LXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpc3RhbmNlLW1hdHJpeC13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUN0RCxPQUFPLEVBQWUsT0FBTyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxRQUFRLE1BQU0seUNBQXlDLENBQUM7QUFHL0QsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDcEIsTUFBTSxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBQyxHQUdyRixLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ2YsTUFBTSxJQUFJLEdBQWtGLEVBQUUsQ0FBQztJQUMvRixJQUFJLENBQUM7UUFDSCxzQkFBc0I7UUFDdEIsa0ZBQWtGO1FBQ2xGLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDakIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUM1QixNQUFNLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNCLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDckMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUFFLFNBQVM7b0JBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUYsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7YUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sR0FBRyxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDMUYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLEtBQUssR0FBRyxJQUFJO2dCQUNkLElBQUksR0FBRyxLQUFLLENBQUM7WUFDZixJQUFJLEtBQUssR0FBRyxJQUFJO2dCQUNkLElBQUksR0FBRyxLQUFLLENBQUM7WUFDZixHQUFHLEVBQUUsQ0FBQztZQUNOLENBQUMsRUFBRSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMzQixDQUFDLEVBQUUsQ0FBQztnQkFDSixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNaLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztRQUNqQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztJQUNsQixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uLCBpc05pbH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge0tub3duTWV0cmljcywgTWVhc3VyZSwgaXNCaXRBcnJheU1ldHJpY30gZnJvbSAnLi4vdHlwZWQtbWV0cmljcyc7XG5pbXBvcnQgQml0QXJyYXkgZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvYml0LWFycmF5JztcbmltcG9ydCB7RGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZH0gZnJvbSAnLi90eXBlcyc7XG5cbm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICBjb25zdCB7dmFsdWVzLCBmbk5hbWVzLCBzdGFydFJvdywgc3RhcnRDb2wsIGNodW5ja1NpemUsIG9wdHMsIHdlaWdodHMsIGFnZ3JlZ2F0aW9uTWV0aG9kfToge1xuICAgIHZhbHVlczogYW55W11bXSwgZm5OYW1lczogS25vd25NZXRyaWNzW10sIHN0YXJ0Um93OiBudW1iZXIsIHN0YXJ0Q29sOiBudW1iZXIsIGNodW5ja1NpemU6IG51bWJlcixcbiAgICBvcHRzOiB7W186IHN0cmluZ106IGFueX1bXSwgd2VpZ2h0czogbnVtYmVyW10sIGFnZ3JlZ2F0aW9uTWV0aG9kOiBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kLFxuICB9ID0gZXZlbnQuZGF0YTtcbiAgY29uc3QgZGF0YTogeyBlcnJvcj86IGFueSwgZGlzdGFuY2VNYXRyaXhEYXRhPzogRmxvYXQzMkFycmF5LCBtaW4/OiBudW1iZXIsIG1heD86IG51bWJlcn0gPSB7fTtcbiAgdHJ5IHtcbiAgICAvLyBpZiAoc3RhcnRSb3cgIT0gLTEpXG4gICAgLy8gICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGluIGRpc3RhbmNlIG1hdHJpeCB3b3JrZXInKTsgLy8gVE9ETzogcmVtb3ZlIHRoaXMgbGluZVxuICAgIGxldCBpID0gc3RhcnRSb3c7XG4gICAgbGV0IGogPSBzdGFydENvbDtcbiAgICBsZXQgY250ID0gMDtcbiAgICBsZXQgbG1pbiA9IDA7XG4gICAgbGV0IGxtYXggPSBOdW1iZXIuTUlOX1ZBTFVFO1xuICAgIGNvbnN0IGFnZ3JlZ2F0ZSA9IGdldEFnZ3JlZ2F0aW9uRnVuY3Rpb24oYWdncmVnYXRpb25NZXRob2QsIHdlaWdodHMpO1xuICAgIHZhbHVlcy5mb3JFYWNoKCh2LCBjb2xJZHgpID0+IHtcbiAgICAgIGlmIChpc0JpdEFycmF5TWV0cmljKGZuTmFtZXNbY29sSWR4XSkpIHtcbiAgICAgICAgZm9yIChsZXQgbWkgPSAwOyBtaSA8IHYubGVuZ3RoOyArK21pKSB7XG4gICAgICAgICAgaWYgKGlzTmlsKHZbbWldKSkgY29udGludWU7XG4gICAgICAgICAgdmFsdWVzW2NvbElkeF1bbWldID0gbmV3IEJpdEFycmF5KHZhbHVlc1tjb2xJZHhdW21pXS5fZGF0YSwgdmFsdWVzW2NvbElkeF1bbWldLl9sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgZGlzdGFuY2VGbnMgPSBuZXcgQXJyYXkoZm5OYW1lcy5sZW5ndGgpXG4gICAgICAuZmlsbChudWxsKVxuICAgICAgLm1hcCgoXywgZGkpID0+IG5ldyBNZWFzdXJlKGZuTmFtZXNbZGldKS5nZXRNZWFzdXJlKG9wdHNbZGldKSk7XG4gICAgY29uc3QgcmV0VmFsID0gbmV3IEZsb2F0MzJBcnJheShjaHVuY2tTaXplKTtcbiAgICB3aGlsZSAoY250IDwgY2h1bmNrU2l6ZSkge1xuICAgICAgY29uc3QgZGlzdGFuY2VWYWx1ZXMgPSBkaXN0YW5jZUZucy5tYXAoKGZuLCBpZHgpID0+ICFpc05pbCh2YWx1ZXNbaWR4XVtpXSkgJiYgIWlzTmlsKHZhbHVlc1tpZHhdW2pdKSA/XG4gICAgICAgIGZuKHZhbHVlc1tpZHhdW2ldLCB2YWx1ZXNbaWR4XVtqXSkgOiAxKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gZGlzdGFuY2VWYWx1ZXMubGVuZ3RoID09PSAxID8gZGlzdGFuY2VWYWx1ZXNbMF0gOiBhZ2dyZWdhdGUoZGlzdGFuY2VWYWx1ZXMpO1xuICAgICAgcmV0VmFsW2NudF0gPSB2YWx1ZTtcbiAgICAgIGlmICh2YWx1ZSA8IGxtaW4pXG4gICAgICAgIGxtaW4gPSB2YWx1ZTtcbiAgICAgIGlmICh2YWx1ZSA+IGxtYXgpXG4gICAgICAgIGxtYXggPSB2YWx1ZTtcbiAgICAgIGNudCsrO1xuICAgICAgaisrO1xuICAgICAgaWYgKGogPT09IHZhbHVlc1swXS5sZW5ndGgpIHtcbiAgICAgICAgaSsrO1xuICAgICAgICBqID0gaSArIDE7XG4gICAgICB9XG4gICAgfVxuICAgIGRhdGEuZGlzdGFuY2VNYXRyaXhEYXRhID0gcmV0VmFsO1xuICAgIGRhdGEubWluID0gbG1pbjtcbiAgICBkYXRhLm1heCA9IGxtYXg7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkYXRhLmVycm9yID0gZTtcbiAgfVxuICBwb3N0TWVzc2FnZShkYXRhKTtcbn07XG4iXX0=","// 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, [242,589], () => (__webpack_require__(2793)))\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 || !/^http(s?):/.test(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\t793: 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","event","values","fnNames","startRow","startCol","chunckSize","opts","weights","aggregationMethod","data","i","j","cnt","lmin","lmax","Number","MIN_VALUE","aggregate","MANHATTAN","vs","reduce","acc","val","idx","sum","Math","sqrt","getAggregationFunction","forEach","v","colIdx","mi","length","_data","_length","distanceFns","Array","fill","map","_","di","getMeasure","retVal","Float32Array","distanceValues","fn","value","distanceMatrixData","min","max","e","error","postMessage","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","__webpack_exports__","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","f","chunkId","Promise","all","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","test","Error","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","push","bind","moreModules","runtime","pop","then"],"sourceRoot":""}
1
+ {"version":3,"file":"793.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/distance-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(242),\n\t\t__webpack_require__.e(589)\n\t]).then(next);\n};","import { DistanceAggregationMethods } from './types';\nexport const isNil = (x) => x === null || x === undefined;\nexport function insertSmaller(distancesAr, indexes, num, index) {\n if (num > distancesAr[distancesAr.length - 1])\n return;\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 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 getAggregationFunction(aggregationMethod, weights) {\n switch (aggregationMethod) {\n case DistanceAggregationMethods.MANHATTAN:\n return (vs) => vs.reduce((acc, val, idx) => acc + val * weights[idx], 0);\n default:\n return (vs) => {\n // euclidean\n const sum = vs.reduce((acc, val, idx) => acc + (val * weights[idx]) ** 2, 0);\n return Math.sqrt(sum);\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLDBCQUEwQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDO0FBRS9ELE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBcUIsRUFBRSxPQUFpQixFQUFFLEdBQVcsRUFBRSxLQUFhO0lBQ2hHLElBQUksR0FBRyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQztRQUN6QyxPQUFPO0lBRVQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNsQixXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFdBQXFCLEVBQUUsT0FBaUIsRUFBRSxHQUFXLEVBQUUsS0FBYTtJQUMvRixJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7UUFDekMsT0FBTztJQUVULE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbEIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxpQkFBNEMsRUFBRSxPQUFpQjtJQUUvRCxRQUFRLGlCQUFpQixFQUFFLENBQUM7UUFDMUIsS0FBSywwQkFBMEIsQ0FBQyxTQUFTO1lBQ3ZDLE9BQU8sQ0FBQyxFQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckY7WUFDRSxPQUFPLENBQUMsRUFBWSxFQUFFLEVBQUU7Z0JBQ3RCLFlBQVk7Z0JBQ1osTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Rpc3RhbmNlQWdncmVnYXRpb25NZXRob2QsIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzTmlsID0gKHg6IGFueSkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRTbWFsbGVyKGRpc3RhbmNlc0FyOiBudW1iZXJbXSwgaW5kZXhlczogbnVtYmVyW10sIG51bTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gIGlmIChudW0gPiBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGgtMV0pXG4gICAgcmV0dXJuO1xuXG4gIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgZGlzdGFuY2VzQXIucG9wKCk7XG4gIGRpc3RhbmNlc0FyLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgbnVtKTtcbiAgaW5kZXhlcy5wb3AoKTtcbiAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExhcmdlcihkaXN0YW5jZXNBcjogbnVtYmVyW10sIGluZGV4ZXM6IG51bWJlcltdLCBudW06IG51bWJlciwgaW5kZXg6IG51bWJlcikge1xuICBpZiAobnVtIDwgZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoLTFdKVxuICAgIHJldHVybjtcblxuICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtID4gdik7XG4gIGRpc3RhbmNlc0FyLnBvcCgpO1xuICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gIGluZGV4ZXMucG9wKCk7XG4gIGluZGV4ZXMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpbmRleCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uKFxuICBhZ2dyZWdhdGlvbk1ldGhvZDogRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0czogbnVtYmVyW11cbik6ICh2YWx1ZXM6IG51bWJlcltdKSA9PiBudW1iZXIge1xuICBzd2l0Y2ggKGFnZ3JlZ2F0aW9uTWV0aG9kKSB7XG4gICAgY2FzZSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5NQU5IQVRUQU46XG4gICAgICByZXR1cm4gKHZzOiBudW1iZXJbXSkgPT4gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyB2YWwgKiB3ZWlnaHRzW2lkeF0sIDApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gKHZzOiBudW1iZXJbXSkgPT4ge1xuICAgICAgICAvLyBldWNsaWRlYW5cbiAgICAgICAgY29uc3Qgc3VtID0gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyAodmFsICogd2VpZ2h0c1tpZHhdKSAqKiAyLCAwKTtcbiAgICAgICAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xuICAgICAgfTtcbiAgfVxufVxuIl19","import { getAggregationFunction, isNil } from './utils';\nimport { Measure, isBitArrayMetric } from '../typed-metrics';\nimport BitArray from '@datagrok-libraries/utils/src/bit-array';\nonmessage = (event) => {\n const { values, fnNames, startRow, startCol, chunckSize, opts, weights, aggregationMethod } = event.data;\n const data = {};\n try {\n let i = startRow;\n let j = startCol;\n let cnt = 0;\n let lmin = 0;\n let lmax = Number.MIN_VALUE;\n const aggregate = getAggregationFunction(aggregationMethod, weights);\n values.forEach((v, colIdx) => {\n if (isBitArrayMetric(fnNames[colIdx])) {\n for (let mi = 0; mi < v.length; ++mi) {\n if (isNil(v[mi]))\n continue;\n values[colIdx][mi] = new BitArray(values[colIdx][mi]._data, values[colIdx][mi]._length);\n }\n }\n });\n const distanceFns = new Array(fnNames.length)\n .fill(null)\n .map((_, di) => new Measure(fnNames[di]).getMeasure(opts[di]));\n const retVal = new Float32Array(chunckSize);\n while (cnt < chunckSize) {\n const distanceValues = distanceFns.map((fn, idx) => !isNil(values[idx][i]) && !isNil(values[idx][j]) ?\n fn(values[idx][i], values[idx][j]) : 1);\n const value = distanceValues.length === 1 ? distanceValues[0] : aggregate(distanceValues);\n retVal[cnt] = value;\n if (value < lmin)\n lmin = value;\n if (value > lmax)\n lmax = value;\n cnt++;\n j++;\n if (j === values[0].length) {\n i++;\n j = i + 1;\n }\n }\n data.distanceMatrixData = retVal;\n data.min = lmin;\n data.max = lmax;\n }\n catch (e) {\n data.error = e;\n }\n postMessage(data);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdGFuY2UtbWF0cml4LXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpc3RhbmNlLW1hdHJpeC13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHNCQUFzQixFQUFFLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUN0RCxPQUFPLEVBQWUsT0FBTyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxRQUFRLE1BQU0seUNBQXlDLENBQUM7QUFHL0QsU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDcEIsTUFBTSxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBQyxHQUdyRixLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ2YsTUFBTSxJQUFJLEdBQWtGLEVBQUUsQ0FBQztJQUMvRixJQUFJLENBQUM7UUFDSCxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ2pCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDNUIsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUMzQixJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLEtBQUssSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7b0JBQ3JDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFBRSxTQUFTO29CQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzFGLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO2FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxPQUFPLEdBQUcsR0FBRyxVQUFVLEVBQUUsQ0FBQztZQUN4QixNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFGLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxLQUFLLEdBQUcsSUFBSTtnQkFDZCxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ2YsSUFBSSxLQUFLLEdBQUcsSUFBSTtnQkFDZCxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ2YsR0FBRyxFQUFFLENBQUM7WUFDTixDQUFDLEVBQUUsQ0FBQztZQUNKLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDM0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ0osQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDWixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7SUFDbEIsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z2V0QWdncmVnYXRpb25GdW5jdGlvbiwgaXNOaWx9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtLbm93bk1ldHJpY3MsIE1lYXN1cmUsIGlzQml0QXJyYXlNZXRyaWN9IGZyb20gJy4uL3R5cGVkLW1ldHJpY3MnO1xuaW1wb3J0IEJpdEFycmF5IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2JpdC1hcnJheSc7XG5pbXBvcnQge0Rpc3RhbmNlQWdncmVnYXRpb25NZXRob2R9IGZyb20gJy4vdHlwZXMnO1xuXG5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHtcbiAgY29uc3Qge3ZhbHVlcywgZm5OYW1lcywgc3RhcnRSb3csIHN0YXJ0Q29sLCBjaHVuY2tTaXplLCBvcHRzLCB3ZWlnaHRzLCBhZ2dyZWdhdGlvbk1ldGhvZH06IHtcbiAgICB2YWx1ZXM6IGFueVtdW10sIGZuTmFtZXM6IEtub3duTWV0cmljc1tdLCBzdGFydFJvdzogbnVtYmVyLCBzdGFydENvbDogbnVtYmVyLCBjaHVuY2tTaXplOiBudW1iZXIsXG4gICAgb3B0czoge1tfOiBzdHJpbmddOiBhbnl9W10sIHdlaWdodHM6IG51bWJlcltdLCBhZ2dyZWdhdGlvbk1ldGhvZDogRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZCxcbiAgfSA9IGV2ZW50LmRhdGE7XG4gIGNvbnN0IGRhdGE6IHsgZXJyb3I/OiBhbnksIGRpc3RhbmNlTWF0cml4RGF0YT86IEZsb2F0MzJBcnJheSwgbWluPzogbnVtYmVyLCBtYXg/OiBudW1iZXJ9ID0ge307XG4gIHRyeSB7XG4gICAgbGV0IGkgPSBzdGFydFJvdztcbiAgICBsZXQgaiA9IHN0YXJ0Q29sO1xuICAgIGxldCBjbnQgPSAwO1xuICAgIGxldCBsbWluID0gMDtcbiAgICBsZXQgbG1heCA9IE51bWJlci5NSU5fVkFMVUU7XG4gICAgY29uc3QgYWdncmVnYXRlID0gZ2V0QWdncmVnYXRpb25GdW5jdGlvbihhZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0cyk7XG4gICAgdmFsdWVzLmZvckVhY2goKHYsIGNvbElkeCkgPT4ge1xuICAgICAgaWYgKGlzQml0QXJyYXlNZXRyaWMoZm5OYW1lc1tjb2xJZHhdKSkge1xuICAgICAgICBmb3IgKGxldCBtaSA9IDA7IG1pIDwgdi5sZW5ndGg7ICsrbWkpIHtcbiAgICAgICAgICBpZiAoaXNOaWwodlttaV0pKSBjb250aW51ZTtcbiAgICAgICAgICB2YWx1ZXNbY29sSWR4XVttaV0gPSBuZXcgQml0QXJyYXkodmFsdWVzW2NvbElkeF1bbWldLl9kYXRhLCB2YWx1ZXNbY29sSWR4XVttaV0uX2xlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBkaXN0YW5jZUZucyA9IG5ldyBBcnJheShmbk5hbWVzLmxlbmd0aClcbiAgICAgIC5maWxsKG51bGwpXG4gICAgICAubWFwKChfLCBkaSkgPT4gbmV3IE1lYXN1cmUoZm5OYW1lc1tkaV0pLmdldE1lYXN1cmUob3B0c1tkaV0pKTtcbiAgICBjb25zdCByZXRWYWwgPSBuZXcgRmxvYXQzMkFycmF5KGNodW5ja1NpemUpO1xuICAgIHdoaWxlIChjbnQgPCBjaHVuY2tTaXplKSB7XG4gICAgICBjb25zdCBkaXN0YW5jZVZhbHVlcyA9IGRpc3RhbmNlRm5zLm1hcCgoZm4sIGlkeCkgPT4gIWlzTmlsKHZhbHVlc1tpZHhdW2ldKSAmJiAhaXNOaWwodmFsdWVzW2lkeF1bal0pID9cbiAgICAgICAgZm4odmFsdWVzW2lkeF1baV0sIHZhbHVlc1tpZHhdW2pdKSA6IDEpO1xuICAgICAgY29uc3QgdmFsdWUgPSBkaXN0YW5jZVZhbHVlcy5sZW5ndGggPT09IDEgPyBkaXN0YW5jZVZhbHVlc1swXSA6IGFnZ3JlZ2F0ZShkaXN0YW5jZVZhbHVlcyk7XG4gICAgICByZXRWYWxbY250XSA9IHZhbHVlO1xuICAgICAgaWYgKHZhbHVlIDwgbG1pbilcbiAgICAgICAgbG1pbiA9IHZhbHVlO1xuICAgICAgaWYgKHZhbHVlID4gbG1heClcbiAgICAgICAgbG1heCA9IHZhbHVlO1xuICAgICAgY250Kys7XG4gICAgICBqKys7XG4gICAgICBpZiAoaiA9PT0gdmFsdWVzWzBdLmxlbmd0aCkge1xuICAgICAgICBpKys7XG4gICAgICAgIGogPSBpICsgMTtcbiAgICAgIH1cbiAgICB9XG4gICAgZGF0YS5kaXN0YW5jZU1hdHJpeERhdGEgPSByZXRWYWw7XG4gICAgZGF0YS5taW4gPSBsbWluO1xuICAgIGRhdGEubWF4ID0gbG1heDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGRhdGEuZXJyb3IgPSBlO1xuICB9XG4gIHBvc3RNZXNzYWdlKGRhdGEpO1xufTtcbiJdfQ==","// 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, [242,589], () => (__webpack_require__(2793)))\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 && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\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 || !/^http(s?):/.test(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\t793: 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","event","values","fnNames","startRow","startCol","chunckSize","opts","weights","aggregationMethod","data","i","j","cnt","lmin","lmax","Number","MIN_VALUE","aggregate","MANHATTAN","vs","reduce","acc","val","idx","sum","Math","sqrt","getAggregationFunction","forEach","v","colIdx","mi","length","_data","_length","distanceFns","Array","fill","map","_","di","getMeasure","retVal","Float32Array","distanceValues","fn","value","distanceMatrixData","min","max","e","error","postMessage","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","__webpack_exports__","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","f","chunkId","Promise","all","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","tagName","toUpperCase","src","scripts","getElementsByTagName","test","Error","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","push","bind","moreModules","runtime","pop","then"],"sourceRoot":""}
package/dist/801.js ADDED
@@ -0,0 +1,2 @@
1
+ var bio;(()=>{"use strict";const t=new Map;onmessage=s=>{if(s.data.is){const{is:e,js:o,ds:n}=s.data;for(let s=0;s<e.length;s++)t.has(e[s])||t.set(e[s],new Map),t.get(e[s]).set(o[s],n[s]);return void postMessage("ready")}const{blockStart:e,blockEnd:o}=s.data,n=[],a=[],r=[];for(let s=e;s<o;s++){const e=t.get(s);if(!e)continue;const o=Array.from(e.entries());for(const[e,i]of o){let i=0;for(const[s,n]of o){const o=t.get(s)?.get(e);o&&(i+=n*o)}n.push(s),a.push(e),r.push(i)}}postMessage({i:new Uint32Array(n),j:new Uint32Array(a),distance:new Float32Array(r)})},bio={}})();
2
+ //# sourceMappingURL=801.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"801.js","mappings":"2BACA,MAAMA,EAAiB,IAAIC,IAC3BC,UAAaC,IAET,GAAIA,EAAEC,KAAKC,GAAI,CACX,MAAM,GAAEA,EAAE,GAAEC,EAAE,GAAEC,GAAOJ,EAAEC,KACzB,IAAK,IAAII,EAAI,EAAGA,EAAIH,EAAGI,OAAQD,IACtBR,EAAeU,IAAIL,EAAGG,KACvBR,EAAeW,IAAIN,EAAGG,GAAI,IAAIP,KAClCD,EAAeY,IAAIP,EAAGG,IAAIG,IAAIL,EAAGE,GAAID,EAAGC,IAG5C,YADAK,YAAY,QAEhB,CAEA,MAAM,WAAEC,EAAU,SAAEC,GAAaZ,EAAEC,KAC7BY,EAAO,GACPC,EAAO,GACPC,EAAO,GAKb,IAAK,IAAIV,EAAIM,EAAYN,EAAIO,EAAUP,IAAK,CACxC,MAAMW,EAAOnB,EAAeY,IAAIJ,GAChC,IAAKW,EACD,SAGJ,MAAMC,EAAcC,MAAMC,KAAKH,EAAKI,WACpC,IAAK,MAAOC,EAAGC,KAAOL,EAAa,CAC/B,IAAIM,EAAM,EAGV,IAAK,MAAOC,EAAIC,KAAOR,EAAa,CAEhC,MAAMS,EAAO7B,EAAeY,IAAIe,IAAKf,IAAIY,GACrCK,IACAH,GAAOE,EAAKC,EACpB,CACAb,EAAKc,KAAKtB,GACVS,EAAKa,KAAKN,GACVN,EAAKY,KAAKJ,EACd,CACJ,CACAb,YAAY,CAAEL,EAAG,IAAIuB,YAAYf,GAAOgB,EAAG,IAAID,YAAYd,GAAOgB,SAAU,IAAIC,aAAahB,IAAQ,E","sources":["webpack://bio/./node_modules/@datagrok-libraries/ml/src/MCL/mcl-sparse-matrix-mult-worker.js"],"sourcesContent":["\"use strict\";\nconst indexesMapRows = new Map();\nonmessage = (e) => {\n // init step for the worker\n if (e.data.is) {\n const { is, js, ds } = e.data;\n for (let i = 0; i < is.length; i++) {\n if (!indexesMapRows.has(is[i]))\n indexesMapRows.set(is[i], new Map());\n indexesMapRows.get(is[i]).set(js[i], ds[i]);\n }\n postMessage('ready');\n return;\n }\n // main step for the worker\n const { blockStart, blockEnd } = e.data;\n const resI = [];\n const resJ = [];\n const resD = [];\n // we do operations row by row\n // therefore, iterating over all columns is necessary\n // graphically speaking, one worker is working on a horizontal stripe in a matrix\n // blockstart and blockend are the indexes of the rows that the worker is responsible for\n for (let i = blockStart; i < blockEnd; i++) {\n const iMap = indexesMapRows.get(i);\n if (!iMap)\n continue;\n // this worker is responsible for every nonzero value in the row (or iMap)\n // since we are using iMap a lot, we can materialize it\n const iMapEntries = Array.from(iMap.entries());\n for (const [k, _v] of iMapEntries) {\n let sum = 0;\n // here we know that the value is not zero\n // therefore, we can iterate over the columns\n for (const [k1, v1] of iMapEntries) {\n // here we check the column\n const jVal = indexesMapRows.get(k1)?.get(k);\n if (jVal)\n sum += v1 * jVal;\n }\n resI.push(i);\n resJ.push(k);\n resD.push(sum);\n }\n }\n postMessage({ i: new Uint32Array(resI), j: new Uint32Array(resJ), distance: new Float32Array(resD) });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWNsLXNwYXJzZS1tYXRyaXgtbXVsdC13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtY2wtc3BhcnNlLW1hdHJpeC1tdWx0LXdvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7QUFFOUQsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDaEIsMkJBQTJCO0lBQzNCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNkLE1BQU0sRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFrQixDQUFDLENBQUM7WUFFdkQsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsT0FBTztJQUNULENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsTUFBTSxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsR0FBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUU3RCxNQUFNLElBQUksR0FBYSxFQUFFLENBQUM7SUFDMUIsTUFBTSxJQUFJLEdBQWEsRUFBRSxDQUFDO0lBQzFCLE1BQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQztJQUUxQiw4QkFBOEI7SUFDOUIscURBQXFEO0lBQ3JELGlGQUFpRjtJQUdqRix5RkFBeUY7SUFDekYsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzNDLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUk7WUFDUCxTQUFTO1FBRVgsMEVBQTBFO1FBQzFFLHVEQUF1RDtRQUN2RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNsQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDWiwwQ0FBMEM7WUFDMUMsNkNBQTZDO1lBQzdDLEtBQUssTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDbkMsMkJBQTJCO2dCQUMzQixNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxJQUFJO29CQUNOLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLENBQUM7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFHRCxXQUFXLENBQUMsRUFBQyxDQUFDLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDLENBQUM7QUFDdEcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmNvbnN0IGluZGV4ZXNNYXBSb3dzID0gbmV3IE1hcDxudW1iZXIsIE1hcDxudW1iZXIsIG51bWJlcj4+KCk7XG5cbm9ubWVzc2FnZSA9IChlKSA9PiB7XG4gIC8vIGluaXQgc3RlcCBmb3IgdGhlIHdvcmtlclxuICBpZiAoZS5kYXRhLmlzKSB7XG4gICAgY29uc3Qge2lzLCBqcywgZHN9ID0gZS5kYXRhO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICghaW5kZXhlc01hcFJvd3MuaGFzKGlzW2ldKSlcbiAgICAgICAgaW5kZXhlc01hcFJvd3Muc2V0KGlzW2ldLCBuZXcgTWFwPG51bWJlciwgbnVtYmVyPigpKTtcblxuICAgICAgaW5kZXhlc01hcFJvd3MuZ2V0KGlzW2ldKSEuc2V0KGpzW2ldLCBkc1tpXSk7XG4gICAgfVxuICAgIHBvc3RNZXNzYWdlKCdyZWFkeScpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIG1haW4gc3RlcCBmb3IgdGhlIHdvcmtlclxuICBjb25zdCB7YmxvY2tTdGFydCwgYmxvY2tFbmR9OiB7W186IHN0cmluZ106IG51bWJlcn0gPSBlLmRhdGE7XG5cbiAgY29uc3QgcmVzSTogbnVtYmVyW10gPSBbXTtcbiAgY29uc3QgcmVzSjogbnVtYmVyW10gPSBbXTtcbiAgY29uc3QgcmVzRDogbnVtYmVyW10gPSBbXTtcblxuICAvLyB3ZSBkbyBvcGVyYXRpb25zIHJvdyBieSByb3dcbiAgLy8gdGhlcmVmb3JlLCBpdGVyYXRpbmcgb3ZlciBhbGwgY29sdW1ucyBpcyBuZWNlc3NhcnlcbiAgLy8gZ3JhcGhpY2FsbHkgc3BlYWtpbmcsIG9uZSB3b3JrZXIgaXMgd29ya2luZyBvbiBhIGhvcml6b250YWwgc3RyaXBlIGluIGEgbWF0cml4XG5cblxuICAvLyBibG9ja3N0YXJ0IGFuZCBibG9ja2VuZCBhcmUgdGhlIGluZGV4ZXMgb2YgdGhlIHJvd3MgdGhhdCB0aGUgd29ya2VyIGlzIHJlc3BvbnNpYmxlIGZvclxuICBmb3IgKGxldCBpID0gYmxvY2tTdGFydDsgaSA8IGJsb2NrRW5kOyBpKyspIHtcbiAgICBjb25zdCBpTWFwID0gaW5kZXhlc01hcFJvd3MuZ2V0KGkpO1xuICAgIGlmICghaU1hcClcbiAgICAgIGNvbnRpbnVlO1xuXG4gICAgLy8gdGhpcyB3b3JrZXIgaXMgcmVzcG9uc2libGUgZm9yIGV2ZXJ5IG5vbnplcm8gdmFsdWUgaW4gdGhlIHJvdyAob3IgaU1hcClcbiAgICAvLyBzaW5jZSB3ZSBhcmUgdXNpbmcgaU1hcCBhIGxvdCwgd2UgY2FuIG1hdGVyaWFsaXplIGl0XG4gICAgY29uc3QgaU1hcEVudHJpZXMgPSBBcnJheS5mcm9tKGlNYXAuZW50cmllcygpKTtcbiAgICBmb3IgKGNvbnN0IFtrLCBfdl0gb2YgaU1hcEVudHJpZXMpIHtcbiAgICAgIGxldCBzdW0gPSAwO1xuICAgICAgLy8gaGVyZSB3ZSBrbm93IHRoYXQgdGhlIHZhbHVlIGlzIG5vdCB6ZXJvXG4gICAgICAvLyB0aGVyZWZvcmUsIHdlIGNhbiBpdGVyYXRlIG92ZXIgdGhlIGNvbHVtbnNcbiAgICAgIGZvciAoY29uc3QgW2sxLCB2MV0gb2YgaU1hcEVudHJpZXMpIHtcbiAgICAgICAgLy8gaGVyZSB3ZSBjaGVjayB0aGUgY29sdW1uXG4gICAgICAgIGNvbnN0IGpWYWwgPSBpbmRleGVzTWFwUm93cy5nZXQoazEpPy5nZXQoayk7XG4gICAgICAgIGlmIChqVmFsKVxuICAgICAgICAgIHN1bSArPSB2MSAqIGpWYWw7XG4gICAgICB9XG5cbiAgICAgIHJlc0kucHVzaChpKTtcbiAgICAgIHJlc0oucHVzaChrKTtcbiAgICAgIHJlc0QucHVzaChzdW0pO1xuICAgIH1cbiAgfVxuXG5cbiAgcG9zdE1lc3NhZ2Uoe2k6IG5ldyBVaW50MzJBcnJheShyZXNJKSwgajogbmV3IFVpbnQzMkFycmF5KHJlc0opLCBkaXN0YW5jZTogbmV3IEZsb2F0MzJBcnJheShyZXNEKX0pO1xufTtcbiJdfQ=="],"names":["indexesMapRows","Map","onmessage","e","data","is","js","ds","i","length","has","set","get","postMessage","blockStart","blockEnd","resI","resJ","resD","iMap","iMapEntries","Array","from","entries","k","_v","sum","k1","v1","jVal","push","Uint32Array","j","distance","Float32Array"],"sourceRoot":""}
package/dist/950.js CHANGED
@@ -1,2 +1,2 @@
1
- var bio;(()=>{"use strict";var e,r,t={9950:(e,r,t)=>{var n=t(6066);const o=e=>null==e;function a(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 l=t(2780),s=t(8774);onmessage=async e=>{const{values:r,startIdx:t,endIdx:i,fnNames:c,opts:p,nNeighbours:f,weights:h,aggregationMethod:u}=e.data;try{const e=new Array(r[0].length).fill(null).map((()=>new Array(f).fill(-1))),g=new Array(r[0].length).fill(null).map((()=>new Array(f).fill(999999))),v=function(e,r){return e===n.G.MANHATTAN?e=>e.reduce(((e,t,n)=>e+t*r[n]),0):e=>{const t=e.reduce(((e,t,n)=>e+(t*r[n])**2),0);return Math.sqrt(t)}}(u,h),d=i-t;r.forEach(((e,t)=>{if((0,l.lW)(c[t]))for(let n=0;n<e.length;++n)o(e[n])||(r[t][n]=new s.A(r[t][n]._data,r[t][n]._length))}));let b=0;const w=new Array(c.length).fill(null).map(((e,r)=>new l.t$(c[r]).getMeasure(p[r]))),m=r[0].length-2-Math.floor(Math.sqrt(-8*t+4*r[0].length*(r[0].length-1)-7)/2-.5),y=t-r[0].length*m+Math.floor((m+1)*(m+2)/2);let x=m,A=y;for(;b<d;){const t=w.map(((e,t)=>o(r[t][x])||o(r[t][A])?1:e(r[t][x],r[t][A]))),n=1===t.length?t[0]:v(t);a(g[x],e[x],n,A),a(g[A],e[A],n,x),b++,A++,A===r[0].length&&(x++,A=x+1)}postMessage({knnDistances:g,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,[242,589],(()=>o(9950)));return o.O(e)},e=[],o.O=(r,t,n,a)=>{if(!t){var l=1/0;for(p=0;p<e.length;p++){for(var[t,n,a]=e[p],s=!0,i=0;i<t.length;i++)(!1&a||l>=a)&&Object.keys(o.O).every((e=>o.O[e](t[i])))?t.splice(i--,1):(s=!1,a<l&&(l=a));if(s){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||!/^http(s?):/.test(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={950: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,l]=r;for(var s in a)o.o(a,s)&&(o.m[s]=a[s]);for(l&&l(o);n.length;)e[n.pop()]=1;t(r)}})(),r=o.x,o.x=()=>Promise.all([o.e(242),o.e(589)]).then(r);var a=o.x();bio=a})();
1
+ var bio;(()=>{"use strict";var e,r,t={9950:(e,r,t)=>{var n=t(6066);const o=e=>null==e;function a(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 l=t(2780),s=t(8774);onmessage=async e=>{const{values:r,startIdx:t,endIdx:i,fnNames:c,opts:p,nNeighbours:f,weights:h,aggregationMethod:u}=e.data;try{const e=new Array(r[0].length).fill(null).map((()=>new Array(f).fill(-1))),g=new Array(r[0].length).fill(null).map((()=>new Array(f).fill(999999))),v=function(e,r){return e===n.G.MANHATTAN?e=>e.reduce(((e,t,n)=>e+t*r[n]),0):e=>{const t=e.reduce(((e,t,n)=>e+(t*r[n])**2),0);return Math.sqrt(t)}}(u,h),d=i-t;r.forEach(((e,t)=>{if((0,l.lW)(c[t]))for(let n=0;n<e.length;++n)o(e[n])||(r[t][n]=new s.A(r[t][n]._data,r[t][n]._length))}));let b=0;const w=new Array(c.length).fill(null).map(((e,r)=>new l.t$(c[r]).getMeasure(p[r]))),m=r[0].length-2-Math.floor(Math.sqrt(-8*t+4*r[0].length*(r[0].length-1)-7)/2-.5),y=t-r[0].length*m+Math.floor((m+1)*(m+2)/2);let x=m,A=y;for(;b<d;){const t=w.map(((e,t)=>o(r[t][x])||o(r[t][A])?1:e(r[t][x],r[t][A]))),n=1===t.length?t[0]:v(t);a(g[x],e[x],n,A),a(g[A],e[A],n,x),b++,A++,A===r[0].length&&(x++,A=x+1)}postMessage({knnDistances:g,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,[242,589],(()=>o(9950)));return o.O(e)},e=[],o.O=(r,t,n,a)=>{if(!t){var l=1/0;for(p=0;p<e.length;p++){for(var[t,n,a]=e[p],s=!0,i=0;i<t.length;i++)(!1&a||l>=a)&&Object.keys(o.O).every((e=>o.O[e](t[i])))?t.splice(i--,1):(s=!1,a<l&&(l=a));if(s){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&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(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={950: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,l]=r;for(var s in a)o.o(a,s)&&(o.m[s]=a[s]);for(l&&l(o);n.length;)e[n.pop()]=1;t(r)}})(),r=o.x,o.x=()=>Promise.all([o.e(242),o.e(589)]).then(r);var a=o.x();bio=a})();
2
2
  //# sourceMappingURL=950.js.map
package/dist/950.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"950.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(242),\n\t\t__webpack_require__.e(589)\n\t]).then(next);\n};","import { DistanceAggregationMethods } from './types';\nexport const isNil = (x) => x === null || x === undefined;\nexport function insertSmaller(distancesAr, indexes, num, index) {\n if (num > distancesAr[distancesAr.length - 1])\n return;\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 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 getAggregationFunction(aggregationMethod, weights) {\n switch (aggregationMethod) {\n case DistanceAggregationMethods.MANHATTAN:\n return (vs) => vs.reduce((acc, val, idx) => acc + val * weights[idx], 0);\n default:\n return (vs) => {\n // euclidean\n const sum = vs.reduce((acc, val, idx) => acc + (val * weights[idx]) ** 2, 0);\n return Math.sqrt(sum);\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLDBCQUEwQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDO0FBRS9ELE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBcUIsRUFBRSxPQUFpQixFQUFFLEdBQVcsRUFBRSxLQUFhO0lBQ2hHLElBQUksR0FBRyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQztRQUN6QyxPQUFPO0lBRVQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNsQixXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFdBQXFCLEVBQUUsT0FBaUIsRUFBRSxHQUFXLEVBQUUsS0FBYTtJQUMvRixJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7UUFDekMsT0FBTztJQUVULE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbEIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxpQkFBNEMsRUFBRSxPQUFpQjtJQUUvRCxRQUFRLGlCQUFpQixFQUFFLENBQUM7UUFDMUIsS0FBSywwQkFBMEIsQ0FBQyxTQUFTO1lBQ3ZDLE9BQU8sQ0FBQyxFQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckY7WUFDRSxPQUFPLENBQUMsRUFBWSxFQUFFLEVBQUU7Z0JBQ3RCLFlBQVk7Z0JBQ1osTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Rpc3RhbmNlQWdncmVnYXRpb25NZXRob2QsIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzTmlsID0gKHg6IGFueSkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRTbWFsbGVyKGRpc3RhbmNlc0FyOiBudW1iZXJbXSwgaW5kZXhlczogbnVtYmVyW10sIG51bTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gIGlmIChudW0gPiBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGgtMV0pXG4gICAgcmV0dXJuO1xuXG4gIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgZGlzdGFuY2VzQXIucG9wKCk7XG4gIGRpc3RhbmNlc0FyLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgbnVtKTtcbiAgaW5kZXhlcy5wb3AoKTtcbiAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExhcmdlcihkaXN0YW5jZXNBcjogbnVtYmVyW10sIGluZGV4ZXM6IG51bWJlcltdLCBudW06IG51bWJlciwgaW5kZXg6IG51bWJlcikge1xuICBpZiAobnVtIDwgZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoLTFdKVxuICAgIHJldHVybjtcblxuICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtID4gdik7XG4gIGRpc3RhbmNlc0FyLnBvcCgpO1xuICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gIGluZGV4ZXMucG9wKCk7XG4gIGluZGV4ZXMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpbmRleCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uKFxuICBhZ2dyZWdhdGlvbk1ldGhvZDogRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0czogbnVtYmVyW11cbik6ICh2YWx1ZXM6IG51bWJlcltdKSA9PiBudW1iZXIge1xuICBzd2l0Y2ggKGFnZ3JlZ2F0aW9uTWV0aG9kKSB7XG4gICAgY2FzZSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5NQU5IQVRUQU46XG4gICAgICByZXR1cm4gKHZzOiBudW1iZXJbXSkgPT4gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyB2YWwgKiB3ZWlnaHRzW2lkeF0sIDApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gKHZzOiBudW1iZXJbXSkgPT4ge1xuICAgICAgICAvLyBldWNsaWRlYW5cbiAgICAgICAgY29uc3Qgc3VtID0gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyAodmFsICogd2VpZ2h0c1tpZHhdKSAqKiAyLCAwKTtcbiAgICAgICAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xuICAgICAgfTtcbiAgfVxufVxuIl19","import { getAggregationFunction, 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, fnNames, opts, nNeighbours, weights, aggregationMethod } = event.data;\n try {\n const knnIndexes = new Array(values[0].length).fill(null).map(() => new Array(nNeighbours).fill(-1));\n const knnDistances = new Array(values[0].length).fill(null).map(() => new Array(nNeighbours).fill(999999));\n const aggregate = getAggregationFunction(aggregationMethod, weights);\n const chunkSize = endIdx - startIdx;\n values.forEach((v, colIdx) => {\n if (isBitArrayMetric(fnNames[colIdx])) {\n for (let i = 0; i < v.length; ++i) {\n if (isNil(v[i]))\n continue;\n values[colIdx][i] = new BitArray(values[colIdx][i]._data, values[colIdx][i]._length);\n }\n }\n });\n let cnt = 0;\n const distanceFns = new Array(fnNames.length).fill(null).map((_, i) => new Measure(fnNames[i]).getMeasure(opts[i]));\n const startRow = values[0].length - 2 - Math.floor(Math.sqrt(-8 * startIdx + 4 * values[0].length * (values[0].length - 1) - 7) / 2 - 0.5);\n const startCol = startIdx - values[0].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 distanceValues = distanceFns.map((fn, idx) => !isNil(values[idx][mi]) && !isNil(values[idx][mj]) ?\n fn(values[idx][mi], values[idx][mj]) : 1);\n // const value = !isNil(values[mi]) && !isNil(values[mj]) ?\n // distanceFn(values[mi], values[mj]) : 1;\n const value = distanceValues.length === 1 ? distanceValues[0] : aggregate(distanceValues);\n insertSmaller(knnDistances[mi], knnIndexes[mi], value, mj);\n insertSmaller(knnDistances[mj], knnIndexes[mj], value, mi);\n cnt++;\n mj++;\n if (mj === values[0].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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia25uLXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtubi13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDckUsT0FBTyxFQUFlLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sUUFBUSxNQUFNLHlDQUF5QyxDQUFDO0FBRy9ELFNBQVMsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDMUIsTUFBTSxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBQyxHQUVpQixLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3BILElBQUksQ0FBQztRQUNILE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFTLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0csTUFBTSxZQUFZLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQVMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkgsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckUsTUFBTSxTQUFTLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNCLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUFFLFNBQVM7b0JBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkYsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLE1BQU0sV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEgsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxRixNQUFNLFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxRyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUM7UUFDbEIsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxHQUFHLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLHVGQUF1RjtZQUN2RixNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsMkRBQTJEO1lBQzNELDRDQUE0QztZQUM1QyxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDMUYsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNELGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUUzRCxHQUFHLEVBQUUsQ0FBQztZQUNOLEVBQUUsRUFBRSxDQUFDO1lBQ0wsSUFBSSxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1QixFQUFFLEVBQUUsQ0FBQztnQkFDTCxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBRUQsV0FBVyxDQUFDLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uLCBpbnNlcnRTbWFsbGVyLCBpc05pbH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge0tub3duTWV0cmljcywgTWVhc3VyZSwgaXNCaXRBcnJheU1ldHJpY30gZnJvbSAnLi4vdHlwZWQtbWV0cmljcyc7XG5pbXBvcnQgQml0QXJyYXkgZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvYml0LWFycmF5JztcbmltcG9ydCB7RGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZH0gZnJvbSAnLi90eXBlcyc7XG5cbm9ubWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4ge1xuICBjb25zdCB7dmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBmbk5hbWVzLCBvcHRzLCBuTmVpZ2hib3Vycywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2R9OlxuICAgIHt2YWx1ZXM6IEFycmF5PGFueVtdPiwgc3RhcnRJZHg6IG51bWJlciwgZW5kSWR4OiBudW1iZXIsIGZuTmFtZXM6IEtub3duTWV0cmljc1tdLFxuICAgICAgb3B0czogYW55W10sIG5OZWlnaGJvdXJzOiBudW1iZXIsIHdlaWdodHM6IG51bWJlcltdLCBhZ2dyZWdhdGlvbk1ldGhvZDogRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZH0gPSBldmVudC5kYXRhO1xuICB0cnkge1xuICAgIGNvbnN0IGtubkluZGV4ZXMgPSBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IEFycmF5PG51bWJlcj4obk5laWdoYm91cnMpLmZpbGwoLTEpKTtcbiAgICBjb25zdCBrbm5EaXN0YW5jZXMgPSBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IEFycmF5PG51bWJlcj4obk5laWdoYm91cnMpLmZpbGwoOTk5OTk5KSk7XG4gICAgY29uc3QgYWdncmVnYXRlID0gZ2V0QWdncmVnYXRpb25GdW5jdGlvbihhZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0cyk7XG4gICAgY29uc3QgY2h1bmtTaXplID0gZW5kSWR4IC0gc3RhcnRJZHg7XG4gICAgdmFsdWVzLmZvckVhY2goKHYsIGNvbElkeCkgPT4ge1xuICAgICAgaWYgKGlzQml0QXJyYXlNZXRyaWMoZm5OYW1lc1tjb2xJZHhdKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBpZiAoaXNOaWwodltpXSkpIGNvbnRpbnVlO1xuICAgICAgICAgIHZhbHVlc1tjb2xJZHhdW2ldID0gbmV3IEJpdEFycmF5KHZhbHVlc1tjb2xJZHhdW2ldLl9kYXRhLCB2YWx1ZXNbY29sSWR4XVtpXS5fbGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCBjbnQgPSAwO1xuICAgIGNvbnN0IGRpc3RhbmNlRm5zID0gbmV3IEFycmF5KGZuTmFtZXMubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoXywgaSkgPT4gbmV3IE1lYXN1cmUoZm5OYW1lc1tpXSkuZ2V0TWVhc3VyZShvcHRzW2ldKSk7XG4gICAgY29uc3Qgc3RhcnRSb3cgPSB2YWx1ZXNbMF0ubGVuZ3RoIC0gMiAtIE1hdGguZmxvb3IoXG4gICAgICBNYXRoLnNxcnQoLTggKiBzdGFydElkeCArIDQgKiB2YWx1ZXNbMF0ubGVuZ3RoICogKHZhbHVlc1swXS5sZW5ndGggLSAxKSAtIDcpIC8gMiAtIDAuNSk7XG4gICAgY29uc3Qgc3RhcnRDb2wgPSBzdGFydElkeCAtIHZhbHVlc1swXS5sZW5ndGggKiBzdGFydFJvdyArIE1hdGguZmxvb3IoKHN0YXJ0Um93ICsgMSkgKiAoc3RhcnRSb3cgKyAyKSAvIDIpO1xuICAgIGxldCBtaSA9IHN0YXJ0Um93O1xuICAgIGxldCBtaiA9IHN0YXJ0Q29sO1xuICAgIHdoaWxlIChjbnQgPCBjaHVua1NpemUpIHtcbiAgICAgIC8vY29uc3QgdmFsdWUgPSBzZXExTGlzdFttaV0gJiYgc2VxMUxpc3RbbWpdID8gaGFtbWluZyhzZXExTGlzdFttaV0sIHNlcTFMaXN0W21qXSkgOiAwO1xuICAgICAgY29uc3QgZGlzdGFuY2VWYWx1ZXMgPSBkaXN0YW5jZUZucy5tYXAoKGZuLCBpZHgpID0+ICFpc05pbCh2YWx1ZXNbaWR4XVttaV0pICYmICFpc05pbCh2YWx1ZXNbaWR4XVttal0pID9cbiAgICAgICAgZm4odmFsdWVzW2lkeF1bbWldLCB2YWx1ZXNbaWR4XVttal0pIDogMSk7XG4gICAgICAvLyBjb25zdCB2YWx1ZSA9ICFpc05pbCh2YWx1ZXNbbWldKSAmJiAhaXNOaWwodmFsdWVzW21qXSkgP1xuICAgICAgLy8gICBkaXN0YW5jZUZuKHZhbHVlc1ttaV0sIHZhbHVlc1ttal0pIDogMTtcbiAgICAgIGNvbnN0IHZhbHVlID0gZGlzdGFuY2VWYWx1ZXMubGVuZ3RoID09PSAxID8gZGlzdGFuY2VWYWx1ZXNbMF0gOiBhZ2dyZWdhdGUoZGlzdGFuY2VWYWx1ZXMpO1xuICAgICAgaW5zZXJ0U21hbGxlcihrbm5EaXN0YW5jZXNbbWldLCBrbm5JbmRleGVzW21pXSwgdmFsdWUsIG1qKTtcbiAgICAgIGluc2VydFNtYWxsZXIoa25uRGlzdGFuY2VzW21qXSwga25uSW5kZXhlc1ttal0sIHZhbHVlLCBtaSk7XG5cbiAgICAgIGNudCsrO1xuICAgICAgbWorKztcbiAgICAgIGlmIChtaiA9PT0gdmFsdWVzWzBdLmxlbmd0aCkge1xuICAgICAgICBtaSsrO1xuICAgICAgICBtaiA9IG1pICsgMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwb3N0TWVzc2FnZSh7a25uRGlzdGFuY2VzLCBrbm5JbmRleGVzfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBwb3N0TWVzc2FnZSh7ZXJyb3I6IGV9KTtcbiAgfVxufTtcbiJdfQ==","// 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, [242,589], () => (__webpack_require__(9950)))\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 || !/^http(s?):/.test(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\t950: 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","fnNames","opts","nNeighbours","weights","aggregationMethod","data","knnIndexes","Array","fill","map","knnDistances","aggregate","MANHATTAN","vs","reduce","acc","val","idx","sum","Math","sqrt","getAggregationFunction","chunkSize","forEach","colIdx","i","_data","_length","cnt","distanceFns","_","getMeasure","startRow","floor","startCol","mi","mj","distanceValues","fn","value","postMessage","e","error","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","__webpack_exports__","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","key","r","d","definition","o","defineProperty","enumerable","get","f","chunkId","Promise","all","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","test","Error","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","push","bind","moreModules","runtime","then"],"sourceRoot":""}
1
+ {"version":3,"file":"950.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(242),\n\t\t__webpack_require__.e(589)\n\t]).then(next);\n};","import { DistanceAggregationMethods } from './types';\nexport const isNil = (x) => x === null || x === undefined;\nexport function insertSmaller(distancesAr, indexes, num, index) {\n if (num > distancesAr[distancesAr.length - 1])\n return;\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 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 getAggregationFunction(aggregationMethod, weights) {\n switch (aggregationMethod) {\n case DistanceAggregationMethods.MANHATTAN:\n return (vs) => vs.reduce((acc, val, idx) => acc + val * weights[idx], 0);\n default:\n return (vs) => {\n // euclidean\n const sum = vs.reduce((acc, val, idx) => acc + (val * weights[idx]) ** 2, 0);\n return Math.sqrt(sum);\n };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLDBCQUEwQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDO0FBRS9ELE1BQU0sVUFBVSxhQUFhLENBQUMsV0FBcUIsRUFBRSxPQUFpQixFQUFFLEdBQVcsRUFBRSxLQUFhO0lBQ2hHLElBQUksR0FBRyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQztRQUN6QyxPQUFPO0lBRVQsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNsQixXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLFdBQXFCLEVBQUUsT0FBaUIsRUFBRSxHQUFXLEVBQUUsS0FBYTtJQUMvRixJQUFJLEdBQUcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBQyxDQUFDLENBQUM7UUFDekMsT0FBTztJQUVULE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDbEIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNkLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxpQkFBNEMsRUFBRSxPQUFpQjtJQUUvRCxRQUFRLGlCQUFpQixFQUFFLENBQUM7UUFDMUIsS0FBSywwQkFBMEIsQ0FBQyxTQUFTO1lBQ3ZDLE9BQU8sQ0FBQyxFQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckY7WUFDRSxPQUFPLENBQUMsRUFBWSxFQUFFLEVBQUU7Z0JBQ3RCLFlBQVk7Z0JBQ1osTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Rpc3RhbmNlQWdncmVnYXRpb25NZXRob2QsIERpc3RhbmNlQWdncmVnYXRpb25NZXRob2RzfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzTmlsID0gKHg6IGFueSkgPT4geCA9PT0gbnVsbCB8fCB4ID09PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRTbWFsbGVyKGRpc3RhbmNlc0FyOiBudW1iZXJbXSwgaW5kZXhlczogbnVtYmVyW10sIG51bTogbnVtYmVyLCBpbmRleDogbnVtYmVyKSB7XG4gIGlmIChudW0gPiBkaXN0YW5jZXNBcltkaXN0YW5jZXNBci5sZW5ndGgtMV0pXG4gICAgcmV0dXJuO1xuXG4gIGNvbnN0IG5ld1Bvc2l0aW9uID0gZGlzdGFuY2VzQXIuZmluZEluZGV4KCh2KSA9PiBudW0gPCB2KTtcbiAgZGlzdGFuY2VzQXIucG9wKCk7XG4gIGRpc3RhbmNlc0FyLnNwbGljZShuZXdQb3NpdGlvbiwgMCwgbnVtKTtcbiAgaW5kZXhlcy5wb3AoKTtcbiAgaW5kZXhlcy5zcGxpY2UobmV3UG9zaXRpb24sIDAsIGluZGV4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydExhcmdlcihkaXN0YW5jZXNBcjogbnVtYmVyW10sIGluZGV4ZXM6IG51bWJlcltdLCBudW06IG51bWJlciwgaW5kZXg6IG51bWJlcikge1xuICBpZiAobnVtIDwgZGlzdGFuY2VzQXJbZGlzdGFuY2VzQXIubGVuZ3RoLTFdKVxuICAgIHJldHVybjtcblxuICBjb25zdCBuZXdQb3NpdGlvbiA9IGRpc3RhbmNlc0FyLmZpbmRJbmRleCgodikgPT4gbnVtID4gdik7XG4gIGRpc3RhbmNlc0FyLnBvcCgpO1xuICBkaXN0YW5jZXNBci5zcGxpY2UobmV3UG9zaXRpb24sIDAsIG51bSk7XG4gIGluZGV4ZXMucG9wKCk7XG4gIGluZGV4ZXMuc3BsaWNlKG5ld1Bvc2l0aW9uLCAwLCBpbmRleCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uKFxuICBhZ2dyZWdhdGlvbk1ldGhvZDogRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0czogbnVtYmVyW11cbik6ICh2YWx1ZXM6IG51bWJlcltdKSA9PiBudW1iZXIge1xuICBzd2l0Y2ggKGFnZ3JlZ2F0aW9uTWV0aG9kKSB7XG4gICAgY2FzZSBEaXN0YW5jZUFnZ3JlZ2F0aW9uTWV0aG9kcy5NQU5IQVRUQU46XG4gICAgICByZXR1cm4gKHZzOiBudW1iZXJbXSkgPT4gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyB2YWwgKiB3ZWlnaHRzW2lkeF0sIDApO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gKHZzOiBudW1iZXJbXSkgPT4ge1xuICAgICAgICAvLyBldWNsaWRlYW5cbiAgICAgICAgY29uc3Qgc3VtID0gdnMucmVkdWNlKChhY2MsIHZhbCwgaWR4KSA9PiBhY2MgKyAodmFsICogd2VpZ2h0c1tpZHhdKSAqKiAyLCAwKTtcbiAgICAgICAgcmV0dXJuIE1hdGguc3FydChzdW0pO1xuICAgICAgfTtcbiAgfVxufVxuIl19","import { getAggregationFunction, 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, fnNames, opts, nNeighbours, weights, aggregationMethod } = event.data;\n try {\n const knnIndexes = new Array(values[0].length).fill(null).map(() => new Array(nNeighbours).fill(-1));\n const knnDistances = new Array(values[0].length).fill(null).map(() => new Array(nNeighbours).fill(999999));\n const aggregate = getAggregationFunction(aggregationMethod, weights);\n const chunkSize = endIdx - startIdx;\n values.forEach((v, colIdx) => {\n if (isBitArrayMetric(fnNames[colIdx])) {\n for (let i = 0; i < v.length; ++i) {\n if (isNil(v[i]))\n continue;\n values[colIdx][i] = new BitArray(values[colIdx][i]._data, values[colIdx][i]._length);\n }\n }\n });\n let cnt = 0;\n const distanceFns = new Array(fnNames.length).fill(null).map((_, i) => new Measure(fnNames[i]).getMeasure(opts[i]));\n const startRow = values[0].length - 2 - Math.floor(Math.sqrt(-8 * startIdx + 4 * values[0].length * (values[0].length - 1) - 7) / 2 - 0.5);\n const startCol = startIdx - values[0].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 distanceValues = distanceFns.map((fn, idx) => !isNil(values[idx][mi]) && !isNil(values[idx][mj]) ?\n fn(values[idx][mi], values[idx][mj]) : 1);\n // const value = !isNil(values[mi]) && !isNil(values[mj]) ?\n // distanceFn(values[mi], values[mj]) : 1;\n const value = distanceValues.length === 1 ? distanceValues[0] : aggregate(distanceValues);\n insertSmaller(knnDistances[mi], knnIndexes[mi], value, mj);\n insertSmaller(knnDistances[mj], knnIndexes[mj], value, mi);\n cnt++;\n mj++;\n if (mj === values[0].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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia25uLXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtubi13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDckUsT0FBTyxFQUFlLE9BQU8sRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sUUFBUSxNQUFNLHlDQUF5QyxDQUFDO0FBRy9ELFNBQVMsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDMUIsTUFBTSxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBQyxHQUVpQixLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3BILElBQUksQ0FBQztRQUNILE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFTLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0csTUFBTSxZQUFZLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQVMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkgsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckUsTUFBTSxTQUFTLEdBQUcsTUFBTSxHQUFH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QUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNELGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUUzRCxHQUFHLEVBQUUsQ0FBQztZQUNOLEVBQUUsRUFBRSxDQUFDO1lBQ0wsSUFBSSxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1QixFQUFFLEVBQUUsQ0FBQztnQkFDTCxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBRUQsV0FBVyxDQUFDLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnZXRBZ2dyZWdhdGlvbkZ1bmN0aW9uLCBpbnNlcnRTbWFsbGVyLCBpc05pbH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge0tub3duTWV0cmljcywgTWVhc3VyZSwgaXNCaXRBcnJheU1ldHJpY30gZnJvbSAnLi4vdHlwZWQtbWV0cmljcyc7XG5pbXBvcnQgQml0QXJyYXkgZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvYml0LWFycmF5JztcbmltcG9ydCB7RGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZH0gZnJvbSAnLi90eXBlcyc7XG5cbm9ubWVzc2FnZSA9IGFzeW5jIChldmVudCkgPT4ge1xuICBjb25zdCB7dmFsdWVzLCBzdGFydElkeCwgZW5kSWR4LCBmbk5hbWVzLCBvcHRzLCBuTmVpZ2hib3Vycywgd2VpZ2h0cywgYWdncmVnYXRpb25NZXRob2R9OlxuICAgIHt2YWx1ZXM6IEFycmF5PGFueVtdPiwgc3RhcnRJZHg6IG51bWJlciwgZW5kSWR4OiBudW1iZXIsIGZuTmFtZXM6IEtub3duTWV0cmljc1tdLFxuICAgICAgb3B0czogYW55W10sIG5OZWlnaGJvdXJzOiBudW1iZXIsIHdlaWdodHM6IG51bWJlcltdLCBhZ2dyZWdhdGlvbk1ldGhvZDogRGlzdGFuY2VBZ2dyZWdhdGlvbk1ldGhvZH0gPSBldmVudC5kYXRhO1xuICB0cnkge1xuICAgIGNvbnN0IGtubkluZGV4ZXMgPSBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IEFycmF5PG51bWJlcj4obk5laWdoYm91cnMpLmZpbGwoLTEpKTtcbiAgICBjb25zdCBrbm5EaXN0YW5jZXMgPSBuZXcgQXJyYXkodmFsdWVzWzBdLmxlbmd0aCkuZmlsbChudWxsKS5tYXAoKCkgPT4gbmV3IEFycmF5PG51bWJlcj4obk5laWdoYm91cnMpLmZpbGwoOTk5OTk5KSk7XG4gICAgY29uc3QgYWdncmVnYXRlID0gZ2V0QWdncmVnYXRpb25GdW5jdGlvbihhZ2dyZWdhdGlvbk1ldGhvZCwgd2VpZ2h0cyk7XG4gICAgY29uc3QgY2h1bmtTaXplID0gZW5kSWR4IC0gc3RhcnRJZHg7XG4gICAgdmFsdWVzLmZvckVhY2goKHYsIGNvbElkeCkgPT4ge1xuICAgICAgaWYgKGlzQml0QXJyYXlNZXRyaWMoZm5OYW1lc1tjb2xJZHhdKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICBpZiAoaXNOaWwodltpXSkpIGNvbnRpbnVlO1xuICAgICAgICAgIHZhbHVlc1tjb2xJZHhdW2ldID0gbmV3IEJpdEFycmF5KHZhbHVlc1tjb2xJZHhdW2ldLl9kYXRhLCB2YWx1ZXNbY29sSWR4XVtpXS5fbGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCBjbnQgPSAwO1xuICAgIGNvbnN0IGRpc3RhbmNlRm5zID0gbmV3IEFycmF5KGZuTmFtZXMubGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoXywgaSkgPT4gbmV3IE1lYXN1cmUoZm5OYW1lc1tpXSkuZ2V0TWVhc3VyZShvcHRzW2ldKSk7XG4gICAgY29uc3Qgc3RhcnRSb3cgPSB2YWx1ZXNbMF0ubGVuZ3RoIC0gMiAtIE1hdGguZmxvb3IoXG4gICAgICBNYXRoLnNxcnQoLTggKiBzdGFydElkeCArIDQgKiB2YWx1ZXNbMF0ubGVuZ3RoICogKHZhbHVlc1swXS5sZW5ndGggLSAxKSAtIDcpIC8gMiAtIDAuNSk7XG4gICAgY29uc3Qgc3RhcnRDb2wgPSBzdGFydElkeCAtIHZhbHVlc1swXS5sZW5ndGggKiBzdGFydFJvdyArIE1hdGguZmxvb3IoKHN0YXJ0Um93ICsgMSkgKiAoc3RhcnRSb3cgKyAyKSAvIDIpO1xuICAgIGxldCBtaSA9IHN0YXJ0Um93O1xuICAgIGxldCBtaiA9IHN0YXJ0Q29sO1xuICAgIHdoaWxlIChjbnQgPCBjaHVua1NpemUpIHtcbiAgICAgIC8vY29uc3QgdmFsdWUgPSBzZXExTGlzdFttaV0gJiYgc2VxMUxpc3RbbWpdID8gaGFtbWluZyhzZXExTGlzdFttaV0sIHNlcTFMaXN0W21qXSkgOiAwO1xuICAgICAgY29uc3QgZGlzdGFuY2VWYWx1ZXMgPSBkaXN0YW5jZUZucy5tYXAoKGZuLCBpZHgpID0+ICFpc05pbCh2YWx1ZXNbaWR4XVttaV0pICYmICFpc05pbCh2YWx1ZXNbaWR4XVttal0pID9cbiAgICAgICAgZm4odmFsdWVzW2lkeF1bbWldLCB2YWx1ZXNbaWR4XVttal0pIDogMSk7XG4gICAgICAvLyBjb25zdCB2YWx1ZSA9ICFpc05pbCh2YWx1ZXNbbWldKSAmJiAhaXNOaWwodmFsdWVzW21qXSkgP1xuICAgICAgLy8gICBkaXN0YW5jZUZuKHZhbHVlc1ttaV0sIHZhbHVlc1ttal0pIDogMTtcbiAgICAgIGNvbnN0IHZhbHVlID0gZGlzdGFuY2VWYWx1ZXMubGVuZ3RoID09PSAxID8gZGlzdGFuY2VWYWx1ZXNbMF0gOiBhZ2dyZWdhdGUoZGlzdGFuY2VWYWx1ZXMpO1xuICAgICAgaW5zZXJ0U21hbGxlcihrbm5EaXN0YW5jZXNbbWldLCBrbm5JbmRleGVzW21pXSwgdmFsdWUsIG1qKTtcbiAgICAgIGluc2VydFNtYWxsZXIoa25uRGlzdGFuY2VzW21qXSwga25uSW5kZXhlc1ttal0sIHZhbHVlLCBtaSk7XG5cbiAgICAgIGNudCsrO1xuICAgICAgbWorKztcbiAgICAgIGlmIChtaiA9PT0gdmFsdWVzWzBdLmxlbmd0aCkge1xuICAgICAgICBtaSsrO1xuICAgICAgICBtaiA9IG1pICsgMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwb3N0TWVzc2FnZSh7a25uRGlzdGFuY2VzLCBrbm5JbmRleGVzfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBwb3N0TWVzc2FnZSh7ZXJyb3I6IGV9KTtcbiAgfVxufTtcbiJdfQ==","// 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, [242,589], () => (__webpack_require__(9950)))\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 && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\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 || !/^http(s?):/.test(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\t950: 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","fnNames","opts","nNeighbours","weights","aggregationMethod","data","knnIndexes","Array","fill","map","knnDistances","aggregate","MANHATTAN","vs","reduce","acc","val","idx","sum","Math","sqrt","getAggregationFunction","chunkSize","forEach","colIdx","i","_data","_length","cnt","distanceFns","_","getMeasure","startRow","floor","startCol","mi","mj","distanceValues","fn","value","postMessage","e","error","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","__webpack_exports__","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","key","r","d","definition","o","defineProperty","enumerable","get","f","chunkId","Promise","all","promises","u","g","globalThis","this","Function","window","obj","prop","prototype","hasOwnProperty","call","scriptUrl","importScripts","location","document","currentScript","tagName","toUpperCase","src","scripts","getElementsByTagName","test","Error","replace","p","installedChunks","chunkLoadingGlobal","self","parentChunkLoadingFunction","push","bind","moreModules","runtime","then"],"sourceRoot":""}