react-cheminfo 0.73.0 → 0.74.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 (59) hide show
  1. package/lib/i18n/core/chromeCatalog.d.ts +1 -1
  2. package/lib/i18n/core/chromeCatalog.d.ts.map +1 -1
  3. package/lib/locales/de.json +22 -0
  4. package/lib/locales/en.json +22 -0
  5. package/lib/locales/es.json +22 -0
  6. package/lib/locales/fr.json +22 -0
  7. package/lib/locales/it.json +22 -0
  8. package/lib/structure/core/fragmentIdCode.d.ts +15 -0
  9. package/lib/structure/core/fragmentIdCode.d.ts.map +1 -0
  10. package/lib/structure/core/fragmentIdCode.js +25 -0
  11. package/lib/structure/core/fragmentIdCode.js.map +1 -0
  12. package/lib/structure/core/index.d.ts +2 -0
  13. package/lib/structure/core/index.d.ts.map +1 -1
  14. package/lib/structure/core/index.js +1 -0
  15. package/lib/structure/core/index.js.map +1 -1
  16. package/lib/structure/core/structureSearch.d.ts +44 -0
  17. package/lib/structure/core/structureSearch.d.ts.map +1 -0
  18. package/lib/structure/core/structureSearch.js +31 -0
  19. package/lib/structure/core/structureSearch.js.map +1 -0
  20. package/lib/structure/core/substructureMatch.d.ts +33 -0
  21. package/lib/structure/core/substructureMatch.d.ts.map +1 -0
  22. package/lib/structure/core/substructureMatch.js +73 -0
  23. package/lib/structure/core/substructureMatch.js.map +1 -0
  24. package/lib/structure/ui/Structure.d.ts +18 -0
  25. package/lib/structure/ui/Structure.d.ts.map +1 -1
  26. package/lib/structure/ui/Structure.js +2 -2
  27. package/lib/structure/ui/Structure.js.map +1 -1
  28. package/lib/structure/ui/StructureSearchDialog.d.ts +55 -0
  29. package/lib/structure/ui/StructureSearchDialog.d.ts.map +1 -0
  30. package/lib/structure/ui/StructureSearchDialog.js +77 -0
  31. package/lib/structure/ui/StructureSearchDialog.js.map +1 -0
  32. package/lib/structure/ui/StructureSvg.d.ts +9 -0
  33. package/lib/structure/ui/StructureSvg.d.ts.map +1 -1
  34. package/lib/structure/ui/StructureSvg.js +7 -2
  35. package/lib/structure/ui/StructureSvg.js.map +1 -1
  36. package/lib/structure/ui/index.d.ts +4 -0
  37. package/lib/structure/ui/index.d.ts.map +1 -1
  38. package/lib/structure/ui/index.js +2 -0
  39. package/lib/structure/ui/index.js.map +1 -1
  40. package/lib/structure/ui/useStructureSearchModes.d.ts +18 -0
  41. package/lib/structure/ui/useStructureSearchModes.d.ts.map +1 -0
  42. package/lib/structure/ui/useStructureSearchModes.js +36 -0
  43. package/lib/structure/ui/useStructureSearchModes.js.map +1 -0
  44. package/package.json +1 -1
  45. package/src/locales/de.json +22 -0
  46. package/src/locales/en.json +22 -0
  47. package/src/locales/es.json +22 -0
  48. package/src/locales/fr.json +22 -0
  49. package/src/locales/it.json +22 -0
  50. package/src/structure/core/fragmentIdCode.ts +25 -0
  51. package/src/structure/core/index.ts +10 -0
  52. package/src/structure/core/structureSearch.ts +68 -0
  53. package/src/structure/core/substructureMatch.ts +85 -0
  54. package/src/structure/ui/Structure.tsx +24 -0
  55. package/src/structure/ui/StructureSearchDialog.tsx +218 -0
  56. package/src/structure/ui/StructureSvg.tsx +35 -0
  57. package/src/structure/ui/index.ts +4 -0
  58. package/src/structure/ui/useStructureSearchModes.ts +51 -0
  59. package/styles/chrome.css +31 -0
@@ -17,5 +17,5 @@ export type ChromeKey = keyof typeof en;
17
17
  * missing message falls back to; every other language arrives as a chunk of its
18
18
  * own, so a site read only in English downloads none of them.
19
19
  */
