UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

51 lines 5.62 kB
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==