@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
51 lines • 5.62 kB
JavaScript
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
/**
* Holds information about the currently selected {@link Case}.
*
* Services that handle various task operations, can use this service to take into consideration changes in frontend data in
* between backend call and backend response.
*
* This service is used by Tree Case View's {@link TreeTaskContentService}.
*/
export class SelectedCaseService {
/**
* Stores the currently selected {@link Case}.
*
* The initial value is `undefined`.
*
* Beware that setting new values doesn't make copies of the provided {@link Case} object,
* so it is possible that any subscriber could modify the shared object.
* Subscribed library services don't modify the provided {@link Case}, only the owner ({@link TreeTaskContentService})
* of the {@link Case} object performs modifications of it.
*/
_selectedCase$;
constructor() {
this._selectedCase$ = new BehaviorSubject(undefined);
}
ngOnDestroy() {
this._selectedCase$.complete();
}
get selectedCase$() {
return this._selectedCase$.asObservable();
}
/**
* @param selectedCase the new value, that is emitted into the underlying stream
*/
set selectedCase(selectedCase) {
this._selectedCase$.next(selectedCase);
}
/**
* @returns the current value of the underlying stream
*/
get selectedCase() {
return this._selectedCase$.getValue();
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectedCaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectedCaseService });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectedCaseService, decorators: [{
type: Injectable
}], ctorParameters: () => [] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtY2FzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi90YXNrL3NlcnZpY2VzL3NlbGVjdGVkLWNhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxNQUFNLENBQUM7O0FBRWpEOzs7Ozs7O0dBT0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBRTVCOzs7Ozs7Ozs7T0FTRztJQUNPLGNBQWMsQ0FBd0I7SUFFaEQ7UUFDSSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksZUFBZSxDQUFPLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFlBQVksQ0FBQyxZQUFrQjtRQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFDLENBQUM7d0dBdENRLG1CQUFtQjs0R0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDYXNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2Nhc2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEhvbGRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQge0BsaW5rIENhc2V9LlxuICpcbiAqIFNlcnZpY2VzIHRoYXQgaGFuZGxlIHZhcmlvdXMgdGFzayBvcGVyYXRpb25zLCBjYW4gdXNlIHRoaXMgc2VydmljZSB0byB0YWtlIGludG8gY29uc2lkZXJhdGlvbiBjaGFuZ2VzIGluIGZyb250ZW5kIGRhdGEgaW5cbiAqIGJldHdlZW4gYmFja2VuZCBjYWxsIGFuZCBiYWNrZW5kIHJlc3BvbnNlLlxuICpcbiAqIFRoaXMgc2VydmljZSBpcyB1c2VkIGJ5IFRyZWUgQ2FzZSBWaWV3J3Mge0BsaW5rIFRyZWVUYXNrQ29udGVudFNlcnZpY2V9LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2VsZWN0ZWRDYXNlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZXMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB7QGxpbmsgQ2FzZX0uXG4gICAgICpcbiAgICAgKiBUaGUgaW5pdGlhbCB2YWx1ZSBpcyBgdW5kZWZpbmVkYC5cbiAgICAgKlxuICAgICAqIEJld2FyZSB0aGF0IHNldHRpbmcgbmV3IHZhbHVlcyBkb2Vzbid0IG1ha2UgY29waWVzIG9mIHRoZSBwcm92aWRlZCB7QGxpbmsgQ2FzZX0gb2JqZWN0LFxuICAgICAqIHNvIGl0IGlzIHBvc3NpYmxlIHRoYXQgYW55IHN1YnNjcmliZXIgY291bGQgbW9kaWZ5IHRoZSBzaGFyZWQgb2JqZWN0LlxuICAgICAqIFN1YnNjcmliZWQgbGlicmFyeSBzZXJ2aWNlcyBkb24ndCBtb2RpZnkgdGhlIHByb3ZpZGVkIHtAbGluayBDYXNlfSwgb25seSB0aGUgb3duZXIgKHtAbGluayBUcmVlVGFza0NvbnRlbnRTZXJ2aWNlfSlcbiAgICAgKiBvZiB0aGUge0BsaW5rIENhc2V9IG9iamVjdCBwZXJmb3JtcyBtb2RpZmljYXRpb25zIG9mIGl0LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfc2VsZWN0ZWRDYXNlJDogQmVoYXZpb3JTdWJqZWN0PENhc2U+O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkQ2FzZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhc2U+KHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkQ2FzZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkQ2FzZSQoKTogT2JzZXJ2YWJsZTxDYXNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZENhc2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBzZWxlY3RlZENhc2UgdGhlIG5ldyB2YWx1ZSwgdGhhdCBpcyBlbWl0dGVkIGludG8gdGhlIHVuZGVybHlpbmcgc3RyZWFtXG4gICAgICovXG4gICAgcHVibGljIHNldCBzZWxlY3RlZENhc2Uoc2VsZWN0ZWRDYXNlOiBDYXNlKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkQ2FzZSQubmV4dChzZWxlY3RlZENhc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSB1bmRlcmx5aW5nIHN0cmVhbVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRDYXNlKCk6IENhc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRDYXNlJC5nZXRWYWx1ZSgpO1xuICAgIH1cbn1cbiJdfQ==