@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
61 lines • 7.48 kB
JavaScript
import { Injectable } from '@angular/core';
import { TaskContentService } from './task-content.service';
import { ReplaySubject } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "./field-converter.service";
import * as i2 from "../../snack-bar/services/snack-bar.service";
import * as i3 from "@ngx-translate/core";
import * as i4 from "../../logger/services/logger.service";
/**
* Provides an implementation of the {@link TaskContentService} abstract class that allows
* an unlimited number of calls to the setter of the managed Task object.
*
* If you want to limit the number of calls to 1 use {@link SingleTaskContentService} instead.
*/
export class UnlimitedTaskContentService extends TaskContentService {
/**
* Acts as the underling stream for notifications on Task changes.
*
* `bufferSize` of the `ReplaySubject` instance is set to 1.
*/
_task$;
constructor(_fieldConverterService, _snackBarService, _translate, _logger, _injector) {
super(_fieldConverterService, _snackBarService, _translate, _logger);
this._task$ = new ReplaySubject(1);
}
/**
* @returns the Task object if set and `undefined` otherwise
*/
get task() {
return this._task;
}
/**
* Setting a Task also emits it into the stream accessible by the [task$]{@link TaskContentService#task$} getter method.
* @param task the Task that owns the content managed by this service
*/
set task(task) {
this._task = task;
this._task$.next(task);
}
/**
* Stream returns a {@link Task} object every time this object is set.
*
* Use [task]{@link TaskContentService#task} setter method to set the Task.
*/
get task$() {
return this._task$.asObservable();
}
/**
* Completes the underling stream.
*/
ngOnDestroy() {
super.ngOnDestroy();
this._task$.complete();
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UnlimitedTaskContentService, deps: [{ token: i1.FieldConverterService }, { token: i2.SnackBarService }, { token: i3.TranslateService }, { token: i4.LoggerService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UnlimitedTaskContentService });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UnlimitedTaskContentService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.FieldConverterService }, { type: i2.SnackBarService }, { type: i3.TranslateService }, { type: i4.LoggerService }, { type: i0.Injector }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5saW1pdGVkLXRhc2stY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi90YXNrLWNvbnRlbnQvc2VydmljZXMvdW5saW1pdGVkLXRhc2stY29udGVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQXNCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBYSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU8vQzs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTywyQkFBNEIsU0FBUSxrQkFBa0I7SUFFL0Q7Ozs7T0FJRztJQUNPLE1BQU0sQ0FBc0I7SUFFdEMsWUFBWSxzQkFBNkMsRUFDN0MsZ0JBQWlDLEVBQ2pDLFVBQTRCLEVBQzVCLE9BQXNCLEVBQ3RCLFNBQW1CO1FBQzNCLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksSUFBSSxDQUFDLElBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzt3R0FqRFEsMkJBQTJCOzRHQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUYXNrQ29udGVudFNlcnZpY2V9IGZyb20gJy4vdGFzay1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7VGFza30gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS90YXNrJztcbmltcG9ydCB7RmllbGRDb252ZXJ0ZXJTZXJ2aWNlfSBmcm9tICcuL2ZpZWxkLWNvbnZlcnRlci5zZXJ2aWNlJztcbmltcG9ydCB7U25hY2tCYXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9zbmFjay1iYXIvc2VydmljZXMvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBQcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUge0BsaW5rIFRhc2tDb250ZW50U2VydmljZX0gYWJzdHJhY3QgY2xhc3MgdGhhdCBhbGxvd3NcbiAqIGFuIHVubGltaXRlZCBudW1iZXIgb2YgY2FsbHMgdG8gdGhlIHNldHRlciBvZiB0aGUgbWFuYWdlZCBUYXNrIG9iamVjdC5cbiAqXG4gKiBJZiB5b3Ugd2FudCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIDEgdXNlIHtAbGluayBTaW5nbGVUYXNrQ29udGVudFNlcnZpY2V9IGluc3RlYWQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVbmxpbWl0ZWRUYXNrQ29udGVudFNlcnZpY2UgZXh0ZW5kcyBUYXNrQ29udGVudFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogQWN0cyBhcyB0aGUgdW5kZXJsaW5nIHN0cmVhbSBmb3Igbm90aWZpY2F0aW9ucyBvbiBUYXNrIGNoYW5nZXMuXG4gICAgICpcbiAgICAgKiBgYnVmZmVyU2l6ZWAgb2YgdGhlIGBSZXBsYXlTdWJqZWN0YCBpbnN0YW5jZSBpcyBzZXQgdG8gMS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3Rhc2skOiBSZXBsYXlTdWJqZWN0PFRhc2s+O1xuXG4gICAgY29uc3RydWN0b3IoX2ZpZWxkQ29udmVydGVyU2VydmljZTogRmllbGRDb252ZXJ0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF9zbmFja0JhclNlcnZpY2U6IFNuYWNrQmFyU2VydmljZSxcbiAgICAgICAgICAgICAgICBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIF9sb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX2luamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihfZmllbGRDb252ZXJ0ZXJTZXJ2aWNlLCBfc25hY2tCYXJTZXJ2aWNlLCBfdHJhbnNsYXRlLCBfbG9nZ2VyKTtcbiAgICAgICAgdGhpcy5fdGFzayQgPSBuZXcgUmVwbGF5U3ViamVjdDxUYXNrPigxKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgVGFzayBvYmplY3QgaWYgc2V0IGFuZCBgdW5kZWZpbmVkYCBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBnZXQgdGFzaygpOiBUYXNrIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGluZyBhIFRhc2sgYWxzbyBlbWl0cyBpdCBpbnRvIHRoZSBzdHJlYW0gYWNjZXNzaWJsZSBieSB0aGUgW3Rhc2skXXtAbGluayBUYXNrQ29udGVudFNlcnZpY2UjdGFzayR9IGdldHRlciBtZXRob2QuXG4gICAgICogQHBhcmFtIHRhc2sgdGhlIFRhc2sgdGhhdCBvd25zIHRoZSBjb250ZW50IG1hbmFnZWQgYnkgdGhpcyBzZXJ2aWNlXG4gICAgICovXG4gICAgc2V0IHRhc2sodGFzazogVGFzaykge1xuICAgICAgICB0aGlzLl90YXNrID0gdGFzaztcbiAgICAgICAgdGhpcy5fdGFzayQubmV4dCh0YXNrKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gcmV0dXJucyBhIHtAbGluayBUYXNrfSBvYmplY3QgZXZlcnkgdGltZSB0aGlzIG9iamVjdCBpcyBzZXQuXG4gICAgICpcbiAgICAgKiBVc2UgW3Rhc2tde0BsaW5rIFRhc2tDb250ZW50U2VydmljZSN0YXNrfSBzZXR0ZXIgbWV0aG9kIHRvIHNldCB0aGUgVGFzay5cbiAgICAgKi9cbiAgICBnZXQgdGFzayQoKTogT2JzZXJ2YWJsZTxUYXNrPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZXMgdGhlIHVuZGVybGluZyBzdHJlYW0uXG4gICAgICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3Rhc2skLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIl19