diff --git a/src/apps/docking-viewer/index.ts b/src/apps/docking-viewer/index.ts index c22b42be4f0d02b6e6bf8157d557fca29b9f059a..10574f79c1156950130528c7c84c32a13451ee42 100644 --- a/src/apps/docking-viewer/index.ts +++ b/src/apps/docking-viewer/index.ts @@ -54,7 +54,7 @@ const DefaultViewerOptions = { }; class Viewer { - plugin: PluginUIContext + plugin: PluginUIContext; constructor(elementOrId: string | HTMLElement, colors = [Color(0x992211), Color(0xDDDDDD)], showButtons = true) { const o = { ...DefaultViewerOptions, ...{ diff --git a/src/apps/docking-viewer/viewport.tsx b/src/apps/docking-viewer/viewport.tsx index 6be977980e1461ccd38a7335c6a7e1dc6083a65f..d34d58701f1d60761e71a40834daa7c4e0b0c042 100644 --- a/src/apps/docking-viewer/viewport.tsx +++ b/src/apps/docking-viewer/viewport.tsx @@ -230,7 +230,7 @@ export class ViewportComponent extends PluginUIComponent { set = async (preset: StructureRepresentationPresetProvider) => { await this._set(this.plugin.managers.structure.hierarchy.selection.structures, preset); - } + }; structurePreset = () => this.set(StructurePreset); illustrativePreset = () => this.set(IllustrativePreset); diff --git a/src/apps/viewer/index.ts b/src/apps/viewer/index.ts index 4c8dde6c901dd088af8f8647be08b7cf78afa4c2..063c33be45e82ea39c6c3f3a76019e40badef4b1 100644 --- a/src/apps/viewer/index.ts +++ b/src/apps/viewer/index.ts @@ -95,7 +95,7 @@ const DefaultViewerOptions = { type ViewerOptions = typeof DefaultViewerOptions; export class Viewer { - plugin: PluginUIContext + plugin: PluginUIContext; constructor(elementOrId: string | HTMLElement, options: Partial<ViewerOptions> = {}) { const o = { ...DefaultViewerOptions, ...options }; diff --git a/src/examples/basic-wrapper/index.ts b/src/examples/basic-wrapper/index.ts index 1bf4a5d4d7758b3a6a379199cc799f60f8da0fce..3ad7cb47f993d634078b1f28876a702a0336ef3c 100644 --- a/src/examples/basic-wrapper/index.ts +++ b/src/examples/basic-wrapper/index.ts @@ -95,7 +95,7 @@ class BasicWrapper { loop: () => { this.plugin.managers.animation.play(AnimateModelIndex, { duration: { name: 'computed', params: { targetFps: this.animateModelIndexTargetFps() } }, mode: { name: 'loop', params: { direction: 'forward' } } }); }, stop: () => this.plugin.managers.animation.stop() } - } + }; coloring = { applyStripes: async () => { @@ -119,7 +119,7 @@ class BasicWrapper { } }); } - } + }; interactivity = { highlightOn: () => { @@ -137,7 +137,7 @@ class BasicWrapper { clearHighlight: () => { this.plugin.managers.interactivity.lociHighlights.highlightOnly({ loci: EmptyLoci }); } - } + }; tests = { staticSuperposition: async () => { @@ -168,7 +168,7 @@ class BasicWrapper { PluginCommands.Toast.Hide(this.plugin, { key: 'toast-1' }); PluginCommands.Toast.Hide(this.plugin, { key: 'toast-2' }); } - } + }; } (window as any).BasicMolStarWrapper = new BasicWrapper(); \ No newline at end of file diff --git a/src/examples/proteopedia-wrapper/index.ts b/src/examples/proteopedia-wrapper/index.ts index 26f6d852643fb9c220539b4bb2a38ffe6bf3f526..d430411809ea0991012e36de552c12d4145d310a 100644 --- a/src/examples/proteopedia-wrapper/index.ts +++ b/src/examples/proteopedia-wrapper/index.ts @@ -270,7 +270,7 @@ class MolStarProteopediaWrapper { camera = { toggleSpin: () => this.toggleSpin(), resetPosition: () => PluginCommands.Camera.Reset(this.plugin, { }) - } + }; private animateModelIndexTargetFps() { return Math.max(1, this.animate.modelIndex.targetFps | 0); @@ -285,7 +285,7 @@ class MolStarProteopediaWrapper { loop: () => { this.plugin.managers.animation.play(AnimateModelIndex, { duration: { name: 'computed', params: { targetFps: this.animateModelIndexTargetFps() } }, mode: { name: 'loop', params: { direction: 'forward' } } }); }, stop: () => this.plugin.managers.animation.stop() } - } + }; coloring = { evolutionaryConservation: async (params?: { sequence?: boolean, het?: boolean, keepStyle?: boolean }) => { @@ -306,7 +306,7 @@ class MolStarProteopediaWrapper { await PluginCommands.State.Update(this.plugin, { state, tree }); } - } + }; private experimentalDataElement?: Element = void 0; experimentalData = { @@ -330,7 +330,7 @@ class MolStarProteopediaWrapper { this.experimentalDataElement = void 0; } } - } + }; hetGroups = { reset: () => { @@ -397,7 +397,7 @@ class MolStarProteopediaWrapper { const snapshot = this.plugin.canvas3d!.camera.getFocus(sphere.center, radius); PluginCommands.Camera.SetSnapshot(this.plugin, { snapshot, durationMs: 250 }); } - } + }; snapshot = { get: (params?: PluginState.SnapshotParams) => { @@ -420,7 +420,7 @@ class MolStarProteopediaWrapper { } } - } + }; } (window as any).MolStarProteopediaWrapper = MolStarProteopediaWrapper; \ No newline at end of file diff --git a/src/extensions/anvil/behavior.ts b/src/extensions/anvil/behavior.ts index 8339b34ac6f21c143717c1c626d9e18b90a90c87..c78edc3a156f998f10c70b37d636bddf72bcb9ea 100644 --- a/src/extensions/anvil/behavior.ts +++ b/src/extensions/anvil/behavior.ts @@ -30,7 +30,7 @@ export const ANVILMembraneOrientation = PluginBehavior.create<{ autoAttach: bool description: 'Data calculated with ANVIL algorithm.' }, ctor: class extends PluginBehavior.Handler<{ autoAttach: boolean }> { - private provider = MembraneOrientationProvider + private provider = MembraneOrientationProvider; register(): void { DefaultQueryRuntimeTable.addCustomProp(this.provider.descriptor); diff --git a/src/extensions/dnatco/confal-pyramids/behavior.ts b/src/extensions/dnatco/confal-pyramids/behavior.ts index ae89a8e2524fe7df39cc4e2b9635a18dd9fcba78..6293e2b6cd60b8710dd2c0c3f68ea074980b2b52 100644 --- a/src/extensions/dnatco/confal-pyramids/behavior.ts +++ b/src/extensions/dnatco/confal-pyramids/behavior.ts @@ -66,7 +66,7 @@ export const DnatcoConfalPyramids = PluginBehavior.create<{ autoAttach: boolean, /* TODO: Implement this */ return void 0; } - } + }; register(): void { this.ctx.customModelProperties.register(this.provider, this.params.autoAttach); diff --git a/src/extensions/dnatco/confal-pyramids/util.ts b/src/extensions/dnatco/confal-pyramids/util.ts index 9a6e88ba79dec9a2ac0644aba6ce8cf261174d10..e84f84efe00f41fbd393966cfe5e021a0d8bcf1e 100644 --- a/src/extensions/dnatco/confal-pyramids/util.ts +++ b/src/extensions/dnatco/confal-pyramids/util.ts @@ -114,7 +114,7 @@ export namespace ConfalPyramidsUtil { this.modelNum = unit.model.modelNum; } - protected readonly data: CPT.PyramidsData + protected readonly data: CPT.PyramidsData; protected readonly hasMultipleModels: boolean; protected readonly entryId: string; protected readonly modelNum: number; diff --git a/src/extensions/geo-export/controls.ts b/src/extensions/geo-export/controls.ts index e87da196c882fd84cdb62112584a75e833b8ed64..11fe422a285c0122d28de94f750208cd2c5d9fe1 100644 --- a/src/extensions/geo-export/controls.ts +++ b/src/extensions/geo-export/controls.ts @@ -29,7 +29,7 @@ export const GeometryParams = { export class GeometryControls extends PluginComponent { readonly behaviors = { params: this.ev.behavior<PD.Values<typeof GeometryParams>>(PD.getDefaultValues(GeometryParams)) - } + }; private getFilename() { const models = this.plugin.state.data.select(StateSelection.Generators.rootsOfType(PluginStateObject.Molecule.Model)).map(s => s.obj!.data); diff --git a/src/extensions/geo-export/ui.tsx b/src/extensions/geo-export/ui.tsx index 87fb607cdb391197f7695e9df2e4f806e36f356f..45461b77abdeb470b2691050752f0caaaec0bc4e 100644 --- a/src/extensions/geo-export/ui.tsx +++ b/src/extensions/geo-export/ui.tsx @@ -85,7 +85,7 @@ export class GeometryExporterUI extends CollapsableControls<{}, State> { } finally { this.setState({ busy: false }); } - } + }; viewInAR = async () => { try { @@ -104,5 +104,5 @@ export class GeometryExporterUI extends CollapsableControls<{}, State> { } finally { this.setState({ busy: false }); } - } + }; } \ No newline at end of file diff --git a/src/extensions/mp4-export/controls.ts b/src/extensions/mp4-export/controls.ts index ba8acf6a9b587a4b026c2cb29f9942bd8332e22c..a8edd32816a919b64d0ce1337dc6e6084d2ed5bd 100644 --- a/src/extensions/mp4-export/controls.ts +++ b/src/extensions/mp4-export/controls.ts @@ -31,7 +31,7 @@ export class Mp4Controls extends PluginComponent { canApply: this.ev.behavior<PluginStateAnimation.CanApply>({ canApply: false }), info: this.ev.behavior<Mp4AnimationInfo>({ width: 0, height: 0 }), params: this.ev.behavior<PD.Values<typeof Mp4AnimationParams>>(PD.getDefaultValues(Mp4AnimationParams)) - } + }; setCurrent(name?: string) { const anim = this.animations.find(a => a.name === name); diff --git a/src/extensions/mp4-export/ui.tsx b/src/extensions/mp4-export/ui.tsx index 9b8f40a1269aafbf559c89047af4fc8f7dcbce70..0dbcd35c4c0200434616e520e845373e0260374a 100644 --- a/src/extensions/mp4-export/ui.tsx +++ b/src/extensions/mp4-export/ui.tsx @@ -108,7 +108,7 @@ export class Mp4EncoderUI extends CollapsableControls<{}, State> { save = () => { download(new Blob([this.state.data!.movie]), this.state.data!.filename); - } + }; generate = async () => { try { @@ -119,5 +119,5 @@ export class Mp4EncoderUI extends CollapsableControls<{}, State> { console.error(e); this.setState({ busy: false }); } - } + }; } \ No newline at end of file diff --git a/src/extensions/pdbe/structure-quality-report/behavior.ts b/src/extensions/pdbe/structure-quality-report/behavior.ts index c9032be392abff34406454a319b7d2ab8e69f2e8..4fd3cd1f48bcd993eb7938b423c6d3d526cfefde 100644 --- a/src/extensions/pdbe/structure-quality-report/behavior.ts +++ b/src/extensions/pdbe/structure-quality-report/behavior.ts @@ -21,7 +21,7 @@ export const PDBeStructureQualityReport = PluginBehavior.create<{ autoAttach: bo }, ctor: class extends PluginBehavior.Handler<{ autoAttach: boolean, showTooltip: boolean }> { - private provider = StructureQualityReportProvider + private provider = StructureQualityReportProvider; private labelPDBeValidation = { label: (loci: Loci): string | undefined => { @@ -42,7 +42,7 @@ export const PDBeStructureQualityReport = PluginBehavior.create<{ autoAttach: bo default: return void 0; } } - } + }; register(): void { this.ctx.customModelProperties.register(this.provider, this.params.autoAttach); diff --git a/src/extensions/rcsb/assembly-symmetry/behavior.ts b/src/extensions/rcsb/assembly-symmetry/behavior.ts index 9e032c80984592c59262c603f43235da0215d585..7bafe306e40b5eba771b50b0f75e151c0dd1fb19 100644 --- a/src/extensions/rcsb/assembly-symmetry/behavior.ts +++ b/src/extensions/rcsb/assembly-symmetry/behavior.ts @@ -27,7 +27,7 @@ export const RCSBAssemblySymmetry = PluginBehavior.create<{ autoAttach: boolean description: 'Assembly Symmetry data calculated with BioJava, obtained via RCSB PDB.' }, ctor: class extends PluginBehavior.Handler<{ autoAttach: boolean }> { - private provider = AssemblySymmetryProvider + private provider = AssemblySymmetryProvider; register(): void { this.ctx.state.data.actions.add(InitAssemblySymmetry3D); diff --git a/src/extensions/rcsb/assembly-symmetry/ui.tsx b/src/extensions/rcsb/assembly-symmetry/ui.tsx index bafaa1575ed018d7ea2b842a08f0ade1dbea881f..12848ac57f82b43b02009947518cbe8e798ba9e0 100644 --- a/src/extensions/rcsb/assembly-symmetry/ui.tsx +++ b/src/extensions/rcsb/assembly-symmetry/ui.tsx @@ -118,7 +118,7 @@ export class AssemblySymmetryControls extends CollapsableControls<{}, AssemblySy paramsOnChange = (options: AssemblySymmetryProps) => { this.updateAssemblySymmetry(options); - } + }; get hasAssemblySymmetry3D() { return !this.pivot.cell.parent || !!StateSelection.findTagInSubtree(this.pivot.cell.parent.tree, this.pivot.cell.transform.ref, AssemblySymmetry.Tag.Representation); diff --git a/src/extensions/rcsb/validation-report/behavior.ts b/src/extensions/rcsb/validation-report/behavior.ts index f1b589456d962766456b76855c7bbea87ceb2926..d1bf57a48698f0fdafd9c0e87b3e919601e96015 100644 --- a/src/extensions/rcsb/validation-report/behavior.ts +++ b/src/extensions/rcsb/validation-report/behavior.ts @@ -30,7 +30,7 @@ export const RCSBValidationReport = PluginBehavior.create<{ autoAttach: boolean, description: 'Data from wwPDB Validation Report, obtained via RCSB PDB.' }, ctor: class extends PluginBehavior.Handler<{ autoAttach: boolean, showTooltip: boolean }> { - private provider = ValidationReportProvider + private provider = ValidationReportProvider; private labelProvider = { label: (loci: Loci): string | undefined => { @@ -41,7 +41,7 @@ export const RCSBValidationReport = PluginBehavior.create<{ autoAttach: boolean, randomCoilIndexLabel(loci) ].filter(l => !!l).join('</br>'); } - } + }; register(): void { DefaultQueryRuntimeTable.addCustomProp(this.provider.descriptor); diff --git a/src/mol-canvas3d/camera.ts b/src/mol-canvas3d/camera.ts index 95074d76a1d1418d90c61ab2c28c8dea20f6df34..2cd6d53480cde80288fca2c8ac53a2afd6427a8e 100644 --- a/src/mol-canvas3d/camera.ts +++ b/src/mol-canvas3d/camera.ts @@ -37,7 +37,7 @@ class Camera implements ICamera { readonly projectionView: Mat4 = Mat4.identity(); readonly inverseProjectionView: Mat4 = Mat4.identity(); - private pixelScale: number + private pixelScale: number; get pixelRatio() { const dpr = (typeof window !== 'undefined') ? window.devicePixelRatio : 1; return dpr * this.pixelScale; @@ -47,11 +47,11 @@ class Camera implements ICamera { readonly state: Readonly<Camera.Snapshot> = Camera.createDefaultSnapshot(); readonly viewOffset = Camera.ViewOffset(); - near = 1 - far = 10000 - fogNear = 5000 - fogFar = 10000 - zoom = 1 + near = 1; + far = 10000; + fogNear = 5000; + fogFar = 10000; + zoom = 1; readonly transition: CameraTransitionManager = new CameraTransitionManager(this); readonly stateChanged = new BehaviorSubject<Partial<Camera.Snapshot>>(this.state); diff --git a/src/mol-canvas3d/camera/stereo.ts b/src/mol-canvas3d/camera/stereo.ts index 956e3762753cbedef5e957472578969178cfa83c..0111427191417c5e81137c60bff2f1144b38b560 100644 --- a/src/mol-canvas3d/camera/stereo.ts +++ b/src/mol-canvas3d/camera/stereo.ts @@ -33,7 +33,7 @@ class StereoCamera { return this.parent.viewOffset; } - private props: StereoCameraProps + private props: StereoCameraProps; constructor(private parent: Camera, props: Partial<StereoCameraProps> = {}) { this.props = { ...DefaultStereoCameraProps, ...props }; diff --git a/src/mol-canvas3d/helper/bounding-sphere-helper.ts b/src/mol-canvas3d/helper/bounding-sphere-helper.ts index ec230bf1f119ae7c251e8f18506c78d8e6e72aa8..aa673adef7365ce52d4f3ed8558d326136e081c5 100644 --- a/src/mol-canvas3d/helper/bounding-sphere-helper.ts +++ b/src/mol-canvas3d/helper/bounding-sphere-helper.ts @@ -31,14 +31,14 @@ export type DebugHelperProps = PD.Values<DebugHelperParams> type BoundingSphereData = { boundingSphere: Sphere3D, renderObject: GraphicsRenderObject, mesh: Mesh } export class BoundingSphereHelper { - readonly scene: Scene - - private readonly parent: Scene - private _props: DebugHelperProps - private objectsData = new Map<GraphicsRenderObject, BoundingSphereData>() - private instancesData = new Map<GraphicsRenderObject, BoundingSphereData>() - private sceneData: BoundingSphereData | undefined - private visibleSceneData: BoundingSphereData | undefined + readonly scene: Scene; + + private readonly parent: Scene; + private _props: DebugHelperProps; + private objectsData = new Map<GraphicsRenderObject, BoundingSphereData>(); + private instancesData = new Map<GraphicsRenderObject, BoundingSphereData>(); + private sceneData: BoundingSphereData | undefined; + private visibleSceneData: BoundingSphereData | undefined; constructor(ctx: WebGLContext, parent: Scene, props: Partial<DebugHelperProps>) { this.scene = Scene.create(ctx); diff --git a/src/mol-canvas3d/helper/camera-helper.ts b/src/mol-canvas3d/helper/camera-helper.ts index c93437f244b895d3bd312df4724b3fe6319abbee..6beb962a76d048f15d522d131872958b7bcba7fa 100644 --- a/src/mol-canvas3d/helper/camera-helper.ts +++ b/src/mol-canvas3d/helper/camera-helper.ts @@ -49,13 +49,13 @@ export type CameraHelperParams = typeof CameraHelperParams export type CameraHelperProps = PD.Values<CameraHelperParams> export class CameraHelper { - scene: Scene - camera: Camera + scene: Scene; + camera: Camera; props: CameraHelperProps = { axes: { name: 'off', params: {} } - } + }; - private renderObject: GraphicsRenderObject | undefined + private renderObject: GraphicsRenderObject | undefined; constructor(private webgl: WebGLContext, props: Partial<CameraHelperProps> = {}) { this.scene = Scene.create(webgl); @@ -109,7 +109,7 @@ export class CameraHelper { if (apply(Interval.ofSingleton(idx))) changed = true; } return changed; - } + }; mark(loci: Loci, action: MarkerAction) { if (!MarkerActions.is(MarkerActions.Highlighting, action)) return false; diff --git a/src/mol-canvas3d/helper/handle-helper.ts b/src/mol-canvas3d/helper/handle-helper.ts index 542dcb63fc6f50b470bc199940bb44f014b5dcc9..303b67a1256c53af3344a1cd533b7a09836d0b52 100644 --- a/src/mol-canvas3d/helper/handle-helper.ts +++ b/src/mol-canvas3d/helper/handle-helper.ts @@ -47,12 +47,12 @@ export type HandleHelperParams = typeof HandleHelperParams export type HandleHelperProps = PD.Values<HandleHelperParams> export class HandleHelper { - scene: Scene + scene: Scene; props: HandleHelperProps = { handle: { name: 'off', params: {} } - } + }; - private renderObject: GraphicsRenderObject | undefined + private renderObject: GraphicsRenderObject | undefined; private _transform = Mat4(); getBoundingSphere(out: Sphere3D, instanceId: number) { @@ -117,7 +117,7 @@ export class HandleHelper { if (apply(Interval.ofSingleton(idx))) changed = true; } return changed; - } + }; mark(loci: Loci, action: MarkerAction) { if (!MarkerActions.is(MarkerActions.Highlighting, action)) return false; diff --git a/src/mol-canvas3d/helper/helper.ts b/src/mol-canvas3d/helper/helper.ts index 2837d05fb40eebd9eeca2c43045b7f38ab432ee8..9603b05b8386e0c4e780812951d9f8dbda0500e9 100644 --- a/src/mol-canvas3d/helper/helper.ts +++ b/src/mol-canvas3d/helper/helper.ts @@ -23,9 +23,9 @@ export type HelperProps = PD.Values<typeof HelperParams> export class Helper { - readonly debug: BoundingSphereHelper - readonly camera: CameraHelper - readonly handle: HandleHelper + readonly debug: BoundingSphereHelper; + readonly camera: CameraHelper; + readonly handle: HandleHelper; constructor(webgl: WebGLContext, scene: Scene, props: Partial<HelperProps> = {}) { const p = { ...DefaultHelperProps, ...props }; diff --git a/src/mol-canvas3d/passes/draw.ts b/src/mol-canvas3d/passes/draw.ts index 5b5b37d261e17cfd3e080de805214b67e3346e17..25eae12b6c055fbd62bad8612f0b2105fdf241a0 100644 --- a/src/mol-canvas3d/passes/draw.ts +++ b/src/mol-canvas3d/passes/draw.ts @@ -54,27 +54,27 @@ function getDepthMergeRenderable(ctx: WebGLContext, depthTexturePrimitives: Text } export class DrawPass { - private readonly drawTarget: RenderTarget + private readonly drawTarget: RenderTarget; - readonly colorTarget: RenderTarget - readonly depthTexture: Texture - readonly depthTexturePrimitives: Texture + readonly colorTarget: RenderTarget; + readonly depthTexture: Texture; + readonly depthTexturePrimitives: Texture; - readonly packedDepth: boolean + readonly packedDepth: boolean; - private depthTarget: RenderTarget - private depthTargetPrimitives: RenderTarget | null - private depthTargetVolumes: RenderTarget | null - private depthTextureVolumes: Texture - private depthMerge: DepthMergeRenderable + private depthTarget: RenderTarget; + private depthTargetPrimitives: RenderTarget | null; + private depthTargetVolumes: RenderTarget | null; + private depthTextureVolumes: Texture; + private depthMerge: DepthMergeRenderable; - private copyFboTarget: CopyRenderable - private copyFboPostprocessing: CopyRenderable + private copyFboTarget: CopyRenderable; + private copyFboPostprocessing: CopyRenderable; - private wboit: WboitPass | undefined - private readonly marking: MarkingPass - readonly postprocessing: PostprocessingPass - private readonly antialiasing: AntialiasingPass + private wboit: WboitPass | undefined; + private readonly marking: MarkingPass; + readonly postprocessing: PostprocessingPass; + private readonly antialiasing: AntialiasingPass; get wboitEnabled() { return !!this.wboit?.supported; diff --git a/src/mol-canvas3d/passes/fxaa.ts b/src/mol-canvas3d/passes/fxaa.ts index 127309601796817b92bd909854a5c872b2f2d16e..d7aac98f5ed430f69fa494ebd0173251eec5c0b9 100644 --- a/src/mol-canvas3d/passes/fxaa.ts +++ b/src/mol-canvas3d/passes/fxaa.ts @@ -28,7 +28,7 @@ export const FxaaParams = { export type FxaaProps = PD.Values<typeof FxaaParams> export class FxaaPass { - private readonly renderable: FxaaRenderable + private readonly renderable: FxaaRenderable; constructor(private webgl: WebGLContext, input: Texture) { this.renderable = getFxaaRenderable(webgl, input); diff --git a/src/mol-canvas3d/passes/image.ts b/src/mol-canvas3d/passes/image.ts index bf56b9300e317f26da3ccc1bdd96c8c3e3c51c81..9c88fe34bbbae1caa71ff8a6d72b5960779de157 100644 --- a/src/mol-canvas3d/passes/image.ts +++ b/src/mol-canvas3d/passes/image.ts @@ -30,19 +30,19 @@ export const ImageParams = { export type ImageProps = PD.Values<typeof ImageParams> export class ImagePass { - private _width = 0 - private _height = 0 - private _camera = new Camera() + private _width = 0; + private _height = 0; + private _camera = new Camera(); - readonly props: ImageProps + readonly props: ImageProps; - private _colorTarget: RenderTarget + private _colorTarget: RenderTarget; get colorTarget() { return this._colorTarget; } - private readonly drawPass: DrawPass - private readonly multiSamplePass: MultiSamplePass - private readonly multiSampleHelper: MultiSampleHelper - private readonly helper: Helper + private readonly drawPass: DrawPass; + private readonly multiSamplePass: MultiSamplePass; + private readonly multiSampleHelper: MultiSampleHelper; + private readonly helper: Helper; get width() { return this._width; } get height() { return this._height; } diff --git a/src/mol-canvas3d/passes/marking.ts b/src/mol-canvas3d/passes/marking.ts index df19ea731db269c87f2be5873c97891afdc4d861..fa5223dfc5354461f7a8943f6bb32e25ed9a01ab 100644 --- a/src/mol-canvas3d/passes/marking.ts +++ b/src/mol-canvas3d/passes/marking.ts @@ -36,12 +36,12 @@ export class MarkingPass { return props.enabled; } - readonly depthTarget: RenderTarget - readonly maskTarget: RenderTarget - private readonly edgesTarget: RenderTarget + readonly depthTarget: RenderTarget; + readonly maskTarget: RenderTarget; + private readonly edgesTarget: RenderTarget; - private readonly edge: EdgeRenderable - private readonly overlay: OverlayRenderable + private readonly edge: EdgeRenderable; + private readonly overlay: OverlayRenderable; constructor(private webgl: WebGLContext, width: number, height: number) { this.depthTarget = webgl.createRenderTarget(width, height); diff --git a/src/mol-canvas3d/passes/multi-sample.ts b/src/mol-canvas3d/passes/multi-sample.ts index 082326bbe8d7ffeeef57c50cd85b773ce1283fe8..6c7b24b22c9be056549b50dd577dd6335b998ade 100644 --- a/src/mol-canvas3d/passes/multi-sample.ts +++ b/src/mol-canvas3d/passes/multi-sample.ts @@ -66,11 +66,11 @@ export class MultiSamplePass { return props.mode !== 'off'; } - colorTarget: RenderTarget + colorTarget: RenderTarget; - private composeTarget: RenderTarget - private holdTarget: RenderTarget - private compose: ComposeRenderable + private composeTarget: RenderTarget; + private holdTarget: RenderTarget; + private compose: ComposeRenderable; constructor(private webgl: WebGLContext, private drawPass: DrawPass) { const { colorBufferFloat, textureFloat, colorBufferHalfFloat, textureHalfFloat } = webgl.extensions; @@ -317,7 +317,7 @@ JitterVectors.forEach(offsetList => { }); export class MultiSampleHelper { - private sampleIndex = -2 + private sampleIndex = -2; update(changed: boolean, props: MultiSampleProps) { if (changed) this.sampleIndex = -1; diff --git a/src/mol-canvas3d/passes/passes.ts b/src/mol-canvas3d/passes/passes.ts index cc61b18b7048192fa04948787356dbad44ee6b08..208795e33bb2af60d8966f2f857fb87dc594087a 100644 --- a/src/mol-canvas3d/passes/passes.ts +++ b/src/mol-canvas3d/passes/passes.ts @@ -10,9 +10,9 @@ import { MultiSamplePass } from './multi-sample'; import { WebGLContext } from '../../mol-gl/webgl/context'; export class Passes { - readonly draw: DrawPass - readonly pick: PickPass - readonly multiSample: MultiSamplePass + readonly draw: DrawPass; + readonly pick: PickPass; + readonly multiSample: MultiSamplePass; constructor(private webgl: WebGLContext, attribs: Partial<{ pickScale: number, enableWboit: boolean }> = {}) { const { gl } = webgl; diff --git a/src/mol-canvas3d/passes/pick.ts b/src/mol-canvas3d/passes/pick.ts index 130fe9d80affe760eed23f612d399ed1372b503b..ee2d7f7b89c1d9fc46eaca3fcefa8879e9ec44a5 100644 --- a/src/mol-canvas3d/passes/pick.ts +++ b/src/mol-canvas3d/passes/pick.ts @@ -25,13 +25,13 @@ const NullId = Math.pow(2, 24) - 2; export type PickData = { id: PickingId, position: Vec3 } export class PickPass { - readonly objectPickTarget: RenderTarget - readonly instancePickTarget: RenderTarget - readonly groupPickTarget: RenderTarget - readonly depthPickTarget: RenderTarget + readonly objectPickTarget: RenderTarget; + readonly instancePickTarget: RenderTarget; + readonly groupPickTarget: RenderTarget; + readonly depthPickTarget: RenderTarget; - private pickWidth: number - private pickHeight: number + private pickWidth: number; + private pickHeight: number; constructor(private webgl: WebGLContext, private drawPass: DrawPass, readonly pickBaseScale: number) { const pickScale = pickBaseScale / webgl.pixelRatio; @@ -97,23 +97,23 @@ export class PickPass { } export class PickHelper { - dirty = true + dirty = true; - private objectBuffer: Uint8Array - private instanceBuffer: Uint8Array - private groupBuffer: Uint8Array - private depthBuffer: Uint8Array + private objectBuffer: Uint8Array; + private instanceBuffer: Uint8Array; + private groupBuffer: Uint8Array; + private depthBuffer: Uint8Array; - private viewport = Viewport() + private viewport = Viewport(); - private pickScale: number - private pickX: number - private pickY: number - private pickWidth: number - private pickHeight: number - private halfPickWidth: number + private pickScale: number; + private pickX: number; + private pickY: number; + private pickWidth: number; + private pickHeight: number; + private halfPickWidth: number; - private spiral: [number, number][] + private spiral: [number, number][]; private setupBuffers() { const bufferSize = this.pickWidth * this.pickHeight * 4; diff --git a/src/mol-canvas3d/passes/postprocessing.ts b/src/mol-canvas3d/passes/postprocessing.ts index 5f013e24811d62a5956a463d8700ad252fec3413..f3f27a6e398faeb250125ce4af9bd9f88b2ed86e 100644 --- a/src/mol-canvas3d/passes/postprocessing.ts +++ b/src/mol-canvas3d/passes/postprocessing.ts @@ -271,29 +271,29 @@ export class PostprocessingPass { return props.occlusion.name === 'on' || props.outline.name === 'on'; } - readonly target: RenderTarget + readonly target: RenderTarget; - private readonly outlinesTarget: RenderTarget - private readonly outlinesRenderable: OutlinesRenderable + private readonly outlinesTarget: RenderTarget; + private readonly outlinesRenderable: OutlinesRenderable; - private readonly randomHemisphereVector: Vec3[] - private readonly ssaoFramebuffer: Framebuffer - private readonly ssaoBlurFirstPassFramebuffer: Framebuffer - private readonly ssaoBlurSecondPassFramebuffer: Framebuffer + private readonly randomHemisphereVector: Vec3[]; + private readonly ssaoFramebuffer: Framebuffer; + private readonly ssaoBlurFirstPassFramebuffer: Framebuffer; + private readonly ssaoBlurSecondPassFramebuffer: Framebuffer; - private readonly ssaoDepthTexture: Texture - private readonly ssaoDepthBlurProxyTexture: Texture + private readonly ssaoDepthTexture: Texture; + private readonly ssaoDepthBlurProxyTexture: Texture; - private readonly ssaoRenderable: SsaoRenderable - private readonly ssaoBlurFirstPassRenderable: SsaoBlurRenderable - private readonly ssaoBlurSecondPassRenderable: SsaoBlurRenderable + private readonly ssaoRenderable: SsaoRenderable; + private readonly ssaoBlurFirstPassRenderable: SsaoBlurRenderable; + private readonly ssaoBlurSecondPassRenderable: SsaoBlurRenderable; - private nSamples: number - private blurKernelSize: number + private nSamples: number; + private blurKernelSize: number; - private readonly renderable: PostprocessingRenderable + private readonly renderable: PostprocessingRenderable; - private ssaoScale: number + private ssaoScale: number; private calcSsaoScale() { // downscale ssao for high pixel-ratios return Math.min(1, 1 / this.webgl.pixelRatio); @@ -543,9 +543,9 @@ export class AntialiasingPass { return props.antialiasing.name !== 'off'; } - readonly target: RenderTarget - private readonly fxaa: FxaaPass - private readonly smaa: SmaaPass + readonly target: RenderTarget; + private readonly fxaa: FxaaPass; + private readonly smaa: SmaaPass; constructor(webgl: WebGLContext, private drawPass: DrawPass) { const { colorTarget } = drawPass; diff --git a/src/mol-canvas3d/passes/smaa.ts b/src/mol-canvas3d/passes/smaa.ts index 4572ad613f9457aa024560070d9439bcf96decf5..cbeea8cb48748ac9ec1bdba0bfec0bcaf7639781 100644 --- a/src/mol-canvas3d/passes/smaa.ts +++ b/src/mol-canvas3d/passes/smaa.ts @@ -31,12 +31,12 @@ export const SmaaParams = { export type SmaaProps = PD.Values<typeof SmaaParams> export class SmaaPass { - private readonly edgesTarget: RenderTarget - private readonly weightsTarget: RenderTarget + private readonly edgesTarget: RenderTarget; + private readonly weightsTarget: RenderTarget; - private readonly edgesRenderable: EdgesRenderable - private readonly weightsRenderable: WeightsRenderable - private readonly blendRenderable: BlendRenderable + private readonly edgesRenderable: EdgesRenderable; + private readonly weightsRenderable: WeightsRenderable; + private readonly blendRenderable: BlendRenderable; private _supported = false; get supported() { diff --git a/src/mol-canvas3d/passes/wboit.ts b/src/mol-canvas3d/passes/wboit.ts index 8c29442ca5b889a120a9bb8941b4f230046e0b1b..89c39d7fbe22fec8974daf264de33fb5e9ae1b0f 100644 --- a/src/mol-canvas3d/passes/wboit.ts +++ b/src/mol-canvas3d/passes/wboit.ts @@ -45,11 +45,11 @@ function getEvaluateWboitRenderable(ctx: WebGLContext, wboitATexture: Texture, w // export class WboitPass { - private readonly renderable: EvaluateWboitRenderable + private readonly renderable: EvaluateWboitRenderable; - private readonly framebuffer: Framebuffer - private readonly textureA: Texture - private readonly textureB: Texture + private readonly framebuffer: Framebuffer; + private readonly textureA: Texture; + private readonly textureB: Texture; private _supported = false; get supported() { diff --git a/src/mol-data/int/sorted-ranges.ts b/src/mol-data/int/sorted-ranges.ts index 7086b0fc38800737fe8b03360bf37217812da2bb..95a36d866abfeb83ac4e36740e1963ede8525a41 100644 --- a/src/mol-data/int/sorted-ranges.ts +++ b/src/mol-data/int/sorted-ranges.ts @@ -87,9 +87,9 @@ namespace SortedRanges { } export class Iterator<T extends number = number, I extends number = number> implements _Iterator<Segmentation.Segment<I>> { - private value: Segmentation.Segment<I> = { index: 0 as I, start: 0 as T, end: 0 as T } + private value: Segmentation.Segment<I> = { index: 0 as I, start: 0 as T, end: 0 as T }; - private curIndex = 0 + private curIndex = 0; hasNext: boolean = false; diff --git a/src/mol-data/util/combination.ts b/src/mol-data/util/combination.ts index 751927520511268c74ad7daa18d5c65452f371b1..7cc162f50a8c39b43c78337163d8e6d5752c71b9 100644 --- a/src/mol-data/util/combination.ts +++ b/src/mol-data/util/combination.ts @@ -28,11 +28,11 @@ function nextIndex(n: number) { }; export class CombinationIterator<T> implements Iterator<ReadonlyArray<T>> { - private value: T[] - private index: number - private maxIndex: number + private value: T[]; + private index: number; + private maxIndex: number; - size: number + size: number; hasNext: boolean = false; move() { diff --git a/src/mol-data/util/interval-iterator.ts b/src/mol-data/util/interval-iterator.ts index b6fb217b1547c8319ce8342b5bb295c42cb9f591..2c495d9f829d3785749afa02cbfa37a04cba5e29 100644 --- a/src/mol-data/util/interval-iterator.ts +++ b/src/mol-data/util/interval-iterator.ts @@ -9,10 +9,10 @@ import { OrderedSet, Interval, Segmentation } from '../int'; /** Emits a segment of length one for each element in the interval that is also in the set */ export class IntervalIterator<I extends number = number> implements Iterator<Segmentation.Segment<I>> { - private value: Segmentation.Segment<I> = { index: 0 as I, start: 0, end: 0 } + private value: Segmentation.Segment<I> = { index: 0 as I, start: 0, end: 0 }; - private curIndex = 0 - private maxIndex = 0 + private curIndex = 0; + private maxIndex = 0; hasNext: boolean = false; diff --git a/src/mol-geo/geometry/text/font-atlas.ts b/src/mol-geo/geometry/text/font-atlas.ts index f4355d228a626de1de5b0520647bdddf04bb8609..609a6985a50ab450799a602ed1ae91caaa95beb3 100644 --- a/src/mol-geo/geometry/text/font-atlas.ts +++ b/src/mol-geo/geometry/text/font-atlas.ts @@ -39,35 +39,35 @@ export type FontAtlasMap = { } export class FontAtlas { - readonly props: Readonly<FontAtlasProps> - readonly mapped: { [k: string]: FontAtlasMap } = {} - readonly placeholder: FontAtlasMap - readonly texture: TextureImage<Uint8Array> - - private scratchW = 0 - private scratchH = 0 - private currentX = 0 - private currentY = 0 - private readonly scratchData: Uint8Array - - private readonly cutoff = 0.5 - readonly buffer: number - private readonly radius: number - - private gridOuter: Float64Array - private gridInner: Float64Array - private f: Float64Array - private d: Float64Array - private z: Float64Array - private v: Int16Array - - private scratchCanvas: HTMLCanvasElement - private scratchContext: CanvasRenderingContext2D - - readonly lineHeight: number - - private readonly maxWidth: number - private readonly middle: number + readonly props: Readonly<FontAtlasProps>; + readonly mapped: { [k: string]: FontAtlasMap } = {}; + readonly placeholder: FontAtlasMap; + readonly texture: TextureImage<Uint8Array>; + + private scratchW = 0; + private scratchH = 0; + private currentX = 0; + private currentY = 0; + private readonly scratchData: Uint8Array; + + private readonly cutoff = 0.5; + readonly buffer: number; + private readonly radius: number; + + private gridOuter: Float64Array; + private gridInner: Float64Array; + private f: Float64Array; + private d: Float64Array; + private z: Float64Array; + private v: Int16Array; + + private scratchCanvas: HTMLCanvasElement; + private scratchContext: CanvasRenderingContext2D; + + readonly lineHeight: number; + + private readonly maxWidth: number; + private readonly middle: number; constructor(props: Partial<FontAtlasProps> = {}) { const p = { ...PD.getDefaultValues(FontAtlasParams), ...props }; diff --git a/src/mol-geo/geometry/texture-mesh/texture-mesh.ts b/src/mol-geo/geometry/texture-mesh/texture-mesh.ts index 3a5eb21c7413a423bc22e546a4f3d290ecae673d..890e476d98ce39bebea7135d51194ace46bf67fe 100644 --- a/src/mol-geo/geometry/texture-mesh/texture-mesh.ts +++ b/src/mol-geo/geometry/texture-mesh/texture-mesh.ts @@ -47,7 +47,7 @@ export interface TextureMesh { export namespace TextureMesh { export class DoubleBuffer { private index = 0; - private textures: ({ vertex: Texture, group: Texture, normal: Texture } | undefined)[] = [] + private textures: ({ vertex: Texture, group: Texture, normal: Texture } | undefined)[] = []; get() { return this.textures[this.index]; diff --git a/src/mol-geo/util/marching-cubes/algorithm.ts b/src/mol-geo/util/marching-cubes/algorithm.ts index 067c2d6c39fac81a4aad38353133a8fdfa54cc5e..b6e84e918a1291303561cc0ff20190349603b8e3 100644 --- a/src/mol-geo/util/marching-cubes/algorithm.ts +++ b/src/mol-geo/util/marching-cubes/algorithm.ts @@ -72,7 +72,7 @@ export function computeMarchingCubesLines(params: MarchingCubesParams, lines?: L class MarchingCubesComputation { private size: number; private sliceSize: number; - private edgeFilter: number + private edgeFilter: number; private minX = 0; private minY = 0; private minZ = 0; private maxX = 0; private maxY = 0; private maxZ = 0; diff --git a/src/mol-math/geometry/boundary-helper.ts b/src/mol-math/geometry/boundary-helper.ts index 9d2532a58cfc1c8a73cc9ad9f644f8b2eb7d12f1..c49ff1afddb6bd9a9816495bb94a963afc1ae87e 100644 --- a/src/mol-math/geometry/boundary-helper.ts +++ b/src/mol-math/geometry/boundary-helper.ts @@ -12,12 +12,12 @@ import { Box3D } from './primitives/box3d'; // implementing http://www.ep.liu.se/ecp/034/009/ecp083409.pdf export class BoundaryHelper { - private dir: Vec3[] + private dir: Vec3[]; - private minDist: number[] = [] - private maxDist: number[] = [] - private extrema: Vec3[] = [] - centroidHelper = new CentroidHelper() + private minDist: number[] = []; + private maxDist: number[] = []; + private extrema: Vec3[] = []; + centroidHelper = new CentroidHelper(); private computeExtrema(i: number, p: Vec3) { const d = Vec3.dot(this.dir[i], p); diff --git a/src/mol-math/geometry/lookup3d/grid.ts b/src/mol-math/geometry/lookup3d/grid.ts index a4f4443d59ad148f51cf2b8ed018baf33d7771b0..9a3019e479571ae1d422dd7723aa382a068dd4fb 100644 --- a/src/mol-math/geometry/lookup3d/grid.ts +++ b/src/mol-math/geometry/lookup3d/grid.ts @@ -27,7 +27,7 @@ class GridLookup3DImpl<T extends number = number> implements GridLookup3D<T> { private ctx: QueryContext; boundary: Lookup3D['boundary']; buckets: GridLookup3D['buckets']; - result: Result<T> + result: Result<T>; find(x: number, y: number, z: number, radius: number, result?: Result<T>): Result<T> { this.ctx.x = x; diff --git a/src/mol-math/graph/inter-unit-graph.ts b/src/mol-math/graph/inter-unit-graph.ts index 91c1c2acc3dd70fbb7e9399ba454498346b4fd54..e2078b1fa21aa15233f7bd6c35b6c2c3776f694b 100644 --- a/src/mol-math/graph/inter-unit-graph.ts +++ b/src/mol-math/graph/inter-unit-graph.ts @@ -11,11 +11,11 @@ export { InterUnitGraph }; class InterUnitGraph<UnitId extends number, VertexIndex extends number, EdgeProps extends InterUnitGraph.EdgePropsBase = {}> { /** Number of inter-unit edges */ - readonly edgeCount: number + readonly edgeCount: number; /** Array of inter-unit edges */ - readonly edges: ReadonlyArray<InterUnitGraph.Edge<UnitId, VertexIndex, EdgeProps>> - private readonly edgeKeyIndex: Map<string, number> - private readonly vertexKeyIndex: Map<string, number[]> + readonly edges: ReadonlyArray<InterUnitGraph.Edge<UnitId, VertexIndex, EdgeProps>>; + private readonly edgeKeyIndex: Map<string, number>; + private readonly vertexKeyIndex: Map<string, number[]>; /** Get an array of unit-pair-edges that are connected to the given unit */ getConnectedUnits(unit: UnitId): ReadonlyArray<InterUnitGraph.UnitPairEdges<UnitId, VertexIndex, EdgeProps>> { @@ -134,13 +134,13 @@ namespace InterUnitGraph { export class Builder<UnitId extends number, VertexIndex extends number, EdgeProps extends InterUnitGraph.EdgePropsBase = {}> { - private uA: UnitId - private uB: UnitId - private mapAB: Map<number, EdgeInfo<VertexIndex, EdgeProps>[]> - private mapBA: Map<number, EdgeInfo<VertexIndex, EdgeProps>[]> - private linkedA: UniqueArray<VertexIndex, VertexIndex> - private linkedB: UniqueArray<VertexIndex, VertexIndex> - private linkCount: number + private uA: UnitId; + private uB: UnitId; + private mapAB: Map<number, EdgeInfo<VertexIndex, EdgeProps>[]>; + private mapBA: Map<number, EdgeInfo<VertexIndex, EdgeProps>[]>; + private linkedA: UniqueArray<VertexIndex, VertexIndex>; + private linkedB: UniqueArray<VertexIndex, VertexIndex>; + private linkCount: number; private map = new Map<number, UnitPairEdges<UnitId, VertexIndex, EdgeProps>[]>(); diff --git a/src/mol-model-formats/structure/common/component.ts b/src/mol-model-formats/structure/common/component.ts index dfa708dfa8b7e3b8abf56763e788b23c2903118b..cdacb28722b658ff42e32c6e50d737b31a540868 100644 --- a/src/mol-model-formats/structure/common/component.ts +++ b/src/mol-model-formats/structure/common/component.ts @@ -98,12 +98,12 @@ const CharmmIonComponents = (function () { })(); export class ComponentBuilder { - private namesMap = new Map<string, string>() - private comps = new Map<string, Component>() - private ids: string[] = [] - private names: string[] = [] - private types: mmCIF_chemComp_schema['type']['T'][] = [] - private mon_nstd_flags: mmCIF_chemComp_schema['mon_nstd_flag']['T'][] = [] + private namesMap = new Map<string, string>(); + private comps = new Map<string, Component>(); + private ids: string[] = []; + private names: string[] = []; + private types: mmCIF_chemComp_schema['type']['T'][] = []; + private mon_nstd_flags: mmCIF_chemComp_schema['mon_nstd_flag']['T'][] = []; private set(c: Component) { this.comps.set(c.id, c); diff --git a/src/mol-model-formats/structure/common/entity.ts b/src/mol-model-formats/structure/common/entity.ts index 107108f4035349098c04e0150536d5527250ffed..25e271473cb87989b2cdebc2d792f82e0986defa 100644 --- a/src/mol-model-formats/structure/common/entity.ts +++ b/src/mol-model-formats/structure/common/entity.ts @@ -14,16 +14,16 @@ export type EntityCompound = { chains: string[], description: string } type EntityType = 'water' | 'polymer' | 'non-polymer' export class EntityBuilder { - private count = 0 - private ids: string[] = [] - private types: EntityType[] = [] - private descriptions: string[][] = [] + private count = 0; + private ids: string[] = []; + private types: EntityType[] = []; + private descriptions: string[][] = []; - private compoundsMap = new Map<string, string>() - private namesMap = new Map<string, string>() - private heteroMap = new Map<string, string>() - private chainMap = new Map<string, string>() - private waterId?: string + private compoundsMap = new Map<string, string>(); + private namesMap = new Map<string, string>(); + private heteroMap = new Map<string, string>(); + private chainMap = new Map<string, string>(); + private waterId?: string; private set(type: EntityType, description: string) { this.count += 1; diff --git a/src/mol-model-formats/structure/common/property.ts b/src/mol-model-formats/structure/common/property.ts index b4f099861bec86cb87607e5e643c81f642670362..f9fefc875d63bca023c1f823ba1632293bea56a5 100644 --- a/src/mol-model-formats/structure/common/property.ts +++ b/src/mol-model-formats/structure/common/property.ts @@ -9,8 +9,8 @@ import { ModelFormat } from '../../format'; import { CustomPropertyDescriptor } from '../../../mol-model/custom-property'; class FormatRegistry<T> { - private map = new Map<ModelFormat['kind'], (model: Model) => T | undefined>() - private applicable = new Map<ModelFormat['kind'], (model: Model) => boolean>() + private map = new Map<ModelFormat['kind'], (model: Model) => T | undefined>(); + private applicable = new Map<ModelFormat['kind'], (model: Model) => boolean>(); add(kind: ModelFormat['kind'], obtain: (model: Model) => T | undefined, applicable?: (model: Model) => boolean) { this.map.set(kind, obtain); diff --git a/src/mol-model-props/common/custom-property.ts b/src/mol-model-props/common/custom-property.ts index 4c2824d58bce3d31249de73bd8352eeb8dddb909..e03d2ba47b8ae8b0f7af84f5e1c10b29e4a2222a 100644 --- a/src/mol-model-props/common/custom-property.ts +++ b/src/mol-model-props/common/custom-property.ts @@ -42,8 +42,8 @@ namespace CustomProperty { } export class Registry<Data> { - private providers = OrderedMap<string, Provider<Data, any, any>>().asMutable() - private defaultAutoAttachValues = new Map<string, boolean>() + private providers = OrderedMap<string, Provider<Data, any, any>>().asMutable(); + private defaultAutoAttachValues = new Map<string, boolean>(); /** Get params for all applicable property providers */ getParams(data?: Data) { diff --git a/src/mol-model-props/computed/interactions/common.ts b/src/mol-model-props/computed/interactions/common.ts index fba1647f4b27897e36e2584042a0d55e9ccb8c49..fb975526dd7b8c3213f1eed94aeb3598b22f56ef 100644 --- a/src/mol-model-props/computed/interactions/common.ts +++ b/src/mol-model-props/computed/interactions/common.ts @@ -85,7 +85,7 @@ namespace InteractionsIntraContacts { export { InteractionsInterContacts }; class InteractionsInterContacts extends InterUnitGraph<number, Features.FeatureIndex, InteractionsInterContacts.Props> { - private readonly elementKeyIndex: Map<string, number[]> + private readonly elementKeyIndex: Map<string, number[]>; getContactIndicesForElement(index: StructureElement.UnitIndex, unit: Unit): ReadonlyArray<number> { return this.elementKeyIndex.get(this.getElementKey(index, unit.id)) || []; diff --git a/src/mol-model-props/integrative/pair-restraints.ts b/src/mol-model-props/integrative/pair-restraints.ts index 82724c787909bae1ff54c0d4b890f1529161ccc9..1777ba5981b58ae6e02f75024afffa7b97c0087d 100644 --- a/src/mol-model-props/integrative/pair-restraints.ts +++ b/src/mol-model-props/integrative/pair-restraints.ts @@ -20,8 +20,8 @@ function getPairKey(indexA: StructureElement.UnitIndex, unitA: Unit, indexB: Str } export class PairRestraints<T extends PairRestraint> { - readonly count: number - private readonly pairKeyIndices: Map<string, number[]> + readonly count: number; + private readonly pairKeyIndices: Map<string, number[]>; /** Indices into this.pairs */ getPairIndices(indexA: StructureElement.UnitIndex, unitA: Unit, indexB: StructureElement.UnitIndex, unitB: Unit): ReadonlyArray<number> { diff --git a/src/mol-model/sequence/alignment/alignment.ts b/src/mol-model/sequence/alignment/alignment.ts index 1f319a95a8e2baa761adc71e32974c967e28cbe8..cf64db2196fb4507a7d50b5ffde40a9f4f7f1385 100644 --- a/src/mol-model/sequence/alignment/alignment.ts +++ b/src/mol-model/sequence/alignment/alignment.ts @@ -21,11 +21,11 @@ export function align(seqA: ArrayLike<string>, seqB: ArrayLike<string>, options: } class Alignment { - readonly gapPenalty: number; readonly gapExtensionPenalty: number - readonly substMatrix: SubstitutionMatrixData | undefined + readonly gapPenalty: number; readonly gapExtensionPenalty: number; + readonly substMatrix: SubstitutionMatrixData | undefined; - readonly n: number; readonly m: number - readonly S: number[][] = []; readonly V: number[][] = []; readonly H: number[][] = [] + readonly n: number; readonly m: number; + readonly S: number[][] = []; readonly V: number[][] = []; readonly H: number[][] = []; constructor(readonly seqA: ArrayLike<string>, readonly seqB: ArrayLike<string>, options: AlignmentOptions) { this.gapPenalty = options.gapPenalty; diff --git a/src/mol-model/sequence/sequence.ts b/src/mol-model/sequence/sequence.ts index 722da04fce3cc6a4cf7e3565043ef37d369df039..5ac73f82f7aa50277fb548cfa76c3cfa044c16c4 100644 --- a/src/mol-model/sequence/sequence.ts +++ b/src/mol-model/sequence/sequence.ts @@ -86,14 +86,14 @@ namespace Sequence { } class ResidueNamesImpl<K extends Kind, Alphabet extends string> implements Base<K, Alphabet> { - public length: number - public code: Column<Alphabet> - public label: Column<string> - public seqId: Column<number> - public compId: Column<string> - public microHet: ReadonlyMap<number, string[]> = new Map() - - private indexMap: Map<number, number> + public length: number; + public code: Column<Alphabet>; + public label: Column<string>; + public seqId: Column<number>; + public compId: Column<string>; + public microHet: ReadonlyMap<number, string[]> = new Map(); + + private indexMap: Map<number, number>; index(seqId: number) { return this.indexMap.get(seqId)!; } @@ -158,14 +158,14 @@ namespace Sequence { } class SequenceRangesImpl<K extends Kind, Alphabet extends string> implements Base<K, Alphabet> { - public length: number - public code: Column<Alphabet> - public label: Column<string> - public seqId: Column<number> - public compId: Column<string> - public microHet: ReadonlyMap<number, string[]> = new Map() - - private minSeqId: number + public length: number; + public code: Column<Alphabet>; + public label: Column<string>; + public seqId: Column<number>; + public compId: Column<string>; + public microHet: ReadonlyMap<number, string[]> = new Map(); + + private minSeqId: number; index(seqId: number) { return seqId - this.minSeqId; } diff --git a/src/mol-model/structure/structure/structure.ts b/src/mol-model/structure/structure/structure.ts index 2898c04ee3934eff8dba7e246c6438931f336e26..f962ee68207d5ea93d2b7fa605c9a78aae1b6ec1 100644 --- a/src/mol-model/structure/structure/structure.ts +++ b/src/mol-model/structure/structure/structure.ts @@ -938,7 +938,7 @@ namespace Structure { export class StructureBuilder { private units: Unit[] = []; - private invariantId = idFactory() + private invariantId = idFactory(); private chainGroupId = -1; private inChainGroup = false; diff --git a/src/mol-model/structure/structure/unit/bonds.ts b/src/mol-model/structure/structure/unit/bonds.ts index 20f562397f43989f92f78ea1347a77ae26027c1e..c8d2bf019f2623d1a214f71e58b85e592100cf0c 100644 --- a/src/mol-model/structure/structure/unit/bonds.ts +++ b/src/mol-model/structure/structure/unit/bonds.ts @@ -180,18 +180,18 @@ namespace Bond { } export class ElementBondIterator implements Iterator<ElementBondData> { - private current: ElementBondData = {} as any + private current: ElementBondData = {} as any; - private structure: Structure - private unit: Unit.Atomic - private index: StructureElement.UnitIndex + private structure: Structure; + private unit: Unit.Atomic; + private index: StructureElement.UnitIndex; - private interBondIndices: ReadonlyArray<number> - private interBondCount: number - private interBondIndex: number + private interBondIndices: ReadonlyArray<number>; + private interBondCount: number; + private interBondIndex: number; - private intraBondEnd: number - private intraBondIndex: number + private intraBondEnd: number; + private intraBondIndex: number; hasNext: boolean; move(): ElementBondData { diff --git a/src/mol-model/structure/structure/unit/rings.ts b/src/mol-model/structure/structure/unit/rings.ts index 43a4ed4010ff2683350e03304f05f3627e4fd244..99501fc6db76e9f1bd5631586d79e04dd57ab266 100644 --- a/src/mol-model/structure/structure/unit/rings.ts +++ b/src/mol-model/structure/structure/unit/rings.ts @@ -29,7 +29,7 @@ class UnitRings { readonly ringComponentIndex: ReadonlyArray<UnitRings.ComponentIndex>, readonly ringComponents: ReadonlyArray<ReadonlyArray<UnitRings.Index>> }; - private _aromaticRings?: ReadonlyArray<UnitRings.Index> + private _aromaticRings?: ReadonlyArray<UnitRings.Index>; private get index() { if (this._index) return this._index; diff --git a/src/mol-model/structure/structure/util/unit-transforms.ts b/src/mol-model/structure/structure/util/unit-transforms.ts index 79d73da5cea24afdffae4202d7b8e8fadf204802..7934acc5fd997b8b586b0f3af61a47f26fdbe676 100644 --- a/src/mol-model/structure/structure/util/unit-transforms.ts +++ b/src/mol-model/structure/structure/util/unit-transforms.ts @@ -12,8 +12,8 @@ import { fillIdentityTransform } from '../../../../mol-geo/geometry/transform-da const tmpMat = Mat4(); export class StructureUnitTransforms { - private unitTransforms: Float32Array - private groupUnitTransforms: Float32Array[] = [] + private unitTransforms: Float32Array; + private groupUnitTransforms: Float32Array[] = []; /** maps unit.id to offset of transform in unitTransforms */ private unitOffsetMap = IntMap.Mutable<number>(); private groupIndexMap = IntMap.Mutable<number>(); diff --git a/src/mol-plugin-state/formats/registry.ts b/src/mol-plugin-state/formats/registry.ts index 3c2a14c48859c8f7bd46aa08a386df9aa2f85b11..45e328dace350682327c4ddc641800970a8bed98 100644 --- a/src/mol-plugin-state/formats/registry.ts +++ b/src/mol-plugin-state/formats/registry.ts @@ -14,11 +14,11 @@ import { BuiltInShapeFormats } from './shape'; import { BuiltInStructureFormats } from './structure'; export class DataFormatRegistry { - private _list: { name: string, provider: DataFormatProvider }[] = [] - private _map = new Map<string, DataFormatProvider>() - private _extensions: Set<string> | undefined = undefined - private _binaryExtensions: Set<string> | undefined = undefined - private _options: [string, string, string][] | undefined = undefined + private _list: { name: string, provider: DataFormatProvider }[] = []; + private _map = new Map<string, DataFormatProvider>(); + private _extensions: Set<string> | undefined = undefined; + private _binaryExtensions: Set<string> | undefined = undefined; + private _options: [string, string, string][] | undefined = undefined; get types(): [string, string][] { return this._list.map(e => [e.name, e.provider.label] as [string, string]); diff --git a/src/mol-plugin-state/helpers/structure-selection-query.ts b/src/mol-plugin-state/helpers/structure-selection-query.ts index a8d3505aa3549f4bad81e5ef09ad9198c9aa6bb9..4640cf0fc9ace99f2202be4539da4f33d02f1907 100644 --- a/src/mol-plugin-state/helpers/structure-selection-query.ts +++ b/src/mol-plugin-state/helpers/structure-selection-query.ts @@ -742,9 +742,9 @@ export const StructureSelectionQueries = { }; export class StructureSelectionQueryRegistry { - list: StructureSelectionQuery[] = [] - options: [StructureSelectionQuery, string, string][] = [] - version = 1 + list: StructureSelectionQuery[] = []; + options: [StructureSelectionQuery, string, string][] = []; + version = 1; add(q: StructureSelectionQuery) { this.list.push(q); diff --git a/src/mol-plugin-state/manager/interactivity.ts b/src/mol-plugin-state/manager/interactivity.ts index 8805432230c49f0046ac8d8f24c5c98d08646775..c9f972483613367f64c7f127754f35d07ab9201d 100644 --- a/src/mol-plugin-state/manager/interactivity.ts +++ b/src/mol-plugin-state/manager/interactivity.ts @@ -36,7 +36,7 @@ class InteractivityManager extends StatefulPluginComponent<InteractivityManagerS readonly lociSelects: InteractivityManager.LociSelectManager; readonly lociHighlights: InteractivityManager.LociHighlightManager; - private _props = PD.getDefaultValues(InteractivityManager.Params) + private _props = PD.getDefaultValues(InteractivityManager.Params); readonly events = { propsUpdated: this.ev() @@ -84,9 +84,9 @@ namespace InteractivityManager { export abstract class LociMarkManager { protected providers: LociMarkProvider[] = []; - protected sel: StructureSelectionManager + protected sel: StructureSelectionManager; - readonly props: Readonly<Props> = PD.getDefaultValues(Params) + readonly props: Readonly<Props> = PD.getDefaultValues(Params); setProps(props: Partial<Props>) { Object.assign(this.props, props); @@ -141,7 +141,7 @@ namespace InteractivityManager { this.mark(p, MarkerAction.RemoveHighlight, noRender); } this.prev.length = 0; - } + }; highlight(current: Representation.Loci, applyGranularity = true) { const normalized = this.normalizedLoci(current, applyGranularity); diff --git a/src/mol-plugin-state/manager/loci-label.ts b/src/mol-plugin-state/manager/loci-label.ts index e36300411da24de741785ce48e51b81fe192fada..b5b9f94127d1733d14531269e5ec0347a53f5dbd 100644 --- a/src/mol-plugin-state/manager/loci-label.ts +++ b/src/mol-plugin-state/manager/loci-label.ts @@ -41,7 +41,7 @@ export class LociLabelManager { this.showLabels(); } - private locis: Representation.Loci[] = [] + private locis: Representation.Loci[] = []; private mark(loci: Representation.Loci, action: MarkerAction) { const idx = this.locis.findIndex(l => Representation.Loci.areEqual(loci, l)); @@ -54,9 +54,9 @@ export class LociLabelManager { } } - private isDirty = false - private labels: LociLabel[] = [] - private groupedLabels = new Map<string, LociLabel[]>() + private isDirty = false; + private labels: LociLabel[] = []; + private groupedLabels = new Map<string, LociLabel[]>(); private showLabels() { this.ctx.behaviors.labels.highlight.next({ labels: this.getLabels() }); diff --git a/src/mol-plugin-state/manager/structure/component.ts b/src/mol-plugin-state/manager/structure/component.ts index cbfb1cbeae75f0520621ca903ef124702d040d65..2494fa2970282e14bbf5a2481dd88ee1ed3cb371 100644 --- a/src/mol-plugin-state/manager/structure/component.ts +++ b/src/mol-plugin-state/manager/structure/component.ts @@ -42,7 +42,7 @@ interface StructureComponentManagerState { class StructureComponentManager extends StatefulPluginComponent<StructureComponentManagerState> { readonly events = { optionsUpdated: this.ev<undefined>() - } + }; get currentStructures() { return this.plugin.managers.structure.hierarchy.selection.structures; diff --git a/src/mol-plugin-state/manager/structure/focus.ts b/src/mol-plugin-state/manager/structure/focus.ts index 836f50f77c5478e1307a49ba8d41bcf35af466b7..50ad8780061a79fc9580453e0659ebd2f14a3e21 100644 --- a/src/mol-plugin-state/manager/structure/focus.ts +++ b/src/mol-plugin-state/manager/structure/focus.ts @@ -41,7 +41,7 @@ const HISTORY_CAPACITY = 8; export class StructureFocusManager extends StatefulPluginComponent<StructureFocusManagerState> { readonly events = { historyUpdated: this.ev<undefined>() - } + }; readonly behaviors = { current: this.ev.behavior<FocusEntry | undefined>(void 0) diff --git a/src/mol-plugin-state/manager/structure/hierarchy.ts b/src/mol-plugin-state/manager/structure/hierarchy.ts index e314df6dda7667016510b4a10fe90ca0b2d7aca8..e9cc03ec62c2a52764b14914e7c5e01b5941adc1 100644 --- a/src/mol-plugin-state/manager/structure/hierarchy.ts +++ b/src/mol-plugin-state/manager/structure/hierarchy.ts @@ -25,7 +25,7 @@ export class StructureHierarchyManager extends PluginComponent { models: [] as ReadonlyArray<ModelRef>, structures: [] as ReadonlyArray<StructureRef> } - } + }; readonly behaviors = { selection: this.ev.behavior({ @@ -34,7 +34,7 @@ export class StructureHierarchyManager extends PluginComponent { models: this.selection.models, structures: this.selection.structures }) - } + }; private get dataState() { return this.plugin.state.data; diff --git a/src/mol-plugin-state/manager/structure/selection.ts b/src/mol-plugin-state/manager/structure/selection.ts index c043a9e614cde87c2312401549f90828ff847b96..0cbae64dc82cc4a4069205236c7f567f5908621a 100644 --- a/src/mol-plugin-state/manager/structure/selection.ts +++ b/src/mol-plugin-state/manager/structure/selection.ts @@ -45,9 +45,9 @@ export class StructureSelectionManager extends StatefulPluginComponent<Structure remove: this.ev<StructureElement.Loci>(), clear: this.ev<undefined>() } - } + }; - private referenceLoci: StructureElement.Loci | undefined + private referenceLoci: StructureElement.Loci | undefined; get entries() { return this.state.entries; } get additionsHistory() { return this.state.additionsHistory; } diff --git a/src/mol-plugin-state/manager/volume/hierarchy.ts b/src/mol-plugin-state/manager/volume/hierarchy.ts index 7b9f21cd54b35ae609483f69b7b3f45abdbfe7c0..4076f5f4e9b41ed96f869a6428868b53865a97b2 100644 --- a/src/mol-plugin-state/manager/volume/hierarchy.ts +++ b/src/mol-plugin-state/manager/volume/hierarchy.ts @@ -18,14 +18,14 @@ export class VolumeHierarchyManager extends PluginComponent { hierarchy: VolumeHierarchy(), selection: void 0 as VolumeRef | undefined - } + }; readonly behaviors = { selection: this.ev.behavior({ hierarchy: this.current, volume: this.selection }) - } + }; private get dataState() { return this.plugin.state.data; diff --git a/src/mol-plugin-ui/base.tsx b/src/mol-plugin-ui/base.tsx index 20047db2eb57cb428653f012180d648702912fe6..2dba5dc4e0a376a7c484714531077a07e01092e8 100644 --- a/src/mol-plugin-ui/base.tsx +++ b/src/mol-plugin-ui/base.tsx @@ -82,7 +82,7 @@ export type CollapsableState = { export abstract class CollapsableControls<P = {}, S = {}, SS = {}> extends PluginUIComponent<P & CollapsableProps, S & CollapsableState, SS> { toggleCollapsed = () => { this.setState({ isCollapsed: !this.state.isCollapsed } as (S & CollapsableState)); - } + }; componentDidUpdate(prevProps: P & CollapsableProps) { if (this.props.initiallyCollapsed !== undefined && prevProps.initiallyCollapsed !== this.props.initiallyCollapsed) { diff --git a/src/mol-plugin-ui/controls.tsx b/src/mol-plugin-ui/controls.tsx index 880070a51087f5eddcfa5a17a81485b4573e6a52..bb2f46fd1e75e84f3d4b2b9585da395683ff3453 100644 --- a/src/mol-plugin-ui/controls.tsx +++ b/src/mol-plugin-ui/controls.tsx @@ -26,7 +26,7 @@ import { PluginConfig } from '../mol-plugin/config'; import { StructureSuperpositionControls } from './structure/superposition'; export class TrajectoryViewportControls extends PluginUIComponent<{}, { show: boolean, label: string }> { - state = { show: false, label: '' } + state = { show: false, label: '' }; private update = () => { const state = this.plugin.state.data; @@ -63,7 +63,7 @@ export class TrajectoryViewportControls extends PluginUIComponent<{}, { show: bo if (count > 1) label = ''; this.setState({ show: count > 0, label }); - } + }; componentDidMount() { this.subscribe(this.plugin.state.data.events.changed, this.update); @@ -100,7 +100,7 @@ export class TrajectoryViewportControls extends PluginUIComponent<{}, { show: bo } export class StateSnapshotViewportControls extends PluginUIComponent<{}, { isBusy: boolean, show: boolean }> { - state = { isBusy: false, show: true } + state = { isBusy: false, show: true }; componentDidMount() { // TODO: this needs to be diabled when the state is updating! @@ -147,23 +147,23 @@ export class StateSnapshotViewportControls extends PluginUIComponent<{}, { isBus change = (e: React.ChangeEvent<HTMLSelectElement>) => { if (e.target.value === 'none') return; this.update(e.target.value); - } + }; prev = () => { const s = this.plugin.managers.snapshot; const id = s.getNextId(s.state.current, -1); if (id) this.update(id); - } + }; next = () => { const s = this.plugin.managers.snapshot; const id = s.getNextId(s.state.current, 1); if (id) this.update(id); - } + }; togglePlay = () => { this.plugin.managers.snapshot.togglePlay(); - } + }; render() { const snapshots = this.plugin.managers.snapshot; @@ -212,7 +212,7 @@ export class AnimationViewportControls extends PluginUIComponent<{}, { isEmpty: stop = () => { this.plugin.managers.animation.stop(); this.plugin.managers.snapshot.stop(); - } + }; render() { const isPlaying = this.plugin.managers.snapshot.state.isPlaying; @@ -242,7 +242,7 @@ export class SelectionViewportControls extends PluginUIComponent { onMouseMove = (e: React.MouseEvent) => { // ignore mouse moves when no button is held if (e.buttons === 0) e.stopPropagation(); - } + }; render() { if (!this.plugin.selectionMode) return null; @@ -253,7 +253,7 @@ export class SelectionViewportControls extends PluginUIComponent { } export class LociLabels extends PluginUIComponent<{}, { labels: ReadonlyArray<LociLabel> }> { - state = { labels: [] } + state = { labels: [] }; componentDidMount() { this.subscribe(this.plugin.behaviors.labels.highlight, e => this.setState({ labels: e.labels })); diff --git a/src/mol-plugin-ui/controls/action-menu.tsx b/src/mol-plugin-ui/controls/action-menu.tsx index 5ce7e61c0fdaad308edeceba1e8ca3c7d648805e..e6d51d2794710bb2570fc9ede26df04c525196c7 100644 --- a/src/mol-plugin-ui/controls/action-menu.tsx +++ b/src/mol-plugin-ui/controls/action-menu.tsx @@ -11,7 +11,7 @@ import { Button, ControlGroup } from './common'; import { CloseSvg, ArrowDropDownSvg, ArrowRightSvg, CheckSvg } from './icons'; export class ActionMenu extends React.PureComponent<ActionMenu.Props> { - hide = () => this.props.onSelect(void 0) + hide = () => this.props.onSelect(void 0); render() { const cmd = this.props; @@ -193,12 +193,12 @@ class Section extends React.PureComponent<SectionProps, SectionState> { }; } - state = Section.createState(this.props) + state = Section.createState(this.props); toggleExpanded = (e: React.MouseEvent<HTMLButtonElement>) => { this.setState({ isExpanded: !this.state.isExpanded }); e.currentTarget.blur(); - } + }; componentDidUpdate(prevProps: SectionProps) { if (this.props.items !== prevProps.items || this.props.current !== prevProps.current) { @@ -215,12 +215,12 @@ class Section extends React.PureComponent<SectionProps, SectionState> { selectAll = () => { const items = collectItems(this.props.items, []).filter(i => !i.selected); this.props.onSelect(items as any); - } + }; selectNone = () => { const items = collectItems(this.props.items, []).filter(i => !!i.selected); this.props.onSelect(items as any); - } + }; get multiselectHeader() { const { header, hasCurrent } = this.state; diff --git a/src/mol-plugin-ui/controls/color.tsx b/src/mol-plugin-ui/controls/color.tsx index cbb04476f626a7549ac63b1150081c63ad8e3275..3b22e0d2db061b1019bff7cccafa754b6b405636 100644 --- a/src/mol-plugin-ui/controls/color.tsx +++ b/src/mol-plugin-ui/controls/color.tsx @@ -18,7 +18,7 @@ export class CombinedColorControl extends React.PureComponent<ParamProps<PD.Colo state = { isExpanded: !!this.props.param.isExpanded, lightness: 0 - } + }; protected update(value: Color) { this.props.onChange({ param: this.props.param, name: this.props.name, value }); @@ -27,7 +27,7 @@ export class CombinedColorControl extends React.PureComponent<ParamProps<PD.Colo toggleExpanded = (e: React.MouseEvent<HTMLButtonElement>) => { this.setState({ isExpanded: !this.state.isExpanded }); e.currentTarget.blur(); - } + }; onClickSwatch = (e: React.MouseEvent<HTMLButtonElement>) => { const value = Color(+(e.currentTarget.getAttribute('data-color') || '0')); @@ -35,33 +35,33 @@ export class CombinedColorControl extends React.PureComponent<ParamProps<PD.Colo if (!this.props.param.isExpanded) this.setState({ isExpanded: false }); this.update(value); } - } + }; onR = (v: number) => { const [, g, b] = Color.toRgb(this.props.value); const value = Color.fromRgb(v, g, b); if (value !== this.props.value) this.update(value); - } + }; onG = (v: number) => { const [r, , b] = Color.toRgb(this.props.value); const value = Color.fromRgb(r, v, b); if (value !== this.props.value) this.update(value); - } + }; onB = (v: number) => { const [r, g] = Color.toRgb(this.props.value); const value = Color.fromRgb(r, g, v); if (value !== this.props.value) this.update(value); - } + }; onLighten = () => { this.update(Color.lighten(this.props.value, 0.1)); - } + }; onDarken = () => { this.update(Color.darken(this.props.value, 0.1)); - } + }; swatch() { return <div className='msp-combined-color-swatch'> diff --git a/src/mol-plugin-ui/controls/common.tsx b/src/mol-plugin-ui/controls/common.tsx index 20a74a6f9ae7c70dd190cb9bf23f0fb66a752d2a..2b0a05cc398482363e74942eea2388eb21bcbbe7 100644 --- a/src/mol-plugin-ui/controls/common.tsx +++ b/src/mol-plugin-ui/controls/common.tsx @@ -23,7 +23,7 @@ export class ControlGroup extends React.Component<{ childrenClassName?: string, maxHeight?: string }, { isExpanded: boolean }> { - state = { isExpanded: !!this.props.initialExpanded } + state = { isExpanded: !!this.props.initialExpanded }; headerClicked = () => { if (this.props.onHeaderClick) { @@ -31,7 +31,7 @@ export class ControlGroup extends React.Component<{ } else { this.setState({ isExpanded: !this.state.isExpanded }); } - } + }; render() { let groupClassName = this.props.hideOffset ? 'msp-control-group-children' : 'msp-control-group-children msp-control-offset'; @@ -84,12 +84,12 @@ export class TextInput<T = string> extends React.PureComponent<TextInputProps<T> private delayHandle: any = void 0; private pendingValue: T | undefined = void 0; - state = { originalValue: '', value: '' } + state = { originalValue: '', value: '' }; onBlur = () => { this.setState({ value: '' + this.state.originalValue }); if (this.props.onBlur) this.props.onBlur(); - } + }; get isPending() { return typeof this.delayHandle !== 'undefined'; } @@ -105,7 +105,7 @@ export class TextInput<T = string> extends React.PureComponent<TextInputProps<T> this.props.onChange(this.pendingValue!); this.pendingValue = void 0; - } + }; triggerChanged(formatted: string, converted: T) { this.clearTimeout(); @@ -138,7 +138,7 @@ export class TextInput<T = string> extends React.PureComponent<TextInputProps<T> this.setState({ value: formatted }, () => this.triggerChanged(formatted, converted)); } - } + }; onKeyUp = (e: React.KeyboardEvent<HTMLInputElement>) => { if (e.charCode === 27 || e.keyCode === 27 || e.key === 'Escape') { @@ -146,7 +146,7 @@ export class TextInput<T = string> extends React.PureComponent<TextInputProps<T> this.input.current.blur(); } } - } + }; onKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => { if (e.keyCode === 13 || e.charCode === 13 || e.key === 'Enter') { @@ -160,7 +160,7 @@ export class TextInput<T = string> extends React.PureComponent<TextInputProps<T> if (this.props.onEnter) this.props.onEnter(); } e.stopPropagation(); - } + }; static getDerivedStateFromProps(props: TextInputProps<any>, state: TextInputState) { const value = props.fromValue ? props.fromValue(props.value) : props.value; @@ -322,7 +322,7 @@ export class ToggleButton extends React.PureComponent<ToggleButtonProps> { onClick = (e: React.MouseEvent<HTMLButtonElement>) => { e.currentTarget.blur(); this.props.toggle(); - } + }; render() { const props = this.props; diff --git a/src/mol-plugin-ui/controls/line-graph/line-graph-component.tsx b/src/mol-plugin-ui/controls/line-graph/line-graph-component.tsx index 968068d2b19af01f43c727df22a60a8c180729b6..654d6733e0d656edf9258fe149197ec1f17f71ac 100644 --- a/src/mol-plugin-ui/controls/line-graph/line-graph-component.tsx +++ b/src/mol-plugin-ui/controls/line-graph/line-graph-component.tsx @@ -117,15 +117,15 @@ export class LineGraphComponent extends React.Component<any, LineGraphComponentS private handleKeyDown = (event: any) => { // TODO: set canSelectMultiple = true - } + }; private handleKeyUp = (event: any) => { // TODO: SET canSelectMultiple = fasle - } + }; private handleClick = (id: number) => (event: any) => { // TODO: add point to selected array - } + }; private handleMouseDown = (id: number) => (event: any) => { if (id === 0 || id === this.state.points.length - 1) { @@ -147,7 +147,7 @@ export class LineGraphComponent extends React.Component<any, LineGraphComponentS this.updatedX = copyPoint[0]; this.updatedY = copyPoint[1]; this.selected = [id]; - } + }; private handleDrag(event: any) { if (this.selected === undefined) { @@ -280,7 +280,7 @@ export class LineGraphComponent extends React.Component<any, LineGraphComponentS this.setState({ points }); this.change(points); event.stopPropagation(); - } + }; private handleLeave() { if (this.selected === undefined) { diff --git a/src/mol-plugin-ui/controls/parameters.tsx b/src/mol-plugin-ui/controls/parameters.tsx index f21c052649fc9ba68e5a00564261dca0ae114849..ac908aeccc687e434a9a4bd1306082b156633f19 100644 --- a/src/mol-plugin-ui/controls/parameters.tsx +++ b/src/mol-plugin-ui/controls/parameters.tsx @@ -45,7 +45,7 @@ export class ParameterControls<P extends PD.Params> extends React.PureComponent< const values = { ...this.props.values, [params.name]: params.value }; this.props.onChangeValues(values, this.props.values); } - } + }; renderGroup(group: ParamInfo[]) { if (group.length === 0) return null; @@ -109,7 +109,7 @@ export class ParameterMappingControl<S, T> extends PluginUIComponent<{ mapping: const values = { ...old, [p.name]: p.value }; const t = this.props.mapping.update(values, this.plugin); this.props.mapping.apply(t, this.plugin); - } + }; componentDidMount() { this.subscribe(this.plugin.events.canvas3d.settingsUpdated, () => this.forceUpdate()); @@ -289,7 +289,7 @@ export abstract class SimpleParam<P extends PD.Any> extends React.PureComponent< } export class BoolControl extends SimpleParam<PD.BooleanParam> { - onClick = (e: React.MouseEvent<HTMLButtonElement>) => { this.update(!this.props.value); e.currentTarget.blur(); } + onClick = (e: React.MouseEvent<HTMLButtonElement>) => { this.update(!this.props.value); e.currentTarget.blur(); }; renderControl() { return <button onClick={this.onClick} disabled={this.props.isDisabled}> <Icon svg={this.props.value ? CheckSvg : ClearSvg} /> @@ -303,7 +303,7 @@ export class LineGraphControl extends React.PureComponent<ParamProps<PD.LineGrap isExpanded: false, isOverPoint: false, message: `${this.props.param.defaultValue.length} points`, - } + }; onHover = (point?: Vec2) => { this.setState({ isOverPoint: !this.state.isOverPoint }); @@ -312,20 +312,20 @@ export class LineGraphControl extends React.PureComponent<ParamProps<PD.LineGrap return; } this.setState({ message: `${this.props.value.length} points` }); - } + }; onDrag = (point: Vec2) => { this.setState({ message: `(${point[0].toFixed(2)}, ${point[1].toFixed(2)})` }); - } + }; onChange = (value: PD.LineGraph['defaultValue']) => { this.props.onChange({ name: this.props.name, param: this.props.param, value: value }); - } + }; toggleExpanded = (e: React.MouseEvent<HTMLButtonElement>) => { this.setState({ isExpanded: !this.state.isExpanded }); e.currentTarget.blur(); - } + }; render() { const label = this.props.param.label || camelCaseToWords(this.props.name); @@ -349,7 +349,7 @@ export class NumberInputControl extends React.PureComponent<ParamProps<PD.Numeri const p = getPrecision(this.props.param.step || 0.01); value = parseFloat(value.toFixed(p)); this.props.onChange({ param: this.props.param, name: this.props.name, value }); - } + }; render() { const placeholder = this.props.param.label || camelCaseToWords(this.props.name); @@ -365,7 +365,7 @@ export class NumberInputControl extends React.PureComponent<ParamProps<PD.Numeri } export class NumberRangeControl extends SimpleParam<PD.Numeric> { - onChange = (v: number) => { this.update(v); } + onChange = (v: number) => { this.update(v); }; renderControl() { const value = typeof this.props.value === 'undefined' ? this.props.param.defaultValue : this.props.value; return <Slider value={value} min={this.props.param.min!} max={this.props.param.max!} @@ -380,14 +380,14 @@ export class TextControl extends SimpleParam<PD.Text> { if (value !== this.props.value) { this.update(value); } - } + }; onKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => { if ((e.keyCode === 13 || e.charCode === 13 || e.key === 'Enter')) { if (this.props.onEnter) this.props.onEnter(); } e.stopPropagation(); - } + }; renderControl() { const placeholder = this.props.param.label || camelCaseToWords(this.props.name); @@ -412,7 +412,7 @@ export class PureSelectControl extends React.PureComponent<ParamProps<PD.Select< } else { this.update(e.target.value); } - } + }; render() { const isInvalid = this.props.value !== void 0 && !this.props.param.options.some(e => e[0] === this.props.value); @@ -434,7 +434,7 @@ export class SelectControl extends React.PureComponent<ParamProps<PD.Select<stri this.props.onChange({ param: this.props.param, name: this.props.name, value: item.value }); }); } - } + }; toggle = () => this.setState({ showOptions: !this.state.showOptions }); @@ -500,7 +500,7 @@ export class ValueRefControl extends React.PureComponent<ParamProps<PD.ValueRef< this.props.onChange({ param: this.props.param, name: this.props.name, value: { ref: item.value } }); }); } - } + }; toggle = () => this.setState({ showOptions: !this.state.showOptions }); @@ -540,12 +540,12 @@ export class ValueRefControl extends React.PureComponent<ParamProps<PD.ValueRef< } export class IntervalControl extends React.PureComponent<ParamProps<PD.Interval>, { isExpanded: boolean }> { - state = { isExpanded: false } + state = { isExpanded: false }; components = { 0: PD.Numeric(0, { step: this.props.param.step }, { label: 'Min' }), 1: PD.Numeric(0, { step: this.props.param.step }, { label: 'Max' }) - } + }; change(value: PD.MultiSelect<any>['defaultValue']) { this.props.onChange({ name: this.props.name, param: this.props.param, value }); @@ -555,12 +555,12 @@ export class IntervalControl extends React.PureComponent<ParamProps<PD.Interval> const v = [...this.props.value]; v[+name] = value; this.change(v); - } + }; toggleExpanded = (e: React.MouseEvent<HTMLButtonElement>) => { this.setState({ isExpanded: !this.state.isExpanded }); e.currentTarget.blur(); - } + }; render() { const v = this.props.value; @@ -577,7 +577,7 @@ export class IntervalControl extends React.PureComponent<ParamProps<PD.Interval> } export class BoundedIntervalControl extends SimpleParam<PD.Interval> { - onChange = (v: [number, number]) => { this.update(v); } + onChange = (v: [number, number]) => { this.update(v); }; renderControl() { return <Slider2 value={this.props.value} min={this.props.param.min!} max={this.props.param.max!} step={this.props.param.step} onChange={this.onChange} disabled={this.props.isDisabled} onEnter={this.props.onEnter} />; @@ -587,7 +587,7 @@ export class BoundedIntervalControl extends SimpleParam<PD.Interval> { export class ColorControl extends SimpleParam<PD.Color> { onChange = (e: React.ChangeEvent<HTMLSelectElement>) => { this.update(Color(parseInt(e.target.value))); - } + }; stripStyle(): React.CSSProperties { return { @@ -710,18 +710,18 @@ export class ColorListControl extends React.PureComponent<ParamProps<PD.ColorLis const preset = getColorListFromName(item.value as ColorListName); this.update({ kind: preset.type !== 'qualitative' ? 'interpolate' : 'set', colors: preset.list }); - } + }; colorsChanged: ParamOnChange = ({ value }) => { this.update({ kind: this.props.value.kind, colors: (value as (typeof _colorListHelpers)['ColorsParam']['defaultValue']).map(c => c.color) }); - } + }; isInterpolatedChanged: ParamOnChange = ({ value }) => { this.update({ kind: value ? 'interpolate' : 'set', colors: this.props.value.colors }); - } + }; renderColors() { if (!this.state.show) return null; @@ -779,17 +779,17 @@ export class OffsetColorListControl extends React.PureComponent<ParamProps<PD.Co const preset = getColorListFromName(item.value as ColorListName); this.update({ kind: preset.type !== 'qualitative' ? 'interpolate' : 'set', colors: preset.list }); - } + }; colorsChanged: ParamOnChange = ({ value }) => { const colors = (value as (typeof _colorListHelpers)['OffsetColorsParam']['defaultValue']).map(c => [c.color, c.offset] as [Color, number]); colors.sort((a, b) => a[1] - b[1]); this.update({ kind: this.props.value.kind, colors }); - } + }; isInterpolatedChanged: ParamOnChange = ({ value }) => { this.update({ kind: value ? 'interpolate' : 'set', colors: this.props.value.colors }); - } + }; renderColors() { if (!this.state.show) return null; @@ -824,13 +824,13 @@ export class OffsetColorListControl extends React.PureComponent<ParamProps<PD.Co } export class Vec3Control extends React.PureComponent<ParamProps<PD.Vec3>, { isExpanded: boolean }> { - state = { isExpanded: false } + state = { isExpanded: false }; components = { 0: PD.Numeric(0, { step: this.props.param.step }, { label: (this.props.param.fieldLabels && this.props.param.fieldLabels.x) || 'X' }), 1: PD.Numeric(0, { step: this.props.param.step }, { label: (this.props.param.fieldLabels && this.props.param.fieldLabels.y) || 'Y' }), 2: PD.Numeric(0, { step: this.props.param.step }, { label: (this.props.param.fieldLabels && this.props.param.fieldLabels.z) || 'Z' }) - } + }; change(value: PD.MultiSelect<any>['defaultValue']) { this.props.onChange({ name: this.props.name, param: this.props.param, value }); @@ -840,12 +840,12 @@ export class Vec3Control extends React.PureComponent<ParamProps<PD.Vec3>, { isEx const v = Vec3.copy(Vec3.zero(), this.props.value); v[+name] = value; this.change(v); - } + }; toggleExpanded = (e: React.MouseEvent<HTMLButtonElement>) => { this.setState({ isExpanded: !this.state.isExpanded }); e.currentTarget.blur(); - } + }; render() { const v = this.props.value; @@ -862,11 +862,11 @@ export class Vec3Control extends React.PureComponent<ParamProps<PD.Vec3>, { isEx } export class Mat4Control extends React.PureComponent<ParamProps<PD.Mat4>, { isExpanded: boolean }> { - state = { isExpanded: false } + state = { isExpanded: false }; components = { json: PD.Text(JSON.stringify(Mat4()), { description: 'JSON array with 4x4 matrix in a column major (j * 4 + i indexing) format' }) - } + }; change(value: PD.MultiSelect<any>['defaultValue']) { this.props.onChange({ name: this.props.name, param: this.props.param, value }); @@ -881,12 +881,12 @@ export class Mat4Control extends React.PureComponent<ParamProps<PD.Mat4>, { isEx } this.change(v); - } + }; toggleExpanded = (e: React.MouseEvent<HTMLButtonElement>) => { this.setState({ isExpanded: !this.state.isExpanded }); e.currentTarget.blur(); - } + }; changeValue(idx: number) { return (v: number) => { @@ -930,14 +930,14 @@ export class UrlControl extends SimpleParam<PD.UrlParam> { if (value !== Asset.getUrl(this.props.value || '')) { this.update(Asset.Url(value)); } - } + }; onKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => { if ((e.keyCode === 13 || e.charCode === 13 || e.key === 'Enter')) { if (this.props.onEnter) this.props.onEnter(); } e.stopPropagation(); - } + }; renderControl() { const placeholder = this.props.param.label || camelCaseToWords(this.props.name); @@ -960,7 +960,7 @@ export class FileControl extends React.PureComponent<ParamProps<PD.FileParam>> { onChangeFile = (e: React.ChangeEvent<HTMLInputElement>) => { this.change(e.target.files![0]); - } + }; toggleHelp = () => this.setState({ showHelp: !this.state.showHelp }); @@ -1002,7 +1002,7 @@ export class FileListControl extends React.PureComponent<ParamProps<PD.FileListP onChangeFileList = (e: React.ChangeEvent<HTMLInputElement>) => { this.change(e.target.files!); - } + }; toggleHelp = () => this.setState({ showHelp: !this.state.showHelp }); @@ -1040,7 +1040,7 @@ export class FileListControl extends React.PureComponent<ParamProps<PD.FileListP } export class MultiSelectControl extends React.PureComponent<ParamProps<PD.MultiSelect<any>>, { isExpanded: boolean }> { - state = { isExpanded: false } + state = { isExpanded: false }; change(value: PD.MultiSelect<any>['defaultValue']) { this.props.onChange({ name: this.props.name, param: this.props.param, value }); @@ -1057,7 +1057,7 @@ export class MultiSelectControl extends React.PureComponent<ParamProps<PD.MultiS toggleExpanded = (e: React.MouseEvent<HTMLButtonElement>) => { this.setState({ isExpanded: !this.state.isExpanded }); e.currentTarget.blur(); - } + }; render() { const current = this.props.value; @@ -1080,7 +1080,7 @@ export class MultiSelectControl extends React.PureComponent<ParamProps<PD.MultiS } export class GroupControl extends React.PureComponent<ParamProps<PD.Group<any>> & { inMapped?: boolean }, { isExpanded: boolean, showPresets: boolean, showHelp: boolean }> { - state = { isExpanded: !!this.props.param.isExpanded, showPresets: false, showHelp: false } + state = { isExpanded: !!this.props.param.isExpanded, showPresets: false, showHelp: false }; change(value: any) { this.props.onChange({ name: this.props.name, param: this.props.param, value }); @@ -1088,7 +1088,7 @@ export class GroupControl extends React.PureComponent<ParamProps<PD.Group<any>> onChangeParam: ParamOnChange = e => { this.change({ ...this.props.value, [e.name]: e.value }); - } + }; toggleExpanded = () => this.setState({ isExpanded: !this.state.isExpanded }); toggleShowPresets = () => this.setState({ showPresets: !this.state.showPresets }); @@ -1098,7 +1098,7 @@ export class GroupControl extends React.PureComponent<ParamProps<PD.Group<any>> onSelectPreset: ActionMenu.OnSelect = item => { this.setState({ showPresets: false }); this.change(item?.value); - } + }; pivotedPresets() { if (!this.props.param.presets) return null; @@ -1197,11 +1197,11 @@ export class GroupControl extends React.PureComponent<ParamProps<PD.Group<any>> } export class MappedControl extends React.PureComponent<ParamProps<PD.Mapped<any>>, { isExpanded: boolean }> { - state = { isExpanded: false } + state = { isExpanded: false }; // TODO: this could lead to a rare bug where the component is reused with different mapped control. // I think there are currently no cases where this could happen in the UI, but still need to watch out.. - private valuesCache: { [name: string]: PD.Values<any> } = {} + private valuesCache: { [name: string]: PD.Values<any> } = {}; private setValues(name: string, values: PD.Values<any>) { this.valuesCache[name] = values; } @@ -1219,12 +1219,12 @@ export class MappedControl extends React.PureComponent<ParamProps<PD.Mapped<any> onChangeName: ParamOnChange = e => { this.change({ name: e.value, params: this.getValues(e.value) }); - } + }; onChangeParam: ParamOnChange = e => { this.setValues(this.props.value.name, e.value); this.change({ name: this.props.value.name, params: e.value }); - } + }; toggleExpanded = () => this.setState({ isExpanded: !this.state.isExpanded }); @@ -1283,11 +1283,11 @@ class ObjectListEditor extends React.PureComponent<ObjectListEditorProps, { curr onChangeParam: ParamOnChange = e => { this.setState({ current: { ...this.state.current, [e.name]: e.value } }); - } + }; apply = () => { this.props.apply(this.state.current); - } + }; componentDidUpdate(prevProps: ObjectListEditorProps) { if (this.props.params !== prevProps.params || this.props.value !== prevProps.value) { @@ -1312,7 +1312,7 @@ class ObjectListItem extends React.PureComponent<ObjectListItemProps, { isExpand update = (v: object) => { // this.setState({ isExpanded: false }); // TODO auto update? mark changed state? this.props.actions.update(v, this.props.index); - } + }; moveUp = () => { this.props.actions.move(this.props.index, -1); @@ -1353,7 +1353,7 @@ class ObjectListItem extends React.PureComponent<ObjectListItemProps, { isExpand } export class ObjectListControl extends React.PureComponent<ParamProps<PD.ObjectList>, { isExpanded: boolean }> { - state = { isExpanded: false } + state = { isExpanded: false }; change(value: any) { this.props.onChange({ name: this.props.name, param: this.props.param, value }); @@ -1390,7 +1390,7 @@ export class ObjectListControl extends React.PureComponent<ParamProps<PD.ObjectL } this.change(update); } - } + }; toggleExpanded = (e: React.MouseEvent<HTMLButtonElement>) => { this.setState({ isExpanded: !this.state.isExpanded }); @@ -1420,11 +1420,11 @@ export class ConditionedControl extends React.PureComponent<ParamProps<PD.Condit onChangeCondition: ParamOnChange = e => { this.change(this.props.param.conditionedValue(this.props.value, e.value)); - } + }; onChangeParam: ParamOnChange = e => { this.change(e.value); - } + }; render() { const value = this.props.value; @@ -1455,7 +1455,7 @@ export class ConvertedControl extends React.PureComponent<ParamProps<PD.Converte param: this.props.param, value: this.props.param.toValue(e.value) }); - } + }; render() { const value = this.props.param.fromValue(this.props.value); @@ -1472,14 +1472,14 @@ export class ScriptControl extends SimpleParam<PD.Script> { if (value !== this.props.value.expression) { this.update({ language: this.props.value.language, expression: value }); } - } + }; onKeyPress = (e: React.KeyboardEvent<HTMLInputElement>) => { if ((e.keyCode === 13 || e.charCode === 13 || e.key === 'Enter')) { if (this.props.onEnter) this.props.onEnter(); } e.stopPropagation(); - } + }; renderControl() { // TODO: improve! diff --git a/src/mol-plugin-ui/controls/slider.tsx b/src/mol-plugin-ui/controls/slider.tsx index 2dd63afe4f156e0951ad1816c3c1f3cad790b4b4..02c16b34a966c11c7dd748b7c2b4df86a24d392e 100644 --- a/src/mol-plugin-ui/controls/slider.tsx +++ b/src/mol-plugin-ui/controls/slider.tsx @@ -20,7 +20,7 @@ export class Slider extends React.Component<{ onEnter?: () => void }, { isChanging: boolean, current: number }> { - state = { isChanging: false, current: 0 } + state = { isChanging: false, current: 0 }; static getDerivedStateFromProps(props: { value: number }, state: { isChanging: boolean, current: number }) { if (state.isChanging || props.value === state.current) return null; @@ -29,17 +29,17 @@ export class Slider extends React.Component<{ begin = () => { this.setState({ isChanging: true }); - } + }; end = (v: number) => { this.setState({ isChanging: false }); this.props.onChange(v); - } + }; updateCurrent = (current: number) => { this.setState({ current }); this.props.onChangeImmediate?.(current); - } + }; updateManually = (v: number) => { this.setState({ isChanging: true }); @@ -50,12 +50,12 @@ export class Slider extends React.Component<{ if (n > this.props.max) n = this.props.max; this.setState({ current: n, isChanging: true }); - } + }; onManualBlur = () => { this.setState({ isChanging: false }); this.props.onChange(this.state.current); - } + }; render() { let step = this.props.step; @@ -85,7 +85,7 @@ export class Slider2 extends React.Component<{ onEnter?: () => void }, { isChanging: boolean, current: [number, number] }> { - state = { isChanging: false, current: [0, 1] as [number, number] } + state = { isChanging: false, current: [0, 1] as [number, number] }; static getDerivedStateFromProps(props: { value: [number, number] }, state: { isChanging: boolean, current: [number, number] }) { if (state.isChanging || (props.value[0] === state.current[0] && props.value[1] === state.current[1])) return null; @@ -94,16 +94,16 @@ export class Slider2 extends React.Component<{ begin = () => { this.setState({ isChanging: true }); - } + }; end = (v: [number, number]) => { this.setState({ isChanging: false }); this.props.onChange(v); - } + }; updateCurrent = (current: [number, number]) => { this.setState({ current }); - } + }; updateMax = (v: number) => { let n = v; @@ -112,7 +112,7 @@ export class Slider2 extends React.Component<{ else if (n < this.props.min) n = this.props.min; if (n > this.props.max) n = this.props.max; this.props.onChange([this.state.current[0], n]); - } + }; updateMin = (v: number) => { let n = v; @@ -121,7 +121,7 @@ export class Slider2 extends React.Component<{ if (n > this.state.current[1]) n = this.state.current[1]; else if (n > this.props.max) n = this.props.max; this.props.onChange([n, this.state.current[1]]); - } + }; render() { let step = this.props.step; @@ -371,7 +371,7 @@ export class SliderBase extends React.Component<SliderBaseProps, SliderBaseState this.onStart(position); this.addDocumentEvents('mouse'); pauseEvent(e); - } + }; onMouseMove(e: MouseEvent) { const position = getMousePosition(this.props.vertical!, e); @@ -462,7 +462,7 @@ export class SliderBase extends React.Component<SliderBaseProps, SliderBaseState const position = getTouchPosition(this.props.vertical!, e); this.onMove(e, position - this.dragOffset); - } + }; onTouchStart = (e: TouchEvent) => { if (isNotTouchEvent(e)) return; @@ -478,7 +478,7 @@ export class SliderBase extends React.Component<SliderBaseProps, SliderBaseState this.onStart(position); this.addDocumentEvents('touch'); pauseEvent(e); - } + }; /** * Returns an array of possible slider points, taking into account both @@ -536,7 +536,7 @@ export class SliderBase extends React.Component<SliderBaseProps, SliderBaseState 'touchend': (e: TouchEvent) => this.end('touch'), 'mousemove': (e: MouseEvent) => this.onMouseMove(e), 'mouseup': (e: MouseEvent) => this.end('mouse'), - } + }; addDocumentEvents(type: 'touch' | 'mouse') { if (type === 'touch') { @@ -552,7 +552,7 @@ export class SliderBase extends React.Component<SliderBaseProps, SliderBaseState const { min, max } = this.props; const ratio = (value - min) / (max - min); return ratio * 100; - } + }; calcValue(offset: number) { const { vertical, min, max } = this.props; diff --git a/src/mol-plugin-ui/left-panel.tsx b/src/mol-plugin-ui/left-panel.tsx index 9498ccbe956779be3d7c92f57fdb770bc5419fc9..c492c1317b507ffde334980bd564a371629126eb 100644 --- a/src/mol-plugin-ui/left-panel.tsx +++ b/src/mol-plugin-ui/left-panel.tsx @@ -47,7 +47,7 @@ export class LeftPanelControls extends PluginUIComponent<{}, { tab: LeftPanelTab if (this.plugin.layout.state.regionState.left !== 'full') { PluginCommands.Layout.Update(this.plugin, { state: { regionState: { ...this.plugin.layout.state.regionState, left: 'full' } } }); } - } + }; tabs: { [K in LeftPanelTabName]: JSX.Element } = { 'none': <></>, @@ -69,7 +69,7 @@ export class LeftPanelControls extends PluginUIComponent<{}, { tab: LeftPanelTab <SectionHeader icon={HelpOutlineSvg} title='Help' /> <HelpContent /> </> - } + }; render() { const tab = this.state.tab; @@ -119,7 +119,7 @@ class DataIcon extends PluginUIComponent<{ set: (tab: LeftPanelTabName) => void class FullSettings extends PluginUIComponent { private setSettings = (p: { param: PD.Base<any>, name: string, value: any }) => { PluginCommands.Canvas3D.SetSettings(this.plugin, { settings: { [p.name]: p.value } }); - } + }; componentDidMount() { this.subscribe(this.plugin.events.canvas3d.settingsUpdated, () => this.forceUpdate()); @@ -158,7 +158,7 @@ class RemoveAllButton extends PluginUIComponent<{ }> { remove = (e: React.MouseEvent<HTMLElement>) => { e.preventDefault(); PluginCommands.State.RemoveObject(this.plugin, { state: this.plugin.state.data, ref: StateTransform.RootRef }); - } + }; render() { const count = this.plugin.state.data.tree.children.get(StateTransform.RootRef).size; diff --git a/src/mol-plugin-ui/plugin.tsx b/src/mol-plugin-ui/plugin.tsx index b94f06a08f5029eda53423f6829aa4f2a7fe9fa1..939ffdb1f98ae626cf7c2e60c89bd2426ddbec0f 100644 --- a/src/mol-plugin-ui/plugin.tsx +++ b/src/mol-plugin-ui/plugin.tsx @@ -135,11 +135,11 @@ class Layout extends PluginUIComponent { visuals: true })); } - } + }; onDragOver = (ev: React.DragEvent<HTMLDivElement>) => { ev.preventDefault(); - } + }; private showDragOverlay = new BehaviorSubject(false); onDragEnter = () => this.showDragOverlay.next(true); diff --git a/src/mol-plugin-ui/sequence.tsx b/src/mol-plugin-ui/sequence.tsx index 44316caf7717d7c5cba6e9942b97cde8a4d2e8f5..3807eb073bce3679b54087076348f7b6c1db0e23 100644 --- a/src/mol-plugin-ui/sequence.tsx +++ b/src/mol-plugin-ui/sequence.tsx @@ -219,7 +219,7 @@ type SequenceViewState = { } export class SequenceView extends PluginUIComponent<{ defaultMode?: SequenceViewMode }, SequenceViewState> { - state: SequenceViewState = { structureOptions: { options: [], all: [] }, structure: Structure.Empty, structureRef: '', modelEntityId: '', chainGroupId: -1, operatorKey: '', mode: 'single' } + state: SequenceViewState = { structureOptions: { options: [], all: [] }, structure: Structure.Empty, structureRef: '', modelEntityId: '', chainGroupId: -1, operatorKey: '', mode: 'single' }; componentDidMount() { if (this.plugin.state.data.select(StateSelection.Generators.rootsOfType(PSO.Molecule.Structure)).length > 0) this.setState(this.getInitialState()); @@ -358,7 +358,7 @@ export class SequenceView extends PluginUIComponent<{ defaultMode?: SequenceView break; } this.setState(state); - } + }; render() { if (this.getStructure(this.state.structureRef) === Structure.Empty) { diff --git a/src/mol-plugin-ui/sequence/chain.ts b/src/mol-plugin-ui/sequence/chain.ts index 34508c231f4a3b4cc2b6d3084e561a63eeee7ce4..ee4f4fcc0eb7ca2233396f98fab9f02526042f57 100644 --- a/src/mol-plugin-ui/sequence/chain.ts +++ b/src/mol-plugin-ui/sequence/chain.ts @@ -12,9 +12,9 @@ import { ColorNames } from '../../mol-util/color/names'; import { MarkerAction, applyMarkerAction } from '../../mol-util/marker-action'; export class ChainSequenceWrapper extends SequenceWrapper<StructureUnit> { - private label: string - private unitIndices: Map<number, Interval<StructureElement.UnitIndex>> - private loci: StructureElement.Loci + private label: string; + private unitIndices: Map<number, Interval<StructureElement.UnitIndex>>; + private loci: StructureElement.Loci; residueLabel(seqIdx: number) { return this.label; diff --git a/src/mol-plugin-ui/sequence/element.ts b/src/mol-plugin-ui/sequence/element.ts index 18d3ce5ba198256c9f07e82aab7c1f35d608fb69..0f43c45d52288b4278a0db8f1008c90f121cdb86 100644 --- a/src/mol-plugin-ui/sequence/element.ts +++ b/src/mol-plugin-ui/sequence/element.ts @@ -12,7 +12,7 @@ import { ColorNames } from '../../mol-util/color/names'; import { MarkerAction, applyMarkerAction } from '../../mol-util/marker-action'; export class ElementSequenceWrapper extends SequenceWrapper<StructureUnit> { - private unitIndices: Map<number, Interval<StructureElement.UnitIndex>> + private unitIndices: Map<number, Interval<StructureElement.UnitIndex>>; residueLabel(seqIdx: number) { return 'X'; diff --git a/src/mol-plugin-ui/sequence/hetero.ts b/src/mol-plugin-ui/sequence/hetero.ts index 1265a4963702b88be5383a2cce482d8dab29deda..8f5518cb204374c60b8fd31304004a5a9a9365cf 100644 --- a/src/mol-plugin-ui/sequence/hetero.ts +++ b/src/mol-plugin-ui/sequence/hetero.ts @@ -12,11 +12,11 @@ import { ColorNames } from '../../mol-util/color/names'; import { MarkerAction, applyMarkerAction } from '../../mol-util/marker-action'; export class HeteroSequenceWrapper extends SequenceWrapper<StructureUnit> { - private readonly unitMap: Map<number, Unit> - private readonly sequence: string[] - private readonly sequenceIndices: Map<ResidueIndex, number> - private readonly residueIndices: Map<number, ResidueIndex> - private readonly seqToUnit: Map<number, Unit> + private readonly unitMap: Map<number, Unit>; + private readonly sequence: string[]; + private readonly sequenceIndices: Map<ResidueIndex, number>; + private readonly residueIndices: Map<number, ResidueIndex>; + private readonly seqToUnit: Map<number, Unit>; residueLabel(seqIdx: number) { return this.sequence[seqIdx]; diff --git a/src/mol-plugin-ui/sequence/polymer.ts b/src/mol-plugin-ui/sequence/polymer.ts index 051c49659c56ec03da0286e6dbace662c893dace..afbb53112469134582f780aff9d0d20a814fc3a6 100644 --- a/src/mol-plugin-ui/sequence/polymer.ts +++ b/src/mol-plugin-ui/sequence/polymer.ts @@ -14,13 +14,13 @@ import { ColorNames } from '../../mol-util/color/names'; import { MarkerAction, applyMarkerAction, applyMarkerActionAtPosition } from '../../mol-util/marker-action'; export class PolymerSequenceWrapper extends SequenceWrapper<StructureUnit> { - private readonly unitMap: Map<number, Unit> - private readonly sequence: Sequence - private readonly missing: MissingResidues - private readonly observed: OrderedSet // sequences indices + private readonly unitMap: Map<number, Unit>; + private readonly sequence: Sequence; + private readonly missing: MissingResidues; + private readonly observed: OrderedSet; // sequences indices - private readonly modelNum: number - private readonly asymId: string + private readonly modelNum: number; + private readonly asymId: string; private seqId(seqIdx: number) { return this.sequence.seqId.value(seqIdx); diff --git a/src/mol-plugin-ui/sequence/sequence.tsx b/src/mol-plugin-ui/sequence/sequence.tsx index bea9c49754924dc736f196a689dc6834f5fe8767..7628f46ea8e7cdc37aa100ef272745e844b5d8be 100644 --- a/src/mol-plugin-ui/sequence/sequence.tsx +++ b/src/mol-plugin-ui/sequence/sequence.tsx @@ -34,12 +34,12 @@ export class Sequence<P extends SequenceProps> extends PluginUIComponent<P> { private lociHighlightProvider = (loci: Representation.Loci, action: MarkerAction) => { const changed = this.props.sequenceWrapper.markResidue(loci.loci, action); if (changed) this.updateMarker(); - } + }; private lociSelectionProvider = (loci: Representation.Loci, action: MarkerAction) => { const changed = this.props.sequenceWrapper.markResidue(loci.loci, action); if (changed) this.updateMarker(); - } + }; private get sequenceNumberPeriod() { if (this.props.sequenceNumberPeriod !== undefined) { @@ -104,9 +104,9 @@ export class Sequence<P extends SequenceProps> extends PluginUIComponent<P> { contextMenu = (e: React.MouseEvent) => { e.preventDefault(); - } + }; - private mouseDownLoci: StructureElement.Loci | undefined = undefined + private mouseDownLoci: StructureElement.Loci | undefined = undefined; mouseDown = (e: React.MouseEvent) => { e.stopPropagation(); @@ -119,7 +119,7 @@ export class Sequence<P extends SequenceProps> extends PluginUIComponent<P> { this.click(loci, buttons, button, modifiers); this.mouseDownLoci = loci; - } + }; mouseUp = (e: React.MouseEvent) => { e.stopPropagation(); @@ -148,7 +148,7 @@ export class Sequence<P extends SequenceProps> extends PluginUIComponent<P> { this.click(StructureElement.Loci.subtract(range, this.mouseDownLoci), buttons, button, modifiers); } this.mouseDownLoci = undefined; - } + }; private getBackgroundColor(marker: number) { // TODO: make marker color configurable @@ -262,7 +262,7 @@ export class Sequence<P extends SequenceProps> extends PluginUIComponent<P> { this.highlightQueue.next({ seqIdx, buttons, button, modifiers }); } } - } + }; mouseLeave = (e: React.MouseEvent) => { e.stopPropagation(); @@ -274,7 +274,7 @@ export class Sequence<P extends SequenceProps> extends PluginUIComponent<P> { const button = getButton(e.nativeEvent); const modifiers = getModifiers(e.nativeEvent); this.highlightQueue.next({ seqIdx: -1, buttons, button, modifiers }); - } + }; render() { const sw = this.props.sequenceWrapper; diff --git a/src/mol-plugin-ui/state/animation.tsx b/src/mol-plugin-ui/state/animation.tsx index bba0100f4cb380d3d8d1b665a34a91a13295339a..42d8013c19b59fd16c5e7212155fe18c5ecc6ad9 100644 --- a/src/mol-plugin-ui/state/animation.tsx +++ b/src/mol-plugin-ui/state/animation.tsx @@ -16,11 +16,11 @@ export class AnimationControls extends PluginUIComponent<{ onStart?: () => void updateParams: ParamOnChange = p => { this.plugin.managers.animation.updateParams({ [p.name]: p.value }); - } + }; updateCurrentParams: ParamOnChange = p => { this.plugin.managers.animation.updateCurrentParams({ [p.name]: p.value }); - } + }; startOrStop = () => { const anim = this.plugin.managers.animation; @@ -29,7 +29,7 @@ export class AnimationControls extends PluginUIComponent<{ onStart?: () => void if (this.props.onStart) this.props.onStart(); anim.start(); } - } + }; render() { const anim = this.plugin.managers.animation; diff --git a/src/mol-plugin-ui/state/common.tsx b/src/mol-plugin-ui/state/common.tsx index 1de8a23d01ed981d73e7337c3eafec343ab098dd..4e7183bc7f13c60b0b2c30a9de076fae178fc2f0 100644 --- a/src/mol-plugin-ui/state/common.tsx +++ b/src/mol-plugin-ui/state/common.tsx @@ -129,7 +129,7 @@ abstract class TransformControlBase<P, S extends TransformControlBase.ComponentS private onEnter = () => { if (this.state.error) return; this.apply(); - } + }; private autoApplyHandle: number | undefined = void 0; private clearAutoApply() { @@ -150,7 +150,7 @@ abstract class TransformControlBase<P, S extends TransformControlBase.ComponentS } }); } - } + }; apply = async () => { this.clearAutoApply(); @@ -164,7 +164,7 @@ abstract class TransformControlBase<P, S extends TransformControlBase.ComponentS this.props.onApply?.(); this.busy.next(false); } - } + }; componentDidMount() { this.subscribe(this.plugin.behaviors.state.isBusy, b => { @@ -177,17 +177,17 @@ abstract class TransformControlBase<P, S extends TransformControlBase.ComponentS refresh = () => { this.setState({ params: this.getInfo().initialValues, isInitial: true, error: void 0 }); - } + }; setDefault = () => { const info = this.getInfo(); const params = PD.getDefaultValues(info.params); this.setState({ params, isInitial: PD.areEqual(info.params, params, info.initialValues), error: void 0 }); - } + }; toggleExpanded = () => { this.setState({ isCollapsed: !this.state.isCollapsed }); - } + }; renderApply() { const canApply = this.canApply(); diff --git a/src/mol-plugin-ui/state/snapshots.tsx b/src/mol-plugin-ui/state/snapshots.tsx index 296b8cb40a1aa28122c8c251bcaa6db7c369187f..540c17a8df5527c79d825881870ca22c8d8a019a 100644 --- a/src/mol-plugin-ui/state/snapshots.tsx +++ b/src/mol-plugin-ui/state/snapshots.tsx @@ -45,12 +45,12 @@ export class StateExportImportControls extends PluginUIComponent<{ onAction?: () downloadToFileJson = () => { this.props.onAction?.(); PluginCommands.State.Snapshots.DownloadToFile(this.plugin, { type: 'json' }); - } + }; downloadToFileZip = () => { this.props.onAction?.(); PluginCommands.State.Snapshots.DownloadToFile(this.plugin, { type: 'zip' }); - } + }; open = (e: React.ChangeEvent<HTMLInputElement>) => { if (!e.target.files || !e.target.files[0]) { @@ -60,7 +60,7 @@ export class StateExportImportControls extends PluginUIComponent<{ onAction?: () this.props.onAction?.(); PluginCommands.State.Snapshots.OpenFile(this.plugin, { file: e.target.files[0] }); - } + }; render() { return <> @@ -107,13 +107,13 @@ export class LocalStateSnapshots extends PluginUIComponent< name: this.state.params.name, description: this.state.params.description }); - } + }; updateParams = (params: PD.Values<typeof LocalStateSnapshots.Params>) => this.setState({ params }); clear = () => { PluginCommands.State.Snapshots.Clear(this.plugin, {}); - } + }; shouldComponentUpdate(nextProps: any, nextState: any) { return !shallowEqualObjects(this.props, nextProps) || !shallowEqualObjects(this.state, nextState); @@ -139,31 +139,31 @@ export class LocalStateSnapshotList extends PluginUIComponent<{}, {}> { const id = e.currentTarget.getAttribute('data-id'); if (!id) return; PluginCommands.State.Snapshots.Apply(this.plugin, { id }); - } + }; remove = (e: React.MouseEvent<HTMLElement>) => { const id = e.currentTarget.getAttribute('data-id'); if (!id) return; PluginCommands.State.Snapshots.Remove(this.plugin, { id }); - } + }; moveUp = (e: React.MouseEvent<HTMLElement>) => { const id = e.currentTarget.getAttribute('data-id'); if (!id) return; PluginCommands.State.Snapshots.Move(this.plugin, { id, dir: -1 }); - } + }; moveDown = (e: React.MouseEvent<HTMLElement>) => { const id = e.currentTarget.getAttribute('data-id'); if (!id) return; PluginCommands.State.Snapshots.Move(this.plugin, { id, dir: 1 }); - } + }; replace = (e: React.MouseEvent<HTMLElement>) => { const id = e.currentTarget.getAttribute('data-id'); if (!id) return; PluginCommands.State.Snapshots.Replace(this.plugin, { id }); - } + }; render() { const current = this.plugin.managers.snapshot.state.current; @@ -250,7 +250,7 @@ export class RemoteStateSnapshots extends PluginUIComponent< this.plugin.log.error('Error fetching remote snapshots'); if (this._mounted) this.setState({ entries: OrderedMap(), isBusy: false }); } - } + }; upload = async () => { this.setState({ isBusy: true }); @@ -269,7 +269,7 @@ export class RemoteStateSnapshots extends PluginUIComponent< this.setState({ isBusy: false }); this.refresh(); } - } + }; fetch = async (e: React.MouseEvent<HTMLElement>) => { @@ -284,7 +284,7 @@ export class RemoteStateSnapshots extends PluginUIComponent< } finally { if (this._mounted) this.setState({ isBusy: false }); } - } + }; remove = async (e: React.MouseEvent<HTMLElement>) => { const id = e.currentTarget.getAttribute('data-id'); @@ -298,7 +298,7 @@ export class RemoteStateSnapshots extends PluginUIComponent< } catch (e) { console.error(e); } - } + }; render() { return <> @@ -345,7 +345,7 @@ class RemoteStateSnapshotList extends PurePluginUIComponent< if (qi > 0) url = url.substr(0, qi); window.open(`${url}?snapshot-url=${encodeURIComponent(entry.url)}`, '_blank'); - } + }; render() { return <ul style={{ listStyle: 'none', marginTop: '10px' }} className='msp-state-list'> diff --git a/src/mol-plugin-ui/state/tree.tsx b/src/mol-plugin-ui/state/tree.tsx index a84d2ebac91c5bbf6b721c8c79fe355dd21388e4..5167efcc525c3a3733e99ddbf3357855c51095b6 100644 --- a/src/mol-plugin-ui/state/tree.tsx +++ b/src/mol-plugin-ui/state/tree.tsx @@ -87,7 +87,7 @@ class StateTreeNode extends PluginUIComponent<{ cell: StateObjectCell, depth: nu isCollapsed: !!this.props.cell.state.isCollapsed, isNull: StateTreeNode.isNull(this.props.cell), showLabel: StateTreeNode.showLabel(this.props.cell) - } + }; static getDerivedStateFromProps(props: _Props<StateTreeNode>, state: _State<StateTreeNode>): _State<StateTreeNode> | null { const isNull = StateTreeNode.isNull(props.cell); @@ -187,7 +187,7 @@ class StateTreeNodeLabel extends PluginUIComponent<{ cell: StateObjectCell, dept isCollapsed: !!this.props.cell.state.isCollapsed, action: void 0, currentAction: void 0 as StateAction | undefined - } + }; static getDerivedStateFromProps(props: _Props<StateTreeNodeLabel>, state: _State<StateTreeNodeLabel>): _State<StateTreeNodeLabel> | null { const isCurrent = props.cell.parent!.current === props.cell.transform.ref; @@ -201,46 +201,46 @@ class StateTreeNodeLabel extends PluginUIComponent<{ cell: StateObjectCell, dept e?.preventDefault(); e?.currentTarget.blur(); PluginCommands.State.SetCurrentObject(this.plugin, { state: this.props.cell.parent!, ref: this.ref }); - } + }; setCurrentRoot = (e?: React.MouseEvent<HTMLElement>) => { e?.preventDefault(); e?.currentTarget.blur(); PluginCommands.State.SetCurrentObject(this.plugin, { state: this.props.cell.parent!, ref: StateTransform.RootRef }); - } + }; remove = (e?: React.MouseEvent<HTMLElement>) => { e?.preventDefault(); PluginCommands.State.RemoveObject(this.plugin, { state: this.props.cell.parent!, ref: this.ref, removeParentGhosts: true }); - } + }; toggleVisible = (e: React.MouseEvent<HTMLElement>) => { e.preventDefault(); PluginCommands.State.ToggleVisibility(this.plugin, { state: this.props.cell.parent!, ref: this.ref }); e.currentTarget.blur(); - } + }; toggleExpanded = (e: React.MouseEvent<HTMLElement>) => { e.preventDefault(); PluginCommands.State.ToggleExpanded(this.plugin, { state: this.props.cell.parent!, ref: this.ref }); e.currentTarget.blur(); - } + }; highlight = (e: React.MouseEvent<HTMLElement>) => { e.preventDefault(); PluginCommands.Interactivity.Object.Highlight(this.plugin, { state: this.props.cell.parent!, ref: this.ref }); e.currentTarget.blur(); - } + }; clearHighlight = (e: React.MouseEvent<HTMLElement>) => { e.preventDefault(); PluginCommands.Interactivity.ClearHighlights(this.plugin); e.currentTarget.blur(); - } + }; hideApply = () => { this.setCurrentRoot(); - } + }; get actions() { const cell = this.props.cell; @@ -258,7 +258,7 @@ class StateTreeNodeLabel extends PluginUIComponent<{ cell: StateObjectCell, dept selectAction: ActionMenu.OnSelect = item => { if (!item) return; (item?.value as any)(); - } + }; updates(margin: string) { const cell = this.props.cell; diff --git a/src/mol-plugin-ui/structure/components.tsx b/src/mol-plugin-ui/structure/components.tsx index 6481f5aeea3afab55fc23e69f9b0bc53fe2541c6..797286a746d2ec8ae5d86c44ef49a12e380f43d2 100644 --- a/src/mol-plugin-ui/structure/components.tsx +++ b/src/mol-plugin-ui/structure/components.tsx @@ -109,12 +109,12 @@ class ComponentEditorControls extends PurePluginUIComponent<{}, ComponentEditorC const { structures } = mng.hierarchy.selection; if (item.value === null) mng.component.clear(structures); else mng.component.applyPreset(structures, item.value as any); - } + }; undo = () => { const task = this.plugin.state.data.undo(); if (task) this.plugin.runTask(task); - } + }; render() { const undoTitle = this.state.canUndo @@ -166,9 +166,9 @@ export class AddComponentControls extends PurePluginUIComponent<AddComponentCont const structures = this.props.forSelection ? this.currentStructures : this.selectedStructures; this.props.onApply(); this.plugin.managers.structure.component.add(this.state.values, structures); - } + }; - paramsChanged = (values: any) => this.setState({ values }) + paramsChanged = (values: any) => this.setState({ values }); render() { return <> @@ -185,7 +185,7 @@ class ComponentOptionsControls extends PurePluginUIComponent<{ isDisabled: boole this.subscribe(this.plugin.managers.structure.component.events.optionsUpdated, () => this.forceUpdate()); } - update = (options: StructureComponentManager.Options) => this.plugin.managers.structure.component.setOptions(options) + update = (options: StructureComponentManager.Options) => this.plugin.managers.structure.component.setOptions(options); render() { return <ParameterControls params={StructureComponentManager.OptionsParams} values={this.plugin.managers.structure.component.state.options} onChangeValues={this.update} isDisabled={this.props.isDisabled} />; @@ -212,7 +212,7 @@ class ComponentListControls extends PurePluginUIComponent { type StructureComponentEntryActions = 'action' | 'label' class StructureComponentGroup extends PurePluginUIComponent<{ group: StructureComponentRef[] }, { action?: StructureComponentEntryActions }> { - state = { action: void 0 as StructureComponentEntryActions | undefined } + state = { action: void 0 as StructureComponentEntryActions | undefined }; get pivot() { return this.props.group[0]; @@ -228,7 +228,7 @@ class StructureComponentGroup extends PurePluginUIComponent<{ group: StructureCo e.preventDefault(); e.currentTarget.blur(); this.plugin.managers.structure.component.toggleVisibility(this.props.group); - } + }; get colorByActions() { const mng = this.plugin.managers.structure.component; @@ -282,7 +282,7 @@ class StructureComponentGroup extends PurePluginUIComponent<{ group: StructureCo if (!item) return; this.setState({ action: void 0 }); (item?.value as any)(); - } + }; remove = () => this.plugin.managers.structure.hierarchy.remove(this.props.group, true); @@ -293,12 +293,12 @@ class StructureComponentGroup extends PurePluginUIComponent<{ group: StructureCo e.preventDefault(); if (!this.props.group[0].cell.parent) return; PluginCommands.Interactivity.Object.Highlight(this.plugin, { state: this.props.group[0].cell.parent!, ref: this.props.group.map(c => c.cell.transform.ref) }); - } + }; clearHighlight = (e: React.MouseEvent<HTMLElement>) => { e.preventDefault(); PluginCommands.Interactivity.ClearHighlights(this.plugin); - } + }; focus = () => { let allHidden = true; @@ -317,7 +317,7 @@ class StructureComponentGroup extends PurePluginUIComponent<{ group: StructureCo if (e.cell.state.isHidden) return; return e.cell.obj?.data.boundary.sphere; }); - } + }; get reprLabel() { // TODO: handle generic reprs. @@ -329,7 +329,7 @@ class StructureComponentGroup extends PurePluginUIComponent<{ group: StructureCo private updateLabel = (v: string) => { this.plugin.managers.structure.component.updateLabel(this.pivot, v); - } + }; render() { const component = this.pivot; @@ -370,7 +370,7 @@ class StructureRepresentationEntry extends PurePluginUIComponent<{ group: Struct e.preventDefault(); e.currentTarget.blur(); this.plugin.managers.structure.component.toggleVisibility(this.props.group, this.props.representation); - } + }; componentDidMount() { this.subscribe(this.plugin.state.events.cell.stateUpdated, e => { diff --git a/src/mol-plugin-ui/structure/focus.tsx b/src/mol-plugin-ui/structure/focus.tsx index 1aa66ec0008c8fc91d8aadcc2aa350ba0070e8e9..18d12d822509eca1e5bdfabf633a02d022e30979 100644 --- a/src/mol-plugin-ui/structure/focus.tsx +++ b/src/mol-plugin-ui/structure/focus.tsx @@ -99,7 +99,7 @@ function getFocusEntries(structure: Structure) { } export class StructureFocusControls extends PluginUIComponent<{}, StructureFocusControlsState> { - state = { isBusy: false, showAction: false } + state = { isBusy: false, showAction: false }; componentDidMount() { this.subscribe(this.plugin.managers.structure.focus.behaviors.current, c => { @@ -185,28 +185,28 @@ export class StructureFocusControls extends PluginUIComponent<{}, StructureFocus this.plugin.managers.structure.focus.set(f); } this.focusCamera(); - } + }; - toggleAction = () => this.setState({ showAction: !this.state.showAction }) + toggleAction = () => this.setState({ showAction: !this.state.showAction }); focusCamera = () => { const { current } = this.plugin.managers.structure.focus; if (current) this.plugin.managers.camera.focusLoci(current.loci); - } + }; clear = () => { this.plugin.managers.structure.focus.clear(); this.plugin.managers.camera.reset(); - } + }; highlightCurrent = () => { const { current } = this.plugin.managers.structure.focus; if (current) this.plugin.managers.interactivity.lociHighlights.highlightOnly({ loci: current.loci }, false); - } + }; clearHighlights = () => { this.plugin.managers.interactivity.lociHighlights.clearHighlights(); - } + }; getToggleBindingLabel() { const t = this.plugin.state.behaviors.transforms.get(FocusLoci.id) as StateTransform<typeof FocusLoci>; diff --git a/src/mol-plugin-ui/structure/generic.tsx b/src/mol-plugin-ui/structure/generic.tsx index dcabaffd96c014b3eda270f14dd0cc68c0d20ba0..828f0b86a0518ff706ce7ef3f4afc576eaee6411 100644 --- a/src/mol-plugin-ui/structure/generic.tsx +++ b/src/mol-plugin-ui/structure/generic.tsx @@ -61,7 +61,7 @@ export class GenericEntryListControls extends PurePluginUIComponent { } export class GenericEntry<T extends StructureHierarchyRef> extends PurePluginUIComponent<{ refs: T[], labelMultiple?: string }, { showOptions: boolean }> { - state = { showOptions: false } + state = { showOptions: false }; componentDidMount() { this.subscribe(this.plugin.state.events.cell.stateUpdated, e => { @@ -75,7 +75,7 @@ export class GenericEntry<T extends StructureHierarchyRef> extends PurePluginUIC e.preventDefault(); this.plugin.managers.structure.hierarchy.toggleVisibility(this.props.refs); e.currentTarget.blur(); - } + }; highlight = (e: React.MouseEvent<HTMLElement>) => { e.preventDefault(); @@ -84,12 +84,12 @@ export class GenericEntry<T extends StructureHierarchyRef> extends PurePluginUIC state: this.pivot.cell.parent, ref: this.props.refs.map(c => c.cell.transform.ref) }); - } + }; clearHighlight = (e: React.MouseEvent<HTMLElement>) => { e.preventDefault(); PluginCommands.Interactivity.ClearHighlights(this.plugin); - } + }; focus = (e: React.MouseEvent<HTMLElement>) => { e.preventDefault(); @@ -116,9 +116,9 @@ export class GenericEntry<T extends StructureHierarchyRef> extends PurePluginUIC if (l) loci.push(l); } this.plugin.managers.camera.focusLoci(loci); - } + }; - toggleOptions = () => this.setState({ showOptions: !this.state.showOptions }) + toggleOptions = () => this.setState({ showOptions: !this.state.showOptions }); render() { const { refs, labelMultiple } = this.props; diff --git a/src/mol-plugin-ui/structure/measurements.tsx b/src/mol-plugin-ui/structure/measurements.tsx index b9a8f08f93c8d8d16ac58500a52326663fcf948c..cd26069728850817262781ff669b27c229f9c573 100644 --- a/src/mol-plugin-ui/structure/measurements.tsx +++ b/src/mol-plugin-ui/structure/measurements.tsx @@ -74,7 +74,7 @@ export class MeasurementList extends PurePluginUIComponent { } export class MeasurementControls extends PurePluginUIComponent<{}, { isBusy: boolean, action?: 'add' | 'options' }> { - state = { isBusy: false, action: void 0 as 'add' | 'options' | undefined } + state = { isBusy: false, action: void 0 as 'add' | 'options' | undefined }; componentDidMount() { this.subscribe(this.selection.events.additionsHistoryUpdated, () => { @@ -121,22 +121,22 @@ export class MeasurementControls extends PurePluginUIComponent<{}, { isBusy: boo measureDistance = () => { const loci = this.plugin.managers.structure.selection.additionsHistory; this.plugin.managers.structure.measurement.addDistance(loci[0].loci, loci[1].loci); - } + }; measureAngle = () => { const loci = this.plugin.managers.structure.selection.additionsHistory; this.plugin.managers.structure.measurement.addAngle(loci[0].loci, loci[1].loci, loci[2].loci); - } + }; measureDihedral = () => { const loci = this.plugin.managers.structure.selection.additionsHistory; this.plugin.managers.structure.measurement.addDihedral(loci[0].loci, loci[1].loci, loci[2].loci, loci[3].loci); - } + }; addLabel = () => { const loci = this.plugin.managers.structure.selection.additionsHistory; this.plugin.managers.structure.measurement.addLabel(loci[0].loci); - } + }; addOrientation = () => { const locis: StructureElement.Loci[] = []; @@ -144,7 +144,7 @@ export class MeasurementControls extends PurePluginUIComponent<{}, { isBusy: boo locis.push(v.selection); }); this.plugin.managers.structure.measurement.addOrientation(locis); - } + }; addPlane = () => { const locis: StructureElement.Loci[] = []; @@ -152,7 +152,7 @@ export class MeasurementControls extends PurePluginUIComponent<{}, { isBusy: boo locis.push(v.selection); }); this.plugin.managers.structure.measurement.addPlane(locis); - } + }; get actions(): ActionMenu.Items { const history = this.selection.additionsHistory; @@ -171,7 +171,7 @@ export class MeasurementControls extends PurePluginUIComponent<{}, { isBusy: boo this.toggleAdd(); if (!item) return; (item?.value as any)(); - } + }; toggleAdd = () => this.setState({ action: this.state.action === 'add' ? void 0 : 'add' }); toggleOptions = () => this.setState({ action: this.state.action === 'options' ? void 0 : 'options' }); @@ -232,7 +232,7 @@ export class MeasurementControls extends PurePluginUIComponent<{}, { isBusy: boo } class MeasurementsOptions extends PurePluginUIComponent<{}, { isDisabled: boolean }> { - state = { isDisabled: false } + state = { isDisabled: false }; componentDidMount() { this.subscribe(this.plugin.managers.structure.measurement.behaviors.state, () => { @@ -246,7 +246,7 @@ class MeasurementsOptions extends PurePluginUIComponent<{}, { isDisabled: boolea changed = (options: StructureMeasurementOptions) => { this.plugin.managers.structure.measurement.setOptions(options); - } + }; render() { const measurements = this.plugin.managers.structure.measurement.state; @@ -258,7 +258,7 @@ class MeasurementsOptions extends PurePluginUIComponent<{}, { isDisabled: boolea } class MeasurementEntry extends PurePluginUIComponent<{ cell: StructureMeasurementCell }, { showUpdate: boolean }> { - state = { showUpdate: false } + state = { showUpdate: false }; componentDidMount() { this.subscribe(this.plugin.state.events.cell.stateUpdated, e => { @@ -278,7 +278,7 @@ class MeasurementEntry extends PurePluginUIComponent<{ cell: StructureMeasuremen e.preventDefault(); PluginCommands.State.ToggleVisibility(this.plugin, { state: this.props.cell.parent!, ref: this.props.cell.transform.parent }); e.currentTarget.blur(); - } + }; highlight = () => { const selections = this.selections; @@ -289,11 +289,11 @@ class MeasurementEntry extends PurePluginUIComponent<{ cell: StructureMeasuremen this.plugin.managers.interactivity.lociHighlights.highlight({ loci }, false); } this.plugin.managers.interactivity.lociHighlights.highlight({ loci: this.props.cell.obj?.data.repr.getLoci()! }, false); - } + }; clearHighlight = () => { this.plugin.managers.interactivity.lociHighlights.clearHighlights(); - } + }; toggleUpdate = () => this.setState({ showUpdate: !this.state.showUpdate }); @@ -305,7 +305,7 @@ class MeasurementEntry extends PurePluginUIComponent<{ cell: StructureMeasuremen if (sphere) { this.plugin.managers.camera.focusSphere(sphere); } - } + }; private get lociArray(): FiniteArray<Loci> { const selections = this.selections; @@ -339,7 +339,7 @@ class MeasurementEntry extends PurePluginUIComponent<{ cell: StructureMeasuremen if (!item) return; this.setState({ showUpdate: false }); (item?.value as any)(); - } + }; render() { const { cell } = this.props; diff --git a/src/mol-plugin-ui/structure/selection.tsx b/src/mol-plugin-ui/structure/selection.tsx index 8596ea83ace638c481e2640a2c70d9783063ebd0..02cab6bb0f14015111b5b336dbae38d01af53851 100644 --- a/src/mol-plugin-ui/structure/selection.tsx +++ b/src/mol-plugin-ui/structure/selection.tsx @@ -35,7 +35,7 @@ export class ToggleSelectionModeButton extends PurePluginUIComponent<{ inline?: _toggleSelMode = () => { this.plugin.selectionMode = !this.plugin.selectionMode; - } + }; render() { const style = this.props.inline @@ -75,7 +75,7 @@ export class StructureSelectionActionsControls extends PluginUIComponent<{}, Str isEmpty: true, isBusy: false, canUndo: false, - } + }; componentDidMount() { this.subscribe(this.plugin.managers.structure.hierarchy.behaviors.selection, c => { @@ -107,7 +107,7 @@ export class StructureSelectionActionsControls extends PluginUIComponent<{}, Str set = (modifier: StructureSelectionModifier, selectionQuery: StructureSelectionQuery) => { this.plugin.managers.structure.selection.fromSelectionQuery(modifier, selectionQuery, false); - } + }; selectQuery: ActionMenu.OnSelect = (item, e) => { if (!item || !this.state.action) { @@ -122,7 +122,7 @@ export class StructureSelectionActionsControls extends PluginUIComponent<{}, Str this.set(q, item.value as StructureSelectionQuery); }); } - } + }; selectHelper: ActionMenu.OnSelect = (item, e) => { console.log(item); @@ -131,7 +131,7 @@ export class StructureSelectionActionsControls extends PluginUIComponent<{}, Str return; } this.setState({ helper: (item.value as { kind: SelectionHelperType }).kind }); - } + }; get structures() { const structures: Structure[] = []; @@ -142,8 +142,8 @@ export class StructureSelectionActionsControls extends PluginUIComponent<{}, Str return structures; } - private queriesItems: ActionMenu.Items[] = [] - private queriesVersion = -1 + private queriesItems: ActionMenu.Items[] = []; + private queriesVersion = -1; get queries() { const { registry } = this.plugin.query.structure; if (registry.version !== this.queriesVersion) { @@ -186,24 +186,24 @@ export class StructureSelectionActionsControls extends PluginUIComponent<{}, Str return () => this.setState({ action: this.state.action === q ? void 0 : q, helper: void 0 }); } - toggleAdd = this.showAction('add') - toggleRemove = this.showAction('remove') - toggleIntersect = this.showAction('intersect') - toggleSet = this.showAction('set') - toggleTheme = this.showAction('theme') - toggleAddComponent = this.showAction('add-component') - toggleHelp = this.showAction('help') + toggleAdd = this.showAction('add'); + toggleRemove = this.showAction('remove'); + toggleIntersect = this.showAction('intersect'); + toggleSet = this.showAction('set'); + toggleTheme = this.showAction('theme'); + toggleAddComponent = this.showAction('add-component'); + toggleHelp = this.showAction('help'); setGranuality: ParamOnChange = ({ value }) => { this.plugin.managers.interactivity.setProps({ granularity: value }); - } + }; turnOff = () => this.plugin.selectionMode = false; undo = () => { const task = this.plugin.state.data.undo(); if (task) this.plugin.runTask(task); - } + }; subtract = () => { const sel = this.plugin.managers.structure.hierarchy.getStructuresWithSelection(); @@ -211,7 +211,7 @@ export class StructureSelectionActionsControls extends PluginUIComponent<{}, Str for (const s of sel) components.push(...s.components); if (components.length === 0) return; this.plugin.managers.structure.component.modifyByCurrentSelection(components, 'subtract'); - } + }; render() { const granularity = this.plugin.managers.interactivity.props.granularity; @@ -283,7 +283,7 @@ export class StructureSelectionStatsControls extends PluginUIComponent<{ hideOnE state = { isEmpty: true, isBusy: false - } + }; componentDidMount() { this.subscribe(this.plugin.managers.structure.selection.events.changed, () => { @@ -321,18 +321,18 @@ export class StructureSelectionStatsControls extends PluginUIComponent<{ hideOnE if (this.plugin.managers.structure.selection.stats.elementCount === 0) return; const { sphere } = this.plugin.managers.structure.selection.getBoundary(); this.plugin.managers.camera.focusSphere(sphere); - } + }; highlight = (e: React.MouseEvent<HTMLElement>) => { this.plugin.managers.interactivity.lociHighlights.clearHighlights(); this.plugin.managers.structure.selection.entries.forEach(e => { this.plugin.managers.interactivity.lociHighlights.highlight({ loci: e.selection }, false); }); - } + }; clearHighlight = () => { this.plugin.managers.interactivity.lociHighlights.clearHighlights(); - } + }; render() { const stats = this.plugin.managers.structure.selection.stats; @@ -369,9 +369,9 @@ class ApplyThemeControls extends PurePluginUIComponent<ApplyThemeControlsProps, apply = () => { this.plugin.managers.structure.component.applyTheme(this.state.values, this.plugin.managers.structure.hierarchy.current.structures); this.props.onApply?.(); - } + }; - paramsChanged = (values: any) => this.setState({ values }) + paramsChanged = (values: any) => this.setState({ values }); render() { return <> diff --git a/src/mol-plugin-ui/structure/source.tsx b/src/mol-plugin-ui/structure/source.tsx index 1a41d4448da85ab4cffbf575c8e610e4116ede67..4a770278b9741aae6f8f6687a96187c5bd50f250 100644 --- a/src/mol-plugin-ui/structure/source.tsx +++ b/src/mol-plugin-ui/structure/source.tsx @@ -66,12 +66,12 @@ export class StructureSourceControls extends CollapsableControls<{}, StructureSo } const item: ActionMenu.Item = { kind: 'item', label: label || ref.kind, selected: selected.has(ref.cell.transform.ref), value: [ref] }; return item; - } + }; getTrajectoryItems = (t: TrajectoryRef): ActionMenu.Items => { if (t.models.length === 0) return this.item(t); return [ActionMenu.Header(t.cell.obj?.label!), ...t.models.map(this.getModelItems)]; - } + }; private getModelItems = (m: ModelRef): ActionMenu.Items => { if (m.structures.length === 0) return this.item(m); @@ -81,7 +81,7 @@ export class StructureSourceControls extends CollapsableControls<{}, StructureSo return { label: `${m.cell.obj?.label} | ${ref.cell.obj?.label}`, selected: selected.has(ref.cell.transform.ref), value: [m, ref] } as ActionMenu.Item; } return [ActionMenu.Header(m.cell.obj?.label!), ...m.structures.map(this.item)]; - } + }; get hierarchyItems() { const mng = this.plugin.managers.structure.hierarchy; @@ -186,7 +186,7 @@ export class StructureSourceControls extends CollapsableControls<{}, StructureSo } this.plugin.managers.structure.hierarchy.updateCurrent(refs, items[0].selected ? 'remove' : 'add'); - } + }; toggleHierarchy = () => this.setState({ show: this.state.show !== 'hierarchy' ? 'hierarchy' : void 0 }); togglePreset = () => this.setState({ show: this.state.show !== 'presets' ? 'presets' : void 0 }); @@ -226,7 +226,7 @@ export class StructureSourceControls extends CollapsableControls<{}, StructureSo const { trajectories } = mng.hierarchy.selection; mng.hierarchy.applyPreset(trajectories, item.value as any); - } + }; private updateModelQueueParams: any = void 0; private isUpdatingModel = false; @@ -269,7 +269,7 @@ export class StructureSourceControls extends CollapsableControls<{}, StructureSo const { selection } = this.plugin.managers.structure.hierarchy; const s = selection.structures[0]; return this.plugin.managers.structure.hierarchy.updateStructure(s, params); - } + }; get structureType() { const { selection } = this.plugin.managers.structure.hierarchy; diff --git a/src/mol-plugin-ui/structure/superposition.tsx b/src/mol-plugin-ui/structure/superposition.tsx index 32f49650d8923b0383efc3fcbc6b10ae44a42669..eb9818c5b7a6838d1c9acf86b6b665c023a900fc 100644 --- a/src/mol-plugin-ui/structure/superposition.tsx +++ b/src/mol-plugin-ui/structure/superposition.tsx @@ -78,7 +78,7 @@ export class SuperpositionControls extends PurePluginUIComponent<{ }, Superposit canUseDb: false, action: undefined, options: DefaultStructureSuperpositionOptions - } + }; componentDidMount() { this.subscribe(this.selection.events.changed, () => { @@ -148,7 +148,7 @@ export class SuperpositionControls extends PurePluginUIComponent<{ }, Superposit const labelB = stripTags(eB.label); this.plugin.log.info(`Superposed [${labelA}] and [${labelB}] with RMSD ${rmsd.toFixed(2)}.`); } - } + }; superposeAtoms = async () => { const entries = this.atomEntries; @@ -171,7 +171,7 @@ export class SuperpositionControls extends PurePluginUIComponent<{ }, Superposit const count = entries[i].atoms.length; this.plugin.log.info(`Superposed ${count} ${count === 1 ? 'atom' : 'atoms'} of [${labelA}] and [${labelB}] with RMSD ${rmsd.toFixed(2)}.`); } - } + }; superposeDb = async () => { const input = this.plugin.managers.structure.hierarchy.behaviors.selection.value.structures; @@ -331,7 +331,7 @@ export class SuperpositionControls extends PurePluginUIComponent<{ }, Superposit private setOptions = (values: StructureSuperpositionOptions) => { this.setState({ options: values }); - } + }; render() { return <> diff --git a/src/mol-plugin-ui/structure/volume.tsx b/src/mol-plugin-ui/structure/volume.tsx index 94368e4d14c297c26accf3bfd5debd6110e8acf8..53eb289be6bb2106fbaf6e0882dc562e3be69787 100644 --- a/src/mol-plugin-ui/structure/volume.tsx +++ b/src/mol-plugin-ui/structure/volume.tsx @@ -142,7 +142,7 @@ export class VolumeSourceControls extends CollapsableControls<{}, VolumeSourceCo value: ref }; return item; - } + }; get hierarchyItems() { const mng = this.plugin.managers.volume.hierarchy; @@ -195,7 +195,7 @@ export class VolumeSourceControls extends CollapsableControls<{}, VolumeSourceCo } else { this.lazyLoad(current.cell); } - } + }; private async lazyLoad(cell: StateObjectCell<PluginStateObject.Volume.Lazy>) { const { url, isBinary, format, entryId, isovalues } = cell.obj!.data; @@ -235,7 +235,7 @@ export class VolumeSourceControls extends CollapsableControls<{}, VolumeSourceCo if (!item) return; this.setState({ show: void 0 }); (item.value as any)(); - } + }; toggleHierarchy = () => this.setState({ show: this.state.show !== 'hierarchy' ? 'hierarchy' : void 0 }); toggleAddRepr = () => this.setState({ show: this.state.show !== 'add-repr' ? 'add-repr' : void 0 }); @@ -263,7 +263,7 @@ export class VolumeSourceControls extends CollapsableControls<{}, VolumeSourceCo type VolumeRepresentationEntryActions = 'update' class VolumeRepresentationControls extends PurePluginUIComponent<{ representation: VolumeRepresentationRef }, { action?: VolumeRepresentationEntryActions }> { - state = { action: void 0 as VolumeRepresentationEntryActions | undefined } + state = { action: void 0 as VolumeRepresentationEntryActions | undefined }; componentDidMount() { this.subscribe(this.plugin.state.events.cell.stateUpdated, e => { @@ -277,7 +277,7 @@ class VolumeRepresentationControls extends PurePluginUIComponent<{ representatio e.preventDefault(); e.currentTarget.blur(); this.plugin.managers.volume.hierarchy.toggleVisibility([this.props.representation]); - } + }; toggleUpdate = () => this.setState({ action: this.state.action === 'update' ? void 0 : 'update' }); @@ -285,19 +285,19 @@ class VolumeRepresentationControls extends PurePluginUIComponent<{ representatio e.preventDefault(); if (!this.props.representation.cell.parent) return; PluginCommands.Interactivity.Object.Highlight(this.plugin, { state: this.props.representation.cell.parent!, ref: this.props.representation.cell.transform.ref }); - } + }; clearHighlight = (e: React.MouseEvent<HTMLElement>) => { e.preventDefault(); PluginCommands.Interactivity.ClearHighlights(this.plugin); - } + }; focus = () => { const repr = this.props.representation; const objects = this.props.representation.cell.obj?.data.repr.renderObjects; if (repr.cell.state.isHidden) this.plugin.managers.volume.hierarchy.toggleVisibility([this.props.representation], 'show'); this.plugin.managers.camera.focusRenderObjects(objects, { extraRadius: 1 }); - } + }; render() { const repr = this.props.representation.cell; diff --git a/src/mol-plugin-ui/task.tsx b/src/mol-plugin-ui/task.tsx index a67cef5dd1da992579b6d3de7768bb32741acc69..4f3cfb7bb7f8ab28476621836f2d7a956693d966 100644 --- a/src/mol-plugin-ui/task.tsx +++ b/src/mol-plugin-ui/task.tsx @@ -35,7 +35,7 @@ export class BackgroundTaskProgress extends PluginUIComponent<{ }, { tracked: Or class ProgressEntry extends PluginUIComponent<{ event: TaskManager.ProgressEvent }> { abort = () => { this.plugin.managers.task.requestAbort(this.props.event.progress.root.progress.taskId, 'User Request'); - } + }; render() { const root = this.props.event.progress.root; diff --git a/src/mol-plugin-ui/viewport.tsx b/src/mol-plugin-ui/viewport.tsx index 3fe2974b10e5a0213d87f853827ff7174bd7e11e..6d0c45df7796b782868ff32292dacb549def7b38 100644 --- a/src/mol-plugin-ui/viewport.tsx +++ b/src/mol-plugin-ui/viewport.tsx @@ -35,7 +35,7 @@ export class ViewportControls extends PluginUIComponent<ViewportControlsProps, V resetCamera = () => { PluginCommands.Camera.Reset(this.plugin, {}); - } + }; private toggle(panel: keyof ViewportControlsState) { return (e?: React.MouseEvent<HTMLButtonElement>) => { @@ -49,23 +49,23 @@ export class ViewportControls extends PluginUIComponent<ViewportControlsProps, V toggleControls = () => { PluginCommands.Layout.Update(this.plugin, { state: { showControls: !this.plugin.layout.state.showControls } }); - } + }; toggleExpanded = () => { PluginCommands.Layout.Update(this.plugin, { state: { isExpanded: !this.plugin.layout.state.isExpanded } }); - } + }; setSettings = (p: { param: PD.Base<any>, name: string, value: any }) => { PluginCommands.Canvas3D.SetSettings(this.plugin, { settings: { [p.name]: p.value } }); - } + }; setLayout = (p: { param: PD.Base<any>, name: string, value: any }) => { PluginCommands.Layout.Update(this.plugin, { state: { [p.name]: p.value } }); - } + }; screenshot = () => { this.plugin.helpers.viewportScreenshot?.download(); - } + }; componentDidMount() { this.subscribe(this.plugin.events.canvas3d.settingsUpdated, () => this.forceUpdate()); @@ -79,7 +79,7 @@ export class ViewportControls extends PluginUIComponent<ViewportControlsProps, V onMouseMove = (e: React.MouseEvent) => { // ignore mouse moves when no button is held if (e.buttons === 0) e.stopPropagation(); - } + }; render() { return <div className={'msp-viewport-controls'} onMouseMove={this.onMouseMove}> diff --git a/src/mol-plugin-ui/viewport/canvas.tsx b/src/mol-plugin-ui/viewport/canvas.tsx index 0b7bb156ac3cafb64ae8e944ce587fd9b5abb35e..616c145d1bb5033e6ae956f125fe780863ff6f21 100644 --- a/src/mol-plugin-ui/viewport/canvas.tsx +++ b/src/mol-plugin-ui/viewport/canvas.tsx @@ -34,7 +34,7 @@ export class ViewportCanvas extends PluginUIComponent<ViewportCanvasParams, View private handleLogo = () => { this.setState({ showLogo: !this.plugin.canvas3d?.reprCount.value }); - } + }; componentDidMount() { if (!this.canvas.current || !this.container.current || !this.plugin.initViewer(this.canvas.current!, this.container.current!)) { diff --git a/src/mol-plugin-ui/viewport/help.tsx b/src/mol-plugin-ui/viewport/help.tsx index c8ffc22f6293d79b7ee1b7fa0a1609e453a63fb6..cb0958531faf4245c34d4a25fba976871337097d 100644 --- a/src/mol-plugin-ui/viewport/help.tsx +++ b/src/mol-plugin-ui/viewport/help.tsx @@ -49,7 +49,7 @@ export class HelpGroup extends React.PureComponent<{ header: string, initiallyEx state = { header: this.props.header, isExpanded: !!this.props.initiallyExpanded - } + }; toggleExpanded = () => this.setState({ isExpanded: !this.state.isExpanded }); diff --git a/src/mol-plugin-ui/viewport/screenshot.tsx b/src/mol-plugin-ui/viewport/screenshot.tsx index 712ecdf8c904402bb6997cba7d6c9669add69c79..443bf9b940eab4d2979abefde2d96969ea4251ee 100644 --- a/src/mol-plugin-ui/viewport/screenshot.tsx +++ b/src/mol-plugin-ui/viewport/screenshot.tsx @@ -26,12 +26,12 @@ export class DownloadScreenshotControls extends PluginUIComponent<{ close: () => state: ImageControlsState = { showPreview: true, isDisabled: false - } as ImageControlsState + } as ImageControlsState; private download = () => { this.plugin.helpers.viewportScreenshot?.download(); this.props.close(); - } + }; private copy = async () => { try { @@ -44,12 +44,12 @@ export class DownloadScreenshotControls extends PluginUIComponent<{ close: () => } catch { return this.copyImg(); } - } + }; private copyImg = async () => { const src = await this.plugin.helpers.viewportScreenshot?.getImageDataUri(); this.setState({ imageData: src }); - } + }; componentDidMount() { this.subscribe(this.plugin.state.data.behaviors.isUpdating, v => { @@ -64,7 +64,7 @@ export class DownloadScreenshotControls extends PluginUIComponent<{ close: () => open = (e: React.ChangeEvent<HTMLInputElement>) => { if (!e.target.files || !e.target.files![0]) return; PluginCommands.State.Snapshots.OpenFile(this.plugin, { file: e.target.files![0] }); - } + }; render() { const hasClipboardApi = !!(navigator.clipboard as any)?.write; diff --git a/src/mol-plugin/animation-loop.ts b/src/mol-plugin/animation-loop.ts index 2903019f41c97facf495b4104a85fb5bdb6f7b09..3553f011a5c6cc87d288125f0da5ee694d5aa01c 100644 --- a/src/mol-plugin/animation-loop.ts +++ b/src/mol-plugin/animation-loop.ts @@ -25,7 +25,7 @@ export class PluginAnimationLoop { if (this._isAnimating) { this.currentFrame = requestAnimationFrame(this.frame); } - } + }; resetTime(t: number = now()) { this.plugin.canvas3d?.resetTime(t); diff --git a/src/mol-plugin/behavior/dynamic/custom-props/computed/accessible-surface-area.ts b/src/mol-plugin/behavior/dynamic/custom-props/computed/accessible-surface-area.ts index 10a12d4c8a194f4b6ea6f7f05e43025de2962798..424b5504a5218ccfb01bea27822bdb34ef8a94de 100644 --- a/src/mol-plugin/behavior/dynamic/custom-props/computed/accessible-surface-area.ts +++ b/src/mol-plugin/behavior/dynamic/custom-props/computed/accessible-surface-area.ts @@ -20,14 +20,14 @@ export const AccessibleSurfaceArea = PluginBehavior.create<{ autoAttach: boolean category: 'custom-props', display: { name: 'Accessible Surface Area' }, ctor: class extends PluginBehavior.Handler<{ autoAttach: boolean, showTooltip: boolean }> { - private provider = AccessibleSurfaceAreaProvider + private provider = AccessibleSurfaceAreaProvider; private labelProvider = { label: (loci: Loci): string | undefined => { if (!this.params.showTooltip) return; return accessibleSurfaceAreaLabel(loci); } - } + }; update(p: { autoAttach: boolean, showTooltip: boolean }) { const updated = ( diff --git a/src/mol-plugin/behavior/dynamic/custom-props/computed/interactions.ts b/src/mol-plugin/behavior/dynamic/custom-props/computed/interactions.ts index 38d6e64b57c4e9daa758e8451aff11f64d14ab23..d3edcd97b988172c522ec1d22b11e4f486a76c8b 100644 --- a/src/mol-plugin/behavior/dynamic/custom-props/computed/interactions.ts +++ b/src/mol-plugin/behavior/dynamic/custom-props/computed/interactions.ts @@ -23,7 +23,7 @@ export const Interactions = PluginBehavior.create<{ autoAttach: boolean, showToo category: 'custom-props', display: { name: 'Interactions' }, ctor: class extends PluginBehavior.Handler<{ autoAttach: boolean, showTooltip: boolean }> { - private provider = InteractionsProvider + private provider = InteractionsProvider; private getStructures(structure: Structure) { const structures: Structure[] = []; @@ -86,7 +86,7 @@ export const Interactions = PluginBehavior.create<{ autoAttach: boolean, showToo default: return void 0; } } - } + }; update(p: { autoAttach: boolean, showTooltip: boolean }) { const updated = ( diff --git a/src/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.ts b/src/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.ts index c6273093890d544ced1c477f31c314f3447308d6..54eca04842350b64caf267197ac873d7ed5dc663 100644 --- a/src/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.ts +++ b/src/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.ts @@ -13,7 +13,7 @@ export const SecondaryStructure = PluginBehavior.create<{ autoAttach: boolean }> category: 'custom-props', display: { name: 'Secondary Structure' }, ctor: class extends PluginBehavior.Handler<{ autoAttach: boolean }> { - private provider = SecondaryStructureProvider + private provider = SecondaryStructureProvider; update(p: { autoAttach: boolean, showTooltip: boolean }) { const updated = ( diff --git a/src/mol-plugin/behavior/dynamic/custom-props/computed/valence-model.ts b/src/mol-plugin/behavior/dynamic/custom-props/computed/valence-model.ts index b2ab4334ad3acc29e0bf8589bfbf0e203a4dafed..32f776dbcd1d92dccc738702e486cd2d2cc09add 100644 --- a/src/mol-plugin/behavior/dynamic/custom-props/computed/valence-model.ts +++ b/src/mol-plugin/behavior/dynamic/custom-props/computed/valence-model.ts @@ -20,7 +20,7 @@ export const ValenceModel = PluginBehavior.create<{ autoAttach: boolean, showToo category: 'custom-props', display: { name: 'Valence Model' }, ctor: class extends PluginBehavior.Handler<{ autoAttach: boolean, showTooltip: boolean }> { - private provider = ValenceModelProvider + private provider = ValenceModelProvider; private getStructures(structure: Structure) { const structures: Structure[] = []; @@ -73,7 +73,7 @@ export const ValenceModel = PluginBehavior.create<{ autoAttach: boolean, showToo default: return void 0; } } - } + }; update(p: { autoAttach: boolean, showTooltip: boolean }) { const updated = ( diff --git a/src/mol-plugin/behavior/dynamic/custom-props/integrative/cross-link-restraint.ts b/src/mol-plugin/behavior/dynamic/custom-props/integrative/cross-link-restraint.ts index 8fb480b3e2d3a61e183e96ebe6ae47539726fd80..077d33c780bba991d81254debcfa2652ce780ae9 100644 --- a/src/mol-plugin/behavior/dynamic/custom-props/integrative/cross-link-restraint.ts +++ b/src/mol-plugin/behavior/dynamic/custom-props/integrative/cross-link-restraint.ts @@ -17,7 +17,7 @@ export const CrossLinkRestraint = PluginBehavior.create<{ }>({ category: 'custom-props', display: { name: 'Cross Link Restraint' }, ctor: class extends PluginBehavior.Handler<{ }> { - private provider = ModelCrossLinkRestraint.Provider + private provider = ModelCrossLinkRestraint.Provider; register(): void { this.provider.formatRegistry.add('mmCIF', crossLinkRestraintFromMmcif); diff --git a/src/mol-plugin/behavior/dynamic/custom-props/sequence/best-database-mapping.ts b/src/mol-plugin/behavior/dynamic/custom-props/sequence/best-database-mapping.ts index 9336cf6aceda8fad0e860cd139f4f5eb399a820d..d5e4c1e615c7810aa31984dfa41a9d13888378fb 100644 --- a/src/mol-plugin/behavior/dynamic/custom-props/sequence/best-database-mapping.ts +++ b/src/mol-plugin/behavior/dynamic/custom-props/sequence/best-database-mapping.ts @@ -17,14 +17,14 @@ export const BestDatabaseSequenceMapping = PluginBehavior.create<{ autoAttach: b category: 'custom-props', display: { name: 'Best Database Sequence Mapping' }, ctor: class extends PluginBehavior.Handler<{ autoAttach: boolean, showTooltip: boolean }> { - private provider = BestDatabaseSequenceMappingProp.Provider + private provider = BestDatabaseSequenceMappingProp.Provider; private labelProvider = { label: (loci: Loci): string | undefined => { if (!this.params.showTooltip) return; return bestDatabaseSequenceMappingLabel(loci); } - } + }; update(p: { autoAttach: boolean, showTooltip: boolean }) { const updated = ( diff --git a/src/mol-plugin/behavior/dynamic/representation.ts b/src/mol-plugin/behavior/dynamic/representation.ts index a561ae846bf9be8815987038e3ce131086c6ae28..9edca255ba8f345d4610beb6f23a15417277e487 100644 --- a/src/mol-plugin/behavior/dynamic/representation.ts +++ b/src/mol-plugin/behavior/dynamic/representation.ts @@ -46,7 +46,7 @@ export const HighlightLoci = PluginBehavior.create({ private lociMarkProvider = (interactionLoci: Representation.Loci, action: MarkerAction, noRender?: boolean) => { if (!this.ctx.canvas3d || !this.params.mark) return; this.ctx.canvas3d.mark(interactionLoci, action, noRender); - } + }; private getLoci(loci: Loci) { return this.params.preferAtoms && Bond.isLoci(loci) && loci.bonds.length === 2 ? Bond.toFirstStructureElementLoci(loci) @@ -112,11 +112,11 @@ export const SelectLoci = PluginBehavior.create({ name: 'representation-select-loci', category: 'interaction', ctor: class extends PluginBehavior.Handler<SelectLociProps> { - private spine: StateTreeSpine.Impl + private spine: StateTreeSpine.Impl; private lociMarkProvider = (reprLoci: Representation.Loci, action: MarkerAction, noRender?: boolean) => { if (!this.ctx.canvas3d || !this.params.mark) return; this.ctx.canvas3d.mark({ loci: reprLoci.loci }, action, noRender); - } + }; private getLoci(loci: Loci) { return this.params.preferAtoms && Bond.isLoci(loci) && loci.bonds.length === 2 ? Bond.toFirstStructureElementLoci(loci) diff --git a/src/mol-plugin/behavior/dynamic/volume-streaming/behavior.ts b/src/mol-plugin/behavior/dynamic/volume-streaming/behavior.ts index c145b6d91f7aa8e775f8d0e6d8aaa1729c5ae10d..071e4544ac1f234044caa0d222ad3953025c44bf 100644 --- a/src/mol-plugin/behavior/dynamic/volume-streaming/behavior.ts +++ b/src/mol-plugin/behavior/dynamic/volume-streaming/behavior.ts @@ -139,9 +139,9 @@ export namespace VolumeStreaming { public params: Params = {} as any; private lastLoci: StructureElement.Loci | EmptyLoci = EmptyLoci; private ref: string = ''; - public infoMap: Map<string, VolumeServerInfo.EntryData> + public infoMap: Map<string, VolumeServerInfo.EntryData>; - channels: Channels = {} + channels: Channels = {}; public get info() { return this.infoMap.get(this.params.entry.name)!; diff --git a/src/mol-plugin/context.ts b/src/mol-plugin/context.ts index 35f0e33dccbb6dc21012e28df464039bc99eea8c..e953c67d60f0fe16bbf361798f551ccc1bf2ccba 100644 --- a/src/mol-plugin/context.ts +++ b/src/mol-plugin/context.ts @@ -67,7 +67,7 @@ export class PluginContext { if (!object) return void 0; if (Task.is(object)) return this.runTask(object); return object; - } + }; protected subs: Subscription[] = []; @@ -259,7 +259,7 @@ export class PluginContext { * This should be used in all transform related request so that it could be "spoofed" to allow * "static" access to resources. */ - readonly fetch = ajaxGet + readonly fetch = ajaxGet; /** return true is animating or updating */ get isBusy() { diff --git a/src/mol-plugin/layout.ts b/src/mol-plugin/layout.ts index 7261a6a1a5a3c0e149655a29b457e1397ef70b93..34241bcfad617026f2d3baa37afa0f16557ac672 100644 --- a/src/mol-plugin/layout.ts +++ b/src/mol-plugin/layout.ts @@ -62,7 +62,7 @@ interface RootState { export class PluginLayout extends StatefulPluginComponent<PluginLayoutStateProps> { readonly events = { updated: this.ev() - } + }; private updateProps(state: Partial<PluginLayoutStateProps>) { const prevExpanded = !!this.state.isExpanded; diff --git a/src/mol-plugin/state.ts b/src/mol-plugin/state.ts index 281409b5130fe69960edc29413c65894fc236542..cf0a05dc34b3f3439e5bde476228cacba2d0a7cd 100644 --- a/src/mol-plugin/state.ts +++ b/src/mol-plugin/state.ts @@ -47,7 +47,7 @@ class PluginState extends PluginComponent { setSnapshotParams = (params?: PluginState.SnapshotParams) => { this.snapshotParams.next({ ...PluginState.DefaultSnapshotParams, ...params }); - } + }; getSnapshot(params?: PluginState.SnapshotParams): PluginState.Snapshot { const p = { ...this.snapshotParams.value, ...params }; diff --git a/src/mol-plugin/util/substructure-parent-helper.ts b/src/mol-plugin/util/substructure-parent-helper.ts index 3b79ffd211a3b9870813e1d0778060e842b6a4ac..90795071c03f877696cef04649b83556f5854a13 100644 --- a/src/mol-plugin/util/substructure-parent-helper.ts +++ b/src/mol-plugin/util/substructure-parent-helper.ts @@ -18,7 +18,7 @@ class SubstructureParentHelper { readonly events = { updated: this.ev<{ ref: string, oldObj: PluginStateObject.Molecule.Structure | undefined, obj: PluginStateObject.Molecule.Structure }>(), removed: this.ev<{ ref: string, obj: PluginStateObject.Molecule.Structure | undefined }>(), - } + }; // private decorators = new Map<string, string[]>(); private root = new Map<Structure, { ref: string, count: number }>(); diff --git a/src/mol-repr/representation.ts b/src/mol-repr/representation.ts index 622e4454c1737bbd8fc35c0020ea7597b79e6670..246e34eb625d176da85f0221531742c4c93ca499 100644 --- a/src/mol-repr/representation.ts +++ b/src/mol-repr/representation.ts @@ -85,9 +85,9 @@ function getTypes(list: { name: string, provider: RepresentationProvider<any, an } export class RepresentationRegistry<D, S extends Representation.State> { - private _list: { name: string, provider: RepresentationProvider<D, any, any> }[] = [] - private _map = new Map<string, RepresentationProvider<D, any, any>>() - private _name = new Map<RepresentationProvider<D, any, any>, string>() + private _list: { name: string, provider: RepresentationProvider<D, any, any> }[] = []; + private _map = new Map<string, RepresentationProvider<D, any, any>>(); + private _name = new Map<RepresentationProvider<D, any, any>, string>(); get default() { return this._list[0]; } get types(): [string, string][] { return getTypes(this._list); } diff --git a/src/mol-repr/structure/visual/util/polymer/gap-iterator.ts b/src/mol-repr/structure/visual/util/polymer/gap-iterator.ts index 8f12043739bf7d631093fe94aa42710f992577f4..30fb33322d465381da22d3e2f64db430fec6358f 100644 --- a/src/mol-repr/structure/visual/util/polymer/gap-iterator.ts +++ b/src/mol-repr/structure/visual/util/polymer/gap-iterator.ts @@ -32,9 +32,9 @@ function createPolymerGapPair(structure: Structure, unit: Unit) { } export class AtomicPolymerGapIterator implements Iterator<PolymerGapPair> { - private traceElementIndex: ArrayLike<ElementIndex> - private value: PolymerGapPair - private gapIt: SortedRanges.Iterator<ElementIndex, ResidueIndex> + private traceElementIndex: ArrayLike<ElementIndex>; + private value: PolymerGapPair; + private gapIt: SortedRanges.Iterator<ElementIndex, ResidueIndex>; hasNext: boolean = false; move() { @@ -55,8 +55,8 @@ export class AtomicPolymerGapIterator implements Iterator<PolymerGapPair> { } export class CoarsePolymerGapIterator implements Iterator<PolymerGapPair> { - private value: PolymerGapPair - private gapIt: SortedRanges.Iterator<ElementIndex, ElementIndex> + private value: PolymerGapPair; + private gapIt: SortedRanges.Iterator<ElementIndex, ElementIndex>; hasNext: boolean = false; move() { diff --git a/src/mol-repr/structure/visual/util/polymer/trace-iterator.ts b/src/mol-repr/structure/visual/util/polymer/trace-iterator.ts index e191b3c0151c44890d3abc78d4508817aaaa0738..0ee88dddeb5f4e7514b99cb841d39673e2caa117 100644 --- a/src/mol-repr/structure/visual/util/polymer/trace-iterator.ts +++ b/src/mol-repr/structure/visual/util/polymer/trace-iterator.ts @@ -87,42 +87,42 @@ const tmpVecA = Vec3(); const tmpVecB = Vec3(); export class AtomicPolymerTraceIterator implements Iterator<PolymerTraceElement> { - private value: PolymerTraceElement - private polymerIt: SortedRanges.Iterator<ElementIndex, number> - private residueIt: Segmentation.SegmentIterator<ResidueIndex> - private polymerSegment: Segmentation.Segment<number> - private cyclicPolymerMap: Map<ResidueIndex, ResidueIndex> - private residueSegmentMin: ResidueIndex - private residueSegmentMax: ResidueIndex - private prevSecStrucType: SecondaryStructureType - private currSecStrucType: SecondaryStructureType - private nextSecStrucType: SecondaryStructureType - private prevCoarseBackbone: boolean - private currCoarseBackbone: boolean - private nextCoarseBackbone: boolean - private state: AtomicPolymerTraceIteratorState = AtomicPolymerTraceIteratorState.nextPolymer - private polymerRanges: SortedArray<ElementIndex> - private residueAtomSegments: Segmentation<ElementIndex, ResidueIndex> - private traceElementIndex: ArrayLike<ElementIndex> - private directionFromElementIndex: ArrayLike<ElementIndex | -1> - private directionToElementIndex: ArrayLike<ElementIndex | -1> - private moleculeType: ArrayLike<MoleculeType> - private atomicConformation: AtomicConformation - private secondaryStructure: SecondaryStructure | undefined - private helixOrientationCenters: ArrayLike<number> | undefined - - private p0 = Vec3() - private p1 = Vec3() - private p2 = Vec3() - private p3 = Vec3() - private p4 = Vec3() - private p5 = Vec3() - private p6 = Vec3() - - private d01 = Vec3() - private d12 = Vec3() - private d23 = Vec3() - private d34 = Vec3() + private value: PolymerTraceElement; + private polymerIt: SortedRanges.Iterator<ElementIndex, number>; + private residueIt: Segmentation.SegmentIterator<ResidueIndex>; + private polymerSegment: Segmentation.Segment<number>; + private cyclicPolymerMap: Map<ResidueIndex, ResidueIndex>; + private residueSegmentMin: ResidueIndex; + private residueSegmentMax: ResidueIndex; + private prevSecStrucType: SecondaryStructureType; + private currSecStrucType: SecondaryStructureType; + private nextSecStrucType: SecondaryStructureType; + private prevCoarseBackbone: boolean; + private currCoarseBackbone: boolean; + private nextCoarseBackbone: boolean; + private state: AtomicPolymerTraceIteratorState = AtomicPolymerTraceIteratorState.nextPolymer; + private polymerRanges: SortedArray<ElementIndex>; + private residueAtomSegments: Segmentation<ElementIndex, ResidueIndex>; + private traceElementIndex: ArrayLike<ElementIndex>; + private directionFromElementIndex: ArrayLike<ElementIndex | -1>; + private directionToElementIndex: ArrayLike<ElementIndex | -1>; + private moleculeType: ArrayLike<MoleculeType>; + private atomicConformation: AtomicConformation; + private secondaryStructure: SecondaryStructure | undefined; + private helixOrientationCenters: ArrayLike<number> | undefined; + + private p0 = Vec3(); + private p1 = Vec3(); + private p2 = Vec3(); + private p3 = Vec3(); + private p4 = Vec3(); + private p5 = Vec3(); + private p6 = Vec3(); + + private d01 = Vec3(); + private d12 = Vec3(); + private d23 = Vec3(); + private d34 = Vec3(); hasNext: boolean = false; @@ -428,12 +428,12 @@ export class AtomicPolymerTraceIterator implements Iterator<PolymerTraceElement> const enum CoarsePolymerTraceIteratorState { nextPolymer, nextElement } export class CoarsePolymerTraceIterator implements Iterator<PolymerTraceElement> { - private value: PolymerTraceElement - private polymerIt: SortedRanges.Iterator<ElementIndex, ResidueIndex> - private polymerSegment: Segmentation.Segment<ResidueIndex> - private state: CoarsePolymerTraceIteratorState = CoarsePolymerTraceIteratorState.nextPolymer - private conformation: CoarseSphereConformation | CoarseGaussianConformation - private elementIndex: number + private value: PolymerTraceElement; + private polymerIt: SortedRanges.Iterator<ElementIndex, ResidueIndex>; + private polymerSegment: Segmentation.Segment<ResidueIndex>; + private state: CoarsePolymerTraceIteratorState = CoarsePolymerTraceIteratorState.nextPolymer; + private conformation: CoarseSphereConformation | CoarseGaussianConformation; + private elementIndex: number; hasNext: boolean = false; private getElementIndex(elementIndex: number) { diff --git a/src/mol-state/action/manager.ts b/src/mol-state/action/manager.ts index 922e6195a098c9641e862ecfe170aff371de75d7..4182c329bcfc2965e6f5c090006ccfd34c295226 100644 --- a/src/mol-state/action/manager.ts +++ b/src/mol-state/action/manager.ts @@ -21,7 +21,7 @@ class StateActionManager { readonly events = { added: this.ev<undefined>(), removed: this.ev<undefined>(), - } + }; add(actionOrTransformer: StateAction | StateTransformer) { const action = StateTransformer.is(actionOrTransformer) ? actionOrTransformer.toAction() : actionOrTransformer; diff --git a/src/mol-state/state.ts b/src/mol-state/state.ts index e5e7f3511b4754c6bb11d5668669b1a4b0fc23fd..1602278c840eb9b0e07c5f901e3d6dc644cb9a91 100644 --- a/src/mol-state/state.ts +++ b/src/mol-state/state.ts @@ -73,7 +73,7 @@ class State { const ret = this.cells.get(ref)?.obj?.data; if (!ref) throw new Error(`Cell '${ref}' data undefined.`); return ret as T; - } + }; private historyCapacity = 5; private history: [StateTree, string][] = []; diff --git a/src/mol-theme/theme.ts b/src/mol-theme/theme.ts index 2bd1543cdda981926c974bbacda80cc5340ee406..d5e07a88a34fbb53211b1f5c46cd7a89f8dc2426 100644 --- a/src/mol-theme/theme.ts +++ b/src/mol-theme/theme.ts @@ -84,9 +84,9 @@ function getTypes(list: { name: string, provider: ThemeProvider<any, any> }[]) { } export class ThemeRegistry<T extends ColorTheme<any> | SizeTheme<any>> { - private _list: { name: string, provider: ThemeProvider<T, any> }[] = [] - private _map = new Map<string, ThemeProvider<T, any>>() - private _name = new Map<ThemeProvider<T, any>, string>() + private _list: { name: string, provider: ThemeProvider<T, any> }[] = []; + private _map = new Map<string, ThemeProvider<T, any>>(); + private _name = new Map<ThemeProvider<T, any>, string>(); get default() { return this._list[0]; } get list() { return this._list; } diff --git a/src/mol-util/graphql-client.ts b/src/mol-util/graphql-client.ts index b4b8514045f11bc2fbe11f29714b6b968bf2d529..7ca692d9542e5cbbd83a34ce9bf461e0dcdbf72d 100644 --- a/src/mol-util/graphql-client.ts +++ b/src/mol-util/graphql-client.ts @@ -31,8 +31,8 @@ interface GraphQLRequestContext { } export class ClientError extends Error { - response: GraphQLResponse - request: GraphQLRequestContext + response: GraphQLResponse; + request: GraphQLRequestContext; constructor(response: GraphQLResponse, request: GraphQLRequestContext) { const message = `${ClientError.extractMessage(response)}: ${JSON.stringify({ response, request })}`; diff --git a/src/mol-util/mask.ts b/src/mol-util/mask.ts index e35b68d86577b31da7b750722723f74a15a16eeb..6ea25eec6f6d3770c573c91c128ef23eecfb656b 100644 --- a/src/mol-util/mask.ts +++ b/src/mol-util/mask.ts @@ -26,7 +26,7 @@ interface Mask { namespace Mask { class EmptyMask implements Mask { - '@type': 'mask' + '@type': 'mask'; size = 0; has(i: number) { return false; } forEach<Ctx>(f: (i: number, ctx?: Ctx) => void, ctx: Ctx) { return ctx; } @@ -34,7 +34,7 @@ namespace Mask { } class SingletonMask implements Mask { - '@type': 'mask' + '@type': 'mask'; size = 1; has(i: number) { return i === this.idx; } forEach<Ctx>(f: (i: number, ctx?: Ctx) => void, ctx?: Ctx) { f(this.idx, ctx); return ctx; } @@ -42,7 +42,7 @@ namespace Mask { } class BitMask implements Mask { - '@type': 'mask' + '@type': 'mask'; private length: number; has(i: number) { return i < this.length && !!this.mask[i] as any; } @@ -59,7 +59,7 @@ namespace Mask { } class AllMask implements Mask { - '@type': 'mask' + '@type': 'mask'; has(i: number) { return true; } private _forEach<Ctx>(f: (i: number, ctx?: Ctx) => void, ctx: Ctx | undefined) { for (let i = 0; i < this.size; i++) { @@ -74,7 +74,7 @@ namespace Mask { } class SetMask implements Mask { - '@type': 'mask' + '@type': 'mask'; private _flat: number[] | undefined = void 0; size: number; has(i: number) { return this.set.has(i); }