controller and vsorc data viewers done
[VSoRC/.git] / node_modules / xterm-addon-fit / out / FitAddon.js
1 "use strict";
2 Object.defineProperty(exports, "__esModule", { value: true });
3 var MINIMUM_COLS = 2;
4 var MINIMUM_ROWS = 1;
5 var FitAddon = (function () {
6     function FitAddon() {
7     }
8     FitAddon.prototype.activate = function (terminal) {
9         this._terminal = terminal;
10     };
11     FitAddon.prototype.dispose = function () { };
12     FitAddon.prototype.fit = function () {
13         var dims = this.proposeDimensions();
14         if (!dims || !this._terminal) {
15             return;
16         }
17         var core = this._terminal._core;
18         if (this._terminal.rows !== dims.rows || this._terminal.cols !== dims.cols) {
19             core._renderService.clear();
20             this._terminal.resize(dims.cols, dims.rows);
21         }
22     };
23     FitAddon.prototype.proposeDimensions = function () {
24         if (!this._terminal) {
25             return undefined;
26         }
27         if (!this._terminal.element || !this._terminal.element.parentElement) {
28             return undefined;
29         }
30         var core = this._terminal._core;
31         var parentElementStyle = window.getComputedStyle(this._terminal.element.parentElement);
32         var parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height'));
33         var parentElementWidth = Math.max(0, parseInt(parentElementStyle.getPropertyValue('width')));
34         var elementStyle = window.getComputedStyle(this._terminal.element);
35         var elementPadding = {
36             top: parseInt(elementStyle.getPropertyValue('padding-top')),
37             bottom: parseInt(elementStyle.getPropertyValue('padding-bottom')),
38             right: parseInt(elementStyle.getPropertyValue('padding-right')),
39             left: parseInt(elementStyle.getPropertyValue('padding-left'))
40         };
41         var elementPaddingVer = elementPadding.top + elementPadding.bottom;
42         var elementPaddingHor = elementPadding.right + elementPadding.left;
43         var availableHeight = parentElementHeight - elementPaddingVer;
44         var availableWidth = parentElementWidth - elementPaddingHor - core.viewport.scrollBarWidth;
45         var geometry = {
46             cols: Math.max(MINIMUM_COLS, Math.floor(availableWidth / core._renderService.dimensions.actualCellWidth)),
47             rows: Math.max(MINIMUM_ROWS, Math.floor(availableHeight / core._renderService.dimensions.actualCellHeight))
48         };
49         return geometry;
50     };
51     return FitAddon;
52 }());
53 exports.FitAddon = FitAddon;
54 //# sourceMappingURL=FitAddon.js.map