igniteui-angular-sovn
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
24 lines (20 loc) • 959 B
text/typescript
import { AutoPositionStrategy } from '../../../services/overlay/position/auto-position-strategy';
import { ConnectedFit } from '../../../services/overlay/utilities';
/** @hidden */
export class ExcelStylePositionStrategy extends AutoPositionStrategy {
protected override shouldFitInViewPort() {
return true;
}
protected override fitInViewport(element: HTMLElement, connectedFit: ConnectedFit) {
const heightOverflow = connectedFit.contentElementRect.height - connectedFit.viewPortRect.height;
if (heightOverflow > 0) {
element.style.width = 'auto';
element.style.height = `${connectedFit.viewPortRect.height}px`;
} else {
element.style.height = `${Math.max(
connectedFit.viewPortRect.height - connectedFit.targetRect.bottom - 1,
connectedFit.contentElementRect.height)}px`;
}
super.fitInViewport(element, connectedFit);
}
}