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 | */
|
19 | import { Injectable } from '@angular/core';
|
20 | import { Observable } from 'rxjs';
|
21 | import { filter, share, map } from 'rxjs/operators';
|
22 | import * as i0 from "@angular/core";
|
23 | /**
|
24 | * An utility class to manage RX events
|
25 | */
|
26 | export 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 | }
|
68 | JhiEventManager.ɵprov = i0.ɵɵdefineInjectable({ factory: function JhiEventManager_Factory() { return new JhiEventManager(); }, token: JhiEventManager, providedIn: "root" });
|
69 | JhiEventManager.decorators = [
|
70 | { type: Injectable, args: [{
|
71 | providedIn: 'root'
|
72 | },] }
|
73 | ];
|
74 | JhiEventManager.ctorParameters = () => [];
|
75 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2UvZXZlbnQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3BEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFJeEI7UUFDSSxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFxRCxFQUFFLEVBQUU7WUFDMUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLEtBQXdDO1FBQzlDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFNBQWlCLEVBQUUsUUFBYTtRQUN0QyxNQUFNLFVBQVUsR0FBaUIsSUFBSSxDQUFDLFVBQVU7YUFDM0MsSUFBSSxDQUNELE1BQU0sQ0FBQyxDQUFDLEtBQXdDLEVBQUUsRUFBRTtZQUNoRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtnQkFDM0IsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDO2FBQzlCO1lBQ0QsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztRQUNwQyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxLQUF3QyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7Z0JBQzNCLDhFQUE4RTtnQkFDOUUscUZBQXFGO2dCQUNyRix3QkFBd0I7Z0JBQ3hCLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1FBQ0wsQ0FBQyxDQUFDLENBQ0w7YUFDQSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLFVBQXdCO1FBQzVCLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs7O1lBcERKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gQ29weXJpZ2h0IDIwMTMtMjAyMCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMgZnJvbSB0aGUgSkhpcHN0ZXIgcHJvamVjdC5cblxuIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBKSGlwc3RlciBwcm9qZWN0LCBzZWUgaHR0cHM6Ly93d3cuamhpcHN0ZXIudGVjaC9cbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzaGFyZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSmhpRXZlbnRXaXRoQ29udGVudCB9IGZyb20gJy4vZXZlbnQtd2l0aC1jb250ZW50Lm1vZGVsJztcblxuLyoqXG4gKiBBbiB1dGlsaXR5IGNsYXNzIHRvIG1hbmFnZSBSWCBldmVudHNcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBKaGlFdmVudE1hbmFnZXIge1xuICAgIG9ic2VydmFibGU6IE9ic2VydmFibGU8SmhpRXZlbnRXaXRoQ29udGVudDxhbnk+IHwgc3RyaW5nPjtcbiAgICBvYnNlcnZlcjogT2JzZXJ2ZXI8SmhpRXZlbnRXaXRoQ29udGVudDxhbnk+IHwgc3RyaW5nPjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9ic2VydmFibGUgPSBPYnNlcnZhYmxlLmNyZWF0ZSgob2JzZXJ2ZXI6IE9ic2VydmVyPEpoaUV2ZW50V2l0aENvbnRlbnQ8YW55PiB8IHN0cmluZz4pID0+IHtcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBvYnNlcnZlcjtcbiAgICAgICAgfSkucGlwZShzaGFyZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gYnJvYWRjYXN0IHRoZSBldmVudCB0byBvYnNlcnZlclxuICAgICAqL1xuICAgIGJyb2FkY2FzdChldmVudDogSmhpRXZlbnRXaXRoQ29udGVudDxhbnk+IHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm9ic2VydmVyKSB7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIHN1YnNjcmliZSB0byBhbiBldmVudCB3aXRoIGNhbGxiYWNrXG4gICAgICovXG4gICAgc3Vic2NyaWJlKGV2ZW50TmFtZTogc3RyaW5nLCBjYWxsYmFjazogYW55KTogU3Vic2NyaXB0aW9uIHtcbiAgICAgICAgY29uc3Qgc3Vic2NyaWJlcjogU3Vic2NyaXB0aW9uID0gdGhpcy5vYnNlcnZhYmxlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50OiBKaGlFdmVudFdpdGhDb250ZW50PGFueT4gfCBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBldmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudCA9PT0gZXZlbnROYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5uYW1lID09PSBldmVudE5hbWU7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgbWFwKChldmVudDogSmhpRXZlbnRXaXRoQ29udGVudDxhbnk+IHwgc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZXZlbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGVuIHJlbGVhc2luZyBnZW5lcmF0b3ItamhpcHN0ZXIgdjcgdGhlbiBjdXJyZW50IHJldHVybiB3aWxsIGJlIGNoYW5nZWQgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICh0byBhdm9pZCByZWR1bmRhbnQgY29kZSByZXNwb25zZS5jb250ZW50IGluIEpoaUV2ZW50TWFuYWdlci5zdWJzY3JpYmUgY2FsbGJhY2tzKTpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiBldmVudC5jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoY2FsbGJhY2spO1xuICAgICAgICByZXR1cm4gc3Vic2NyaWJlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gdW5zdWJzY3JpYmUgdGhlIHN1YnNjcmlwdGlvblxuICAgICAqL1xuICAgIGRlc3Ryb3koc3Vic2NyaWJlcjogU3Vic2NyaXB0aW9uKTogdm9pZCB7XG4gICAgICAgIHN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iXX0= |
\ | No newline at end of file |