Skip to main content

Sketcher

Defined in: js-api/src/chem.ts:138

Molecule sketcher that supports multiple dynamically initialized implementations.

Extends

Constructors

Constructor

new Sketcher(mode?, validationFunc?): Sketcher

Defined in: js-api/src/chem.ts:344

Parameters

ParameterType
mode?SKETCHER_MODE
validationFunc?(s) => string | null

Returns

Sketcher

Overrides

Widget.constructor

Properties

PropertyModifierTypeDefault valueDescriptionInherited fromDefined in
_alignpublicbooleantrue--js-api/src/chem.ts:173
_autoResizedpublicbooleantrue--js-api/src/chem.ts:170
_functionsprotectedFunc[][]-Widget._functionsjs-api/src/widgets/base.ts:214
_highlightpublicbooleantrue--js-api/src/chem.ts:174
_isSubstructureFilterpublicbooleanfalse--js-api/src/chem.ts:172
_modepublicSKETCHER_MODESKETCHER_MODE.INPLACE--js-api/src/chem.ts:155
_molfilepublicstring | nullnull--js-api/src/chem.ts:157
_propertiesprotectedProperty[][]-Widget._propertiesjs-api/src/widgets/base.ts:213
_rootprotectedHTMLElementundefined-Widget._rootjs-api/src/u2core/component.ts:423
_sketcherTypeChangedpublicbooleanfalse--js-api/src/chem.ts:169
_smartspublicstring | nullnull--js-api/src/chem.ts:158
_smilespublicstring | nullnull--js-api/src/chem.ts:156
_u2readonlyComponentStateundefined-Widget._u2js-api/src/u2core/component.ts:76
_validationFuncpublic(molecule) => string | nullundefined--js-api/src/chem.ts:171
alighInputpublicInputBaseundefined--js-api/src/chem.ts:177
changedSubpublicSubscription | nullnull--js-api/src/chem.ts:143
clearSketcherButtonpublicHTMLButtonElementundefined--js-api/src/chem.ts:166
componentMeta?publicComponentMetaBaseundefinedThe registry metadata of the tag that built this component, stamped by the spec renderer — the single source the introspection surface below is generated from.Widget.componentMetajs-api/src/u2core/component.ts:71
dartpublicanyundefined-Widget.dartjs-api/src/widgets/base.ts:217
emptySketcherLinkpublicHTMLDivElementundefined--js-api/src/chem.ts:167
errorpublicstring | nullnull--js-api/src/chem.ts:175
errorDivpublicHTMLDivElementundefined--js-api/src/chem.ts:176
extSketcherCanvaspublicHTMLCanvasElementundefined--js-api/src/chem.ts:163
extSketcherDivpublicHTMLDivElementundefined--js-api/src/chem.ts:162
factorypublicFunc | nullnullConstructor function. No parameters, returns [Widget].Widget.factoryjs-api/src/widgets/base.ts:211
filterOnChangeInputpublicInputBaseundefined--js-api/src/chem.ts:179
filterOptionsDivpublicHTMLDivElementundefined--js-api/src/chem.ts:164
highlightInputpublicInputBaseundefined--js-api/src/chem.ts:178
hostpublicHTMLDivElementundefined--js-api/src/chem.ts:142
inplaceSketcherDivpublicHTMLDivElement | nullnull--js-api/src/chem.ts:165
invalidMoleculeWarningpublicHTMLDivElementundefined--js-api/src/chem.ts:141
isDetachedpublicbooleanfalse-Widget.isDetachedjs-api/src/widgets/base.ts:218
listenerspublicFunction[][]--js-api/src/chem.ts:154
loaderpublicHTMLDivElementundefined--js-api/src/chem.ts:161
molFileUnitspublicNotationNotation.MolBlock--js-api/src/chem.ts:159
molInputpublicHTMLInputElementundefined--js-api/src/chem.ts:140
onAlignedChangedpublicSubject<boolean>undefined--js-api/src/chem.ts:146
onChangedpublicSubject<any>undefined--js-api/src/chem.ts:145
onHighlightChangedpublicSubject<boolean>undefined--js-api/src/chem.ts:147
propspublicanyundefined-Widget.propsjs-api/src/widgets/base.ts:215
resizedpublicbooleanfalse--js-api/src/chem.ts:168
sketcherpublicSketcherBase | nullnull--js-api/src/chem.ts:144
sketcherDialogOpenedpublicbooleanfalse--js-api/src/chem.ts:149
sketcherFunctionspublicFunc[][]--js-api/src/chem.ts:148
specProps?publicRecord<string, unknown>undefinedThe props the registry's create was handed, stamped alongside componentMeta: the last resort of the property read below, for a component that keeps a prop under another name or not at all (a create wrapping a bare element). Construction-time values — a live one always wins.Widget.specPropsjs-api/src/u2core/component.ts:75
subspublicSubscription[]undefined-Widget.subsjs-api/src/widgets/base.ts:216
syncCurrentObjectpublicbooleantrueWhether the currently drawn molecule becomes the current object as you sketch it-js-api/src/chem.ts:152
temppublicanyundefinedContains auxiliary informationWidget.tempjs-api/src/widgets/base.ts:208
FAVORITES_KEYreadonly"chem-molecule-favorites"'chem-molecule-favorites'--js-api/src/chem.ts:671
RECENT_KEYreadonly"chem-molecule-recent"'chem-molecule-recent'--js-api/src/chem.ts:672

