UNPKG

ngx-pluto

Version:
158 lines 14 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ContentChildren, QueryList, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core'; import { NpTab } from './tab.component'; /** * @ignore */ var NpTabGroup = /** @class */ (function () { function NpTabGroup() { this.selectedIndex = 0; this.type = 'default'; this.selectedIndexChange = new EventEmitter(); } /** * @param {?} changes * @return {?} */ NpTabGroup.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes.selectedIndex && !changes.selectedIndex.firstChange) { /** @type {?} */ var selectedTabComp = this.tabs.find((/** * @param {?} v * @param {?} i * @return {?} */ function (v, i) { return i === changes.selectedIndex.currentValue; })); this.selectTab(selectedTabComp); } }; /** * @return {?} */ NpTabGroup.prototype.ngAfterContentInit = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var selectedTabComp = this.tabs.find((/** * @param {?} v * @param {?} i * @return {?} */ function (v, i) { return i === _this.selectedIndex; })); this.selectTab(selectedTabComp); }; /** * * @param tab 当前选中的tab * @param index 当前选中的tab的index,注:index目前只有在单击tab标签页的时候需要传入,其他情况下不需要 */ /** * * @param {?} tab 当前选中的tab * @param {?=} index 当前选中的tab的index,注:index目前只有在单击tab标签页的时候需要传入,其他情况下不需要 * @return {?} */ NpTabGroup.prototype.selectTab = /** * * @param {?} tab 当前选中的tab * @param {?=} index 当前选中的tab的index,注:index目前只有在单击tab标签页的时候需要传入,其他情况下不需要 * @return {?} */ function (tab, index) { if (index === void 0) { index = -1; } if (tab.disabled) { return; } if (index !== -1) { this.selectedIndex = index; } // deactivate all tabs this.tabs.toArray().forEach((/** * @param {?} tabComponent * @return {?} */ function (tabComponent) { tabComponent.active = false; })); // activate the tab the user has clicked on. tab.active = true; // emit changeEvent && selectedIndex // fix bug,会把初始化时候selectedIndex为undefined传出去 if (this.selectedIndex !== undefined && index > -1) { this.selectedIndexChange.emit(this.selectedIndex); } }; /** * @param {?} tabs * @param {?} tab * @param {?} index * @return {?} */ NpTabGroup.prototype.isShowDivider = /** * @param {?} tabs * @param {?} tab * @param {?} index * @return {?} */ function (tabs, tab, index) { /** @type {?} */ var tabArray = tabs.toArray(); if (tab.active) { return false; } if (tabArray.length - 1 === index) { return false; } if (!tab.active && tabArray[index + 1] && tabArray[index + 1].active) { return false; } return true; }; /** * @return {?} */ NpTabGroup.prototype.ngOnDestroy = /** * @return {?} */ function () { }; NpTabGroup.decorators = [ { type: Component, args: [{ selector: 'np-tab-group', template: "<div class=\"tab-title-container\" [ngClass]=\"{'chrome-like-tabs': type === 'chrome-like'}\">\r\n <div class=\"tab-title\" *ngFor=\"let tab of tabs;let $index=index\" (click)=\"selectTab(tab, $index)\"\r\n [class.active]=\"tab.active\" [class.disabled]=\"tab.disabled\">\r\n <span *ngIf=\"type === 'chrome-like'\" class=\"square-block-before\"></span>\r\n <ng-container *ngIf=\"tab.headerTemplate\">\r\n <ng-container *ngTemplateOutlet=\"tab.headerTemplate.template; context: { title: tab.tabTitle }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!tab.headerTemplate\">\r\n {{tab.tabTitle }}\r\n </ng-container>\r\n <span *ngIf=\"type === 'chrome-like'\" class=\"square-block-after\"></span>\r\n <span *ngIf=\"type === 'chrome-like' && isShowDivider(tabs, tab, $index) \" class=\"tab-divider\"></span>\r\n </div>\r\n</div>\r\n<ng-content></ng-content>\r\n", host: { "[class.chrome-like-wrapper]": "type === 'chrome-like'", }, encapsulation: ViewEncapsulation.None, styles: [".tab-title-container{margin-bottom:40px;height:34px;width:100%;display:flex;padding-bottom:2px}.tab-title-container .tab-title{font-size:16px;font-weight:500;padding-left:18px;padding-right:18px;height:35px;cursor:pointer;padding-bottom:2px;line-height:35px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tab-title-container .tab-title.active{padding-bottom:0}.tab-title-container.chrome-like-tabs{border-top-left-radius:10px;border-top-right-radius:10px}.tab-title-container.chrome-like-tabs .tab-title:first-child{margin-left:15px}.tab-title-container.chrome-like-tabs .tab-title{position:relative;border-radius:10px 10px 0 0}.tab-title-container.chrome-like-tabs .tab-title.active::before{content:'';width:0;height:0;position:absolute;bottom:0;left:-10px;border-width:0 0 10px 10px;border-style:solid;border-bottom-right-radius:20px;transform:rotate(0);z-index:2}.tab-title-container.chrome-like-tabs .tab-title.active::after{content:'';width:0;height:0;position:absolute;bottom:0;right:-10px;border-width:0 0 10px 10px;border-style:solid;border-bottom-right-radius:20px;transform:rotate(90deg);z-index:2}.tab-title-container.chrome-like-tabs .tab-title .square-block-before{position:absolute;content:'';width:10px;height:10px;left:-10px;background-color:inherit;bottom:0}.tab-title-container.chrome-like-tabs .tab-title .square-block-after{position:absolute;content:'';width:10px;height:10px;right:-10px;background-color:inherit;bottom:0}.tab-title-container.chrome-like-tabs .tab-title .tab-divider{width:0;height:20px;position:absolute;right:0;top:9px}.chrome-like-wrapper{border-top-left-radius:10px;border-top-right-radius:10px}"] }] } ]; /** @nocollapse */ NpTabGroup.ctorParameters = function () { return []; }; NpTabGroup.propDecorators = { selectedIndex: [{ type: Input }], type: [{ type: Input }], selectedIndexChange: [{ type: Output }], tabs: [{ type: ContentChildren, args: [NpTab,] }] }; return NpTabGroup; }()); export { NpTabGroup }; if (false) { /** @type {?} */ NpTabGroup.prototype.selectedIndex; /** @type {?} */ NpTabGroup.prototype.type; /** @type {?} */ NpTabGroup.prototype.selectedIndexChange; /** @type {?} */ NpTabGroup.prototype.tabs; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1wbHV0by8iLCJzb3VyY2VzIjpbImxpYi90YWIvdGFiLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFNBQVMsRUFDdkQsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXVDLGlCQUFpQixFQUNwRixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFLeEM7SUFlRTtRQVBTLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLFNBQUksR0FBOEIsU0FBUyxDQUFDO1FBRTNDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFJM0MsQ0FBQzs7Ozs7SUFFakIsZ0NBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGFBQWEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFOztnQkFDekQsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTs7Ozs7WUFBQyxVQUFDLENBQUMsRUFBRSxDQUFDLElBQUssT0FBQSxDQUFDLEtBQUssT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQXhDLENBQXdDLEVBQUM7WUFDMUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7Ozs7SUFFRCx1Q0FBa0I7OztJQUFsQjtRQUFBLGlCQUdDOztZQUZPLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7Ozs7O1FBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxLQUFLLEtBQUksQ0FBQyxhQUFhLEVBQXhCLENBQXdCLEVBQUM7UUFDMUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRzs7Ozs7OztJQUNILDhCQUFTOzs7Ozs7SUFBVCxVQUFVLEdBQVUsRUFBRSxLQUFrQjtRQUFsQixzQkFBQSxFQUFBLFNBQWlCLENBQUM7UUFDdEMsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUVELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzVCO1FBRUQsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTzs7OztRQUFDLFVBQUEsWUFBWTtZQUN0QyxZQUFZLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDLEVBQUMsQ0FBQztRQUVILDRDQUE0QztRQUM1QyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUVsQixvQ0FBb0M7UUFDcEMsNENBQTRDO1FBQzVDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQzs7Ozs7OztJQUVELGtDQUFhOzs7Ozs7SUFBYixVQUFjLElBQXNCLEVBQUUsR0FBVSxFQUFFLEtBQWE7O1lBQ3pELFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQzdCLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUNkLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUNqQyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNwRSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7O0lBRUQsZ0NBQVc7OztJQUFYO0lBQ0EsQ0FBQzs7Z0JBNUVGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIseTVCQUErQjtvQkFFL0IsSUFBSSxFQUFFLEVBQUUsNkJBQTZCLEVBQUUsd0JBQXdCLEdBQUc7b0JBQ2xFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOztpQkFDdEM7Ozs7O2dDQUVFLEtBQUs7dUJBQ0wsS0FBSztzQ0FFTCxNQUFNO3VCQUVOLGVBQWUsU0FBQyxLQUFLOztJQWdFeEIsaUJBQUM7Q0FBQSxBQTdFRCxJQTZFQztTQXRFWSxVQUFVOzs7SUFDckIsbUNBQTJCOztJQUMzQiwwQkFBcUQ7O0lBRXJELHlDQUEyRDs7SUFFM0QsMEJBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsIEFmdGVyQ29udGVudEluaXQsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0LFxyXG4gIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5wVGFiIH0gZnJvbSAnLi90YWIuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25wLXRhYi1ncm91cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYi1ncm91cC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWItZ3JvdXAuc2NzcyddLFxyXG4gIGhvc3Q6IHsgXCJbY2xhc3MuY2hyb21lLWxpa2Utd3JhcHBlcl1cIjogXCJ0eXBlID09PSAnY2hyb21lLWxpa2UnXCIsIH0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnBUYWJHcm91cCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBzZWxlY3RlZEluZGV4ID0gMDtcclxuICBASW5wdXQoKSB0eXBlOiAnZGVmYXVsdCcgfCAnY2hyb21lLWxpa2UnID0gJ2RlZmF1bHQnO1xyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKE5wVGFiKSB0YWJzOiBRdWVyeUxpc3Q8TnBUYWI+O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5zZWxlY3RlZEluZGV4ICYmICFjaGFuZ2VzLnNlbGVjdGVkSW5kZXguZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRUYWJDb21wID0gdGhpcy50YWJzLmZpbmQoKHYsIGkpID0+IGkgPT09IGNoYW5nZXMuc2VsZWN0ZWRJbmRleC5jdXJyZW50VmFsdWUpO1xyXG4gICAgICB0aGlzLnNlbGVjdFRhYihzZWxlY3RlZFRhYkNvbXApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRUYWJDb21wID0gdGhpcy50YWJzLmZpbmQoKHYsIGkpID0+IGkgPT09IHRoaXMuc2VsZWN0ZWRJbmRleCk7XHJcbiAgICB0aGlzLnNlbGVjdFRhYihzZWxlY3RlZFRhYkNvbXApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHRhYiDlvZPliY3pgInkuK3nmoR0YWJcclxuICAgKiBAcGFyYW0gaW5kZXgg5b2T5YmN6YCJ5Lit55qEdGFi55qEaW5kZXjvvIzms6jvvJppbmRleOebruWJjeWPquacieWcqOWNleWHu3RhYuagh+etvumhteeahOaXtuWAmemcgOimgeS8oOWFpe+8jOWFtuS7luaDheWGteS4i+S4jemcgOimgVxyXG4gICAqL1xyXG4gIHNlbGVjdFRhYih0YWI6IE5wVGFiLCBpbmRleDogbnVtYmVyID0gLTEpIHtcclxuICAgIGlmICh0YWIuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZGVhY3RpdmF0ZSBhbGwgdGFic1xyXG4gICAgdGhpcy50YWJzLnRvQXJyYXkoKS5mb3JFYWNoKHRhYkNvbXBvbmVudCA9PiB7XHJcbiAgICAgIHRhYkNvbXBvbmVudC5hY3RpdmUgPSBmYWxzZTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIGFjdGl2YXRlIHRoZSB0YWIgdGhlIHVzZXIgaGFzIGNsaWNrZWQgb24uXHJcbiAgICB0YWIuYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBlbWl0IGNoYW5nZUV2ZW50ICYmIHNlbGVjdGVkSW5kZXhcclxuICAgIC8vIGZpeCBidWfvvIzkvJrmiorliJ3lp4vljJbml7blgJlzZWxlY3RlZEluZGV45Li6dW5kZWZpbmVk5Lyg5Ye65Y67XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ICE9PSB1bmRlZmluZWQgJiYgaW5kZXggPiAtMSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSW5kZXhDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSW5kZXgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNTaG93RGl2aWRlcih0YWJzOiBRdWVyeUxpc3Q8TnBUYWI+LCB0YWI6IE5wVGFiLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBsZXQgdGFiQXJyYXkgPSB0YWJzLnRvQXJyYXkoKTtcclxuICAgIGlmICh0YWIuYWN0aXZlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGFiQXJyYXkubGVuZ3RoIC0gMSA9PT0gaW5kZXgpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGFiLmFjdGl2ZSAmJiB0YWJBcnJheVtpbmRleCArIDFdICYmIHRhYkFycmF5W2luZGV4ICsgMV0uYWN0aXZlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gIH1cclxufVxyXG4iXX0=