import { Component, Injector, OnInit, Output, EventEmitter, AfterViewInit, ViewChild } from '@angular/core'; import { appModuleAnimation } from '@shared/animations/routerTransition'; import { AppComponentBase } from '@shared/common/app-component-base'; import { Paginator } from 'primeng/components/paginator/paginator'; import { Table } from 'primeng/components/table/table'; import { LazyLoadEvent } from 'primeng/components/common/lazyloadevent'; import { TextToSpeechSettingsServiceProxy, GetTextToSpeechSettingListItemDto } from '@shared/service-proxies/service-proxies'; import { CreateOrUpdateTextToSpeechSettingInputDto } from '@shared/service-proxies/service-proxies'; import { AddMobileAppTextToSpeechSettingModalComponent } from './add-mobile-app-texttospeech-setting-modal.component'; @Component({ selector: 'mobile-app-texttospeech-settings', templateUrl: './mobile-app-texttospeech-settings.component.html', animations: [appModuleAnimation()], providers: [TextToSpeechSettingsServiceProxy] }) export class MobileAppTextToSpeechSettingsComponent extends AppComponentBase implements OnInit, AfterViewInit { displayItems: Array = []; @ViewChild('dataTable', { static: true }) dataTable: Table; @ViewChild('paginator', { static: true }) paginator: Paginator; @ViewChild('addMobileAppTextToSpeechSettingModalComponent', { static: true }) addMobileAppTextToSpeechSettingModalComponent: AddMobileAppTextToSpeechSettingModalComponent; @Output() showLoaderEvent = new EventEmitter(); constructor(injector: Injector, private _textToSpeechSettingsServiceProxy: TextToSpeechSettingsServiceProxy) { super(injector); } ngOnInit(): void { } ngAfterViewInit(): void { } getSettingsFromApi(event?: LazyLoadEvent): void { this.showLoaderEvent.emit(true); this._textToSpeechSettingsServiceProxy.getPaged( this.primengTableHelper.getSorting(this.dataTable), this.primengTableHelper.getMaxResultCount(this.paginator, event), this.primengTableHelper.getSkipCount(this.paginator, event) ) .subscribe(result => { this.primengTableHelper.totalRecordsCount = result.totalCount; this.displayItems = []; if (result.items) { this.displayItems = result.items; } this.showLoaderEvent.emit(false); }); } showCreateDialog(record?: GetTextToSpeechSettingListItemDto): void { this.addMobileAppTextToSpeechSettingModalComponent.show(record); } deleteRecord(record?: GetTextToSpeechSettingListItemDto): void { if (record) { this.showLoaderEvent.emit(true); this._textToSpeechSettingsServiceProxy.delete(record.code) .subscribe(result => { this.showLoaderEvent.emit(false); this.getSettingsFromApi(null); }); } } }