@favian/headwind-ui
Version:
Headless UI for Angular - Styleless Angular components to integrate with Tailwind CSS
35 lines • 3.85 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class HeadwindWindowService {
/**
* Returns whether there is space for an element at the bottom of the Window
* @param y - Y-axis position of the top of the element
* @param height - Height of the element
*/
isBottomSpaceAvailable(y, height) {
return y + height < window.innerHeight;
}
/**
* Returns whether there is space for an element at the top of the Window
* @param y - Y-axis position of the bottom of the element
* @param height - Height of the element
*/
isTopSpaceAvailable(y, height) {
return y - height > 0;
}
isRightSpaceAvailable(x, width) {
return x + width < window.innerWidth;
}
isLeftSpaceAvailable(x, width) {
return x - width > 0;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeadwindWindowService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeadwindWindowService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeadwindWindowService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZHdpbmQtd2luZG93LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9oZWFkd2luZC11aS9zcmMvc2VydmljZXMvaGVhZHdpbmQtd2luZG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQzs7OztPQUlHO0lBQ0gsc0JBQXNCLENBQUMsQ0FBUyxFQUFFLE1BQWM7UUFDOUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxDQUFTLEVBQUUsTUFBYztRQUMzQyxPQUFPLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxDQUFTLEVBQUUsS0FBYTtRQUM1QyxPQUFPLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsQ0FBUyxFQUFFLEtBQWE7UUFDM0MsT0FBTyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDOytHQXpCVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWR3aW5kV2luZG93U2VydmljZSB7XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZXJlIGlzIHNwYWNlIGZvciBhbiBlbGVtZW50IGF0IHRoZSBib3R0b20gb2YgdGhlIFdpbmRvd1xyXG4gICAqIEBwYXJhbSB5IC0gWS1heGlzIHBvc2l0aW9uIG9mIHRoZSB0b3Agb2YgdGhlIGVsZW1lbnRcclxuICAgKiBAcGFyYW0gaGVpZ2h0IC0gSGVpZ2h0IG9mIHRoZSBlbGVtZW50XHJcbiAgICovXHJcbiAgaXNCb3R0b21TcGFjZUF2YWlsYWJsZSh5OiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4geSArIGhlaWdodCA8IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgd2hldGhlciB0aGVyZSBpcyBzcGFjZSBmb3IgYW4gZWxlbWVudCBhdCB0aGUgdG9wIG9mIHRoZSBXaW5kb3dcclxuICAgKiBAcGFyYW0geSAtIFktYXhpcyBwb3NpdGlvbiBvZiB0aGUgYm90dG9tIG9mIHRoZSBlbGVtZW50XHJcbiAgICogQHBhcmFtIGhlaWdodCAtIEhlaWdodCBvZiB0aGUgZWxlbWVudFxyXG4gICAqL1xyXG4gIGlzVG9wU3BhY2VBdmFpbGFibGUoeTogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHkgLSBoZWlnaHQgPiAwO1xyXG4gIH1cclxuXHJcbiAgaXNSaWdodFNwYWNlQXZhaWxhYmxlKHg6IG51bWJlciwgd2lkdGg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHggKyB3aWR0aCA8IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgaXNMZWZ0U3BhY2VBdmFpbGFibGUoeDogbnVtYmVyLCB3aWR0aDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4geCAtIHdpZHRoID4gMDtcclxuICB9XHJcbn1cclxuIl19