angular-admin-lte-teliqo
Version:
npm# angular-admin-lte
295 lines (294 loc) • 29.4 kB
JavaScript
/**
* @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=