UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

50 lines 7.05 kB
import { BehaviorSubject, of, Subject } from 'rxjs'; import { tap } from 'rxjs/operators'; export class SideMenuControl { sideMenuCloseFunction; _injectionData; isVersionVisible; allVersionEnabled; _event$; _isOpened; constructor(bindingsFunction = () => { }, sideMenuOpenedStateChange = of(true), sideMenuCloseFunction, _injectionData, isVersionVisible, allVersionEnabled) { this.sideMenuCloseFunction = sideMenuCloseFunction; this._injectionData = _injectionData; this.isVersionVisible = isVersionVisible; this.allVersionEnabled = allVersionEnabled; this._event$ = new Subject(); this._isOpened = new BehaviorSubject(false); bindingsFunction(this._event$); sideMenuOpenedStateChange.subscribe((opened) => { this._isOpened.next(opened); if (!opened) { this._event$.next({ opened, message: 'Side menu closed unexpectedly' }); this._event$.complete(); this._isOpened.complete(); } }); } get data() { return this._injectionData; } isOpened() { return this._isOpened.getValue(); } publish(event) { this._isOpened.next(event.opened); this._event$.next(event); } close(event) { if (!event.message) { event.message = 'Side menu is closing'; } this._event$.next({ ...event, opened: false }); this._isOpened.next(event.opened); return this.sideMenuCloseFunction().pipe(tap((closed) => { if (closed === 'close') { this._event$.complete(); } })); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LWNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3NpZGUtbWVudS9tb2RlbHMvc2lkZS1tZW51LWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRzlELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxNQUFNLE9BQU8sZUFBZTtJQU9KO0lBQ1M7SUFDVjtJQUNBO0lBUlgsT0FBTyxDQUF5QjtJQUNoQyxTQUFTLENBQTJCO0lBRTVDLFlBQVksbUJBQTZELEdBQUcsRUFBRSxHQUFFLENBQUMsRUFDckUsNEJBQWlELEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDakQscUJBQThELEVBQ3JELGNBQXNDLEVBQ2hELGdCQUEwQixFQUMxQixpQkFBMkI7UUFIMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QztRQUNyRCxtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDaEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFVO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBVTtRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDckQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLCtCQUErQixFQUFDLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUM3QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRU0sUUFBUTtRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQW9CO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQW9CO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ2hCLEtBQUssQ0FBQyxPQUFPLEdBQUcsc0JBQXNCLENBQUM7U0FDMUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksQ0FDcEMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDWCxJQUFJLE1BQU0sS0FBSyxPQUFPLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDM0I7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7U2lkZU1lbnVFdmVudH0gZnJvbSAnLi9zaWRlLW1lbnUtZXZlbnQnO1xuaW1wb3J0IHtTaWRlTWVudUluamVjdGlvbkRhdGF9IGZyb20gJy4vc2lkZS1tZW51LWluamVjdGlvbi1kYXRhJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge01hdERyYXdlclRvZ2dsZVJlc3VsdH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5cbmV4cG9ydCBjbGFzcyBTaWRlTWVudUNvbnRyb2wge1xuXG4gICAgcHJpdmF0ZSBfZXZlbnQkOiBTdWJqZWN0PFNpZGVNZW51RXZlbnQ+O1xuICAgIHByaXZhdGUgX2lzT3BlbmVkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG5cbiAgICBjb25zdHJ1Y3RvcihiaW5kaW5nc0Z1bmN0aW9uOiAoZXZlbnQkOiBTdWJqZWN0PFNpZGVNZW51RXZlbnQ+KSA9PiB2b2lkID0gKCkgPT4ge30sXG4gICAgICAgICAgICAgICAgc2lkZU1lbnVPcGVuZWRTdGF0ZUNoYW5nZTogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG9mKHRydWUpLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgc2lkZU1lbnVDbG9zZUZ1bmN0aW9uOiAoKSA9PiBPYnNlcnZhYmxlPE1hdERyYXdlclRvZ2dsZVJlc3VsdD4sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0aW9uRGF0YT86IFNpZGVNZW51SW5qZWN0aW9uRGF0YSxcbiAgICAgICAgICAgICAgICBwdWJsaWMgaXNWZXJzaW9uVmlzaWJsZT86IGJvb2xlYW4sXG4gICAgICAgICAgICAgICAgcHVibGljIGFsbFZlcnNpb25FbmFibGVkPzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9ldmVudCQgPSBuZXcgU3ViamVjdDxTaWRlTWVudUV2ZW50PigpO1xuICAgICAgICB0aGlzLl9pc09wZW5lZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgICAgICBiaW5kaW5nc0Z1bmN0aW9uKHRoaXMuX2V2ZW50JCk7XG4gICAgICAgIHNpZGVNZW51T3BlbmVkU3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKChvcGVuZWQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2lzT3BlbmVkLm5leHQob3BlbmVkKTtcbiAgICAgICAgICAgIGlmICghb3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXZlbnQkLm5leHQoe29wZW5lZCwgbWVzc2FnZTogJ1NpZGUgbWVudSBjbG9zZWQgdW5leHBlY3RlZGx5J30pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2V2ZW50JC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2lzT3BlbmVkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBkYXRhKCk6IFNpZGVNZW51SW5qZWN0aW9uRGF0YSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmplY3Rpb25EYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc09wZW5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzT3BlbmVkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHB1Ymxpc2goZXZlbnQ6IFNpZGVNZW51RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNPcGVuZWQubmV4dChldmVudC5vcGVuZWQpO1xuICAgICAgICB0aGlzLl9ldmVudCQubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKGV2ZW50OiBTaWRlTWVudUV2ZW50KTogT2JzZXJ2YWJsZTxNYXREcmF3ZXJUb2dnbGVSZXN1bHQ+IHtcbiAgICAgICAgaWYgKCFldmVudC5tZXNzYWdlKSB7XG4gICAgICAgICAgICBldmVudC5tZXNzYWdlID0gJ1NpZGUgbWVudSBpcyBjbG9zaW5nJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9ldmVudCQubmV4dCh7Li4uZXZlbnQsIG9wZW5lZDogZmFsc2V9KTtcbiAgICAgICAgdGhpcy5faXNPcGVuZWQubmV4dChldmVudC5vcGVuZWQpO1xuICAgICAgICByZXR1cm4gdGhpcy5zaWRlTWVudUNsb3NlRnVuY3Rpb24oKS5waXBlKFxuICAgICAgICAgICAgdGFwKChjbG9zZWQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2xvc2VkID09PSAnY2xvc2UnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2V2ZW50JC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19