import { ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import { ClipboardService } from 'ngx-clipboard'; import * as i0 from "@angular/core"; export interface SCDraw2DConnectionDefintion { id: number | string; default_name: string; color: string; corner_radius: number; width: number; style: 'dashed' | 'solid'; } export type TInterfaceDirection = 'INPUT' | 'OUTPUT' | 'HYBRID'; export interface SCDraw2DPortDefintion { id: number | string; default_name: string; interface_direction: TInterfaceDirection; type: SCDraw2DNodePortType; location: SCDraw2DNodePortLocation; default_connection_id: number | string; library_export: boolean; portSvg: string; } export interface SCDraw2DNode { id: number | string; uuid?: string; name: string; type: 'default' | 'subsystem' | 'port'; svg: string; position: SCDraw2DPosition; size?: SCDraw2DNodeSize; ports?: SCDraw2DNodePort[]; attributes?: SCDraw2DAttribute[]; label?: SCDraw2DNodeLabel; libViewPos?: { scalingFactor: number; offsetHeight: number; offsetWidth: number; }; userData?: any; } export interface SCDraw2DNodeLabel { text: string; positionX: number; positionY: number; refEl: string; refX: number; refY: number; } export interface SCDraw2DAttribute { type: 'text' | 'number'; key: string; defaultValue: string | number; label: string; value?: string | number; unit?: string; } export interface ScDraws2dGroupHelper { parentId: any; groupElementId: string; groupExportJson: string; groupExportLabelJson: string; connectionJson: string; tabName: string; tabIndex: string; } export interface SCDraw2DPosition { x: number; y: number; } export interface SCDraw2DNodeSize { width: number; height: number; } export interface SCDraw2DNodePort { uuid?: string; name?: string; interface_direction: TInterfaceDirection; type: SCDraw2DNodePortType; location: SCDraw2DNodePortLocation; oldUserData?: any; } export interface SCDraw2DNodePortType { type_name: string; color: string; portSvg: string; } export interface SCDraw2DNodePortLocation { location_type: 'left' | 'right' | 'top' | 'bottom' | 'center' | 'custom'; position?: SCDraw2DPosition; } export interface SCDraw2DDragLayer { x: number; y: number; } export interface SCDraw2DElement { reference_id: string | number; attributes: SCDraw2DAttribute[]; } export interface SCDraw2DTab { index: string; elements: any; labels: any; name: string; workspace: any; emitter: any; subSystems: Ports; } export interface Ports { subSystems: number; ports: number; } export interface SCDraw2DColorThemeConfig { light?: SCDraw2DColorTheme; dark?: SCDraw2DColorTheme; default?: SCDraw2DColorTheme; } export interface SCDraw2DColorTheme { primary: string; background: string; cardBackground: string; gridBorder: string; text: string; } export declare class SCDraw2DTransformation { private draw2DInstance; private _zoomFactor; translateX: number; translateY: number; constructor(draw2DInstance: any); get zoomFactor(): number; set zoomFactor(value: number); matrix(): string; } export declare class SCDraw2dComponent implements ControlValueAccessor, OnInit, OnChanges { private clipboardService; hostField: boolean; gfxHolder: ElementRef; fileUploadInput: ElementRef; svgElements: ElementRef[]; editorContent: any; editorContentChanged: EventEmitter; console: Console; static MAX_ZOOM: number; static MIN_ZOOM: number; private currentlyHoldCtrlKey; private transformation; private currentDragLayer; private currentDragOverPosition; elements: SCDraw2DElement[]; showAttributeMenu: boolean; attributePopoverPosition: any; currentAttributes: SCDraw2DAttribute[]; currentAttributeElementId: string; groupHelper: ScDraws2dGroupHelper[]; showSubSystem: boolean; subSystemJson: string; selectedTab: number; tabs: SCDraw2DTab[]; currentNumber: number; currentlyLabelEdit: boolean; private lastX; private lastY; private isPanning; private mouseX; private mouseY; private mouseLayerX; private mouseLayerY; private currentlyHover; private currentCopyEvent; private currentZoomEvent; private draw2dElements; nodes: SCDraw2DNode[]; disableNodeMenu: boolean; initJson: string; containerID: string; activeColorTheme: 'light' | 'dark' | 'default'; colorThemes: SCDraw2DColorThemeConfig; constructor(clipboardService: ClipboardService); createConnection: (sourcePort: any, targetPort: any, callback: any, dropTarget: any) => any; onPortDragStart: (canvas: any, figure: any, x: number, y: number, shiftKey: boolean, ctrlKey: boolean) => boolean; createCommand(request: any): any; getSizeArrFromSvg(svg: string): number[]; ngAfterViewInit(): void; handleScroll(event: any): void; handleResize(): void; initWorkspace(): void; copySelectedFiguresToClipboard(duplicate?: boolean, removeAfterCopy?: boolean): void; removeSelectedElements(): void; removeElement(el: any): void; calculateSelectionMiddlePoint(selectedFigures: any): any; pasteFiguresFromClipboard(): void; applyColorTheme(): void; private initializePanning; private pan; private applyTransform; private getSelectedTransformation; private getActiveCanvasElement; private getActiveSVGElement; private getDraw2DInstance; private getTransformationElement; private initializeMouseZoom; onMouseZoom(e: WheelEvent): void; zoomOut(): void; zoomIn(): void; zoomAt(zoomBy: number, at: { x: number; y: number; }): void; createNodes(nodes: SCDraw2DNode[], forceSavedSize?: boolean): void; stringify(obj: any): string; handleElementRemoval(event: any): void; checkAndCloseRemovesTabs(tab: SCDraw2DTab): void; getNewLabelText(baseText: string): string; createPort(port: SCDraw2DNodePort, nodeShape: any, forSubsystem?: boolean, relPortId?: string): any; handleElementDragEnd(event: any, index: number): void; handleElementDragStart(event: any): void; handleElementDragOver(event: any): void; handleElementDrop(event: any): void; allowDrop(event: any): void; onMouseMove(event: any): void; onMouseLeave(event: MouseEvent): void; handleDoubleClickOnNode(emitter: any, event: any): void; deselectAllElements(): void; handleDoubleClickOnGroup(emitter: any, event: any): void; checkLabelNaming(emitterPortLabels: any): void; closeSubSystem(): void; handleClickOnNode(emitter: any, event: any): void; handleWorkspaceClick(event: any): void; saveWorkspace(): void; handleEditorConfigChanged(): void; loadRestoreFile(): void; isSelectionValid(selectedElements: any): boolean; createSubsystemElement(selectedElements: any): any; combineElements(): void; checkPortPositioning(element: any): void; getElementPorts(element: any): any[]; restoreWorkspace(savedWorkspace: string, withoutClear?: boolean, savedLabels?: string): void; restoreConnections(connections: any[]): void; downloadJson(jsonString: string): void; handleRestoreFileUpload(event: any): void; ngOnInit(): void; calcNodeSize(): void; calcLibraryNodes(): void; calcLibViewScalingFactor(node: SCDraw2DNode): void; ngOnChanges(changes: SimpleChanges): void; writeValue(obj: any): void; registerOnChange(fn: any): void; registerOnTouched(fn: any): void; setDisabledState?(isDisabled: boolean): void; rgba2hex(color: string): string; addTab(tab: SCDraw2DTab): void; changeTab(tab: number): void; removeAllTabs(): void; removeTab(index: number, removeTabInUi?: boolean): void; addPort(currSub?: number, button?: boolean, skipEmitterPort?: boolean, connection?: any, defaultPortName?: string, portColor?: string, portType?: string, portSvg?: string, relPortId?: string): any; elementById(emitterID: string): any; handleLabelChange(event: any, editPortName?: boolean): void; removeConnectedPort(event: any): void; enableLabelEditing(label: any, onCommit?: (label: any) => void): void; newPortByTemplate(port: any | SCDraw2DNodePort): any; subSystemPorts(targetElement: any, selectedElementsIds: string[]): void; handleSubsystemLabelChange(event: any): void; checkIfElementExists(id: string): boolean; deepClone(obj: any, hash?: WeakMap): any; deepCopy(obj: any): any; isConnectionExists(sourcePortId: string, targetPortId: string): boolean; hasAlreadyPortElements(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } //# sourceMappingURL=sc-draw2d.component.d.ts.map