Accessors

aiDescription

Get Signature

get aiDescription(): string | null

Defined in: js-api/src/u2core/component.ts:146

A short AI-facing briefing, seeded from the registry's usage or description.

Returns

string | null

Set Signature

set aiDescription(x): void

Defined in: js-api/src/u2core/component.ts:150

Parameters
ParameterType
xstring | null
Returns

void

Inherited from

Widget.aiDescription


align

Get Signature

get align(): boolean

Defined in: js-api/src/chem.ts:225

Returns

boolean

Set Signature

set align(value): void

Defined in: js-api/src/chem.ts:226

Parameters
ParameterType
valueboolean
Returns

void


ambientAdoption

Get Signature

get protected ambientAdoption(): boolean

Defined in: js-api/src/widgets/base.ts:272

A widget wrapper minted inside somebody's effect scope must not be auto-disposed with it.

Returns

boolean

Inherited from

Widget.ambientAdoption


autoResized

Get Signature

get autoResized(): boolean

Defined in: js-api/src/chem.ts:197

Returns

boolean


calculating

Get Signature

get calculating(): boolean

Defined in: js-api/src/chem.ts:205

Returns

boolean

Set Signature

set calculating(value): void

Defined in: js-api/src/chem.ts:206

Parameters
ParameterType
valueboolean
Returns

void


children

Get Signature

get children(): Widget<any>[]

Defined in: js-api/src/widgets/base.ts:304

Parent widget up the DOM tree, or null.

Returns

Widget<any>[]

Inherited from

Widget.children


filterOnChange

Get Signature

get filterOnChange(): boolean

Defined in: js-api/src/chem.ts:229

Returns

boolean

Set Signature

set filterOnChange(value): void

Defined in: js-api/src/chem.ts:230

Parameters
ParameterType
valueboolean
Returns

void


filterOptions

Get Signature

get filterOptions(): HTMLElement

Defined in: js-api/src/chem.ts:231

Returns

HTMLElement


height

Get Signature

get height(): number

Defined in: js-api/src/chem.ts:189

Returns

number


highlight

Get Signature

get highlight(): boolean

Defined in: js-api/src/chem.ts:227

Returns

boolean

Set Signature

set highlight(value): void

Defined in: js-api/src/chem.ts:228

Parameters
ParameterType
valueboolean
Returns

void


isResizing

Get Signature

get isResizing(): boolean

Defined in: js-api/src/chem.ts:193

Returns

boolean


isSubstructureFilter

Get Signature

get isSubstructureFilter(): boolean

Defined in: js-api/src/chem.ts:216

Returns

boolean

Set Signature

set isSubstructureFilter(value): void

Defined in: js-api/src/chem.ts:217

Parameters
ParameterType
valueboolean
Returns

void


name

Get Signature

get name(): string | undefined

Defined in: js-api/src/u2core/component.ts:67

