@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
50 lines • 7.97 kB
JavaScript
import { __decorate, __extends } 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';
var IgxGridBodyDirective = /** @class */ (function () {
function IgxGridBodyDirective() {
}
IgxGridBodyDirective = __decorate([
Directive({
selector: '[igxGridBody]',
providers: [IgxForOfSyncService]
})
], IgxGridBodyDirective);
return IgxGridBodyDirective;
}());
export { IgxGridBodyDirective };
/**
* @hidden
*/
var RowEditPositionStrategy = /** @class */ (function (_super) {
__extends(RowEditPositionStrategy, _super);
function RowEditPositionStrategy() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.isTop = false;
_this.isTopInitialPosition = null;
return _this;
}
RowEditPositionStrategy.prototype.position = function (contentElement, size, document, initialCall) {
var container = this.settings.container; // grid.tbody
var 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.prototype.position.call(this, contentElement, { width: target.clientWidth, height: target.clientHeight }, document, initialCall);
};
return RowEditPositionStrategy;
}(ConnectedPositioningStrategy));
export { RowEditPositionStrategy };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21tb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2dyaWRzL2dyaWQuY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQW9CLE1BQU0sK0JBQStCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBTy9FO0lBQUE7SUFBbUMsQ0FBQztJQUF2QixvQkFBb0I7UUFKaEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7U0FDbkMsQ0FBQztPQUNXLG9CQUFvQixDQUFHO0lBQUQsMkJBQUM7Q0FBQSxBQUFwQyxJQUFvQztTQUF2QixvQkFBb0I7QUFVakM7O0dBRUc7QUFDSDtJQUE2QywyQ0FBNEI7SUFBekU7UUFBQSxxRUF3QkM7UUF2QkcsV0FBSyxHQUFHLEtBQUssQ0FBQztRQUNkLDBCQUFvQixHQUFHLElBQUksQ0FBQzs7SUFzQmhDLENBQUM7SUFwQkcsMENBQVEsR0FBUixVQUFTLGNBQTJCLEVBQUUsSUFBdUMsRUFBRSxRQUFtQixFQUFFLFdBQXFCO1FBQ3JILElBQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYTtRQUN4RCxJQUFNLE1BQU0sR0FBZ0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxtQkFBbUI7UUFFckUsc0VBQXNFO1FBQ3RFLDhGQUE4RjtRQUM5RiwwSEFBMEg7UUFDMUgsMEdBQTBHO1FBQzFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixLQUFLLElBQUksQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzNCLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU07Z0JBQ3BDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFFOUYsK0ZBQStGO1FBQy9GLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUNuSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBRTVFLGlCQUFNLFFBQVEsWUFBQyxjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0SCxDQUFDO0lBQ0wsOEJBQUM7QUFBRCxDQUFDLEFBeEJELENBQTZDLDRCQUE0QixHQXdCeEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWZXJ0aWNhbEFsaWdubWVudCwgUG9zaXRpb25TZXR0aW5ncyB9IGZyb20gJy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcbmltcG9ydCB7IHNjYWxlSW5WZXJCb3R0b20sIHNjYWxlSW5WZXJUb3AgfSBmcm9tICcuLi9hbmltYXRpb25zL21haW4nO1xuaW1wb3J0IHsgSWd4Rm9yT2ZTeW5jU2VydmljZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5zeW5jLnNlcnZpY2UnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEdyaWRCb2R5XScsXG4gICAgcHJvdmlkZXJzOiBbSWd4Rm9yT2ZTeW5jU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZEJvZHlEaXJlY3RpdmUge31cblxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3dFZGl0UG9zaXRpb25TZXR0aW5ncyBleHRlbmRzIFBvc2l0aW9uU2V0dGluZ3Mge1xuICAgIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50O1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGNsYXNzIFJvd0VkaXRQb3NpdGlvblN0cmF0ZWd5IGV4dGVuZHMgQ29ubmVjdGVkUG9zaXRpb25pbmdTdHJhdGVneSB7XG4gICAgaXNUb3AgPSBmYWxzZTtcbiAgICBpc1RvcEluaXRpYWxQb3NpdGlvbiA9IG51bGw7XG4gICAgcHVibGljIHNldHRpbmdzOiBSb3dFZGl0UG9zaXRpb25TZXR0aW5ncztcbiAgICBwb3NpdGlvbihjb250ZW50RWxlbWVudDogSFRNTEVsZW1lbnQsIHNpemU6IHsgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIgfSwgZG9jdW1lbnQ/OiBEb2N1bWVudCwgaW5pdGlhbENhbGw/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuc2V0dGluZ3MuY29udGFpbmVyOyAvLyBncmlkLnRib2R5XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IDxIVE1MRWxlbWVudD50aGlzLnNldHRpbmdzLnRhcmdldDsgLy8gY3VycmVudCBncmlkLnJvd1xuXG4gICAgICAgIC8vIFBvc2l0aW9uIG9mIHRoZSBvdmVybGF5IGRlcGVuZHMgb24gdGhlIGF2YWlsYWJsZSBzcGFjZSBpbiB0aGUgZ3JpZC5cbiAgICAgICAgLy8gSWYgdGhlIGJvdHRvbSBzcGFjZSBpcyBub3QgZW5vdWdoIHRoZW4gdGhlIHRoZSByb3cgb3ZlcmxheSB3aWxsIHNob3cgYXQgdGhlIHRvcCBvZiB0aGUgcm93LlxuICAgICAgICAvLyBPbmNlIHNob3duLCBlaXRoZXIgdG9wIG9yIGJvdHRvbSwgdGhlbiB0aGlzIHBvc2l0aW9uIHN0YXlzIHVudGlsIHRoZSBvdmVybGF5IGlzIGNsb3NlZCAoaXNUb3BJbml0aWFsUG9zaXRpb24gcHJvcGVydHkpLFxuICAgICAgICAvLyB3aGljaCBtZWFucyB0aGF0IHdoZW4gc2Nyb2xsaW5nIHRoZW4gb3ZlcmxheSBtYXkgaGlkZSwgd2hpbGUgdGhlIHJvdyBpcyBzdGlsbCB2aXNpYmxlIChVWCByZXF1aXJlbWVudCkuXG4gICAgICAgIHRoaXMuaXNUb3AgPSB0aGlzLmlzVG9wSW5pdGlhbFBvc2l0aW9uICE9PSBudWxsID9cbiAgICAgICAgICAgIHRoaXMuaXNUb3BJbml0aWFsUG9zaXRpb24gOlxuICAgICAgICAgICAgY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSA8XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSArIGNvbnRlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuICAgICAgICAvLyBTZXQgd2lkdGggb2YgdGhlIHJvdyBlZGl0aW5nIG92ZXJsYXkgdG8gZXF1YWwgcm93IHdpZHRoLCBvdGhlcndpc2UgaXQgZml0cyAxMDAlIG9mIHRoZSBncmlkLlxuICAgICAgICBjb250ZW50RWxlbWVudC5zdHlsZS53aWR0aCA9IHRhcmdldC5jbGllbnRXaWR0aCArICdweCc7XG4gICAgICAgIHRoaXMuc2V0dGluZ3MudmVydGljYWxTdGFydFBvaW50ID0gdGhpcy5zZXR0aW5ncy52ZXJ0aWNhbERpcmVjdGlvbiA9IHRoaXMuaXNUb3AgPyBWZXJ0aWNhbEFsaWdubWVudC5Ub3AgOiBWZXJ0aWNhbEFsaWdubWVudC5Cb3R0b207XG4gICAgICAgIHRoaXMuc2V0dGluZ3Mub3BlbkFuaW1hdGlvbiA9IHRoaXMuaXNUb3AgPyBzY2FsZUluVmVyQm90dG9tIDogc2NhbGVJblZlclRvcDtcblxuICAgICAgICBzdXBlci5wb3NpdGlvbihjb250ZW50RWxlbWVudCwgeyB3aWR0aDogdGFyZ2V0LmNsaWVudFdpZHRoLCBoZWlnaHQ6IHRhcmdldC5jbGllbnRIZWlnaHQgfSwgZG9jdW1lbnQsIGluaXRpYWxDYWxsKTtcbiAgICB9XG59XG4iXX0=