UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

97 lines 13.8 kB
import { Component, ContentChildren, Injector, Input, QueryList } from '@angular/core'; import { merge, of } from 'rxjs'; import { mergeMap } from 'rxjs/operators'; import { CoreBaseComponent } from '../common/base.component'; import { AccordionPanelComponent } from './accordion-panel/accordion-panel.component'; import * as i0 from "@angular/core"; const _c0 = ["*"]; export class AccordionComponent extends CoreBaseComponent { constructor(injector) { super(injector); this.canOpenMultiple = true; this.canCloseAll = true; this.canCloseAny = false; } /** * The source name to use for logging */ get logSourceName() { return 'AccordionComponent'; } set canCloseAny(value) { this._canCloseAny = value; if (this.panels) { this.panels.forEach(p => p.canClose = this._canCloseAny); } } get canCloseAny() { return this._canCloseAny; } ngAfterContentInit() { this.subscriptions.push(merge(of(null).pipe(mergeMap(() => this.getToggleObservables(this.panels))), this.panels.changes.pipe(mergeMap(panels => { return this.getToggleObservables(panels); }))).subscribe(panel => this.onPanelToggled(panel))); this.subscriptions.push(merge(of(null).pipe(mergeMap(() => this.getAllPanelObservables(this.panels))), this.panels.changes.pipe(mergeMap((panels) => { return this.getToggleObservablesCore(panels); }))).subscribe(panel => panel.canClose = this.canCloseAny)); } getToggleObservablesCore(panels) { const observables = panels.map((panel) => { return panel.toggled; }); return merge(...observables); } getToggleObservables(panels) { const panelArray = panels.toArray(); return this.getToggleObservablesCore(panelArray); } getAllPanelObservables(panels) { const observables = panels.toArray().map((panel) => { return of(panel); }); return merge(...observables); } onPanelToggled(panel) { if (panel.opened) { if (!this.canOpenMultiple) { this.closePanelsExcept(panel); } } else { if ((!this.canCloseAll && !this.panels.some(p => p.opened)) || !this.canCloseAny) { panel.opened = true; } } } closePanelsExcept(panel) { this.panels.toArray().forEach(p => { if (p !== panel) { p.opened = false; } }); } } /** @nocollapse */ AccordionComponent.ɵfac = function AccordionComponent_Factory(t) { return new (t || AccordionComponent)(i0.ɵɵdirectiveInject(i0.Injector)); }; /** @nocollapse */ AccordionComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AccordionComponent, selectors: [["sme-accordion"]], contentQueries: function AccordionComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { i0.ɵɵcontentQuery(dirIndex, AccordionPanelComponent, 4); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panels = _t); } }, inputs: { canOpenMultiple: "canOpenMultiple", canCloseAll: "canCloseAll", canCloseAny: "canCloseAny" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AccordionComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵprojectionDef(); i0.ɵɵprojection(0); } }, encapsulation: 2 }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionComponent, [{ type: Component, args: [{ selector: 'sme-accordion', template: "<ng-content></ng-content>\r\n" }] }], function () { return [{ type: i0.Injector }]; }, { panels: [{ type: ContentChildren, args: [AccordionPanelComponent] }], canOpenMultiple: [{ type: Input }], canCloseAll: [{ type: Input }], canCloseAny: [{ type: Input }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1DLFNBQVMsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7QUFNdEYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQWdDckQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQWxDRDs7T0FFRztJQUNILElBQWMsYUFBYTtRQUN2QixPQUFPLG9CQUFvQixDQUFDO0lBQ2hDLENBQUM7SUFXRCxJQUNXLFdBQVcsQ0FBQyxLQUFjO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRTFCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNiLElBQUksQ0FBQyxNQUFN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R0FBRyxJQUFJLENBQUM7YUFDdkI7U0FDSjtJQUNMLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUE4QjtRQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUU7Z0JBQ2IsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7YUFDcEI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3VHQWxHUSxrQkFBa0I7b0dBQWxCLGtCQUFrQjtvQ0FVVix1QkFBdUI7Ozs7OztRQ3BCNUMsa0JBQXlCOzt1RkRVWixrQkFBa0I7Y0FKOUIsU0FBUzsyQkFDSSxlQUFlOzJEQWNsQixNQUFNO2tCQURaLGVBQWU7bUJBQUMsdUJBQXVCO1lBSWpDLGVBQWU7a0JBRHJCLEtBQUs7WUFJQyxXQUFXO2tCQURqQixLQUFLO1lBSUssV0FBVztrQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbmplY3RvciwgSW5wdXQsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvcmVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWNjb3JkaW9uUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1wYW5lbC9hY2NvcmRpb24tcGFuZWwuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtYWNjb3JkaW9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db21wb25lbnQgZXh0ZW5kcyBDb3JlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAgIHByaXZhdGUgX2NhbkNsb3NlQW55OiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ0FjY29yZGlvbkNvbXBvbmVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihBY2NvcmRpb25QYW5lbENvbXBvbmVudClcclxuICAgIHB1YmxpYyBwYW5lbHM6IFF1ZXJ5TGlzdDxBY2NvcmRpb25QYW5lbENvbXBvbmVudD47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjYW5PcGVuTXVsdGlwbGU6IGJvb2xlYW47XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjYW5DbG9zZUFsbDogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBjYW5DbG9zZUFueSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2NhbkNsb3NlQW55ID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBhbmVscykge1xyXG4gICAgICAgICAgICB0aGlzLnBhbmVscy5mb3JFYWNoKHAgPT4gcC5jYW5DbG9zZSA9IHRoaXMuX2NhbkNsb3NlQW55KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjYW5DbG9zZUFueSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY2FuQ2xvc2VBbnk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgICAgIHRoaXMuY2FuT3Blbk11bHRpcGxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkNsb3NlQWxsID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkNsb3NlQW55ID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgbWVyZ2UoXHJcbiAgICAgICAgICAgICAgICBvZihudWxsKS5waXBlKG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0VG9nZ2xlT2JzZXJ2YWJsZXModGhpcy5wYW5lbHMpKSksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVscy5jaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgbWVyZ2VNYXAocGFuZWxzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VG9nZ2xlT2JzZXJ2YWJsZXMocGFuZWxzKTtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApLnN1YnNjcmliZShwYW5lbCA9PiB0aGlzLm9uUGFuZWxUb2dnbGVkKHBhbmVsKSkpO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgbWVyZ2UoXHJcbiAgICAgICAgICAgICAgICBvZihudWxsKS5waXBlKG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0QWxsUGFuZWxPYnNlcnZhYmxlcyh0aGlzLnBhbmVscykpKSxcclxuICAgICAgICAgICAgICAgIHRoaXMucGFuZWxzLmNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBtZXJnZU1hcCgocGFuZWxzOiBBY2NvcmRpb25QYW5lbENvbXBvbmVudFtdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFRvZ2dsZU9ic2VydmFibGVzQ29yZShwYW5lbHMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKHBhbmVsID0+IHBhbmVsLmNhbkNsb3NlID0gdGhpcy5jYW5DbG9zZUFueSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VG9nZ2xlT2JzZXJ2YWJsZXNDb3JlKHBhbmVsczogQWNjb3JkaW9uUGFuZWxDb21wb25lbnRbXSk6IE9ic2VydmFibGU8QWNjb3JkaW9uUGFuZWxDb21wb25lbnQ+IHtcclxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlcyA9IHBhbmVscy5tYXAoKHBhbmVsOiBBY2NvcmRpb25QYW5lbENvbXBvbmVudCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcGFuZWwudG9nZ2xlZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gbWVyZ2UoLi4ub2JzZXJ2YWJsZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VG9nZ2xlT2JzZXJ2YWJsZXMocGFuZWxzOiBRdWVyeUxpc3Q8QWNjb3JkaW9uUGFuZWxDb21wb25lbnQ+KTogT2JzZXJ2YWJsZTxBY2NvcmRpb25QYW5lbENvbXBvbmVudD4ge1xyXG4gICAgICAgIGNvbnN0IHBhbmVsQXJyYXkgPSBwYW5lbHMudG9BcnJheSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRvZ2dsZU9ic2VydmFibGVzQ29yZShwYW5lbEFycmF5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEFsbFBhbmVsT2JzZXJ2YWJsZXMocGFuZWxzOiBRdWVyeUxpc3Q8QWNjb3JkaW9uUGFuZWxDb21wb25lbnQ+KTogT2JzZXJ2YWJsZTxBY2NvcmRpb25QYW5lbENvbXBvbmVudD4ge1xyXG4gICAgICAgIGNvbnN0IG9ic2VydmFibGVzID0gcGFuZWxzLnRvQXJyYXkoKS5tYXAoKHBhbmVsOiBBY2NvcmRpb25QYW5lbENvbXBvbmVudCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YocGFuZWwpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBtZXJnZSguLi5vYnNlcnZhYmxlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUGFuZWxUb2dnbGVkKHBhbmVsOiBBY2NvcmRpb25QYW5lbENvbXBvbmVudCkge1xyXG4gICAgICAgIGlmIChwYW5lbC5vcGVuZWQpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNhbk9wZW5NdWx0aXBsZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZVBhbmVsc0V4Y2VwdChwYW5lbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoKCF0aGlzLmNhbkNsb3NlQWxsICYmICF0aGlzLnBhbmVscy5zb21lKHAgPT4gcC5vcGVuZWQpKSB8fCAhdGhpcy5jYW5DbG9zZUFueSkge1xyXG4gICAgICAgICAgICAgICAgcGFuZWwub3BlbmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xvc2VQYW5lbHNFeGNlcHQocGFuZWw6IEFjY29yZGlvblBhbmVsQ29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy5wYW5lbHMudG9BcnJheSgpLmZvckVhY2gocCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChwICE9PSBwYW5lbCkge1xyXG4gICAgICAgICAgICAgICAgcC5vcGVuZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuIl19