molstar 3.8.2 → 3.9.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 (516) hide show
  1. package/build/viewer/index.html +4 -1
  2. package/build/viewer/molstar.js +1 -1
  3. package/lib/apps/viewer/app.d.ts +1 -1
  4. package/lib/apps/viewer/app.js +1 -1
  5. package/lib/apps/viewer/index.html +4 -1
  6. package/lib/cli/cif2bcif/converter.js +1 -1
  7. package/lib/commonjs/apps/viewer/app.d.ts +1 -1
  8. package/lib/commonjs/apps/viewer/app.js +2 -1
  9. package/lib/commonjs/cli/cif2bcif/converter.js +1 -1
  10. package/lib/commonjs/examples/alpha-orbitals/index.d.ts +1 -1
  11. package/lib/commonjs/examples/alpha-orbitals/index.js +4 -1
  12. package/lib/commonjs/examples/basic-wrapper/custom-theme.js +1 -1
  13. package/lib/commonjs/examples/proteopedia-wrapper/coloring.js +3 -3
  14. package/lib/commonjs/extensions/alpha-orbitals/density.d.ts +1 -1
  15. package/lib/commonjs/extensions/alpha-orbitals/density.js +6 -2
  16. package/lib/commonjs/extensions/alpha-orbitals/orbitals.d.ts +1 -1
  17. package/lib/commonjs/extensions/alpha-orbitals/orbitals.js +6 -3
  18. package/lib/commonjs/extensions/anvil/algorithm.js +1 -1
  19. package/lib/commonjs/extensions/cellpack/color/generate.js +1 -1
  20. package/lib/commonjs/extensions/cellpack/color/provided.js +1 -1
  21. package/lib/commonjs/extensions/cellpack/state.js +1 -1
  22. package/lib/commonjs/extensions/dnatco/confal-pyramids/color.js +1 -1
  23. package/lib/commonjs/extensions/g3d/model.js +1 -1
  24. package/lib/commonjs/extensions/model-archive/quality-assessment/color/plddt.js +1 -1
  25. package/lib/commonjs/extensions/model-archive/quality-assessment/color/qmean.js +1 -1
  26. package/lib/commonjs/extensions/pdbe/structure-quality-report/color.js +1 -1
  27. package/lib/commonjs/extensions/rcsb/assembly-symmetry/color.js +4 -4
  28. package/lib/commonjs/extensions/rcsb/validation-report/color/density-fit.js +1 -1
  29. package/lib/commonjs/extensions/rcsb/validation-report/color/geometry-quality.js +2 -2
  30. package/lib/commonjs/extensions/rcsb/validation-report/color/random-coil-index.js +1 -1
  31. package/lib/commonjs/extensions/rcsb/validation-report/representation.js +2 -2
  32. package/lib/commonjs/mol-canvas3d/canvas3d.js +4 -0
  33. package/lib/commonjs/mol-canvas3d/controls/trackball.js +7 -7
  34. package/lib/commonjs/mol-canvas3d/helper/camera-helper.js +14 -14
  35. package/lib/commonjs/mol-canvas3d/helper/interaction-events.js +5 -5
  36. package/lib/commonjs/mol-canvas3d/passes/draw.js +34 -5
  37. package/lib/commonjs/mol-canvas3d/passes/fxaa.js +5 -0
  38. package/lib/commonjs/mol-canvas3d/passes/marking.js +5 -0
  39. package/lib/commonjs/mol-canvas3d/passes/multi-sample.js +9 -0
  40. package/lib/commonjs/mol-canvas3d/passes/pick.d.ts +18 -5
  41. package/lib/commonjs/mol-canvas3d/passes/pick.js +125 -24
  42. package/lib/commonjs/mol-canvas3d/passes/postprocessing.js +5 -0
  43. package/lib/commonjs/mol-canvas3d/passes/smaa.js +4 -0
  44. package/lib/commonjs/mol-canvas3d/passes/wboit.js +4 -0
  45. package/lib/commonjs/mol-data/db/column.js +5 -5
  46. package/lib/commonjs/mol-data/db/table.js +2 -2
  47. package/lib/commonjs/mol-data/util/array.d.ts +1 -1
  48. package/lib/commonjs/mol-geo/geometry/texture-mesh/color-smoothing.js +13 -0
  49. package/lib/commonjs/mol-gl/compute/grid3d.d.ts +2 -2
  50. package/lib/commonjs/mol-gl/compute/grid3d.js +30 -8
  51. package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.d.ts +1 -1
  52. package/lib/commonjs/mol-gl/compute/histogram-pyramid/reduction.js +6 -1
  53. package/lib/commonjs/mol-gl/compute/histogram-pyramid/sum.d.ts +1 -1
  54. package/lib/commonjs/mol-gl/compute/histogram-pyramid/sum.js +6 -1
  55. package/lib/commonjs/mol-gl/compute/marching-cubes/active-voxels.d.ts +1 -1
  56. package/lib/commonjs/mol-gl/compute/marching-cubes/active-voxels.js +6 -1
  57. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.d.ts +1 -1
  58. package/lib/commonjs/mol-gl/compute/marching-cubes/isosurface.js +10 -10
  59. package/lib/commonjs/mol-gl/renderer.js +77 -32
  60. package/lib/commonjs/mol-gl/scene.js +2 -0
  61. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  62. package/lib/commonjs/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  63. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  64. package/lib/commonjs/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  65. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  66. package/lib/commonjs/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  67. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  68. package/lib/commonjs/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  69. package/lib/commonjs/mol-gl/shader/cylinders.frag.d.ts +1 -1
  70. package/lib/commonjs/mol-gl/shader/cylinders.frag.js +1 -1
  71. package/lib/commonjs/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  72. package/lib/commonjs/mol-gl/shader/direct-volume.frag.js +1 -1
  73. package/lib/commonjs/mol-gl/shader/image.frag.d.ts +1 -1
  74. package/lib/commonjs/mol-gl/shader/image.frag.js +1 -1
  75. package/lib/commonjs/mol-gl/shader/lines.frag.d.ts +1 -1
  76. package/lib/commonjs/mol-gl/shader/lines.frag.js +1 -1
  77. package/lib/commonjs/mol-gl/shader/mesh.frag.d.ts +1 -1
  78. package/lib/commonjs/mol-gl/shader/mesh.frag.js +1 -1
  79. package/lib/commonjs/mol-gl/shader/points.frag.d.ts +1 -1
  80. package/lib/commonjs/mol-gl/shader/points.frag.js +1 -1
  81. package/lib/commonjs/mol-gl/shader/spheres.frag.d.ts +1 -1
  82. package/lib/commonjs/mol-gl/shader/spheres.frag.js +1 -1
  83. package/lib/commonjs/mol-gl/shader/text.frag.d.ts +1 -1
  84. package/lib/commonjs/mol-gl/shader/text.frag.js +1 -1
  85. package/lib/commonjs/mol-gl/shader-code.d.ts +1 -1
  86. package/lib/commonjs/mol-gl/shader-code.js +41 -9
  87. package/lib/commonjs/mol-gl/webgl/compat.d.ts +34 -1
  88. package/lib/commonjs/mol-gl/webgl/compat.js +50 -2
  89. package/lib/commonjs/mol-gl/webgl/context.d.ts +2 -0
  90. package/lib/commonjs/mol-gl/webgl/context.js +3 -0
  91. package/lib/commonjs/mol-gl/webgl/extensions.d.ts +3 -2
  92. package/lib/commonjs/mol-gl/webgl/extensions.js +6 -1
  93. package/lib/commonjs/mol-gl/webgl/timer.d.ts +22 -0
  94. package/lib/commonjs/mol-gl/webgl/timer.js +169 -0
  95. package/lib/commonjs/mol-io/common/binary-cif/array-encoder.js +18 -18
  96. package/lib/commonjs/mol-io/common/binary-cif/decoder.js +16 -16
  97. package/lib/commonjs/mol-io/common/binary-cif/encoding.js +9 -9
  98. package/lib/commonjs/mol-io/reader/cif/binary/field.js +3 -3
  99. package/lib/commonjs/mol-io/reader/cif/data-model.js +14 -14
  100. package/lib/commonjs/mol-io/reader/cif/schema.js +1 -1
  101. package/lib/commonjs/mol-io/reader/cif/text/parser.js +23 -23
  102. package/lib/commonjs/mol-io/reader/common/text/column/fixed.js +1 -1
  103. package/lib/commonjs/mol-io/reader/common/text/column/token.js +1 -1
  104. package/lib/commonjs/mol-io/reader/common/text/number-parser.js +6 -6
  105. package/lib/commonjs/mol-io/reader/csv/parser.js +8 -8
  106. package/lib/commonjs/mol-io/writer/cif/encoder/binary.js +10 -10
  107. package/lib/commonjs/mol-io/writer/cif/encoder/text.js +7 -7
  108. package/lib/commonjs/mol-io/writer/cif/encoder.js +8 -8
  109. package/lib/commonjs/mol-io/writer/mol2/encoder.js +4 -4
  110. package/lib/commonjs/mol-math/geometry/gaussian-density/gpu.js +13 -2
  111. package/lib/commonjs/mol-model/sequence/alignment/sequence.js +3 -3
  112. package/lib/commonjs/mol-model/sequence/sequence.js +9 -9
  113. package/lib/commonjs/mol-model/structure/export/categories/atom_site_operator_mapping.js +3 -3
  114. package/lib/commonjs/mol-model/structure/export/categories/secondary-structure.js +2 -2
  115. package/lib/commonjs/mol-model/structure/export/categories/utils.js +1 -1
  116. package/lib/commonjs/mol-model/structure/model/model.js +2 -2
  117. package/lib/commonjs/mol-model/structure/model/properties/custom/indexed.js +6 -6
  118. package/lib/commonjs/mol-model/structure/model/properties/utils/atomic-ranges.js +1 -1
  119. package/lib/commonjs/mol-model/structure/model/types.js +116 -116
  120. package/lib/commonjs/mol-model/structure/query/context.js +1 -1
  121. package/lib/commonjs/mol-model/structure/query/queries/generators.js +5 -5
  122. package/lib/commonjs/mol-model/structure/query/queries/internal.js +4 -4
  123. package/lib/commonjs/mol-model/structure/query/queries/modifiers.js +4 -4
  124. package/lib/commonjs/mol-model/structure/query/utils/structure-distance.d.ts +5 -54
  125. package/lib/commonjs/mol-model/structure/query/utils/structure-distance.js +9 -9
  126. package/lib/commonjs/mol-model/structure/structure/carbohydrates/constants.js +106 -106
  127. package/lib/commonjs/mol-model/structure/structure/element/loci.js +5 -5
  128. package/lib/commonjs/mol-model/structure/structure/element/stats.js +5 -5
  129. package/lib/commonjs/mol-model/structure/structure/properties.js +5 -5
  130. package/lib/commonjs/mol-model/structure/structure/structure.js +11 -11
  131. package/lib/commonjs/mol-model/structure/structure/unit/bonds/inter-compute.js +5 -5
  132. package/lib/commonjs/mol-model/structure/structure/unit/bonds/intra-compute.js +4 -4
  133. package/lib/commonjs/mol-model/structure/structure/unit/bonds.js +2 -2
  134. package/lib/commonjs/mol-model/structure/structure/unit/resonance.js +1 -1
  135. package/lib/commonjs/mol-model/structure/structure/unit/rings/compute.js +6 -6
  136. package/lib/commonjs/mol-model/structure/structure/unit/rings.js +6 -6
  137. package/lib/commonjs/mol-model/structure/structure/unit.js +16 -16
  138. package/lib/commonjs/mol-model/structure/structure/util/superposition-sifts-mapping.js +1 -1
  139. package/lib/commonjs/mol-model/structure/util.js +4 -4
  140. package/lib/commonjs/mol-model-formats/structure/basic/atomic.js +2 -2
  141. package/lib/commonjs/mol-model-formats/structure/basic/parser.js +4 -4
  142. package/lib/commonjs/mol-model-formats/structure/basic/properties.js +1 -1
  143. package/lib/commonjs/mol-model-formats/structure/basic/sort.js +1 -1
  144. package/lib/commonjs/mol-model-formats/structure/basic/util.js +1 -1
  145. package/lib/commonjs/mol-model-formats/structure/cif-core.js +6 -6
  146. package/lib/commonjs/mol-model-formats/structure/common/entity.js +1 -1
  147. package/lib/commonjs/mol-model-formats/structure/cube.js +1 -1
  148. package/lib/commonjs/mol-model-formats/structure/gro.js +1 -1
  149. package/lib/commonjs/mol-model-formats/structure/mol.js +1 -1
  150. package/lib/commonjs/mol-model-formats/structure/mol2.js +4 -4
  151. package/lib/commonjs/mol-model-formats/structure/prmtop.js +1 -1
  152. package/lib/commonjs/mol-model-formats/structure/property/bonds/chem_comp.js +3 -3
  153. package/lib/commonjs/mol-model-formats/structure/property/bonds/index-pair.js +1 -1
  154. package/lib/commonjs/mol-model-formats/structure/property/bonds/struct_conn.js +6 -6
  155. package/lib/commonjs/mol-model-formats/structure/property/secondary-structure.js +8 -8
  156. package/lib/commonjs/mol-model-formats/structure/psf.js +1 -1
  157. package/lib/commonjs/mol-model-formats/structure/top.js +1 -1
  158. package/lib/commonjs/mol-model-formats/structure/xyz.js +1 -1
  159. package/lib/commonjs/mol-model-props/computed/accessible-surface-area/shrake-rupley/radii.js +2 -2
  160. package/lib/commonjs/mol-model-props/computed/accessible-surface-area/shrake-rupley.js +3 -3
  161. package/lib/commonjs/mol-model-props/computed/accessible-surface-area.js +2 -2
  162. package/lib/commonjs/mol-model-props/computed/chemistry/functional-group.js +31 -31
  163. package/lib/commonjs/mol-model-props/computed/chemistry/geometry.js +22 -22
  164. package/lib/commonjs/mol-model-props/computed/chemistry/valence-model.js +32 -32
  165. package/lib/commonjs/mol-model-props/computed/interactions/charged.js +39 -39
  166. package/lib/commonjs/mol-model-props/computed/interactions/common.js +34 -34
  167. package/lib/commonjs/mol-model-props/computed/interactions/contacts-builder.js +1 -1
  168. package/lib/commonjs/mol-model-props/computed/interactions/contacts.js +1 -1
  169. package/lib/commonjs/mol-model-props/computed/interactions/halogen-bonds.js +12 -12
  170. package/lib/commonjs/mol-model-props/computed/interactions/hydrogen-bonds.js +32 -32
  171. package/lib/commonjs/mol-model-props/computed/interactions/hydrophobic.js +9 -9
  172. package/lib/commonjs/mol-model-props/computed/interactions/metal.js +26 -26
  173. package/lib/commonjs/mol-model-props/computed/interactions/refine.js +20 -20
  174. package/lib/commonjs/mol-model-props/computed/representations/interactions-inter-unit-cylinder.js +2 -2
  175. package/lib/commonjs/mol-model-props/computed/representations/interactions-intra-unit-cylinder.js +2 -2
  176. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/bends.js +1 -1
  177. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/bridges.js +12 -12
  178. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/helices.js +6 -6
  179. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/ladders.js +3 -3
  180. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/sheets.js +11 -11
  181. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp/turns.js +3 -3
  182. package/lib/commonjs/mol-model-props/computed/secondary-structure/dssp.js +30 -30
  183. package/lib/commonjs/mol-model-props/computed/themes/accessible-surface-area.js +1 -1
  184. package/lib/commonjs/mol-model-props/computed/themes/interaction-type.js +10 -10
  185. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/color.js +1 -1
  186. package/lib/commonjs/mol-model-props/integrative/cross-link-restraint/format.js +3 -3
  187. package/lib/commonjs/mol-model-props/sequence/sifts-mapping.js +1 -1
  188. package/lib/commonjs/mol-model-props/sequence/themes/sifts-mapping.js +1 -1
  189. package/lib/commonjs/mol-plugin/animation-loop.d.ts +2 -1
  190. package/lib/commonjs/mol-plugin/animation-loop.js +18 -5
  191. package/lib/commonjs/mol-plugin/behavior/dynamic/camera.js +12 -12
  192. package/lib/commonjs/mol-plugin/behavior/dynamic/representation.js +7 -7
  193. package/lib/commonjs/mol-plugin/context.d.ts +2 -2
  194. package/lib/commonjs/mol-plugin/state.d.ts +1 -14
  195. package/lib/commonjs/mol-plugin-state/formats/volume.d.ts +12 -11
  196. package/lib/commonjs/mol-plugin-state/formats/volume.js +20 -13
  197. package/lib/commonjs/mol-plugin-state/helpers/structure-selection-query.js +5 -5
  198. package/lib/commonjs/mol-plugin-state/transforms/representation.js +2 -2
  199. package/lib/commonjs/mol-plugin-ui/controls/parameters.d.ts +1 -1
  200. package/lib/commonjs/mol-plugin-ui/sequence/polymer.js +1 -1
  201. package/lib/commonjs/mol-plugin-ui/sequence/sequence.js +1 -1
  202. package/lib/commonjs/mol-plugin-ui/structure/focus.js +1 -1
  203. package/lib/commonjs/mol-plugin-ui/viewport.d.ts +2 -2
  204. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-cylinder.js +10 -10
  205. package/lib/commonjs/mol-repr/structure/visual/bond-inter-unit-line.js +10 -10
  206. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-cylinder.js +12 -12
  207. package/lib/commonjs/mol-repr/structure/visual/bond-intra-unit-line.js +12 -12
  208. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-symbol-mesh.js +16 -16
  209. package/lib/commonjs/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.js +1 -1
  210. package/lib/commonjs/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -0
  211. package/lib/commonjs/mol-repr/structure/visual/orientation-ellipsoid-mesh.js +4 -4
  212. package/lib/commonjs/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
  213. package/lib/commonjs/mol-repr/structure/visual/polymer-trace-mesh.js +2 -2
  214. package/lib/commonjs/mol-repr/structure/visual/util/bond.js +2 -2
  215. package/lib/commonjs/mol-repr/structure/visual/util/common.js +3 -3
  216. package/lib/commonjs/mol-repr/structure/visual/util/link.js +30 -30
  217. package/lib/commonjs/mol-repr/structure/visual/util/polymer/backbone.js +6 -6
  218. package/lib/commonjs/mol-repr/structure/visual/util/polymer/gap-iterator.js +3 -3
  219. package/lib/commonjs/mol-repr/structure/visual/util/polymer/trace-iterator.js +20 -20
  220. package/lib/commonjs/mol-repr/structure/visual/util/polymer.js +6 -6
  221. package/lib/commonjs/mol-script/language/symbol-table/core.d.ts +2 -2
  222. package/lib/commonjs/mol-script/runtime/query/table.js +13 -13
  223. package/lib/commonjs/mol-state/object.d.ts +3 -3
  224. package/lib/commonjs/mol-task/util/user-timing.js +1 -1
  225. package/lib/commonjs/mol-theme/clipping.js +19 -19
  226. package/lib/commonjs/mol-theme/color/atom-id.js +1 -1
  227. package/lib/commonjs/mol-theme/color/carbohydrate-symbol.js +1 -1
  228. package/lib/commonjs/mol-theme/color/chain-id.js +4 -4
  229. package/lib/commonjs/mol-theme/color/element-index.js +1 -1
  230. package/lib/commonjs/mol-theme/color/element-symbol.js +1 -1
  231. package/lib/commonjs/mol-theme/color/entity-id.js +4 -4
  232. package/lib/commonjs/mol-theme/color/entity-source.js +5 -4
  233. package/lib/commonjs/mol-theme/color/hydrophobicity.js +1 -1
  234. package/lib/commonjs/mol-theme/color/illustrative.js +1 -1
  235. package/lib/commonjs/mol-theme/color/model-index.js +1 -1
  236. package/lib/commonjs/mol-theme/color/molecule-type.js +8 -8
  237. package/lib/commonjs/mol-theme/color/occupancy.js +1 -1
  238. package/lib/commonjs/mol-theme/color/operator-hkl.js +1 -1
  239. package/lib/commonjs/mol-theme/color/operator-name.js +1 -1
  240. package/lib/commonjs/mol-theme/color/partial-charge.js +1 -1
  241. package/lib/commonjs/mol-theme/color/polymer-id.js +4 -4
  242. package/lib/commonjs/mol-theme/color/polymer-index.js +1 -1
  243. package/lib/commonjs/mol-theme/color/residue-name.js +1 -1
  244. package/lib/commonjs/mol-theme/color/secondary-structure.js +12 -12
  245. package/lib/commonjs/mol-theme/color/sequence-id.js +7 -7
  246. package/lib/commonjs/mol-theme/color/shape-group.js +1 -1
  247. package/lib/commonjs/mol-theme/color/uncertainty.js +1 -1
  248. package/lib/commonjs/mol-theme/color/uniform.js +1 -1
  249. package/lib/commonjs/mol-theme/color/unit-index.js +1 -1
  250. package/lib/commonjs/mol-theme/color/volume-value.js +1 -1
  251. package/lib/commonjs/mol-theme/label.js +3 -3
  252. package/lib/commonjs/mol-util/binding.js +4 -4
  253. package/lib/commonjs/mol-util/debug.d.ts +6 -1
  254. package/lib/commonjs/mol-util/debug.js +11 -1
  255. package/lib/commonjs/mol-util/input/input-observer.js +20 -20
  256. package/lib/commonjs/mol-util/string-builder.js +1 -1
  257. package/lib/commonjs/servers/model/preprocess/converter.js +1 -1
  258. package/lib/commonjs/servers/model/server/query.js +1 -1
  259. package/lib/commonjs/servers/model/utils/fetch-retry.js +3 -2
  260. package/lib/commonjs/servers/volume/server/algebra/coordinate.js +6 -6
  261. package/lib/commonjs/servers/volume/server/query/encode.js +1 -1
  262. package/lib/examples/alpha-orbitals/index.d.ts +1 -1
  263. package/lib/examples/alpha-orbitals/index.html +11 -0
  264. package/lib/examples/alpha-orbitals/index.js +4 -1
  265. package/lib/examples/basic-wrapper/custom-theme.js +1 -1
  266. package/lib/examples/proteopedia-wrapper/coloring.js +3 -3
  267. package/lib/extensions/alpha-orbitals/density.d.ts +1 -1
  268. package/lib/extensions/alpha-orbitals/density.js +6 -2
  269. package/lib/extensions/alpha-orbitals/orbitals.d.ts +1 -1
  270. package/lib/extensions/alpha-orbitals/orbitals.js +6 -3
  271. package/lib/extensions/anvil/algorithm.js +1 -1
  272. package/lib/extensions/cellpack/color/generate.js +1 -1
  273. package/lib/extensions/cellpack/color/provided.js +1 -1
  274. package/lib/extensions/cellpack/state.js +1 -1
  275. package/lib/extensions/dnatco/confal-pyramids/color.js +1 -1
  276. package/lib/extensions/g3d/model.js +1 -1
  277. package/lib/extensions/model-archive/quality-assessment/color/plddt.js +1 -1
  278. package/lib/extensions/model-archive/quality-assessment/color/qmean.js +1 -1
  279. package/lib/extensions/pdbe/structure-quality-report/color.js +1 -1
  280. package/lib/extensions/rcsb/assembly-symmetry/color.js +4 -4
  281. package/lib/extensions/rcsb/validation-report/color/density-fit.js +1 -1
  282. package/lib/extensions/rcsb/validation-report/color/geometry-quality.js +2 -2
  283. package/lib/extensions/rcsb/validation-report/color/random-coil-index.js +1 -1
  284. package/lib/extensions/rcsb/validation-report/representation.js +2 -2
  285. package/lib/mol-canvas3d/canvas3d.js +5 -1
  286. package/lib/mol-canvas3d/controls/trackball.js +7 -7
  287. package/lib/mol-canvas3d/helper/camera-helper.js +14 -14
  288. package/lib/mol-canvas3d/helper/interaction-events.js +5 -5
  289. package/lib/mol-canvas3d/passes/draw.js +34 -5
  290. package/lib/mol-canvas3d/passes/fxaa.js +5 -0
  291. package/lib/mol-canvas3d/passes/marking.js +5 -0
  292. package/lib/mol-canvas3d/passes/multi-sample.js +9 -0
  293. package/lib/mol-canvas3d/passes/pick.d.ts +18 -5
  294. package/lib/mol-canvas3d/passes/pick.js +125 -24
  295. package/lib/mol-canvas3d/passes/postprocessing.js +5 -0
  296. package/lib/mol-canvas3d/passes/smaa.js +5 -1
  297. package/lib/mol-canvas3d/passes/wboit.js +5 -1
  298. package/lib/mol-data/db/column.js +5 -5
  299. package/lib/mol-data/db/table.js +2 -2
  300. package/lib/mol-data/util/array.d.ts +1 -1
  301. package/lib/mol-geo/geometry/texture-mesh/color-smoothing.js +13 -0
  302. package/lib/mol-gl/compute/grid3d.d.ts +2 -2
  303. package/lib/mol-gl/compute/grid3d.js +30 -8
  304. package/lib/mol-gl/compute/histogram-pyramid/reduction.d.ts +1 -1
  305. package/lib/mol-gl/compute/histogram-pyramid/reduction.js +6 -1
  306. package/lib/mol-gl/compute/histogram-pyramid/sum.d.ts +1 -1
  307. package/lib/mol-gl/compute/histogram-pyramid/sum.js +6 -1
  308. package/lib/mol-gl/compute/marching-cubes/active-voxels.d.ts +1 -1
  309. package/lib/mol-gl/compute/marching-cubes/active-voxels.js +6 -1
  310. package/lib/mol-gl/compute/marching-cubes/isosurface.d.ts +1 -1
  311. package/lib/mol-gl/compute/marching-cubes/isosurface.js +10 -10
  312. package/lib/mol-gl/renderer.js +77 -32
  313. package/lib/mol-gl/scene.js +2 -0
  314. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.d.ts +1 -1
  315. package/lib/mol-gl/shader/chunks/assign-color-varying.glsl.js +1 -1
  316. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.d.ts +1 -1
  317. package/lib/mol-gl/shader/chunks/assign-material-color.glsl.js +1 -1
  318. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.d.ts +1 -1
  319. package/lib/mol-gl/shader/chunks/color-frag-params.glsl.js +1 -1
  320. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.d.ts +1 -1
  321. package/lib/mol-gl/shader/chunks/color-vert-params.glsl.js +1 -1
  322. package/lib/mol-gl/shader/cylinders.frag.d.ts +1 -1
  323. package/lib/mol-gl/shader/cylinders.frag.js +1 -1
  324. package/lib/mol-gl/shader/direct-volume.frag.d.ts +1 -1
  325. package/lib/mol-gl/shader/direct-volume.frag.js +1 -1
  326. package/lib/mol-gl/shader/image.frag.d.ts +1 -1
  327. package/lib/mol-gl/shader/image.frag.js +1 -1
  328. package/lib/mol-gl/shader/lines.frag.d.ts +1 -1
  329. package/lib/mol-gl/shader/lines.frag.js +1 -1
  330. package/lib/mol-gl/shader/mesh.frag.d.ts +1 -1
  331. package/lib/mol-gl/shader/mesh.frag.js +1 -1
  332. package/lib/mol-gl/shader/points.frag.d.ts +1 -1
  333. package/lib/mol-gl/shader/points.frag.js +1 -1
  334. package/lib/mol-gl/shader/spheres.frag.d.ts +1 -1
  335. package/lib/mol-gl/shader/spheres.frag.js +1 -1
  336. package/lib/mol-gl/shader/text.frag.d.ts +1 -1
  337. package/lib/mol-gl/shader/text.frag.js +1 -1
  338. package/lib/mol-gl/shader-code.d.ts +1 -1
  339. package/lib/mol-gl/shader-code.js +41 -9
  340. package/lib/mol-gl/webgl/compat.d.ts +34 -1
  341. package/lib/mol-gl/webgl/compat.js +48 -1
  342. package/lib/mol-gl/webgl/context.d.ts +2 -0
  343. package/lib/mol-gl/webgl/context.js +3 -0
  344. package/lib/mol-gl/webgl/extensions.d.ts +3 -2
  345. package/lib/mol-gl/webgl/extensions.js +7 -2
  346. package/lib/mol-gl/webgl/timer.d.ts +22 -0
  347. package/lib/mol-gl/webgl/timer.js +164 -0
  348. package/lib/mol-io/common/binary-cif/array-encoder.js +18 -18
  349. package/lib/mol-io/common/binary-cif/decoder.js +16 -16
  350. package/lib/mol-io/common/binary-cif/encoding.js +9 -9
  351. package/lib/mol-io/reader/cif/binary/field.js +3 -3
  352. package/lib/mol-io/reader/cif/data-model.js +14 -14
  353. package/lib/mol-io/reader/cif/schema.js +1 -1
  354. package/lib/mol-io/reader/cif/text/parser.js +23 -23
  355. package/lib/mol-io/reader/common/text/column/fixed.js +1 -1
  356. package/lib/mol-io/reader/common/text/column/token.js +1 -1
  357. package/lib/mol-io/reader/common/text/number-parser.js +6 -6
  358. package/lib/mol-io/reader/csv/parser.js +8 -8
  359. package/lib/mol-io/writer/cif/encoder/binary.js +10 -10
  360. package/lib/mol-io/writer/cif/encoder/text.js +7 -7
  361. package/lib/mol-io/writer/cif/encoder.js +8 -8
  362. package/lib/mol-io/writer/mol2/encoder.js +4 -4
  363. package/lib/mol-math/geometry/gaussian-density/gpu.js +13 -2
  364. package/lib/mol-model/sequence/alignment/sequence.js +3 -3
  365. package/lib/mol-model/sequence/sequence.js +9 -9
  366. package/lib/mol-model/structure/export/categories/atom_site_operator_mapping.js +3 -3
  367. package/lib/mol-model/structure/export/categories/secondary-structure.js +2 -2
  368. package/lib/mol-model/structure/export/categories/utils.js +1 -1
  369. package/lib/mol-model/structure/model/model.js +2 -2
  370. package/lib/mol-model/structure/model/properties/custom/indexed.js +6 -6
  371. package/lib/mol-model/structure/model/properties/utils/atomic-ranges.js +1 -1
  372. package/lib/mol-model/structure/model/types.js +116 -116
  373. package/lib/mol-model/structure/query/context.js +1 -1
  374. package/lib/mol-model/structure/query/queries/generators.js +5 -5
  375. package/lib/mol-model/structure/query/queries/internal.js +4 -4
  376. package/lib/mol-model/structure/query/queries/modifiers.js +4 -4
  377. package/lib/mol-model/structure/query/utils/structure-distance.d.ts +5 -54
  378. package/lib/mol-model/structure/query/utils/structure-distance.js +9 -9
  379. package/lib/mol-model/structure/structure/carbohydrates/constants.js +106 -106
  380. package/lib/mol-model/structure/structure/element/loci.js +5 -5
  381. package/lib/mol-model/structure/structure/element/stats.js +5 -5
  382. package/lib/mol-model/structure/structure/properties.js +5 -5
  383. package/lib/mol-model/structure/structure/structure.js +11 -11
  384. package/lib/mol-model/structure/structure/unit/bonds/inter-compute.js +5 -5
  385. package/lib/mol-model/structure/structure/unit/bonds/intra-compute.js +4 -4
  386. package/lib/mol-model/structure/structure/unit/bonds.js +2 -2
  387. package/lib/mol-model/structure/structure/unit/resonance.js +1 -1
  388. package/lib/mol-model/structure/structure/unit/rings/compute.js +6 -6
  389. package/lib/mol-model/structure/structure/unit/rings.js +6 -6
  390. package/lib/mol-model/structure/structure/unit.js +16 -16
  391. package/lib/mol-model/structure/structure/util/superposition-sifts-mapping.js +1 -1
  392. package/lib/mol-model/structure/util.js +4 -4
  393. package/lib/mol-model-formats/structure/basic/atomic.js +2 -2
  394. package/lib/mol-model-formats/structure/basic/parser.js +4 -4
  395. package/lib/mol-model-formats/structure/basic/properties.js +1 -1
  396. package/lib/mol-model-formats/structure/basic/sort.js +1 -1
  397. package/lib/mol-model-formats/structure/basic/util.js +1 -1
  398. package/lib/mol-model-formats/structure/cif-core.js +6 -6
  399. package/lib/mol-model-formats/structure/common/entity.js +1 -1
  400. package/lib/mol-model-formats/structure/cube.js +1 -1
  401. package/lib/mol-model-formats/structure/gro.js +1 -1
  402. package/lib/mol-model-formats/structure/mol.js +1 -1
  403. package/lib/mol-model-formats/structure/mol2.js +4 -4
  404. package/lib/mol-model-formats/structure/prmtop.js +1 -1
  405. package/lib/mol-model-formats/structure/property/bonds/chem_comp.js +3 -3
  406. package/lib/mol-model-formats/structure/property/bonds/index-pair.js +1 -1
  407. package/lib/mol-model-formats/structure/property/bonds/struct_conn.js +6 -6
  408. package/lib/mol-model-formats/structure/property/secondary-structure.js +8 -8
  409. package/lib/mol-model-formats/structure/psf.js +1 -1
  410. package/lib/mol-model-formats/structure/top.js +1 -1
  411. package/lib/mol-model-formats/structure/xyz.js +1 -1
  412. package/lib/mol-model-props/computed/accessible-surface-area/shrake-rupley/radii.js +2 -2
  413. package/lib/mol-model-props/computed/accessible-surface-area/shrake-rupley.js +3 -3
  414. package/lib/mol-model-props/computed/accessible-surface-area.js +2 -2
  415. package/lib/mol-model-props/computed/chemistry/functional-group.js +31 -31
  416. package/lib/mol-model-props/computed/chemistry/geometry.js +22 -22
  417. package/lib/mol-model-props/computed/chemistry/valence-model.js +32 -32
  418. package/lib/mol-model-props/computed/interactions/charged.js +39 -39
  419. package/lib/mol-model-props/computed/interactions/common.js +34 -34
  420. package/lib/mol-model-props/computed/interactions/contacts-builder.js +1 -1
  421. package/lib/mol-model-props/computed/interactions/contacts.js +1 -1
  422. package/lib/mol-model-props/computed/interactions/halogen-bonds.js +12 -12
  423. package/lib/mol-model-props/computed/interactions/hydrogen-bonds.js +32 -32
  424. package/lib/mol-model-props/computed/interactions/hydrophobic.js +9 -9
  425. package/lib/mol-model-props/computed/interactions/metal.js +26 -26
  426. package/lib/mol-model-props/computed/interactions/refine.js +20 -20
  427. package/lib/mol-model-props/computed/representations/interactions-inter-unit-cylinder.js +2 -2
  428. package/lib/mol-model-props/computed/representations/interactions-intra-unit-cylinder.js +2 -2
  429. package/lib/mol-model-props/computed/secondary-structure/dssp/bends.js +1 -1
  430. package/lib/mol-model-props/computed/secondary-structure/dssp/bridges.js +12 -12
  431. package/lib/mol-model-props/computed/secondary-structure/dssp/helices.js +6 -6
  432. package/lib/mol-model-props/computed/secondary-structure/dssp/ladders.js +3 -3
  433. package/lib/mol-model-props/computed/secondary-structure/dssp/sheets.js +11 -11
  434. package/lib/mol-model-props/computed/secondary-structure/dssp/turns.js +3 -3
  435. package/lib/mol-model-props/computed/secondary-structure/dssp.js +30 -30
  436. package/lib/mol-model-props/computed/themes/accessible-surface-area.js +1 -1
  437. package/lib/mol-model-props/computed/themes/interaction-type.js +10 -10
  438. package/lib/mol-model-props/integrative/cross-link-restraint/color.js +1 -1
  439. package/lib/mol-model-props/integrative/cross-link-restraint/format.js +3 -3
  440. package/lib/mol-model-props/sequence/sifts-mapping.js +1 -1
  441. package/lib/mol-model-props/sequence/themes/sifts-mapping.js +1 -1
  442. package/lib/mol-plugin/animation-loop.d.ts +2 -1
  443. package/lib/mol-plugin/animation-loop.js +18 -5
  444. package/lib/mol-plugin/behavior/dynamic/camera.js +12 -12
  445. package/lib/mol-plugin/behavior/dynamic/representation.js +7 -7
  446. package/lib/mol-plugin/context.d.ts +2 -2
  447. package/lib/mol-plugin/state.d.ts +1 -14
  448. package/lib/mol-plugin/version.js +2 -2
  449. package/lib/mol-plugin-state/formats/volume.d.ts +12 -11
  450. package/lib/mol-plugin-state/formats/volume.js +20 -13
  451. package/lib/mol-plugin-state/helpers/structure-selection-query.js +5 -5
  452. package/lib/mol-plugin-state/transforms/representation.js +2 -2
  453. package/lib/mol-plugin-ui/controls/parameters.d.ts +1 -1
  454. package/lib/mol-plugin-ui/sequence/polymer.js +1 -1
  455. package/lib/mol-plugin-ui/sequence/sequence.js +1 -1
  456. package/lib/mol-plugin-ui/structure/focus.js +1 -1
  457. package/lib/mol-plugin-ui/viewport.d.ts +2 -2
  458. package/lib/mol-repr/structure/visual/bond-inter-unit-cylinder.js +10 -10
  459. package/lib/mol-repr/structure/visual/bond-inter-unit-line.js +10 -10
  460. package/lib/mol-repr/structure/visual/bond-intra-unit-cylinder.js +12 -12
  461. package/lib/mol-repr/structure/visual/bond-intra-unit-line.js +12 -12
  462. package/lib/mol-repr/structure/visual/carbohydrate-symbol-mesh.js +16 -16
  463. package/lib/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.js +1 -1
  464. package/lib/mol-repr/structure/visual/gaussian-surface-mesh.js +9 -0
  465. package/lib/mol-repr/structure/visual/orientation-ellipsoid-mesh.js +4 -4
  466. package/lib/mol-repr/structure/visual/polymer-direction-wedge.js +1 -1
  467. package/lib/mol-repr/structure/visual/polymer-trace-mesh.js +2 -2
  468. package/lib/mol-repr/structure/visual/util/bond.js +2 -2
  469. package/lib/mol-repr/structure/visual/util/common.js +3 -3
  470. package/lib/mol-repr/structure/visual/util/link.js +30 -30
  471. package/lib/mol-repr/structure/visual/util/polymer/backbone.js +6 -6
  472. package/lib/mol-repr/structure/visual/util/polymer/gap-iterator.js +3 -3
  473. package/lib/mol-repr/structure/visual/util/polymer/trace-iterator.js +20 -20
  474. package/lib/mol-repr/structure/visual/util/polymer.js +6 -6
  475. package/lib/mol-script/language/symbol-table/core.d.ts +2 -2
  476. package/lib/mol-script/runtime/query/table.js +13 -13
  477. package/lib/mol-state/object.d.ts +3 -3
  478. package/lib/mol-task/util/user-timing.js +1 -1
  479. package/lib/mol-theme/clipping.js +19 -19
  480. package/lib/mol-theme/color/atom-id.js +1 -1
  481. package/lib/mol-theme/color/carbohydrate-symbol.js +1 -1
  482. package/lib/mol-theme/color/chain-id.js +4 -4
  483. package/lib/mol-theme/color/element-index.js +1 -1
  484. package/lib/mol-theme/color/element-symbol.js +1 -1
  485. package/lib/mol-theme/color/entity-id.js +4 -4
  486. package/lib/mol-theme/color/entity-source.js +5 -4
  487. package/lib/mol-theme/color/hydrophobicity.js +1 -1
  488. package/lib/mol-theme/color/illustrative.js +1 -1
  489. package/lib/mol-theme/color/model-index.js +1 -1
  490. package/lib/mol-theme/color/molecule-type.js +8 -8
  491. package/lib/mol-theme/color/occupancy.js +1 -1
  492. package/lib/mol-theme/color/operator-hkl.js +1 -1
  493. package/lib/mol-theme/color/operator-name.js +1 -1
  494. package/lib/mol-theme/color/partial-charge.js +1 -1
  495. package/lib/mol-theme/color/polymer-id.js +4 -4
  496. package/lib/mol-theme/color/polymer-index.js +1 -1
  497. package/lib/mol-theme/color/residue-name.js +1 -1
  498. package/lib/mol-theme/color/secondary-structure.js +12 -12
  499. package/lib/mol-theme/color/sequence-id.js +7 -7
  500. package/lib/mol-theme/color/shape-group.js +1 -1
  501. package/lib/mol-theme/color/uncertainty.js +1 -1
  502. package/lib/mol-theme/color/uniform.js +1 -1
  503. package/lib/mol-theme/color/unit-index.js +1 -1
  504. package/lib/mol-theme/color/volume-value.js +1 -1
  505. package/lib/mol-theme/label.js +3 -3
  506. package/lib/mol-util/binding.js +4 -4
  507. package/lib/mol-util/debug.d.ts +6 -1
  508. package/lib/mol-util/debug.js +9 -1
  509. package/lib/mol-util/input/input-observer.js +20 -20
  510. package/lib/mol-util/string-builder.js +1 -1
  511. package/lib/servers/model/preprocess/converter.js +1 -1
  512. package/lib/servers/model/server/query.js +1 -1
  513. package/lib/servers/model/utils/fetch-retry.js +3 -2
  514. package/lib/servers/volume/server/algebra/coordinate.js +6 -6
  515. package/lib/servers/volume/server/query/encode.js +1 -1
  516. package/package.json +8 -8
