UNPKG

theme-lib

Version:

This is a simple example Angular Library published to npm.

142 lines 8.54 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { ReplaySubject, Subject } from 'rxjs'; import { NbWindowState } from './window.options'; /* * The `NbWindowRef` helps to manipulate window after it was created. * The window can be dismissed by using `close` method of the windowRef. * You can access rendered component as `componentRef` property of the windowRef. */ export class NbWindowRef { /** * @param {?} config */ constructor(config) { this.config = config; this.stateChange$ = new ReplaySubject(1); this._closed = false; this.closed$ = new Subject(); this.state = config.initialState; } /* * Current window state. */ /** * @return {?} */ get state() { return this.stateValue; } /** * @param {?} newState * @return {?} */ set state(newState) { if (newState && this.stateValue !== newState) { this.prevStateValue = this.state; this.stateValue = newState; this.stateChange$.next({ oldState: this.prevStateValue, newState }); } } /* * Emits when window state change. */ /** * @return {?} */ get stateChange() { return this.stateChange$.asObservable(); } /* * Emits when window was closed. */ /** * @return {?} */ get onClose() { return this.closed$.asObservable(); } /* * Minimize window. */ /** * @return {?} */ minimize() { this.state = NbWindowState.MINIMIZED; } /* * Maximize window. */ /** * @return {?} */ maximize() { this.state = NbWindowState.MAXIMIZED; } /* * Set window on top. */ /** * @return {?} */ fullScreen() { this.state = NbWindowState.FULL_SCREEN; } /** * @return {?} */ toPreviousState() { this.state = this.prevStateValue; } /* * Closes window. * */ /** * @return {?} */ close() { if (this._closed) { return; } this._closed = true; this.componentRef.destroy(); this.stateChange$.complete(); this.closed$.next(); this.closed$.complete(); } } if (false) { /** @type {?} */ NbWindowRef.prototype.componentRef; /** * @type {?} * @protected */ NbWindowRef.prototype.prevStateValue; /** * @type {?} * @protected */ NbWindowRef.prototype.stateValue; /** * @type {?} * @protected */ NbWindowRef.prototype.stateChange$; /** * @type {?} * @protected */ NbWindowRef.prototype._closed; /** * @type {?} * @protected */ NbWindowRef.prototype.closed$; /** @type {?} */ NbWindowRef.prototype.config; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3RoZW1lLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3dpbmRvdy93aW5kb3ctcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRCxPQUFPLEVBQWtCLGFBQWEsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7O0FBT3RGLE1BQU0sT0FBTyxXQUFXOzs7O0lBb0N0QixZQUFtQixNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQWpCL0IsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBc0IsQ0FBQyxDQUFDLENBQUM7UUFRekQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDbkMsQ0FBQzs7Ozs7OztJQTlCRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7Ozs7SUFDRCxJQUFJLEtBQUssQ0FBQyxRQUF1QjtRQUMvQixJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7WUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQzs7Ozs7OztJQU1ELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDOzs7Ozs7O0lBT0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7Ozs7Ozs7SUFTRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7Ozs7Ozs7SUFLRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7Ozs7Ozs7SUFLRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ3pDLENBQUM7Ozs7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ25DLENBQUM7Ozs7Ozs7SUFLRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUIsQ0FBQztDQUNGOzs7SUE5RUMsbUNBQThDOzs7OztJQUU5QyxxQ0FBd0M7Ozs7O0lBQ3hDLGlDQUFvQzs7Ozs7SUFlcEMsbUNBQW1FOzs7OztJQVFuRSw4QkFBMEI7Ozs7O0lBQzFCLDhCQUFrQzs7SUFRdEIsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTmJXaW5kb3dDb21wb25lbnQgfSBmcm9tICcuL3dpbmRvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYldpbmRvd0NvbmZpZywgTmJXaW5kb3dTdGF0ZSwgTmJXaW5kb3dTdGF0ZUNoYW5nZSB9IGZyb20gJy4vd2luZG93Lm9wdGlvbnMnO1xyXG5cclxuLypcclxuICogVGhlIGBOYldpbmRvd1JlZmAgaGVscHMgdG8gbWFuaXB1bGF0ZSB3aW5kb3cgYWZ0ZXIgaXQgd2FzIGNyZWF0ZWQuXHJcbiAqIFRoZSB3aW5kb3cgY2FuIGJlIGRpc21pc3NlZCBieSB1c2luZyBgY2xvc2VgIG1ldGhvZCBvZiB0aGUgd2luZG93UmVmLlxyXG4gKiBZb3UgY2FuIGFjY2VzcyByZW5kZXJlZCBjb21wb25lbnQgYXMgYGNvbXBvbmVudFJlZmAgcHJvcGVydHkgb2YgdGhlIHdpbmRvd1JlZi5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBOYldpbmRvd1JlZiB7XHJcbiAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8TmJXaW5kb3dDb21wb25lbnQ+O1xyXG5cclxuICBwcm90ZWN0ZWQgcHJldlN0YXRlVmFsdWU6IE5iV2luZG93U3RhdGU7XHJcbiAgcHJvdGVjdGVkIHN0YXRlVmFsdWU6IE5iV2luZG93U3RhdGU7XHJcbiAgLypcclxuICAgKiBDdXJyZW50IHdpbmRvdyBzdGF0ZS5cclxuICAgKi9cclxuICBnZXQgc3RhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZVZhbHVlO1xyXG4gIH1cclxuICBzZXQgc3RhdGUobmV3U3RhdGU6IE5iV2luZG93U3RhdGUpIHtcclxuICAgIGlmIChuZXdTdGF0ZSAmJiB0aGlzLnN0YXRlVmFsdWUgIT09IG5ld1N0YXRlKSB7XHJcbiAgICAgIHRoaXMucHJldlN0YXRlVmFsdWUgPSB0aGlzLnN0YXRlO1xyXG4gICAgICB0aGlzLnN0YXRlVmFsdWUgPSBuZXdTdGF0ZTtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZSQubmV4dCh7IG9sZFN0YXRlOiB0aGlzLnByZXZTdGF0ZVZhbHVlLCBuZXdTdGF0ZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzdGF0ZUNoYW5nZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxOYldpbmRvd1N0YXRlQ2hhbmdlPigxKTtcclxuICAvKlxyXG4gICAqIEVtaXRzIHdoZW4gd2luZG93IHN0YXRlIGNoYW5nZS5cclxuICAgKi9cclxuICBnZXQgc3RhdGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxOYldpbmRvd1N0YXRlQ2hhbmdlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZUNoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2Nsb3NlZCA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBjbG9zZWQkID0gbmV3IFN1YmplY3QoKTtcclxuICAvKlxyXG4gICAqIEVtaXRzIHdoZW4gd2luZG93IHdhcyBjbG9zZWQuXHJcbiAgICovXHJcbiAgZ2V0IG9uQ2xvc2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbG9zZWQkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGNvbmZpZzogTmJXaW5kb3dDb25maWcpIHtcclxuICAgIHRoaXMuc3RhdGUgPSBjb25maWcuaW5pdGlhbFN0YXRlO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBNaW5pbWl6ZSB3aW5kb3cuXHJcbiAgICovXHJcbiAgbWluaW1pemUoKSB7XHJcbiAgICB0aGlzLnN0YXRlID0gTmJXaW5kb3dTdGF0ZS5NSU5JTUlaRUQ7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIE1heGltaXplIHdpbmRvdy5cclxuICAgKi9cclxuICBtYXhpbWl6ZSgpIHtcclxuICAgIHRoaXMuc3RhdGUgPSBOYldpbmRvd1N0YXRlLk1BWElNSVpFRDtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogU2V0IHdpbmRvdyBvbiB0b3AuXHJcbiAgICovXHJcbiAgZnVsbFNjcmVlbigpIHtcclxuICAgIHRoaXMuc3RhdGUgPSBOYldpbmRvd1N0YXRlLkZVTExfU0NSRUVOO1xyXG4gIH1cclxuXHJcbiAgdG9QcmV2aW91c1N0YXRlKCkge1xyXG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMucHJldlN0YXRlVmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIENsb3NlcyB3aW5kb3cuXHJcbiAgICogKi9cclxuICBjbG9zZSgpIHtcclxuICAgIGlmICh0aGlzLl9jbG9zZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2Nsb3NlZCA9IHRydWU7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlJC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5jbG9zZWQkLm5leHQoKTtcclxuICAgIHRoaXMuY2xvc2VkJC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=