diff --git a/ui/src/app/schema-form/registry.ts b/ui/src/app/schema-form/registry.ts index 202e6d14e..a3bc92856 100644 --- a/ui/src/app/schema-form/registry.ts +++ b/ui/src/app/schema-form/registry.ts @@ -1,14 +1,62 @@ -import { DefaultWidgetRegistry } from 'ngx-schema-form'; import { BooleanRadioComponent } from './widget/boolean-radio/boolean-radio.component'; import { FieldsetComponent } from './widget/fieldset/fieldset.component'; import { CustomStringComponent } from './widget/text/string.component'; -export class CustomWidgetRegistry extends DefaultWidgetRegistry { +import { WidgetRegistry } from 'ngx-schema-form'; + +import { ArrayWidget } from 'ngx-schema-form'; +import { ButtonWidget } from 'ngx-schema-form'; +import { CheckboxWidget } from 'ngx-schema-form'; +import { FileWidget } from 'ngx-schema-form'; +import { IntegerWidget } from 'ngx-schema-form'; +import { ObjectWidget } from 'ngx-schema-form'; +import { RadioWidget } from 'ngx-schema-form'; +import { RangeWidget } from 'ngx-schema-form'; +import { SelectWidget } from 'ngx-schema-form'; +import { StringWidget } from 'ngx-schema-form'; +import { TextAreaWidget } from 'ngx-schema-form'; +import { CustomSelectComponent } from './widget/select/select.component'; + + + +export class CustomWidgetRegistry extends WidgetRegistry { constructor() { super(); + /* Custom */ + this.register('string', CustomStringComponent); + this.register('search', CustomStringComponent); + this.register('tel', CustomStringComponent); + this.register('url', CustomStringComponent); + this.register('email', CustomStringComponent); + this.register('password', CustomStringComponent); + this.register('color', CustomStringComponent); + this.register('date', CustomStringComponent); + this.register('date-time', CustomStringComponent); + this.register('time', CustomStringComponent); + this.register('boolean-radio', BooleanRadioComponent); this.register('fieldset', FieldsetComponent); - this.register('custom-string', CustomStringComponent); + + this.register('select', CustomSelectComponent); + + /* NGX-Form */ + this.register('array', ArrayWidget); + this.register('object', ObjectWidget); + + this.register('integer', IntegerWidget); + this.register('number', IntegerWidget); + this.register('range', RangeWidget); + + this.register('textarea', TextAreaWidget); + + this.register('file', FileWidget); + this.register('radio', RadioWidget); + this.register('boolean', CheckboxWidget); + this.register('checkbox', CheckboxWidget); + + this.register('button', ButtonWidget); + + this.setDefaultWidget(CustomStringComponent); } } diff --git a/ui/src/app/schema-form/schema-form.module.ts b/ui/src/app/schema-form/schema-form.module.ts index bc143a661..4ea92397d 100644 --- a/ui/src/app/schema-form/schema-form.module.ts +++ b/ui/src/app/schema-form/schema-form.module.ts @@ -7,17 +7,23 @@ import { BooleanRadioComponent } from './widget/boolean-radio/boolean-radio.comp import { SchemaService } from './service/schema.service'; import { FieldsetComponent } from './widget/fieldset/fieldset.component'; import { CustomStringComponent } from './widget/text/string.component'; +import { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap'; +import { SharedModule } from '../shared/shared.module'; +import { CustomSelectComponent } from './widget/select/select.component'; export const COMPONENTS = [ BooleanRadioComponent, FieldsetComponent, - CustomStringComponent + CustomStringComponent, + CustomSelectComponent ]; @NgModule({ imports: [ CommonModule, ReactiveFormsModule, + NgbPopoverModule, + SharedModule, SchemaFormModule.forRoot() ], declarations: COMPONENTS, diff --git a/ui/src/app/schema-form/widget/boolean-radio/boolean-radio.component.html b/ui/src/app/schema-form/widget/boolean-radio/boolean-radio.component.html index a1ae8dad7..3d6070d92 100644 --- a/ui/src/app/schema-form/widget/boolean-radio/boolean-radio.component.html +++ b/ui/src/app/schema-form/widget/boolean-radio/boolean-radio.component.html @@ -1,5 +1,14 @@