Unique within a spec: the anchor for selection, patches and automation. An accessor pair (not a field), so a platform descendant's own name accessors override it legally (TS2611).

Returns

string | undefined

Set Signature

set name(x): void

Defined in: js-api/src/u2core/component.ts:68

Parameters
ParameterType
xstring | undefined
Returns

void

Inherited from

Widget.name


parent

Get Signature

get parent(): Widget<any> | null

Defined in: js-api/src/widgets/base.ts:301

Parent widget up the DOM tree, or null.

Returns

Widget<any> | null

Inherited from

Widget.parent


propertyTarget

Get Signature

get propertyTarget(): unknown

Defined in: js-api/src/u2core/component.ts:228

What this component's properties are read from and written to — prop.get(target) / prop.set(target, v): the component itself, unless an adoption says otherwise.

Returns

unknown

Inherited from

Widget.propertyTarget


propertyTier

Get Signature

get propertyTier(): boolean

Defined in: js-api/src/widgets/base.ts:276

Every property getProperties declares is a bind step, read and written on propertyTarget.

Returns

boolean

Inherited from

Widget.propertyTier


root

Get Signature

get root(): HTMLElement

Defined in: js-api/src/u2core/component.ts:431

Returns

HTMLElement

Set Signature

set root(x): void

Defined in: js-api/src/u2core/component.ts:435

Parameters
ParameterType
xHTMLElement
Returns

void

Inherited from

Widget.root


scope

Get Signature

get scope(): Scope

Defined in: js-api/src/u2core/component.ts:53

Minted on first use; assigned before _scopeMinted fires, so the hook's own this.scope.own(...) reads the stored scope instead of re-entering the mint.

Returns

Scope

Inherited from

Widget.scope


sketcherType

Set Signature

set sketcherType(type): void

Defined in: js-api/src/chem.ts:181

Parameters
ParameterType
typestring
Returns

void


sketcherTypeChanged

Get Signature

get sketcherTypeChanged(): boolean

Defined in: js-api/src/chem.ts:201

Returns

boolean


supportedExportFormats

Get Signature

get supportedExportFormats(): string[]

Defined in: js-api/src/chem.ts:286

Returns

string[]


type

Get Signature

get type(): string

Defined in: js-api/src/widgets/base.ts:205

Returns

string

Inherited from

Widget.type


width

Get Signature

get width(): number

Defined in: js-api/src/chem.ts:185

Returns

number

Methods

_notifyPropertyChange()

protected _notifyPropertyChange(p): void

Defined in: js-api/src/widgets/base.ts:351

Notifies the property tier. Called from both the addProperty setter (overrides that skip super would otherwise lose props.x = writes) and onPropertyChanged (direct calls); the double notify collapses into one microtask refresh.

Parameters

ParameterType
pProperty | null

Returns

void

Inherited from

Widget._notifyPropertyChange


_ownPropertyChanges()

protected _ownPropertyChanges(): ObservableLike<PropertyChange>

Defined in: js-api/src/widgets/base.ts:356

Returns

ObservableLike<PropertyChange>

Inherited from

Widget._ownPropertyChanges


_scopeMinted()

protected _scopeMinted(_scope): void

Defined in: js-api/src/widgets/base.ts:320

First-mint hook: a platform descendant wires its lifecycle here. Never fired for a scope provided to init — that path runs inside the constructor chain.

Parameters

ParameterType
_scopeScope

Returns

void

Inherited from

Widget._scopeMinted


_wireDartLifecycle()

protected _wireDartLifecycle(): void

Defined in: js-api/src/widgets/base.ts:336

Dart-owned lifecycle: the platform kill disposes the scope, and disposing the scope kills the widget through the kill-walk.

Returns

void

Inherited from

Widget._wireDartLifecycle


_wireJsLifecycle()

protected _wireJsLifecycle(): void

Defined in: js-api/src/widgets/base.ts:327

JS-owned lifecycle: disposing the scope detaches the widget, and vice versa.

Returns

void

Inherited from

Widget._wireJsLifecycle


_wireLifecycle()

protected _wireLifecycle(): void

Defined in: js-api/src/widgets/base.ts:322

Returns

void

Inherited from

Widget._wireLifecycle


apply()

apply(properties): Widget

