UNPKG

ad-custom-lib

Version:

This is an UI custom library based on Adminlte library with purpose for personal use, if you need a full template of Primeng please visit https://github.com/mledour/angular-admin-lte

303 lines 32.3 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} 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 })); } } if (false) { /** @type {?} */ LayoutStore.prototype.layoutState; /** * @type {?} * @private */ LayoutStore.prototype._layoutState; /** * @type {?} * @private */ LayoutStore.prototype.initialLayoutState; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnN0b3JlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWQtY3VzdG9tLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbGF5b3V0LnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU83RCxNQUFNLE9BQU8sV0FBVzs7Ozs7SUFzQnBCLFlBQVksWUFBeUI7UUFsQnBCLHVCQUFrQixHQUFnQjtZQUMvQyxzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsc0JBQXNCLEVBQUUsS0FBSztZQUM3QixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsdUJBQXVCLEVBQUUsSUFBSTtZQUM3Qix5QkFBeUIsRUFBRSxJQUFJO1lBQy9CLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLGVBQWUsRUFBRSxFQUFFO1lBQ25CLHdCQUF3QixFQUFFLEVBQUU7WUFDNUIsSUFBSSxFQUFFLE1BQU07U0FDZixDQUFDO1FBT0UsSUFBSSxZQUFZLEVBQUU7WUFDZCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDbEY7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4RCxDQUFDOzs7Ozs7SUFPRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLG1CQUFvQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMs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dCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgcGx1Y2sgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBMYXlvdXRTdGF0ZSB9IGZyb20gJy4vbGF5b3V0LnN0YXRlJztcclxuXHJcbi8qXHJcbiAqXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5b3V0U3RvcmUge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGxheW91dFN0YXRlOiBPYnNlcnZhYmxlPExheW91dFN0YXRlPjtcclxuXHJcbiAgICBwcml2YXRlIF9sYXlvdXRTdGF0ZTogQmVoYXZpb3JTdWJqZWN0PExheW91dFN0YXRlPjtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbExheW91dFN0YXRlOiBMYXlvdXRTdGF0ZSA9IHtcclxuICAgICAgICBpc1NpZGViYXJMZWZ0Q29sbGFwc2VkOiBmYWxzZSxcclxuICAgICAgICBpc1NpZGViYXJMZWZ0RXhwYW5kT25PdmVyOiBmYWxzZSxcclxuICAgICAgICBpc1NpZGViYXJMZWZ0TW91c2VPdmVyOiBmYWxzZSxcclxuICAgICAgICBpc1NpZGViYXJMZWZ0TWluaTogdHJ1ZSxcclxuICAgICAgICBzaWRlYmFyUmlnaHRTa2luOiAnZGFyaycsXHJcbiAgICAgICAgaXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQ6IHRydWUsXHJcbiAgICAgICAgaXNTaWRlYmFyUmlnaHRPdmVyQ29udGVudDogdHJ1ZSxcclxuICAgICAgICBsYXlvdXQ6ICdub3JtYWwnLFxyXG4gICAgICAgIHNpZGViYXJMZWZ0TWVudTogW10sXHJcbiAgICAgICAgc2lkZWJhckxlZnRNZW51QWN0aXZlVXJsOiAnJyxcclxuICAgICAgICBza2luOiAnYmx1ZSdcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAbWV0aG9kIGNvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gbGF5b3V0Q29uZmlnIFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IobGF5b3V0Q29uZmlnOiBMYXlvdXRTdGF0ZSkge1xyXG4gICAgICAgIGlmIChsYXlvdXRDb25maWcpIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsTGF5b3V0U3RhdGUgPSBPYmplY3QuYXNzaWduKHRoaXMuaW5pdGlhbExheW91dFN0YXRlLCBsYXlvdXRDb25maWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9sYXlvdXRTdGF0ZSA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5pbml0aWFsTGF5b3V0U3RhdGUpO1xyXG4gICAgICAgIHRoaXMubGF5b3V0U3RhdGUgPSB0aGlzLl9sYXlvdXRTdGF0ZS5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFt3aW5kb3dJbm5lckhlaWdodCBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2Qgd2luZG93SW5uZXJIZWlnaHRcclxuICAgICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBnZXQgd2luZG93SW5uZXJIZWlnaHQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgICAgICByZXR1cm4gPE9ic2VydmFibGU8bnVtYmVyPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ3dpbmRvd0lubmVySGVpZ2h0JyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW3dpbmRvd0lubmVyV2lkdGggZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIHdpbmRvd0lubmVyV2lkdGhcclxuICAgICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBnZXQgd2luZG93SW5uZXJXaWR0aCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxudW1iZXI+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnd2luZG93SW5uZXJXaWR0aCcpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtpc1NpZGViYXJMZWZ0Q29sbGFwc2VkIGRlc2NyaXB0aW9uXVxyXG4gICAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGdldCBpc1NpZGViYXJMZWZ0Q29sbGFwc2VkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxib29sZWFuPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhckxlZnRDb2xsYXBzZWQnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbaXNTaWRlYmFyTGVmdEV4cGFuZE9uT3ZlciBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2QgaXNTaWRlYmFyTGVmdEV4cGFuZE9uT3ZlclxyXG4gICAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGdldCBpc1NpZGViYXJMZWZ0RXhwYW5kT25PdmVyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxib29sZWFuPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhckxlZnRFeHBhbmRPbk92ZXInKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbaXNTaWRlYmFyTGVmdE1vdXNlT3ZlciBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2QgaXNTaWRlYmFyTGVmdE1vdXNlT3ZlclxyXG4gICAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGdldCBpc1NpZGViYXJMZWZ0TW91c2VPdmVyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxib29sZWFuPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhckxlZnRNb3VzZU92ZXInKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbaXNTaWRlYmFyTGVmdE1pbmkgZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIGlzU2lkZWJhckxlZnRNaW5pXHJcbiAgICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgZ2V0IGlzU2lkZWJhckxlZnRNaW5pKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxib29sZWFuPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhckxlZnRNaW5pJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW3NpZGViYXJSaWdodFNraW4gZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIHNpZGViYXJSaWdodFNraW5cclxuICAgICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBnZXQgc2lkZWJhclJpZ2h0U2tpbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxzdHJpbmc+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnc2lkZWJhclJpZ2h0U2tpbicpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtpc1NpZGViYXJSaWdodENvbGxhcHNlZCBkZXNjcmlwdGlvbl1cclxuICAgICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBnZXQgaXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIDxPYnNlcnZhYmxlPGJvb2xlYW4+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnaXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbaXNTaWRlYmFyUmlnaHRPdmVyQ29udGVudCBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2QgaXNTaWRlYmFyUmlnaHRPdmVyQ29udGVudFxyXG4gICAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGdldCBpc1NpZGViYXJSaWdodE92ZXJDb250ZW50KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxib29sZWFuPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ2lzU2lkZWJhclJpZ2h0T3ZlckNvbnRlbnQnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbc2lkZWJhckxlZnRNZW51IGRlc2NyaXB0aW9uXVxyXG4gICAgICogQG1ldGhvZCBzaWRlYmFyTGVmdE1lbnVcclxuICAgICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBnZXQgc2lkZWJhckxlZnRNZW51KCk6IE9ic2VydmFibGU8QXJyYXk8YW55Pj4ge1xyXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxBcnJheTxhbnk+Pj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ3NpZGViYXJMZWZ0TWVudScpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtzaWRlYmFyTGVmdE1lbnVBY3RpdmVVcmwgZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIHNpZGViYXJMZWZ0TWVudUFjdGl2ZVVybFxyXG4gICAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGdldCBzaWRlYmFyTGVmdE1lbnVBY3RpdmVVcmwoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gPE9ic2VydmFibGU8c3RyaW5nPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ3NpZGViYXJMZWZ0TWVudUFjdGl2ZVVybCcpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtzaWRlYmFyTGVmdEVsZW1lbnRIZWlnaHQgZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIHNpZGViYXJMZWZ0RWxlbWVudEhlaWdodFxyXG4gICAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGdldCBzaWRlYmFyTGVmdEVsZW1lbnRIZWlnaHQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgICAgICByZXR1cm4gPE9ic2VydmFibGU8bnVtYmVyPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ3NpZGViYXJMZWZ0RWxlbWVudEhlaWdodCcpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtsYXlvdXRUeXBlIGRlc2NyaXB0aW9uXVxyXG4gICAgICogQG1ldGhvZCBsYXlvdXRUeXBlXHJcbiAgICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgZ2V0IGxheW91dCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxzdHJpbmc+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnbGF5b3V0JyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW3NraW4gZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIHNraW5cclxuICAgICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBnZXQgc2tpbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiA8T2JzZXJ2YWJsZTxzdHJpbmc+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnc2tpbicpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFt3cmFwcGVyQ2xhc3NlcyBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2Qgd3JhcHBlckNsYXNzZXNcclxuICAgICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBnZXQgd3JhcHBlckNsYXNzZXMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4gPE9ic2VydmFibGU8c3RyaW5nPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ3dyYXBwZXJDbGFzc2VzJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW3NpZGViYXJMZWZ0Q29sbGFwc2VkIGRlc2NyaXB0aW9uXVxyXG4gICAgICogQG1ldGhvZCBzaWRlYmFyTGVmdENvbGxhcHNlZFxyXG4gICAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNpZGViYXJMZWZ0Q29sbGFwc2VkKHZhbHVlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHsgaXNTaWRlYmFyTGVmdENvbGxhcHNlZDogdmFsdWUgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW3NpZGViYXJMZWZ0RXhwYW5kT25PdmVyIGRlc2NyaXB0aW9uXVxyXG4gICAgICogQG1ldGhvZCBzaWRlYmFyTGVmdEV4cGFuZE9uT3ZlclxyXG4gICAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNpZGViYXJMZWZ0RXhwYW5kT25PdmVyKHZhbHVlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHsgaXNTaWRlYmFyTGVmdEV4cGFuZE9uT3ZlcjogdmFsdWUgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW3NldFNpZGViYXJMZWZ0RWxlbWVudEhlaWdodCBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2Qgc2V0U2lkZWJhckxlZnRFbGVtZW50SGVpZ2h0XHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0U2lkZWJhckxlZnRFbGVtZW50SGVpZ2h0KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7IHNpZGViYXJMZWZ0RWxlbWVudEhlaWdodDogdmFsdWUgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW3NldFNpZGViYXJSaWdodFNraW4gZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIHNldFNpZGViYXJSaWdodFNraW5cclxuICAgICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRTaWRlYmFyUmlnaHRTa2luKHZhbHVlPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwgeyBzaWRlYmFyUmlnaHRTa2luOiB2YWx1ZSB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbc2lkZWJhckxlZnRNb3VzZU92ZXIgZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIHNpZGViYXJMZWZ0TW91c2VPdmVyXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2lkZWJhckxlZnRNb3VzZU92ZXIodmFsdWU/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwgeyBpc1NpZGViYXJMZWZ0TW91c2VPdmVyOiB2YWx1ZSB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbc2lkZWJhckxlZnRNaW5pIGRlc2NyaXB0aW9uXVxyXG4gICAgICogQG1ldGhvZCBzaWRlYmFyTGVmdE1pbmlcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzaWRlYmFyTGVmdE1pbmkodmFsdWU/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwgeyBpc1NpZGViYXJMZWZ0TWluaTogdmFsdWUgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW3NpZGViYXJSaWdodENvbGxhcHNlZCBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2Qgc2lkZWJhclJpZ2h0Q29sbGFwc2VkXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2lkZWJhclJpZ2h0Q29sbGFwc2VkKHZhbHVlPzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHsgaXNTaWRlYmFyUmlnaHRDb2xsYXBzZWQ6IHZhbHVlIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtzaWRlYmFyUmlnaHRPdmVyQ29udGVudCBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2Qgc2lkZWJhclJpZ2h0T3ZlckNvbnRlbnRcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzaWRlYmFyUmlnaHRPdmVyQ29udGVudCh2YWx1ZT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7IGlzU2lkZWJhclJpZ2h0T3ZlckNvbnRlbnQ6IHZhbHVlIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtzZXRTaWRlYmFyTGVmdE1lbnUgZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIHNldFNpZGViYXJMZWZ0TWVudVxyXG4gICAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFNpZGViYXJMZWZ0TWVudSh2YWx1ZTogQXJyYXk8YW55Pik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHsgc2lkZWJhckxlZnRNZW51OiB2YWx1ZSB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbc2V0U2lkZWJhckxlZnRNZW51QWN0aXZlVXJsIGRlc2NyaXB0aW9uXVxyXG4gICAgICogQG1ldGhvZCBzZXRTaWRlYmFyTGVmdE1lbnVBY3RpdmVVcmxcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRTaWRlYmFyTGVmdE1lbnVBY3RpdmVVcmwodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHsgc2lkZWJhckxlZnRNZW51QWN0aXZlVXJsOiB2YWx1ZSB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbc2V0TGF5b3V0IGRlc2NyaXB0aW9uXVxyXG4gICAgICogQG1ldGhvZCBzZXRMYXlvdXRcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRMYXlvdXQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHsgbGF5b3V0OiB2YWx1ZSB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbc2V0U2tpbiBkZXNjcmlwdGlvbl1cclxuICAgICAqIEBtZXRob2Qgc2V0U2tpblxyXG4gICAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFNraW4odmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHsgc2tpbjogdmFsdWUgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW3NldFdyYXBwZXJDbGFzc2VzIGRlc2NyaXB0aW9uXVxyXG4gICAgICogQG1ldGhvZCBzZXRXcmFwcGVyQ2xhc3Nlc1xyXG4gICAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFdyYXBwZXJDbGFzc2VzKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7IHdyYXBwZXJDbGFzc2VzOiB2YWx1ZSB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbc2V0V2luZG93SW5uZXJIZWlnaHQgZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAbWV0aG9kIHNldFdpbmRvd0lubmVySGVpZ2h0XHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0V2luZG93SW5uZXJIZWlnaHQodmFsdWU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHsgd2luZG93SW5uZXJIZWlnaHQ6IHZhbHVlIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtzZXRXaW5kb3dJbm5lcldpZHRoIGRlc2NyaXB0aW9uXVxyXG4gICAgICogQG1ldGhvZCBzZXRXaW5kb3dJbm5lcldpZHRoXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0V2luZG93SW5uZXJXaWR0aCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwgeyB3aW5kb3dJbm5lcldpZHRoOiB2YWx1ZSB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19