react-cheminfo 0.18.0 → 0.20.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 (108) hide show
  1. package/lib/about/core/about.d.ts +15 -4
  2. package/lib/about/core/about.d.ts.map +1 -1
  3. package/lib/about/core/about.js +8 -1
  4. package/lib/about/core/about.js.map +1 -1
  5. package/lib/about/core/index.d.ts +1 -0
  6. package/lib/about/core/index.d.ts.map +1 -1
  7. package/lib/about/core/index.js +1 -0
  8. package/lib/about/core/index.js.map +1 -1
  9. package/lib/about/core/repository.d.ts +14 -0
  10. package/lib/about/core/repository.d.ts.map +1 -0
  11. package/lib/about/core/repository.js +21 -0
  12. package/lib/about/core/repository.js.map +1 -0
  13. package/lib/about/ui/AboutBuild.d.ts +5 -4
  14. package/lib/about/ui/AboutBuild.d.ts.map +1 -1
  15. package/lib/about/ui/AboutBuild.js +10 -10
  16. package/lib/about/ui/AboutBuild.js.map +1 -1
  17. package/lib/about/ui/AboutPage.d.ts.map +1 -1
  18. package/lib/about/ui/AboutPage.js +7 -8
  19. package/lib/about/ui/AboutPage.js.map +1 -1
  20. package/lib/about/ui/AboutVersion.d.ts +26 -0
  21. package/lib/about/ui/AboutVersion.d.ts.map +1 -0
  22. package/lib/about/ui/AboutVersion.js +54 -0
  23. package/lib/about/ui/AboutVersion.js.map +1 -0
  24. package/lib/about/ui/index.d.ts +2 -0
  25. package/lib/about/ui/index.d.ts.map +1 -1
  26. package/lib/about/ui/index.js +1 -0
  27. package/lib/about/ui/index.js.map +1 -1
  28. package/lib/build/core/buildInfo.d.ts +44 -0
  29. package/lib/build/core/buildInfo.d.ts.map +1 -1
  30. package/lib/build/core/buildInfo.js +63 -0
  31. package/lib/build/core/buildInfo.js.map +1 -1
  32. package/lib/build/core/index.d.ts +1 -1
  33. package/lib/build/core/index.d.ts.map +1 -1
  34. package/lib/build/core/index.js +1 -1
  35. package/lib/build/core/index.js.map +1 -1
  36. package/lib/build/vite/buildInfo.d.ts.map +1 -1
  37. package/lib/build/vite/buildInfo.js +2 -2
  38. package/lib/build/vite/buildInfo.js.map +1 -1
  39. package/lib/ecosystem/core/sites.d.ts.map +1 -1
  40. package/lib/ecosystem/core/sites.js +12 -0
  41. package/lib/ecosystem/core/sites.js.map +1 -1
  42. package/lib/ecosystem/core/types.d.ts +8 -0
  43. package/lib/ecosystem/core/types.d.ts.map +1 -1
  44. package/lib/molecule3d/core/camera.d.ts +89 -0
  45. package/lib/molecule3d/core/camera.d.ts.map +1 -0
  46. package/lib/molecule3d/core/camera.js +172 -0
  47. package/lib/molecule3d/core/camera.js.map +1 -0
  48. package/lib/molecule3d/core/index.d.ts +2 -0
  49. package/lib/molecule3d/core/index.d.ts.map +1 -1
  50. package/lib/molecule3d/core/index.js +1 -0
  51. package/lib/molecule3d/core/index.js.map +1 -1
  52. package/lib/molecule3d/ui/MoleculeCanvas3D.d.ts.map +1 -1
  53. package/lib/molecule3d/ui/MoleculeCanvas3D.js +14 -37
  54. package/lib/molecule3d/ui/MoleculeCanvas3D.js.map +1 -1
  55. package/lib/molecule3d/ui/camera.d.ts +35 -2
  56. package/lib/molecule3d/ui/camera.d.ts.map +1 -1
  57. package/lib/molecule3d/ui/camera.js +113 -4
  58. package/lib/molecule3d/ui/camera.js.map +1 -1
  59. package/lib/molecule3d/ui/captureScene.d.ts +14 -0
  60. package/lib/molecule3d/ui/captureScene.d.ts.map +1 -0
  61. package/lib/molecule3d/ui/captureScene.js +24 -0
  62. package/lib/molecule3d/ui/captureScene.js.map +1 -0
  63. package/lib/molecule3d/ui/createViewer.d.ts +18 -0
  64. package/lib/molecule3d/ui/createViewer.d.ts.map +1 -0
  65. package/lib/molecule3d/ui/createViewer.js +19 -0
  66. package/lib/molecule3d/ui/createViewer.js.map +1 -0
  67. package/lib/molecule3d/ui/moleculeViewer3DProps.d.ts +21 -0
  68. package/lib/molecule3d/ui/moleculeViewer3DProps.d.ts.map +1 -1
  69. package/lib/molecule3d/ui/useMoleculeScene.d.ts +47 -0
  70. package/lib/molecule3d/ui/useMoleculeScene.d.ts.map +1 -0
  71. package/lib/molecule3d/ui/useMoleculeScene.js +82 -0
  72. package/lib/molecule3d/ui/useMoleculeScene.js.map +1 -0
  73. package/lib/molecule3d/ui/useSharedCamera.d.ts +52 -0
  74. package/lib/molecule3d/ui/useSharedCamera.d.ts.map +1 -0
  75. package/lib/molecule3d/ui/useSharedCamera.js +82 -0
  76. package/lib/molecule3d/ui/useSharedCamera.js.map +1 -0
  77. package/lib/molecule3d/ui/viewer.d.ts +21 -15
  78. package/lib/molecule3d/ui/viewer.d.ts.map +1 -1
  79. package/lib/molecule3d/ui/viewer.js +41 -47
  80. package/lib/molecule3d/ui/viewer.js.map +1 -1
  81. package/lib/molecule3d/ui/viewerSpec.d.ts +17 -0
  82. package/lib/molecule3d/ui/viewerSpec.d.ts.map +1 -0
  83. package/lib/molecule3d/ui/viewerSpec.js +34 -0
  84. package/lib/molecule3d/ui/viewerSpec.js.map +1 -0
  85. package/package.json +1 -1
  86. package/src/about/core/about.ts +25 -5
  87. package/src/about/core/index.ts +1 -0
  88. package/src/about/core/repository.ts +22 -0
  89. package/src/about/ui/AboutBuild.tsx +13 -20
  90. package/src/about/ui/AboutPage.tsx +42 -28
  91. package/src/about/ui/AboutVersion.tsx +95 -0
  92. package/src/about/ui/index.ts +2 -0
  93. package/src/build/core/buildInfo.ts +67 -0
  94. package/src/build/core/index.ts +9 -1
  95. package/src/build/vite/buildInfo.ts +2 -2
  96. package/src/ecosystem/core/sites.ts +12 -0
  97. package/src/ecosystem/core/types.ts +8 -0
  98. package/src/molecule3d/core/camera.ts +212 -0
  99. package/src/molecule3d/core/index.ts +14 -0
  100. package/src/molecule3d/ui/MoleculeCanvas3D.tsx +14 -43
  101. package/src/molecule3d/ui/camera.ts +128 -7
  102. package/src/molecule3d/ui/captureScene.ts +31 -0
  103. package/src/molecule3d/ui/createViewer.ts +24 -0
  104. package/src/molecule3d/ui/moleculeViewer3DProps.ts +21 -0
  105. package/src/molecule3d/ui/useMoleculeScene.ts +141 -0
  106. package/src/molecule3d/ui/useSharedCamera.ts +121 -0
  107. package/src/molecule3d/ui/viewer.ts +45 -50
  108. package/src/molecule3d/ui/viewerSpec.ts +38 -0
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
12
12
  import { dirname, join, resolve } from 'node:path';