@@ -55,36 +55,36 @@ function addUnitPositiveCharges(structure, unit, builder) {
55
55
  if (PositvelyCharged.includes(compId)) {
56
56
  builder.startState();
57
57
  for (var j = start; j < end; ++j) {
58
- if ((0, util_1.typeSymbol)(unit, j) === "N" /* N */ && !types_1.ProteinBackboneAtoms.has((0, util_1.atomId)(unit, j))) {
58
+ if ((0, util_1.typeSymbol)(unit, j) === "N" /* Elements.N */ && !types_1.ProteinBackboneAtoms.has((0, util_1.atomId)(unit, j))) {
59
59
  builder.pushMember(x[elements[j]], y[elements[j]], z[elements[j]], j);
60
60
  }
61
61
  }
62
- builder.finishState(1 /* PositiveCharge */, 0 /* None */);
62
+ builder.finishState(1 /* FeatureType.PositiveCharge */, 0 /* FeatureGroup.None */);
63
63
  }
64
64
  else if (!types_1.PolymerNames.has(compId)) {
65
65
  addedElements.clear();
66
66
  for (var j = start; j < end; ++j) {
67
- var group = 0 /* None */;
67
+ var group = 0 /* FeatureGroup.None */;
68
68
  if ((0, functional_group_1.isGuanidine)(structure, unit, j)) {
69
- group = 8 /* Guanidine */;
69
+ group = 8 /* FeatureGroup.Guanidine */;
70
70
  }
71
71
  else if ((0, functional_group_1.isAcetamidine)(structure, unit, j)) {
72
- group = 9 /* Acetamidine */;
72
+ group = 9 /* FeatureGroup.Acetamidine */;
73
73
  }
74
74
  if (group) {
75
75
  builder.startState();
76
76
  (0, util_1.eachBondedAtom)(structure, unit, j, function (_, k) {
77
- if ((0, util_1.typeSymbol)(unit, k) === "N" /* N */) {
77
+ if ((0, util_1.typeSymbol)(unit, k) === "N" /* Elements.N */) {
78
78
  addedElements.add(k);
79
79
  builder.pushMember(x[elements[k]], y[elements[k]], z[elements[k]], k);
80
80
  }
81
81
  });
82
- builder.finishState(1 /* PositiveCharge */, group);
82
+ builder.finishState(1 /* FeatureType.PositiveCharge */, group);
83
83
  }
84
84
  }
85
85
  for (var j = start; j < end; ++j) {
86
86
  if (charge[j] > 0 && !addedElements.has(j)) {
87
- builder.add(1 /* PositiveCharge */, 0 /* None */, x[elements[j]], y[elements[j]], z[elements[j]], j);
87
+ builder.add(1 /* FeatureType.PositiveCharge */, 0 /* FeatureGroup.None */, x[elements[j]], y[elements[j]], z[elements[j]], j);
88
88
  }
89
89
  }
90
90
  }
@@ -103,59 +103,59 @@ function addUnitNegativeCharges(structure, unit, builder) {
103
103
  if (NegativelyCharged.includes(compId)) {
104
104
  builder.startState();
105
105
  for (var j = start; j < end; ++j) {
106
- if ((0, util_1.typeSymbol)(unit, j) === "O" /* O */ && !types_1.ProteinBackboneAtoms.has((0, util_1.atomId)(unit, j))) {
106
+ if ((0, util_1.typeSymbol)(unit, j) === "O" /* Elements.O */ && !types_1.ProteinBackboneAtoms.has((0, util_1.atomId)(unit, j))) {
107
107
  builder.pushMember(x[elements[j]], y[elements[j]], z[elements[j]], j);
108
108
  }
109
109
  }
110
- builder.finishState(2 /* NegativeCharge */, 0 /* None */);
110
+ builder.finishState(2 /* FeatureType.NegativeCharge */, 0 /* FeatureGroup.None */);
111
111
  }
112
112
  else if (types_1.BaseNames.has(compId)) {
113
113
  for (var j = start; j < end; ++j) {
114
114
  if ((0, functional_group_1.isPhosphate)(structure, unit, j)) {
115
115
  builder.startState();
116
116
  (0, util_1.eachBondedAtom)(structure, unit, j, function (_, k) {
117
- if ((0, util_1.typeSymbol)(unit, k) === "O" /* O */) {
117
+ if ((0, util_1.typeSymbol)(unit, k) === "O" /* Elements.O */) {
118
118
  builder.pushMember(x[elements[k]], y[elements[k]], z[elements[k]], k);
119
119
  }
120
120
  });
121
- builder.finishState(2 /* NegativeCharge */, 6 /* Phosphate */);
121
+ builder.finishState(2 /* FeatureType.NegativeCharge */, 6 /* FeatureGroup.Phosphate */);
122
122
  }
123
123
  }
124
124
  }
125
125
  else if (!types_1.PolymerNames.has(compId)) {
126
126
  for (var j = start; j < end; ++j) {
127
127
  builder.startState();
128
- if ((0, util_1.typeSymbol)(unit, j) === "N" /* N */ && !types_1.ProteinBackboneAtoms.has((0, util_1.atomId)(unit, j))) {
128
+ if ((0, util_1.typeSymbol)(unit, j) === "N" /* Elements.N */ && !types_1.ProteinBackboneAtoms.has((0, util_1.atomId)(unit, j))) {
129
129
  builder.pushMember(x[elements[j]], y[elements[j]], z[elements[j]], j);
130
130
  }
131
- builder.finishState(2 /* NegativeCharge */, 0 /* None */);
132
- var group = 0 /* None */;
131
+ builder.finishState(2 /* FeatureType.NegativeCharge */, 0 /* FeatureGroup.None */);
132
+ var group = 0 /* FeatureGroup.None */;
133
133
  if ((0, functional_group_1.isSulfonicAcid)(structure, unit, j)) {
134
- group = 4 /* SulfonicAcid */;
134
+ group = 4 /* FeatureGroup.SulfonicAcid */;
135
135
  }
136
136
  else if ((0, functional_group_1.isPhosphate)(structure, unit, j)) {
137
- group = 6 /* Phosphate */;
137
+ group = 6 /* FeatureGroup.Phosphate */;
138
138
  }
139
139
  else if ((0, functional_group_1.isSulfate)(structure, unit, j)) {
140
- group = 5 /* Sulfate */;
140
+ group = 5 /* FeatureGroup.Sulfate */;
141
141
  }
142
142
  else if ((0, functional_group_1.isCarboxylate)(structure, unit, j)) {
143
- group = 10 /* Carboxylate */;
143
+ group = 10 /* FeatureGroup.Carboxylate */;
144
144
  }
145
145
  if (group) {
146
146
  builder.startState();
147
147
  (0, util_1.eachBondedAtom)(structure, unit, j, function (_, k) {
148
- if ((0, util_1.typeSymbol)(unit, k) === "O" /* O */) {
148
+ if ((0, util_1.typeSymbol)(unit, k) === "O" /* Elements.O */) {
149
149
  addedElements.add(k);
150
150
  builder.pushMember(x[elements[k]], y[elements[k]], z[elements[k]], k);
151
151
  }
152
152
  });
153
- builder.finishState(2 /* NegativeCharge */, group);
153
+ builder.finishState(2 /* FeatureType.NegativeCharge */, group);
154
154
  }
155
155
  }
156
156
  for (var j = start; j < end; ++j) {
157
157
  if (charge[j] < 0 && !addedElements.has(j)) {
158
- builder.add(2 /* NegativeCharge */, 0 /* None */, x[elements[j]], y[elements[j]], z[elements[j]], j);
158
+ builder.add(2 /* FeatureType.NegativeCharge */, 0 /* FeatureGroup.None */, x[elements[j]], y[elements[j]], z[elements[j]], j);
159
159
  }
160
160
  }
161
161
  }
@@ -172,19 +172,19 @@ function addUnitAromaticRings(structure, unit, builder) {
172
172
  var j = ring[i];
173
173
  builder.pushMember(x[elements[j]], y[elements[j]], z[elements[j]], j);
174
174
  }
175
- builder.finishState(3 /* AromaticRing */, 0 /* None */);
175
+ builder.finishState(3 /* FeatureType.AromaticRing */, 0 /* FeatureGroup.None */);
176
176
  }
177
177
  }
178
178
  function isIonic(ti, tj) {
179
- return ((ti === 2 /* NegativeCharge */ && tj === 1 /* PositiveCharge */) ||
180
- (ti === 1 /* PositiveCharge */ && tj === 2 /* NegativeCharge */));
179
+ return ((ti === 2 /* FeatureType.NegativeCharge */ && tj === 1 /* FeatureType.PositiveCharge */) ||
180
+ (ti === 1 /* FeatureType.PositiveCharge */ && tj === 2 /* FeatureType.NegativeCharge */));
181
181
  }
182
182
  function isPiStacking(ti, tj) {
183
- return ti === 3 /* AromaticRing */ && tj === 3 /* AromaticRing */;
183
+ return ti === 3 /* FeatureType.AromaticRing */ && tj === 3 /* FeatureType.AromaticRing */;
184
184
  }
185
185
  function isCationPi(ti, tj) {
186
- return ((ti === 3 /* AromaticRing */ && tj === 1 /* PositiveCharge */) ||
187
- (ti === 1 /* PositiveCharge */ && tj === 3 /* AromaticRing */));
186
+ return ((ti === 3 /* FeatureType.AromaticRing */ && tj === 1 /* FeatureType.PositiveCharge */) ||
187
+ (ti === 1 /* FeatureType.PositiveCharge */ && tj === 3 /* FeatureType.AromaticRing */));
188
188
  }
189
189
  var tmpPointA = (0, linear_algebra_1.Vec3)();
190
190
  var tmpPointB = (0, linear_algebra_1.Vec3)();
@@ -249,7 +249,7 @@ function testIonic(structure, infoA, infoB, distanceSq, opts) {
249
249
  var typeB = infoB.types[infoB.feature];
250
250
  if (isIonic(typeA, typeB)) {
251
251
  if (areFeaturesWithinDistanceSq(infoA, infoB, opts.distanceMaxSq)) {
252
- return 1 /* Ionic */;
252
+ return 1 /* InteractionType.Ionic */;
253
253
  }
254
254
  }
255
255
  }
@@ -263,10 +263,10 @@ function testPiStacking(structure, infoA, infoB, distanceSq, opts) {
263
263
  var offset = Math.min(getOffset(infoA, infoB, tmpNormalB), getOffset(infoB, infoA, tmpNormalA));
264
264
  if (offset <= opts.offsetMax) {
265
265
  if (angle <= opts.angleDevMax || angle >= deg180InRad - opts.angleDevMax) {
266
- return 3 /* PiStacking */; // parallel
266
+ return 3 /* InteractionType.PiStacking */; // parallel
267
267
  }
268
268
  else if (angle <= opts.angleDevMax + deg90InRad && angle >= deg90InRad - opts.angleDevMax) {
269
- return 3 /* PiStacking */; // t-shaped
269
+ return 3 /* InteractionType.PiStacking */; // t-shaped
270
270
  }
271
271
  }
272
272
  }
@@ -275,18 +275,18 @@ function testCationPi(structure, infoA, infoB, distanceSq, opts) {
275
275
  var typeA = infoA.types[infoA.feature];
276
276
  var typeB = infoB.types[infoB.feature];
277
277
  if (isCationPi(typeA, typeB)) {
278
- var _a = typeA === 3 /* AromaticRing */ ? [infoA, infoB] : [infoB, infoA], infoR = _a[0], infoC = _a[1];
278
+ var _a = typeA === 3 /* FeatureType.AromaticRing */ ? [infoA, infoB] : [infoB, infoA], infoR = _a[0], infoC = _a[1];
279
279
  getNormal(tmpNormalA, infoR);
280
280
  var offset = getOffset(infoC, infoR, tmpNormalA);
281
281
  if (offset <= opts.offsetMax) {
282
- return 2 /* CationPi */;
282
+ return 2 /* InteractionType.CationPi */;
283
283
  }
284
284
  }
285
285
  }
286
286
  //
287
- exports.NegativChargeProvider = features_1.Features.Provider([2 /* NegativeCharge */], addUnitNegativeCharges);
288
- exports.PositiveChargeProvider = features_1.Features.Provider([1 /* PositiveCharge */], addUnitPositiveCharges);
289
- exports.AromaticRingProvider = features_1.Features.Provider([3 /* AromaticRing */], addUnitAromaticRings);
287
+ exports.NegativChargeProvider = features_1.Features.Provider([2 /* FeatureType.NegativeCharge */], addUnitNegativeCharges);
288
+ exports.PositiveChargeProvider = features_1.Features.Provider([1 /* FeatureType.PositiveCharge */], addUnitPositiveCharges);
289
+ exports.AromaticRingProvider = features_1.Features.Provider([3 /* FeatureType.AromaticRing */], addUnitAromaticRings);
290
290
  exports.IonicProvider = {
291
291
  name: 'ionic',
292
292
  params: IonicParams,
@@ -294,7 +294,7 @@ exports.IonicProvider = {
294
294
  var opts = getIonicOptions(props);
295
295
  return {
296
296
  maxDistance: props.distanceMax,
297
- requiredFeatures: new Set([2 /* NegativeCharge */, 1 /* PositiveCharge */]),
297
+ requiredFeatures: new Set([2 /* FeatureType.NegativeCharge */, 1 /* FeatureType.PositiveCharge */]),
298
298
  getType: function (structure, infoA, infoB, distanceSq) { return testIonic(structure, infoA, infoB, distanceSq, opts); }
299
299
  };
300
300
  }
@@ -306,7 +306,7 @@ exports.PiStackingProvider = {
306
306
  var opts = getPiStackingOptions(props);
307
307
  return {
308
308
  maxDistance: props.distanceMax,
309
- requiredFeatures: new Set([3 /* AromaticRing */]),
309
+ requiredFeatures: new Set([3 /* FeatureType.AromaticRing */]),
310
310
  getType: function (structure, infoA, infoB, distanceSq) { return testPiStacking(structure, infoA, infoB, distanceSq, opts); }
311
311
  };
312
312
  }
@@ -318,7 +318,7 @@ exports.CationPiProvider = {
318
318
  var opts = getCationPiOptions(props);
319
319
  return {
320
320
  maxDistance: props.distanceMax,
321
- requiredFeatures: new Set([3 /* AromaticRing */, 1 /* PositiveCharge */]),
321
+ requiredFeatures: new Set([3 /* FeatureType.AromaticRing */, 1 /* FeatureType.PositiveCharge */]),
322
322
  getType: function (structure, infoA, infoB, distanceSq) { return testCationPi(structure, infoA, infoB, distanceSq, opts); }
323
323
  };
324
324
  }
@@ -92,83 +92,83 @@ var InteractionsInterContacts = /** @class */ (function (_super) {
92
92
  exports.InteractionsInterContacts = InteractionsInterContacts;
93
93
  function interactionTypeLabel(type) {
94
94
  switch (type) {
95
- case 4 /* HydrogenBond */:
95
+ case 4 /* InteractionType.HydrogenBond */:
96
96
  return 'Hydrogen Bond';
97
- case 6 /* Hydrophobic */:
97
+ case 6 /* InteractionType.Hydrophobic */:
98
98
  return 'Hydrophobic Contact';
99
- case 5 /* HalogenBond */:
99
+ case 5 /* InteractionType.HalogenBond */:
100
100
  return 'Halogen Bond';
101
- case 1 /* Ionic */:
101
+ case 1 /* InteractionType.Ionic */:
102
102
  return 'Ionic Interaction';
103
- case 7 /* MetalCoordination */:
103
+ case 7 /* InteractionType.MetalCoordination */:
104
104
  return 'Metal Coordination';
105
- case 2 /* CationPi */:
105
+ case 2 /* InteractionType.CationPi */:
106
106
  return 'Cation-Pi Interaction';
107
- case 3 /* PiStacking */:
107
+ case 3 /* InteractionType.PiStacking */:
108
108
  return 'Pi Stacking';
109
- case 8 /* WeakHydrogenBond */:
109
+ case 8 /* InteractionType.WeakHydrogenBond */:
110
110
  return 'Weak Hydrogen Bond';
111
- case 0 /* Unknown */:
111
+ case 0 /* InteractionType.Unknown */:
112
112
  return 'Unknown Interaction';
113
113
  }
114
114
  }
115
115
  exports.interactionTypeLabel = interactionTypeLabel;
116
116
  function featureTypeLabel(type) {
117
117
  switch (type) {
118
- case 0 /* None */:
118
+ case 0 /* FeatureType.None */:
119
119
  return 'None';
120
- case 1 /* PositiveCharge */:
120
+ case 1 /* FeatureType.PositiveCharge */:
121
121
  return 'Positive Charge';
122
- case 2 /* NegativeCharge */:
122
+ case 2 /* FeatureType.NegativeCharge */:
123
123
  return 'Negative Charge';
124
- case 3 /* AromaticRing */:
124
+ case 3 /* FeatureType.AromaticRing */:
125
125
  return 'Aromatic Ring';
126
- case 4 /* HydrogenDonor */:
126
+ case 4 /* FeatureType.HydrogenDonor */:
127
127
  return 'Hydrogen Donor';
128
- case 5 /* HydrogenAcceptor */:
128
+ case 5 /* FeatureType.HydrogenAcceptor */:
129
129
  return 'Hydrogen Acceptor';
130
- case 6 /* HalogenDonor */:
130
+ case 6 /* FeatureType.HalogenDonor */:
131
131
  return 'Halogen Donor';
132
- case 7 /* HalogenAcceptor */:
132
+ case 7 /* FeatureType.HalogenAcceptor */:
133
133
  return 'Halogen Acceptor';
134
- case 8 /* HydrophobicAtom */:
134
+ case 8 /* FeatureType.HydrophobicAtom */:
135
135
  return 'HydrophobicAtom';
136
- case 9 /* WeakHydrogenDonor */:
136
+ case 9 /* FeatureType.WeakHydrogenDonor */:
137
137
  return 'Weak Hydrogen Donor';
138
- case 10 /* IonicTypePartner */:
138
+ case 10 /* FeatureType.IonicTypePartner */:
139
139
  return 'Ionic Type Partner';
140
- case 11 /* DativeBondPartner */:
140
+ case 11 /* FeatureType.DativeBondPartner */:
141
141
  return 'Dative Bond Partner';
142
- case 12 /* TransitionMetal */:
142
+ case 12 /* FeatureType.TransitionMetal */:
143
143
  return 'Transition Metal';
144
- case 13 /* IonicTypeMetal */:
144
+ case 13 /* FeatureType.IonicTypeMetal */:
145
145
  return 'Ionic Type Metal';
146
146
  }
147
147
  }
148
148
  exports.featureTypeLabel = featureTypeLabel;
149
149
  function featureGroupLabel(group) {
150
150
  switch (group) {
151
- case 0 /* None */:
151
+ case 0 /* FeatureGroup.None */:
152
152
  return 'None';
153
- case 1 /* QuaternaryAmine */:
153
+ case 1 /* FeatureGroup.QuaternaryAmine */:
154
154
  return 'Quaternary Amine';
155
- case 2 /* TertiaryAmine */:
155
+ case 2 /* FeatureGroup.TertiaryAmine */:
156
156
  return 'Tertiary Amine';
157
- case 3 /* Sulfonium */:
157
+ case 3 /* FeatureGroup.Sulfonium */:
158
158
  return 'Sulfonium';
159
- case 4 /* SulfonicAcid */:
159
+ case 4 /* FeatureGroup.SulfonicAcid */:
160
160
  return 'Sulfonic Acid';
161
- case 5 /* Sulfate */:
161
+ case 5 /* FeatureGroup.Sulfate */:
162
162
  return 'Sulfate';
163
- case 6 /* Phosphate */:
163
+ case 6 /* FeatureGroup.Phosphate */:
164
164
  return 'Phosphate';
165
- case 7 /* Halocarbon */:
165
+ case 7 /* FeatureGroup.Halocarbon */:
166
166
  return 'Halocarbon';
167
- case 8 /* Guanidine */:
167
+ case 8 /* FeatureGroup.Guanidine */:
168
168
  return 'Guanidine';
169
- case 9 /* Acetamidine */:
169
+ case 9 /* FeatureGroup.Acetamidine */:
170
170
  return 'Acetamidine';
171
- case 10 /* Carboxylate */:
171
+ case 10 /* FeatureGroup.Carboxylate */:
172
172
  return 'Carboxylate';
173
173
  }
174
174
  }
@@ -55,7 +55,7 @@ var InterContactsBuilder;
55
55
  builder.finishUnitPair();
56
56
  },
57
57
  add: function (indexA, indexB, type) {
58
- builder.add(indexA, indexB, { type: type, flag: 0 /* None */ });
58
+ builder.add(indexA, indexB, { type: type, flag: 0 /* InteractionFlag.None */ });
59
59
  },
60
60
  getContacts: function (unitsFeatures) {
61
61
  return new common_1.InteractionsInterContacts(builder.getMap(), unitsFeatures);
@@ -73,7 +73,7 @@ function checkLineOfSight(structure, infoA, infoB, distFactor) {
73
73
  continue;
74
74
  var element = (0, util_1.typeSymbol)(unit, i);
75
75
  // allow hydrogens
76
- if (element === "H" /* H */)
76
+ if (element === "H" /* Elements.H */)
77
77
  continue;
78
78
  var vdw = (0, atomic_1.VdwRadius)(element);
79
79
  // check distance
@@ -18,7 +18,7 @@ var HalogenBondsParams = {
18
18
  distanceMax: param_definition_1.ParamDefinition.Numeric(4.0, { min: 1, max: 5, step: 0.1 }),
19
19
  angleMax: param_definition_1.ParamDefinition.Numeric(30, { min: 0, max: 60, step: 1 }),
20
20
  };
21
- var halBondElements = ["CL" /* CL */, "BR" /* BR */, "I" /* I */, "AT" /* AT */];
21
+ var halBondElements = ["CL" /* Elements.CL */, "BR" /* Elements.BR */, "I" /* Elements.I */, "AT" /* Elements.AT */];
22
22
  /**
23
23
  * Halogen bond donors (X-C, with X one of Cl, Br, I or At) not F!
24
24
  */
@@ -28,12 +28,12 @@ function addUnitHalogenDonors(structure, unit, builder) {
28
28
  for (var i = 0, il = elements.length; i < il; ++i) {
29
29
  var element = (0, util_1.typeSymbol)(unit, i);
30
30
  if (halBondElements.includes(element)) {
31
- builder.add(6 /* HalogenDonor */, 0 /* None */, x[elements[i]], y[elements[i]], z[elements[i]], i);
31
+ builder.add(6 /* FeatureType.HalogenDonor */, 0 /* FeatureGroup.None */, x[elements[i]], y[elements[i]], z[elements[i]], i);
32
32
  }
33
33
  }
34
34
  }
35
- var X = ["N" /* N */, "O" /* O */, "S" /* S */];
36
- var Y = ["C" /* C */, "N" /* N */, "P" /* P */, "S" /* S */];
35
+ var X = ["N" /* Elements.N */, "O" /* Elements.O */, "S" /* Elements.S */];
36
+ var Y = ["C" /* Elements.C */, "N" /* Elements.N */, "P" /* Elements.P */, "S" /* Elements.S */];
37
37
  /**
38
38
  * Halogen bond acceptors (Y-{O|N|S}, with Y=C,P,N,S)
39
39
  */
@@ -50,7 +50,7 @@ function addUnitHalogenAcceptors(structure, unit, builder) {
50
50
  }
51
51
  });
52
52
  if (flag_1) {
53
- builder.add(7 /* HalogenAcceptor */, 0 /* None */, x[elements[i]], y[elements[i]], z[elements[i]], i);
53
+ builder.add(7 /* FeatureType.HalogenAcceptor */, 0 /* FeatureGroup.None */, x[elements[i]], y[elements[i]], z[elements[i]], i);
54
54
  }
55
55
  }
56
56
  };
@@ -59,8 +59,8 @@ function addUnitHalogenAcceptors(structure, unit, builder) {
59
59
  }
60
60
  }
61
61
  function isHalogenBond(ti, tj) {
62
- return ((ti === 7 /* HalogenAcceptor */ && tj === 6 /* HalogenDonor */) ||
63
- (ti === 6 /* HalogenDonor */ && tj === 7 /* HalogenAcceptor */));
62
+ return ((ti === 7 /* FeatureType.HalogenAcceptor */ && tj === 6 /* FeatureType.HalogenDonor */) ||
63
+ (ti === 6 /* FeatureType.HalogenDonor */ && tj === 7 /* FeatureType.HalogenAcceptor */));
64
64
  }
65
65
  // http://www.pnas.org/content/101/48/16789.full
66
66
  var OptimalHalogenAngle = (0, misc_1.degToRad)(180); // adjusted from 165 to account for spherical statistics
@@ -75,7 +75,7 @@ function testHalogenBond(structure, infoA, infoB, opts) {
75
75
  var typeB = infoB.types[infoB.feature];
76
76
  if (!isHalogenBond(typeA, typeB))
77
77
  return;
78
- var _a = typeA === 6 /* HalogenDonor */ ? [infoA, infoB] : [infoB, infoA], don = _a[0], acc = _a[1];
78
+ var _a = typeA === 6 /* FeatureType.HalogenDonor */ ? [infoA, infoB] : [infoB, infoA], don = _a[0], acc = _a[1];
79
79
  var donIndex = don.members[don.offsets[don.feature]];
80
80
  var accIndex = acc.members[acc.offsets[acc.feature]];
81
81
  var halogenAngles = (0, geometry_1.calcAngles)(structure, don.unit, donIndex, acc.unit, accIndex);
@@ -90,11 +90,11 @@ function testHalogenBond(structure, infoA, infoB, opts) {
90
90
  return;
91
91
  if (acceptorAngles.some(function (acceptorAngle) { return OptimalAcceptorAngle - acceptorAngle > opts.angleMax; }))
92
92
  return;
93
- return 5 /* HalogenBond */;
93
+ return 5 /* InteractionType.HalogenBond */;
94
94
  }
95
95
  //
96
- exports.HalogenDonorProvider = features_1.Features.Provider([6 /* HalogenDonor */], addUnitHalogenDonors);
97
- exports.HalogenAcceptorProvider = features_1.Features.Provider([7 /* HalogenAcceptor */], addUnitHalogenAcceptors);
96
+ exports.HalogenDonorProvider = features_1.Features.Provider([6 /* FeatureType.HalogenDonor */], addUnitHalogenDonors);
97
+ exports.HalogenAcceptorProvider = features_1.Features.Provider([7 /* FeatureType.HalogenAcceptor */], addUnitHalogenAcceptors);
98
98
  exports.HalogenBondsProvider = {
99
99
  name: 'halogen-bonds',
100
100
  params: HalogenBondsParams,
@@ -102,7 +102,7 @@ exports.HalogenBondsProvider = {
102
102
  var opts = getOptions(props);
103
103
  return {
104
104
  maxDistance: props.distanceMax,
105
- requiredFeatures: new Set([6 /* HalogenDonor */, 7 /* HalogenAcceptor */]),
105
+ requiredFeatures: new Set([6 /* FeatureType.HalogenDonor */, 7 /* FeatureType.HalogenAcceptor */]),
106
106
  getType: function (structure, infoA, infoB) { return testHalogenBond(structure, infoA, infoB, opts); }
107
107
  };
108
108
  }
@@ -55,8 +55,8 @@ function addUnitHydrogenDonors(structure, unit, builder) {
55
55
  // include both nitrogen atoms in histidine due to
56
56
  // their often ambiguous protonation assignment
57
57
  isHistidineNitrogen(unit, i)) || (totalH[i] > 0 &&
58
- (element === "N" /* N */ || element === "O" /* O */ || element === "S" /* S */))) {
59
- builder.add(4 /* HydrogenDonor */, 0 /* None */, x[elements[i]], y[elements[i]], z[elements[i]], i);
58
+ (element === "N" /* Elements.N */ || element === "O" /* Elements.O */ || element === "S" /* Elements.S */))) {
59
+ builder.add(4 /* FeatureType.HydrogenDonor */, 0 /* FeatureGroup.None */, x[elements[i]], y[elements[i]], z[elements[i]], i);
60
60
  }
61
61
  }
62
62
  }
@@ -68,12 +68,12 @@ function addUnitWeakHydrogenDonors(structure, unit, builder) {
68
68
  var elements = unit.elements;
69
69
  var _a = unit.model.atomicConformation, x = _a.x, y = _a.y, z = _a.z;
70
70
  for (var i = 0, il = elements.length; i < il; ++i) {
71
- if ((0, util_1.typeSymbol)(unit, i) === "C" /* C */ &&
71
+ if ((0, util_1.typeSymbol)(unit, i) === "C" /* Elements.C */ &&
72
72
  totalH[i] > 0 &&
73
- ((0, util_1.bondToElementCount)(structure, unit, i, "N" /* N */) > 0 ||
74
- (0, util_1.bondToElementCount)(structure, unit, i, "O" /* O */) > 0 ||
73
+ ((0, util_1.bondToElementCount)(structure, unit, i, "N" /* Elements.N */) > 0 ||
74
+ (0, util_1.bondToElementCount)(structure, unit, i, "O" /* Elements.O */) > 0 ||
75
75
  inAromaticRingWithElectronNegativeElement(unit, i))) {
76
- builder.add(9 /* WeakHydrogenDonor */, 0 /* None */, x[elements[i]], y[elements[i]], z[elements[i]], i);
76
+ builder.add(9 /* FeatureType.WeakHydrogenDonor */, 0 /* FeatureGroup.None */, x[elements[i]], y[elements[i]], z[elements[i]], i);
77
77
  }
78
78
  }
79
79
  }
@@ -86,7 +86,7 @@ function inAromaticRingWithElectronNegativeElement(unit, index) {
86
86
  var ring = all[ringIndices[i]];
87
87
  for (var j = 0, jl = ring.length; j < jl; ++j) {
88
88
  var element = (0, util_1.typeSymbol)(unit, ring[j]);
89
- if (element === "N" /* N */ || element === "O" /* O */) {
89
+ if (element === "N" /* Elements.N */ || element === "O" /* Elements.O */) {
90
90
  return true;
91
91
  }
92
92
  }
@@ -101,15 +101,15 @@ function addUnitHydrogenAcceptors(structure, unit, builder) {
101
101
  var elements = unit.elements;
102
102
  var _b = unit.model.atomicConformation, x = _b.x, y = _b.y, z = _b.z;
103
103
  var add = function (i) {
104
- builder.add(5 /* HydrogenAcceptor */, 0 /* None */, x[elements[i]], y[elements[i]], z[elements[i]], i);
104
+ builder.add(5 /* FeatureType.HydrogenAcceptor */, 0 /* FeatureGroup.None */, x[elements[i]], y[elements[i]], z[elements[i]], i);
105
105
  };
106
106
  for (var i = 0, il = elements.length; i < il; ++i) {
107
107
  var element = (0, util_1.typeSymbol)(unit, i);
108
- if (element === "O" /* O */) {
108
+ if (element === "O" /* Elements.O */) {
109
109
  // Basically assume all oxygen atoms are acceptors!
110
110
  add(i);
111
111
  }
112
- else if (element === "N" /* N */) {
112
+ else if (element === "N" /* Elements.N */) {
113
113
  if (isHistidineNitrogen(unit, i)) {
114
114
  // include both nitrogen atoms in histidine due to
115
115
  // their often ambiguous protonation assignment
@@ -120,14 +120,14 @@ function addUnitHydrogenAcceptors(structure, unit, builder) {
120
120
  // It must have at least one lone pair not conjugated
121
121
  var totalBonds = (0, util_1.bondCount)(structure, unit, i) + implicitH[i];
122
122
  var ig = idealGeometry[i];
123
- if ((ig === 4 /* Tetrahedral */ && totalBonds < 4) ||
124
- (ig === 3 /* Trigonal */ && totalBonds < 3) ||
125
- (ig === 2 /* Linear */ && totalBonds < 2)) {
123
+ if ((ig === 4 /* AtomGeometry.Tetrahedral */ && totalBonds < 4) ||
124
+ (ig === 3 /* AtomGeometry.Trigonal */ && totalBonds < 3) ||
125
+ (ig === 2 /* AtomGeometry.Linear */ && totalBonds < 2)) {
126
126
  add(i);
127
127
  }
128
128
  }
129
129
  }
130
- else if (element === "S" /* S */) {
130
+ else if (element === "S" /* Elements.S */) {
131
131
  var resname = (0, util_1.compId)(unit, i);
132
132
  if (resname === 'CYS' || resname === 'MET' || (0, util_1.formalCharge)(unit, i) === -1) {
133
133
  add(i);
@@ -136,7 +136,7 @@ function addUnitHydrogenAcceptors(structure, unit, builder) {
136
136
  }
137
137
  }
138
138
  function isWater(unit, index) {
139
- return unit.model.atomicHierarchy.derived.residue.moleculeType[unit.residueIndex[unit.elements[index]]] === 2 /* Water */;
139
+ return unit.model.atomicHierarchy.derived.residue.moleculeType[unit.residueIndex[unit.elements[index]]] === 2 /* MoleculeType.Water */;
140
140
  }
141
141
  function isBackbone(unit, index) {
142
142
  return types_1.ProteinBackboneAtoms.has((0, util_1.atomId)(unit, index));
@@ -145,7 +145,7 @@ function isRing(unit, index) {
145
145
  return unit.rings.elementRingIndices.has(index);
146
146
  }
147
147
  function isHistidineNitrogen(unit, index) {
148
- return (0, util_1.compId)(unit, index) === 'HIS' && (0, util_1.typeSymbol)(unit, index) === "N" /* N */ && isRing(unit, index);
148
+ return (0, util_1.compId)(unit, index) === 'HIS' && (0, util_1.typeSymbol)(unit, index) === "N" /* Elements.N */ && isRing(unit, index);
149
149
  }
150
150
  function isBackboneHydrogenBond(unitA, indexA, unitB, indexB) {
151
151
  return isBackbone(unitA, indexA) && isBackbone(unitB, indexB);
@@ -154,12 +154,12 @@ function isWaterHydrogenBond(unitA, indexA, unitB, indexB) {
154
154
  return isWater(unitA, indexA) && isWater(unitB, indexB);
155
155
  }
156
156
  function isHydrogenBond(ti, tj) {
157
- return ((ti === 5 /* HydrogenAcceptor */ && tj === 4 /* HydrogenDonor */) ||
158
- (ti === 4 /* HydrogenDonor */ && tj === 5 /* HydrogenAcceptor */));
157
+ return ((ti === 5 /* FeatureType.HydrogenAcceptor */ && tj === 4 /* FeatureType.HydrogenDonor */) ||
158
+ (ti === 4 /* FeatureType.HydrogenDonor */ && tj === 5 /* FeatureType.HydrogenAcceptor */));
159
159
  }
160
160
  function isWeakHydrogenBond(ti, tj) {
161
- return ((ti === 9 /* WeakHydrogenDonor */ && tj === 5 /* HydrogenAcceptor */) ||
162
- (ti === 5 /* HydrogenAcceptor */ && tj === 9 /* WeakHydrogenDonor */));
161
+ return ((ti === 9 /* FeatureType.WeakHydrogenDonor */ && tj === 5 /* FeatureType.HydrogenAcceptor */) ||
162
+ (ti === 5 /* FeatureType.HydrogenAcceptor */ && tj === 9 /* FeatureType.WeakHydrogenDonor */));
163
163
  }
164
164
  function getGeometryOptions(props) {
165
165
  return {
@@ -183,7 +183,7 @@ function checkGeometry(structure, don, acc, opts) {
183
183
  var idealDonAngle = geometry_1.AtomGeometryAngles.get(don.idealGeometry[donIndex]) || deg120InRad;
184
184
  if (donAngles.some(function (donAngle) { return Math.abs(idealDonAngle - donAngle) > opts.maxDonAngleDev; }))
185
185
  return;
186
- if (don.idealGeometry[donIndex] === 3 /* Trigonal */) {
186
+ if (don.idealGeometry[donIndex] === 3 /* AtomGeometry.Trigonal */) {
187
187
  var outOfPlane = (0, geometry_1.calcPlaneAngle)(structure, don.unit, donIndex, acc.unit, accIndex);
188
188
  if (outOfPlane !== undefined && outOfPlane > opts.maxDonOutOfPlaneAngle)
189
189
  return;
@@ -193,7 +193,7 @@ function checkGeometry(structure, don, acc, opts) {
193
193
  // Do not limit large acceptor angles
194
194
  if (accAngles.some(function (accAngle) { return idealAccAngle - accAngle > opts.maxAccAngleDev; }))
195
195
  return;
196
- if (acc.idealGeometry[accIndex] === 3 /* Trigonal */) {
196
+ if (acc.idealGeometry[accIndex] === 3 /* AtomGeometry.Trigonal */) {
197
197
  var outOfPlane = (0, geometry_1.calcPlaneAngle)(structure, acc.unit, accIndex, don.unit, donIndex);
198
198
  if (outOfPlane !== undefined && outOfPlane > opts.maxAccOutOfPlaneAngle)
199
199
  return;
@@ -205,33 +205,33 @@ function testHydrogenBond(structure, infoA, infoB, distanceSq, opts) {
205
205
  var typeB = infoB.types[infoB.feature];
206
206
  if (!isHydrogenBond(typeA, typeB))
207
207
  return;
208
- var _a = typeB === 5 /* HydrogenAcceptor */ ? [infoA, infoB] : [infoB, infoA], don = _a[0], acc = _a[1];
208
+ var _a = typeB === 5 /* FeatureType.HydrogenAcceptor */ ? [infoA, infoB] : [infoB, infoA], don = _a[0], acc = _a[1];
209
209
  var donIndex = don.members[don.offsets[don.feature]];
210
210
  var accIndex = acc.members[acc.offsets[acc.feature]];
211
211
  // check if distance is ok depending on non-sulfur-containing hbond
212
- var maxDistSq = (0, util_1.typeSymbol)(don.unit, donIndex) === "S" /* S */ || (0, util_1.typeSymbol)(acc.unit, accIndex) === "S" /* S */ ? opts.maxSulfurDistSq : opts.maxDistSq;
212
+ var maxDistSq = (0, util_1.typeSymbol)(don.unit, donIndex) === "S" /* Elements.S */ || (0, util_1.typeSymbol)(acc.unit, accIndex) === "S" /* Elements.S */ ? opts.maxSulfurDistSq : opts.maxDistSq;
213
213
  if (distanceSq > maxDistSq)
214
214
  return;
215
215
  if (!opts.includeWater && isWaterHydrogenBond(don.unit, donIndex, acc.unit, accIndex))
216
216
  return;
217
217
  if (!checkGeometry(structure, don, acc, opts))
218
218
  return;
219
- return 4 /* HydrogenBond */;
219
+ return 4 /* InteractionType.HydrogenBond */;
220
220
  }
221
221
  function testWeakHydrogenBond(structure, infoA, infoB, distanceSq, opts) {
222
222
  var typeA = infoA.types[infoA.feature];
223
223
  var typeB = infoB.types[infoB.feature];
224
224
  if (!isWeakHydrogenBond(typeA, typeB))
225
225
  return;
226
- var _a = typeB === 5 /* HydrogenAcceptor */ ? [infoA, infoB] : [infoB, infoA], don = _a[0], acc = _a[1];
226
+ var _a = typeB === 5 /* FeatureType.HydrogenAcceptor */ ? [infoA, infoB] : [infoB, infoA], don = _a[0], acc = _a[1];
227
227
  if (!checkGeometry(structure, don, acc, opts))
228
228
  return;
229
- return 8 /* WeakHydrogenBond */;
229
+ return 8 /* InteractionType.WeakHydrogenBond */;
230
230
  }
231
231
  //
232
- exports.HydrogenDonorProvider = features_1.Features.Provider([4 /* HydrogenDonor */], addUnitHydrogenDonors);
233
- exports.WeakHydrogenDonorProvider = features_1.Features.Provider([9 /* WeakHydrogenDonor */], addUnitWeakHydrogenDonors);
234
- exports.HydrogenAcceptorProvider = features_1.Features.Provider([5 /* HydrogenAcceptor */], addUnitHydrogenAcceptors);
232
+ exports.HydrogenDonorProvider = features_1.Features.Provider([4 /* FeatureType.HydrogenDonor */], addUnitHydrogenDonors);
233
+ exports.WeakHydrogenDonorProvider = features_1.Features.Provider([9 /* FeatureType.WeakHydrogenDonor */], addUnitWeakHydrogenDonors);
234
+ exports.HydrogenAcceptorProvider = features_1.Features.Provider([5 /* FeatureType.HydrogenAcceptor */], addUnitHydrogenAcceptors);
235
235
  exports.HydrogenBondsProvider = {
236
236
  name: 'hydrogen-bonds',
237
237
  params: HydrogenBondsParams,
@@ -240,7 +240,7 @@ exports.HydrogenBondsProvider = {
240
240
  var opts = getHydrogenBondsOptions(props);
241
241
  return {
242
242
  maxDistance: maxDistance,
243
- requiredFeatures: new Set([4 /* HydrogenDonor */, 5 /* HydrogenAcceptor */]),
243
+ requiredFeatures: new Set([4 /* FeatureType.HydrogenDonor */, 5 /* FeatureType.HydrogenAcceptor */]),
244
244
  getType: function (structure, infoA, infoB, distanceSq) { return testHydrogenBond(structure, infoA, infoB, distanceSq, opts); }
245
245
  };
246
246
  }
@@ -252,7 +252,7 @@ exports.WeakHydrogenBondsProvider = {
252
252
  var opts = getGeometryOptions(props);
253
253
  return {
254
254
  maxDistance: props.distanceMax,
255
- requiredFeatures: new Set([9 /* WeakHydrogenDonor */, 5 /* HydrogenAcceptor */]),
255
+ requiredFeatures: new Set([9 /* FeatureType.WeakHydrogenDonor */, 5 /* FeatureType.HydrogenAcceptor */]),
256
256
  getType: function (structure, infoA, infoB, distanceSq) { return testWeakHydrogenBond(structure, infoA, infoB, distanceSq, opts); }
257
257
  };
258
258
  }