BaseDetailComponent
BaseDetailComponent
A base class for entity detail views. It should be used in conjunction with the BaseEntityResolver.
Example
@Component({
selector: 'app-my-entity',
templateUrl: './my-entity.component.html',
styleUrls: ['./my-entity.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class GlobalSettingsComponent extends BaseDetailComponent<MyEntityFragment> implements OnInit {
detailForm: FormGroup;
constructor(
router: Router,
route: ActivatedRoute,
serverConfigService: ServerConfigService,
protected dataService: DataService,
private formBuilder: FormBuilder,
) {
super(route, router, serverConfigService, dataService);
this.detailForm = this.formBuilder.group({
name: [''],
});
}
protected setFormValues(entity: MyEntityFragment, languageCode: LanguageCode): void {
this.detailForm.patchValue({
name: entity.name,
});
}
}
Signature
class BaseDetailComponent<Entity extends { id: string; updatedAt?: string }> implements DeactivateAware {
entity$: Observable<Entity>;
availableLanguages$: Observable<LanguageCode[]>;
languageCode$: Observable<LanguageCode>;
languageCode: LanguageCode;
isNew$: Observable<boolean>;
id: string;
abstract abstract detailForm: UntypedFormGroup;
protected protected destroy$ = new Subject<void>();
constructor(route: ActivatedRoute, router: Router, serverConfigService: ServerConfigService, dataService: DataService)
init() => ;
protected setUpStreams() => ;
destroy() => ;
setLanguage(code: LanguageCode) => ;
canDeactivate() => boolean;
protected abstract setFormValues(entity: Entity, languageCode: LanguageCode) => void;
protected setCustomFieldFormValues(customFields: CustomFieldConfig[], formGroup: AbstractControl | null, entity: T, currentTranslation?: TranslationOf<T>) => ;
protected getCustomFieldConfig(key: Exclude<keyof CustomFields, '__typename'>) => CustomFieldConfig[];
protected setQueryParam(key: string, value: any) => ;
}
Implements
- DeactivateAware
Members
entity$
property
type:
Observable<Entity>
availableLanguages$
property
type:
Observable<LanguageCode[]>
languageCode$
property
type:
Observable<LanguageCode>
languageCode
property
type:
LanguageCode
isNew$
property
type:
Observable<boolean>
id
property
type:
string
detailForm
property
type:
UntypedFormGroup
destroy$
property
type:
constructor
method
type:
(route: ActivatedRoute, router: Router, serverConfigService: ServerConfigService, dataService: DataService) => BaseDetailComponent
init
method
type:
() =>
setUpStreams
method
type:
() =>
destroy
method
type:
() =>
setLanguage
method
type:
(code: LanguageCode) =>
canDeactivate
method
type:
() => boolean
setFormValues
method
type:
(entity: Entity, languageCode: LanguageCode) => void
setCustomFieldFormValues
method
type:
(customFields: CustomFieldConfig[], formGroup: AbstractControl | null, entity: T, currentTranslation?: TranslationOf<T>) =>
getCustomFieldConfig
method
type:
(key: Exclude<keyof CustomFields, '__typename'>) => CustomFieldConfig[]
setQueryParam
method
type:
(key: string, value: any) =>