37 lines
1.9 KiB
TypeScript
37 lines
1.9 KiB
TypeScript
import { FieldDataEditorModel } from './field-data-editor-model';
|
|
import { DatasetProfileComboBoxType } from '@app/core/common/enum/dataset-profile-combo-box-type';
|
|
import { FieldDataOptionEditorModel } from './field-data-option-editor-model';
|
|
import { FormGroup } from '@angular/forms';
|
|
import { AutoCompleteFieldData, AutoCompleteSingleData } from '@app/core/model/dataset-profile-definition/field-data/field-data';
|
|
|
|
export class AutoCompleteSingleDataEditorModel extends FieldDataEditorModel<AutoCompleteSingleDataEditorModel> {
|
|
|
|
public url: string;
|
|
public optionsRoot: string;
|
|
|
|
public autoCompleteOptions: FieldDataOptionEditorModel = new FieldDataOptionEditorModel();
|
|
public autoCompleteType: number;
|
|
//public multiAutoCompleteOptions: FieldDataOptionEditorModel = new FieldDataOptionEditorModel();
|
|
|
|
buildForm(disabled: boolean = false, skipDisable: Array<String> = []): FormGroup {
|
|
const formGroup = this.formBuilder.group({
|
|
label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('AutoCompleteSingleDataEditorModel.label')) }],
|
|
url: [{ value: this.url, disabled: (disabled && !skipDisable.includes('AutoCompleteSingleDataEditorModel.url')) }],
|
|
optionsRoot: [{ value: this.optionsRoot, disabled: (disabled && !skipDisable.includes('AutoCompleteSingleDataEditorModel.optionsRoot')) }],
|
|
autoCompleteType: [{ value: this.autoCompleteType, disabled: (disabled && !skipDisable.includes('AutoCompleteSingleDataEditorModel.autoCompleteType')) }]
|
|
});
|
|
formGroup.addControl('autoCompleteOptions', this.autoCompleteOptions.buildForm(disabled, skipDisable));
|
|
|
|
return formGroup;
|
|
}
|
|
|
|
fromModel(item: AutoCompleteSingleData): AutoCompleteSingleDataEditorModel {
|
|
this.url = item.url;
|
|
this.label = item.label;
|
|
this.optionsRoot = item.optionsRoot;
|
|
this.autoCompleteType = item.autocompleteType;
|
|
this.autoCompleteOptions = new FieldDataOptionEditorModel().fromModel(item.autoCompleteOptions);
|
|
return this;
|
|
}
|
|
}
|