UNPKG

@asi-ngtools/lib

Version:

This project is a little components library, simple to use, which will help you to simplify your project.

148 lines (147 loc) 11.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { AsiTabContent } from './asi-tab-content/asi-tab-content.component'; import { AsiTab } from './asi-tab/asi-tab.component'; import { Component, QueryList, ContentChildren, ViewChild, Output, EventEmitter, Input } from '@angular/core'; import * as nh from '../../native-helper'; var AsiTabGroup = /** @class */ (function () { function AsiTabGroup() { /** * Event emitted when a tab is manually selected */ this.onTabChange = new EventEmitter(); this.currentTabId = null; this.tabs = new Array(); } /** * @param {?} tab * @return {?} */ AsiTabGroup.prototype.showTab = /** * @param {?} tab * @return {?} */ function (tab) { this.asiTableContent.showTab(tab); this.currentTabId = tab.tabId; this.onTabChange.emit(tab); }; /** * @param {?} idTab * @return {?} */ AsiTabGroup.prototype.showTabById = /** * @param {?} idTab * @return {?} */ function (idTab) { this.asiTableContent.showTabById(idTab); }; /** * @return {?} */ AsiTabGroup.prototype.getTabs = /** * @return {?} */ function () { return this.tabs; }; /** * @return {?} */ AsiTabGroup.prototype.ngAfterContentInit = /** * @return {?} */ function () { var _this = this; this.manageTabContent(this.queryTabs.toArray()); this.asiTableContent.setTabs(this.tabs); /**Listen to content possible changes */ this.queryTabs.changes.subscribe(function (asiTabs) { _this.manageTabContent(asiTabs); if (!nh.isEmpty(asiTabs) && (!_this.currentTabId || !_this.currentTabStillExist())) { _this.currentTabId = _this.tabs[0].tabId; } _this.asiTableContent.setTabs(_this.tabs); _this.asiTableContent.showTabById(_this.currentTabId); }); if (this.activeTabId != null) { this.currentTabId = this.activeTabId; } if (!this.currentTabId && !nh.isEmpty(this.tabs)) { this.currentTabId = this.tabs[0].tabId; } this.asiTableContent.showTabById(this.currentTabId); }; /** * @return {?} */ AsiTabGroup.prototype.currentTabStillExist = /** * @return {?} */ function () { var _this = this; return nh.find(this.tabs, function (tab) { return tab.tabId === _this.currentTabId; }) != null; }; /** * @param {?} asiTabs * @return {?} */ AsiTabGroup.prototype.manageTabContent = /** * @param {?} asiTabs * @return {?} */ function (asiTabs) { var _this = this; /** @type {?} */ var index = -1; this.tabs = []; asiTabs.forEach(function (tab) { tab.index = ++index; if (!tab.tabId) { tab.tabId = 'tab' + index; } _this.tabs.push(tab); }); }; AsiTabGroup.decorators = [ { type: Component, args: [{ selector: 'asi-tab-group', host: { 'class': 'asi-component asi-tab-group' }, template: "<div class=\"asi-tab-group\" [ngClass]=\"asiTableContent?.currentTab?.tabClass || ''\">\r\n <div class=\"tab-header\">\r\n <ng-container *ngFor=\"let tab of getTabs()\">\r\n <button type=\"button\" *ngIf=\"tab.headerDef == null\" (click)=\"showTab(tab)\" [translate]=\"tab.label\" [ngClass]=\"{ 'active' : tab.active}\"></button>\r\n <button type=\"button\" *ngIf=\"tab.headerDef != null\" (click)=\"showTab(tab)\" [ngClass]=\"{'active' : tab.active}\">\r\n <ng-template [ngTemplateOutlet]=\"tab.headerDef.template\" [ngTemplateOutletContext]=\"{$implicit : tab}\"></ng-template>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"tab-content\">\r\n <asi-tab-content [tabs]=\"getTabs()\"></asi-tab-content>\r\n </div>\r\n</div>\r\n" }] } ]; /** @nocollapse */ AsiTabGroup.ctorParameters = function () { return []; }; AsiTabGroup.propDecorators = { queryTabs: [{ type: ContentChildren, args: [AsiTab,] }], asiTableContent: [{ type: ViewChild, args: [AsiTabContent,] }], onTabChange: [{ type: Output }], activeTabId: [{ type: Input }] }; return AsiTabGroup; }()); export { AsiTabGroup }; if (false) { /** @type {?} */ AsiTabGroup.prototype.queryTabs; /** @type {?} */ AsiTabGroup.prototype.asiTableContent; /** * Event emitted when a tab is manually selected * @type {?} */ AsiTabGroup.prototype.onTabChange; /** * Active tab id * @type {?} */ AsiTabGroup.prototype.activeTabId; /** @type {?} */ AsiTabGroup.prototype.currentTabId; /** @type {?} */ AsiTabGroup.prototype.tabs; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLXRhYi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYXNpLW5ndG9vbHMvbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYXNpLXRhYi1ncm91cC9hc2ktdGFiLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUNoRCxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFDNUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7SUF1QnhDOzs7OzJCQVR3QixJQUFJLFlBQVksRUFBVTs0QkFLM0IsSUFBSTtvQkFFcEIsSUFBSSxLQUFLLEVBQVU7S0FFVDs7Ozs7SUFFakIsNkJBQU87Ozs7SUFBUCxVQUFRLEdBQVc7UUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzVCOzs7OztJQUVNLGlDQUFXOzs7O2NBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQzs7Ozs7SUFHMUMsNkJBQU87OztJQUFQO1FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7S0FDbEI7Ozs7SUFFRCx3Q0FBa0I7OztJQUFsQjtRQUFBLGlCQW9CQztRQW5CQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzs7UUFFeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQUMsT0FBTztZQUN2QyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsS0FBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pGLEtBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDeEM7WUFDRCxLQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsS0FBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JELENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDdEM7UUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUN4QztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNyRDs7OztJQUVPLDBDQUFvQjs7Ozs7UUFDMUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxLQUFLLEtBQUssS0FBSSxDQUFDLFlBQVksRUFBL0IsQ0FBK0IsQ0FBQyxJQUFJLElBQUksQ0FBQzs7Ozs7O0lBR3RFLHNDQUFnQjs7OztjQUFDLE9BQWlCOzs7UUFDeEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHO1lBQ2pCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxLQUFLLENBQUM7WUFDcEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDZixHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7YUFDM0I7WUFDRCxLQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtTQUNwQixDQUFDLENBQUM7OztnQkF4RU4sU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUU7b0JBQ2hELHV4QkFBMkM7aUJBQzVDOzs7Ozs0QkFHRSxlQUFlLFNBQUMsTUFBTTtrQ0FFdEIsU0FBUyxTQUFDLGFBQWE7OEJBR3ZCLE1BQU07OEJBR04sS0FBSzs7c0JBdkJSOztTQWFhLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc2lUYWJDb250ZW50IH0gZnJvbSAnLi9hc2ktdGFiLWNvbnRlbnQvYXNpLXRhYi1jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzaVRhYiB9IGZyb20gJy4vYXNpLXRhYi9hc2ktdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LCBRdWVyeUxpc3QsIENvbnRlbnRDaGlsZHJlbiwgVmlld0NoaWxkLCBBZnRlckNvbnRlbnRJbml0LFxyXG4gIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBuaCBmcm9tICcuLi8uLi9uYXRpdmUtaGVscGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXNpLXRhYi1ncm91cCcsXHJcbiAgaG9zdDogeyAnY2xhc3MnOiAnYXNpLWNvbXBvbmVudCBhc2ktdGFiLWdyb3VwJyB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnYXNpLXRhYi1ncm91cC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzaVRhYkdyb3VwIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oQXNpVGFiKSBxdWVyeVRhYnM6IFF1ZXJ5TGlzdDxBc2lUYWI+O1xyXG5cclxuICBAVmlld0NoaWxkKEFzaVRhYkNvbnRlbnQpIGFzaVRhYmxlQ29udGVudDogQXNpVGFiQ29udGVudDtcclxuXHJcbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHRhYiBpcyBtYW51YWxseSBzZWxlY3RlZCAqL1xyXG4gIEBPdXRwdXQoKSBvblRhYkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXNpVGFiPigpXHJcblxyXG4gIC8qKiBBY3RpdmUgdGFiIGlkICovXHJcbiAgQElucHV0KCkgYWN0aXZlVGFiSWQ6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBjdXJyZW50VGFiSWQgPSBudWxsO1xyXG5cclxuICB0YWJzID0gbmV3IEFycmF5PEFzaVRhYj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgc2hvd1RhYih0YWI6IEFzaVRhYikge1xyXG4gICAgdGhpcy5hc2lUYWJsZUNvbnRlbnQuc2hvd1RhYih0YWIpO1xyXG4gICAgdGhpcy5jdXJyZW50VGFiSWQgPSB0YWIudGFiSWQ7XHJcbiAgICB0aGlzLm9uVGFiQ2hhbmdlLmVtaXQodGFiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93VGFiQnlJZChpZFRhYjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmFzaVRhYmxlQ29udGVudC5zaG93VGFiQnlJZChpZFRhYik7XHJcbiAgfVxyXG5cclxuICBnZXRUYWJzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFicztcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIHRoaXMubWFuYWdlVGFiQ29udGVudCh0aGlzLnF1ZXJ5VGFicy50b0FycmF5KCkpO1xyXG4gICAgdGhpcy5hc2lUYWJsZUNvbnRlbnQuc2V0VGFicyh0aGlzLnRhYnMpO1xyXG4gICAgLyoqTGlzdGVuIHRvIGNvbnRlbnQgcG9zc2libGUgY2hhbmdlcyAqL1xyXG4gICAgdGhpcy5xdWVyeVRhYnMuY2hhbmdlcy5zdWJzY3JpYmUoKGFzaVRhYnMpID0+IHtcclxuICAgICAgdGhpcy5tYW5hZ2VUYWJDb250ZW50KGFzaVRhYnMpO1xyXG4gICAgICBpZiAoIW5oLmlzRW1wdHkoYXNpVGFicykgJiYgKCF0aGlzLmN1cnJlbnRUYWJJZCB8fCAhdGhpcy5jdXJyZW50VGFiU3RpbGxFeGlzdCgpKSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYklkID0gdGhpcy50YWJzWzBdLnRhYklkO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYXNpVGFibGVDb250ZW50LnNldFRhYnModGhpcy50YWJzKTtcclxuICAgICAgdGhpcy5hc2lUYWJsZUNvbnRlbnQuc2hvd1RhYkJ5SWQodGhpcy5jdXJyZW50VGFiSWQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuYWN0aXZlVGFiSWQgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUYWJJZCA9IHRoaXMuYWN0aXZlVGFiSWQ7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuY3VycmVudFRhYklkICYmICFuaC5pc0VtcHR5KHRoaXMudGFicykpIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGFiSWQgPSB0aGlzLnRhYnNbMF0udGFiSWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFzaVRhYmxlQ29udGVudC5zaG93VGFiQnlJZCh0aGlzLmN1cnJlbnRUYWJJZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGN1cnJlbnRUYWJTdGlsbEV4aXN0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIG5oLmZpbmQodGhpcy50YWJzLCAodGFiKSA9PiB0YWIudGFiSWQgPT09IHRoaXMuY3VycmVudFRhYklkKSAhPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYW5hZ2VUYWJDb250ZW50KGFzaVRhYnM6IEFzaVRhYltdKSB7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuICAgIHRoaXMudGFicyA9IFtdO1xyXG4gICAgYXNpVGFicy5mb3JFYWNoKHRhYiA9PiB7XHJcbiAgICAgIHRhYi5pbmRleCA9ICsraW5kZXg7XHJcbiAgICAgIGlmICghdGFiLnRhYklkKSB7XHJcbiAgICAgICAgdGFiLnRhYklkID0gJ3RhYicgKyBpbmRleDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRhYnMucHVzaCh0YWIpXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19