UNPKG

@myrmidon/cadmus-graph-ui

Version:
266 lines (257 loc) 10.8 kB
import * as i0 from '@angular/core'; import { OnInit, OnDestroy } from '@angular/core'; import { Observable } from 'rxjs'; import { PageEvent } from '@angular/material/paginator'; import { MatSnackBar } from '@angular/material/snack-bar'; import { DialogService } from '@myrmidon/ngx-mat-tools'; import { DataPage } from '@myrmidon/ngx-tools'; import { ThesaurusEntry } from '@myrmidon/cadmus-core'; import { NodeFilter, UriNode, GraphService, TripleFilter, UriTriple } from '@myrmidon/cadmus-api'; import { PagedListStoreService } from '@myrmidon/paged-data-browsers'; import { FormControl, FormGroup, FormBuilder } from '@angular/forms'; import { RefLookupService, RefLookupFilter } from '@myrmidon/cadmus-refs-lookup'; /** * Graph nodes list repository. */ declare class NodeListRepository implements PagedListStoreService<NodeFilter, UriNode> { private _graphService; private readonly _store; private readonly _loading$; private readonly _filter$; private readonly _linkedNode$; private readonly _classNodes$; get loading$(): Observable<boolean | undefined>; get filter$(): Observable<NodeFilter>; get page$(): Observable<DataPage<UriNode>>; get linkedNode$(): Observable<UriNode | undefined>; get classNodes$(): Observable<UriNode[] | undefined>; constructor(_graphService: GraphService); getLinkedNode(): UriNode | undefined; getClassNodes(): UriNode[]; loadPage(pageNumber: number, pageSize: number, filter: NodeFilter): Observable<DataPage<UriNode>>; reset(): Promise<void>; setFilter(filter: NodeFilter): Promise<void>; getFilter(): NodeFilter; setPage(pageNumber: number, pageSize: number): Promise<void>; /** * Set the linked node used in filter. * * @param node The node or undefined. */ setLinkedNode(node?: UriNode): void; /** * Set the linked node used in filter by its ID. * * @param id The node ID. */ setLinkedNodeId(id?: number): void; /** * Add the specified node to the filter class nodes. * If the node already exists, nothing is done. * * @param node The node to add. */ addClassNode(node: UriNode): void; /** * Set the class node IDs in the filter. * * @param ids The class nodes IDs or undefined. */ setClassNodeIds(ids?: number[]): void; /** * Delete the specified node from the filter class nodes. * If the node does not exist, nothing is done. * * @param id The node's ID. */ deleteClassNode(id: number): void; static ɵfac: i0.ɵɵFactoryDeclaration<NodeListRepository, never>; static ɵprov: i0.ɵɵInjectableDeclaration<NodeListRepository>; } /** * List of graph nodes. This includes a graph node filter, a list, and a graph * editor. */ declare class GraphNodeListComponent { private _repository; private _graphService; private _dialogService; private _snackbar; loading$: Observable<boolean | undefined>; page$: Observable<DataPage<UriNode>>; /** * The currently edited node if any. */ readonly editedNode: i0.ModelSignal<UriNode | undefined>; /** * The optional set of thesaurus entries for node's tags. */ readonly tagEntries: i0.InputSignal<ThesaurusEntry[] | undefined>; /** * True if this node list should have a walker button for each node. */ readonly hasWalker: i0.InputSignal<boolean | undefined>; /** * Emitted when walking a specific node is requested. */ readonly nodeWalk: i0.OutputEmitterRef<UriNode>; constructor(_repository: NodeListRepository, _graphService: GraphService, _dialogService: DialogService, _snackbar: MatSnackBar); onPageChange(event: PageEvent): void; addNode(): void; editNode(node: UriNode): void; onNodeChange(node: UriNode): void; onEditorClose(): void; deleteNode(node: UriNode): void; walkNode(node: UriNode): void; reset(): void; static ɵfac: i0.ɵɵFactoryDeclaration<GraphNodeListComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<GraphNodeListComponent, "cadmus-graph-node-list", never, { "editedNode": { "alias": "editedNode"; "required": false; "isSignal": true; }; "tagEntries": { "alias": "tagEntries"; "required": false; "isSignal": true; }; "hasWalker": { "alias": "hasWalker"; "required": false; "isSignal": true; }; }, { "editedNode": "editedNodeChange"; "nodeWalk": "nodeWalk"; }, never, never, true, never>; } /** * Graph node editor. */ declare class GraphNodeEditorComponent { /** * The node being edited. A new node has ID=0 and no uri. */ readonly node: i0.ModelSignal<UriNode | undefined>; /** * The optional set of thesaurus entries for node's tags. */ readonly tagEntries: i0.InputSignal<ThesaurusEntry[] | undefined>; /** * Emitted when the user requested to close the editor. */ readonly editorClose: i0.OutputEmitterRef<void>; isNew: boolean; uri: FormControl<string | null>; label: FormControl<string | null>; isClass: FormControl<boolean>; tag: FormControl<string | null>; form: FormGroup; constructor(formBuilder: FormBuilder); private updateForm; private getNode; cancel(): void; save(): void; static ɵfac: i0.ɵɵFactoryDeclaration<GraphNodeEditorComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<GraphNodeEditorComponent, "cadmus-graph-node-editor", never, { "node": { "alias": "node"; "required": false; "isSignal": true; }; "tagEntries": { "alias": "tagEntries"; "required": false; "isSignal": true; }; }, { "node": "nodeChange"; "editorClose": "editorClose"; }, never, never, true, never>; } /** * Graph nodes list repository. */ declare class GraphTripleListRepository implements PagedListStoreService<TripleFilter, UriTriple> { private _graphService; private readonly _store; private readonly _loading$; private readonly _filter$; private readonly _subjectNode$; private readonly _predicateNode$; private readonly _objectNode$; get loading$(): Observable<boolean | undefined>; get filter$(): Observable<TripleFilter>; get page$(): Observable<DataPage<UriTriple>>; get subjectNode$(): Observable<UriNode | undefined>; get predicateNode$(): Observable<UriNode | undefined>; get objectNode$(): Observable<UriNode | undefined>; constructor(_graphService: GraphService); reset(): Promise<void>; loadPage(pageNumber: number, pageSize: number, filter: TripleFilter): Observable<DataPage<UriTriple>>; setFilter(filter: TripleFilter): Promise<void>; getFilter(): TripleFilter; setPage(pageNumber: number, pageSize: number): Promise<void>; /** * Set the node term used in filter. * * @param node The node or null/undefined. * @param type The type: subject, predicate, object. */ setTerm(node: UriNode | null | undefined, type: 'S' | 'P' | 'O'): void; /** * Set the node term used in filter by its ID. * * @param id The node ID or null/undefined. * @param type The type: subject, predicate, object. */ setTermId(id: number | null | undefined, type: 'S' | 'P' | 'O'): void; selectTerm(type: 'S' | 'P' | 'O'): Observable<UriNode | undefined>; getTerm(type: 'S' | 'P' | 'O'): UriNode | undefined; static ɵfac: i0.ɵɵFactoryDeclaration<GraphTripleListRepository, never>; static ɵprov: i0.ɵɵInjectableDeclaration<GraphTripleListRepository>; } declare class GraphTripleListComponent { private _graphService; private _dialogService; private _snackbar; private _repository; page$: Observable<DataPage<UriTriple>>; loading$: Observable<boolean | undefined>; editedTriple?: UriTriple; /** * The optional set of thesaurus entries for triple's tags. */ constructor(_graphService: GraphService, _dialogService: DialogService, _snackbar: MatSnackBar, _repository: GraphTripleListRepository); onPageChange(event: PageEvent): void; addTriple(): void; editTriple(triple: UriTriple): void; onTripleChange(triple: UriTriple): void; onEditorClose(): void; deleteTriple(triple: UriTriple): void; reset(): void; static ɵfac: i0.ɵɵFactoryDeclaration<GraphTripleListComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<GraphTripleListComponent, "cadmus-graph-triple-list", never, {}, {}, never, never, true, never>; } interface GraphNodeLookupFilter extends RefLookupFilter { isClass?: boolean | null; tag?: string; } /** * Graph node lookup service. */ declare class GraphNodeLookupService implements RefLookupService { private _graphService; constructor(_graphService: GraphService); lookup(filter: GraphNodeLookupFilter, options?: any): Observable<any[]>; getName(item: any): string; static ɵfac: i0.ɵɵFactoryDeclaration<GraphNodeLookupService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<GraphNodeLookupService>; } declare class GraphTripleEditorComponent implements OnInit, OnDestroy { lookupService: GraphNodeLookupService; private _snackbar; private _graphService; private _sub?; readonly triple: i0.ModelSignal<UriTriple | undefined>; /** * The optional set of thesaurus entries for triple's tags. */ /** * Emitted when the user requested to close the editor. */ readonly editorClose: i0.OutputEmitterRef<void>; isNew: boolean; subjectNode: FormControl<UriNode | null>; predicateNode: FormControl<UriNode | null>; objectNode: FormControl<UriNode | null>; isLiteral: FormControl<boolean>; literal: FormControl<string | null>; literalLang: FormControl<string | null>; literalType: FormControl<string | null>; tag: FormControl<string | null>; form: FormGroup; constructor(formBuilder: FormBuilder, lookupService: GraphNodeLookupService, _snackbar: MatSnackBar, _graphService: GraphService); ngOnInit(): void; ngOnDestroy(): void; onSubjectChange(node?: unknown): void; onPredicateChange(node?: unknown): void; onObjectChange(node?: unknown): void; private getNode; private updateForm; private getTriple; cancel(): void; save(): void; static ɵfac: i0.ɵɵFactoryDeclaration<GraphTripleEditorComponent, never>; static ɵcmp: i0.ɵɵComponentDeclaration<GraphTripleEditorComponent, "cadmus-graph-triple-editor", never, { "triple": { "alias": "triple"; "required": false; "isSignal": true; }; }, { "triple": "tripleChange"; "editorClose": "editorClose"; }, never, never, true, never>; } export { GraphNodeEditorComponent, GraphNodeListComponent, GraphNodeLookupService, GraphTripleEditorComponent, GraphTripleListComponent, GraphTripleListRepository, NodeListRepository }; export type { GraphNodeLookupFilter };