File

projects/netgrif-components-core/src/lib/changed-fields/services/changed-fields.service.ts

Index

Properties
Methods
Accessors

Constructor

constructor()

Methods

Public emitChangedFields
emitChangedFields(changedFields: ChangedFieldsMap)
Parameters :
Name Type Optional
changedFields ChangedFieldsMap No
Returns : void
ngOnDestroy
ngOnDestroy()
Returns : void
Public parseChangedFieldsByCaseAndTaskIds
parseChangedFieldsByCaseAndTaskIds(caseId: string, taskIds: Array, changedFieldsMap: ChangedFieldsMap)
Parameters :
Name Type Optional
caseId string No
taskIds Array<string> No
changedFieldsMap ChangedFieldsMap No
Returns : Array<ChangedFields>

Properties

Protected _changedFields$
Type : Subject<ChangedFieldsMap>

Accessors

changedFields$
getchangedFields$()
import {Injectable, OnDestroy} from '@angular/core';
import {Observable, Subject} from 'rxjs';
import {ChangedFields} from '../../data-fields/models/changed-fields';
import {ChangedFieldsMap} from '../../event/services/interfaces/changed-fields-map';

@Injectable()
export class ChangedFieldsService implements OnDestroy {

    protected _changedFields$: Subject<ChangedFieldsMap>;

    ngOnDestroy(): void {
        this._changedFields$.complete();
    }

    constructor() {
        this._changedFields$ = new Subject<ChangedFieldsMap>();
    }

    get changedFields$(): Observable<ChangedFieldsMap> {
        return this._changedFields$.asObservable();
    }

    public emitChangedFields(changedFields: ChangedFieldsMap): void {
        if (changedFields === undefined || Object.keys(changedFields).length === 0) {
            return;
        }
        this._changedFields$.next(changedFields);
    }

    public parseChangedFieldsByCaseAndTaskIds(caseId: string, taskIds: Array<string>,
                                              changedFieldsMap: ChangedFieldsMap): Array<ChangedFields> {
        const changedFields: Array<ChangedFields> = [];
        const filteredTaskIds: Array<string> = Object.keys(changedFieldsMap[caseId]).filter(taskId => taskIds.includes(taskId));
        filteredTaskIds.forEach(taskId => {
            changedFields.push(changedFieldsMap[caseId][taskId]);
        });
        return changedFields;
    }
}

result-matching ""

    No results matching ""