nakedobjects.spa
Version:
Single Page Application client for a Naked Objects application.
70 lines (69 loc) • 3.29 kB
TypeScript
/// <reference types="lodash" />
import { AutoCompleteComponent } from '../auto-complete/auto-complete.component';
import * as Models from '../models';
import { AbstractControl } from '@angular/forms';
import { FormGroup } from '@angular/forms';
import { ElementRef, QueryList, Renderer, OnDestroy } from '@angular/core';
import { ContextService } from '../context.service';
import { ChoiceViewModel } from '../view-models/choice-view-model';
import { IDraggableViewModel } from '../view-models/idraggable-view-model';
import { FieldViewModel } from '../view-models/field-view-model';
import { ParameterViewModel } from '../view-models/parameter-view-model';
import { DialogViewModel } from '../view-models/dialog-view-model';
import { PropertyViewModel } from '../view-models/property-view-model';
import { DomainObjectViewModel } from '../view-models/domain-object-view-model';
import { ConfigService } from '../config.service';
import { LoggerService } from '../logger.service';
import { Pane } from '../route-data';
import { Dictionary } from 'lodash';
import { BehaviorSubject } from 'rxjs';
import { DatePickerFacadeComponent } from '../date-picker-facade/date-picker-facade.component';
import { TimePickerFacadeComponent } from '../time-picker-facade/time-picker-facade.component';
export declare abstract class FieldComponent implements OnDestroy {
private readonly context;
private readonly configService;
private readonly loggerService;
private readonly renderer;
protected constructor(context: ContextService, configService: ConfigService, loggerService: LoggerService, renderer: Renderer);
formGroup: FormGroup;
readonly message: string;
readonly isBoolean: boolean;
readonly subject: BehaviorSubject<any>;
private formGrp;
private vmParent;
private model;
private isConditionalChoices;
private isAutoComplete;
private bSubject;
private sub;
control: AbstractControl;
currentOptions: ChoiceViewModel[];
pArgs: Dictionary<Models.Value>;
paneId: Pane;
canDrop: boolean;
protected init(vmParent: DialogViewModel | DomainObjectViewModel, vm: ParameterViewModel | PropertyViewModel, control: AbstractControl): void;
accept(droppableVm: FieldViewModel): (draggableVm: IDraggableViewModel) => boolean;
drop(draggableVm: IDraggableViewModel): void;
private isDomainObjectViewModel(object);
private mapValues(args, parmsOrProps);
private populateArguments();
private lastArgs;
private argsChanged(newArgs);
private populateDropdown();
private onChange();
private onValueChanged();
private populateAutoComplete();
protected populateBoolean(): void;
private select(item);
fileUpload(evt: Event): void;
paste(event: KeyboardEvent): void;
clear(): void;
private filterEnter(event);
protected handleKeyEvents(event: KeyboardEvent, isMultiline: boolean): void;
private triStateClick;
protected handleClick(event: Event): void;
abstract checkboxList: QueryList<ElementRef>;
abstract focusList: QueryList<ElementRef | DatePickerFacadeComponent | TimePickerFacadeComponent | AutoCompleteComponent>;
focus(): boolean;
ngOnDestroy(): void;
}