command.ts 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. export * from './command/base';
  14. export const PluginCommands = {
  15. State: {
  16. SetCurrentObject: PluginCommand<{ state: State, ref: StateTransform.Ref }>(),
  17. ApplyAction: PluginCommand<{ state: State, action: StateAction.Instance, ref?: StateTransform.Ref }>(),
  18. Update: PluginCommand<{ state: State, tree: State.Tree | State.Builder, options?: Partial<State.UpdateOptions> }>(),
  19. RemoveObject: PluginCommand<{ state: State, ref: StateTransform.Ref, removeParentGhosts?: boolean }>(),
  20. ToggleExpanded: PluginCommand<{ state: State, ref: StateTransform.Ref }>(),
  21. ToggleVisibility: PluginCommand<{ state: State, ref: StateTransform.Ref }>(),
  22. Highlight: PluginCommand<{ state: State, ref: StateTransform.Ref }>(),
  23. ClearHighlight: PluginCommand<{ state: State, ref: StateTransform.Ref }>(),
  24. Snapshots: {
  25. Add: PluginCommand<{ name?: string, description?: string, params?: PluginState.GetSnapshotParams }>(),
  26. Replace: PluginCommand<{ id: string, params?: PluginState.GetSnapshotParams }>(),
  27. Move: PluginCommand<{ id: string, dir: -1 | 1 }>(),
  28. Remove: PluginCommand<{ id: string }>(),
  29. Apply: PluginCommand<{ id: string }>(),
  30. Clear: PluginCommand<{}>(),
  31. Upload: PluginCommand<{ name?: string, description?: string, playOnLoad?: boolean, serverUrl: string }>(),
  32. Fetch: PluginCommand<{ url: string }>(),
  33. DownloadToFile: PluginCommand<{ name?: string }>(),
  34. OpenFile: PluginCommand<{ file: File }>(),
  35. }
  36. },
  37. Interactivity: {
  38. Structure: {
  39. Highlight: PluginCommand<{ loci: StructureElement.Loci, isOff?: boolean }>(),
  40. Select: PluginCommand<{ loci: StructureElement.Loci, isOff?: boolean }>()
  41. }
  42. },
  43. Layout: {
  44. Update: PluginCommand<{ state: Partial<PluginLayoutStateProps> }>()
  45. },
  46. Camera: {
  47. Reset: PluginCommand<{}>(),
  48. SetSnapshot: PluginCommand<{ snapshot: Partial<Camera.Snapshot>, durationMs?: number }>(),
  49. Snapshots: {
  50. Add: PluginCommand<{ name?: string, description?: string }>(),
  51. Remove: PluginCommand<{ id: string }>(),
  52. Apply: PluginCommand<{ id: string }>(),
  53. Clear: PluginCommand<{}>(),
  54. }
  55. },
  56. Canvas3D: {
  57. SetSettings: PluginCommand<{ settings: Partial<Canvas3DProps> }>()
  58. }
  59. }