com.phloxui
Version:
PhloxUI Ng2+ Framework
886 lines (885 loc) • 76.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ElementRef, Input, Type, Output, EventEmitter } from '@angular/core';
import { TabModel } from './model/TabModel';
import { TAB_CHANGE_EVENT, TAB_ADD_EVENT, TAB_NEW_TAB_BTN_CLICK } from '../share/CustomEventType';
import { ArrayUtils } from '../share/utils/ArrayUtils';
import { Option } from '../decorator/Option.decorator';
import { I18N } from '../decorator/I18N.decorator';
import { AbstractI18NApplicable } from "../share/AbstractI18NApplicable";
import { EventUtils } from '../share/utils/EventUtils';
var /** @type {?} */ TYPE_NAME = "phx-tab-pane";
var TabPane = /** @class */ (function (_super) {
tslib_1.__extends(TabPane, _super);
function TabPane(elementRef) {
var _this = _super.call(this) || this;
_this.TAB_GROUP_SELECTOR = ".tab-group";
_this.TAB_LEFT_MOVING_CLASS = "insert-left";
_this.TAB_RIGHT_MOVING_CLASS = "insert-right";
_this.tabModels = [];
_this.tabHeaders = [];
_this.tabBodies = [];
_this.newTabClickedEventHandler = new EventEmitter();
_this.tabChangedEventHandler = new EventEmitter();
_this.tabAddedEventHandler = new EventEmitter();
_this.tabMovedEventHandler = new EventEmitter();
_this.changeEvent = new EventEmitter();
_this.showAddTabBtn = true;
// this.showBtnGroup = true;
// this.showBtnGroup = true;
_this.tabDragging = false;
_this.elementRef = elementRef;
_this.tabComponentHandler = function (data) {
if (_this != null && typeof _this !== 'undefined') {
_this.addTabBody(data.instance);
// emit event
var /** @type {?} */ lastIndex = _this.tabModels.length - 1;
var /** @type {?} */ d = {
model: _this.tabModels[lastIndex],
tabHeader: _this.tabHeaders[lastIndex],
tabBody: _this.tabBodies[lastIndex]
};
var /** @type {?} */ ev = EventUtils.newCustomEvent(TAB_ADD_EVENT, _this, d, null);
_this.tabAddedEventHandler.emit(ev);
}
};
return _this;
}
/**
* @return {?}
*/
TabPane.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
this.currentIndex = -1;
// mousemoving on body
$("body").mousemove(function (event) {
if (event === null || typeof event === 'undefined') {
return;
}
var /** @type {?} */ clientX = event.pageX;
if (_this.draggingTab === null || typeof _this.draggingTab === 'undefined') {
return;
}
_this.tabDragging = true;
var /** @type {?} */ adding = false;
var /** @type {?} */ tabSelector = _this.TAB_GROUP_SELECTOR + " > .tab-label";
$(_this.elementRef.nativeElement).find(tabSelector).each(function (index, value) {
var /** @type {?} */ width = $(value).width();
var /** @type {?} */ offset = $(value).offset();
var /** @type {?} */ left = 0;
if (typeof offset !== 'undefined') {
left = offset.left;
}
var /** @type {?} */ end = left + width;
var /** @type {?} */ half = left + (width / 2);
if (clientX >= left && clientX < half) {
if (!adding) {
$(value).addClass(_this.TAB_LEFT_MOVING_CLASS);
$(value).removeClass(_this.TAB_RIGHT_MOVING_CLASS);
adding = true;
}
}
else if (clientX >= half && clientX < end) {
if (!adding) {
$(value).addClass(_this.TAB_RIGHT_MOVING_CLASS);
$(value).removeClass(_this.TAB_LEFT_MOVING_CLASS);
adding = true;
}
}
else {
$(value).removeClass(_this.TAB_LEFT_MOVING_CLASS);
$(value).removeClass(_this.TAB_RIGHT_MOVING_CLASS);
}
});
});
// onmouseup on body
$("body").mouseup(function () {
if (!_this.tabDragging) {
_this.draggingTab = null;
return;
}
// reset style & get final Index
var /** @type {?} */ fromIndex = -1;
if (_this.draggingTab !== null && typeof _this.draggingTab !== 'undefined') {
fromIndex = _this.tabModels.indexOf(_this.draggingTab);
}
var /** @type {?} */ toIndex = -1;
var /** @type {?} */ tabSelector = _this.TAB_GROUP_SELECTOR + " > .tab-label";
$(_this.elementRef.nativeElement).find(tabSelector).each(function (index, value) {
if ($(value).hasClass(_this.TAB_LEFT_MOVING_CLASS)) {
if (fromIndex > index) {
toIndex = index;
}
else {
toIndex = index - 1;
}
$(value).removeClass(_this.TAB_LEFT_MOVING_CLASS);
}
if ($(value).hasClass(_this.TAB_RIGHT_MOVING_CLASS)) {
if (fromIndex > index) {
toIndex = index + 1;
}
else {
toIndex = index;
}
$(value).removeClass(_this.TAB_RIGHT_MOVING_CLASS);
}
});
// reRender tab if need change ordering
if (toIndex > -1) {
_this.moveTabModel(fromIndex, toIndex);
if (fromIndex !== toIndex) {
_this.showTabAtIndex(toIndex);
}
}
var /** @type {?} */ data = {
fromIndex: fromIndex,
toIndex: toIndex
};
var /** @type {?} */ ev = EventUtils.newCustomEvent(TAB_ADD_EVENT, _this, data, null);
_this.tabMovedEventHandler.emit(ev);
_this.draggingTab = null;
_this.tabDragging = false;
});
};
/**
* @param {?} body
* @return {?}
*/
TabPane.prototype.getTabBodyIndex = /**
* @param {?} body
* @return {?}
*/
function (body) {
if (body !== null && typeof body !== 'undefined') {
var /** @type {?} */ index = 0;
try {
for (var _a = tslib_1.__values(this.tabBodies), _b = _a.next(); !_b.done; _b = _a.next()) {
var item = _b.value;
if (item === body) {
return index;
}
index += 1;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
}
finally { if (e_1) throw e_1.error; }
}
}
return -1;
var e_1, _c;
};
/**
* @param {?} body
* @return {?}
*/
TabPane.prototype.addTabBody = /**
* @param {?} body
* @return {?}
*/
function (body) {
var _this = this;
if (body === null) {
return;
}
this.tabBodies.push(body);
var /** @type {?} */ lastIndex = this.tabBodies.length - 1;
if (lastIndex > -1 && lastIndex < this.tabHeaders.length) {
var /** @type {?} */ header = this.tabHeaders[lastIndex];
header.addDataChild(body);
}
if (typeof body.getChange === 'function') {
body.getChangedEvent().subscribe(function (event) {
if (event.detail !== null && typeof event.detail !== 'undefined') {
if (event.detail.data !== null && typeof event.detail.data !== 'undefined') {
if (event.detail.data.bubbleStack !== null && typeof event.detail.data.bubbleStack !== 'undefined') {
event.detail.data.bubbleStack.push(_this);
}
else {
event.detail.data.bubbleStack = [_this];
}
}
}
event.tabIndex = _this.getTabBodyIndex(body); //! bug fix here
_this.changeEvent.emit(event);
});
}
};
/**
* @param {?} body
* @return {?}
*/
TabPane.prototype.removeTabBody = /**
* @param {?} body
* @return {?}
*/
function (body) {
if (body === null) {
return;
}
var /** @type {?} */ toRemoveIdx = this.tabBodies.indexOf(body);
if (toRemoveIdx > -1 && toRemoveIdx < this.tabHeaders.length) {
var /** @type {?} */ header = this.tabHeaders[toRemoveIdx];
header.removeDataChild(body);
}
if (toRemoveIdx > -1) {
this.tabBodies.splice(toRemoveIdx, 1);
}
};
/**
* @param {?} index
* @return {?}
*/
TabPane.prototype.setTabSelected = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || index <= -1 || typeof index === 'undefined') {
return;
}
this.tabHeaders.forEach(function (item, idx) {
if (idx === index) {
item.setSelected(true);
}
else {
item.setSelected(false);
}
});
};
/**
* @param {?} fromIndex
* @param {?} toIndex
* @return {?}
*/
TabPane.prototype.moveTabModel = /**
* @param {?} fromIndex
* @param {?} toIndex
* @return {?}
*/
function (fromIndex, toIndex) {
if (toIndex === null || typeof toIndex === 'undefined' || toIndex <= -1) {
return;
}
if (fromIndex === null || typeof fromIndex === 'undefined' || fromIndex <= -1) {
return;
}
if (fromIndex === toIndex) {
return;
}
ArrayUtils.move(this.tabHeaders, fromIndex, toIndex);
ArrayUtils.move(this.tabBodies, fromIndex, toIndex);
ArrayUtils.move(this.tabModels, fromIndex, toIndex);
};
/**
* mouse dragging *
* @param {?} $event
* @param {?} tab
* @return {?}
*/
TabPane.prototype.onMouseDownTab = /**
* mouse dragging *
* @param {?} $event
* @param {?} tab
* @return {?}
*/
function ($event, tab) {
if (this.draggingTab !== null && typeof this.draggingTab !== 'undefined') {
this.draggingTab = null;
this.tabMouseDifPositionY = null;
}
else {
this.draggingTab = tab;
}
};
/**
* @param {?} model
* @return {?}
*/
TabPane.prototype.getTabModelIndex = /**
* @param {?} model
* @return {?}
*/
function (model) {
if (this.tabModels !== null && typeof this.tabModels !== 'undefined') {
var /** @type {?} */ index = 0;
try {
for (var _a = tslib_1.__values(this.tabModels), _b = _a.next(); !_b.done; _b = _a.next()) {
var innerModel = _b.value;
if (innerModel === model) {
return index;
}
index += 1;
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
}
finally { if (e_2) throw e_2.error; }
}
}
return -1;
var e_2, _c;
};
/**
* @return {?}
*/
TabPane.prototype.getTabsCount = /**
* @return {?}
*/
function () {
return this.tabModels.length;
};
/**
* @return {?}
*/
TabPane.prototype.addDefaultTab = /**
* @return {?}
*/
function () {
this.addTab(new TabModel('New tab', null, this.tabComponentType, this.tabComponentModel, null));
if (this.currentIndex <= -1) {
this.currentIndex = 0;
this.setTabSelected(this.currentIndex);
}
};
/**
* @param {?} tabModel
* @return {?}
*/
TabPane.prototype.addTab = /**
* @param {?} tabModel
* @return {?}
*/
function (tabModel) {
if (tabModel == null || typeof tabModel === 'undefined') {
return;
}
this.tabModels.push(tabModel);
if (this.currentIndex <= -1) {
this.currentIndex = 0;
this.setTabSelected(this.currentIndex);
}
};
/**
* @param {?} $event
* @return {?}
*/
TabPane.prototype.onNewTabClicked = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
if (this.tabComponentType !== null && (typeof this.tabComponentType !== 'undefined')) {
this.addDefaultTab();
}
this.currentIndex = this.tabModels.length - 1;
if (this.currentIndex <= -1) {
this.currentIndex = 0;
}
this.setTabSelected(this.currentIndex);
var /** @type {?} */ data = {
model: this.tabModels[this.currentIndex],
tabHeader: this.tabHeaders[this.currentIndex],
tabBody: this.tabBodies[this.currentIndex]
};
var /** @type {?} */ ev = EventUtils.newCustomEvent(TAB_NEW_TAB_BTN_CLICK, this, data, $event);
this.newTabClickedEventHandler.emit(ev);
};
/**
* @param {?} index
* @return {?}
*/
TabPane.prototype.showTabAtIndex = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || typeof index === 'undefined') {
return;
}
this.currentIndex = index;
this.setTabSelected(this.currentIndex);
var /** @type {?} */ data = {
index: index
};
var /** @type {?} */ ev = EventUtils.newCustomEvent(TAB_CHANGE_EVENT, this, data, null);
this.tabChangedEventHandler.emit(ev);
};
/**
* @param {?} index
* @return {?}
*/
TabPane.prototype.isTabSelected = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || typeof index === 'undefined') {
return false;
}
if (this.currentIndex !== null && this.currentIndex > -1) {
if (this.currentIndex === index) {
return true;
}
}
return false;
};
/**
* @param {?} tab
* @return {?}
*/
TabPane.prototype.addTabHeader = /**
* @param {?} tab
* @return {?}
*/
function (tab) {
if (tab === null) {
return;
}
this.tabHeaders.push(tab);
};
/**
* @param {?} tab
* @return {?}
*/
TabPane.prototype.removeTabHeader = /**
* @param {?} tab
* @return {?}
*/
function (tab) {
if (tab === null) {
return;
}
var /** @type {?} */ toRemoveIdx = -1;
this.tabHeaders.forEach(function (item, index) {
if (item === tab) {
toRemoveIdx = index;
}
});
if (toRemoveIdx >= 0) {
this.tabHeaders.splice(toRemoveIdx, 1);
}
};
/**
* @param {?} index
* @return {?}
*/
TabPane.prototype.closeTabAtIndex = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || index <= -1) {
return;
}
var /** @type {?} */ currentTabSize = this.tabModels.length;
if (index < currentTabSize) {
var /** @type {?} */ nextIndex = this.currentIndex;
if (nextIndex === index) {
// this tab will close so change index
if (nextIndex === currentTabSize - 1) {
nextIndex = nextIndex - 1;
}
}
else {
// close none current selected tab
if (index < this.currentIndex) {
nextIndex = this.currentIndex - 1;
}
}
// close and selected new index
if (index < this.tabModels.length) {
this.tabModels.splice(index, 1);
}
if (index < this.tabHeaders.length) {
this.tabHeaders.splice(index, 1);
}
if (index < this.tabBodies.length) {
this.tabBodies.splice(index, 1);
}
if (nextIndex !== this.currentIndex) {
this.showTabAtIndex(nextIndex);
}
}
};
/**
* @param {?} index
* @param {?} data
* @return {?}
*/
TabPane.prototype.setTabData = /**
* @param {?} index
* @param {?} data
* @return {?}
*/
function (index, data) {
if (index < this.tabHeaders.length) {
this.tabHeaders[index].setData(data);
}
if (index < this.tabBodies.length) {
if (typeof this.tabBodies[index].setData === 'function') {
this.tabBodies[index].setData(data);
}
}
};
/**
* @param {?} index
* @return {?}
*/
TabPane.prototype.saveTabData = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index < this.tabHeaders.length) {
this.tabHeaders[index].saveData();
}
if (index < this.tabBodies.length) {
if (typeof this.tabBodies[index].setData === 'function') {
this.tabBodies[index].saveData();
}
}
};
/**
* @return {?}
*/
TabPane.prototype.getCurrentTabIndex = /**
* @return {?}
*/
function () {
return this.currentIndex;
};
/**
* @return {?}
*/
TabPane.prototype.getTabModels = /**
* @return {?}
*/
function () {
return this.tabModels;
};
/**
* @return {?}
*/
TabPane.prototype.getTabBodies = /**
* @return {?}
*/
function () {
return this.tabBodies;
};
/**
* @param {?} index
* @return {?}
*/
TabPane.prototype.getTabBody = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || typeof index !== 'number' || index < 0) {
return null;
}
if (this.tabBodies !== null && typeof this.tabBodies !== 'undefined') {
if (index < this.tabBodies.length) {
return this.tabBodies[index];
}
}
return null;
};
/**
* @return {?}
*/
TabPane.prototype.getTabHeaders = /**
* @return {?}
*/
function () {
return this.tabHeaders;
};
/**
* @param {?} index
* @return {?}
*/
TabPane.prototype.getTabHeader = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || typeof index !== 'number' || index < 0) {
return null;
}
if (this.tabHeaders !== null && typeof this.tabHeaders !== 'undefined') {
if (index < this.tabHeaders.length) {
return this.tabHeaders[index];
}
}
return null;
};
/**
* @param {?} tab
* @return {?}
*/
TabPane.prototype.getTabHeaderIndex = /**
* @param {?} tab
* @return {?}
*/
function (tab) {
if (tab !== null && typeof tab !== 'undefined') {
if (this.tabHeaders !== null && typeof this.tabHeaders !== 'undefined') {
return this.tabHeaders.indexOf(tab);
}
}
return -1;
};
/**
* @return {?}
*/
TabPane.prototype.getMenuModelFactory = /**
* @return {?}
*/
function () {
return this.menuFactory;
};
/**
* @param {?} menuFactory
* @return {?}
*/
TabPane.prototype.setMenuModelFactory = /**
* @param {?} menuFactory
* @return {?}
*/
function (menuFactory) {
this.menuFactory = menuFactory;
};
/**
* @return {?}
*/
TabPane.prototype.getChangeEvent = /**
* @return {?}
*/
function () {
return this.changeEvent;
};
/**
* @param {?} index
* @return {?}
*/
TabPane.prototype.isTabDirty = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || typeof index === 'undefined') {
return false;
}
if (index < 0) {
return false;
}
if (index < this.tabHeaders.length) {
var /** @type {?} */ tabHeader = this.tabHeaders[index];
if (typeof tabHeader.isDataDirty === 'function') {
return tabHeader.isDataDirty();
}
}
return false;
};
/**
* @return {?}
*/
TabPane.prototype.getMenuFactory = /**
* @return {?}
*/
function () {
return this.menuFactory;
};
/**
* @return {?}
*/
TabPane.prototype.isShowMoreMenu = /**
* @return {?}
*/
function () {
return this.showMoreMenu;
};
/**
* @return {?}
*/
TabPane.prototype.getTabComponentHandler = /**
* @return {?}
*/
function () {
return this.tabComponentHandler;
};
/**
* @return {?}
*/
TabPane.prototype.getTabGroupPaddingRight = /**
* @return {?}
*/
function () {
// if (!this.showBtnGroup) {
// return "0";
// }
var /** @type {?} */ btnGroupWidth = $(this.elementRef.nativeElement).find(".button-group").css("width");
return btnGroupWidth;
};
/**
* @return {?}
*/
TabPane.prototype.getTabGroupPaddingLeft = /**
* @return {?}
*/
function () {
if (!this.showAddTabBtn) {
return "0";
}
var /** @type {?} */ btnGroupWidth = $(this.elementRef.nativeElement).find(".adding-group").css("width");
return btnGroupWidth;
};
/**
* @return {?}
*/
TabPane.prototype.isShowAddTabBtn = /**
* @return {?}
*/
function () {
return this.showAddTabBtn;
};
TabPane.TYPE_NAME = TYPE_NAME;
TabPane.TAB_CHANGE_EVENT = TAB_CHANGE_EVENT;
TabPane.TAB_ADDED_EVENT = TAB_ADD_EVENT;
TabPane.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: "<div class=\"phx-tab-pane\">\n\t<div class=\"header\">\n\t\t<div class=\"tab-group-wrapper\" [style.padding-right]=\"getTabGroupPaddingRight()\" [style.padding-left]=\"getTabGroupPaddingLeft()\">\n\t\t\t <div class=\"tab-group\">\n\t\t\t\t<div *ngFor=\"let item of getTabModels(); let j = index\" class=\"tab-label no-select\" [class.active]=\"isTabSelected(j)\" (click)=\"showTabAtIndex(j)\"\n\t\t\t\t\t\t\t(mousedown)=\"onMouseDownTab($event, item)\">\n\t\t\t\t\t<phx-tab [model]=\"item\" [tabPane]=\"this\" [menuFactory]=\"getMenuFactory()\" [showMoreMenu]=\"isShowMoreMenu()\"></phx-tab>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"adding-group\" *ngIf=\"isShowAddTabBtn()\">\n\t\t\t<div class=\"tab-add-button\" (click)=\"onNewTabClicked($event)\"></div>\n\t\t</div>\n\t\t<!-- <div class=\"button-group\" *ngIf=\"showBtnGroup\"> BTN GROUP </div> -->\n\t</div>\n\t<div class=\"body\">\n\t\t<div *ngIf=\"getTabModels() === null || getTabModels().length <= 0\" class=\"no-tab-page\">\n\t\t\t<div>There is no document.</div>\n\t\t\t<div><div class=\"phlox-button\" (click)=\"onNewTabClicked($event)\">CREATE_TAB</div></div>\n\t\t</div>\n\t\t<phx-component-wrapper *ngFor=\"let item of getTabModels(); let i = index\" [type]=\"item.bodyComponent\" [model]=\"item.bodyComponentModel\" [class.active]=\"isTabSelected(i)\" [handler]=\"getTabComponentHandler()\"\n\t\t[data]=\"item.data\" [options]=\"item.options\" [i18n]=\"item.i18n\"></phx-component-wrapper>\n\t</div>\n</div>\n"
},] },
];
/** @nocollapse */
TabPane.ctorParameters = function () { return [
{ type: ElementRef, },
]; };
TabPane.propDecorators = {
"tabComponentType": [{ type: Input },],
"tabComponentModel": [{ type: Input },],
"menuFactory": [{ type: Input },],
"showMoreMenu": [{ type: Input },],
"showAddTabBtn": [{ type: Input },],
"newTabClickedEventHandler": [{ type: Output },],
"tabChangedEventHandler": [{ type: Output },],
"tabAddedEventHandler": [{ type: Output },],
"tabMovedEventHandler": [{ type: Output },],
};
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Type)
], TabPane.prototype, "tabComponentType", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], TabPane.prototype, "tabComponentModel", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], TabPane.prototype, "menuFactory", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], TabPane.prototype, "showMoreMenu", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], TabPane.prototype, "showAddTabBtn", void 0);
tslib_1.__decorate([
Option('models'),
I18N('models'),
tslib_1.__metadata("design:type", Array)
], TabPane.prototype, "tabModels", void 0);
tslib_1.__decorate([
Option('tabs'),
I18N('tabs'),
tslib_1.__metadata("design:type", Array)
], TabPane.prototype, "tabHeaders", void 0);
tslib_1.__decorate([
Option('tabInstances'),
I18N('tabInstances'),
tslib_1.__metadata("design:type", Array)
], TabPane.prototype, "tabBodies", void 0);
return TabPane;
}(AbstractI18NApplicable));
export { TabPane };
function TabPane_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
TabPane.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
TabPane.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
TabPane.propDecorators;
/** @type {?} */
TabPane.TYPE_NAME;
/** @type {?} */
TabPane.TAB_CHANGE_EVENT;
/** @type {?} */
TabPane.TAB_ADDED_EVENT;
/** @type {?} */
TabPane.prototype.TAB_GROUP_SELECTOR;
/** @type {?} */
TabPane.prototype.TAB_LEFT_MOVING_CLASS;
/** @type {?} */
TabPane.prototype.TAB_RIGHT_MOVING_CLASS;
/** @type {?} */
TabPane.prototype.tabComponentType;
/** @type {?} */
TabPane.prototype.tabComponentModel;
/** @type {?} */
TabPane.prototype.menuFactory;
/** @type {?} */
TabPane.prototype.showMoreMenu;
/** @type {?} */
TabPane.prototype.showAddTabBtn;
/** @type {?} */
TabPane.prototype.newTabClickedEventHandler;
/** @type {?} */
TabPane.prototype.tabChangedEventHandler;
/** @type {?} */
TabPane.prototype.tabAddedEventHandler;
/** @type {?} */
TabPane.prototype.tabMovedEventHandler;
/** @type {?} */
TabPane.prototype.tabModels;
/** @type {?} */
TabPane.prototype.tabHeaders;
/** @type {?} */
TabPane.prototype.tabBodies;
/** @type {?} */
TabPane.prototype.currentIndex;
/** @type {?} */
TabPane.prototype.tabComponentHandler;
/** @type {?} */
TabPane.prototype.changeEvent;
/** @type {?} */
TabPane.prototype.elementRef;
/** @type {?} */
TabPane.prototype.tabDragging;
/** @type {?} */
TabPane.prototype.draggingTab;
/** @type {?} */
TabPane.prototype.tabMouseDifPositionY;
}
export { Tab } from './Tab.component';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFiUGFuZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvVGFiUGFuZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBUzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQWtCLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXZELHFCQUFNLFNBQVMsR0FBVyxjQUFjLENBQUM7O0lBK0JaLG1DQUFzQjtJQXNEakQsaUJBQVksVUFBc0I7UUFBbEMsWUFDRSxpQkFBTyxTQThCUjttQ0E5RW9DLFlBQVk7c0NBQ1QsYUFBYTt1Q0FDWixjQUFjO1FBK0NyRCxLQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixLQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxLQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztR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