20
- export declare const CHROME_CATALOG: MessageCatalog<"language.label" | "chrome.pages" | "chrome.about" | "chrome.aboutTitle" | "chrome.contact" | "chrome.contactTitle" | "account.signIn" | "account.signOut" | "account.signedInAs" | "account.username" | "account.password" | "account.role" | "account.role.read" | "account.role.write" | "account.role.admin" | "account.you" | "account.envManaged" | "account.envManagedTitle" | "account.accounts" | "account.accountsNote" | "account.column.added" | "account.column.lastSignIn" | "account.column.passwordChanged" | "account.column.actions" | "account.never" | "account.add" | "account.addSubmit" | "account.added" | "account.usernameHelp" | "account.setPassword" | "account.setPasswordTitle" | "account.setPasswordNote" | "account.setPasswordSubmit" | "account.roleOf" | "account.changePassword" | "account.currentPassword" | "account.newPassword" | "account.repeatPassword" | "account.passwordsDiffer" | "account.passwordChanged" | "account.ownEnvManaged" | "account.remove" | "account.removeQuestion" | "account.needsWrite" | "account.needsAdmin" | "account.switchAccount" | "account.unreachable" | "account.refusal.wrongCredentials" | "account.refusal.tooManyAttempts" | "account.refusal.signInElsewhere" | "account.refusal.signOutElsewhere" | "account.refusal.changeElsewhere" | "account.refusal.signInRequired" | "account.refusal.sessionEnded" | "account.refusal.wrongToken" | "account.refusal.noAdminToken" | "account.refusal.roleTooLow" | "account.refusal.usernameLength" | "account.refusal.usernameCharacters" | "account.refusal.usernameTaken" | "account.refusal.passwordEmpty" | "account.refusal.passwordTooLong" | "account.refusal.noSuchAccount" | "account.refusal.nothingToChange" | "account.refusal.useChangePassword" | "account.refusal.ownRole" | "account.refusal.removeYourself" | "account.refusal.lastAdmin" | "account.refusal.envManaged" | "account.refusal.tokenCannotChangePassword" | "account.refusal.wrongCurrentPassword" | "account.refusal.accountRemoved" | "ecosystem.tools" | "ecosystem.menuHeading" | "ecosystem.otherTools" | "ecosystem.youAreHere" | "ecosystem.group.basics.label" | "ecosystem.group.basics.blurb" | "ecosystem.group.practice.label" | "ecosystem.group.practice.blurb" | "ecosystem.group.structures.label" | "ecosystem.group.structures.blurb" | "ecosystem.group.spectra.label" | "ecosystem.group.spectra.blurb" | "ecosystem.group.research.label" | "ecosystem.group.research.blurb" | "ecosystem.group.computing.label" | "ecosystem.group.computing.blurb" | "site.learn.tagline" | "site.inchi.tagline" | "site.vcl.tagline" | "site.smiles.tagline" | "site.openbabel.tagline" | "site.chemcalc.tagline" | "site.dbe.tagline" | "site.nmrium.tagline" | "site.metabo.tagline" | "site.derepflow.tagline" | "site.isomers.tagline" | "site.tex.tagline" | "site.lcao.tagline" | "site.regexp.tagline" | "site.pdb.tagline" | "site.elucidation.tagline" | "site.equilibrium.tagline" | "site.polycarp.tagline" | "site.3d.tagline" | "site.periodic-table.tagline" | "site.database.tagline" | "site.symmetry.tagline" | "site.osiris.tagline" | "site.atoms.tagline" | "site.moles.tagline" | "site.inorganic.tagline" | "share.button" | "share.buttonTitle" | "share.dialogTitleFor" | "share.frameTitle" | "share.layout" | "share.embed" | "share.embedHint" | "share.protect" | "share.protectHint" | "share.on" | "share.off" | "share.showOnPage" | "share.custom" | "share.options" | "share.preview" | "share.device.window" | "share.device.mobile" | "share.device.laptop" | "share.device.hd" | "share.deviceSize" | "share.previewWhat" | "share.previewLive" | "share.copyLink" | "share.copyLinkHelpTitle" | "share.copyLinkHelp" | "share.openInNewTab" | "share.openInNewTabHelpTitle" | "share.openInNewTabHelp" | "share.copyIframe" | "share.copyIframeHelpTitle" | "share.copyIframeHelp" | "seal.refusedTitle" | "seal.refusedBody" | "seal.openWithout" | "cite.button" | "cite.copyReferenceAs" | "cite.pleaseCiteBoth" | "cite.pleaseCiteEvery" | "cite.copyBothAs" | "cite.copyEveryAs" | "cite.importIntoManager" | "cite.openArticle" | "cite.openDataset" | "cite.copyThisAs" | "cite.importThis" | "cite.copied" | "cite.copyFailed" | "cite.format.doi" | "cite.download.ris" | "cite.download.bibtex" | "clipboard.copied" | "clipboard.failed" | "clipboard.copy" | "clipboard.copyThe" | "clipboard.copyValue" | "clipboard.copyToClipboard" | "card.details" | "card.detailsTitle" | "card.detailsLabel" | "card.copyTable" | "card.copyTableTitle" | "card.copyPicture" | "about.providedBy" | "about.whatYouCanDo" | "about.builtOn" | "about.buildVersion" | "about.buildBuilt" | "about.buildCommit" | "about.howToCite" | "about.citeWork" | "about.nameList" | "credits.openbabel.description" | "credits.openchemlib.description" | "credits.openchemlib-utils.description" | "credits.osiris-property-explorer.description" | "credits.react-ocl.description" | "credits.react-mf.description" | "credits.mass-tools.description" | "credits.chem-equilibrium.description" | "credits.ml-matrix.description" | "credits.ml-xsadd.description" | "credits.cif-to-json.description" | "credits.ml-spectra-processing.description" | "credits.occ.description" | "credits.xtb-wasm.description" | "credits.molstar.description" | "credits.blueprint.description" | "credits.react-science.description" | "credits.react-cheminfo.description" | "credits.cheminfo-font.description" | "credits.nivo.description" | "credits.mathjax.description" | "credits.lexical.description" | "credits.katex.description" | "credits.dnd-kit.description" | "credits.react-roi.description" | "credits.file-collection.description" | "credits.zip-js.description" | "credits.preact-signals.description" | "credits.fastify.description" | "credits.sqlite.description" | "credits.sqlite-wasm.description" | "credits.pouchdb.description" | "credits.chemexper.description" | "credits.react.description" | "credits.vite.description" | "help.label" | "help.learnMore" | "help.on" | "confirm.delete" | "confirm.cancel" | "error.title" | "error.tryAgain" | "error.noMessage" | "capsule.filter" | "color.scales" | "color.done" | "color.custom" | "color.customEllipsis" | "color.inUse" | "color.uniform" | "color.uniformDescription" | "color.uniformColour" | "color.colourScale" | "color.legendLabel" | "color.scaleBeingEdited" | "color.anchorColour" | "color.anchorPosition" | "color.removeAnchor" | "color.editorHint" | "color.saturation" | "color.brightness" | "color.toneHelp" | "color.path" | "color.interpolation.rgb" | "color.interpolation.hsv" | "color.interpolation.hsv-long" | "color.kind.sequential" | "color.kind.diverging" | "color.kind.cyclic" | "color.scale.viridis.label" | "color.scale.viridis.description" | "color.scale.plasma.label" | "color.scale.plasma.description" | "color.scale.magma.label" | "color.scale.magma.description" | "color.scale.inferno.label" | "color.scale.inferno.description" | "color.scale.cividis.label" | "color.scale.cividis.description" | "color.scale.turbo.label" | "color.scale.turbo.description" | "color.scale.greys.label" | "color.scale.greys.description" | "color.scale.cool-warm.label" | "color.scale.cool-warm.description" | "color.scale.blue-red.label" | "color.scale.blue-red.description" | "color.scale.rainbow.label" | "color.scale.rainbow.description" | "download.save" | "download.saveFigure" | "download.saveThisFigure" | "download.format" | "download.formatHelp" | "download.resolution" | "download.resolutionHelp" | "download.resolutionExample" | "download.noFigure" | "download.hintRasterSvg" | "download.hintSvg" | "download.hintPng" | "download.hintCopied" | "download.copyUnsupported" | "download.size" | "download.sizeHelp" | "download.sizeScreen" | "download.sizeColumn" | "download.sizeCustom" | "download.customSize" | "download.width" | "download.height" | "pedagogy.check" | "pedagogy.revealHint" | "pedagogy.revealHintCount" | "pedagogy.revealHintLadder" | "pedagogy.hideSolution" | "pedagogy.revealSolution" | "pedagogy.reset" | "pedagogy.hints" | "pedagogy.solvedCount" | "pedagogy.clearAll" | "pedagogy.keepAnswers" | "pedagogy.clearEverything" | "pedagogy.clearWarning" | "pedagogy.filterTerms" | "pedagogy.noTermDefined" | "pedagogy.noTermMatches" | "pedagogy.example" | "pedagogy.input" | "pedagogy.previous" | "pedagogy.next" | "pedagogy.stepOf" | "pedagogy.answerEmpty" | "pedagogy.answerUnreadable" | "pedagogy.questions" | "pedagogy.questionsInSeries" | "pedagogy.questionCount" | "pedagogy.allQuestions" | "pedagogy.newSeries" | "pedagogy.newSeriesTitle" | "pedagogy.seriesQuestions" | "pedagogy.questionNumber" | "pedagogy.questionOf" | "pedagogy.solved" | "pedagogy.solvedWithHintsOf" | "pedagogy.solvedWithoutHint" | "pedagogy.nextQuestion" | "pedagogy.solution" | "pedagogy.exercises" | "pedagogy.statusIdle" | "pedagogy.statusAttempted" | "pedagogy.statusSolved" | "pedagogy.solvedWithOneHint" | "pedagogy.solvedWithHints" | "formula.copyLabel" | "formula.typeFirst" | "formula.notElement" | "formula.noAtom" | "formula.wholeCounts" | "formula.unknownNotation" | "formula.unreadable" | "slides.exit" | "slides.previousSlide" | "slides.nextSlide" | "slides.toggleFullscreen" | "slides.backToSlides" | "slides.backToSlide" | "slides.noAddress" | "slides.liveDemos" | "slides.noTalkYet" | "overlay.options" | "overlay.whatAmILookingAt" | "overlay.reset" | "overlay.hoverAName" | "overlay.dismiss" | "axis.scale" | "axis.xScale" | "axis.yScale" | "axis.linear" | "axis.logarithmic" | "axis.scaleHelp" | "delimited.copyTable" | "delimited.copyOrDownload" | "delimited.close" | "delimited.separator" | "delimited.save" | "delimited.copy" | "delimited.tableAsText" | "chart.measurement" | "chart.measurements" | "delimited.descriptionOne" | "delimited.descriptionMany" | "structure.guide.atom.title" | "structure.guide.atom.element" | "structure.guide.atom.group" | "structure.guide.atom.applyOrForget" | "structure.guide.atom.chain" | "structure.guide.atom.charge" | "structure.guide.atom.radical" | "structure.guide.atom.spin" | "structure.guide.atom.attachment" | "structure.guide.atom.query" | "structure.guide.atom.halogen" | "structure.guide.atom.delete" | "structure.guide.atom.note" | "structure.guide.bond.title" | "structure.guide.bond.order" | "structure.guide.bond.zeroOrder" | "structure.guide.bond.stereo" | "structure.guide.bond.unknownGeometry" | "structure.guide.bond.threeRing" | "structure.guide.bond.ring" | "structure.guide.bond.benzene" | "structure.guide.bond.query" | "structure.guide.bond.delete" | "structure.guide.anywhere.title" | "structure.guide.anywhere.undo" | "structure.guide.anywhere.copy" | "structure.guide.anywhere.paste" | "structure.guide.anywhere.deleteSelection" | "structure.guide.anywhere.flip" | "structure.guide.anywhere.help" | "structure.guide.anywhere.note" | "structure.guide.selecting.title" | "structure.guide.selecting.lasso" | "structure.guide.selecting.rectangle" | "structure.guide.selecting.add" | "structure.guide.selecting.move" | "structure.guide.selecting.duplicate" | "structure.guide.selecting.queryFeatures" | "structure.guide.selecting.note" | "structure.guide.stereochemistry.title" | "structure.guide.stereochemistry.note" | "structure.input.type" | "structure.input.or" | "structure.input.drag" | "structure.input.plusDrag" | "structure.input.dragSelection" | "structure.input.plusDragSelection" | "structure.input.doubleClick" | "structure.docs.toolsAndKeys" | "structure.docs.atomProperties" | "structure.docs.stereochemistry" | "structure.help.hoverToolbar" | "structure.help.learnMore" | "structure.mouseAndKeyboard" | "structure.tool.clear.name" | "structure.tool.clear.description" | "structure.tool.cleanUp.name" | "structure.tool.cleanUp.description" | "structure.tool.select.name" | "structure.tool.select.description" | "structure.tool.unknownConfiguration.name" | "structure.tool.unknownConfiguration.description" | "structure.tool.delete.name" | "structure.tool.delete.description" | "structure.tool.singleBond.name" | "structure.tool.singleBond.description" | "structure.tool.upBond.name" | "structure.tool.upBond.description" | "structure.tool.positiveCharge.name" | "structure.tool.positiveCharge.description" | "structure.tool.undo.name" | "structure.tool.undo.description" | "structure.tool.zoomAndRotate.name" | "structure.tool.zoomAndRotate.description" | "structure.tool.atomMapping.name" | "structure.tool.atomMapping.description" | "structure.tool.enhancedStereo.name" | "structure.tool.enhancedStereo.description" | "structure.tool.text.name" | "structure.tool.text.description" | "structure.tool.chain.name" | "structure.tool.chain.description" | "structure.tool.downBond.name" | "structure.tool.downBond.description" | "structure.tool.negativeCharge.name" | "structure.tool.negativeCharge.description" | "structure.tool.anyAtom.name" | "structure.tool.anyAtom.description" | "structure.tool.ring3.name" | "structure.tool.ring3.description" | "structure.tool.ring5.name" | "structure.tool.ring5.description" | "structure.tool.ring7.name" | "structure.tool.ring7.description" | "structure.tool.ring4.name" | "structure.tool.ring4.description" | "structure.tool.ring6.name" | "structure.tool.ring6.description" | "structure.tool.benzene.name" | "structure.tool.benzene.description" | "structure.tool.carbon.name" | "structure.tool.carbon.description" | "structure.tool.nitrogen.name" | "structure.tool.nitrogen.description" | "structure.tool.oxygen.name" | "structure.tool.oxygen.description" | "structure.tool.fluorine.name" | "structure.tool.fluorine.description" | "structure.tool.bromine.name" | "structure.tool.bromine.description" | "structure.tool.hydrogen.name" | "structure.tool.hydrogen.description" | "structure.tool.silicon.name" | "structure.tool.silicon.description" | "structure.tool.phosphorus.name" | "structure.tool.phosphorus.description" | "structure.tool.sulfur.name" | "structure.tool.sulfur.description" | "structure.tool.chlorine.name" | "structure.tool.chlorine.description" | "structure.tool.iodine.name" | "structure.tool.iodine.description" | "structure.tool.reactionOnly" | "structure.tool.unavailable" | "structure.loadingEditor" | "structure.import.open" | "structure.import.drop" | "structure.import.unreadableFile" | "structure.import.unreadableText" | "structure.export.open" | "structure.export.glyph" | "structure.export.title" | "structure.export.loading" | "structure.export.nothing" | "structure.export.picture" | "structure.export.identifiers" | "structure.export.saveSvg" | "structure.export.savePng" | "structure.export.copyPng" | "structure.export.smiles" | "structure.export.smilesHelp" | "structure.export.molfileV3000" | "structure.export.molfileV3000Help" | "structure.export.molfileV2000" | "structure.export.molfileV2000Help" | "structure.export.idCode" | "structure.export.idCodeHelp" | "structure.export.noStereoIdCode" | "structure.export.noStereoIdCodeHelp" | "structure.export.noStereoTautomerIdCode" | "structure.export.noStereoTautomerIdCodeHelp" | "periodic.table" | "periodic.group" | "periodic.period" | "periodic.block" | "periodic.allElements" | "periodic.help.title" | "periodic.help.click" | "periodic.help.modClick" | "periodic.help.element" | "periodic.help.elementClick" | "periodic.help.elementMod" | "periodic.help.number" | "periodic.help.numberClick" | "periodic.help.runMod" | "periodic.help.block" | "periodic.help.blockClick" | "periodic.help.corner" | "periodic.help.cornerClick" | "periodic.help.arrowsClick" | "periodic.help.note" | "periodic.help.ctrl" | "periodic.cellLabel" | "periodic.category.alkali-metal" | "periodic.category.alkaline-earth-metal" | "periodic.category.transition-metal" | "periodic.category.post-transition-metal" | "periodic.category.metalloid" | "periodic.category.nonmetal" | "periodic.category.halogen" | "periodic.category.noble-gas" | "periodic.category.lanthanoid" | "periodic.category.actinoid" | "molecule3d.view" | "molecule3d.resetView" | "molecule3d.spin" | "molecule3d.surface" | "molecule3d.molecularSurface" | "molecule3d.displayOptions" | "molecule3d.exportImage" | "molecule3d.frames" | "molecule3d.framesHelp" | "molecule3d.frames.one" | "molecule3d.frames.all" | "molecule3d.fullScreen" | "molecule3d.measure" | "molecule3d.clearMeasurements" | "molecule3d.measurement.distance" | "molecule3d.measurement.angle" | "molecule3d.measurement.dihedral" | "molecule3d.measurementTooltip" | "molecule3d.representation.ball-and-stick" | "molecule3d.representation.spacefill" | "molecule3d.representation.stick" | "molecule3d.size" | "molecule3d.surfaceOpacity" | "molecule3d.solventProbe" | "molecule3d.solventProbeHelp" | "molecule3d.surfaceColour" | "molecule3d.colour" | "molecule3d.resetSettings" | "molecule3d.atDefaults" | "molecule3d.surfaceOff" | "molecule3d.showSurface" | "molecule3d.coloring.uniform" | "molecule3d.coloring.element" | "molecule3d.coloring.polarity" | "molecule3d.neutral" | "molecule3d.tpsaHelp" | "molecule3d.loadingViewer" | "molecule3d.couldNotDraw" | "molecule3d.gesture.rotate" | "molecule3d.gesture.rollDrag" | "molecule3d.gesture.rollKeys" | "molecule3d.gesture.moveDrag" | "molecule3d.gesture.moveCtrl" | "molecule3d.gesture.zoom" | "molecule3d.gesture.clip" | "molecule3d.gesture.centreAtom" | "molecule3d.gesture.centreMolecule" | "molecule3d.input.drag" | "molecule3d.input.plus" | "molecule3d.input.plusDrag" | "molecule3d.input.plusScroll" | "molecule3d.input.or" | "molecule3d.input.rightDrag" | "molecule3d.input.scroll" | "molecule3d.input.clickAtom" | "molecule3d.input.clickBackground" | "molecule3d.helpNote" | "orbital.couldNotDraw" | "orbital.sampling" | "orbital.showAxes" | "orbital.axesTitle" | "orbital.axesBody" | "orbital.axesExample" | "orbital.spin" | "orbital.spinTitle" | "orbital.spinBody" | "orbital.resetTitle" | "orbital.resetBody" | "viewer.capability.noWindow" | "viewer.capability.noContext" | "viewer.capability.noFloatTextures" | "viewer.capability.ready" | "conformers.strategy.adaptive-random" | "conformers.strategy.likely-random" | "conformers.strategy.pure-random" | "conformers.strategy.likely-systematic" | "conformers.strategyDetail.adaptive-random" | "conformers.strategyDetail.likely-random" | "conformers.strategyDetail.pure-random" | "conformers.strategyDetail.likely-systematic" | "conformers.minimisation.none" | "number.increment" | "number.decrement" | "range.lowest" | "range.highest" | "range.lowestIs" | "range.highestIs" | "range.noLowerBound" | "range.noUpperBound" | "range.typeValue" | "range.clear" | "taxonomy.lineage" | "taxonomy.rankNote" | "taxonomy.ncbi" | "taxonomy.ncbiTitle" | "taxonomy.rank.realm" | "taxonomy.rank.domain" | "taxonomy.rank.superkingdom" | "taxonomy.rank.kingdom" | "taxonomy.rank.subkingdom" | "taxonomy.rank.superphylum" | "taxonomy.rank.phylum" | "taxonomy.rank.subphylum" | "taxonomy.rank.superclass" | "taxonomy.rank.class" | "taxonomy.rank.subclass" | "taxonomy.rank.infraclass" | "taxonomy.rank.cohort" | "taxonomy.rank.subcohort" | "taxonomy.rank.superorder" | "taxonomy.rank.order" | "taxonomy.rank.suborder" | "taxonomy.rank.infraorder" | "taxonomy.rank.parvorder" | "taxonomy.rank.superfamily" | "taxonomy.rank.family" | "taxonomy.rank.subfamily" | "taxonomy.rank.tribe" | "taxonomy.rank.subtribe" | "taxonomy.rank.genus" | "taxonomy.rank.subgenus" | "taxonomy.rank.section" | "taxonomy.rank.subsection" | "taxonomy.rank.series" | "taxonomy.rank.subseries" | "taxonomy.rank.speciesGroup" | "taxonomy.rank.speciesSubgroup" | "taxonomy.rank.species" | "taxonomy.rank.formaSpecialis" | "taxonomy.rank.subspecies" | "taxonomy.rank.varietas" | "taxonomy.rank.subvariety" | "taxonomy.rank.forma" | "taxonomy.rank.pathogroup" | "taxonomy.rank.serogroup" | "taxonomy.rank.serotype" | "taxonomy.rank.biotype" | "taxonomy.rank.genotype" | "taxonomy.rank.morph" | "taxonomy.rank.strain" | "taxonomy.rank.isolate" | "taxonomy.rank.noRank" | "taxonomy.rank.clade" | "taxonomy.rank.cellularRoot" | "taxonomy.rank.acellularRoot" | "moleculesToken.title" | "moleculesToken.checkedAt" | "moleculesToken.checkAgain" | "moleculesToken.notChecked" | "moleculesToken.column.variable" | "moleculesToken.column.source" | "moleculesToken.column.status" | "moleculesToken.column.details" | "moleculesToken.anySource" | "moleculesToken.verdict.ok" | "moleculesToken.verdict.otherSource" | "moleculesToken.verdict.refused" | "moleculesToken.verdict.unset" | "moleculesToken.verdict.uncheckable" | "moleculesToken.verdict.unanswered" | "moleculesToken.forSource" | "moleculesToken.issued" | "moleculesToken.issuedTo" | "moleculesToken.lastUsed" | "moleculesToken.neverUsed" | "moleculesToken.otherSourceDetail" | "moleculesToken.refusedDetail" | "moleculesToken.unsetDetail" | "moleculesToken.uncheckableDetail" | "moleculesToken.howToChange" | "moleculesToken.fix.title" | "moleculesToken.fix.issueOne" | "moleculesToken.fix.issueMany" | "moleculesToken.fix.issueOnServer" | "moleculesToken.fix.envOne" | "moleculesToken.fix.envMany" | "moleculesToken.fix.restart" | "ir.mode.intensity" | "ir.raman.xTitle" | "ir.raman.chart" | "ir.raman.tools" | "ir.raman.viewer" | "ir.raman.viewerHelp" | "ir.raman.mark" | "ir.raman.about" | "ir.raman.documentation" | "ir.raman.command.documentation" | "ir.raman.command.readTool" | "ir.raman.command.boxTool" | "ir.raman.command.zoomIn" | "ir.raman.command.togglePicking" | "ir.raman.doc.bands" | "ir.raman.doc.sampled" | "ir.raman.aboutLead" | "ir.raman.credit.picking" | "ir.raman.credit.jcamp">;
20
+ export declare const CHROME_CATALOG: MessageCatalog<"language.label" | "chrome.pages" | "chrome.about" | "chrome.aboutTitle" | "chrome.contact" | "chrome.contactTitle" | "account.signIn" | "account.signOut" | "account.signedInAs" | "account.username" | "account.password" | "account.role" | "account.role.read" | "account.role.write" | "account.role.admin" | "account.you" | "account.envManaged" | "account.envManagedTitle" | "account.accounts" | "account.accountsNote" | "account.column.added" | "account.column.lastSignIn" | "account.column.passwordChanged" | "account.column.actions" | "account.never" | "account.add" | "account.addSubmit" | "account.added" | "account.usernameHelp" | "account.setPassword" | "account.setPasswordTitle" | "account.setPasswordNote" | "account.setPasswordSubmit" | "account.roleOf" | "account.changePassword" | "account.currentPassword" | "account.newPassword" | "account.repeatPassword" | "account.passwordsDiffer" | "account.passwordChanged" | "account.ownEnvManaged" | "account.remove" | "account.removeQuestion" | "account.needsWrite" | "account.needsAdmin" | "account.switchAccount" | "account.unreachable" | "account.refusal.wrongCredentials" | "account.refusal.tooManyAttempts" | "account.refusal.signInElsewhere" | "account.refusal.signOutElsewhere" | "account.refusal.changeElsewhere" | "account.refusal.signInRequired" | "account.refusal.sessionEnded" | "account.refusal.wrongToken" | "account.refusal.noAdminToken" | "account.refusal.roleTooLow" | "account.refusal.usernameLength" | "account.refusal.usernameCharacters" | "account.refusal.usernameTaken" | "account.refusal.passwordEmpty" | "account.refusal.passwordTooLong" | "account.refusal.noSuchAccount" | "account.refusal.nothingToChange" | "account.refusal.useChangePassword" | "account.refusal.ownRole" | "account.refusal.removeYourself" | "account.refusal.lastAdmin" | "account.refusal.envManaged" | "account.refusal.tokenCannotChangePassword" | "account.refusal.wrongCurrentPassword" | "account.refusal.accountRemoved" | "ecosystem.tools" | "ecosystem.menuHeading" | "ecosystem.otherTools" | "ecosystem.youAreHere" | "ecosystem.group.basics.label" | "ecosystem.group.basics.blurb" | "ecosystem.group.practice.label" | "ecosystem.group.practice.blurb" | "ecosystem.group.structures.label" | "ecosystem.group.structures.blurb" | "ecosystem.group.spectra.label" | "ecosystem.group.spectra.blurb" | "ecosystem.group.research.label" | "ecosystem.group.research.blurb" | "ecosystem.group.computing.label" | "ecosystem.group.computing.blurb" | "site.learn.tagline" | "site.inchi.tagline" | "site.vcl.tagline" | "site.smiles.tagline" | "site.openbabel.tagline" | "site.chemcalc.tagline" | "site.dbe.tagline" | "site.nmrium.tagline" | "site.metabo.tagline" | "site.derepflow.tagline" | "site.isomers.tagline" | "site.tex.tagline" | "site.lcao.tagline" | "site.regexp.tagline" | "site.pdb.tagline" | "site.elucidation.tagline" | "site.equilibrium.tagline" | "site.polycarp.tagline" | "site.3d.tagline" | "site.periodic-table.tagline" | "site.database.tagline" | "site.symmetry.tagline" | "site.osiris.tagline" | "site.atoms.tagline" | "site.moles.tagline" | "site.inorganic.tagline" | "share.button" | "share.buttonTitle" | "share.dialogTitleFor" | "share.frameTitle" | "share.layout" | "share.embed" | "share.embedHint" | "share.protect" | "share.protectHint" | "share.on" | "share.off" | "share.showOnPage" | "share.custom" | "share.options" | "share.preview" | "share.device.window" | "share.device.mobile" | "share.device.laptop" | "share.device.hd" | "share.deviceSize" | "share.previewWhat" | "share.previewLive" | "share.copyLink" | "share.copyLinkHelpTitle" | "share.copyLinkHelp" | "share.openInNewTab" | "share.openInNewTabHelpTitle" | "share.openInNewTabHelp" | "share.copyIframe" | "share.copyIframeHelpTitle" | "share.copyIframeHelp" | "seal.refusedTitle" | "seal.refusedBody" | "seal.openWithout" | "cite.button" | "cite.copyReferenceAs" | "cite.pleaseCiteBoth" | "cite.pleaseCiteEvery" | "cite.copyBothAs" | "cite.copyEveryAs" | "cite.importIntoManager" | "cite.openArticle" | "cite.openDataset" | "cite.copyThisAs" | "cite.importThis" | "cite.copied" | "cite.copyFailed" | "cite.format.doi" | "cite.download.ris" | "cite.download.bibtex" | "clipboard.copied" | "clipboard.failed" | "clipboard.copy" | "clipboard.copyThe" | "clipboard.copyValue" | "clipboard.copyToClipboard" | "card.details" | "card.detailsTitle" | "card.detailsLabel" | "card.copyTable" | "card.copyTableTitle" | "card.copyPicture" | "about.providedBy" | "about.whatYouCanDo" | "about.builtOn" | "about.buildVersion" | "about.buildBuilt" | "about.buildCommit" | "about.howToCite" | "about.citeWork" | "about.nameList" | "credits.openbabel.description" | "credits.openchemlib.description" | "credits.openchemlib-utils.description" | "credits.osiris-property-explorer.description" | "credits.react-ocl.description" | "credits.react-mf.description" | "credits.mass-tools.description" | "credits.chem-equilibrium.description" | "credits.ml-matrix.description" | "credits.ml-xsadd.description" | "credits.cif-to-json.description" | "credits.ml-spectra-processing.description" | "credits.occ.description" | "credits.xtb-wasm.description" | "credits.molstar.description" | "credits.blueprint.description" | "credits.react-science.description" | "credits.react-cheminfo.description" | "credits.cheminfo-font.description" | "credits.nivo.description" | "credits.mathjax.description" | "credits.lexical.description" | "credits.katex.description" | "credits.dnd-kit.description" | "credits.react-roi.description" | "credits.file-collection.description" | "credits.zip-js.description" | "credits.preact-signals.description" | "credits.fastify.description" | "credits.sqlite.description" | "credits.sqlite-wasm.description" | "credits.pouchdb.description" | "credits.chemexper.description" | "credits.react.description" | "credits.vite.description" | "help.label" | "help.learnMore" | "help.on" | "confirm.delete" | "confirm.cancel" | "error.title" | "error.tryAgain" | "error.noMessage" | "capsule.filter" | "color.scales" | "color.done" | "color.custom" | "color.customEllipsis" | "color.inUse" | "color.uniform" | "color.uniformDescription" | "color.uniformColour" | "color.colourScale" | "color.legendLabel" | "color.scaleBeingEdited" | "color.anchorColour" | "color.anchorPosition" | "color.removeAnchor" | "color.editorHint" | "color.saturation" | "color.brightness" | "color.toneHelp" | "color.path" | "color.interpolation.rgb" | "color.interpolation.hsv" | "color.interpolation.hsv-long" | "color.kind.sequential" | "color.kind.diverging" | "color.kind.cyclic" | "color.scale.viridis.label" | "color.scale.viridis.description" | "color.scale.plasma.label" | "color.scale.plasma.description" | "color.scale.magma.label" | "color.scale.magma.description" | "color.scale.inferno.label" | "color.scale.inferno.description" | "color.scale.cividis.label" | "color.scale.cividis.description" | "color.scale.turbo.label" | "color.scale.turbo.description" | "color.scale.greys.label" | "color.scale.greys.description" | "color.scale.cool-warm.label" | "color.scale.cool-warm.description" | "color.scale.blue-red.label" | "color.scale.blue-red.description" | "color.scale.rainbow.label" | "color.scale.rainbow.description" | "download.save" | "download.saveFigure" | "download.saveThisFigure" | "download.format" | "download.formatHelp" | "download.resolution" | "download.resolutionHelp" | "download.resolutionExample" | "download.noFigure" | "download.hintRasterSvg" | "download.hintSvg" | "download.hintPng" | "download.hintCopied" | "download.copyUnsupported" | "download.size" | "download.sizeHelp" | "download.sizeScreen" | "download.sizeColumn" | "download.sizeCustom" | "download.customSize" | "download.width" | "download.height" | "pedagogy.check" | "pedagogy.revealHint" | "pedagogy.revealHintCount" | "pedagogy.revealHintLadder" | "pedagogy.hideSolution" | "pedagogy.revealSolution" | "pedagogy.reset" | "pedagogy.hints" | "pedagogy.solvedCount" | "pedagogy.clearAll" | "pedagogy.keepAnswers" | "pedagogy.clearEverything" | "pedagogy.clearWarning" | "pedagogy.filterTerms" | "pedagogy.noTermDefined" | "pedagogy.noTermMatches" | "pedagogy.example" | "pedagogy.input" | "pedagogy.previous" | "pedagogy.next" | "pedagogy.stepOf" | "pedagogy.answerEmpty" | "pedagogy.answerUnreadable" | "pedagogy.questions" | "pedagogy.questionsInSeries" | "pedagogy.questionCount" | "pedagogy.allQuestions" | "pedagogy.newSeries" | "pedagogy.newSeriesTitle" | "pedagogy.seriesQuestions" | "pedagogy.questionNumber" | "pedagogy.questionOf" | "pedagogy.solved" | "pedagogy.solvedWithHintsOf" | "pedagogy.solvedWithoutHint" | "pedagogy.nextQuestion" | "pedagogy.solution" | "pedagogy.exercises" | "pedagogy.statusIdle" | "pedagogy.statusAttempted" | "pedagogy.statusSolved" | "pedagogy.solvedWithOneHint" | "pedagogy.solvedWithHints" | "formula.copyLabel" | "formula.typeFirst" | "formula.notElement" | "formula.noAtom" | "formula.wholeCounts" | "formula.unknownNotation" | "formula.unreadable" | "slides.exit" | "slides.previousSlide" | "slides.nextSlide" | "slides.toggleFullscreen" | "slides.backToSlides" | "slides.backToSlide" | "slides.noAddress" | "slides.liveDemos" | "slides.noTalkYet" | "overlay.options" | "overlay.whatAmILookingAt" | "overlay.reset" | "overlay.hoverAName" | "overlay.dismiss" | "axis.scale" | "axis.xScale" | "axis.yScale" | "axis.linear" | "axis.logarithmic" | "axis.scaleHelp" | "delimited.copyTable" | "delimited.copyOrDownload" | "delimited.close" | "delimited.separator" | "delimited.save" | "delimited.copy" | "delimited.tableAsText" | "chart.measurement" | "chart.measurements" | "delimited.descriptionOne" | "delimited.descriptionMany" | "structure.guide.atom.title" | "structure.guide.atom.element" | "structure.guide.atom.group" | "structure.guide.atom.applyOrForget" | "structure.guide.atom.chain" | "structure.guide.atom.charge" | "structure.guide.atom.radical" | "structure.guide.atom.spin" | "structure.guide.atom.attachment" | "structure.guide.atom.query" | "structure.guide.atom.halogen" | "structure.guide.atom.delete" | "structure.guide.atom.note" | "structure.guide.bond.title" | "structure.guide.bond.order" | "structure.guide.bond.zeroOrder" | "structure.guide.bond.stereo" | "structure.guide.bond.unknownGeometry" | "structure.guide.bond.threeRing" | "structure.guide.bond.ring" | "structure.guide.bond.benzene" | "structure.guide.bond.query" | "structure.guide.bond.delete" | "structure.guide.anywhere.title" | "structure.guide.anywhere.undo" | "structure.guide.anywhere.copy" | "structure.guide.anywhere.paste" | "structure.guide.anywhere.deleteSelection" | "structure.guide.anywhere.flip" | "structure.guide.anywhere.help" | "structure.guide.anywhere.note" | "structure.guide.selecting.title" | "structure.guide.selecting.lasso" | "structure.guide.selecting.rectangle" | "structure.guide.selecting.add" | "structure.guide.selecting.move" | "structure.guide.selecting.duplicate" | "structure.guide.selecting.queryFeatures" | "structure.guide.selecting.note" | "structure.guide.stereochemistry.title" | "structure.guide.stereochemistry.note" | "structure.input.type" | "structure.input.or" | "structure.input.drag" | "structure.input.plusDrag" | "structure.input.dragSelection" | "structure.input.plusDragSelection" | "structure.input.doubleClick" | "structure.docs.toolsAndKeys" | "structure.docs.atomProperties" | "structure.docs.stereochemistry" | "structure.help.hoverToolbar" | "structure.help.learnMore" | "structure.mouseAndKeyboard" | "structure.tool.clear.name" | "structure.tool.clear.description" | "structure.tool.cleanUp.name" | "structure.tool.cleanUp.description" | "structure.tool.select.name" | "structure.tool.select.description" | "structure.tool.unknownConfiguration.name" | "structure.tool.unknownConfiguration.description" | "structure.tool.delete.name" | "structure.tool.delete.description" | "structure.tool.singleBond.name" | "structure.tool.singleBond.description" | "structure.tool.upBond.name" | "structure.tool.upBond.description" | "structure.tool.positiveCharge.name" | "structure.tool.positiveCharge.description" | "structure.tool.undo.name" | "structure.tool.undo.description" | "structure.tool.zoomAndRotate.name" | "structure.tool.zoomAndRotate.description" | "structure.tool.atomMapping.name" | "structure.tool.atomMapping.description" | "structure.tool.enhancedStereo.name" | "structure.tool.enhancedStereo.description" | "structure.tool.text.name" | "structure.tool.text.description" | "structure.tool.chain.name" | "structure.tool.chain.description" | "structure.tool.downBond.name" | "structure.tool.downBond.description" | "structure.tool.negativeCharge.name" | "structure.tool.negativeCharge.description" | "structure.tool.anyAtom.name" | "structure.tool.anyAtom.description" | "structure.tool.ring3.name" | "structure.tool.ring3.description" | "structure.tool.ring5.name" | "structure.tool.ring5.description" | "structure.tool.ring7.name" | "structure.tool.ring7.description" | "structure.tool.ring4.name" | "structure.tool.ring4.description" | "structure.tool.ring6.name" | "structure.tool.ring6.description" | "structure.tool.benzene.name" | "structure.tool.benzene.description" | "structure.tool.carbon.name" | "structure.tool.carbon.description" | "structure.tool.nitrogen.name" | "structure.tool.nitrogen.description" | "structure.tool.oxygen.name" | "structure.tool.oxygen.description" | "structure.tool.fluorine.name" | "structure.tool.fluorine.description" | "structure.tool.bromine.name" | "structure.tool.bromine.description" | "structure.tool.hydrogen.name" | "structure.tool.hydrogen.description" | "structure.tool.silicon.name" | "structure.tool.silicon.description" | "structure.tool.phosphorus.name" | "structure.tool.phosphorus.description" | "structure.tool.sulfur.name" | "structure.tool.sulfur.description" | "structure.tool.chlorine.name" | "structure.tool.chlorine.description" | "structure.tool.iodine.name" | "structure.tool.iodine.description" | "structure.tool.reactionOnly" | "structure.tool.unavailable" | "structure.loadingEditor" | "structure.import.open" | "structure.import.drop" | "structure.import.unreadableFile" | "structure.import.unreadableText" | "structure.export.open" | "structure.export.glyph" | "structure.export.title" | "structure.export.loading" | "structure.export.nothing" | "structure.export.picture" | "structure.export.identifiers" | "structure.export.saveSvg" | "structure.export.savePng" | "structure.export.copyPng" | "structure.export.smiles" | "structure.export.smilesHelp" | "structure.export.molfileV3000" | "structure.export.molfileV3000Help" | "structure.export.molfileV2000" | "structure.export.molfileV2000Help" | "structure.export.idCode" | "structure.export.idCodeHelp" | "structure.export.noStereoIdCode" | "structure.export.noStereoIdCodeHelp" | "structure.export.noStereoTautomerIdCode" | "structure.export.noStereoTautomerIdCodeHelp" | "structure.search.title" | "structure.search.apply" | "structure.search.examples" | "structure.search.substructure" | "structure.search.substructureHelp" | "structure.search.similarity" | "structure.search.similarityHelp" | "structure.search.exact" | "structure.search.exactHelp" | "structure.search.exactNoStereo" | "structure.search.exactNoStereoHelp" | "structure.search.exactNoStereoTautomer" | "structure.search.exactNoStereoTautomerHelp" | "structure.search.similarityLabel" | "structure.search.threshold" | "structure.search.thresholdHelp" | "structure.search.thresholdOption" | "structure.search.exampleBenzene" | "structure.search.examplePyridine" | "structure.search.exampleAmide" | "structure.search.exampleSulfonamide" | "structure.search.exampleTrifluoromethyl" | "periodic.table" | "periodic.group" | "periodic.period" | "periodic.block" | "periodic.allElements" | "periodic.help.title" | "periodic.help.click" | "periodic.help.modClick" | "periodic.help.element" | "periodic.help.elementClick" | "periodic.help.elementMod" | "periodic.help.number" | "periodic.help.numberClick" | "periodic.help.runMod" | "periodic.help.block" | "periodic.help.blockClick" | "periodic.help.corner" | "periodic.help.cornerClick" | "periodic.help.arrowsClick" | "periodic.help.note" | "periodic.help.ctrl" | "periodic.cellLabel" | "periodic.category.alkali-metal" | "periodic.category.alkaline-earth-metal" | "periodic.category.transition-metal" | "periodic.category.post-transition-metal" | "periodic.category.metalloid" | "periodic.category.nonmetal" | "periodic.category.halogen" | "periodic.category.noble-gas" | "periodic.category.lanthanoid" | "periodic.category.actinoid" | "molecule3d.view" | "molecule3d.resetView" | "molecule3d.spin" | "molecule3d.surface" | "molecule3d.molecularSurface" | "molecule3d.displayOptions" | "molecule3d.exportImage" | "molecule3d.frames" | "molecule3d.framesHelp" | "molecule3d.frames.one" | "molecule3d.frames.all" | "molecule3d.fullScreen" | "molecule3d.measure" | "molecule3d.clearMeasurements" | "molecule3d.measurement.distance" | "molecule3d.measurement.angle" | "molecule3d.measurement.dihedral" | "molecule3d.measurementTooltip" | "molecule3d.representation.ball-and-stick" | "molecule3d.representation.spacefill" | "molecule3d.representation.stick" | "molecule3d.size" | "molecule3d.surfaceOpacity" | "molecule3d.solventProbe" | "molecule3d.solventProbeHelp" | "molecule3d.surfaceColour" | "molecule3d.colour" | "molecule3d.resetSettings" | "molecule3d.atDefaults" | "molecule3d.surfaceOff" | "molecule3d.showSurface" | "molecule3d.coloring.uniform" | "molecule3d.coloring.element" | "molecule3d.coloring.polarity" | "molecule3d.neutral" | "molecule3d.tpsaHelp" | "molecule3d.loadingViewer" | "molecule3d.couldNotDraw" | "molecule3d.gesture.rotate" | "molecule3d.gesture.rollDrag" | "molecule3d.gesture.rollKeys" | "molecule3d.gesture.moveDrag" | "molecule3d.gesture.moveCtrl" | "molecule3d.gesture.zoom" | "molecule3d.gesture.clip" | "molecule3d.gesture.centreAtom" | "molecule3d.gesture.centreMolecule" | "molecule3d.input.drag" | "molecule3d.input.plus" | "molecule3d.input.plusDrag" | "molecule3d.input.plusScroll" | "molecule3d.input.or" | "molecule3d.input.rightDrag" | "molecule3d.input.scroll" | "molecule3d.input.clickAtom" | "molecule3d.input.clickBackground" | "molecule3d.helpNote" | "orbital.couldNotDraw" | "orbital.sampling" | "orbital.showAxes" | "orbital.axesTitle" | "orbital.axesBody" | "orbital.axesExample" | "orbital.spin" | "orbital.spinTitle" | "orbital.spinBody" | "orbital.resetTitle" | "orbital.resetBody" | "viewer.capability.noWindow" | "viewer.capability.noContext" | "viewer.capability.noFloatTextures" | "viewer.capability.ready" | "conformers.strategy.adaptive-random" | "conformers.strategy.likely-random" | "conformers.strategy.pure-random" | "conformers.strategy.likely-systematic" | "conformers.strategyDetail.adaptive-random" | "conformers.strategyDetail.likely-random" | "conformers.strategyDetail.pure-random" | "conformers.strategyDetail.likely-systematic" | "conformers.minimisation.none" | "number.increment" | "number.decrement" | "range.lowest" | "range.highest" | "range.lowestIs" | "range.highestIs" | "range.noLowerBound" | "range.noUpperBound" | "range.typeValue" | "range.clear" | "taxonomy.lineage" | "taxonomy.rankNote" | "taxonomy.ncbi" | "taxonomy.ncbiTitle" | "taxonomy.rank.realm" | "taxonomy.rank.domain" | "taxonomy.rank.superkingdom" | "taxonomy.rank.kingdom" | "taxonomy.rank.subkingdom" | "taxonomy.rank.superphylum" | "taxonomy.rank.phylum" | "taxonomy.rank.subphylum" | "taxonomy.rank.superclass" | "taxonomy.rank.class" | "taxonomy.rank.subclass" | "taxonomy.rank.infraclass" | "taxonomy.rank.cohort" | "taxonomy.rank.subcohort" | "taxonomy.rank.superorder" | "taxonomy.rank.order" | "taxonomy.rank.suborder" | "taxonomy.rank.infraorder" | "taxonomy.rank.parvorder" | "taxonomy.rank.superfamily" | "taxonomy.rank.family" | "taxonomy.rank.subfamily" | "taxonomy.rank.tribe" | "taxonomy.rank.subtribe" | "taxonomy.rank.genus" | "taxonomy.rank.subgenus" | "taxonomy.rank.section" | "taxonomy.rank.subsection" | "taxonomy.rank.series" | "taxonomy.rank.subseries" | "taxonomy.rank.speciesGroup" | "taxonomy.rank.speciesSubgroup" | "taxonomy.rank.species" | "taxonomy.rank.formaSpecialis" | "taxonomy.rank.subspecies" | "taxonomy.rank.varietas" | "taxonomy.rank.subvariety" | "taxonomy.rank.forma" | "taxonomy.rank.pathogroup" | "taxonomy.rank.serogroup" | "taxonomy.rank.serotype" | "taxonomy.rank.biotype" | "taxonomy.rank.genotype" | "taxonomy.rank.morph" | "taxonomy.rank.strain" | "taxonomy.rank.isolate" | "taxonomy.rank.noRank" | "taxonomy.rank.clade" | "taxonomy.rank.cellularRoot" | "taxonomy.rank.acellularRoot" | "moleculesToken.title" | "moleculesToken.checkedAt" | "moleculesToken.checkAgain" | "moleculesToken.notChecked" | "moleculesToken.column.variable" | "moleculesToken.column.source" | "moleculesToken.column.status" | "moleculesToken.column.details" | "moleculesToken.anySource" | "moleculesToken.verdict.ok" | "moleculesToken.verdict.otherSource" | "moleculesToken.verdict.refused" | "moleculesToken.verdict.unset" | "moleculesToken.verdict.uncheckable" | "moleculesToken.verdict.unanswered" | "moleculesToken.forSource" | "moleculesToken.issued" | "moleculesToken.issuedTo" | "moleculesToken.lastUsed" | "moleculesToken.neverUsed" | "moleculesToken.otherSourceDetail" | "moleculesToken.refusedDetail" | "moleculesToken.unsetDetail" | "moleculesToken.uncheckableDetail" | "moleculesToken.howToChange" | "moleculesToken.fix.title" | "moleculesToken.fix.issueOne" | "moleculesToken.fix.issueMany" | "moleculesToken.fix.issueOnServer" | "moleculesToken.fix.envOne" | "moleculesToken.fix.envMany" | "moleculesToken.fix.restart" | "ir.mode.intensity" | "ir.raman.xTitle" | "ir.raman.chart" | "ir.raman.tools" | "ir.raman.viewer" | "ir.raman.viewerHelp" | "ir.raman.mark" | "ir.raman.about" | "ir.raman.documentation" | "ir.raman.command.documentation" | "ir.raman.command.readTool" | "ir.raman.command.boxTool" | "ir.raman.command.zoomIn" | "ir.raman.command.togglePicking" | "ir.raman.doc.bands" | "ir.raman.doc.sampled" | "ir.raman.aboutLead" | "ir.raman.credit.picking" | "ir.raman.credit.jcamp">;
21
21
  //# sourceMappingURL=chromeCatalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chromeCatalog.d.ts","sourceRoot":"","sources":["../../../src/i18n/core/chromeCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,uBAAuB,CAAuB;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,qCAAqC;AACrC,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,EAAE,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,cAAc,g3pBAgBzB,CAAC"}
