UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

168 lines (167 loc) 7.62 kB
import { EventEmitter, OnInit, ElementRef } from '@angular/core'; import { AbstractDataView } from './AbstractDataView'; import { IDataLangSelectorController } from '../IDataLangSelectorController'; import { LanguageButtonModel } from '../model/LanguageButtonModel'; import { DialogService } from '../../service/DialogService.service'; /** * <p style="text-indent: 2em;"> * An abstract base class for component providing <code>data lang selector</code> to the user. * </p> * * @author shiorin, tee4cute */ export declare abstract class AbstractDataLangSelector extends AbstractDataView implements OnInit { private oldLangs; private markCreatedLangs; private defaultData; protected langClickEvent: EventEmitter<any>; protected langAddEvent: EventEmitter<any>; protected langRemoveEvent: EventEmitter<any>; protected beforeLangClickEvent: EventEmitter<any>; protected beforeLangAddEvent: EventEmitter<any>; protected beforeLangRemoveEvent: EventEmitter<any>; protected dialogService: DialogService; protected languageList: LanguageButtonModel[]; protected selectedLang: LanguageButtonModel; protected dataLangList: any[]; protected controller: IDataLangSelectorController; protected dataObjects: any[]; constructor(elementRef: ElementRef, dialogService: DialogService); ngOnInit(): void; private isDataObjectsContainsLang(langCode, objId?); private getDataObjectByLang(langCode, objId?); private refreshDataLanguageList(); private refreshLanguageList(); private sortLanguageList(objArray); private langTabChange(langModel); private getLanguageIndex(code); private createNewLang(langCode); private createNewLangSelected(langCode, $event?, fireEvent?); private removeLanguageData(langCode); private removeLangSelected(langCode, $event?, fireEvent?); protected emitBeforeLangClickEvent(langModel: any, index: number, $event?: any): void; protected emitLangClickEvent(langModel: any, index: number, $event?: any): void; protected emitBeforeLangAddEvent($event?: any): void; protected emitLangAddEvent(result: any, $event?: any): void; protected emitBeforeLangRemoveEvent($event?: any): void; protected emitLangRemoveEvent(result: any, $event?: any): void; _isSelectedLanguageByIndex(index: number): boolean; _langHasDataByIndex(index: number): boolean; _isDataDirtyByIndex(index: number): boolean; _hasButtonIcon(langModel: LanguageButtonModel): boolean; _getDataLangList(): any[]; /** * when new language was created this method will be called * @param newLangData as any */ onLanguageAdded(newLangData: any): void; /** * when language was removed this method will be called * @param deletedData as any */ onLanguageRemoved(removedData: any): void; private _LangModelBtnClick($event, langModel, index); onActionBtnClicked($event: Event, langModel: LanguageButtonModel, index: number, fireEvent?: boolean): void; isSelectedLanguage(langModel: LanguageButtonModel): boolean; hasLanguage(): boolean; /** * @param defaultData as any * @return promise that return array of dataLang object */ loadDataLanguageList(defaultData: any): Promise<any[]>; /** * @param data as any * @return any as object in pattern {iconURL: string, code: string, label: string} */ getLanguageList(): string[]; /** * <p style="text-indent: 1em;"> * To check that the data bound to <code>this</code> component having the given language <code><b>code</b></code> or not. * </p> * * @param code The language code to check. * * @return <code>True</code> if there is the given language <code><b>code</b></code> in the <code>data</code>. Otherwise, * returns <code>false</code>. */ isLanguageHasData(code: string): boolean; /** * <p style="text-indent: 1em;"> * Create a new data lang by showing confirmation dialog first. If the given language code (<code><b>langCode</b></code>) already * exists in component data, this method will return a resolved <code>Promise</code> having result as data object of the * corresponding language. * </p> * * @param langCode The language code to create. * * @return A <code>Promise</code> with result's value as in the following cases: <br/> * <ul> * <li>If [[DialogService]] is not available, returns <code>null</code>.</li> * <li>If the user clicks <code>NO</code> button, returns <code>null</code>.</li> * <li>If the given <code><b>langCode</b></code> already exists, returns data object of the corresponding language.</li> * <li>Otherwise, returns a newly created data object of the given language.</li> * </ul> */ createNewLangWithConfirmDialog(langCode: string, $event?: Event, fireEvent?: boolean): Promise<any>; /** * <p style="text-indent: 1em;"> * Remove data lang by showing confirmation dialog first. If the given language code (<code><b>langCode</b></code>) does not * exist in component data, this method will return a resolved <code>Promise</code> having result as <code>null</code>. * </p> * * @param langCode The language code to remove. * * @return A <code>Promise</code> with result's value as in the following cases: <br/> * <ul> * <li>If [[DialogService]] is not available, returns <code>null</code>.</li> * <li>If the user clicks <code>NO</code> button, returns <code>null</code>.</li> * <li>If the given <code><b>langCode</b></code> does not exist, returns <code>null</code>.</li> * <li>Otherwise, returns data object of the corresponding <code><b>langCode</b></code>.</li> * </ul> */ removeLangWithConfirmDialog(langCode: string, $event?: Event, fireEvent?: boolean): Promise<any>; /** * <p style="text-indent: 1em;"> * Get output [[EventEmitter]] which will emit an event when lang button of <code>this</code> component is clicked. * </p> */ getLangClickEvent(): EventEmitter<any>; setLangClickEvent(event: EventEmitter<any>): void; getLangAddEvent(): EventEmitter<any>; setLangAddEvent(event: EventEmitter<any>): void; getLangRemoveEvent(): EventEmitter<any>; setLangRemoveEvent(event: EventEmitter<any>): void; getBeforeLangClickEvent(): EventEmitter<any>; setBeforeLangClickEvent(event: EventEmitter<any>): void; getBeforeLangAddEvent(): EventEmitter<any>; setBeforeLangAddEvent(event: EventEmitter<any>): void; getBeforeLangRemoveEvent(): EventEmitter<any>; setBeforeLangRemoveEvent(event: EventEmitter<any>): void; setData(data: any): void; isSelfDataDirty(): boolean; /** * */ getMergedLanguageList(): LanguageButtonModel[]; selfSaveData(data: any): void; selfResetData(): void; setController(controller: IDataLangSelectorController): void; isNew(langCode: string): boolean; markLangAsCreated(langCode: string): void; unmarkLangAsCreated(langCode: string): void; doPreload(): Promise<any>; doLoaded(): void; /** * @return any as one object. */ getDefaultData(): any; getDataObjects(): any[]; abstract getLanguageFieldName(): string; abstract getObjectIdFieldName(): string; /** * @param data as a dataLanguage * @return boolean is dataLanguageDirty */ abstract isDataLanguageDirty(data: any): boolean; abstract parseLanguageButtonModel(langCode: string): LanguageButtonModel; }