@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
50 lines • 7.05 kB
JavaScript
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