@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
97 lines • 13.8 kB
JavaScript
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