@obliczeniowo/elementary
Version:
Library made in Angular version 20
156 lines (151 loc) • 7.17 kB
TypeScript
import * as _angular_core from '@angular/core';
import { ElementRef, EventEmitter, ChangeDetectorRef, QueryList } from '@angular/core';
import { Category } from '@obliczeniowo/elementary/categories';
import * as i4 from '@obliczeniowo/elementary/connectors';
import { RelationConnectorComponent, Connector } from '@obliczeniowo/elementary/connectors';
import { IPoint2D, ColorRGB } from '@obliczeniowo/elementary/classes';
import * as i5 from '@obliczeniowo/elementary/menu';
import { MenuComponent } from '@obliczeniowo/elementary/menu';
import { Subscription } from 'rxjs';
import { ControlValueAccessor, ValidationErrors } from '@angular/forms';
import * as i6 from '@obliczeniowo/elementary/dialogs';
import { DialogWrapperComponent } from '@obliczeniowo/elementary/dialogs';
import * as i7 from '@obliczeniowo/elementary/color-picker';
import { ColorComponent } from '@obliczeniowo/elementary/color-picker';
import * as i3 from '@angular/common';
import * as i8 from '@obliczeniowo/elementary/buttons';
type RelationSide = 'left' | 'right';
interface RelationItemClicked {
side: RelationSide;
category: Category;
pos: IPoint2D;
}
declare class RelationItemComponent {
protected elementRef: ElementRef<HTMLElement>;
category: _angular_core.InputSignal<Category>;
side: _angular_core.InputSignal<RelationSide>;
relations: _angular_core.InputSignal<RelationConnectorComponent[]>;
menu: _angular_core.InputSignal<MenuComponent | undefined>;
disabled: _angular_core.InputSignal<boolean | undefined>;
clicked: EventEmitter<RelationItemClicked>;
remove: EventEmitter<{
category: Category;
side: RelationSide;
}>;
editColor: EventEmitter<{
category: Category;
side: RelationSide;
}>;
protected subscription: Subscription;
protected haveRelations: boolean;
onClick(): void;
hovered: EventEmitter<RelationItemComponent>;
protected menuItems: {
id: number;
text: string;
command: string;
}[];
onMouseOver(): void;
onMouseLeave(): void;
get isLeft(): boolean;
get isRight(): boolean;
constructor(elementRef: ElementRef<HTMLElement>);
ngOnDestroy(): void;
update(): void;
get position(): {
x: number;
y: number;
};
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RelationItemComponent, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RelationItemComponent, "obl-relation-item", never, { "category": { "alias": "category"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "relations": { "alias": "relations"; "required": false; "isSignal": true; }; "menu": { "alias": "menu"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; "remove": "remove"; "editColor": "editColor"; "hovered": "hovered"; }, never, never, false, never>;
}
/**
* Relations item let you create corelation between left items and right one in graphical way and modify them
*
* [menu] - add context menu component {@link MenuComponent} from {@link MenuModule}. Do not set menu items, this component
* will set them up by them self
* [translations] - set the translations using as key current (default) english text and value as new one (translated) to display
*/
declare class CategoriesRelationsComponent implements ControlValueAccessor {
protected elementRef: ElementRef<HTMLElement>;
protected changes: ChangeDetectorRef;
/**
* right side categories
*/
left: Category[];
/**
* left side categories
*/
right: Category[];
/**
* connectors array to create {@link RelationConnectorComponent}
*/
connectors: Connector[];
/**
* [translations] - set the translations using as key current (default) english text and value as new one (translated) to display
*/
translations: _angular_core.InputSignal<{
[english: string]: string;
}>;
menu: _angular_core.InputSignal<MenuComponent | undefined>;
changed: EventEmitter<{
left: Category[];
right: Category[];
connectors: Connector[];
}>;
color: DialogWrapperComponent;
protected width: number;
protected height: number;
observer: ResizeObserver;
protected highlight?: string;
protected categoryItemSelected?: RelationItemClicked;
protected mousePos?: IPoint2D;
set relations(relation: QueryList<RelationConnectorComponent>);
items: QueryList<RelationItemComponent>;
colorPicker: ColorComponent;
onMouseOver(): void;
disabled?: boolean;
protected relationsChanged: RelationConnectorComponent[];
protected target: any;
protected connectorsSelected?: Connector[];
constructor(elementRef: ElementRef<HTMLElement>, changes: ChangeDetectorRef);
onChange: (value: {
left: Category[];
right: Category[];
connectors: Connector[];
}) => void;
onTouched: () => void;
onMove(event: MouseEvent): void;
writeValue(obj: {
left: Category[];
right: Category[];
connectors: Connector[];
}): void;
registerOnChange(onChange: any): void;
registerOnTouched(onTouched: any): void;
setDisabledState?(isDisabled: boolean): void;
validate(control: any): ValidationErrors | null;
ngOnInit(): void;
ngOnDestroy(): void;
onHoverOverItem(item: RelationItemComponent): void;
onRemove(item: {
category: Category;
side: RelationSide;
}): void;
setColor(color: ColorRGB): void;
onEditColor(item: {
category: Category;
side: RelationSide;
}): void;
onEditColorConnector(connector: Connector): void;
removeConnector(connector: Connector): void;
addConnector(categoryItem: RelationItemClicked): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CategoriesRelationsComponent, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CategoriesRelationsComponent, "obl-categories-relations", never, { "left": { "alias": "left"; "required": false; }; "right": { "alias": "right"; "required": false; }; "connectors": { "alias": "connectors"; "required": false; }; "translations": { "alias": "translations"; "required": false; "isSignal": true; }; "menu": { "alias": "menu"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "changed": "changed"; }, never, never, false, never>;
}
declare class CategoriesRelationsModule {
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CategoriesRelationsModule, never>;
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<CategoriesRelationsModule, [typeof RelationItemComponent, typeof CategoriesRelationsComponent], [typeof i3.CommonModule, typeof i4.ConnectorsModule, typeof i5.MenuModule, typeof i6.DialogsModule, typeof i7.ColorPickerModule, typeof i8.ButtonsModule], [typeof CategoriesRelationsComponent]>;
static ɵinj: _angular_core.ɵɵInjectorDeclaration<CategoriesRelationsModule>;
}
export { CategoriesRelationsComponent, CategoriesRelationsModule };