Defined in: js-api/src/widgets/base.ts:261

Parameters

ParameterTypeDescription
propertiesobject-

Returns

Widget

Inherited from

Widget.apply


bindProps()

bindProps(): BindProp[]

Defined in: js-api/src/u2core/component.ts:285

The signal-backed subset of the meta props — what a binding picker offers on a named node — plus, under propertyTier, every declared property. Allocates no signal.

Returns

BindProp[]

Inherited from

Widget.bindProps


bindStep()

bindStep(name): BindSource | Signal<unknown> | null

Defined in: js-api/src/u2core/component.ts:274

One binding step (DD5): a meta-declared prop's same-named Signal member — a named node is a bind source, generated off componentMeta the way getProperties is — then, under propertyTier, a cached signal over the declared property. '' answers the default binding: the component's own value signal, where one exists.

Parameters

ParameterType
namestring

Returns

BindSource | Signal<unknown> | null

Inherited from

Widget.bindStep


createAlignHighlightInputs()

createAlignHighlightInputs(key, inputName, callback): InputBase<boolean>

Defined in: js-api/src/chem.ts:375

Parameters

ParameterType
keystring
inputNamestring
callback() => void

Returns

InputBase<boolean>


createClearSketcherButton()

createClearSketcherButton(canvas): HTMLButtonElement

Defined in: js-api/src/chem.ts:471

Parameters

ParameterType
canvasHTMLCanvasElement

Returns

HTMLButtonElement


createExternalModeSketcher()

createExternalModeSketcher(): HTMLElement

Defined in: js-api/src/chem.ts:494

Returns

HTMLElement


createInplaceModeSketcher()

createInplaceModeSketcher(): HTMLElement

Defined in: js-api/src/chem.ts:546

Returns

HTMLElement


createMoleculeTooltip()

createMoleculeTooltip(currentMolfile): HTMLElement

Defined in: js-api/src/chem.ts:451

Parameters

ParameterType
currentMolfilestring

Returns

HTMLElement


createSketcher()

createSketcher(): void

Defined in: js-api/src/chem.ts:420

Returns

void


detach()

detach(): void

Defined in: js-api/src/chem.ts:701

Gets called when a widget is detached and will no longer be used. Typically used for unsubscribing from events. Be sure to call super.detach() if this method is overridden.

Returns

void

Overrides

Widget.detach


dispose()

dispose(): void

Defined in: js-api/src/u2core/component.ts:141

On a never-engaged wrapper the getter mints here and _scopeMinted wires the lifecycle (own(kill) + the platform cleanup for Dart-owned), so dispose still kills it; re-entry from the kill cleanup is a no-op via the scope's disposed flag.

Returns

void

Inherited from

Widget.dispose


drawToCanvas()

drawToCanvas(w, h, molecule): HTMLElement

Defined in: js-api/src/chem.ts:707

Parameters

ParameterType
wnumber
hnumber
moleculestring

Returns

HTMLElement


effect()

effect(fn): this

Defined in: js-api/src/u2core/component.ts:128

Parameters

ParameterType
fn() => void

Returns

this

Inherited from

Widget.effect


fireEvent()

protected fireEvent(eventId, args?): void

Defined in: js-api/src/u2core/component.ts:413

Parameters

ParameterType
eventIdstring
args?unknown

Returns

void

Inherited from

Widget.fireEvent


getDartProperties()

getDartProperties(): any[]

Defined in: js-api/src/widgets/base.ts:289

Returns

any[]

Inherited from

Widget.getDartProperties


getFunctions()

getFunctions(): Func[]

Defined in: js-api/src/widgets/base.ts:283

Functions that are applicable to this particular widget. Used in the UI to display context actions, and for the AI integrations.

Returns

Func[]

Inherited from

Widget.getFunctions


getMolFile()

getMolFile(): string

Defined in: js-api/src/chem.ts:248

Returns

string


getProperties()

getProperties(): Property[]

Defined in: js-api/src/widgets/base.ts:279

Returns all properties of this widget: the meta-generated ones plus addProperty's.

Returns

Property[]

Inherited from

Widget.getProperties


getSmarts()

getSmarts(): Promise<string | null>

Defined in: js-api/src/chem.ts:271

