@rcsb/rcsb-saguaro-app 3.3.0-interfaces → 4.0.0-interfaces.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,7 +2,25 @@
2
2
 
3
3
  [Semantic Versioning](https://semver.org/)
4
4
 
5
- ## [3.3.0] - 2021-11-29
5
+ ## [4.0.0-interfaces] - 2021-12-15
6
+ ### Annotation collector improvements
7
+ - CollectAnnotationsInterface added method for generating new annotations internally (not exposed)
8
+ - `annotationGenerator?(annotations: Array<AnnotationFeatures>)` generates new annotations from the collected ones
9
+ - `annotationFilter?(annotations: Array<AnnotationFeatures>)` filter the collected annotations
10
+ - Both method are called before annotations processing and thus, they should be configured in `RcsbAnnotationConfig.ac.json` or equivalent config
11
+
12
+ ## [4.0.0-master] - 2021-12-07
13
+ ### Breaking change
14
+ - `ExternalTrackBuilderInterface` methods return a promise and are executed asynchronous
15
+
16
+ ## [3.4.0] - 2021-12-07
17
+ ### UI improvements
18
+ - Exposed methods for creating dropdown menus. Class `RcsbFvUI` static methods
19
+ - `createSelectButton` creates a select dropdown menu
20
+ - `addSelectButton` adds a second menu. Only an additional button can be created (replaced if a new one is created)
21
+ - `clearSelectButton` clear all menus
22
+
23
+ ## [3.3.0] - 2021-11-30
6
24
  ### Annotations configuration improvements
7
25
  - Removed interface `CollectAnnotationsInterface` attribute `addTargetInTitle`
8
26
  - Added `titleSuffix` and `trackTitle` attributes to `CollectAnnotationsInterface`
@@ -22,8 +40,8 @@
22
40
 
23
41
  ## [3.1.0] - 2021-10-27
24
42
  ### External track builder improvements
25
- - `ExternalTrackBuilderInterface` available through `RcsbFvAdditionalConfig` for all `RcsbFvBuilder` types.
26
- In addition, it includes the query context as additional parameter for processing and addition methods.
43
+ - `ExternalTrackBuilderInterface` available through `RcsbFvAdditionalConfig` for all `RcsbFvBuilder` types
44
+ In addition, it includes the query context as additional parameter for processing and addition methods
27
45
  - `processAlignmentAndFeatures` includes the query context as part of the input parameters
28
46
  - `addTo` includes the query context as part of the input parameters
29
47
  - `filterFeatures` new method for filtering positional features
package/README.md CHANGED
@@ -8,7 +8,7 @@ Feature Summaries. The package allows access to RCSB Saguaro methods to add or c
8
8
  <!---
9
9
  <div id="pfvSelect" ></div>
10
10
  <div id="pfv" ></div>
11
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@rcsb/rcsb-saguaro-app@3.2.1/build/dist/app.js"></script>
11
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@rcsb/rcsb-saguaro-app@3.4.0/build/dist/app.js"></script>
12
12
  <script type="text/javascript">
13
13
  RcsbFvWebApp.buildInstanceFv("pfv", "4Z35.A", {
14
14
  boardConfig:{
@@ -23,7 +23,7 @@ RcsbFvWebApp.buildInstanceFv("pfv", "4Z35.A", {
23
23
  `npm install @rcsb/rcsb-saguaro-app`
24
24
 
25
25
  ### CDN JavaScript
26
- `<script src="https://cdn.jsdelivr.net/npm/@rcsb/rcsb-saguaro-app@3.2.1/build/dist/app.js" type="text/javascript"></script>`
26
+ `<script src="https://cdn.jsdelivr.net/npm/@rcsb/rcsb-saguaro-app@3.4.0/build/dist/app.js" type="text/javascript"></script>`
27
27
 
28
28
  ### JavaScript Examples
29
29
  * [PDB Instance Chain View](https://rcsb.github.io/rcsb-saguaro-app/examples/instance.html)
@@ -21,7 +21,7 @@ export declare class RcsbAnnotationConfig {
21
21
  uniprotOrder(): Array<string>;
22
22
  instanceOrder(): Array<string>;
23
23
  entityOrder(): Array<string>;
24
- buildAndAddType(d: Feature, mainTitle?: string, titleSuffix?: string): string;
24
+ buildAndAddType(d: Feature, mainTitle?: string, titleSuffix?: string, typeSuffix?: string): string;
25
25
  private addNewType;
26
26
  sortAndIncludeNewTypes(): void;
27
27
  private checkAndIncludeNewType;
@@ -3,6 +3,7 @@ import { RcsbFvRowConfigInterface } from "@rcsb/rcsb-saguaro";
3
3
  import { AnnotationFeatures, Feature, QueryAnnotationsArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
4
4
  import { AnnotationTrack, FeaturePositionGaps } from "./AnnotationTrack";
5
5
  import { ExternalTrackBuilderInterface } from "../FeatureTools/ExternalTrackBuilderInterface";
6
+ import { PolymerEntityInstanceInterface } from "../Translators/PolymerEntityInstancesCollector";
6
7
  export declare type IncreaseAnnotationValueType = (feature: {
7
8
  type: string;
8
9
  targetId: string;
@@ -15,14 +16,16 @@ export interface AnnotationProcessingInterface {
15
16
  computeAnnotationValue?: (annotationTracks: Map<string, AnnotationTrack>) => void;
16
17
  addTrackElementCallback?: IncreaseAnnotationValueType;
17
18
  }
18
- interface CommonAnnotationInterface {
19
+ export interface CollectAnnotationsInterface extends QueryAnnotationsArgs {
20
+ collectSwissModel?: boolean;
21
+ rcsbContext?: Partial<PolymerEntityInstanceInterface>;
19
22
  annotationProcessing?: AnnotationProcessingInterface;
20
23
  externalAnnotationTrackBuilder?: ExternalTrackBuilderInterface;
21
- }
22
- export interface CollectAnnotationsInterface extends QueryAnnotationsArgs, CommonAnnotationInterface {
23
- collectSwissModel?: boolean;
24
+ annotationGenerator?(annotations: Array<AnnotationFeatures>): Promise<Array<AnnotationFeatures>>;
25
+ annotationFilter?(annotations: Array<AnnotationFeatures>): Promise<Array<AnnotationFeatures>>;
24
26
  titleSuffix?(ann: AnnotationFeatures, d: Feature): Promise<string | undefined>;
25
27
  trackTitle?(ann: AnnotationFeatures, d: Feature): Promise<string | undefined>;
28
+ typeSuffix?(ann: AnnotationFeatures, d: Feature): Promise<string | undefined>;
26
29
  }
27
30
  export declare type AnnotationCollectConfig = Partial<CollectAnnotationsInterface>;
28
31
  export interface AnnotationCollectorInterface extends CoreCollectorInterface {
@@ -31,4 +34,3 @@ export interface AnnotationCollectorInterface extends CoreCollectorInterface {
31
34
  getAnnotationFeatures(): Promise<Array<AnnotationFeatures>>;
32
35
  getFeatures(): Promise<Array<Feature>>;
33
36
  }
34
- export {};
@@ -7,12 +7,18 @@ export interface ExternalTrackBuilderInterface {
7
7
  annotations?: Array<AnnotationFeatures>;
8
8
  alignments?: AlignmentResponse;
9
9
  rcsbContext?: Partial<PolymerEntityInstanceInterface>;
10
- }): void;
11
- filterAlignments?(alignments: AlignmentResponse): AlignmentResponse;
12
- filterFeatures?(annotations: Array<AnnotationFeatures>): Array<AnnotationFeatures>;
10
+ }): Promise<void>;
11
+ filterAlignments?(data: {
12
+ alignments: AlignmentResponse;
13
+ rcsbContext?: Partial<PolymerEntityInstanceInterface>;
14
+ }): Promise<AlignmentResponse>;
15
+ filterFeatures?(data: {
16
+ annotations: Array<AnnotationFeatures>;
17
+ rcsbContext?: Partial<PolymerEntityInstanceInterface>;
18
+ }): Promise<Array<AnnotationFeatures>>;
13
19
  addTo?(tracks: {
14
20
  alignmentTracks?: SequenceCollectorDataInterface;
15
21
  annotationTracks?: Array<RcsbFvRowConfigInterface>;
16
22
  rcsbContext?: Partial<PolymerEntityInstanceInterface>;
17
- }): void;
23
+ }): Promise<void>;
18
24
  }
@@ -4,6 +4,7 @@ export interface InterfaceInstanceInterface {
4
4
  assemblyId: string;
5
5
  interfaceId: string;
6
6
  asymIds: [string, string];
7
+ operatorIds: [Array<Array<string>>, Array<Array<string>>];
7
8
  }
8
9
  export declare class InterfaceInstanceCollector {
9
10
  private readonly rcsbFvQuery;
@@ -13,6 +13,7 @@ declare type instanceModule = "interface" | "instance";
13
13
  export interface InstanceSequenceConfig {
14
14
  dropdownTitle?: string;
15
15
  defaultValue?: string | undefined | null;
16
+ beforeRenderCallback?: (x: InstanceSequenceOnchangeInterface) => void;
16
17
  onChangeCallback?: (x: InstanceSequenceOnchangeInterface) => void;
17
18
  filterInstances?: Set<string>;
18
19
  displayAuthId?: boolean;
@@ -3,8 +3,10 @@ import { RcsbFvModuleBuildInterface } from "./RcsbFvModuleInterface";
3
3
  import { AnnotationCollectorInterface } from "../../RcsbCollectTools/AnnotationCollector/AnnotationCollectorInterface";
4
4
  export declare class RcsbFvInterface extends RcsbFvAbstractModule {
5
5
  protected readonly annotationCollector: AnnotationCollectorInterface;
6
+ private instanceId;
6
7
  protected protectedBuild(buildConfig: RcsbFvModuleBuildInterface): Promise<void>;
7
8
  protected concatAlignmentAndAnnotationTracks(buildConfig: RcsbFvModuleBuildInterface): void;
9
+ private typeSuffix;
8
10
  private titleSuffix;
9
11
  private trackTitle;
10
12
  }
@@ -13,6 +13,7 @@ export interface SelectOptionInterface {
13
13
  onChange: () => void;
14
14
  }
15
15
  interface SelectButtonInterface {
16
+ elementId: string;
16
17
  options?: Array<SelectOptionInterface> | Array<GroupedOptionsInterface>;
17
18
  additionalOptions?: Array<SelectOptionInterface>;
18
19
  addTitle: boolean;
@@ -20,6 +21,7 @@ interface SelectButtonInterface {
20
21
  width?: number;
21
22
  dropdownTitle?: string;
22
23
  optionProps?: (props: OptionProps<OptionPropsInterface>) => JSX.Element;
24
+ isAdditionalButton?: boolean;
23
25
  }
24
26
  export interface OptionPropsInterface extends SelectOptionInterface {
25
27
  value: number;
@@ -28,6 +30,7 @@ interface SelectButtonState {
28
30
  selectedOption: OptionPropsInterface;
29
31
  }
30
32
  export declare class SelectButton extends React.Component<SelectButtonInterface, SelectButtonState> {
33
+ static readonly BUTTON_CONTAINER_DIV_SUFFIX = "_buttonContainerDiv";
31
34
  private defaultValue;
32
35
  readonly state: SelectButtonState;
33
36
  constructor(props: SelectButtonInterface);
@@ -38,6 +41,7 @@ export declare class SelectButton extends React.Component<SelectButtonInterface,
38
41
  private selectRender;
39
42
  private titleRender;
40
43
  private selectButtonRender;
44
+ private innerSelectButtonRender;
41
45
  private configStyle;
42
46
  private getSelectOpt;
43
47
  }
@@ -7,6 +7,7 @@ export interface SelectButtonConfigInterface {
7
7
  width?: number;
8
8
  dropdownTitle?: string;
9
9
  optionProps?: (props: OptionProps<OptionPropsInterface>) => JSX.Element;
10
+ isAdditionalButton?: boolean;
10
11
  }
11
12
  export declare class WebToolsManager {
12
13
  private static suffix;
@@ -2,6 +2,8 @@ import { InterfaceInstanceInterface } from "../RcsbCollectTools/Translators/Inte
2
2
  export declare class InterfaceInstanceTranslate {
3
3
  private readonly rawData;
4
4
  private readonly instances;
5
+ private readonly operatorsIds;
5
6
  constructor(data: Array<InterfaceInstanceInterface>);
6
7
  getInstances(rcsbId: string): [string, string];
8
+ getOperatorIds(rcsbId: string): [Array<Array<string>>, Array<Array<string>>];
7
9
  }
@@ -1 +1,12 @@
1
+ import { GroupedOptionsInterface, SelectOptionInterface } from "./RcsbFvWeb/WebTools/SelectButton";
1
2
  export { buildEntryChromosome, buildFullChromosome, buildEntityChromosome, buildChromosome, buildEntityFv, buildEntitySummaryFv, buildSingleEntitySummaryFv, buildInstanceFv, buildInstanceSequenceFv, buildMultipleInstanceSequenceFv, buildAssemblySequenceFv, buildPairwiseAlignment, buildPfv, buildMultipleAlignmentSequenceFv, buildUniprotEntityFv, buildUniprotEntityInstanceFv, buildUniprotFv, unmount } from "./RcsbFvWeb/RcsbFvBuilder";
3
+ import { SelectButtonConfigInterface } from "./RcsbFvWeb/WebTools/WebToolsManager";
4
+ import { InterfaceInstanceTranslate } from "./RcsbUtils/InterfaceInstanceTranslate";
5
+ export declare class RcsbFvUI {
6
+ static clearSelectButton(elementFvId: string, selectButtonId: string): void;
7
+ static createSelectButton(elementFvId: string, selectButtonId: string, options: Array<SelectOptionInterface> | Array<GroupedOptionsInterface>, config?: SelectButtonConfigInterface): void;
8
+ static addSelectButton(elementFvId: string, selectButtonId: string, options: Array<SelectOptionInterface>, config?: SelectButtonConfigInterface): void;
9
+ }
10
+ export declare class RcsbFvContextManager {
11
+ static getInterfaceToInstance(interfaceId: string): Promise<InterfaceInstanceTranslate>;
12
+ }