UNPKG

angular-admin-lte-teliqo

Version:
295 lines (294 loc) 29.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { BehaviorSubject } from 'rxjs'; import { distinctUntilChanged, pluck } from 'rxjs/operators'; export class LayoutStore { /** * \@method constructor * @param {?} layoutConfig [description] */ constructor(layoutConfig) { this.initialLayoutState = { isSidebarLeftCollapsed: false, isSidebarLeftExpandOnOver: false, isSidebarLeftMouseOver: false, isSidebarLeftMini: true, sidebarRightSkin: 'dark', isSidebarRightCollapsed: true, isSidebarRightOverContent: true, layout: 'normal', sidebarLeftMenu: [], sidebarLeftMenuActiveUrl: '', skin: 'blue' }; if (layoutConfig) { this.initialLayoutState = Object.assign(this.initialLayoutState, layoutConfig); } this._layoutState = new BehaviorSubject(this.initialLayoutState); this.layoutState = this._layoutState.asObservable(); } /** * [windowInnerHeight description] * \@method windowInnerHeight * @return {?} [description] */ get windowInnerHeight() { return /** @type {?} */ (this.layoutState.pipe(pluck('windowInnerHeight'), distinctUntilChanged())); } /** * [windowInnerWidth description] * \@method windowInnerWidth * @return {?} [description] */ get windowInnerWidth() { return /** @type {?} */ (this.layoutState.pipe(pluck('windowInnerWidth'), distinctUntilChanged())); } /** * [isSidebarLeftCollapsed description] * @return {?} [description] */ get isSidebarLeftCollapsed() { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarLeftCollapsed'), distinctUntilChanged())); } /** * [isSidebarLeftExpandOnOver description] * \@method isSidebarLeftExpandOnOver * @return {?} [description] */ get isSidebarLeftExpandOnOver() { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarLeftExpandOnOver'), distinctUntilChanged())); } /** * [isSidebarLeftMouseOver description] * \@method isSidebarLeftMouseOver * @return {?} [description] */ get isSidebarLeftMouseOver() { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarLeftMouseOver'), distinctUntilChanged())); } /** * [isSidebarLeftMini description] * \@method isSidebarLeftMini * @return {?} [description] */ get isSidebarLeftMini() { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarLeftMini'), distinctUntilChanged())); } /** * [sidebarRightSkin description] * \@method sidebarRightSkin * @return {?} [description] */ get sidebarRightSkin() { return /** @type {?} */ (this.layoutState.pipe(pluck('sidebarRightSkin'), distinctUntilChanged())); } /** * [isSidebarRightCollapsed description] * @return {?} [description] */ get isSidebarRightCollapsed() { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarRightCollapsed'), distinctUntilChanged())); } /** * [isSidebarRightOverContent description] * \@method isSidebarRightOverContent * @return {?} [description] */ get isSidebarRightOverContent() { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarRightOverContent'), distinctUntilChanged())); } /** * [sidebarLeftMenu description] * \@method sidebarLeftMenu * @return {?} [description] */ get sidebarLeftMenu() { return /** @type {?} */ (this.layoutState.pipe(pluck('sidebarLeftMenu'), distinctUntilChanged())); } /** * [sidebarLeftMenuActiveUrl description] * \@method sidebarLeftMenuActiveUrl * @return {?} [description] */ get sidebarLeftMenuActiveUrl() { return /** @type {?} */ (this.layoutState.pipe(pluck('sidebarLeftMenuActiveUrl'), distinctUntilChanged())); } /** * [sidebarLeftElementHeight description] * \@method sidebarLeftElementHeight * @return {?} [description] */ get sidebarLeftElementHeight() { return /** @type {?} */ (this.layoutState.pipe(pluck('sidebarLeftElementHeight'), distinctUntilChanged())); } /** * [layoutType description] * \@method layoutType * @return {?} [description] */ get layout() { return /** @type {?} */ (this.layoutState.pipe(pluck('layout'), distinctUntilChanged())); } /** * [skin description] * \@method skin * @return {?} [description] */ get skin() { return /** @type {?} */ (this.layoutState.pipe(pluck('skin'), distinctUntilChanged())); } /** * [wrapperClasses description] * \@method wrapperClasses * @return {?} [description] */ get wrapperClasses() { return /** @type {?} */ (this.layoutState.pipe(pluck('wrapperClasses'), distinctUntilChanged())); } /** * [sidebarLeftCollapsed description] * \@method sidebarLeftCollapsed * @param {?=} value [description] * @return {?} */ sidebarLeftCollapsed(value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarLeftCollapsed: value })); } /** * [sidebarLeftExpandOnOver description] * \@method sidebarLeftExpandOnOver * @param {?=} value [description] * @return {?} */ sidebarLeftExpandOnOver(value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarLeftExpandOnOver: value })); } /** * [setSidebarLeftElementHeight description] * \@method setSidebarLeftElementHeight * @param {?} value [description] * @return {?} */ setSidebarLeftElementHeight(value) { this._layoutState.next(Object.assign(this._layoutState.value, { sidebarLeftElementHeight: value })); } /** * [setSidebarRightSkin description] * \@method setSidebarRightSkin * @param {?=} value [description] * @return {?} */ setSidebarRightSkin(value) { this._layoutState.next(Object.assign(this._layoutState.value, { sidebarRightSkin: value })); } /** * [sidebarLeftMouseOver description] * \@method sidebarLeftMouseOver * @param {?=} value [description] * @return {?} */ sidebarLeftMouseOver(value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarLeftMouseOver: value })); } /** * [sidebarLeftMini description] * \@method sidebarLeftMini * @param {?=} value [description] * @return {?} */ sidebarLeftMini(value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarLeftMini: value })); } /** * [sidebarRightCollapsed description] * \@method sidebarRightCollapsed * @param {?=} value [description] * @return {?} */ sidebarRightCollapsed(value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarRightCollapsed: value })); } /** * [sidebarRightOverContent description] * \@method sidebarRightOverContent * @param {?=} value [description] * @return {?} */ sidebarRightOverContent(value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarRightOverContent: value })); } /** * [setSidebarLeftMenu description] * \@method setSidebarLeftMenu * @param {?} value [description] * @return {?} */ setSidebarLeftMenu(value) { this._layoutState.next(Object.assign(this._layoutState.value, { sidebarLeftMenu: value })); } /** * [setSidebarLeftMenuActiveUrl description] * \@method setSidebarLeftMenuActiveUrl * @param {?} value [description] * @return {?} */ setSidebarLeftMenuActiveUrl(value) { this._layoutState.next(Object.assign(this._layoutState.value, { sidebarLeftMenuActiveUrl: value })); } /** * [setLayout description] * \@method setLayout * @param {?} value [description] * @return {?} */ setLayout(value) { this._layoutState.next(Object.assign(this._layoutState.value, { layout: value })); } /** * [setSkin description] * \@method setSkin * @param {?} value [description] * @return {?} */ setSkin(value) { this._layoutState.next(Object.assign(this._layoutState.value, { skin: value })); } /** * [setWrapperClasses description] * \@method setWrapperClasses * @param {?} value [description] * @return {?} */ setWrapperClasses(value) { this._layoutState.next(Object.assign(this._layoutState.value, { wrapperClasses: value })); } /** * [setWindowInnerHeight description] * \@method setWindowInnerHeight * @param {?} value [description] * @return {?} */ setWindowInnerHeight(value) { this._layoutState.next(Object.assign(this._layoutState.value, { windowInnerHeight: value })); } /** * [setWindowInnerWidth description] * \@method setWindowInnerWidth * @param {?} value [description] * @return {?} */ setWindowInnerWidth(value) { this._layoutState.next(Object.assign(this._layoutState.value, { windowInnerWidth: value })); } } function LayoutStore_tsickle_Closure_declarations() { /** @type {?} */ LayoutStore.prototype.layoutState; /** @type {?} */ LayoutStore.prototype._layoutState; /** @type {?} */ LayoutStore.prototype.initialLayoutState; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnN0b3JlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1hZG1pbi1sdGUtdGVsaXFvLyIsInNvdXJjZXMiOlsibGliL2xheW91dC9sYXlvdXQuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU83RCxNQUFNOzs7OztJQXNCSixZQUFZLFlBQXlCO2tDQWxCYztZQUNqRCxzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsc0JBQXNCLEVBQUUsS0FBSztZQUM3QixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsdUJBQXVCLEVBQUUsSUFBSTtZQUM3Qix5QkFBeUIsRUFBRSxJQUFJO1lBQy9CLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLGVBQWUsRUFBRSxFQUFFO1lBQ25CLHdCQUF3QixFQUFFLEVBQUU7WUFDNUIsSUFBSSxFQUFFLE1BQU07U0FDYjtRQU9DLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ2hGO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7S0FDckQ7Ozs7OztJQU9ELElBQUksaUJBQWlCO1FBQ25CLE1BQU0sbUJBQXFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFF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QVksQ0FBQyxLQUFLLEVBQUUsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FDdEQsQ0FBQzs7Ozs7Ozs7SUFRRyxpQkFBaUIsQ0FBQyxLQUFhO1FBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUMsY0FBYyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQ2hFLENBQUM7Ozs7Ozs7O0lBUUcsb0JBQW9CLENBQUMsS0FBYTtRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBQyxDQUFDLENBQ25FLENBQUM7Ozs7Ozs7O0lBUUcsbUJBQW1CLENBQUMsS0FBYTtRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFDLGdCQUFnQixFQUFFLEtBQUssRUFBQyxDQUFDLENBQ2xFLENBQUM7O0NBRUwiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgLCAgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHBsdWNrIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBMYXlvdXRTdGF0ZSB9IGZyb20gJy4vbGF5b3V0LnN0YXRlJztcblxuLypcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBMYXlvdXRTdG9yZSB7XG4gIHB1YmxpYyByZWFkb25seSBsYXlvdXRTdGF0ZTogT2JzZXJ2YWJsZTxMYXlvdXRTdGF0ZT47XG5cbiAgcHJpdmF0ZSBfbGF5b3V0U3RhdGU6IEJlaGF2aW9yU3ViamVjdDxMYXlvdXRTdGF0ZT47XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbExheW91dFN0YXRlOiBMYXlvdXRTdGF0ZSA9IHtcbiAgICBpc1NpZGViYXJMZWZ0Q29sbGFwc2VkOiBmYWxzZSxcbiAgICBpc1NpZGViYXJMZWZ0RXhwYW5kT25PdmVyOiBmYWxzZSxcbiAgICBpc1NpZGViYXJMZWZ0TW91c2VPdmVyOiBmYWxzZSxcbiAgICBpc1NpZGViYXJMZWZ0TWluaTogdHJ1ZSxcbiAgICBzaWRlYmFyUmlnaHRTa2luOiAnZGFyaycsXG4gICAgaXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQ6IHRydWUsXG4gICAgaXNTaWRlYmFyUmlnaHRPdmVyQ29udGVudDogdHJ1ZSxcbiAgICBsYXlvdXQ6ICdub3JtYWwnLFxuICAgIHNpZGViYXJMZWZ0TWVudTogW10sXG4gICAgc2lkZWJhckxlZnRNZW51QWN0aXZlVXJsOiAnJyxcbiAgICBza2luOiAnYmx1ZSdcbiAgfTtcblxuICAvKipcbiAgICogQG1ldGhvZCBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0gbGF5b3V0Q29uZmlnIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGNvbnN0cnVjdG9yKGxheW91dENvbmZpZzogTGF5b3V0U3RhdGUpIHtcbiAgICBpZiAobGF5b3V0Q29uZmlnKSB7XG4gICAgICB0aGlzLmluaXRpYWxMYXlvdXRTdGF0ZSA9IE9iamVjdC5hc3NpZ24odGhpcy5pbml0aWFsTGF5b3V0U3RhdGUsIGxheW91dENvbmZpZyk7XG4gICAgfVxuICAgIHRoaXMuX2xheW91dFN0YXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmluaXRpYWxMYXlvdXRTdGF0ZSk7XG4gICAgdGhpcy5sYXlvdXRTdGF0ZSA9IHRoaXMuX2xheW91dFN0YXRlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFt3aW5kb3dJbm5lckhlaWdodCBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCB3aW5kb3dJbm5lckhlaWdodFxuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCB3aW5kb3dJbm5lckhlaWdodCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxudW1iZXI+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnd2luZG93SW5uZXJIZWlnaHQnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW3dpbmRvd0lubmVyV2lkdGggZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgd2luZG93SW5uZXJXaWR0aFxuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCB3aW5kb3dJbm5lcldpZHRoKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIDxPYnNlcnZhYmxlPG51bWJlcj4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCd3aW5kb3dJbm5lcldpZHRoJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtpc1NpZGViYXJMZWZ0Q29sbGFwc2VkIGRlc2NyaXB0aW9uXVxuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCBpc1NpZGViYXJMZWZ0Q29sbGFwc2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxib29sZWFuPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhckxlZnRDb2xsYXBzZWQnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW2lzU2lkZWJhckxlZnRFeHBhbmRPbk92ZXIgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2QgaXNTaWRlYmFyTGVmdEV4cGFuZE9uT3ZlclxuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCBpc1NpZGViYXJMZWZ0RXhwYW5kT25PdmVyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxib29sZWFuPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhckxlZnRFeHBhbmRPbk92ZXInKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW2lzU2lkZWJhckxlZnRNb3VzZU92ZXIgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2QgaXNTaWRlYmFyTGVmdE1vdXNlT3ZlclxuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCBpc1NpZGViYXJMZWZ0TW91c2VPdmVyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxib29sZWFuPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhckxlZnRNb3VzZU92ZXInKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW2lzU2lkZWJhckxlZnRNaW5pIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIGlzU2lkZWJhckxlZnRNaW5pXG4gICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgZ2V0IGlzU2lkZWJhckxlZnRNaW5pKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxib29sZWFuPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhckxlZnRNaW5pJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzaWRlYmFyUmlnaHRTa2luIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNpZGViYXJSaWdodFNraW5cbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBnZXQgc2lkZWJhclJpZ2h0U2tpbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxzdHJpbmc+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnc2lkZWJhclJpZ2h0U2tpbicpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbaXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQgZGVzY3JpcHRpb25dXG4gICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgZ2V0IGlzU2lkZWJhclJpZ2h0Q29sbGFwc2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxib29sZWFuPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhclJpZ2h0Q29sbGFwc2VkJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtpc1NpZGViYXJSaWdodE92ZXJDb250ZW50IGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIGlzU2lkZWJhclJpZ2h0T3ZlckNvbnRlbnRcbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBnZXQgaXNTaWRlYmFyUmlnaHRPdmVyQ29udGVudCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8Ym9vbGVhbj4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdpc1NpZGViYXJSaWdodE92ZXJDb250ZW50JyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzaWRlYmFyTGVmdE1lbnUgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2lkZWJhckxlZnRNZW51XG4gICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgZ2V0IHNpZGViYXJMZWZ0TWVudSgpOiBPYnNlcnZhYmxlPEFycmF5PGFueT4+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8QXJyYXk8YW55Pj4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdzaWRlYmFyTGVmdE1lbnUnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW3NpZGViYXJMZWZ0TWVudUFjdGl2ZVVybCBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzaWRlYmFyTGVmdE1lbnVBY3RpdmVVcmxcbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBnZXQgc2lkZWJhckxlZnRNZW51QWN0aXZlVXJsKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIDxPYnNlcnZhYmxlPHN0cmluZz4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdzaWRlYmFyTGVmdE1lbnVBY3RpdmVVcmwnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW3NpZGViYXJMZWZ0RWxlbWVudEhlaWdodCBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzaWRlYmFyTGVmdEVsZW1lbnRIZWlnaHRcbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBnZXQgc2lkZWJhckxlZnRFbGVtZW50SGVpZ2h0KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIDxPYnNlcnZhYmxlPG51bWJlcj4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdzaWRlYmFyTGVmdEVsZW1lbnRIZWlnaHQnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW2xheW91dFR5cGUgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2QgbGF5b3V0VHlwZVxuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCBsYXlvdXQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8c3RyaW5nPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2xheW91dCcpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2tpbiBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBza2luXG4gICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgZ2V0IHNraW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8c3RyaW5nPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ3NraW4nKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW3dyYXBwZXJDbGFzc2VzIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHdyYXBwZXJDbGFzc2VzXG4gICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgZ2V0IHdyYXBwZXJDbGFzc2VzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIDxPYnNlcnZhYmxlPHN0cmluZz4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCd3cmFwcGVyQ2xhc3NlcycpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2lkZWJhckxlZnRDb2xsYXBzZWQgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2lkZWJhckxlZnRDb2xsYXBzZWRcbiAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIHB1YmxpYyBzaWRlYmFyTGVmdENvbGxhcHNlZCh2YWx1ZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge2lzU2lkZWJhckxlZnRDb2xsYXBzZWQ6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzaWRlYmFyTGVmdEV4cGFuZE9uT3ZlciBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzaWRlYmFyTGVmdEV4cGFuZE9uT3ZlclxuICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgcHVibGljIHNpZGViYXJMZWZ0RXhwYW5kT25PdmVyKHZhbHVlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7aXNTaWRlYmFyTGVmdEV4cGFuZE9uT3ZlcjogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW3NldFNpZGViYXJMZWZ0RWxlbWVudEhlaWdodCBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzZXRTaWRlYmFyTGVmdEVsZW1lbnRIZWlnaHRcbiAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIHB1YmxpYyBzZXRTaWRlYmFyTGVmdEVsZW1lbnRIZWlnaHQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7c2lkZWJhckxlZnRFbGVtZW50SGVpZ2h0OiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2V0U2lkZWJhclJpZ2h0U2tpbiBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzZXRTaWRlYmFyUmlnaHRTa2luXG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2V0U2lkZWJhclJpZ2h0U2tpbih2YWx1ZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7c2lkZWJhclJpZ2h0U2tpbjogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW3NpZGViYXJMZWZ0TW91c2VPdmVyIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNpZGViYXJMZWZ0TW91c2VPdmVyXG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2lkZWJhckxlZnRNb3VzZU92ZXIodmFsdWU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHtpc1NpZGViYXJMZWZ0TW91c2VPdmVyOiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2lkZWJhckxlZnRNaW5pIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNpZGViYXJMZWZ0TWluaVxuICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgcHVibGljIHNpZGViYXJMZWZ0TWluaSh2YWx1ZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge2lzU2lkZWJhckxlZnRNaW5pOiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2lkZWJhclJpZ2h0Q29sbGFwc2VkIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNpZGViYXJSaWdodENvbGxhcHNlZFxuICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgcHVibGljIHNpZGViYXJSaWdodENvbGxhcHNlZCh2YWx1ZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge2lzU2lkZWJhclJpZ2h0Q29sbGFwc2VkOiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2lkZWJhclJpZ2h0T3ZlckNvbnRlbnQgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2lkZWJhclJpZ2h0T3ZlckNvbnRlbnRcbiAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIHB1YmxpYyBzaWRlYmFyUmlnaHRPdmVyQ29udGVudCh2YWx1ZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge2lzU2lkZWJhclJpZ2h0T3ZlckNvbnRlbnQ6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzZXRTaWRlYmFyTGVmdE1lbnUgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2V0U2lkZWJhckxlZnRNZW51XG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2V0U2lkZWJhckxlZnRNZW51KHZhbHVlOiBBcnJheTxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHtzaWRlYmFyTGVmdE1lbnU6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzZXRTaWRlYmFyTGVmdE1lbnVBY3RpdmVVcmwgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2V0U2lkZWJhckxlZnRNZW51QWN0aXZlVXJsXG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2V0U2lkZWJhckxlZnRNZW51QWN0aXZlVXJsKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge3NpZGViYXJMZWZ0TWVudUFjdGl2ZVVybDogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW3NldExheW91dCBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzZXRMYXlvdXRcbiAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIHB1YmxpYyBzZXRMYXlvdXQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7bGF5b3V0OiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2V0U2tpbiBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzZXRTa2luXG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2V0U2tpbih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHtza2luOiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2V0V3JhcHBlckNsYXNzZXMgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2V0V3JhcHBlckNsYXNzZXNcbiAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIHB1YmxpYyBzZXRXcmFwcGVyQ2xhc3Nlcyh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHt3cmFwcGVyQ2xhc3NlczogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW3NldFdpbmRvd0lubmVySGVpZ2h0IGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNldFdpbmRvd0lubmVySGVpZ2h0XG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2V0V2luZG93SW5uZXJIZWlnaHQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7d2luZG93SW5uZXJIZWlnaHQ6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzZXRXaW5kb3dJbm5lcldpZHRoIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNldFdpbmRvd0lubmVyV2lkdGhcbiAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIHB1YmxpYyBzZXRXaW5kb3dJbm5lcldpZHRoKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge3dpbmRvd0lubmVyV2lkdGg6IHZhbHVlfSlcbiAgICApO1xuICB9XG59XG4iXX0=