Returns

Promise<string | null>


getSmiles()

getSmiles(): string

Defined in: js-api/src/chem.ts:233

Returns

string


getWidgetStatus()

getWidgetStatus(): IWidgetStatus

Defined in: js-api/src/widgets/base.ts:422

Returns the widget's runtime structure for automated testing and introspection.

Returns

IWidgetStatus

Inherited from

Widget.getWidgetStatus


isEmpty()

isEmpty(): boolean

Defined in: js-api/src/chem.ts:290

Returns

boolean


isInPopupContainer()

isInPopupContainer(): boolean

Defined in: js-api/src/chem.ts:408

Returns

boolean


link(name, source, twoWay): void

Defined in: js-api/src/u2core/component.ts:246

Keeps this component's name step and source equal, echo-suppressed by value; the reverse direction only where twoWay. A component that took source as its own signal needs no link and gets none; a read-only step cannot follow anything and gets none either.

Parameters

ParameterType
namestring
sourceSignal<unknown>
twoWayboolean

Returns

void

Inherited from

Widget.link


onEvent()

onEvent(eventId?): Observable<any>

Defined in: js-api/src/widgets/base.ts:419

Observes events with the specified eventId. Override in subclasses to provide actual events.

Parameters

ParameterTypeDefault value
eventIdstring | nullnull

Returns

Observable<any>

Inherited from

Widget.onEvent


onFrameAttached()

onFrameAttached(dataFrame): void

Defined in: js-api/src/widgets/base.ts:295

Parameters

ParameterType
dataFrameDataFrame

Returns

void

Inherited from

Widget.onFrameAttached


onPropertyChanged()

onPropertyChanged(property): void

Defined in: js-api/src/widgets/base.ts:287

Gets called when viewer's property is changed.

Parameters

ParameterTypeDescription
propertyProperty | nullor null, if multiple properties were changed.

Returns

void

Inherited from

Widget.onPropertyChanged


own()

own(dispose): this

Defined in: js-api/src/u2core/component.ts:133

Parameters

ParameterType
dispose() => void

Returns

this

Inherited from

Widget.own


propertyChanges()

protected propertyChanges(): ObservableLike<PropertyChange>

Defined in: js-api/src/widgets/base.ts:366

What refreshes the property tier's cached signals from outside: null where nothing announces a change (one-way).

Returns

ObservableLike<PropertyChange>

Inherited from

Widget.propertyChanges


registerFunction()

protected registerFunction(f): void

Defined in: js-api/src/u2core/component.ts:409

Parameters

ParameterType
fFuncLike

Returns

void

Inherited from

Widget.registerFunction


resize()

resize(): void

Defined in: js-api/src/chem.ts:413

Returns

void


run()

run<T>(fn): T

Defined in: js-api/src/u2core/component.ts:124

Type Parameters

Type Parameter
T

Parameters

ParameterType
fn() => T

Returns

T

Inherited from

Widget.run


setChangeListenerCallback()

setChangeListenerCallback(callback): void

Defined in: js-api/src/chem.ts:305

Parameters

ParameterType
callback() => void

Returns

void


setExternalModeForSubstrFilter()

setExternalModeForSubstrFilter(): void

Defined in: js-api/src/chem.ts:403

In case sketcher is opened in filter panel use EXTERNAL mode

Returns

void


setMolecule()

setMolecule(molString, substructure?): void

Defined in: js-api/src/chem.ts:295

Sets the molecule, supports either SMILES, SMARTS or MOLBLOCK formats

Parameters

ParameterTypeDefault value
molStringstringundefined
substructurebooleanfalse

Returns

void


setMolFile()

setMolFile(x): void

Defined in: js-api/src/chem.ts:260

Parameters

ParameterType
xstring

Returns

void


setSmarts()

setSmarts(x): void

Defined in: js-api/src/chem.ts:277

Parameters

ParameterType
xstring

Returns

void


setSmiles()

setSmiles(x): void

Defined in: js-api/src/chem.ts:239

Parameters

ParameterType
xstring

Returns

void


setValue()

setValue(x): void

Defined in: js-api/src/chem.ts:313

Sets SMILES, MOLBLOCK, or any other molecule representation

