UNPKG

angular-admin-lte-teliqo

Version:
520 lines (519 loc) 37.3 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { BehaviorSubject } from 'rxjs'; import { distinctUntilChanged, pluck } from 'rxjs/operators'; var LayoutStore = /** @class */ (function () { /** * @method constructor * @param layoutConfig [description] */ function LayoutStore(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(); } Object.defineProperty(LayoutStore.prototype, "windowInnerHeight", { /** * [windowInnerHeight description] * @method windowInnerHeight * @return [description] */ get: /** * [windowInnerHeight description] * \@method windowInnerHeight * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('windowInnerHeight'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "windowInnerWidth", { /** * [windowInnerWidth description] * @method windowInnerWidth * @return [description] */ get: /** * [windowInnerWidth description] * \@method windowInnerWidth * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('windowInnerWidth'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "isSidebarLeftCollapsed", { /** * [isSidebarLeftCollapsed description] * @return [description] */ get: /** * [isSidebarLeftCollapsed description] * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarLeftCollapsed'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "isSidebarLeftExpandOnOver", { /** * [isSidebarLeftExpandOnOver description] * @method isSidebarLeftExpandOnOver * @return [description] */ get: /** * [isSidebarLeftExpandOnOver description] * \@method isSidebarLeftExpandOnOver * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarLeftExpandOnOver'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "isSidebarLeftMouseOver", { /** * [isSidebarLeftMouseOver description] * @method isSidebarLeftMouseOver * @return [description] */ get: /** * [isSidebarLeftMouseOver description] * \@method isSidebarLeftMouseOver * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarLeftMouseOver'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "isSidebarLeftMini", { /** * [isSidebarLeftMini description] * @method isSidebarLeftMini * @return [description] */ get: /** * [isSidebarLeftMini description] * \@method isSidebarLeftMini * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarLeftMini'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "sidebarRightSkin", { /** * [sidebarRightSkin description] * @method sidebarRightSkin * @return [description] */ get: /** * [sidebarRightSkin description] * \@method sidebarRightSkin * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('sidebarRightSkin'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "isSidebarRightCollapsed", { /** * [isSidebarRightCollapsed description] * @return [description] */ get: /** * [isSidebarRightCollapsed description] * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarRightCollapsed'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "isSidebarRightOverContent", { /** * [isSidebarRightOverContent description] * @method isSidebarRightOverContent * @return [description] */ get: /** * [isSidebarRightOverContent description] * \@method isSidebarRightOverContent * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('isSidebarRightOverContent'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "sidebarLeftMenu", { /** * [sidebarLeftMenu description] * @method sidebarLeftMenu * @return [description] */ get: /** * [sidebarLeftMenu description] * \@method sidebarLeftMenu * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('sidebarLeftMenu'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "sidebarLeftMenuActiveUrl", { /** * [sidebarLeftMenuActiveUrl description] * @method sidebarLeftMenuActiveUrl * @return [description] */ get: /** * [sidebarLeftMenuActiveUrl description] * \@method sidebarLeftMenuActiveUrl * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('sidebarLeftMenuActiveUrl'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "sidebarLeftElementHeight", { /** * [sidebarLeftElementHeight description] * @method sidebarLeftElementHeight * @return [description] */ get: /** * [sidebarLeftElementHeight description] * \@method sidebarLeftElementHeight * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('sidebarLeftElementHeight'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "layout", { /** * [layoutType description] * @method layoutType * @return [description] */ get: /** * [layoutType description] * \@method layoutType * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('layout'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "skin", { /** * [skin description] * @method skin * @return [description] */ get: /** * [skin description] * \@method skin * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('skin'), distinctUntilChanged())); }, enumerable: true, configurable: true }); Object.defineProperty(LayoutStore.prototype, "wrapperClasses", { /** * [wrapperClasses description] * @method wrapperClasses * @return [description] */ get: /** * [wrapperClasses description] * \@method wrapperClasses * @return {?} [description] */ function () { return /** @type {?} */ (this.layoutState.pipe(pluck('wrapperClasses'), distinctUntilChanged())); }, enumerable: true, configurable: true }); /** * [sidebarLeftCollapsed description] * \@method sidebarLeftCollapsed * @param {?=} value [description] * @return {?} */ LayoutStore.prototype.sidebarLeftCollapsed = /** * [sidebarLeftCollapsed description] * \@method sidebarLeftCollapsed * @param {?=} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarLeftCollapsed: value })); }; /** * [sidebarLeftExpandOnOver description] * \@method sidebarLeftExpandOnOver * @param {?=} value [description] * @return {?} */ LayoutStore.prototype.sidebarLeftExpandOnOver = /** * [sidebarLeftExpandOnOver description] * \@method sidebarLeftExpandOnOver * @param {?=} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarLeftExpandOnOver: value })); }; /** * [setSidebarLeftElementHeight description] * \@method setSidebarLeftElementHeight * @param {?} value [description] * @return {?} */ LayoutStore.prototype.setSidebarLeftElementHeight = /** * [setSidebarLeftElementHeight description] * \@method setSidebarLeftElementHeight * @param {?} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { sidebarLeftElementHeight: value })); }; /** * [setSidebarRightSkin description] * \@method setSidebarRightSkin * @param {?=} value [description] * @return {?} */ LayoutStore.prototype.setSidebarRightSkin = /** * [setSidebarRightSkin description] * \@method setSidebarRightSkin * @param {?=} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { sidebarRightSkin: value })); }; /** * [sidebarLeftMouseOver description] * \@method sidebarLeftMouseOver * @param {?=} value [description] * @return {?} */ LayoutStore.prototype.sidebarLeftMouseOver = /** * [sidebarLeftMouseOver description] * \@method sidebarLeftMouseOver * @param {?=} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarLeftMouseOver: value })); }; /** * [sidebarLeftMini description] * \@method sidebarLeftMini * @param {?=} value [description] * @return {?} */ LayoutStore.prototype.sidebarLeftMini = /** * [sidebarLeftMini description] * \@method sidebarLeftMini * @param {?=} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarLeftMini: value })); }; /** * [sidebarRightCollapsed description] * \@method sidebarRightCollapsed * @param {?=} value [description] * @return {?} */ LayoutStore.prototype.sidebarRightCollapsed = /** * [sidebarRightCollapsed description] * \@method sidebarRightCollapsed * @param {?=} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarRightCollapsed: value })); }; /** * [sidebarRightOverContent description] * \@method sidebarRightOverContent * @param {?=} value [description] * @return {?} */ LayoutStore.prototype.sidebarRightOverContent = /** * [sidebarRightOverContent description] * \@method sidebarRightOverContent * @param {?=} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { isSidebarRightOverContent: value })); }; /** * [setSidebarLeftMenu description] * \@method setSidebarLeftMenu * @param {?} value [description] * @return {?} */ LayoutStore.prototype.setSidebarLeftMenu = /** * [setSidebarLeftMenu description] * \@method setSidebarLeftMenu * @param {?} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { sidebarLeftMenu: value })); }; /** * [setSidebarLeftMenuActiveUrl description] * \@method setSidebarLeftMenuActiveUrl * @param {?} value [description] * @return {?} */ LayoutStore.prototype.setSidebarLeftMenuActiveUrl = /** * [setSidebarLeftMenuActiveUrl description] * \@method setSidebarLeftMenuActiveUrl * @param {?} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { sidebarLeftMenuActiveUrl: value })); }; /** * [setLayout description] * \@method setLayout * @param {?} value [description] * @return {?} */ LayoutStore.prototype.setLayout = /** * [setLayout description] * \@method setLayout * @param {?} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { layout: value })); }; /** * [setSkin description] * \@method setSkin * @param {?} value [description] * @return {?} */ LayoutStore.prototype.setSkin = /** * [setSkin description] * \@method setSkin * @param {?} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { skin: value })); }; /** * [setWrapperClasses description] * \@method setWrapperClasses * @param {?} value [description] * @return {?} */ LayoutStore.prototype.setWrapperClasses = /** * [setWrapperClasses description] * \@method setWrapperClasses * @param {?} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { wrapperClasses: value })); }; /** * [setWindowInnerHeight description] * \@method setWindowInnerHeight * @param {?} value [description] * @return {?} */ LayoutStore.prototype.setWindowInnerHeight = /** * [setWindowInnerHeight description] * \@method setWindowInnerHeight * @param {?} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { windowInnerHeight: value })); }; /** * [setWindowInnerWidth description] * \@method setWindowInnerWidth * @param {?} value [description] * @return {?} */ LayoutStore.prototype.setWindowInnerWidth = /** * [setWindowInnerWidth description] * \@method setWindowInnerWidth * @param {?} value [description] * @return {?} */ function (value) { this._layoutState.next(Object.assign(this._layoutState.value, { windowInnerWidth: value })); }; return LayoutStore; }()); export { LayoutStore }; function LayoutStore_tsickle_Closure_declarations() { /** @type {?} */ LayoutStore.prototype.layoutState; /** @type {?} */ LayoutStore.prototype._layoutState; /** @type {?} */ LayoutStore.prototype.initialLayoutState; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnN0b3JlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1hZG1pbi1sdGUtdGVsaXFvLyIsInNvdXJjZXMiOlsibGliL2xheW91dC9sYXlvdXQuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU83RCxJQUFBO0lBa0JFOzs7T0FHRztJQUNILHFCQUFZLFlBQXlCO2tDQWxCYztZQUNqRCxzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsc0JBQXNCLEVBQUUsS0FBSztZQUM3QixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsdUJBQXVCLEVBQUUsSUFBSTtZQUM3Qix5QkFBeUIsRUFBRSxJQUFJO1lBQy9CLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLGVBQWUsRUFBRSxFQUFFO1lBQ25CLHdCQUF3QixFQUFFLEVBQUU7WUFDNUIsSUFBSSxFQUFFLE1BQU07U0FDYjtRQU9DLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDakIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ2hGO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7S0FDckQ7SUFPRCxzQkFBSSwwQ0FBaUI7UUFMckI7Ozs7V0FJRzs7Ozs7O1FBQ0g7WUFDRSxNQUFNLG1CQUFxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FB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QUFZLENBQUMsSUFBSSxDQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FDbEUsQ0FBQzs7c0JBN1VOO0lBK1VDLENBQUE7QUF2VUQsdUJBdVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0ICwgIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBwbHVjayB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTGF5b3V0U3RhdGUgfSBmcm9tICcuL2xheW91dC5zdGF0ZSc7XG5cbi8qXG4gKlxuICovXG5leHBvcnQgY2xhc3MgTGF5b3V0U3RvcmUge1xuICBwdWJsaWMgcmVhZG9ubHkgbGF5b3V0U3RhdGU6IE9ic2VydmFibGU8TGF5b3V0U3RhdGU+O1xuXG4gIHByaXZhdGUgX2xheW91dFN0YXRlOiBCZWhhdmlvclN1YmplY3Q8TGF5b3V0U3RhdGU+O1xuICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxMYXlvdXRTdGF0ZTogTGF5b3V0U3RhdGUgPSB7XG4gICAgaXNTaWRlYmFyTGVmdENvbGxhcHNlZDogZmFsc2UsXG4gICAgaXNTaWRlYmFyTGVmdEV4cGFuZE9uT3ZlcjogZmFsc2UsXG4gICAgaXNTaWRlYmFyTGVmdE1vdXNlT3ZlcjogZmFsc2UsXG4gICAgaXNTaWRlYmFyTGVmdE1pbmk6IHRydWUsXG4gICAgc2lkZWJhclJpZ2h0U2tpbjogJ2RhcmsnLFxuICAgIGlzU2lkZWJhclJpZ2h0Q29sbGFwc2VkOiB0cnVlLFxuICAgIGlzU2lkZWJhclJpZ2h0T3ZlckNvbnRlbnQ6IHRydWUsXG4gICAgbGF5b3V0OiAnbm9ybWFsJyxcbiAgICBzaWRlYmFyTGVmdE1lbnU6IFtdLFxuICAgIHNpZGViYXJMZWZ0TWVudUFjdGl2ZVVybDogJycsXG4gICAgc2tpbjogJ2JsdWUnXG4gIH07XG5cbiAgLyoqXG4gICAqIEBtZXRob2QgY29uc3RydWN0b3JcbiAgICogQHBhcmFtIGxheW91dENvbmZpZyBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBjb25zdHJ1Y3RvcihsYXlvdXRDb25maWc6IExheW91dFN0YXRlKSB7XG4gICAgaWYgKGxheW91dENvbmZpZykge1xuICAgICAgdGhpcy5pbml0aWFsTGF5b3V0U3RhdGUgPSBPYmplY3QuYXNzaWduKHRoaXMuaW5pdGlhbExheW91dFN0YXRlLCBsYXlvdXRDb25maWcpO1xuICAgIH1cbiAgICB0aGlzLl9sYXlvdXRTdGF0ZSA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5pbml0aWFsTGF5b3V0U3RhdGUpO1xuICAgIHRoaXMubGF5b3V0U3RhdGUgPSB0aGlzLl9sYXlvdXRTdGF0ZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbd2luZG93SW5uZXJIZWlnaHQgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgd2luZG93SW5uZXJIZWlnaHRcbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBnZXQgd2luZG93SW5uZXJIZWlnaHQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8bnVtYmVyPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ3dpbmRvd0lubmVySGVpZ2h0JyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFt3aW5kb3dJbm5lcldpZHRoIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHdpbmRvd0lubmVyV2lkdGhcbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBnZXQgd2luZG93SW5uZXJXaWR0aCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxudW1iZXI+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnd2luZG93SW5uZXJXaWR0aCcpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbaXNTaWRlYmFyTGVmdENvbGxhcHNlZCBkZXNjcmlwdGlvbl1cbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBnZXQgaXNTaWRlYmFyTGVmdENvbGxhcHNlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8Ym9vbGVhbj4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdpc1NpZGViYXJMZWZ0Q29sbGFwc2VkJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtpc1NpZGViYXJMZWZ0RXhwYW5kT25PdmVyIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIGlzU2lkZWJhckxlZnRFeHBhbmRPbk92ZXJcbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBnZXQgaXNTaWRlYmFyTGVmdEV4cGFuZE9uT3ZlcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8Ym9vbGVhbj4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdpc1NpZGViYXJMZWZ0RXhwYW5kT25PdmVyJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtpc1NpZGViYXJMZWZ0TW91c2VPdmVyIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIGlzU2lkZWJhckxlZnRNb3VzZU92ZXJcbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBnZXQgaXNTaWRlYmFyTGVmdE1vdXNlT3ZlcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8Ym9vbGVhbj4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdpc1NpZGViYXJMZWZ0TW91c2VPdmVyJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtpc1NpZGViYXJMZWZ0TWluaSBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBpc1NpZGViYXJMZWZ0TWluaVxuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCBpc1NpZGViYXJMZWZ0TWluaSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8Ym9vbGVhbj4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdpc1NpZGViYXJMZWZ0TWluaScpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2lkZWJhclJpZ2h0U2tpbiBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzaWRlYmFyUmlnaHRTa2luXG4gICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgZ2V0IHNpZGViYXJSaWdodFNraW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8c3RyaW5nPj50aGlzLmxheW91dFN0YXRlLnBpcGUocGx1Y2soJ3NpZGViYXJSaWdodFNraW4nKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW2lzU2lkZWJhclJpZ2h0Q29sbGFwc2VkIGRlc2NyaXB0aW9uXVxuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCBpc1NpZGViYXJSaWdodENvbGxhcHNlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gPE9ic2VydmFibGU8Ym9vbGVhbj4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdpc1NpZGViYXJSaWdodENvbGxhcHNlZCcpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbaXNTaWRlYmFyUmlnaHRPdmVyQ29udGVudCBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBpc1NpZGViYXJSaWdodE92ZXJDb250ZW50XG4gICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgZ2V0IGlzU2lkZWJhclJpZ2h0T3ZlckNvbnRlbnQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIDxPYnNlcnZhYmxlPGJvb2xlYW4+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnaXNTaWRlYmFyUmlnaHRPdmVyQ29udGVudCcpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2lkZWJhckxlZnRNZW51IGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNpZGViYXJMZWZ0TWVudVxuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCBzaWRlYmFyTGVmdE1lbnUoKTogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiB7XG4gICAgcmV0dXJuIDxPYnNlcnZhYmxlPEFycmF5PGFueT4+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnc2lkZWJhckxlZnRNZW51JyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzaWRlYmFyTGVmdE1lbnVBY3RpdmVVcmwgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2lkZWJhckxlZnRNZW51QWN0aXZlVXJsXG4gICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgZ2V0IHNpZGViYXJMZWZ0TWVudUFjdGl2ZVVybCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxzdHJpbmc+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnc2lkZWJhckxlZnRNZW51QWN0aXZlVXJsJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzaWRlYmFyTGVmdEVsZW1lbnRIZWlnaHQgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2lkZWJhckxlZnRFbGVtZW50SGVpZ2h0XG4gICAqIEByZXR1cm4gW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgZ2V0IHNpZGViYXJMZWZ0RWxlbWVudEhlaWdodCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxudW1iZXI+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnc2lkZWJhckxlZnRFbGVtZW50SGVpZ2h0JyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFtsYXlvdXRUeXBlIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIGxheW91dFR5cGVcbiAgICogQHJldHVybiBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBnZXQgbGF5b3V0KCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIDxPYnNlcnZhYmxlPHN0cmluZz4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdsYXlvdXQnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW3NraW4gZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2tpblxuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCBza2luKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIDxPYnNlcnZhYmxlPHN0cmluZz4+dGhpcy5sYXlvdXRTdGF0ZS5waXBlKHBsdWNrKCdza2luJyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFt3cmFwcGVyQ2xhc3NlcyBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCB3cmFwcGVyQ2xhc3Nlc1xuICAgKiBAcmV0dXJuIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIGdldCB3cmFwcGVyQ2xhc3NlcygpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiA8T2JzZXJ2YWJsZTxzdHJpbmc+PnRoaXMubGF5b3V0U3RhdGUucGlwZShwbHVjaygnd3JhcHBlckNsYXNzZXMnKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogW3NpZGViYXJMZWZ0Q29sbGFwc2VkIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNpZGViYXJMZWZ0Q29sbGFwc2VkXG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2lkZWJhckxlZnRDb2xsYXBzZWQodmFsdWU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHtpc1NpZGViYXJMZWZ0Q29sbGFwc2VkOiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2lkZWJhckxlZnRFeHBhbmRPbk92ZXIgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2lkZWJhckxlZnRFeHBhbmRPbk92ZXJcbiAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIHB1YmxpYyBzaWRlYmFyTGVmdEV4cGFuZE9uT3Zlcih2YWx1ZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge2lzU2lkZWJhckxlZnRFeHBhbmRPbk92ZXI6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzZXRTaWRlYmFyTGVmdEVsZW1lbnRIZWlnaHQgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2V0U2lkZWJhckxlZnRFbGVtZW50SGVpZ2h0XG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2V0U2lkZWJhckxlZnRFbGVtZW50SGVpZ2h0KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge3NpZGViYXJMZWZ0RWxlbWVudEhlaWdodDogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW3NldFNpZGViYXJSaWdodFNraW4gZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2V0U2lkZWJhclJpZ2h0U2tpblxuICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgcHVibGljIHNldFNpZGViYXJSaWdodFNraW4odmFsdWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge3NpZGViYXJSaWdodFNraW46IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzaWRlYmFyTGVmdE1vdXNlT3ZlciBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzaWRlYmFyTGVmdE1vdXNlT3ZlclxuICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgcHVibGljIHNpZGViYXJMZWZ0TW91c2VPdmVyKHZhbHVlPzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7aXNTaWRlYmFyTGVmdE1vdXNlT3ZlcjogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW3NpZGViYXJMZWZ0TWluaSBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzaWRlYmFyTGVmdE1pbmlcbiAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIHB1YmxpYyBzaWRlYmFyTGVmdE1pbmkodmFsdWU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHtpc1NpZGViYXJMZWZ0TWluaTogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW3NpZGViYXJSaWdodENvbGxhcHNlZCBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzaWRlYmFyUmlnaHRDb2xsYXBzZWRcbiAgICogQHBhcmFtIHZhbHVlIFtkZXNjcmlwdGlvbl1cbiAgICovXG4gIHB1YmxpYyBzaWRlYmFyUmlnaHRDb2xsYXBzZWQodmFsdWU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHtpc1NpZGViYXJSaWdodENvbGxhcHNlZDogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW3NpZGViYXJSaWdodE92ZXJDb250ZW50IGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNpZGViYXJSaWdodE92ZXJDb250ZW50XG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2lkZWJhclJpZ2h0T3ZlckNvbnRlbnQodmFsdWU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHtpc1NpZGViYXJSaWdodE92ZXJDb250ZW50OiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2V0U2lkZWJhckxlZnRNZW51IGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNldFNpZGViYXJMZWZ0TWVudVxuICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgcHVibGljIHNldFNpZGViYXJMZWZ0TWVudSh2YWx1ZTogQXJyYXk8YW55Pik6IHZvaWQge1xuICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7c2lkZWJhckxlZnRNZW51OiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2V0U2lkZWJhckxlZnRNZW51QWN0aXZlVXJsIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNldFNpZGViYXJMZWZ0TWVudUFjdGl2ZVVybFxuICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgcHVibGljIHNldFNpZGViYXJMZWZ0TWVudUFjdGl2ZVVybCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHtzaWRlYmFyTGVmdE1lbnVBY3RpdmVVcmw6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzZXRMYXlvdXQgZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2V0TGF5b3V0XG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2V0TGF5b3V0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge2xheW91dDogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW3NldFNraW4gZGVzY3JpcHRpb25dXG4gICAqIEBtZXRob2Qgc2V0U2tpblxuICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgcHVibGljIHNldFNraW4odmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7c2tpbjogdmFsdWV9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogW3NldFdyYXBwZXJDbGFzc2VzIGRlc2NyaXB0aW9uXVxuICAgKiBAbWV0aG9kIHNldFdyYXBwZXJDbGFzc2VzXG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2V0V3JhcHBlckNsYXNzZXModmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2xheW91dFN0YXRlLm5leHQoXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2xheW91dFN0YXRlLnZhbHVlLCB7d3JhcHBlckNsYXNzZXM6IHZhbHVlfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFtzZXRXaW5kb3dJbm5lckhlaWdodCBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzZXRXaW5kb3dJbm5lckhlaWdodFxuICAgKiBAcGFyYW0gdmFsdWUgW2Rlc2NyaXB0aW9uXVxuICAgKi9cbiAgcHVibGljIHNldFdpbmRvd0lubmVySGVpZ2h0KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9sYXlvdXRTdGF0ZS5uZXh0KFxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9sYXlvdXRTdGF0ZS52YWx1ZSwge3dpbmRvd0lubmVySGVpZ2h0OiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBbc2V0V2luZG93SW5uZXJXaWR0aCBkZXNjcmlwdGlvbl1cbiAgICogQG1ldGhvZCBzZXRXaW5kb3dJbm5lcldpZHRoXG4gICAqIEBwYXJhbSB2YWx1ZSBbZGVzY3JpcHRpb25dXG4gICAqL1xuICBwdWJsaWMgc2V0V2luZG93SW5uZXJXaWR0aCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fbGF5b3V0U3RhdGUubmV4dChcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fbGF5b3V0U3RhdGUudmFsdWUsIHt3aW5kb3dJbm5lcldpZHRoOiB2YWx1ZX0pXG4gICAgKTtcbiAgfVxufVxuIl19