UNPKG

angular-admin-lte

Version:
95 lines 16.6 kB
import { BehaviorSubject } from 'rxjs'; import { distinctUntilChanged, pluck } from 'rxjs/operators'; import { LayoutState } from './layout.state'; export class LayoutStore { constructor(layoutConfig) { this.initialLayoutState = new LayoutState(layoutConfig); this.state = new BehaviorSubject(this.initialLayoutState); this.layoutState = this.state.asObservable(); } get windowInnerHeight() { return this.layoutState.pipe(pluck('windowInnerHeight'), distinctUntilChanged()); } get windowInnerWidth() { return this.layoutState.pipe(pluck('windowInnerWidth'), distinctUntilChanged()); } get isSidebarLeftCollapsed() { return this.layoutState.pipe(pluck('isSidebarLeftCollapsed'), distinctUntilChanged()); } get isSidebarLeftExpandOnOver() { return this.layoutState.pipe(pluck('isSidebarLeftExpandOnOver'), distinctUntilChanged()); } get isSidebarLeftMouseOver() { return this.layoutState.pipe(pluck('isSidebarLeftMouseOver'), distinctUntilChanged()); } get isSidebarLeftMini() { return this.layoutState.pipe(pluck('isSidebarLeftMini'), distinctUntilChanged()); } get sidebarRightSkin() { return this.layoutState.pipe(pluck('sidebarRightSkin'), distinctUntilChanged()); } get isSidebarRightCollapsed() { return this.layoutState.pipe(pluck('isSidebarRightCollapsed'), distinctUntilChanged()); } get isSidebarRightOverContent() { return this.layoutState.pipe(pluck('isSidebarRightOverContent'), distinctUntilChanged()); } get sidebarLeftMenu() { return this.layoutState.pipe(pluck('sidebarLeftMenu'), distinctUntilChanged()); } get sidebarLeftMenuActiveUrl() { return this.layoutState.pipe(pluck('sidebarLeftMenuActiveUrl'), distinctUntilChanged()); } get sidebarLeftElementHeight() { return this.layoutState.pipe(pluck('sidebarLeftElementHeight'), distinctUntilChanged()); } get layout() { return this.layoutState.pipe(pluck('layout'), distinctUntilChanged()); } get skin() { return this.layoutState.pipe(pluck('skin'), distinctUntilChanged()); } sidebarLeftCollapsed(value) { this.state.next(Object.assign(this.state.value, { isSidebarLeftCollapsed: value })); } sidebarLeftExpandOnOver(value) { this.state.next(Object.assign(this.state.value, { isSidebarLeftExpandOnOver: value })); } setSidebarLeftElementHeight(value) { this.state.next(Object.assign(this.state.value, { sidebarLeftElementHeight: value })); } setSidebarRightSkin(value) { this.state.next(Object.assign(this.state.value, { sidebarRightSkin: value })); } sidebarLeftMouseOver(value) { this.state.next(Object.assign(this.state.value, { isSidebarLeftMouseOver: value })); } sidebarLeftMini(value) { this.state.next(Object.assign(this.state.value, { isSidebarLeftMini: value })); } sidebarRightCollapsed(value) { this.state.next(Object.assign(this.state.value, { isSidebarRightCollapsed: value })); } sidebarRightOverContent(value) { this.state.next(Object.assign(this.state.value, { isSidebarRightOverContent: value })); } setSidebarLeftMenu(value) { this.state.next(Object.assign(this.state.value, { sidebarLeftMenu: value })); } setSidebarLeftMenuActiveUrl(value) { this.state.next(Object.assign(this.state.value, { sidebarLeftMenuActiveUrl: value })); } setLayout(value) { this.state.next(Object.assign(this.state.value, { layout: value })); } setSkin(value) { this.state.next(Object.assign(this.state.value, { skin: value })); } setWindowInnerHeight(value) { this.state.next(Object.assign(this.state.value, { windowInnerHeight: value })); } setWindowInnerWidth(value) { this.state.next(Object.assign(this.state.value, { windowInnerWidth: value })); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9hbmd1bGFyLWFkbWluLWx0ZS9zcmMvbGliL2xheW91dC9sYXlvdXQuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdELE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFHOUQsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFBWSxZQUE2QjtRQUN2QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUkseUJBQXlCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsSUFBSSx5QkFBeUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsSUFBSSx3QkFBd0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELElBQUksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sb0JBQW9CLENBQUMsS0FBZTtRQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsc0JBQXNCLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FDakUsQ0FBQztJQUNKLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxLQUFlO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyx5QkFBeUIsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUNwRSxDQUFDO0lBQ0osQ0FBQztJQUVNLDJCQUEyQixDQUFDLEtBQWE7UUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLHdCQUF3QixFQUFFLEtBQUssRUFBQyxDQUFDLENBQ25FLENBQUM7SUFDSixDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBYztRQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FDM0QsQ0FBQztJQUNKLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxLQUFlO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyxzQkFBc0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUNqRSxDQUFDO0lBQ0osQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFlO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUM1RCxDQUFDO0lBQ0osQ0FBQztJQUVNLHFCQUFxQixDQUFDLEtBQWU7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLHVCQUF1QixFQUFFLEtBQUssRUFBQyxDQUFDLENBQ2xFLENBQUM7SUFDSixDQUFDO0lBRU0sdUJBQXVCLENBQUMsS0FBZTtRQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMseUJBQXlCLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FDcEUsQ0FBQztJQUNKLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxLQUFpQjtRQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQzFELENBQUM7SUFDSixDQUFDO0lBRU0sMkJBQTJCLENBQUMsS0FBYTtRQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsd0JBQXdCLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFTSxTQUFTLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVNLG9CQUFvQixDQUFDLEtBQWE7UUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBQyxDQUFDLENBQzVELENBQUM7SUFDSixDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBYTtRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FDM0QsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCAsICBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgcGx1Y2sgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExheW91dFN0YXRlLCBMYXlvdXRTdGF0ZUNvbmYgfSBmcm9tICcuL2xheW91dC5zdGF0ZSc7XG5cblxuZXhwb3J0IGNsYXNzIExheW91dFN0b3JlIHtcbiAgcHVibGljIHJlYWRvbmx5IGxheW91dFN0YXRlOiBPYnNlcnZhYmxlPExheW91dFN0YXRlPjtcblxuICBwcml2YXRlIHN0YXRlOiBCZWhhdmlvclN1YmplY3Q8TGF5b3V0U3RhdGU+O1xuICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxMYXlvdXRTdGF0ZTogTGF5b3V0U3RhdGU7XG5cbiAgY29uc3RydWN0b3IobGF5b3V0Q29uZmlnOiBMYXlvdXRTdGF0ZUNvbmYpIHtcbiAgICB0aGlzLmluaXRpYWxMYXlvdXRTdGF0ZSA9IG5ldyBMYXlvdXRTdGF0ZShsYXlvdXRDb25maWcpO1xuICAgIHRoaXMuc3RhdGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuaW5pdGlhbExheW91dFN0YXRlKTtcbiAgICB0aGlzLmxheW91dFN0YXRlID0gdGhpcy5zdGF0ZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB3aW5kb3dJbm5lckhlaWdodCgpOiBPYnNlcnZhYmxlPG51bWJlciB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ3dpbmRvd0lubmVySGVpZ2h0JyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgZ2V0IHdpbmRvd0lubmVyV2lkdGgoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCd3aW5kb3dJbm5lcldpZHRoJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgZ2V0IGlzU2lkZWJhckxlZnRDb2xsYXBzZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnaXNTaWRlYmFyTGVmdENvbGxhcHNlZCcpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIGdldCBpc1NpZGViYXJMZWZ0RXhwYW5kT25PdmVyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhckxlZnRFeHBhbmRPbk92ZXInKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICBnZXQgaXNTaWRlYmFyTGVmdE1vdXNlT3ZlcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdpc1NpZGViYXJMZWZ0TW91c2VPdmVyJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgZ2V0IGlzU2lkZWJhckxlZnRNaW5pKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhckxlZnRNaW5pJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgZ2V0IHNpZGViYXJSaWdodFNraW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdzaWRlYmFyUmlnaHRTa2luJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgZ2V0IGlzU2lkZWJhclJpZ2h0Q29sbGFwc2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhclJpZ2h0Q29sbGFwc2VkJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgZ2V0IGlzU2lkZWJhclJpZ2h0T3ZlckNvbnRlbnQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnaXNTaWRlYmFyUmlnaHRPdmVyQ29udGVudCcpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIGdldCBzaWRlYmFyTGVmdE1lbnUoKTogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnc2lkZWJhckxlZnRNZW51JyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgZ2V0IHNpZGViYXJMZWZ0TWVudUFjdGl2ZVVybCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ3NpZGViYXJMZWZ0TWVudUFjdGl2ZVVybCcpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIGdldCBzaWRlYmFyTGVmdEVsZW1lbnRIZWlnaHQoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdzaWRlYmFyTGVmdEVsZW1lbnRIZWlnaHQnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICBnZXQgbGF5b3V0KCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnbGF5b3V0JyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgZ2V0IHNraW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdza2luJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgcHVibGljIHNpZGViYXJMZWZ0Q29sbGFwc2VkKHZhbHVlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZS52YWx1ZSwge2lzU2lkZWJhckxlZnRDb2xsYXBzZWQ6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNpZGViYXJMZWZ0RXhwYW5kT25PdmVyKHZhbHVlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZS52YWx1ZSwge2lzU2lkZWJhckxlZnRFeHBhbmRPbk92ZXI6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldFNpZGViYXJMZWZ0RWxlbWVudEhlaWdodCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLnZhbHVlLCB7c2lkZWJhckxlZnRFbGVtZW50SGVpZ2h0OiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTaWRlYmFyUmlnaHRTa2luKHZhbHVlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLnZhbHVlLCB7c2lkZWJhclJpZ2h0U2tpbjogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2lkZWJhckxlZnRNb3VzZU92ZXIodmFsdWU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLnZhbHVlLCB7aXNTaWRlYmFyTGVmdE1vdXNlT3ZlcjogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2lkZWJhckxlZnRNaW5pKHZhbHVlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZS52YWx1ZSwge2lzU2lkZWJhckxlZnRNaW5pOiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzaWRlYmFyUmlnaHRDb2xsYXBzZWQodmFsdWU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLnZhbHVlLCB7aXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQ6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNpZGViYXJSaWdodE92ZXJDb250ZW50KHZhbHVlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZS52YWx1ZSwge2lzU2lkZWJhclJpZ2h0T3ZlckNvbnRlbnQ6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldFNpZGViYXJMZWZ0TWVudSh2YWx1ZTogQXJyYXk8YW55Pik6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZS52YWx1ZSwge3NpZGViYXJMZWZ0TWVudTogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2V0U2lkZWJhckxlZnRNZW51QWN0aXZlVXJsKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuc3RhdGUudmFsdWUsIHtzaWRlYmFyTGVmdE1lbnVBY3RpdmVVcmw6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldExheW91dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLnZhbHVlLCB7bGF5b3V0OiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTa2luKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuc3RhdGUudmFsdWUsIHtza2luOiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRXaW5kb3dJbm5lckhlaWdodCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLnZhbHVlLCB7d2luZG93SW5uZXJIZWlnaHQ6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldFdpbmRvd0lubmVyV2lkdGgodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5zdGF0ZS52YWx1ZSwge3dpbmRvd0lubmVyV2lkdGg6IHZhbHVlfSlcbiAgICApO1xuICB9XG59XG4iXX0=