Parameters

ParameterType
xstring

Returns

void


sourceRowsChanged()

sourceRowsChanged(): void

Defined in: js-api/src/widgets/base.ts:293

Returns

void

Inherited from

Widget.sourceRowsChanged


sub()

sub(subscription): void

Defined in: js-api/src/widgets/base.ts:254

Registers a subscription to an external event.

Parameters

ParameterTypeDescription
subscriptionSubscription-

Returns

void

Inherited from

Widget.sub


toDart()

toDart(): any

Defined in: js-api/src/widgets/base.ts:246

Returns

any

Inherited from

Widget.toDart


updateExtSketcherContent()

updateExtSketcherContent(): void

Defined in: js-api/src/chem.ts:429

Returns

void


updateInvalidMoleculeWarning()

updateInvalidMoleculeWarning(): void

Defined in: js-api/src/chem.ts:487

Returns

void


validate()

validate(x): void

Defined in: js-api/src/chem.ts:337

Parameters

ParameterType
xstring

Returns

void


addToCollection()

static addToCollection(key, molecule): void

Defined in: js-api/src/chem.ts:678

Parameters

ParameterType
keystring
moleculestring

Returns

void


build()

static build(builder): Control

Defined in: js-api/src/u2core/component.ts:470

Builds a control out of plain elements: builder runs with the new control's scope ambient, so signal bindings and nested components inside it are owned by the result. The ambient scope only spans the synchronous part of builder — components constructed after an await inside it are adopted by nobody and must be disposed by hand, or constructed before the first await.

Parameters

ParameterType
builder() => HTMLElement | (string | HTMLElement | Control)[]

Returns

Control

Inherited from

Widget.build


checkDuplicatesAndAddToStorage()

static checkDuplicatesAndAddToStorage(storage, molecule, localStorageKey): void

Defined in: js-api/src/chem.ts:683

Parameters

ParameterType
storagestring[]
moleculestring
localStorageKeystring

Returns

void


find()

static find(root): Widget<any> | null

Defined in: js-api/src/widgets/base.ts:236

Finds existing widget from its visual root.

Parameters

ParameterType
rootElement

Returns

Widget<any> | null

Inherited from

Widget.find


fromRoot()

static fromRoot(root): Widget

Defined in: js-api/src/widgets/base.ts:425

Creates a new widget from the root element.

Parameters

ParameterType
rootHTMLElement

Returns

Widget

Inherited from

Widget.fromRoot


getAll()

static getAll(): Widget<any>[]

Defined in: js-api/src/widgets/base.ts:231

Returns all currently active widgets.

Returns

Widget<any>[]

Inherited from

Widget.getAll


getCollection()

static getCollection(key): string[]

Defined in: js-api/src/chem.ts:674

Parameters

ParameterType
keystring

Returns

string[]


init()

static init(self, scope?): void

Defined in: js-api/src/u2core/component.ts:83

Per-instance state, for a constructed component and for an adopted platform object alike.

Parameters

ParameterType
selfComponent
scope?Scope

Returns

void

Inherited from

Widget.init


is()

static is(x): x is Control

Defined in: js-api/src/u2core/component.ts:439

Structural probe by methods only — never .scope: the accessor mints.

Parameters

ParameterType
xunknown

Returns

x is Control

Inherited from

Widget.is


isEmptyMolfile()

static isEmptyMolfile(molFile): boolean

Defined in: js-api/src/chem.ts:693

Parameters

ParameterType
molFilestring

Returns

boolean


registerCleanup()

static registerCleanup(element, cleanup): void

Defined in: js-api/src/widgets/base.ts:242

Registers a cleanup function to run when [element] is killed — i.e. when its host view or pane closes. Also marks the element so the kill-walk can find it.

Parameters

ParameterType
elementElement
cleanupFunction

Returns

void

Inherited from

Widget.registerCleanup


sameValue()

static sameValue(a, b): boolean

Defined in: js-api/src/u2core/component.ts:105

The equality the property tier and link suppress echoes by: Object.is, arrays element-wise, plain objects key-wise (recursive), everything else by identity.

Parameters

ParameterType
aunknown
bunknown

Returns

boolean

Inherited from

Widget.sameValue