command.ts 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author David Sehnal <david.sehnal@gmail.com>
  5. */
  6. import { Camera } from '../mol-canvas3d/camera';
  7. import { PluginCommand } from './command/base';
  8. import { StateTransform, State, StateAction } from '../mol-state';
  9. import { Canvas3DProps } from '../mol-canvas3d/canvas3d';
  10. import { PluginLayoutStateProps } from './layout';
  11. import { StructureElement } from '../mol-model/structure';
  12. import { PluginState } from './state';
  13. import { Interactivity } from './util/interactivity';
  14. import { PluginToast } from './state/toast';
  15. export * from './command/base';
  16. export const PluginCommands = {
  17. State: {
  18. SetCurrentObject: PluginCommand<{ state: State, ref: StateTransform.Ref }>(),
  19. ApplyAction: PluginCommand<{ state: State, action: StateAction.Instance, ref?: StateTransform.Ref }>(),
  20. Update: PluginCommand<{ state: State, tree: State.Tree | State.Builder, options?: Partial<State.UpdateOptions> }>(),
  21. RemoveObject: PluginCommand<{ state: State, ref: StateTransform.Ref, removeParentGhosts?: boolean }>(),
  22. ToggleExpanded: PluginCommand<{ state: State, ref: StateTransform.Ref }>(),
  23. ToggleVisibility: PluginCommand<{ state: State, ref: StateTransform.Ref }>(),
  24. Highlight: PluginCommand<{ state: State, ref: StateTransform.Ref, passRepresentation?: boolean }>(),
  25. ClearHighlight: PluginCommand<{ state: State, ref: StateTransform.Ref }>(),
  26. Snapshots: {
  27. Add: PluginCommand<{ name?: string, description?: string, params?: PluginState.GetSnapshotParams }>(),
  28. Replace: PluginCommand<{ id: string, params?: PluginState.GetSnapshotParams }>(),
  29. Move: PluginCommand<{ id: string, dir: -1 | 1 }>(),
  30. Remove: PluginCommand<{ id: string }>(),
  31. Apply: PluginCommand<{ id: string }>(),
  32. Clear: PluginCommand<{}>(),
  33. Upload: PluginCommand<{ name?: string, description?: string, playOnLoad?: boolean, serverUrl: string }>(),
  34. Fetch: PluginCommand<{ url: string }>(),
  35. DownloadToFile: PluginCommand<{ name?: string }>(),
  36. OpenFile: PluginCommand<{ file: File }>(),
  37. }
  38. },
  39. Interactivity: {
  40. SetProps: PluginCommand<{ props: Partial<Interactivity.Props> }>(),
  41. Structure: {
  42. Highlight: PluginCommand<{ loci: StructureElement.Loci, isOff?: boolean }>(),
  43. Select: PluginCommand<{ loci: StructureElement.Loci, isOff?: boolean }>()
  44. }
  45. },
  46. Layout: {
  47. Update: PluginCommand<{ state: Partial<PluginLayoutStateProps> }>()
  48. },
  49. Toast: {
  50. Show: PluginCommand<PluginToast>(),
  51. Hide: PluginCommand<{ key: string }>()
  52. },
  53. Camera: {
  54. Reset: PluginCommand<{}>(),
  55. SetSnapshot: PluginCommand<{ snapshot: Partial<Camera.Snapshot>, durationMs?: number }>(),
  56. Snapshots: {
  57. Add: PluginCommand<{ name?: string, description?: string }>(),
  58. Remove: PluginCommand<{ id: string }>(),
  59. Apply: PluginCommand<{ id: string }>(),
  60. Clear: PluginCommand<{}>(),
  61. }
  62. },
  63. Canvas3D: {
  64. SetSettings: PluginCommand<{ settings: Partial<Canvas3DProps> }>()
  65. }
  66. }