File Manager

Current Directory: /home/astoriaah/www/templates/yootheme/vendor/assets/uikit/src/js/core
Viewing File: /home/astoriaah/www/templates/yootheme/vendor/assets/uikit/src/js/core/height-viewport.js
import {css, endsWith, height, isNumeric, isString, offset, query, toFloat} from 'uikit-util'; export default { props: { expand: Boolean, offsetTop: Boolean, offsetBottom: Boolean, minHeight: Number }, data: { expand: false, offsetTop: false, offsetBottom: false, minHeight: 0 }, update: { write() { css(this.$el, 'boxSizing', 'border-box'); const viewport = height(window); let minHeight, offsetTop = 0; if (this.expand) { css(this.$el, {height: '', minHeight: ''}); const diff = viewport - offsetHeight(document.documentElement); if (diff > 0) { minHeight = offsetHeight(this.$el) + diff; } } else { const {top} = offset(this.$el); if (top < viewport / 2 && this.offsetTop) { offsetTop += top; } if (this.offsetBottom === true) { offsetTop += offsetHeight(this.$el.nextElementSibling); } else if (isNumeric(this.offsetBottom)) { offsetTop += (viewport / 100) * this.offsetBottom; } else if (this.offsetBottom && endsWith(this.offsetBottom, 'px')) { offsetTop += toFloat(this.offsetBottom); } else if (isString(this.offsetBottom)) { offsetTop += offsetHeight(query(this.offsetBottom, this.$el)); } // on mobile devices (iOS and Android) window.innerHeight !== 100vh minHeight = offsetTop ? `calc(100vh - ${offsetTop}px)` : '100vh'; } if (!minHeight) { return; } css(this.$el, {height: '', minHeight}); const elHeight = this.$el.offsetHeight; if (this.minHeight && this.minHeight > elHeight) { css(this.$el, 'minHeight', this.minHeight); } // IE 11 fix (min-height on a flex container won't apply to its flex items) if (viewport - offsetTop >= elHeight) { css(this.$el, 'height', minHeight); } }, events: ['load', 'resize'] } }; function offsetHeight(el) { return el && el.offsetHeight || 0; }