UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

106 lines 13.3 kB
import { __decorate, __metadata } from "tslib"; import { Component, ContentChild, Inject, Input, TemplateRef } from '@angular/core'; import { Yield } from '@microsoft/windows-admin-center-sdk/core/base/decorators/yield.decorator'; import { PivotTabType } from './pivot-tab-type'; import { SME_PIVOT_TAB_CONTAINER_PROVIDER } from './pivot-tab.container'; import * as i0 from "@angular/core"; /** * Defines a tab for @see PivotComponent */ export class PivotTabComponent { constructor(pivotContainer) { this.pivotContainer = pivotContainer; /** * Use the same input options as angular @see RouterLinkActive Directive */ this.routerLinkActiveOptions = { exact: false }; /** * Indicates if we should show the error status icon */ this.showErrorStatusIcon = false; /** * Indicates whether a tab is visible or in the tab tray. */ this.isVisible = true; } /** * Indicates the type of this tab */ get type() { return this.contentTemplate ? PivotTabType.Static : PivotTabType.Routed; } ngOnChanges(changes) { if (changes.label) { this.yieldMeasureTab(); } } /** * Measures the length of the pivot tab and assigns this value to the width attribute */ yieldMeasureTab() { const host = this.pivotContainer.hostElement.nativeElement; const measureElement = document.createElement('button'); // position element off screen measureElement.style.display = 'inline'; // measureElement.style.width = 'auto'; measureElement.style.visibility = 'hidden'; measureElement.style.position = 'absolute'; measureElement.style.right = '-10000px'; measureElement.style.bottom = '-10000px'; measureElement.innerHTML = this.label; const hostStyle = getComputedStyle(host); measureElement.style.fontFamily = hostStyle.fontFamily; measureElement.style.fontVariant = hostStyle.fontVariant; measureElement.style.fontSize = hostStyle.fontSize; measureElement.style.fontStyle = hostStyle.fontStyle; measureElement.style.fontWeight = hostStyle.fontWeight; measureElement.style.lineHeight = hostStyle.lineHeight; measureElement.style.letterSpacing = hostStyle.letterSpacing; measureElement.style.padding = hostStyle.padding; // append the measureElement to the dom document.body.append(measureElement); const measureWidth = measureElement.getBoundingClientRect().width; this.width = measureWidth; // Remember to remove element from the DOM document.body.removeChild(measureElement); } } /** @nocollapse */ PivotTabComponent.ɵfac = function PivotTabComponent_Factory(t) { return new (t || PivotTabComponent)(i0.ɵɵdirectiveInject(SME_PIVOT_TAB_CONTAINER_PROVIDER)); }; /** @nocollapse */ PivotTabComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: PivotTabComponent, selectors: [["sme-pivot-tab"]], contentQueries: function PivotTabComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first); } }, inputs: { route: "route", routerLinkActiveOptions: "routerLinkActiveOptions", label: "label", iconClass: "iconClass", disabled: "disabled", showErrorStatusIcon: "showErrorStatusIcon" }, features: [i0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function PivotTabComponent_Template(rf, ctx) { }, encapsulation: 2 }); __decorate([ Yield(), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], PivotTabComponent.prototype, "yieldMeasureTab", null); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PivotTabComponent, [{ type: Component, args: [{ selector: 'sme-pivot-tab', template: '' }] }], function () { return [{ type: undefined, decorators: [{ type: Inject, args: [SME_PIVOT_TAB_CONTAINER_PROVIDER] }] }]; }, { route: [{ type: Input }], routerLinkActiveOptions: [{ type: Input }], label: [{ type: Input }], iconClass: [{ type: Input }], disabled: [{ type: Input }], showErrorStatusIcon: [{ type: Input }], contentTemplate: [{ type: ContentChild, args: [TemplateRef] }], yieldMeasureTab: [] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QtdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL3Bpdm90L3Bpdm90LXRhYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQTRCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUV6RTs7R0FFRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUFFMUIsWUFBOEQsY0FBYztRQUFkLG1CQUFjLEdBQWQsY0FBYyxDQUFBO1FBZTVFOztXQUVHO1FBRUksNEJBQXVCLEdBQXVCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBb0J0RTs7V0FFRztRQUVJLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQWFuQzs7V0FFRztRQUNJLGNBQVMsR0FBRyxJQUFJLENBQUM7SUEzRHdELENBQUM7SUFFakY7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDNUUsQ0FBQztJQXNETSxXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBRUssZUFBZTtRQUNuQixNQUFNLElBQUksR0FBZ0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBQ3hFLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEQsOEJBQThCO1FBQzlCLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztRQUN4Qyx1Q0FBdUM7UUFDdkMsY0FBYyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzNDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDeEMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3pDLGNBQWMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxjQUFjLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQ3ZELGNBQWMsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDekQsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNuRCxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3JELGNBQWMsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDdkQsY0FBYyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUN2RCxjQUFjLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDO1FBQzdELGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFFakQsdUNBQXVDO1FBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNsRSxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztRQUUxQiwwQ0FBMEM7UUFDMUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7cUdBdEdRLGlCQUFpQix1QkFFTixnQ0FBZ0M7bUdBRjNDLGlCQUFpQjtvQ0FrRFosV0FBVzs7Ozs7QUFzQnpCO0lBQUMsS0FBSyxFQUFFOzs7O3dEQThCUDt1RkF0R1EsaUJBQWlCO2NBTDdCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFLEVBQUU7YUFDZjs7c0JBSWdCLE1BQU07dUJBQUMsZ0NBQWdDO3dCQWE3QyxLQUFLO2tCQURYLEtBQUs7WUFPQyx1QkFBdUI7a0JBRDdCLEtBQUs7WUFPQyxLQUFLO2tCQURYLEtBQUs7WUFPQyxTQUFTO2tCQURmLEtBQUs7WUFPQyxRQUFRO2tCQURkLEtBQUs7WUFPQyxtQkFBbUI7a0JBRHpCLEtBQUs7WUFPQyxlQUFlO2tCQURyQixZQUFZO21CQUFDLFdBQVc7WUF1QmpCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBZaWVsZCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvYmFzZS9kZWNvcmF0b3JzL3lpZWxkLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IFBpdm90VGFiVHlwZSB9IGZyb20gJy4vcGl2b3QtdGFiLXR5cGUnO1xyXG5pbXBvcnQgeyBTTUVfUElWT1RfVEFCX0NPTlRBSU5FUl9QUk9WSURFUiB9IGZyb20gJy4vcGl2b3QtdGFiLmNvbnRhaW5lcic7XHJcblxyXG4vKipcclxuICogRGVmaW5lcyBhIHRhYiBmb3IgQHNlZSBQaXZvdENvbXBvbmVudFxyXG4gKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtcGl2b3QtdGFiJyxcclxuICAgIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFBpdm90VGFiQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFNNRV9QSVZPVF9UQUJfQ09OVEFJTkVSX1BST1ZJREVSKSBwcml2YXRlIHBpdm90Q29udGFpbmVyKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGUgdHlwZSBvZiB0aGlzIHRhYlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHR5cGUoKTogUGl2b3RUYWJUeXBlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50VGVtcGxhdGUgPyBQaXZvdFRhYlR5cGUuU3RhdGljIDogUGl2b3RUYWJUeXBlLlJvdXRlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSByb3V0ZSBvZiB0aGlzIHRhYlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJvdXRlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVc2UgdGhlIHNhbWUgaW5wdXQgb3B0aW9ucyBhcyBhbmd1bGFyIEBzZWUgUm91dGVyTGlua0FjdGl2ZSBEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByb3V0ZXJMaW5rQWN0aXZlT3B0aW9uczogeyBleGFjdDogYm9vbGVhbiB9ID0geyBleGFjdDogZmFsc2UgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBsYWJlbCBvZiB0aGlzIHRhYi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNsYXNzIGZvciB0aGUgaWNvbiB0byBzaG93IGZvciB0aGlzIHRhYlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGljb25DbGFzczogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGlmIHRoaXMgdGFiIGlzIGRpc2FibGVkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgaWYgd2Ugc2hvdWxkIHNob3cgdGhlIGVycm9yIHN0YXR1cyBpY29uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0Vycm9yU3RhdHVzSWNvbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNvbnRlbnQgdGVtcGxhdGUgcmVmIG9mIHRoZSB0YWIuXHJcbiAgICAgKi9cclxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpXHJcbiAgICBwdWJsaWMgY29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogIFRoaXMgaXMgYSBwcm9wZXJ0eSB0aGF0IHN0b3JlcyB0aGUgbWVhc3VyZWQgd2lkdGggb2YgYSBwaXZvdCB0YWIuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3aWR0aDogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgYSB0YWIgaXMgdmlzaWJsZSBvciBpbiB0aGUgdGFiIHRyYXkuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc1Zpc2libGUgPSB0cnVlO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMubGFiZWwpIHtcclxuICAgICAgICAgICAgdGhpcy55aWVsZE1lYXN1cmVUYWIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZWFzdXJlcyB0aGUgbGVuZ3RoIG9mIHRoZSBwaXZvdCB0YWIgYW5kIGFzc2lnbnMgdGhpcyB2YWx1ZSB0byB0aGUgd2lkdGggYXR0cmlidXRlXHJcbiAgICAgKi9cclxuICAgIEBZaWVsZCgpXHJcbiAgICBwcml2YXRlIHlpZWxkTWVhc3VyZVRhYigpIHtcclxuICAgICAgICBjb25zdCBob3N0ID0gPEhUTUxFbGVtZW50PnRoaXMucGl2b3RDb250YWluZXIuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBjb25zdCBtZWFzdXJlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xyXG4gICAgICAgIC8vIHBvc2l0aW9uIGVsZW1lbnQgb2ZmIHNjcmVlblxyXG4gICAgICAgIG1lYXN1cmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lJztcclxuICAgICAgICAvLyBtZWFzdXJlRWxlbWVudC5zdHlsZS53aWR0aCA9ICdhdXRvJztcclxuICAgICAgICBtZWFzdXJlRWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgICAgIG1lYXN1cmVFbGVtZW50LnN0eWxlLnJpZ2h0ID0gJy0xMDAwMHB4JztcclxuICAgICAgICBtZWFzdXJlRWxlbWVudC5zdHlsZS5ib3R0b20gPSAnLTEwMDAwcHgnO1xyXG4gICAgICAgIG1lYXN1cmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMubGFiZWw7XHJcbiAgICAgICAgY29uc3QgaG9zdFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShob3N0KTtcclxuXHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuc3R5bGUuZm9udEZhbWlseSA9IGhvc3RTdHlsZS5mb250RmFtaWx5O1xyXG4gICAgICAgIG1lYXN1cmVFbGVtZW50LnN0eWxlLmZvbnRWYXJpYW50ID0gaG9zdFN0eWxlLmZvbnRWYXJpYW50O1xyXG4gICAgICAgIG1lYXN1cmVFbGVtZW50LnN0eWxlLmZvbnRTaXplID0gaG9zdFN0eWxlLmZvbnRTaXplO1xyXG4gICAgICAgIG1lYXN1cmVFbGVtZW50LnN0eWxlLmZvbnRTdHlsZSA9IGhvc3RTdHlsZS5mb250U3R5bGU7XHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuc3R5bGUuZm9udFdlaWdodCA9IGhvc3RTdHlsZS5mb250V2VpZ2h0O1xyXG4gICAgICAgIG1lYXN1cmVFbGVtZW50LnN0eWxlLmxpbmVIZWlnaHQgPSBob3N0U3R5bGUubGluZUhlaWdodDtcclxuICAgICAgICBtZWFzdXJlRWxlbWVudC5zdHlsZS5sZXR0ZXJTcGFjaW5nID0gaG9zdFN0eWxlLmxldHRlclNwYWNpbmc7XHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuc3R5bGUucGFkZGluZyA9IGhvc3RTdHlsZS5wYWRkaW5nO1xyXG5cclxuICAgICAgICAvLyBhcHBlbmQgdGhlIG1lYXN1cmVFbGVtZW50IHRvIHRoZSBkb21cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChtZWFzdXJlRWxlbWVudCk7XHJcbiAgICAgICAgY29uc3QgbWVhc3VyZVdpZHRoID0gbWVhc3VyZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XHJcbiAgICAgICAgdGhpcy53aWR0aCA9IG1lYXN1cmVXaWR0aDtcclxuXHJcbiAgICAgICAgLy8gUmVtZW1iZXIgdG8gcmVtb3ZlIGVsZW1lbnQgZnJvbSB0aGUgRE9NXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChtZWFzdXJlRWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==