54 lines
2.8 KiB
JavaScript
54 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 e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({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.viewport.scrollBarWidth;
|
||
|
var geometry = {
|
||
|
cols: Math.floor(availableWidth / term.renderer.dimensions.actualCellWidth),
|
||
|
rows: Math.floor(availableHeight / term.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.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
|