ag-grid
Version:
Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
67 lines (53 loc) • 2.53 kB
text/typescript
import {Bean, Autowired, PostConstruct} from "../context/context";
import {Utils as _} from "../utils";
import {EventService} from "../eventService";
import {Events, ScrollVisibilityChangedEvent} from "../events";
import {ColumnController} from "../columnController/columnController";
import {ColumnApi} from "../columnController/columnApi";
import {GridApi} from "../gridApi";
import {GridOptionsWrapper} from "../gridOptionsWrapper";
export interface SetScrollsVisibleParams {
bodyHorizontalScrollShowing: boolean;
leftVerticalScrollShowing: boolean;
rightVerticalScrollShowing: boolean;
}
export class ScrollVisibleService {
private eventService: EventService;
private columnController: ColumnController;
private columnApi: ColumnApi;
private gridApi: GridApi;
private gridOptionsWrapper: GridOptionsWrapper;
private bodyHorizontalScrollShowing: boolean;
private leftVerticalScrollShowing: boolean;
private rightVerticalScrollShowing: boolean;
public setScrollsVisible(params: SetScrollsVisibleParams): void {
let atLeastOneDifferent =
this.bodyHorizontalScrollShowing !== params.bodyHorizontalScrollShowing ||
this.leftVerticalScrollShowing !== params.leftVerticalScrollShowing ||
this.rightVerticalScrollShowing !== params.rightVerticalScrollShowing;
if (atLeastOneDifferent) {
this.bodyHorizontalScrollShowing = params.bodyHorizontalScrollShowing;
this.leftVerticalScrollShowing = params.leftVerticalScrollShowing;
this.rightVerticalScrollShowing = params.rightVerticalScrollShowing;
let event: ScrollVisibilityChangedEvent = {
type: Events.EVENT_SCROLL_VISIBILITY_CHANGED,
api: this.gridApi,
columnApi: this.columnApi
};
this.eventService.dispatchEvent(event);
}
}
// used by pagination service - to know page height
public isBodyHorizontalScrollShowing(): boolean {
return this.bodyHorizontalScrollShowing;
}
// used by header container
public isLeftVerticalScrollShowing(): boolean {
return this.leftVerticalScrollShowing;
}
// used by header container
public isRightVerticalScrollShowing(): boolean {
return this.rightVerticalScrollShowing;
}
}