feat: add input text directive for better type

pull/5538/head
bnymncoskuner 5 years ago
parent 5a56d91a42
commit e8d4617e10

@ -0,0 +1,38 @@
import { Directive, Input, HostBinding } from '@angular/core';
// TODO: improve this type
export interface FreeTextType {
valueType: {
validator: {
name: string;
};
};
}
export const INPUT_TYPES = {
numeric: 'number',
default: 'text',
};
@Directive({
selector: 'input[abpFreeText]',
exportAs: 'inputAbpFreeText',
})
export class FreeTextInputDirective {
_feature: FreeTextType;
@Input('abpFreeText') set feature(val: FreeTextType) {
this._feature = val;
this.setInputType();
}
get feature() {
return this._feature;
}
@HostBinding('type') type: string;
private setInputType() {
const validatorType = this.feature?.valueType?.validator?.name.toLowerCase();
this.type = INPUT_TYPES[validatorType] ?? INPUT_TYPES.default;
}
}

@ -2,3 +2,4 @@ export * from './loading.directive';
export * from './ngx-datatable-default.directive';
export * from './ngx-datatable-list.directive';
export * from './table-sort.directive';
export * from './free-text-input.directive';

@ -29,6 +29,7 @@ import { THEME_SHARED_ROUTE_PROVIDERS } from './providers/route.provider';
import { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token';
import { httpErrorConfigFactory, HTTP_ERROR_CONFIG } from './tokens/http-error.token';
import { DateParserFormatter } from './utils/date-parser-formatter';
import { FreeTextInputDirective } from './directives/free-text-input.directive';
@NgModule({
imports: [CoreModule, NgxDatatableModule, NgxValidateCoreModule, NgbPaginationModule],
@ -51,6 +52,7 @@ import { DateParserFormatter } from './utils/date-parser-formatter';
NgxDatatableListDirective,
LoadingDirective,
TableSortDirective,
FreeTextInputDirective,
],
exports: [
NgxDatatableModule,
@ -70,6 +72,7 @@ import { DateParserFormatter } from './utils/date-parser-formatter';
NgxDatatableListDirective,
LoadingDirective,
TableSortDirective,
FreeTextInputDirective,
],
providers: [DatePipe],
entryComponents: [

Loading…
Cancel
Save