UNPKG

ngx-formly-tabs

Version:

ngx-formly-tabs is an Angular module that adds Components that enable flexible tab use for @ngx-formly.

157 lines 10.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, EventEmitter, Output } from '@angular/core'; import { TabsetService } from './tabset.service'; var TabsetComponent = /** @class */ (function () { function TabsetComponent(tabsetService) { this.tabsetService = tabsetService; this.activeTabChange = new EventEmitter(); this._tabs = []; this._visibleCount = 0; } Object.defineProperty(TabsetComponent.prototype, "tabs", { get: /** * @return {?} */ function () { return this._tabs; }, enumerable: true, configurable: true }); Object.defineProperty(TabsetComponent.prototype, "visibleCount", { get: /** * @return {?} */ function () { return this._visibleCount; }, enumerable: true, configurable: true }); /** * @return {?} */ TabsetComponent.prototype.ngAfterContentInit = /** * @return {?} */ function () { var _this = this; this.subscription = this.tabsetService.tabs$.subscribe((/** * @return {?} */ function () { _this.onTabsChanged(); })); }; /** * @return {?} */ TabsetComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this.subscription) { this.subscription.unsubscribe(); } }; /** * @param {?} tab * @return {?} */ TabsetComponent.prototype.select = /** * @param {?} tab * @return {?} */ function (tab) { this.tabsetService.tabs.forEach((/** * @param {?} t * @return {?} */ function (t) { t.active = t === tab; })); this.activeTabChange.emit(tab ? tab.title : null); }; /** * @private * @return {?} */ TabsetComponent.prototype.onTabsChanged = /** * @private * @return {?} */ function () { var _this = this; Promise.resolve().then((/** * @return {?} */ function () { if (_this.subscription.closed) { return; } /** @type {?} */ var tabs = _this.tabsetService.tabs; _this._tabs = tabs; _this._visibleCount = tabs.filter((/** * @param {?} t * @return {?} */ function (t) { return !t.hidden; })).length; if (!tabs.some((/** * @param {?} tab * @return {?} */ function (tab) { return tab.active && !tab.disabled && !tab.hidden; }))) { _this.select(tabs.find((/** * @param {?} t * @return {?} */ function (t) { return !t.disabled && !t.hidden; }))); } })); }; TabsetComponent.decorators = [ { type: Component, args: [{ selector: 'formly-tabs-tabset', template: "<ul class=\"nav nav-tabs\">\r\n <li class=\"nav-item\" *ngFor=\"let tab of tabs | visible\" role=\"presentation\" (click)=\"!tab.disabled && !tab.hidden && select(tab)\">\r\n <div class=\"nav-link\" [ngClass]=\"{active: tab.active && !tab.disabled && !tab.hidden, disabled: tab.disabled}\">\r\n {{ tab.title }}\r\n </div>\r\n </li>\r\n</ul>\r\n<div class=\"content\" [ngClass]=\"{empty: visibleCount === 0}\">\r\n <ng-content></ng-content>\r\n</div>", styles: [".nav-link{cursor:pointer;cursor:hand}:host>.content{border:1px solid #ddd;border-top:0;padding:1em}"] }] } ]; /** @nocollapse */ TabsetComponent.ctorParameters = function () { return [ { type: TabsetService } ]; }; TabsetComponent.propDecorators = { activeTabChange: [{ type: Output }] }; return TabsetComponent; }()); export { TabsetComponent }; if (false) { /** @type {?} */ TabsetComponent.prototype.activeTabChange; /** * @type {?} * @private */ TabsetComponent.prototype.subscription; /** * @type {?} * @private */ TabsetComponent.prototype._tabs; /** * @type {?} * @private */ TabsetComponent.prototype._visibleCount; /** * @type {?} * @private */ TabsetComponent.prototype.tabsetService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1mb3JtbHktdGFicy8iLCJzb3VyY2VzIjpbImxpYi90YWJzZXQvdGFic2V0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQ7SUFZSSx5QkFDWSxhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVA5QixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHL0MsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFDM0Isa0JBQWEsR0FBRyxDQUFDLENBQUM7SUFJdEIsQ0FBQztJQUVMLHNCQUFJLGlDQUFJOzs7O1FBQVI7WUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx5Q0FBWTs7OztRQUFoQjtZQUNJLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM5QixDQUFDOzs7T0FBQTs7OztJQUVELDRDQUFrQjs7O0lBQWxCO1FBQUEsaUJBSUM7UUFIRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFNBQVM7OztRQUFDO1lBQ25ELEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7SUFFRCxxQ0FBVzs7O0lBQVg7UUFDSSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNuQztJQUNMLENBQUM7Ozs7O0lBRUQsZ0NBQU07Ozs7SUFBTixVQUFPLEdBQWlCO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU87Ozs7UUFBQyxVQUFBLENBQUM7WUFDN0IsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQ3pCLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7OztJQUVPLHVDQUFhOzs7O0lBQXJCO1FBQUEsaUJBY0M7UUFiRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSTs7O1FBQUM7WUFDbkIsSUFBSSxLQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtnQkFDMUIsT0FBTzthQUNWOztnQkFFSyxJQUFJLEdBQUcsS0FBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJO1lBQ3BDLEtBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLEtBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU07Ozs7WUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBVCxDQUFTLEVBQUMsQ0FBQyxNQUFNLENBQUM7WUFFeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJOzs7O1lBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQTFDLENBQTBDLEVBQUMsRUFBRTtnQkFDL0QsS0FBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSTs7OztnQkFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQXhCLENBQXdCLEVBQUMsQ0FBQyxDQUFDO2FBQ3pEO1FBQ0wsQ0FBQyxFQUFDLENBQUM7SUFDUCxDQUFDOztnQkF6REosU0FBUyxTQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLDJkQUFzQzs7aUJBRXpDOzs7O2dCQU5RLGFBQWE7OztrQ0FRakIsTUFBTTs7SUFvRFgsc0JBQUM7Q0FBQSxBQTFERCxJQTBEQztTQXJEWSxlQUFlOzs7SUFDeEIsMENBQXVEOzs7OztJQUV2RCx1Q0FBbUM7Ozs7O0lBQ25DLGdDQUFtQzs7Ozs7SUFDbkMsd0NBQTBCOzs7OztJQUd0Qix3Q0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi90YWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFic2V0U2VydmljZSB9IGZyb20gJy4vdGFic2V0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2Zvcm1seS10YWJzLXRhYnNldCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFic2V0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3RhYnNldC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYnNldENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBAT3V0cHV0KCkgYWN0aXZlVGFiQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgX3RhYnM6IFRhYkNvbXBvbmVudFtdID0gW107XHJcbiAgICBwcml2YXRlIF92aXNpYmxlQ291bnQgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgdGFic2V0U2VydmljZTogVGFic2V0U2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBnZXQgdGFicygpOiBUYWJDb21wb25lbnRbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZpc2libGVDb3VudCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ291bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy50YWJzZXRTZXJ2aWNlLnRhYnMkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25UYWJzQ2hhbmdlZCgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3QodGFiOiBUYWJDb21wb25lbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRhYnNldFNlcnZpY2UudGFicy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgICB0LmFjdGl2ZSA9IHQgPT09IHRhYjtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFjdGl2ZVRhYkNoYW5nZS5lbWl0KHRhYiA/IHRhYi50aXRsZSA6IG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25UYWJzQ2hhbmdlZCgpOiB2b2lkIHtcclxuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uLmNsb3NlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCB0YWJzID0gdGhpcy50YWJzZXRTZXJ2aWNlLnRhYnM7XHJcbiAgICAgICAgICAgIHRoaXMuX3RhYnMgPSB0YWJzO1xyXG4gICAgICAgICAgICB0aGlzLl92aXNpYmxlQ291bnQgPSB0YWJzLmZpbHRlcih0ID0+ICF0LmhpZGRlbikubGVuZ3RoO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0YWJzLnNvbWUodGFiID0+IHRhYi5hY3RpdmUgJiYgIXRhYi5kaXNhYmxlZCAmJiAhdGFiLmhpZGRlbikpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KHRhYnMuZmluZCh0ID0+ICF0LmRpc2FibGVkICYmICF0LmhpZGRlbikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19