UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

52 lines 5.4 kB
export class GridFiller { start; end; isIntentional = true; constructor(start, end) { this.start = start; this.end = end; } fillersAfterCover(start, end) { this.isIntentional = false; if (this.start < start) { if (end < this.end) { // split the filler into two const rightHalf = new GridFiller(end + 1, this.end); this.end = start - 1; rightHalf.isIntentional = false; return [this, rightHalf]; } else { // end might be cut-off this.end = Math.min(this.end, start - 1); return [this]; } } else { if (end < this.end) { // start might be cut-off this.start = Math.max(this.start, end + 1); return [this]; } else { // entire filler is covered return []; } } } convertToGridElement(y) { return { type: 'blank', layout: { x: this.start, y, rows: 1, cols: this.end - this.start + 1 } }; } isFullWidth(width) { return this.start === 0 && this.end === width - 1; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1maWxsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3V0aWxpdHkvZ3JpZC1sYXlvdXQvbW9kZWwvZ3JpZC1maWxsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFVBQVU7SUFHQztJQUF1QjtJQUZwQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBRTVCLFlBQW9CLEtBQWEsRUFBVSxHQUFXO1FBQWxDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFRO0lBQUksQ0FBQztJQUUzRCxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsR0FBVztRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFO1lBQ3BCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hCLDRCQUE0QjtnQkFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDckIsU0FBUyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQ2hDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0gsdUJBQXVCO2dCQUN2QixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNqQjtTQUNKO2FBQU07WUFDSCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNoQix5QkFBeUI7Z0JBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pCO2lCQUFNO2dCQUNILDJCQUEyQjtnQkFDM0IsT0FBTyxFQUFFLENBQUM7YUFDYjtTQUNKO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLENBQVM7UUFDMUIsT0FBTztZQUNILElBQUksRUFBRSxPQUFPO1lBQ2IsTUFBTSxFQUFFO2dCQUNKLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDYixDQUFDO2dCQUNELElBQUksRUFBRSxDQUFDO2dCQUNQLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQzthQUNsQztTQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtHcmlkRWxlbWVudH0gZnJvbSAnLi9ncmlkLWVsZW1lbnQnO1xuXG5leHBvcnQgY2xhc3MgR3JpZEZpbGxlciB7XG4gICAgcHVibGljIGlzSW50ZW50aW9uYWwgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzdGFydDogbnVtYmVyLCBwcml2YXRlIGVuZDogbnVtYmVyKSB7IH1cblxuICAgIGZpbGxlcnNBZnRlckNvdmVyKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogQXJyYXk8R3JpZEZpbGxlcj4ge1xuICAgICAgICB0aGlzLmlzSW50ZW50aW9uYWwgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnQgPCBzdGFydCkge1xuICAgICAgICAgICAgaWYgKGVuZCA8IHRoaXMuZW5kKSB7XG4gICAgICAgICAgICAgICAgLy8gc3BsaXQgdGhlIGZpbGxlciBpbnRvIHR3b1xuICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0SGFsZiA9IG5ldyBHcmlkRmlsbGVyKGVuZCArIDEsIHRoaXMuZW5kKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVuZCA9IHN0YXJ0IC0gMTtcbiAgICAgICAgICAgICAgICByaWdodEhhbGYuaXNJbnRlbnRpb25hbCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBbdGhpcywgcmlnaHRIYWxmXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZW5kIG1pZ2h0IGJlIGN1dC1vZmZcbiAgICAgICAgICAgICAgICB0aGlzLmVuZCA9IE1hdGgubWluKHRoaXMuZW5kLCBzdGFydCAtIDEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbdGhpc107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZW5kIDwgdGhpcy5lbmQpIHtcbiAgICAgICAgICAgICAgICAvLyBzdGFydCBtaWdodCBiZSBjdXQtb2ZmXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydCA9IE1hdGgubWF4KHRoaXMuc3RhcnQsIGVuZCArIDEpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbdGhpc107XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGVudGlyZSBmaWxsZXIgaXMgY292ZXJlZFxuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnZlcnRUb0dyaWRFbGVtZW50KHk6IG51bWJlcik6IEdyaWRFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdibGFuaycsXG4gICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICB4OiB0aGlzLnN0YXJ0LFxuICAgICAgICAgICAgICAgIHksXG4gICAgICAgICAgICAgICAgcm93czogMSxcbiAgICAgICAgICAgICAgICBjb2xzOiB0aGlzLmVuZCAtIHRoaXMuc3RhcnQgKyAxXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaXNGdWxsV2lkdGgod2lkdGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydCA9PT0gMCAmJiB0aGlzLmVuZCA9PT0gd2lkdGggLSAxO1xuICAgIH1cbn1cbiJdfQ==