UNPKG

@catull/igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

43 lines 7.5 kB
import { __decorate } from "tslib"; import { Directive } from '@angular/core'; import { ConnectedPositioningStrategy } from '../services'; import { VerticalAlignment } from '../services/overlay/utilities'; import { scaleInVerBottom, scaleInVerTop } from '../animations/main'; import { IgxForOfSyncService } from '../directives/for-of/for_of.sync.service'; let IgxGridBodyDirective = class IgxGridBodyDirective { }; IgxGridBodyDirective = __decorate([ Directive({ selector: '[igxGridBody]', providers: [IgxForOfSyncService] }) ], IgxGridBodyDirective); export { IgxGridBodyDirective }; /** * @hidden */ export class RowEditPositionStrategy extends ConnectedPositioningStrategy { constructor() { super(...arguments); this.isTop = false; this.isTopInitialPosition = null; } position(contentElement, size, document, initialCall) { const container = this.settings.container; // grid.tbody const target = this.settings.target; // current grid.row // Position of the overlay depends on the available space in the grid. // If the bottom space is not enough then the the row overlay will show at the top of the row. // Once shown, either top or bottom, then this position stays until the overlay is closed (isTopInitialPosition property), // which means that when scrolling then overlay may hide, while the row is still visible (UX requirement). this.isTop = this.isTopInitialPosition !== null ? this.isTopInitialPosition : container.getBoundingClientRect().bottom < target.getBoundingClientRect().bottom + contentElement.getBoundingClientRect().height; // Set width of the row editing overlay to equal row width, otherwise it fits 100% of the grid. contentElement.style.width = target.clientWidth + 'px'; this.settings.verticalStartPoint = this.settings.verticalDirection = this.isTop ? VerticalAlignment.Top : VerticalAlignment.Bottom; this.settings.openAnimation = this.isTop ? scaleInVerBottom : scaleInVerTop; super.position(contentElement, { width: target.clientWidth, height: target.clientHeight }, document, initialCall); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21tb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2dyaWRzL2dyaWQuY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sK0JBQStCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBTy9FLElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQW9CO0NBQUcsQ0FBQTtBQUF2QixvQkFBb0I7SUFKaEMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGVBQWU7UUFDekIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7S0FDbkMsQ0FBQztHQUNXLG9CQUFvQixDQUFHO1NBQXZCLG9CQUFvQjtBQVVqQzs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSw0QkFBNEI7SUFBekU7O1FBQ0ksVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLHlCQUFvQixHQUFHLElBQUksQ0FBQztJQXNCaEMsQ0FBQztJQXBCRyxRQUFRLENBQUMsY0FBMkIsRUFBRSxJQUF1QyxFQUFFLFFBQW1CLEVBQUUsV0FBcUI7UUFDckgsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhO1FBQ3hELE1BQU0sTUFBTSxHQUFnQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLG1CQUFtQjtRQUVyRSxzRUFBc0U7UUFDdEUsOEZBQThGO1FBQzlGLDBIQUEwSDtRQUMxSCwwR0FBMEc7UUFDMUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsb0JBQW9CLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDM0IsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTTtnQkFDcEMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUU5RiwrRkFBK0Y7UUFDL0YsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBQ25JLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFFNUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0SCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWZXJ0aWNhbEFsaWdubWVudCwgUG9zaXRpb25TZXR0aW5ncyB9IGZyb20gJy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcbmltcG9ydCB7IHNjYWxlSW5WZXJCb3R0b20sIHNjYWxlSW5WZXJUb3AgfSBmcm9tICcuLi9hbmltYXRpb25zL21haW4nO1xuaW1wb3J0IHsgSWd4Rm9yT2ZTeW5jU2VydmljZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5zeW5jLnNlcnZpY2UnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEdyaWRCb2R5XScsXG4gICAgcHJvdmlkZXJzOiBbSWd4Rm9yT2ZTeW5jU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZEJvZHlEaXJlY3RpdmUge31cblxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3dFZGl0UG9zaXRpb25TZXR0aW5ncyBleHRlbmRzIFBvc2l0aW9uU2V0dGluZ3Mge1xuICAgIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGNsYXNzIFJvd0VkaXRQb3NpdGlvblN0cmF0ZWd5IGV4dGVuZHMgQ29ubmVjdGVkUG9zaXRpb25pbmdTdHJhdGVneSB7XG4gICAgaXNUb3AgPSBmYWxzZTtcbiAgICBpc1RvcEluaXRpYWxQb3NpdGlvbiA9IG51bGw7XG4gICAgcHVibGljIHNldHRpbmdzOiBSb3dFZGl0UG9zaXRpb25TZXR0aW5ncztcbiAgICBwb3NpdGlvbihjb250ZW50RWxlbWVudDogSFRNTEVsZW1lbnQsIHNpemU6IHsgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIgfSwgZG9jdW1lbnQ/OiBEb2N1bWVudCwgaW5pdGlhbENhbGw/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuc2V0dGluZ3MuY29udGFpbmVyOyAvLyBncmlkLnRib2R5XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IDxIVE1MRWxlbWVudD50aGlzLnNldHRpbmdzLnRhcmdldDsgLy8gY3VycmVudCBncmlkLnJvd1xuXG4gICAgICAgIC8vIFBvc2l0aW9uIG9mIHRoZSBvdmVybGF5IGRlcGVuZHMgb24gdGhlIGF2YWlsYWJsZSBzcGFjZSBpbiB0aGUgZ3JpZC5cbiAgICAgICAgLy8gSWYgdGhlIGJvdHRvbSBzcGFjZSBpcyBub3QgZW5vdWdoIHRoZW4gdGhlIHRoZSByb3cgb3ZlcmxheSB3aWxsIHNob3cgYXQgdGhlIHRvcCBvZiB0aGUgcm93LlxuICAgICAgICAvLyBPbmNlIHNob3duLCBlaXRoZXIgdG9wIG9yIGJvdHRvbSwgdGhlbiB0aGlzIHBvc2l0aW9uIHN0YXlzIHVudGlsIHRoZSBvdmVybGF5IGlzIGNsb3NlZCAoaXNUb3BJbml0aWFsUG9zaXRpb24gcHJvcGVydHkpLFxuICAgICAgICAvLyB3aGljaCBtZWFucyB0aGF0IHdoZW4gc2Nyb2xsaW5nIHRoZW4gb3ZlcmxheSBtYXkgaGlkZSwgd2hpbGUgdGhlIHJvdyBpcyBzdGlsbCB2aXNpYmxlIChVWCByZXF1aXJlbWVudCkuXG4gICAgICAgIHRoaXMuaXNUb3AgPSB0aGlzLmlzVG9wSW5pdGlhbFBvc2l0aW9uICE9PSBudWxsID9cbiAgICAgICAgICAgIHRoaXMuaXNUb3BJbml0aWFsUG9zaXRpb24gOlxuICAgICAgICAgICAgY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSA8XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSArIGNvbnRlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuICAgICAgICAvLyBTZXQgd2lkdGggb2YgdGhlIHJvdyBlZGl0aW5nIG92ZXJsYXkgdG8gZXF1YWwgcm93IHdpZHRoLCBvdGhlcndpc2UgaXQgZml0cyAxMDAlIG9mIHRoZSBncmlkLlxuICAgICAgICBjb250ZW50RWxlbWVudC5zdHlsZS53aWR0aCA9IHRhcmdldC5jbGllbnRXaWR0aCArICdweCc7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MudmVydGljYWxTdGFydFBvaW50ID0gdGhpcy5zZXR0aW5ncy52ZXJ0aWNhbERpcmVjdGlvbiA9IHRoaXMuaXNUb3AgPyBWZXJ0aWNhbEFsaWdubWVudC5Ub3AgOiBWZXJ0aWNhbEFsaWdubWVudC5Cb3R0b207XG4gICAgICAgIHRoaXMuc2V0dGluZ3Mub3BlbkFuaW1hdGlvbiA9IHRoaXMuaXNUb3AgPyBzY2FsZUluVmVyQm90dG9tIDogc2NhbGVJblZlclRvcDtcblxuICAgICAgICBzdXBlci5wb3NpdGlvbihjb250ZW50RWxlbWVudCwgeyB3aWR0aDogdGFyZ2V0LmNsaWVudFdpZHRoLCBoZWlnaHQ6IHRhcmdldC5jbGllbnRIZWlnaHQgfSwgZG9jdW1lbnQsIGluaXRpYWxDYWxsKTtcbiAgICB9XG59XG4iXX0=