@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
24 lines • 3.05 kB
JavaScript
/**
* @description:
* Cross-browser @media (height/width)
*
* 1. window.innerWidth/Width
* 1.1. gets CSS viewport @media (height/width) which include scrollbars
* 1.2. initial-scale and zoom variations may cause mobile values to
* wrongly scale down to what PPK calls the visual
* viewport and be smaller than the @media values
* 1.3. zoom may cause values to be 1px off due to native rounding
*
* 2. document.documentElement.clientHeight/Width
* 2.1. equals CSS viewport width minus scrollbar width
* 2.2. matches @media (height) when there is no scrollbar
* 2.3. available cross-browser
* 2.4. inaccurate if doctype is missing
*/
export function tuiGetViewportHeight({ document, innerHeight }) {
return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);
}
export function tuiGetViewportWidth({ document, innerWidth }) {
return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZpZXdwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91dGlscy9kb20vZ2V0LXZpZXdwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBUztJQUNoRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLElBQUksQ0FBQyxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNsRixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEVBQUMsUUFBUSxFQUFFLFVBQVUsRUFBUztJQUM5RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLElBQUksQ0FBQyxFQUFFLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb246XG4gKiBDcm9zcy1icm93c2VyIEBtZWRpYSAoaGVpZ2h0L3dpZHRoKVxuICpcbiAqIDEuIHdpbmRvdy5pbm5lcldpZHRoL1dpZHRoXG4gKiAxLjEuIGdldHMgQ1NTIHZpZXdwb3J0IEBtZWRpYSAoaGVpZ2h0L3dpZHRoKSB3aGljaCBpbmNsdWRlIHNjcm9sbGJhcnNcbiAqIDEuMi4gaW5pdGlhbC1zY2FsZSBhbmQgem9vbSB2YXJpYXRpb25zIG1heSBjYXVzZSBtb2JpbGUgdmFsdWVzIHRvXG4gKiAgICAgIHdyb25nbHkgc2NhbGUgZG93biB0byB3aGF0IFBQSyBjYWxscyB0aGUgdmlzdWFsXG4gKiAgICAgIHZpZXdwb3J0IGFuZCBiZSBzbWFsbGVyIHRoYW4gdGhlIEBtZWRpYSB2YWx1ZXNcbiAqICAxLjMuIHpvb20gbWF5IGNhdXNlIHZhbHVlcyB0byBiZSAxcHggb2ZmIGR1ZSB0byBuYXRpdmUgcm91bmRpbmdcbiAqXG4gKiAgMi4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodC9XaWR0aFxuICogIDIuMS4gZXF1YWxzIENTUyB2aWV3cG9ydCB3aWR0aCBtaW51cyBzY3JvbGxiYXIgd2lkdGhcbiAqICAyLjIuIG1hdGNoZXMgQG1lZGlhIChoZWlnaHQpIHdoZW4gdGhlcmUgaXMgbm8gc2Nyb2xsYmFyXG4gKiAgMi4zLiBhdmFpbGFibGUgY3Jvc3MtYnJvd3NlclxuICogIDIuNC4gaW5hY2N1cmF0ZSBpZiBkb2N0eXBlIGlzIG1pc3NpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHR1aUdldFZpZXdwb3J0SGVpZ2h0KHtkb2N1bWVudCwgaW5uZXJIZWlnaHR9OiBXaW5kb3cpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDAsIGlubmVySGVpZ2h0IHx8IDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpR2V0Vmlld3BvcnRXaWR0aCh7ZG9jdW1lbnQsIGlubmVyV2lkdGh9OiBXaW5kb3cpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHwgMCwgaW5uZXJXaWR0aCB8fCAwKTtcbn1cbiJdfQ==