mirror of
https://github.com/retspen/webvirtcloud
synced 2024-12-28 00:55:22 +00:00
51 lines
2.8 KiB
JavaScript
51 lines
2.8 KiB
JavaScript
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.fit = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
|
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
function proposeGeometry(term) {
|
|
if (!term.element.parentElement) {
|
|
return null;
|
|
}
|
|
var parentElementStyle = window.getComputedStyle(term.element.parentElement);
|
|
var parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height'));
|
|
var parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width')));
|
|
var elementStyle = window.getComputedStyle(term.element);
|
|
var elementPadding = {
|
|
top: parseInt(elementStyle.getPropertyValue('padding-top')),
|
|
bottom: parseInt(elementStyle.getPropertyValue('padding-bottom')),
|
|
right: parseInt(elementStyle.getPropertyValue('padding-right')),
|
|
left: parseInt(elementStyle.getPropertyValue('padding-left'))
|
|
};
|
|
var elementPaddingVer = elementPadding.top + elementPadding.bottom;
|
|
var elementPaddingHor = elementPadding.right + elementPadding.left;
|
|
var availableHeight = parentElementHeight - elementPaddingVer;
|
|
var availableWidth = parentElementWidth - elementPaddingHor - term._core.viewport.scrollBarWidth;
|
|
var geometry = {
|
|
cols: Math.floor(availableWidth / term._core.renderer.dimensions.actualCellWidth),
|
|
rows: Math.floor(availableHeight / term._core.renderer.dimensions.actualCellHeight)
|
|
};
|
|
return geometry;
|
|
}
|
|
exports.proposeGeometry = proposeGeometry;
|
|
function fit(term) {
|
|
var geometry = proposeGeometry(term);
|
|
if (geometry) {
|
|
if (term.rows !== geometry.rows || term.cols !== geometry.cols) {
|
|
term._core.renderer.clear();
|
|
term.resize(geometry.cols, geometry.rows);
|
|
}
|
|
}
|
|
}
|
|
exports.fit = fit;
|
|
function apply(terminalConstructor) {
|
|
terminalConstructor.prototype.proposeGeometry = function () {
|
|
return proposeGeometry(this);
|
|
};
|
|
terminalConstructor.prototype.fit = function () {
|
|
fit(this);
|
|
};
|
|
}
|
|
exports.apply = apply;
|
|
|
|
},{}]},{},[1])(1)
|
|
});
|
|
//# sourceMappingURL=fit.js.map
|