@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
163 lines • 6.04 kB
TypeScript
import { CdkDrag, CdkDragEnd, CdkDragStart } from '@angular/cdk/drag-drop';
import { ElementRef, EventEmitter } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { Observable, Subscription } from 'rxjs';
import { DashboardChildActionComponent } from './dashboard-child-action.component';
import { DashboardComponent } from './dashboard.component';
import { DashboardChildDimension, Widget } from './dashboard.model';
import * as i0 from "@angular/core";
/**
* A dashboard child allows to position elements
* correctly on a grid.
*
* By setting `c8y-dashboard-child-actions` and
* `c8y-dashboard-child-title` on the element you can add
* custom actions or a custom title to the current child.
*
* By adding the correct branded classes, you can define
* the look and feel of the child. By default it is displayed
* as a card.
*
* ```html
* <c8y-dashboard-child
* #cpWidget3
* [x]="0"
* [y]="3"
* [width]="4"
* [height]="4"
* [class]="'card-dashboard panel-content-transparent'"
* >
* <c8y-dashboard-child-title *ngIf="showTitle">
* <span>Transparent!</span>
* </c8y-dashboard-child-title>
* <c8y-dashboard-child-action>
* <a href="" (click)="showTitle = !showTitle; (false)">
* <i [c8yIcon]="'heading'"></i> Hide/show title
* </a>
* </c8y-dashboard-child-action>
* x: {{ cpWidget3.x }}<br />
* y: {{ cpWidget3.y }}<br />
* width: {{ cpWidget3.width }}<br />
* height: {{ cpWidget3.height }}<br />
* </c8y-dashboard-child>
* ```
*/
export declare class DashboardChildComponent implements DashboardChildDimension {
dashboard: DashboardComponent;
private sanitizer;
element: ElementRef;
actions: DashboardChildActionComponent[];
set templateActions(actions: DashboardChildActionComponent[]);
dragSource: CdkDrag;
isResize: boolean;
isDragging: boolean;
klasses: {};
_pxWidth: string;
_pxHeight: string;
fullscreen: boolean;
readonly MD_BOOTSTRAP_BREAKPOINT_READONLY_CLASS_PROPERTY = 768;
/**
* The x position of the child.
*/
x: any;
/**
* The y position of the child.
*/
y: any;
/**
* The width of the component in grid-columns.
*/
width: number;
/**
* The height of the component in grid-rows.
*/
height: number;
/**
* The data object can be used as a dataTransfer object for events of the child.
*/
data: Widget | any;
/**
* The margin of the child in pixel.
*/
margin: number;
/**
* The child content is initialized, as soon it is scrolled into viewport
*/
useIntersection: boolean;
/**
* If a dashboard is frozen, all children cannot be moved
* or resized.
* @deprecated use editMode.
*/
set isFrozen(value: boolean);
canToggleFullscreen: boolean;
/**
* If a dashboard editing is disabled no widgets can be moved, edited, removed
* or added.
*/
editMode: boolean;
/**
* An event fired if a child change is started (dragging or resizing)
*/
changeStart: EventEmitter<DashboardChildComponent>;
/**
* An event fired if a child change is ended
*/
changeEnd: EventEmitter<DashboardChildComponent>;
/**
* An event fired if the fullscreen toggle button was pressed.
*/
toggleFullscreen: EventEmitter<void>;
/**
* All classes added to this child
*/
class: string[] | {
[key: string]: boolean;
};
/**
* Updates the pixel width of the child (used for resizing)
*/
set pxWidth(value: any);
/**
* Updates the pixel height of the child (used for resizing)
*/
set pxHeight(value: any);
/**
* Triggers on every resize and returns true if in one column view (mobile view)
*/
isOneColumnView$: Observable<boolean>;
/**
* An indicator if the child is intersected (that mean visible for the user)
*/
intersected: boolean;
/**
* Tells if the last change was a dragging or resizing event;
*/
lastChange: 'drag' | 'resize';
/**
* nasty workaround for that issue:
* https://github.com/angular/angular/issues/9343
*/
get inlineStyle(): import("@angular/platform-browser").SafeStyle;
/**
* The observable subscription which is listen to
* on changes (drag or resize).
*/
changeSubscription: Subscription;
constructor(dashboard: DashboardComponent, sanitizer: DomSanitizer, element: ElementRef);
ngOnChanges(): void;
ngOnInit(): void;
ngAfterViewInit(): void;
setDynamicDimension(): void;
resizeStarted($event: CdkDragStart): void;
dragStarted($event: CdkDragStart): void;
reset($event?: CdkDragEnd): void;
ngOnDestroy(): void;
addActions(actions: DashboardChildActionComponent[], prepend?: boolean): void;
private removeSelfFromDashboard;
private getOrder;
private childInView;
static ɵfac: i0.ɵɵFactoryDeclaration<DashboardChildComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DashboardChildComponent, "c8y-dashboard-child", never, { "x": { "alias": "x"; "required": false; }; "y": { "alias": "y"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "data": { "alias": "data"; "required": false; }; "margin": { "alias": "margin"; "required": false; }; "useIntersection": { "alias": "useIntersection"; "required": false; }; "isFrozen": { "alias": "isFrozen"; "required": false; }; "canToggleFullscreen": { "alias": "canToggleFullscreen"; "required": false; }; "editMode": { "alias": "editMode"; "required": false; }; "class": { "alias": "class"; "required": false; }; }, { "changeStart": "changeStart"; "changeEnd": "changeEnd"; "toggleFullscreen": "toggleFullscreen"; }, ["templateActions"], ["c8y-dashboard-child-title", "*"], true, never>;
}
//# sourceMappingURL=dashboard-child.component.d.ts.map