1
+ {"version":3,"file":"chromeCatalog.d.ts","sourceRoot":"","sources":["../../../src/i18n/core/chromeCatalog.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,uBAAuB,CAAuB;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,qCAAqC;AACrC,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,EAAE,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,cAAc,ynrBAgBzB,CAAC"}
@@ -583,6 +583,28 @@
583
583
  "structure.export.noStereoIdCodeHelp": "Jedes Stereoisomer ergibt diese, womit ein ohne Stereozentren gezeichneter Eintrag gefunden wird.",
584
584
  "structure.export.noStereoTautomerIdCode": "idCode ohne Stereochemie und Tautomerie",
585
585
  "structure.export.noStereoTautomerIdCodeHelp": "Jedes Tautomer und jedes Stereoisomer ergibt diese: Keto- und Enolform haben denselben Schlüssel.",
586
+ "structure.search.title": "Nach Struktur filtern",
587
+ "structure.search.apply": "Anwenden",
588
+ "structure.search.examples": "Ausgehend von",
589
+ "structure.search.substructure": "Enthält",
590
+ "structure.search.substructureHelp": "Jedes Molekül, das die Zeichnung enthält.",
591
+ "structure.search.similarity": "Ähnlich zu",
592
+ "structure.search.similarityHelp": "Geordnet danach, wie viel der Zeichnung sie teilen.",
593
+ "structure.search.exact": "Ist genau",
594
+ "structure.search.exactHelp": "Genau das gezeichnete Molekül.",
595
+ "structure.search.exactNoStereo": "Beliebiges Stereoisomer",
596
+ "structure.search.exactNoStereoHelp": "Dieselbe Verbindung, wie auch immer ihre Stereochemie gezeichnet ist.",
597
+ "structure.search.exactNoStereoTautomer": "Beliebiges Tautomer",
598
+ "structure.search.exactNoStereoTautomerHelp": "Dieselbe Verbindung in jeder tautomeren Form, ohne ihre Stereochemie.",
599
+ "structure.search.similarityLabel": "Ähnlichkeit",
600
+ "structure.search.threshold": "Mindestähnlichkeit",
601
+ "structure.search.thresholdHelp": "Der kleinste Tanimoto-Koeffizient, den ein Treffer mit der Zeichnung erreicht.",
602
+ "structure.search.thresholdOption": "≥ {percent}",
603
+ "structure.search.exampleBenzene": "Benzol",
604
+ "structure.search.examplePyridine": "Pyridin",
605
+ "structure.search.exampleAmide": "Amid",
606
+ "structure.search.exampleSulfonamide": "Sulfonamid",
607
+ "structure.search.exampleTrifluoromethyl": "Trifluormethyl",
586
608
  "molecule3d.view": "Ansicht",
587
609
  "molecule3d.resetView": "Ansicht zurücksetzen",
588
610
  "molecule3d.spin": "Drehen lassen",
@@ -527,6 +527,28 @@
527
527
  "structure.export.noStereoIdCodeHelp": "Every stereoisomer of this structure gives this one, so it finds a record drawn without its stereocentres.",
528
528
  "structure.export.noStereoTautomerIdCode": "idCode without stereochemistry or tautomer",
529
529
  "structure.export.noStereoTautomerIdCodeHelp": "Every tautomer and every stereoisomer gives this one, so the keto and the enol form key together.",
530
+ "structure.search.title": "Filter by structure",
531
+ "structure.search.apply": "Apply",
532
+ "structure.search.examples": "Start from",
533
+ "structure.search.substructure": "Contains",
534
+ "structure.search.substructureHelp": "Every molecule the drawing is part of.",
535
+ "structure.search.similarity": "Similar to",
536
+ "structure.search.similarityHelp": "Ranked by how much of the drawing they share.",
537
+ "structure.search.exact": "Is exactly",
538
+ "structure.search.exactHelp": "The one molecule drawn.",
539
+ "structure.search.exactNoStereo": "Any stereoisomer",
540
+ "structure.search.exactNoStereoHelp": "The same compound however its stereochemistry is drawn.",
541
+ "structure.search.exactNoStereoTautomer": "Any tautomer",
542
+ "structure.search.exactNoStereoTautomerHelp": "The same compound in any tautomeric form, its stereochemistry ignored.",
543
+ "structure.search.similarityLabel": "Similarity",
544
+ "structure.search.threshold": "Minimum similarity",
545
+ "structure.search.thresholdHelp": "The least Tanimoto coefficient a hit reaches with the drawing.",
546
+ "structure.search.thresholdOption": "≥ {percent}",
547
+ "structure.search.exampleBenzene": "Benzene",
548
+ "structure.search.examplePyridine": "Pyridine",
549
+ "structure.search.exampleAmide": "Amide",
550
+ "structure.search.exampleSulfonamide": "Sulfonamide",
551
+ "structure.search.exampleTrifluoromethyl": "Trifluoromethyl",
530
552
  "periodic.table": "Periodic table",
531
553
  "periodic.group": "Group {group}",
532
554
  "periodic.period": "Period {period}",
@@ -583,6 +583,28 @@
583
583
  "structure.export.noStereoIdCodeHelp": "Todos los estereoisómeros dan este, así que encuentra un registro dibujado sin sus centros estereogénicos.",
584
584
  "structure.export.noStereoTautomerIdCode": "idCode sin estereoquímica ni tautomería",
585
585
  "structure.export.noStereoTautomerIdCodeHelp": "Todos los tautómeros y estereoisómeros dan este: la forma cetónica y la enólica comparten clave.",
586
+ "structure.search.title": "Filtrar por estructura",
587
+ "structure.search.apply": "Aplicar",
588
+ "structure.search.examples": "Partir de",
589
+ "structure.search.substructure": "Contiene",
590
+ "structure.search.substructureHelp": "Toda molécula de la que el dibujo forma parte.",
591
+ "structure.search.similarity": "Similar a",
592
+ "structure.search.similarityHelp": "Ordenadas por cuánto del dibujo comparten.",
593
+ "structure.search.exact": "Es exactamente",
594
+ "structure.search.exactHelp": "La molécula dibujada.",
595
+ "structure.search.exactNoStereo": "Cualquier estereoisómero",
596
+ "structure.search.exactNoStereoHelp": "El mismo compuesto, sea cual sea su estereoquímica dibujada.",
597
+ "structure.search.exactNoStereoTautomer": "Cualquier tautómero",
598
+ "structure.search.exactNoStereoTautomerHelp": "El mismo compuesto en cualquier forma tautomérica, sin su estereoquímica.",
599
+ "structure.search.similarityLabel": "Similitud",
600
+ "structure.search.threshold": "Similitud mínima",
601
+ "structure.search.thresholdHelp": "El menor coeficiente de Tanimoto que alcanza un resultado con el dibujo.",
602
+ "structure.search.thresholdOption": "≥ {percent}",
603
+ "structure.search.exampleBenzene": "Benceno",
604
+ "structure.search.examplePyridine": "Piridina",
605
+ "structure.search.exampleAmide": "Amida",
606
+ "structure.search.exampleSulfonamide": "Sulfonamida",
607
+ "structure.search.exampleTrifluoromethyl": "Trifluorometilo",
586
608
  "molecule3d.view": "Vista",
587
609
  "molecule3d.resetView": "Reiniciar la vista",
588
610
  "molecule3d.spin": "Giro continuo",
@@ -583,6 +583,28 @@
583
583
  "structure.export.noStereoIdCodeHelp": "Tous les stéréoisomères donnent celui-ci, ce qui retrouve un enregistrement dessiné sans ses centres stéréogènes.",
584
584
  "structure.export.noStereoTautomerIdCode": "idCode sans stéréochimie ni tautomérie",
585
585
  "structure.export.noStereoTautomerIdCodeHelp": "Tous les tautomères et tous les stéréoisomères donnent celui-ci : la forme cétone et la forme énol ont la même clé.",
586
+ "structure.search.title": "Filtrer par structure",
587
+ "structure.search.apply": "Appliquer",
588
+ "structure.search.examples": "Partir de",
589
+ "structure.search.substructure": "Contient",
590
+ "structure.search.substructureHelp": "Toutes les molécules dont le dessin fait partie.",
591
+ "structure.search.similarity": "Similaire à",
592
+ "structure.search.similarityHelp": "Classées selon la part du dessin qu’elles partagent.",
593
+ "structure.search.exact": "Exactement",
594
+ "structure.search.exactHelp": "La seule molécule dessinée.",
595
+ "structure.search.exactNoStereo": "Tout stéréoisomère",
596
+ "structure.search.exactNoStereoHelp": "Le même composé, quelle que soit sa stéréochimie dessinée.",
597
+ "structure.search.exactNoStereoTautomer": "Tout tautomère",
598
+ "structure.search.exactNoStereoTautomerHelp": "Le même composé sous toute forme tautomère, sa stéréochimie ignorée.",
599
+ "structure.search.similarityLabel": "Similarité",
600
+ "structure.search.threshold": "Similarité minimale",
601
+ "structure.search.thresholdHelp": "Le plus petit coefficient de Tanimoto qu’un résultat atteint avec le dessin.",
602
+ "structure.search.thresholdOption": "≥ {percent}",
603
+ "structure.search.exampleBenzene": "Benzène",
604
+ "structure.search.examplePyridine": "Pyridine",
605
+ "structure.search.exampleAmide": "Amide",
606
+ "structure.search.exampleSulfonamide": "Sulfonamide",
607
+ "structure.search.exampleTrifluoromethyl": "Trifluorométhyle",
586
608
  "molecule3d.view": "Vue",
587
609
  "molecule3d.resetView": "Réinitialiser la vue",
588
610
  "molecule3d.spin": "Rotation continue",
@@ -527,6 +527,28 @@
527
527
  "structure.export.noStereoIdCodeHelp": "Ogni stereoisomero dà questo, così trova una voce disegnata senza i suoi centri stereogenici.",
528
528
  "structure.export.noStereoTautomerIdCode": "idCode senza stereochimica né tautomeria",
529
529
  "structure.export.noStereoTautomerIdCodeHelp": "Ogni tautomero e ogni stereoisomero dà questo: la forma chetonica e quella enolica hanno la stessa chiave.",
530
+ "structure.search.title": "Filtra per struttura",
531
+ "structure.search.apply": "Applica",
532
+ "structure.search.examples": "Parti da",
533
+ "structure.search.substructure": "Contiene",
534
+ "structure.search.substructureHelp": "Ogni molecola di cui il disegno fa parte.",
535
+ "structure.search.similarity": "Simile a",
536
+ "structure.search.similarityHelp": "Ordinate per quanta parte del disegno condividono.",
537
+ "structure.search.exact": "È esattamente",
538
+ "structure.search.exactHelp": "La molecola disegnata.",
539
+ "structure.search.exactNoStereo": "Qualsiasi stereoisomero",
540
+ "structure.search.exactNoStereoHelp": "Lo stesso composto, qualunque sia la stereochimica disegnata.",
541
+ "structure.search.exactNoStereoTautomer": "Qualsiasi tautomero",
542
+ "structure.search.exactNoStereoTautomerHelp": "Lo stesso composto in qualsiasi forma tautomerica, senza la sua stereochimica.",
543
+ "structure.search.similarityLabel": "Similarità",
544
+ "structure.search.threshold": "Similarità minima",
545
+ "structure.search.thresholdHelp": "Il più piccolo coefficiente di Tanimoto che un risultato raggiunge con il disegno.",
546
+ "structure.search.thresholdOption": "≥ {percent}",
547
+ "structure.search.exampleBenzene": "Benzene",
548
+ "structure.search.examplePyridine": "Piridina",
549
+ "structure.search.exampleAmide": "Ammide",
550
+ "structure.search.exampleSulfonamide": "Sulfonammide",
551
+ "structure.search.exampleTrifluoromethyl": "Trifluorometile",
530
552
  "periodic.table": "Tavola periodica",
531
553
  "periodic.group": "Gruppo {group}",
532
554
  "periodic.period": "Periodo {period}",
@@ -0,0 +1,15 @@
1
+ /**
2
+ * A SMILES turned into the idCode a query editor holds.
3
+ *
4
+ * **Not exported from `core/index.ts`**: it value-imports `openchemlib`, so
5
+ * the structure search dialog loads it with a dynamic import, only once an
6
+ * example is clicked.
7
+ */
8
+ /**
9
+ * Read a SMILES as a query fragment.
10
+ * @param smiles - The fragment.
11
+ * @returns Its idCode, flagged as a fragment so any substituent may hang off
12
+ * it; empty when the SMILES cannot be read.
13
+ */
14
+ export declare function fragmentIdCode(smiles: string): string;
15
+ //# sourceMappingURL=fragmentIdCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fragmentIdCode.d.ts","sourceRoot":"","sources":["../../../src/structure/core/fragmentIdCode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQrD"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * A SMILES turned into the idCode a query editor holds.
3
+ *
4
+ * **Not exported from `core/index.ts`**: it value-imports `openchemlib`, so
5
+ * the structure search dialog loads it with a dynamic import, only once an
6
+ * example is clicked.
7
+ */
8
+ import { Molecule } from 'openchemlib';
9
+ /**
10
+ * Read a SMILES as a query fragment.
11
+ * @param smiles - The fragment.
12
+ * @returns Its idCode, flagged as a fragment so any substituent may hang off
13
+ * it; empty when the SMILES cannot be read.
14
+ */
15
+ export function fragmentIdCode(smiles) {
16
+ try {
17
+ const fragment = Molecule.fromSmiles(smiles);
18
+ fragment.setFragment(true);
19
+ return fragment.getIDCode();
20
+ }
21
+ catch {
22
+ return '';
23
+ }
24
+ }
25
+ //# sourceMappingURL=fragmentIdCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fragmentIdCode.js","sourceRoot":"","sources":["../../../src/structure/core/fragmentIdCode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -26,6 +26,8 @@ export type { StructureError } from './structureError.ts';
26
26
  export { structureError } from './structureError.ts';
27
27
  export type { StructurePicture, StructurePictureOptions, } from './structurePicture.ts';
28
28
  export { STRUCTURE_BOND_LENGTH, structurePicture } from './structurePicture.ts';
29
+ export type { StructureSearchExample, StructureSearchMode, StructureSearchQuery, } from './structureSearch.ts';
30
+ export { SIMILARITY_THRESHOLDS, STRUCTURE_SEARCH_MODES, similarityThresholds, } from './structureSearch.ts';
29
31
  export type { StructureSource, StructureSourceInput, } from './structureSource.ts';
30
32
  export { structureSource } from './structureSource.ts';
31
33
  export type { StructureTransfer, StructureTransferSource, } from './structureTransfer.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/structure/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,YAAY,EACZ,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,aAAa,EACb,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChF,YAAY,EACV,eAAe,EACf,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/structure/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,YAAY,EACZ,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,aAAa,EACb,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChF,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChF,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC"}
@@ -12,6 +12,7 @@ export { readMolfileExport, toMolfileExport } from "./molfileExport.js";
12
12
  export { looksLikeSmarts, readStructure } from "./readStructure.js";
13
13
  export { structureError } from "./structureError.js";
14
14
  export { STRUCTURE_BOND_LENGTH, structurePicture } from "./structurePicture.js";
15
+ export { SIMILARITY_THRESHOLDS, STRUCTURE_SEARCH_MODES, similarityThresholds, } from "./structureSearch.js";
15
16
  export { structureSource } from "./structureSource.js";
16
17
  export { carriesStructure, readStructureTransfer, } from "./structureTransfer.js";
17
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/structure/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAOtE,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKhF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/structure/core/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAOtE,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMhF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD,OAAO,EACL,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /** How a drawn structure is matched against a collection. */
2
+ export type StructureSearchMode = 'substructure' | 'similarity' | 'exact' | 'exactNoStereo' | 'exactNoStereoTautomer';
3
+ /**
4
+ * Every mode, in the order a dialog offers them: the two broad scans, then
5
+ * exact and its two relaxations.
6
+ */
7
+ export declare const STRUCTURE_SEARCH_MODES: readonly StructureSearchMode[];
8
+ /** A structure question: what is drawn, and how it is matched. */
9
+ export interface StructureSearchQuery {
10
+ /**
11
+ * The drawing as an idCode, with the coordinates the editor laid out written
12
+ * after a space; empty when nothing is drawn.
13
+ */
14
+ idCode: string;
15
+ /** How the drawing is matched. */
16
+ mode: StructureSearchMode;
17
+ /** The least Tanimoto similarity a hit reaches, from 0 to 1. */
18
+ threshold: number;
19
+ }
20
+ /** A fragment a drawing can start from. */
21
+ export interface StructureSearchExample {
22
+ /** What the button says. */
23
+ label: string;
24
+ /** The fragment, as a SMILES. */
25
+ smiles: string;
26
+ /**
27
+ * One line on what the fragment finds.
28
+ * @default undefined
29
+ */
30
+ help?: string;
31
+ }
32
+ /**
33
+ * The least similarities offered, as Tanimoto coefficients, in steps of 5 %.
34
+ */
35
+ export declare const SIMILARITY_THRESHOLDS: readonly number[];
36
+ /**
37
+ * The thresholds to offer when one is already chosen: the usual steps, plus the
38
+ * chosen one when it is none of them, so a link asking for 0.42 still finds it
39
+ * in the list.
40
+ * @param current - The threshold in force.
41
+ * @returns The thresholds, ascending.
42
+ */
43
+ export declare function similarityThresholds(current: number): number[];
44
+ //# sourceMappingURL=structureSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structureSearch.d.ts","sourceRoot":"","sources":["../../../src/structure/core/structureSearch.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,MAAM,mBAAmB,GAC3B,cAAc,GACd,YAAY,GACZ,OAAO,GACP,eAAe,GACf,uBAAuB,CAAC;AAE5B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,mBAAmB,EAMhE,CAAC;AAEF,kEAAkE;AAClE,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAElD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAO9D"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Every mode, in the order a dialog offers them: the two broad scans, then
3
+ * exact and its two relaxations.
4
+ */
5
+ export const STRUCTURE_SEARCH_MODES = [
6
+ 'substructure',
7
+ 'similarity',
8
+ 'exact',
9
+ 'exactNoStereo',
10
+ 'exactNoStereoTautomer',
11
+ ];
12
+ /**
13
+ * The least similarities offered, as Tanimoto coefficients, in steps of 5 %.
14
+ */
15
+ export const SIMILARITY_THRESHOLDS = [
16
+ 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95,
17
+ ];
18
+ /**
19
+ * The thresholds to offer when one is already chosen: the usual steps, plus the
20
+ * chosen one when it is none of them, so a link asking for 0.42 still finds it
21
+ * in the list.
22
+ * @param current - The threshold in force.
23
+ * @returns The thresholds, ascending.
24
+ */
25
+ export function similarityThresholds(current) {
26
+ if (SIMILARITY_THRESHOLDS.includes(current) || !Number.isFinite(current)) {
27
+ return [...SIMILARITY_THRESHOLDS];
28
+ }
29
+ return [...SIMILARITY_THRESHOLDS, current].toSorted((left, right) => left - right);
30
+ }
31
+ //# sourceMappingURL=structureSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structureSearch.js","sourceRoot":"","sources":["../../../src/structure/core/structureSearch.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACpE,cAAc;IACd,YAAY;IACZ,OAAO;IACP,eAAe;IACf,uBAAuB;CACxB,CAAC;AA4BF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI;CACtD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACzE,OAAO,CAAC,GAAG,qBAAqB,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,GAAG,qBAAqB,EAAE,OAAO,CAAC,CAAC,QAAQ,CACjD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAC9B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Where a query fragment sits in a molecule, as the atoms and bonds to paint.
3
+ *
4
+ * **Not exported from `core/index.ts`**: it value-imports `openchemlib`, so a
5
+ * barrel carrying it would pull the whole library into every site that imports
6
+ * `react-cheminfo/core`. Only the lazily loaded depiction calls it.
7
+ */
8
+ import { Molecule } from 'openchemlib';
9
+ /** The atoms and bonds of a molecule that a query covers. */
10
+ export interface SubstructureMatch {
11
+ /** Atom indices, ascending, as openchemlib counts atoms from 0. */
12
+ atoms: number[];
13
+ /** Bond indices, ascending, as openchemlib counts bonds from 0. */
14
+ bonds: number[];
15
+ }
16
+ /**
17
+ * Find every match of a query in a molecule, merged into one set of atoms and
18
+ * bonds.
19
+ *
20
+ * Every match is painted, not only the first: a query for a phenyl ring that a
21
+ * molecule carries twice is shown twice. A bond is painted only when it is a
22
+ * bond of the query, so a ring closing between two matched atoms that the
23
+ * query leaves open stays unpainted. The query is read as a fragment whether
24
+ * or not it was drawn as one — a molecule not flagged as a fragment only ever
25
+ * matches itself, which is never what a substructure search asked.
26
+ * @param molecule - The molecule the depiction draws; its atom order is the
27
+ * one the indices refer to.
28
+ * @param query - The query as an openchemlib idCode, coordinates included or
29
+ * not.
30
+ * @returns The covered atoms and bonds, both empty when nothing matches.
31
+ */
32
+ export declare function substructureMatch(molecule: Molecule, query: string): SubstructureMatch;
33
+ //# sourceMappingURL=substructureMatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"substructureMatch.d.ts","sourceRoot":"","sources":["../../../src/structure/core/substructureMatch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAc,MAAM,aAAa,CAAC;AAInD,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mEAAmE;IACnE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,GACZ,iBAAiB,CAgCnB"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Where a query fragment sits in a molecule, as the atoms and bonds to paint.
3
+ *
4
+ * **Not exported from `core/index.ts`**: it value-imports `openchemlib`, so a
5
+ * barrel carrying it would pull the whole library into every site that imports
6
+ * `react-cheminfo/core`. Only the lazily loaded depiction calls it.
7
+ */
8
+ import { Molecule, SSSearcher } from 'openchemlib';
9
+ import { isEmptyIdCode, splitIdCode } from "./editorValue.js";
10
+ /**
11
+ * Find every match of a query in a molecule, merged into one set of atoms and
12
+ * bonds.
13
+ *
14
+ * Every match is painted, not only the first: a query for a phenyl ring that a
15
+ * molecule carries twice is shown twice. A bond is painted only when it is a
16
+ * bond of the query, so a ring closing between two matched atoms that the
17
+ * query leaves open stays unpainted. The query is read as a fragment whether
18
+ * or not it was drawn as one — a molecule not flagged as a fragment only ever
19
+ * matches itself, which is never what a substructure search asked.
20
+ * @param molecule - The molecule the depiction draws; its atom order is the
21
+ * one the indices refer to.
22
+ * @param query - The query as an openchemlib idCode, coordinates included or
23
+ * not.
24
+ * @returns The covered atoms and bonds, both empty when nothing matches.
25
+ */
26
+ export function substructureMatch(molecule, query) {
27
+ if (isEmptyIdCode(query))
28
+ return { atoms: [], bonds: [] };
29
+ const fragment = Molecule.fromIDCode(splitIdCode(query).idCode);
30
+ fragment.setFragment(true);
31
+ const searcher = new SSSearcher();
32
+ searcher.setMol(fragment, molecule);
33
+ if (searcher.findFragmentInMolecule({ countMode: 'overlapping' }) === 0) {
34
+ return { atoms: [], bonds: [] };
35
+ }
36
+ const atomCovered = new Uint8Array(molecule.getAllAtoms());
37
+ const bondCovered = new Uint8Array(molecule.getAllBonds());
38
+ const fragmentBonds = fragment.getAllBonds();
39
+ for (const match of searcher.getMatchList()) {
40
+ for (const target of match) {
41
+ // An exclude group of the query maps onto nothing.
42
+ if (target >= 0)
43
+ atomCovered[target] = 1;
44
+ }
45
+ for (let bond = 0; bond < fragmentBonds; bond++) {
46
+ const first = match[fragment.getBondAtom(0, bond)] ?? -1;
47
+ const second = match[fragment.getBondAtom(1, bond)] ?? -1;
48
+ if (first < 0 || second < 0)
49
+ continue;
50
+ const target = molecule.getBond(first, second);
51
+ if (target >= 0)
52
+ bondCovered[target] = 1;
53
+ }
54
+ }
55
+ return {
56
+ atoms: coveredIndices(atomCovered),
57
+ bonds: coveredIndices(bondCovered),
58
+ };
59
+ }
60
+ /**
61
+ * The positions of a flag array that are set, in ascending order.
62
+ * @param flags - One flag per atom or bond.
63
+ * @returns The indices whose flag is set.
64
+ */
65
+ function coveredIndices(flags) {
66
+ const indices = [];
67
+ for (let index = 0; index < flags.length; index++) {
68
+ if (flags[index] === 1)
69
+ indices.push(index);
70
+ }
71
+ return indices;
72
+ }
73
+ //# sourceMappingURL=substructureMatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"substructureMatch.js","sourceRoot":"","sources":["../../../src/structure/core/substructureMatch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAU9D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAkB,EAClB,KAAa;IAEb,IAAI,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IAChE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE3B,MAAM,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpC,IAAI,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;QAC5C,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,mDAAmD;YACnD,IAAI,MAAM,IAAI,CAAC;gBAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC;gBAAE,SAAS;YACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,MAAM,IAAI,CAAC;gBAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC;QAClC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC;KACnC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,KAAiB;IACvC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -120,6 +120,24 @@ export interface StructureProps {
120
120
  * @default '#ffd8a8'
121
121
  */
122
122
  bondHighlightColor?: string;
123
+ /**
124
+ * A query fragment, as an openchemlib idCode, whose every match is painted —
125
+ * atoms and bonds alike, so the hit reads as one shape. When set, it takes
126
+ * the place of `atomHighlight` and `bondHighlight`.
127
+ * @default undefined
128
+ */
129
+ substructure?: string;
130
+ /**
131
+ * The colour the `substructure` match is painted.
132
+ * @default '#ffd500'
133
+ */
134
+ substructureColor?: string;
135
+ /**
136
+ * How opaque the `substructure` match is painted, from 0 to 1. Light, so the
137
+ * bonds and the atom labels under it stay legible.
138
+ * @default 0.15
139
+ */
140
+ substructureOpacity?: number;
123
141
  /**
124
142
  * Called with the index of the atom that was clicked, counted from 0 as
125
143
  * openchemlib counts atoms.