13
+ import { UNRELEASED_VERSION } from "../core/buildInfo.js";
13
14
  import { commitFromEnvironment, readGitHead } from "./gitHead.js";
14
15
  /** The module a site imports its build record from. */
15
16
  export const BUILD_INFO_MODULE = 'react-cheminfo/build-info';
@@ -73,7 +74,7 @@ export function cheminfoBuildInfo(options = {}) {
73
74
  export function resolveBuildInfo(root) {
74
75
  const repository = findRepositoryRoot(root);
75
76
  return {
76
- version: readVersion(repository) ?? readVersion(root) ?? UNRELEASED,
77
+ version: readVersion(repository) ?? readVersion(root) ?? UNRELEASED_VERSION,
77
78
  builtAt: buildInstant(),
78
79
  commit: readGitHead(repository) ?? commitFromEnvironment(),
79
80
  reactCheminfo: readOwnVersion(),
@@ -146,6 +147,5 @@ function buildInstant() {
146
147
  }
147
148
  const RESOLVED_MODULE = `\0${BUILD_INFO_MODULE}`;
148
149
  const OWN_NAME = 'react-cheminfo';
149
- const UNRELEASED = '0.0.0';
150
150
  const SECOND_LENGTH = 19;
151
151
  //# sourceMappingURL=buildInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildInfo.js","sourceRoot":"","sources":["../../../src/build/vite/buildInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildInfo.js","sourceRoot":"","sources":["../../../src/build/vite/buildInfo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAElE,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;AAY7D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA4B,EAAE;IAC9D,MAAM,EAAE,QAAQ,GAAG,iBAAiB,EAAE,GAAG,OAAO,CAAC;IACjD,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,IAAI,GAAc,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE7C,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,yEAAyE;QACzE,wEAAwE;QACxE,iDAAiD;QACjD,OAAO,EAAE,KAAK;QACd,MAAM;YACJ,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;QAC5D,CAAC;QACD,cAAc,CAAC,MAAM;YACnB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACnB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAC7B,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,SAAS,CAAC,EAAE;YACV,OAAO,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,EAAE;YACL,IAAI,EAAE,KAAK,eAAe;gBAAE,OAAO,SAAS,CAAC;YAC7C,OAAO,6BAA6B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAChE,CAAC;QACD,WAAW;YACT,IAAI,QAAQ,KAAK,KAAK;gBAAE,OAAO;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC/C,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,aAAa,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAE5C,OAAO;QACL,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,kBAAkB;QAC3E,OAAO,EAAE,YAAY,EAAE;QACvB,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,qBAAqB,EAAE;QAC1D,aAAa,EAAE,cAAc,EAAE;KAChC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,OAAO,GAAG,SAAS,CAAC;IAExB,SAAS,CAAC;QACR,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,SAAS;YAAE,OAAO,GAAG,SAAS,CAAC;QAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,4EAA4E;QAC5E,iCAAiC;QACjC,IAAI,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,SAAiB;IACpC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAChD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QACtD,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc;IACrB,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IAEpC,SAAS,CAAC;QACR,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,IAAI,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxE,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC3C,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,SAAiB;IAEjB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CACf,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC3B,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY;IACnB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7E,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC;AACpE,CAAC;AAED,MAAM,eAAe,GAAG,KAAK,iBAAiB,EAAE,CAAC;AACjD,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAClC,MAAM,aAAa,GAAG,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../../src/ecosystem/core/sites.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,YAAY,EACV,aAAa,EACb,MAAM,EACN,cAAc,EACd,QAAQ,GACT,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAwQnD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAEnD"}
1
+ {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../../src/ecosystem/core/sites.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,YAAY,EACV,aAAa,EACb,MAAM,EACN,cAAc,EACd,QAAQ,GACT,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAoRnD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAEnD"}
@@ -52,6 +52,7 @@ export const ECOSYSTEM_SITES = [
52
52
  name: { lead: 'openbabel', alt: 'cheminfo', dot: true },
53
53
  host: 'openbabel.cheminfo.org',
54
54
  repository: 'https://github.com/cheminfo/openbabel.cheminfo.org',
55
+ publicRepository: true,
55
56
  tagline: 'Convert a structure between any pair of chemical file formats.',
56
57
  group: 'structures',
57
58
  brand: '#0f766e',
@@ -74,6 +75,7 @@ export const ECOSYSTEM_SITES = [
74
75
  name: { lead: 'dbe', alt: 'cheminfo', dot: true },
75
76
  host: 'dbe.cheminfo.org',
76
77
  repository: 'https://github.com/cheminfo/dbe.cheminfo.org',
78
+ publicRepository: true,
77
79
  tagline: 'Count rings and double bonds from a formula or a structure.',
78
80
  group: 'basics',
79
81
  brand: '#63123f',
@@ -87,6 +89,7 @@ export const ECOSYSTEM_SITES = [
87
89
  name: { lead: 'NMR', alt: 'ium' },
88
90
  host: 'www.nmrium.org',
89
91
  repository: 'https://github.com/cheminfo/nmrium',
92
+ publicRepository: true,
90
93
  tagline: 'Process and assign NMR spectra in the browser.',
91
94
  group: 'spectra',
92
95
  brand: '#ea580c',
@@ -123,6 +126,7 @@ export const ECOSYSTEM_SITES = [
123
126
  name: { lead: 'surge', alt: 'cheminfo', dot: true },
124
127
  host: 'surge.cheminfo.org',
125
128
  repository: 'https://github.com/cheminfo/surge.cheminfo.org',
129
+ publicRepository: true,
126
130
  tagline: 'Every constitutional isomer of a molecular formula.',
127
131
  group: 'structures',
128
132
  brand: '#4338ca',
@@ -134,6 +138,7 @@ export const ECOSYSTEM_SITES = [
134
138
  name: { lead: 'tex', alt: 'cheminfo', dot: true },
135
139
  host: 'tex.cheminfo.org',
136
140
  repository: 'https://github.com/cheminfo/tex.cheminfo.org',
141
+ publicRepository: true,
137
142
  tagline: 'LaTeX formulas rendered to SVG or PNG from a URL.',
138
143
  group: 'computing',
139
144
  brand: '#a21caf',
@@ -156,6 +161,7 @@ export const ECOSYSTEM_SITES = [
156
161
  name: { lead: 'regexp', alt: 'cheminfo', dot: true },
157
162
  host: 'regexp.cheminfo.org',
158
163
  repository: 'https://github.com/cheminfo/regexp.cheminfo.org',
164
+ publicRepository: true,
159
165
  tagline: 'Learn regular expressions in a live playground.',
160
166
  group: 'computing',
161
167
  brand: '#1e3a8a',
@@ -167,6 +173,7 @@ export const ECOSYSTEM_SITES = [
167
173
  name: { lead: 'pdb', alt: 'cheminfo', dot: true },
168
174
  host: 'pdb.cheminfo.org',
169
175
  repository: 'https://github.com/cheminfo/pdb.cheminfo.org',
176
+ publicRepository: true,
170
177
  tagline: 'A fast look at any Protein Data Bank entry.',
171
178
  group: 'research',
172
179
  brand: '#2563eb',
@@ -178,6 +185,7 @@ export const ECOSYSTEM_SITES = [
178
185
  name: { lead: 'elucidation', alt: 'cheminfo', dot: true },
179
186
  host: 'elucidation.cheminfo.org',
180
187
  repository: 'https://github.com/cheminfo/elucidation.cheminfo.org',
188
+ publicRepository: true,
181
189
  tagline: 'A structure from a 1H NMR spectrum and a formula.',
182
190
  group: 'spectra',
183
191
  brand: '#7e22ce',
@@ -200,6 +208,7 @@ export const ECOSYSTEM_SITES = [
200
208
  name: { lead: 'Poly', alt: 'Carp' },
201
209
  host: 'polycarp.cheminfo.org',
202
210
  repository: 'https://github.com/cheminfo/polycarp.cheminfo.org',
211
+ publicRepository: true,
203
212
  tagline: 'Predict the microstructure of a radical copolymerisation.',
204
213
  group: 'research',
205
214
  brand: '#701a75',
@@ -233,6 +242,7 @@ export const ECOSYSTEM_SITES = [
233
242
  name: { lead: 'database', alt: 'cheminfo', dot: true },
234
243
  host: 'database.cheminfo.org',
235
244
  repository: 'https://github.com/cheminfo/database.cheminfo.org',
245
+ publicRepository: true,
236
246
  tagline: 'Query a real chemical dataset in SQL and in Mango.',
237
247
  group: 'research',
238
248
  brand: '#7c2d12',
@@ -244,6 +254,7 @@ export const ECOSYSTEM_SITES = [
244
254
  name: { lead: 'Symme', alt: 'Try' },
245
255
  host: 'symmetry.cheminfo.org',
246
256
  repository: 'https://github.com/cheminfo/symmetry.cheminfo.org',
257
+ publicRepository: true,
247
258
  tagline: 'Find the symmetry of a molecule, a crystal or a pattern.',
248
259
  group: 'basics',
249
260
  brand: '#9f1239',
@@ -257,6 +268,7 @@ export const ECOSYSTEM_SITES = [
257
268
  name: { lead: 'osiris', alt: 'cheminfo', dot: true },
258
269
  host: 'osiris.cheminfo.org',
259
270
  repository: 'https://github.com/cheminfo/osiris.cheminfo.org',
271
+ publicRepository: true,
260
272
  tagline: 'Predicted toxicity risks and properties, one molecule or many.',
261
273
  group: 'research',
262
274
  brand: '#854d0e',
@@ -1 +1 @@
1
- {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../../src/ecosystem/core/sites.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../../src/ecosystem/core/sites.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACnD,IAAI,EAAE,oBAAoB;QAC1B,UAAU,EAAE,gDAAgD;QAC5D,OAAO,EAAE,wDAAwD;QACjE,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACnD,IAAI,EAAE,oBAAoB;QAC1B,UAAU,EAAE,gDAAgD;QAC5D,OAAO,EAAE,sDAAsD;QAC/D,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACjD,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,8CAA8C;QAC1D,OAAO,EAAE,uDAAuD;QAChE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACpD,IAAI,EAAE,qBAAqB;QAC3B,UAAU,EAAE,iDAAiD;QAC7D,OAAO,EAAE,wDAAwD;QACjE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACvD,IAAI,EAAE,wBAAwB;QAC9B,UAAU,EAAE,oDAAoD;QAChE,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,gEAAgE;QACzE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;QACnC,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,0CAA0C;QACtD,OAAO,EAAE,0DAA0D;QACnE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACjD,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,8CAA8C;QAC1D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,6DAA6D;QACtE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,SAAS;QAChB,yEAAyE;QACzE,uEAAuE;QACvE,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;QACjC,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,oCAAoC;QAChD,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,gDAAgD;QACzD,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,wEAAwE;QACxE,0EAA0E;QAC1E,yBAAyB;QACzB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;QAClD,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,oCAAoC;QAChD,OAAO,EAAE,yDAAyD;QAClE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;QACjD,IAAI,EAAE,wBAAwB;QAC9B,UAAU,EAAE,uCAAuC;QACnD,OAAO,EAAE,+DAA+D;QACxE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACnD,IAAI,EAAE,oBAAoB;QAC1B,UAAU,EAAE,gDAAgD;QAC5D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,qDAAqD;QAC9D,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACjD,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,8CAA8C;QAC1D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,mDAAmD;QAC5D,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QAClD,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,+CAA+C;QAC3D,OAAO,EAAE,8CAA8C;QACvD,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;KAC/D;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACpD,IAAI,EAAE,qBAAqB;QAC3B,UAAU,EAAE,iDAAiD;QAC7D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,iDAAiD;QAC1D,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACjD,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,8CAA8C;QAC1D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,6CAA6C;QACtD,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACzD,IAAI,EAAE,0BAA0B;QAChC,UAAU,EAAE,sDAAsD;QAClE,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,mDAAmD;QAC5D,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;QACtC,IAAI,EAAE,0BAA0B;QAChC,UAAU,EAAE,sDAAsD;QAClE,OAAO,EAAE,2DAA2D;QACpE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;QACnC,IAAI,EAAE,uBAAuB;QAC7B,UAAU,EAAE,mDAAmD;QAC/D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,2DAA2D;QACpE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QAChD,IAAI,EAAE,iBAAiB;QACvB,UAAU,EAAE,6CAA6C;QACzD,OAAO,EAAE,6CAA6C;QACtD,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE;QACxC,IAAI,EAAE,6BAA6B;QACnC,UAAU,EAAE,yDAAyD;QACrE,OAAO,EAAE,wDAAwD;QACjE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACtD,IAAI,EAAE,uBAAuB;QAC7B,UAAU,EAAE,mDAAmD;QAC/D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,oDAAoD;QAC7D,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE;QACnC,IAAI,EAAE,uBAAuB;QAC7B,UAAU,EAAE,mDAAmD;QAC/D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,0DAA0D;QACnE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,SAAS;QAChB,wEAAwE;QACxE,qEAAqE;QACrE,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;QACpD,IAAI,EAAE,qBAAqB;QAC3B,UAAU,EAAE,iDAAiD;QAC7D,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,gEAAgE;QACzE,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,SAAS;QAChB,2EAA2E;QAC3E,yEAAyE;QACzE,6CAA6C;QAC7C,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE;KAC9C;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,IAAmB;IACzC,OAAO,WAAW,IAAI,CAAC,IAAI,GAAG,CAAC;AACjC,CAAC"}
@@ -34,6 +34,14 @@ export interface EcosystemSite {
34
34
  host: string;
35
35
  /** Where the sources live, and what a Source link opens. */
36
36
  repository: string;
37
+ /**
38
+ * Whether a visitor can open that repository. A private one is named
39
+ * nowhere: no licence-and-source section, no link from the version, no issue
40
+ * tracker a reader cannot reach. It is stated rather than assumed, so a site
41
+ * whose record forgets it advertises nothing rather than a dead link.
42
+ * @default false
43
+ */
44
+ publicRepository?: boolean;
37
45
  /** One line on what the site does. */
38
46
  tagline: string;
39
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ecosystem/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,mCAAmC;AACnC,MAAM,MAAM,MAAM,GACd,OAAO,GACP,OAAO,GACP,KAAK,GACL,QAAQ,GACR,WAAW,GACX,UAAU,GACV,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,OAAO,GACP,KAAK,GACL,MAAM,GACN,QAAQ,GACR,KAAK,GACL,aAAa,GACb,aAAa,GACb,UAAU,GACV,IAAI,GACJ,gBAAgB,GAChB,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAEb,+DAA+D;AAC/D,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACtB;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,iEAAiE;IACjE,IAAI,EAAE,QAAQ,CAAC;IACf,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ecosystem/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,mCAAmC;AACnC,MAAM,MAAM,MAAM,GACd,OAAO,GACP,OAAO,GACP,KAAK,GACL,QAAQ,GACR,WAAW,GACX,UAAU,GACV,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,OAAO,GACP,KAAK,GACL,MAAM,GACN,QAAQ,GACR,KAAK,GACL,aAAa,GACb,aAAa,GACb,UAAU,GACV,IAAI,GACJ,gBAAgB,GAChB,UAAU,GACV,UAAU,GACV,QAAQ,CAAC;AAEb,+DAA+D;AAC/D,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACtB;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,iEAAiE;IACjE,IAAI,EAAE,QAAQ,CAAC;IACf,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Where the camera stands, in a form a link can carry.
3
+ *
4
+ * A position in ångström would not survive the trip: the molecule a link names
5
+ * is built again on the other side, and a distance that frames a benzene leaves
6
+ * a peptide off screen. So the camera is stored against the scene rather than
7
+ * against the coordinates — a rotation from the front view, a zoom against the
8
+ * distance that frames the whole model, and a target as an offset from the
9
+ * scene centre in bounding-sphere radii. All three read the same whatever the
10
+ * molecule and whatever the size of the canvas showing it.
11
+ */
12
+ import type { ShareParamCodec } from '../../share/core/params.ts';
13
+ /** A rotation, as a unit quaternion `[x, y, z, w]`. */
14
+ export type Molecule3DRotation = readonly [number, number, number, number];
15
+ /** A point or a direction, `[x, y, z]`. */
16
+ export type Molecule3DVector = readonly [number, number, number];
17
+ /** Where the camera stands, against the scene rather than its coordinates. */
18
+ export interface Molecule3DCamera {
19
+ /**
20
+ * Rotation of the camera from the front view — looking down -z with y up —
21
+ * as a unit quaternion.
22
+ */
23
+ rotation: Molecule3DRotation;
24
+ /**
25
+ * How close the camera is. `1` frames the whole model, as the reset button
26
+ * does; `2` is twice as close, so the model is drawn twice as large.
27
+ */
28
+ zoom: number;
29
+ /**
30
+ * Where the camera looks, as an offset from the centre of the model, in
31
+ * bounding-sphere radii. `[0, 0, 0]` looks at the centre.
32
+ */
33
+ offset: Molecule3DVector;
34
+ }
35
+ /** Looking at the centre of the model from the front, framing all of it. */
36
+ export declare const DEFAULT_MOLECULE_3D_CAMERA: Molecule3DCamera;
37
+ /** The closest and furthest a link may ask the camera to stand. */
38
+ export declare const MOLECULE_3D_ZOOM_RANGE: {
39
+ readonly minimum: 0.01;
40
+ readonly maximum: 100;
41
+ };
42
+ /**
43
+ * Write a camera as the text a link carries.
44
+ *
45
+ * The four components of the rotation come first, then the zoom, then the
46
+ * target offset — which is left out entirely while the camera looks at the
47
+ * centre of the model, as it does until someone pans.
48
+ * @param camera - The camera to write.
49
+ * @returns Comma-separated numbers: five, or eight when the camera is panned.
50
+ */
51
+ export declare function formatMolecule3DCamera(camera: Molecule3DCamera): string;
52
+ /**
53
+ * Read a camera out of the text a link carries.
54
+ *
55
+ * A rotation that is not a rotation — four zeros, a stray word — is what makes
56
+ * the whole value unusable; everything else is brought back into range rather
57
+ * than rejected, so a link written against an older range still opens.
58
+ * @param raw - The text of the parameter.
59
+ * @returns The camera, or `null` when the text does not describe one.
60
+ */
61
+ export declare function parseMolecule3DCamera(raw: string): Molecule3DCamera | null;
62
+ /**
63
+ * A camera with its rotation made a unit quaternion and its numbers in range.
64
+ * @param camera - The camera to repair.
65
+ * @returns A camera safe to hand the viewer; the default when the rotation is
66
+ * degenerate.
67
+ */
68
+ export declare function normalizeMolecule3DCamera(camera: Molecule3DCamera): Molecule3DCamera;
69
+ /**
70
+ * Whether two cameras are the same once written into a link.
71
+ *
72
+ * What a link carries is rounded, so two cameras a drag apart by less than the
73
+ * rounding are one camera as far as the address is concerned — which is what
74
+ * keeps a settling animation from rewriting it a dozen times.
75
+ * @param first - One camera, or `null` for none.
76
+ * @param second - The other.
77
+ * @returns True when a link would carry the same text for both.
78
+ */
79
+ export declare function sameMolecule3DCamera(first: Molecule3DCamera | null, second: Molecule3DCamera | null): boolean;
80
+ /**
81
+ * The codec a site mirrors the camera in the address with.
82
+ *
83
+ * The default framing is written as nothing at all, so the address of a page
84
+ * nobody has turned yet stays a plain link.
85
+ * @returns The codec, whose value is `null` while the camera is where a reset
86
+ * would leave it.
87
+ */
88
+ export declare function molecule3DCameraParam(): ShareParamCodec<Molecule3DCamera | null>;
89
+ //# sourceMappingURL=camera.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../../src/molecule3d/core/camera.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3E,2CAA2C;AAC3C,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEjE,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,QAAQ,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B,EAAE,gBAIxC,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,sBAAsB;;;CAA2C,CAAC;AAW/E;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAavE;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAyB1E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,GACvB,gBAAgB,CAYlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAC9B,OAAO,CAGT;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAahF"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Where the camera stands, in a form a link can carry.
3
+ *
4
+ * A position in ångström would not survive the trip: the molecule a link names
5
+ * is built again on the other side, and a distance that frames a benzene leaves
6
+ * a peptide off screen. So the camera is stored against the scene rather than
7
+ * against the coordinates — a rotation from the front view, a zoom against the
8
+ * distance that frames the whole model, and a target as an offset from the
9
+ * scene centre in bounding-sphere radii. All three read the same whatever the
10
+ * molecule and whatever the size of the canvas showing it.
11
+ */
12
+ import { clamp } from "../../format/core/clamp.js";
13
+ import { roundTo } from "../../format/core/roundTo.js";
14
+ /** Looking at the centre of the model from the front, framing all of it. */
15
+ export const DEFAULT_MOLECULE_3D_CAMERA = {
16
+ rotation: [0, 0, 0, 1],
17
+ zoom: 1,
18
+ offset: [0, 0, 0],
19
+ };
20
+ /** The closest and furthest a link may ask the camera to stand. */
21
+ export const MOLECULE_3D_ZOOM_RANGE = { minimum: 0.01, maximum: 100 };
22
+ /** Furthest a link may push the target from the centre, in radii. */
23
+ const MAX_OFFSET = 100;
24
+ /** Decimals kept of a quaternion component: 0.0001 is under a hundredth of a degree. */
25
+ const ROTATION_DECIMALS = 4;
26
+ /** Decimals kept of the zoom and of the target offset. */
27
+ const POSITION_DECIMALS = 3;
28
+ /**
29
+ * Write a camera as the text a link carries.
30
+ *
31
+ * The four components of the rotation come first, then the zoom, then the
32
+ * target offset — which is left out entirely while the camera looks at the
33
+ * centre of the model, as it does until someone pans.
34
+ * @param camera - The camera to write.
35
+ * @returns Comma-separated numbers: five, or eight when the camera is panned.
36
+ */
37
+ export function formatMolecule3DCamera(camera) {
38
+ const { rotation, zoom, offset } = normalizeMolecule3DCamera(camera);
39
+ const parts = [];
40
+ for (let index = 0; index < 4; index++) {
41
+ parts.push(String(roundTo(rotation[index] ?? 0, ROTATION_DECIMALS)));
42
+ }
43
+ parts.push(String(roundTo(zoom, POSITION_DECIMALS)));
44
+ if (offset[0] !== 0 || offset[1] !== 0 || offset[2] !== 0) {
45
+ for (const value of offset) {
46
+ parts.push(String(roundTo(value, POSITION_DECIMALS)));
47
+ }
48
+ }
49
+ return parts.join(',');
50
+ }
51
+ /**
52
+ * Read a camera out of the text a link carries.
53
+ *
54
+ * A rotation that is not a rotation — four zeros, a stray word — is what makes
55
+ * the whole value unusable; everything else is brought back into range rather
56
+ * than rejected, so a link written against an older range still opens.
57
+ * @param raw - The text of the parameter.
58
+ * @returns The camera, or `null` when the text does not describe one.
59
+ */
60
+ export function parseMolecule3DCamera(raw) {
61
+ const parts = raw.split(',');
62
+ if (parts.length !== 5 && parts.length !== 8)
63
+ return null;
64
+ const numbers = [];
65
+ for (const part of parts) {
66
+ const value = Number(part.trim());
67
+ if (!Number.isFinite(value))
68
+ return null;
69
+ numbers.push(value);
70
+ }
71
+ const rotation = normalizeRotation([
72
+ numbers[0] ?? 0,
73
+ numbers[1] ?? 0,
74
+ numbers[2] ?? 0,
75
+ numbers[3] ?? 1,
76
+ ]);
77
+ if (rotation === null)
78
+ return null;
79
+ return {
80
+ rotation,
81
+ zoom: clampZoom(numbers[4] ?? 1),
82
+ offset: [
83
+ clampOffset(numbers[5] ?? 0),
84
+ clampOffset(numbers[6] ?? 0),
85
+ clampOffset(numbers[7] ?? 0),
86
+ ],
87
+ };
88
+ }
89
+ /**
90
+ * A camera with its rotation made a unit quaternion and its numbers in range.
91
+ * @param camera - The camera to repair.
92
+ * @returns A camera safe to hand the viewer; the default when the rotation is
93
+ * degenerate.
94
+ */
95
+ export function normalizeMolecule3DCamera(camera) {
96
+ const rotation = normalizeRotation(camera.rotation);
97
+ if (rotation === null)
98
+ return DEFAULT_MOLECULE_3D_CAMERA;
99
+ return {
100
+ rotation,
101
+ zoom: clampZoom(camera.zoom),
102
+ offset: [
103
+ clampOffset(camera.offset[0]),
104
+ clampOffset(camera.offset[1]),
105
+ clampOffset(camera.offset[2]),
106
+ ],
107
+ };
108
+ }
109
+ /**
110
+ * Whether two cameras are the same once written into a link.
111
+ *
112
+ * What a link carries is rounded, so two cameras a drag apart by less than the
113
+ * rounding are one camera as far as the address is concerned — which is what
114
+ * keeps a settling animation from rewriting it a dozen times.
115
+ * @param first - One camera, or `null` for none.
116
+ * @param second - The other.
117
+ * @returns True when a link would carry the same text for both.
118
+ */
119
+ export function sameMolecule3DCamera(first, second) {
120
+ if (first === null || second === null)
121
+ return first === second;
122
+ return formatMolecule3DCamera(first) === formatMolecule3DCamera(second);
123
+ }
124
+ /**
125
+ * The codec a site mirrors the camera in the address with.
126
+ *
127
+ * The default framing is written as nothing at all, so the address of a page
128
+ * nobody has turned yet stays a plain link.
129
+ * @returns The codec, whose value is `null` while the camera is where a reset
130
+ * would leave it.
131
+ */
132
+ export function molecule3DCameraParam() {
133
+ return {
134
+ parse(raw) {
135
+ return raw === null ? null : parseMolecule3DCamera(raw);
136
+ },
137
+ serialize(value) {
138
+ if (value === null)
139
+ return null;
140
+ const text = formatMolecule3DCamera(value);
141
+ return text === formatMolecule3DCamera(DEFAULT_MOLECULE_3D_CAMERA)
142
+ ? null
143
+ : text;
144
+ },
145
+ };
146
+ }
147
+ function normalizeRotation(rotation) {
148
+ let squared = 0;
149
+ for (let index = 0; index < 4; index++) {
150
+ const value = rotation[index] ?? 0;
151
+ if (!Number.isFinite(value))
152
+ return null;
153
+ squared += value * value;
154
+ }
155
+ if (squared <= 0)
156
+ return null;
157
+ const scale = 1 / Math.sqrt(squared);
158
+ return [
159
+ rotation[0] * scale,
160
+ rotation[1] * scale,
161
+ rotation[2] * scale,
162
+ rotation[3] * scale,
163
+ ];
164
+ }
165
+ function clampZoom(zoom) {
166
+ const { minimum, maximum } = MOLECULE_3D_ZOOM_RANGE;
167
+ return clamp(zoom, minimum, maximum, 1);
168
+ }
169
+ function clampOffset(value) {
170
+ return clamp(value, -MAX_OFFSET, MAX_OFFSET, 0);
171
+ }
172
+ //# sourceMappingURL=camera.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera.js","sourceRoot":"","sources":["../../../src/molecule3d/core/camera.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ export type { Molecule3DCamera, Molecule3DRotation, Molecule3DVector, } from './camera.ts';
2
+ export { DEFAULT_MOLECULE_3D_CAMERA, MOLECULE_3D_ZOOM_RANGE, formatMolecule3DCamera, molecule3DCameraParam, normalizeMolecule3DCamera, parseMolecule3DCamera, sameMolecule3DCamera, } from './camera.ts';
1
3
  export type { ImageSize } from './exportImage.ts';
2
4
  export { dataUriBytes, rasterSvgMarkup } from './exportImage.ts';
3
5
  export type { Molecule3DGesture, Molecule3DGestureKey } from './gestures.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule3d/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EACV,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule3d/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EACV,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,eAAe,CAAC"}
@@ -1,3 +1,4 @@
1
+ export { DEFAULT_MOLECULE_3D_CAMERA, MOLECULE_3D_ZOOM_RANGE, formatMolecule3DCamera, molecule3DCameraParam, normalizeMolecule3DCamera, parseMolecule3DCamera, sameMolecule3DCamera, } from "./camera.js";
1
2
  export { dataUriBytes, rasterSvgMarkup } from "./exportImage.js";
2
3
  export { MOLECULE_3D_GESTURES } from "./gestures.js";
3
4
  export { MEASUREMENT_ATOM_COUNTS, MEASUREMENT_KINDS, MEASUREMENT_LABELS, } from "./measurement.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/molecule3d/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAMrD,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/molecule3d/core/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAMrD,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MoleculeCanvas3D.d.ts","sourceRoot":"","sources":["../../../src/molecule3d/ui/MoleculeCanvas3D.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAezD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAOxE,yCAAyC;AACzC,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,qBAAqB,EACrB,UAAU,GAAG,mBAAmB,CACjC;IACC,2EAA2E;IAC3E,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAyK3E"}
1
+ {"version":3,"file":"MoleculeCanvas3D.d.ts","sourceRoot":"","sources":["../../../src/molecule3d/ui/MoleculeCanvas3D.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAczD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAOxE,yCAAyC;AACzC,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,qBAAqB,EACrB,UAAU,GAAG,mBAAmB,CACjC;IACC,2EAA2E;IAC3E,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACnD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CA6I3E"}
@@ -1,15 +1,15 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { useEffect, useRef, useState } from 'react';
3
3
  import { normalizeMolecule3DSettings, resolveMolecule3DTools, } from "../core/settings.js";
4
4
  import { Molecule3DExport } from "./Molecule3DExport.js";
5
5
  import { Molecule3DOptions } from "./Molecule3DOptions.js";
6
6
  import { Molecule3DToolbar } from "./Molecule3DToolbar.js";
7
7
  import { DEFAULT_SPIN_SPEED } from "./camera.js";
8
- import { drawScene } from "./drawScene.js";
8
+ import { createMolecule3DViewer } from "./createViewer.js";
9
9
  import { useControlledState } from "./useControlledState.js";
10
10
  import { useImageExport } from "./useImageExport.js";
11
+ import { useMoleculeScene } from "./useMoleculeScene.js";
11
12
  import { usePolarSurfaceArea } from "./usePolarSurfaceArea.js";
12
- import { createMolecule3DViewer } from "./viewer.js";
13
13
  /**
14
14
  * Mount one molstar canvas and keep it showing what the props describe.
15
15
  * @param props - See {@link MoleculeCanvas3DProps}.
@@ -27,7 +27,6 @@ export function MoleculeCanvas3D(props) {
27
27
  // effect keyed on it runs again, in order, after the viewer exists.
28
28
  const [container, setContainer] = useState(null);
29
29
  const viewerRef = useRef(null);
30
- const framedRef = useRef(null);
31
30
  // The viewer is created once, so what its callbacks read is kept fresh here.
32
31
  const latest = useRef({
33
32
  measurements,
@@ -64,45 +63,23 @@ export function MoleculeCanvas3D(props) {
64
63
  viewer.dispose();
65
64
  };
66
65
  }, [container]);
67
- // One animation frame of coalescing, so dragging a slider costs one rebuild.
68
- useEffect(() => {
69
- const viewer = viewerRef.current;
70
- if (container === null || viewer === null)
71
- return;
72
- let cancelled = false;
73
- const frame = requestAnimationFrame(() => {
74
- // Framed on a new molecule or a new viewer, never on a restyle: a slider
75
- // that snapped the camera back would undo the reader's orientation.
76
- const framed = framedRef.current;
77
- const isNew = molfile !== null &&
78
- (framed?.molfile !== molfile || framed.viewer !== viewer);
79
- framedRef.current = molfile === null ? null : { molfile, viewer };
80
- const frameCamera = isNew ? frameNewMolecule : 'none';
81
- void drawScene(viewer, molfile, settings, measurements, frameCamera)
82
- .then(() => {
83
- if (!cancelled)
84
- latest.current.onFailureChange(null);
85
- })
86
- .catch((error) => {
87
- if (cancelled)
88
- return;
89
- latest.current.onFailureChange(error instanceof Error ? error.message : String(error));
90
- });
91
- });
92
- return () => {
93
- cancelled = true;
94
- cancelAnimationFrame(frame);
95
- };
96
- }, [container, molfile, frameNewMolecule, settings, measurements]);
97
66
  useEffect(() => {
98
67
  void viewerRef.current?.setSpin(spinning, spinSpeed);
99
68
  }, [container, spinning, spinSpeed]);
100
69
  useEffect(() => {
101
70
  void viewerRef.current?.setMeasureKind(measureKind);
102
71
  }, [container, measureKind]);
103
- const resetView = useCallback(() => {
104
- void viewerRef.current?.resetCamera();
105
- }, []);
72
+ const { resetView } = useMoleculeScene({
73
+ container,
74
+ viewerRef,
75
+ molfile,
76
+ frameNewMolecule,
77
+ settings,
78
+ measurements,
79
+ spinning,
80
+ onFailureChange,
81
+ camera: props,
82
+ });
106
83
  const { canvasSize, exportImage } = useImageExport(container, viewerRef, fileName);
107
84
  return (_jsxs("div", { style: { ...STAGE_STYLE, minHeight }, children: [_jsx("div", { ref: setContainer, style: CANVAS_STYLE, "data-testid": "molecule3d" }), molfile !== null && (_jsx("div", { style: OVERLAY_STYLE, children: _jsx(Molecule3DToolbar, { tools: tools, measureKind: measureKind, onMeasureKindChange: setMeasureKind, measurementCount: measurements.length, onClearMeasurements: () => {
108
85
  setMeasurements(NO_MEASUREMENTS);
@@ -1 +1 @@
1
- {"version":3,"file":"MoleculeCanvas3D.js","sourceRoot":"","sources":["../../../src/molecule3d/ui/MoleculeCanvas3D.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MoleculeCanvas3D.js","sourceRoot":"","sources":["../../../src/molecule3d/ui/MoleculeCanvas3D.tsx"],"names":[],"mappings":"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"}