UNPKG

8.07 kBJavaScriptView Raw
1/*
2 Copyright 2013-2020 the original author or authors from the JHipster project.
3
4 This file is part of the JHipster project, see https://www.jhipster.tech/
5 for more information.
6
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18 */
19import { Injectable } from '@angular/core';
20import { Observable } from 'rxjs';
21import { filter, share, map } from 'rxjs/operators';
22import * as i0 from "@angular/core";
23/**
24 * An utility class to manage RX events
25 */
26export class JhiEventManager {
27 constructor() {
28 this.observable = Observable.create((observer) => {
29 this.observer = observer;
30 }).pipe(share());
31 }
32 /**
33 * Method to broadcast the event to observer
34 */
35 broadcast(event) {
36 if (this.observer) {
37 this.observer.next(event);
38 }
39 }
40 /**
41 * Method to subscribe to an event with callback
42 */
43 subscribe(eventName, callback) {
44 const subscriber = this.observable
45 .pipe(filter((event) => {
46 if (typeof event === 'string') {
47 return event === eventName;
48 }
49 return event.name === eventName;
50 }), map((event) => {
51 if (typeof event !== 'string') {
52 // when releasing generator-jhipster v7 then current return will be changed to
53 // (to avoid redundant code response.content in JhiEventManager.subscribe callbacks):
54 // return event.content;
55 return event;
56 }
57 }))
58 .subscribe(callback);
59 return subscriber;
60 }
61 /**
62 * Method to unsubscribe the subscription
63 */
64 destroy(subscriber) {
65 subscriber.unsubscribe();
66 }
67}
68JhiEventManager.ɵprov = i0.ɵɵdefineInjectable({ factory: function JhiEventManager_Factory() { return new JhiEventManager(); }, token: JhiEventManager, providedIn: "root" });
69JhiEventManager.decorators = [
70 { type: Injectable, args: [{
71 providedIn: 'root'
72 },] }
73];
74JhiEventManager.ctorParameters = () => [];
75//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2UvZXZlbnQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3BEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFJeEI7UUFDSSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFxRCxFQUFFLEVBQUU7WUFDMUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLEtBQXdDO1FBQzlDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFNBQWlCLEVBQUUsUUFBYTtRQUN0QyxNQUFNLFVBQVUsR0FBaUIsSUFBSSxDQUFDLFVBQVU7YUFDM0MsSUFBSSxDQUNELE1BQU0sQ0FBQyxDQUFDLEtBQXdDLEVBQUUsRUFBRTtZQUNoRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtnQkFDM0IsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDO2FBQzlCO1lBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztRQUNwQyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxLQUF3QyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7Z0JBQzNCLDhFQUE4RTtnQkFDOUUscUZBQXFGO2dCQUNyRix3QkFBd0I7Z0JBQ3hCLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1FBQ0wsQ0FBQyxDQUFDLENBQ0w7YUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLFVBQXdCO1FBQzVCLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs7O1lBcERKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gQ29weXJpZ2h0IDIwMTMtMjAyMCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMgZnJvbSB0aGUgSkhpcHN0ZXIgcHJvamVjdC5cblxuIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBKSGlwc3RlciBwcm9qZWN0LCBzZWUgaHR0cHM6Ly93d3cuamhpcHN0ZXIudGVjaC9cbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzaGFyZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSmhpRXZlbnRXaXRoQ29udGVudCB9IGZyb20gJy4vZXZlbnQtd2l0aC1jb250ZW50Lm1vZGVsJztcblxuLyoqXG4gKiBBbiB1dGlsaXR5IGNsYXNzIHRvIG1hbmFnZSBSWCBldmVudHNcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBKaGlFdmVudE1hbmFnZXIge1xuICAgIG9ic2VydmFibGU6IE9ic2VydmFibGU8SmhpRXZlbnRXaXRoQ29udGVudDxhbnk+IHwgc3RyaW5nPjtcbiAgICBvYnNlcnZlcjogT2JzZXJ2ZXI8SmhpRXZlbnRXaXRoQ29udGVudDxhbnk+IHwgc3RyaW5nPjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9ic2VydmFibGUgPSBPYnNlcnZhYmxlLmNyZWF0ZSgob2JzZXJ2ZXI6IE9ic2VydmVyPEpoaUV2ZW50V2l0aENvbnRlbnQ8YW55PiB8IHN0cmluZz4pID0+IHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBvYnNlcnZlcjtcbiAgICAgICAgfSkucGlwZShzaGFyZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gYnJvYWRjYXN0IHRoZSBldmVudCB0byBvYnNlcnZlclxuICAgICAqL1xuICAgIGJyb2FkY2FzdChldmVudDogSmhpRXZlbnRXaXRoQ29udGVudDxhbnk+IHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIHN1YnNjcmliZSB0byBhbiBldmVudCB3aXRoIGNhbGxiYWNrXG4gICAgICovXG4gICAgc3Vic2NyaWJlKGV2ZW50TmFtZTogc3RyaW5nLCBjYWxsYmFjazogYW55KTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaWJlcjogU3Vic2NyaXB0aW9uID0gdGhpcy5vYnNlcnZhYmxlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBKaGlFdmVudFdpdGhDb250ZW50PGFueT4gfCBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBldmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudCA9PT0gZXZlbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5uYW1lID09PSBldmVudE5hbWU7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChldmVudDogSmhpRXZlbnRXaXRoQ29udGVudDxhbnk+IHwgc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZXZlbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHJlbGVhc2luZyBnZW5lcmF0b3ItamhpcHN0ZXIgdjcgdGhlbiBjdXJyZW50IHJldHVybiB3aWxsIGJlIGNoYW5nZWQgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICh0byBhdm9pZCByZWR1bmRhbnQgY29kZSByZXNwb25zZS5jb250ZW50IGluIEpoaUV2ZW50TWFuYWdlci5zdWJzY3JpYmUgY2FsbGJhY2tzKTpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBldmVudC5jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoY2FsbGJhY2spO1xuICAgICAgICByZXR1cm4gc3Vic2NyaWJlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gdW5zdWJzY3JpYmUgdGhlIHN1YnNjcmlwdGlvblxuICAgICAqL1xuICAgIGRlc3Ryb3koc3Vic2NyaWJlcjogU3Vic2NyaXB0aW9uKTogdm9pZCB7XG4gICAgICAgIHN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0=
\No newline at end of file