File

projects/netgrif-components-core/src/lib/data-fields/task-ref-field/task-ref-list-field/abstract-task-ref-list-field.component.ts

Extends

AbstractBaseDataFieldComponent

Implements

AfterViewInit

Metadata

selector ncc-abstract-task-ref-list-field

Index

Properties
Methods
Inputs

Constructor

Protected constructor(injector: Injector, taskViewType: Type, dataFieldPortalData: DataFieldPortalData)
Parameters :
Name Type Optional
injector Injector No
taskViewType Type<any> No
dataFieldPortalData DataFieldPortalData<TaskRefField> No

Inputs

dataField
Type : T
formControlRef
Type : FormControl
showLargeLayout
Type : WrappedBoolean

Methods

createFilter
createFilter()
Returns : void
ngAfterViewInit
ngAfterViewInit()
Returns : void
Public checkPropertyInComponent
checkPropertyInComponent(property: string)
Parameters :
Name Type Optional
property string No
Returns : boolean
Public hasHint
hasHint()
Returns : boolean
Public hasTitle
hasTitle()
Returns : boolean
ngOnDestroy
ngOnDestroy()
Returns : void

Properties

Public componentPortal
Type : ComponentPortal<any>
Public dataField
Type : T
Decorators :
@Input()
Public formControlRef
Type : FormControl
Decorators :
@Input()
Public showLargeLayout
Type : WrappedBoolean
Decorators :
@Input()
import {AfterViewInit, Component, Inject, Injector, Optional, Type} from "@angular/core";
import {TaskRefField} from "../model/task-ref-field";
import {NAE_BASE_FILTER} from "../../../search/models/base-filter-injection-token";
import {SimpleFilter} from "../../../filter/models/simple-filter";
import {BaseFilter} from "../../../search/models/base-filter";
import {NAE_VIEW_ID_SEGMENT} from "../../../user/models/view-id-injection-tokens";
import {ViewIdService} from "../../../user/services/view-id.service";
import {AbstractBaseDataFieldComponent} from "../../base-component/abstract-base-data-field.component";
import {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from "../../models/data-field-portal-data-injection-token";
import {ComponentPortal} from "@angular/cdk/portal";

@Component({
    selector: 'ncc-abstract-task-ref-list-field',
    template: ''
})
export abstract class AbstractTaskRefListFieldComponent extends AbstractBaseDataFieldComponent<TaskRefField> implements AfterViewInit {

    public componentPortal: ComponentPortal<any>;

    protected constructor(protected injector: Injector,
                          protected taskViewType: Type<any>,
                          @Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<TaskRefField>) {
        super(dataFieldPortalData);
    }

    ngAfterViewInit(): void {
        this.createFilter();
        this.dataField.valueChanges().subscribe(() => {
            this.createFilter();
        });
    }

    createFilter() {
        const portalInjector = Injector.create({
            providers: [
                {
                    provide: NAE_BASE_FILTER,
                    useValue: { filter: SimpleFilter.fromTaskQuery({stringId: this.dataField.value}) } as BaseFilter
                },
                {
                    provide: NAE_VIEW_ID_SEGMENT,
                    useValue: this.dataField.parentCaseId + '_' + this.dataField.parentTaskId + '_' + this.dataField.stringId
                },
                { provide: ViewIdService, useClass: ViewIdService }],
            parent: this.injector
        });
        this.componentPortal = new ComponentPortal(this.taskViewType, null, portalInjector);
    }

}
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""