UNPKG

@ng-dynamic-forms/ui-bootstrap

Version:

Bootstrap UI package for NG Dynamic Forms

482 lines • 77.6 kB
import * as i0 from '@angular/core';
import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ViewChild, ViewContainerRef, ContentChildren, HostBinding, ViewChildren } from '@angular/core';
import * as i2 from '@angular/forms';
import { ReactiveFormsModule } from '@angular/forms';
import * as i1 from '@ng-dynamic-forms/core';
import { DynamicFormControlComponent, DynamicFormsCoreModule, DynamicFormControlContainerComponent, DynamicTemplateDirective, DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER, DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA, DYNAMIC_FORM_CONTROL_TYPE_SELECT, DYNAMIC_FORM_CONTROL_TYPE_RATING, DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP, DYNAMIC_FORM_CONTROL_TYPE_INPUT, DYNAMIC_FORM_CONTROL_TYPE_GROUP, DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP, DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX, DYNAMIC_FORM_CONTROL_TYPE_ARRAY, DynamicFormArrayComponent, DynamicFormGroupComponent, DynamicFormComponent } from '@ng-dynamic-forms/core';
import { NgClass, NgIf, NgFor, AsyncPipe, NgTemplateOutlet } from '@angular/common';
import * as i3 from 'ngx-bootstrap/datepicker';
import { BsDatepickerDirective, BsDatepickerModule } from 'ngx-bootstrap/datepicker';
import { NgxMaskDirective } from 'ngx-mask';
import * as i3$1 from 'ngx-bootstrap/rating';
import { RatingModule } from 'ngx-bootstrap/rating';
import * as i3$2 from 'ngx-bootstrap/timepicker';
import { TimepickerComponent, TimepickerModule } from 'ngx-bootstrap/timepicker';

class DynamicBootstrapCheckboxComponent extends DynamicFormControlComponent {
    constructor(layoutService, validationService) {
        super(layoutService, validationService);
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.focus = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapCheckboxComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapCheckboxComponent, isStandalone: true, selector: "dynamic-bootstrap-checkbox", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus" }, usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"group\" [class.disabled]=\"model.disabled\" [ngClass]=\"getClass('element', 'control') || 'checkbox'\">\n\n    <label>\n\n        <input type=\"checkbox\"\n               [checked]=\"model.checked\"\n               [formControlName]=\"model.id\"\n               [id]=\"id\"\n               [indeterminate]=\"model.indeterminate\"\n               [name]=\"model.name\"\n               [ngClass]=\"getClass('element', 'control')\"\n               [required]=\"model.required\"\n               [tabindex]=\"model.tabIndex\"\n               [value]=\"model.value\"\n               (blur)=\"onBlur($event)\"\n               (change)=\"onChange($event)\"\n               (focus)=\"onFocus($event)\"/><span [innerHTML]=\"model.label\"\n                                                [ngClass]=\"[getClass('element', 'label'), getClass('grid', 'label')]\"></span></label>\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.CheckboxRequiredValidator, selector: "input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapCheckboxComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-checkbox", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, NgClass], template: "<div [formGroup]=\"group\" [class.disabled]=\"model.disabled\" [ngClass]=\"getClass('element', 'control') || 'checkbox'\">\n\n    <label>\n\n        <input type=\"checkbox\"\n               [checked]=\"model.checked\"\n               [formControlName]=\"model.id\"\n               [id]=\"id\"\n               [indeterminate]=\"model.indeterminate\"\n               [name]=\"model.name\"\n               [ngClass]=\"getClass('element', 'control')\"\n               [required]=\"model.required\"\n               [tabindex]=\"model.tabIndex\"\n               [value]=\"model.value\"\n               (blur)=\"onBlur($event)\"\n               (change)=\"onChange($event)\"\n               (focus)=\"onFocus($event)\"/><span [innerHTML]=\"model.label\"\n                                                [ngClass]=\"[getClass('element', 'label'), getClass('grid', 'label')]\"></span></label>\n</div>\n" }]
        }], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
                type: Input
            }], group: [{
                type: Input
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], focus: [{
                type: Output
            }] } });

class DynamicBootstrapDatePickerComponent extends DynamicFormControlComponent {
    constructor(layoutService, validationService) {
        super(layoutService, validationService);
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.customEvent = new EventEmitter();
        this.focus = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapDatePickerComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapDatePickerComponent, isStandalone: true, selector: "dynamic-bootstrap-datepicker", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", customEvent: "customEvent", focus: "focus" }, viewQueries: [{ propertyName: "bsDatePicker", first: true, predicate: BsDatepickerDirective, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"group\" class=\"input-group\">\n\n    <input bsDatepicker class=\"form-control\" #bsDatepicker=\"bsDatepicker\"\n           [autofocus]=\"model.autoFocus\"\n           [bsConfig]=\"model.getAdditional('bsConfig', {containerClass: model.getAdditional('containerClass', 'theme-green'), showWeekNumbers: model.getAdditional('showWeekNumbers', true)})\"\n           [formControlName]=\"model.id\"\n           [id]=\"id\"\n           [maxDate]=\"model.max\"\n           [minDate]=\"model.min\"\n           [name]=\"model.name\"\n           [ngClass]=\"getClass('element', 'control')\"\n           [outsideClick]=\"model.getAdditional('outsideClick', true)\"\n           [placeholder]=\"model.placeholder\"\n           [placement]=\"model.getAdditional('placement', 'bottom')\"\n           [readonly]=\"model.readOnly\"\n           [required]=\"model.required\"\n           (bsValueChange)=\"onChange($event)\"\n           (onHidden)=\"onCustomEvent($event, 'onHidden')\"\n           (onShown)=\"onCustomEvent($event, 'onShown')\">\n\n    <div *ngIf=\"model.toggleLabel\" class=\"input-group-btn\">\n\n        <button *ngIf=\"model.toggleIcon\" class=\"btn\" (click)=\"bsDatepicker.toggle()\"><img [src]=\"model.toggleIcon\"/></button>\n        <button *ngIf=\"model.toggleLabel\" class=\"btn\" (click)=\"bsDatepicker.toggle()\">{{ model.toggleLabel }}</button>\n\n    </div>\n\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: BsDatepickerModule }, { kind: "directive", type: i3.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i3.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapDatePickerComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-datepicker", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, BsDatepickerModule, NgClass, NgIf], template: "<div [formGroup]=\"group\" class=\"input-group\">\n\n    <input bsDatepicker class=\"form-control\" #bsDatepicker=\"bsDatepicker\"\n           [autofocus]=\"model.autoFocus\"\n           [bsConfig]=\"model.getAdditional('bsConfig', {containerClass: model.getAdditional('containerClass', 'theme-green'), showWeekNumbers: model.getAdditional('showWeekNumbers', true)})\"\n           [formControlName]=\"model.id\"\n           [id]=\"id\"\n           [maxDate]=\"model.max\"\n           [minDate]=\"model.min\"\n           [name]=\"model.name\"\n           [ngClass]=\"getClass('element', 'control')\"\n           [outsideClick]=\"model.getAdditional('outsideClick', true)\"\n           [placeholder]=\"model.placeholder\"\n           [placement]=\"model.getAdditional('placement', 'bottom')\"\n           [readonly]=\"model.readOnly\"\n           [required]=\"model.required\"\n           (bsValueChange)=\"onChange($event)\"\n           (onHidden)=\"onCustomEvent($event, 'onHidden')\"\n           (onShown)=\"onCustomEvent($event, 'onShown')\">\n\n    <div *ngIf=\"model.toggleLabel\" class=\"input-group-btn\">\n\n        <button *ngIf=\"model.toggleIcon\" class=\"btn\" (click)=\"bsDatepicker.toggle()\"><img [src]=\"model.toggleIcon\"/></button>\n        <button *ngIf=\"model.toggleLabel\" class=\"btn\" (click)=\"bsDatepicker.toggle()\">{{ model.toggleLabel }}</button>\n\n    </div>\n\n</div>\n" }]
        }], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
                type: Input
            }], group: [{
                type: Input
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], customEvent: [{
                type: Output
            }], focus: [{
                type: Output
            }], bsDatePicker: [{
                type: ViewChild,
                args: [BsDatepickerDirective, { static: true }]
            }] } });

class DynamicBootstrapInputComponent extends DynamicFormControlComponent {
    constructor(layoutService, validationService) {
        super(layoutService, validationService);
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.focus = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapInputComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapInputComponent, isStandalone: true, selector: "dynamic-bootstrap-input", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus" }, usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"group\" [class.input-group]=\"model.prefix || model.suffix\">\n\n    <div *ngIf=\"model.prefix\" class=\"input-group-addon\" [innerHTML]=\"model.prefix\"></div>\n\n    <input *ngIf=\"model.inputType === 'file'; else maskedInput\" class=\"form-control\"\n           [attr.accept]=\"model.accept\"\n           [attr.max]=\"model.max\"\n           [attr.min]=\"model.min\"\n           [attr.multiple]=\"model.multiple\"\n           [attr.step]=\"model.step\"\n           [autocomplete]=\"model.autoComplete\"\n           [autofocus]=\"model.autoFocus\"\n           [dynamicList]=\"model.listId\"\n           [formControlName]=\"model.id\"\n           [id]=\"id\"\n           [maxlength]=\"model.maxLength\"\n           [minlength]=\"model.minLength\"\n           [name]=\"model.name\"\n           [ngClass]=\"getClass('element', 'control')\"\n           [pattern]=\"model.pattern\"\n           [placeholder]=\"model.placeholder\"\n           [readonly]=\"model.readOnly\"\n           [required]=\"model.required\"\n           [spellcheck]=\"model.spellCheck\"\n           [tabindex]=\"model.tabIndex\"\n           [type]=\"model.inputType\"\n           (blur)=\"onBlur($event)\"\n           (change)=\"onChange($event)\"\n           (focus)=\"onFocus($event)\"/>\n\n    <ng-template #maskedInput>\n        <input class=\"form-control\"\n               [attr.accept]=\"model.accept\"\n               [attr.max]=\"model.max\"\n               [attr.min]=\"model.min\"\n               [attr.multiple]=\"model.multiple\"\n               [attr.step]=\"model.step\"\n               [autocomplete]=\"model.autoComplete\"\n               [autofocus]=\"model.autoFocus\"\n               [dynamicList]=\"model.listId\"\n               [formControlName]=\"model.id\"\n               [id]=\"id\"\n               [maxlength]=\"model.maxLength\"\n               [minlength]=\"model.minLength\"\n               [name]=\"model.name\"\n               [ngClass]=\"getClass('element', 'control')\"\n               [pattern]=\"model.pattern\"\n               [placeholder]=\"model.placeholder\"\n               [readonly]=\"model.readOnly\"\n               [required]=\"model.required\"\n               [spellcheck]=\"model.spellCheck\"\n               [tabindex]=\"model.tabIndex\"\n               [mask]=\"model.mask\"\n               [specialCharacters]=\"model.maskConfig?.specialCharacters\"\n               [patterns]=\"model.maskConfig?.patterns\"\n               [prefix]=\"model.maskConfig?.prefix\"\n               [suffix]=\"model.maskConfig?.suffix\"\n               [thousandSeparator]=\"model.maskConfig?.thousandSeparator\"\n               [decimalMarker]=\"model.maskConfig?.decimalMarker\"\n               [dropSpecialCharacters]=\"model.maskConfig?.dropSpecialCharacters\"\n               [hiddenInput]=\"model.maskConfig?.hiddenInput\"\n               [showMaskTyped]=\"model.maskConfig?.showMaskTyped\"\n               [placeHolderCharacter]=\"model.maskConfig?.placeHolderCharacter\"\n               [shownMaskExpression]=\"model.maskConfig?.shownMaskExpression\"\n               [showTemplate]=\"model.maskConfig?.showTemplate\"\n               [clearIfNotMatch]=\"model.maskConfig.clearIfNotMatch\"\n               [validation]=\"model.maskConfig.validation\"\n               [separatorLimit]=\"model.maskConfig.separatorLimit\"\n               [allowNegativeNumbers]=\"model.maskConfig.allowNegativeNumbers\"\n               [leadZeroDateTime]=\"model.maskConfig.leadZeroDateTime\"\n               [type]=\"model.inputType\"\n               (blur)=\"onBlur($event)\"\n               (change)=\"onChange($event)\"\n               (focus)=\"onFocus($event)\"/>\n    </ng-template>\n\n    <div *ngIf=\"model.suffix\" class=\"input-group-addon\" [innerHTML]=\"model.suffix\"></div>\n\n    <datalist *ngIf=\"model.hasList\" [id]=\"model.listId\">\n        <option *ngFor=\"let option of model.list$ | async\" [value]=\"option\">\n    </datalist>\n\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DynamicFormsCoreModule }, { kind: "directive", type: i1.DynamicListDirective, selector: "[dynamicList]", inputs: ["dynamicList"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapInputComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-input", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, NgIf, DynamicFormsCoreModule, NgClass, NgxMaskDirective, NgFor, AsyncPipe], template: "<div [formGroup]=\"group\" [class.input-group]=\"model.prefix || model.suffix\">\n\n    <div *ngIf=\"model.prefix\" class=\"input-group-addon\" [innerHTML]=\"model.prefix\"></div>\n\n    <input *ngIf=\"model.inputType === 'file'; else maskedInput\" class=\"form-control\"\n           [attr.accept]=\"model.accept\"\n           [attr.max]=\"model.max\"\n           [attr.min]=\"model.min\"\n           [attr.multiple]=\"model.multiple\"\n           [attr.step]=\"model.step\"\n           [autocomplete]=\"model.autoComplete\"\n           [autofocus]=\"model.autoFocus\"\n           [dynamicList]=\"model.listId\"\n           [formControlName]=\"model.id\"\n           [id]=\"id\"\n           [maxlength]=\"model.maxLength\"\n           [minlength]=\"model.minLength\"\n           [name]=\"model.name\"\n           [ngClass]=\"getClass('element', 'control')\"\n           [pattern]=\"model.pattern\"\n           [placeholder]=\"model.placeholder\"\n           [readonly]=\"model.readOnly\"\n           [required]=\"model.required\"\n           [spellcheck]=\"model.spellCheck\"\n           [tabindex]=\"model.tabIndex\"\n           [type]=\"model.inputType\"\n           (blur)=\"onBlur($event)\"\n           (change)=\"onChange($event)\"\n           (focus)=\"onFocus($event)\"/>\n\n    <ng-template #maskedInput>\n        <input class=\"form-control\"\n               [attr.accept]=\"model.accept\"\n               [attr.max]=\"model.max\"\n               [attr.min]=\"model.min\"\n               [attr.multiple]=\"model.multiple\"\n               [attr.step]=\"model.step\"\n               [autocomplete]=\"model.autoComplete\"\n               [autofocus]=\"model.autoFocus\"\n               [dynamicList]=\"model.listId\"\n               [formControlName]=\"model.id\"\n               [id]=\"id\"\n               [maxlength]=\"model.maxLength\"\n               [minlength]=\"model.minLength\"\n               [name]=\"model.name\"\n               [ngClass]=\"getClass('element', 'control')\"\n               [pattern]=\"model.pattern\"\n               [placeholder]=\"model.placeholder\"\n               [readonly]=\"model.readOnly\"\n               [required]=\"model.required\"\n               [spellcheck]=\"model.spellCheck\"\n               [tabindex]=\"model.tabIndex\"\n               [mask]=\"model.mask\"\n               [specialCharacters]=\"model.maskConfig?.specialCharacters\"\n               [patterns]=\"model.maskConfig?.patterns\"\n               [prefix]=\"model.maskConfig?.prefix\"\n               [suffix]=\"model.maskConfig?.suffix\"\n               [thousandSeparator]=\"model.maskConfig?.thousandSeparator\"\n               [decimalMarker]=\"model.maskConfig?.decimalMarker\"\n               [dropSpecialCharacters]=\"model.maskConfig?.dropSpecialCharacters\"\n               [hiddenInput]=\"model.maskConfig?.hiddenInput\"\n               [showMaskTyped]=\"model.maskConfig?.showMaskTyped\"\n               [placeHolderCharacter]=\"model.maskConfig?.placeHolderCharacter\"\n               [shownMaskExpression]=\"model.maskConfig?.shownMaskExpression\"\n               [showTemplate]=\"model.maskConfig?.showTemplate\"\n               [clearIfNotMatch]=\"model.maskConfig.clearIfNotMatch\"\n               [validation]=\"model.maskConfig.validation\"\n               [separatorLimit]=\"model.maskConfig.separatorLimit\"\n               [allowNegativeNumbers]=\"model.maskConfig.allowNegativeNumbers\"\n               [leadZeroDateTime]=\"model.maskConfig.leadZeroDateTime\"\n               [type]=\"model.inputType\"\n               (blur)=\"onBlur($event)\"\n               (change)=\"onChange($event)\"\n               (focus)=\"onFocus($event)\"/>\n    </ng-template>\n\n    <div *ngIf=\"model.suffix\" class=\"input-group-addon\" [innerHTML]=\"model.suffix\"></div>\n\n    <datalist *ngIf=\"model.hasList\" [id]=\"model.listId\">\n        <option *ngFor=\"let option of model.list$ | async\" [value]=\"option\">\n    </datalist>\n\n</div>\n" }]
        }], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
                type: Input
            }], group: [{
                type: Input
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], focus: [{
                type: Output
            }] } });

class DynamicBootstrapRadioGroupComponent extends DynamicFormControlComponent {
    constructor(layoutService, validationService) {
        super(layoutService, validationService);
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.focus = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapRadioGroupComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapRadioGroupComponent, isStandalone: true, selector: "dynamic-bootstrap-radio-group", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus" }, usesInheritance: true, ngImport: i0, template: "<fieldset role=\"radiogroup\"\n          [formGroup]=\"group\"\n          [id]=\"id\"\n          [name]=\"model.name\"\n          [ngClass]=\"getClass('element', 'control')\"\n          [tabindex]=\"model.tabIndex\"\n          (change)=\"onChange($event)\">\n\n    <legend *ngIf=\"model.legend\" [innerHTML]=\"model.legend\"></legend>\n\n    <div *ngFor=\"let option of model.options$ | async\" [ngClass]=\"getClass('element', 'option') || 'radio'\">\n\n        <label><input type=\"radio\"\n                      [formControlName]=\"model.id\"\n                      [name]=\"model.name\"\n                      [value]=\"option.value\"\n                      (blur)=\"onBlur($event)\"\n                      (focus)=\"onFocus($event)\"/><span [innerHTML]=\"option.label\"></span></label>\n    </div>\n\n</fieldset>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapRadioGroupComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-radio-group", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, NgClass, NgIf, NgFor, AsyncPipe], template: "<fieldset role=\"radiogroup\"\n          [formGroup]=\"group\"\n          [id]=\"id\"\n          [name]=\"model.name\"\n          [ngClass]=\"getClass('element', 'control')\"\n          [tabindex]=\"model.tabIndex\"\n          (change)=\"onChange($event)\">\n\n    <legend *ngIf=\"model.legend\" [innerHTML]=\"model.legend\"></legend>\n\n    <div *ngFor=\"let option of model.options$ | async\" [ngClass]=\"getClass('element', 'option') || 'radio'\">\n\n        <label><input type=\"radio\"\n                      [formControlName]=\"model.id\"\n                      [name]=\"model.name\"\n                      [value]=\"option.value\"\n                      (blur)=\"onBlur($event)\"\n                      (focus)=\"onFocus($event)\"/><span [innerHTML]=\"option.label\"></span></label>\n    </div>\n\n</fieldset>\n" }]
        }], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
                type: Input
            }], group: [{
                type: Input
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], focus: [{
                type: Output
            }] } });

class DynamicBootstrapRatingComponent extends DynamicFormControlComponent {
    constructor(layoutService, validationService) {
        super(layoutService, validationService);
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.focus = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapRatingComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapRatingComponent, isStandalone: true, selector: "dynamic-bootstrap-rating", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus" }, usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"group\">\n\n    <rating [formControlName]=\"model.id\"\n            [id]=\"id\"\n            [max]=\"model.max\"\n            [ngClass]=\"getClass('element', 'control')\"\n            [readonly]=\"model.getAdditional('readonly', false)\"\n            (onHover)=\"onCustomEvent($event, 'onHover')\"\n            (onLeave)=\"onCustomEvent($event, 'onLeave')\"></rating>\n\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: RatingModule }, { kind: "component", type: i3$1.RatingComponent, selector: "rating", inputs: ["max", "readonly", "titles", "customTemplate"], outputs: ["onHover", "onLeave"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapRatingComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-rating", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, RatingModule, NgClass], template: "<ng-container [formGroup]=\"group\">\n\n    <rating [formControlName]=\"model.id\"\n            [id]=\"id\"\n            [max]=\"model.max\"\n            [ngClass]=\"getClass('element', 'control')\"\n            [readonly]=\"model.getAdditional('readonly', false)\"\n            (onHover)=\"onCustomEvent($event, 'onHover')\"\n            (onLeave)=\"onCustomEvent($event, 'onLeave')\"></rating>\n\n</ng-container>\n" }]
        }], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
                type: Input
            }], group: [{
                type: Input
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], focus: [{
                type: Output
            }] } });

class DynamicBootstrapSelectComponent extends DynamicFormControlComponent {
    constructor(layoutService, validationService) {
        super(layoutService, validationService);
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.focus = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapSelectComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapSelectComponent, isStandalone: true, selector: "dynamic-bootstrap-select", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus" }, usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"group\">\n\n    <select class=\"form-control\"\n            [compareWith]=\"model.compareWithFn\"\n            [formControlName]=\"model.id\"\n            [id]=\"id\"\n            [name]=\"model.name\"\n            [ngClass]=\"getClass('element', 'control')\"\n            [required]=\"model.required\"\n            [tabindex]=\"model.tabIndex\"\n            (blur)=\"onBlur($event)\"\n            (change)=\"onChange($event)\"\n            (focus)=\"onFocus($event)\">\n\n        <option *ngFor=\"let option of model.options$ | async\"\n                [disabled]=\"option.disabled\"\n                [ngValue]=\"option.value\">{{ option.label }}\n        </option>\n\n    </select>\n\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapSelectComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-select", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, NgClass, NgFor, AsyncPipe], template: "<ng-container [formGroup]=\"group\">\n\n    <select class=\"form-control\"\n            [compareWith]=\"model.compareWithFn\"\n            [formControlName]=\"model.id\"\n            [id]=\"id\"\n            [name]=\"model.name\"\n            [ngClass]=\"getClass('element', 'control')\"\n            [required]=\"model.required\"\n            [tabindex]=\"model.tabIndex\"\n            (blur)=\"onBlur($event)\"\n            (change)=\"onChange($event)\"\n            (focus)=\"onFocus($event)\">\n\n        <option *ngFor=\"let option of model.options$ | async\"\n                [disabled]=\"option.disabled\"\n                [ngValue]=\"option.value\">{{ option.label }}\n        </option>\n\n    </select>\n\n</ng-container>\n" }]
        }], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
                type: Input
            }], group: [{
                type: Input
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], focus: [{
                type: Output
            }] } });

class DynamicBootstrapTextAreaComponent extends DynamicFormControlComponent {
    constructor(layoutService, validationService) {
        super(layoutService, validationService);
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.focus = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapTextAreaComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapTextAreaComponent, isStandalone: true, selector: "dynamic-bootstrap-textarea", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus" }, usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"group\">\n\n    <textarea class=\"form-control\"\n              [cols]=\"model.cols\"\n              [formControlName]=\"model.id\"\n              [id]=\"id\"\n              [maxlength]=\"model.maxLength\"\n              [minlength]=\"model.minLength\"\n              [name]=\"model.name\"\n              [ngClass]=\"getClass('element', 'control')\"\n              [placeholder]=\"model.placeholder\"\n              [readonly]=\"model.readOnly\"\n              [required]=\"model.required\"\n              [rows]=\"model.rows\"\n              [spellcheck]=\"model.spellCheck\"\n              [tabindex]=\"model.tabIndex\"\n              [wrap]=\"model.wrap\"\n              (blur)=\"onBlur($event)\"\n              (change)=\"onChange($event)\"\n              (focus)=\"onFocus($event)\"></textarea>\n\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapTextAreaComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-textarea", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, NgClass], template: "<ng-container [formGroup]=\"group\">\n\n    <textarea class=\"form-control\"\n              [cols]=\"model.cols\"\n              [formControlName]=\"model.id\"\n              [id]=\"id\"\n              [maxlength]=\"model.maxLength\"\n              [minlength]=\"model.minLength\"\n              [name]=\"model.name\"\n              [ngClass]=\"getClass('element', 'control')\"\n              [placeholder]=\"model.placeholder\"\n              [readonly]=\"model.readOnly\"\n              [required]=\"model.required\"\n              [rows]=\"model.rows\"\n              [spellcheck]=\"model.spellCheck\"\n              [tabindex]=\"model.tabIndex\"\n              [wrap]=\"model.wrap\"\n              (blur)=\"onBlur($event)\"\n              (change)=\"onChange($event)\"\n              (focus)=\"onFocus($event)\"></textarea>\n\n</ng-container>\n" }]
        }], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
                type: Input
            }], group: [{
                type: Input
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], focus: [{
                type: Output
            }] } });

class DynamicBootstrapTimePickerComponent extends DynamicFormControlComponent {
    constructor(layoutService, validationService) {
        super(layoutService, validationService);
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.focus = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapTimePickerComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapTimePickerComponent, isStandalone: true, selector: "dynamic-bootstrap-timepicker", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus" }, viewQueries: [{ propertyName: "bsTimePicker", first: true, predicate: TimepickerComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"group\">\n\n    <timepicker [arrowkeys]=\"model.getAdditional('arrowkeys', true)\"\n                [formControlName]=\"model.id\"\n                [hourStep]=\"model.getAdditional('hourStep', 1)\"\n                [id]=\"id\"\n                [max]=\"model.max\"\n                [min]=\"model.min\"\n                [mousewheel]=\"model.getAdditional('mousewheel', true)\"\n                [minuteStep]=\"model.getAdditional('minuteStep', 1)\"\n                [ngClass]=\"getClass('element', 'control')\"\n                [secondsStep]=\"model.getAdditional('secondsStep', 1)\"\n                [showMeridian]=\"model.meridian\"\n                [showSeconds]=\"model.showSeconds\"\n                [showSpinners]=\"model.getAdditional('spinners', true)\"></timepicker>\n\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TimepickerModule }, { kind: "component", type: i3$2.TimepickerComponent, selector: "timepicker", inputs: ["hourStep", "minuteStep", "secondsStep", "readonlyInput", "disabled", "mousewheel", "arrowkeys", "showSpinners", "showMeridian", "showMinutes", "showSeconds", "meridians", "min", "max", "hoursPlaceholder", "minutesPlaceholder", "secondsPlaceholder"], outputs: ["isValid", "meridianChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapTimePickerComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-timepicker", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, TimepickerModule, NgClass], template: "<ng-container [formGroup]=\"group\">\n\n    <timepicker [arrowkeys]=\"model.getAdditional('arrowkeys', true)\"\n                [formControlName]=\"model.id\"\n                [hourStep]=\"model.getAdditional('hourStep', 1)\"\n                [id]=\"id\"\n                [max]=\"model.max\"\n                [min]=\"model.min\"\n                [mousewheel]=\"model.getAdditional('mousewheel', true)\"\n                [minuteStep]=\"model.getAdditional('minuteStep', 1)\"\n                [ngClass]=\"getClass('element', 'control')\"\n                [secondsStep]=\"model.getAdditional('secondsStep', 1)\"\n                [showMeridian]=\"model.meridian\"\n                [showSeconds]=\"model.showSeconds\"\n                [showSpinners]=\"model.getAdditional('spinners', true)\"></timepicker>\n\n</ng-container>\n" }]
        }], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
                type: Input
            }], group: [{
                type: Input
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], focus: [{
                type: Output
            }], bsTimePicker: [{
                type: ViewChild,
                args: [TimepickerComponent, { static: true }]
            }] } });

class DynamicBootstrapFormControlContainerComponent extends DynamicFormControlContainerComponent {
    get componentType() {
        return this.componentService.getCustomComponentType(this.model) || bootstrapUIFormControlMapFn(this.model);
    }
    constructor(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService) {
        super(changeDetectorRef, componentFactoryResolver, layoutService, validationService, componentService, relationService);
        this.changeDetectorRef = changeDetectorRef;
        this.componentFactoryResolver = componentFactoryResolver;
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.componentService = componentService;
        this.relationService = relationService;
        this.asBootstrapFormGroup = true;
        this.context = null;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.focus = new EventEmitter();
        // tslint:disable-next-line:no-output-rename
        this.customEvent = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapFormControlContainerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }, { token: i1.DynamicFormComponentService }, { token: i1.DynamicFormRelationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapFormControlContainerComponent, isStandalone: true, selector: "dynamic-bootstrap-form-control", inputs: { asBootstrapFormGroup: "asBootstrapFormGroup", context: "context", group: "group", hostClass: "hostClass", inputTemplateList: ["templates", "inputTemplateList"], layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", focus: "focus", customEvent: "bsEvent" }, host: { properties: { "class": "this.klass" } }, queries: [{ propertyName: "contentTemplateList", predicate: DynamicTemplateDirective }], viewQueries: [{ propertyName: "componentViewContainerRef", first: true, predicate: ["componentViewContainer"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div [class.form-group]=\"asBootstrapFormGroup || getClass('element', 'container').includes('form-group')\"\n     [class.has-error]=\"showErrorMessages\"\n     [formGroup]=\"group\"\n     [ngClass]=\"['ng-dynamic-forms-'+model.type.toLowerCase(), getClass('element', 'container'), getClass('grid', 'container')]\">\n\n    <label *ngIf=\"!isCheckbox && hasLabel\"\n           [for]=\"id\"\n           [innerHTML]=\"model.label\"\n           [ngClass]=\"[getClass('element', 'label'), getClass('grid', 'label')]\"></label>\n\n    <ng-container *ngTemplateOutlet=\"startTemplate?.templateRef; context: model\"></ng-container>\n\n    <div [ngClass]=\"getClass('grid', 'control')\">\n\n        <ng-container #componentViewContainer></ng-container>\n\n        <span *ngIf=\"hasHint\" class=\"help-block\" [innerHTML]=\"hint\"\n              [ngClass]=\"getClass('element', 'hint')\"></span>\n\n    </div>\n\n    <ul *ngIf=\"showErrorMessages\" class=\"has-error\"\n        [ngClass]=\"[getClass('element', 'errors'), getClass('grid', 'errors')]\">\n\n        <li *ngFor=\"let message of errorMessages\" class=\"help-block\">{{ message }}</li>\n\n    </ul>\n\n    <ng-container *ngTemplateOutlet=\"endTemplate?.templateRef; context: model\"></ng-container>\n\n    <ng-content></ng-content>\n\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapFormControlContainerComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-form-control", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, NgClass, NgIf, NgTemplateOutlet, NgFor], template: "<div [class.form-group]=\"asBootstrapFormGroup || getClass('element', 'container').includes('form-group')\"\n     [class.has-error]=\"showErrorMessages\"\n     [formGroup]=\"group\"\n     [ngClass]=\"['ng-dynamic-forms-'+model.type.toLowerCase(), getClass('element', 'container'), getClass('grid', 'container')]\">\n\n    <label *ngIf=\"!isCheckbox && hasLabel\"\n           [for]=\"id\"\n           [innerHTML]=\"model.label\"\n           [ngClass]=\"[getClass('element', 'label'), getClass('grid', 'label')]\"></label>\n\n    <ng-container *ngTemplateOutlet=\"startTemplate?.templateRef; context: model\"></ng-container>\n\n    <div [ngClass]=\"getClass('grid', 'control')\">\n\n        <ng-container #componentViewContainer></ng-container>\n\n        <span *ngIf=\"hasHint\" class=\"help-block\" [innerHTML]=\"hint\"\n              [ngClass]=\"getClass('element', 'hint')\"></span>\n\n    </div>\n\n    <ul *ngIf=\"showErrorMessages\" class=\"has-error\"\n        [ngClass]=\"[getClass('element', 'errors'), getClass('grid', 'errors')]\">\n\n        <li *ngFor=\"let message of errorMessages\" class=\"help-block\">{{ message }}</li>\n\n    </ul>\n\n    <ng-container *ngTemplateOutlet=\"endTemplate?.templateRef; context: model\"></ng-container>\n\n    <ng-content></ng-content>\n\n</div>\n" }]
        }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }, { type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }, { type: i1.DynamicFormComponentService }, { type: i1.DynamicFormRelationService }]; }, propDecorators: { contentTemplateList: [{
                type: ContentChildren,
                args: [DynamicTemplateDirective]
            }], klass: [{
                type: HostBinding,
                args: ["class"]
            }], asBootstrapFormGroup: [{
                type: Input
            }], context: [{
                type: Input
            }], group: [{
                type: Input
            }], hostClass: [{
                type: Input
            }], inputTemplateList: [{
                type: Input,
                args: ["templates"]
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], focus: [{
                type: Output
            }], customEvent: [{
                type: Output,
                args: ["bsEvent"]
            }], componentViewContainerRef: [{
                type: ViewChild,
                args: ["componentViewContainer", { read: ViewContainerRef, static: true }]
            }] } });
function bootstrapUIFormControlMapFn(model) {
    switch (model.type) {
        case DYNAMIC_FORM_CONTROL_TYPE_ARRAY:
            return DynamicBootstrapFormArrayComponent;
        case DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX:
            return DynamicBootstrapCheckboxComponent;
        case DYNAMIC_FORM_CONTROL_TYPE_CHECKBOX_GROUP:
            return DynamicBootstrapFormGroupComponent;
        case DYNAMIC_FORM_CONTROL_TYPE_DATEPICKER:
            return DynamicBootstrapDatePickerComponent;
        case DYNAMIC_FORM_CONTROL_TYPE_GROUP:
            return DynamicBootstrapFormGroupComponent;
        case DYNAMIC_FORM_CONTROL_TYPE_INPUT:
            return DynamicBootstrapInputComponent;
        case DYNAMIC_FORM_CONTROL_TYPE_RADIO_GROUP:
            return DynamicBootstrapRadioGroupComponent;
        case DYNAMIC_FORM_CONTROL_TYPE_RATING:
            return DynamicBootstrapRatingComponent;
        case DYNAMIC_FORM_CONTROL_TYPE_SELECT:
            return DynamicBootstrapSelectComponent;
        case DYNAMIC_FORM_CONTROL_TYPE_TEXTAREA:
            return DynamicBootstrapTextAreaComponent;
        case DYNAMIC_FORM_CONTROL_TYPE_TIMEPICKER:
            return DynamicBootstrapTimePickerComponent;
        default:
            return null;
    }
}
class DynamicBootstrapFormArrayComponent extends DynamicFormArrayComponent {
    constructor(layoutService, validationService) {
        super(layoutService, validationService);
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.customEvent = new EventEmitter();
        this.focus = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapFormArrayComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapFormArrayComponent, isStandalone: true, selector: "dynamic-bootstrap-form-array", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model", templates: "templates" }, outputs: { blur: "blur", change: "change", customEvent: "customEvent", focus: "focus" }, viewQueries: [{ propertyName: "components", predicate: DynamicBootstrapFormControlContainerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"group\">\n\n    <div [formArrayName]=\"model.id\" [id]=\"id\" [ngClass]=\"getClass('element', 'control')\">\n\n        <div *ngFor=\"let groupModel of model.groups; let idx = index\" role=\"group\"\n             [formGroupName]=\"idx\" [ngClass]=\"[getClass('element', 'group'), getClass('grid', 'group')]\">\n\n            <ng-container *ngTemplateOutlet=\"startTemplate?.templateRef; context: groupModel\"></ng-container>\n\n            <dynamic-bootstrap-form-control *ngFor=\"let _model of groupModel.group\"\n                                            [context]=\"groupModel\"\n                                            [group]=\"array.at(idx)\"\n                                            [hidden]=\"_model.hidden\"\n                                            [layout]=\"formLayout\"\n                                            [model]=\"_model\"\n                                            [templates]=\"templates\"\n                                            [hostClass]=\"[getClass('element','children'), getClass('grid','children')]\"\n                                            (blur)=\"onBlur($event)\"\n                                            (change)=\"onChange($event)\"\n                                            (focus)=\"onFocus($event)\"\n                                            (bsEvent)=\"onCustomEvent($event, null, true)\"></dynamic-bootstrap-form-control>\n\n            <ng-container *ngTemplateOutlet=\"endTemplate?.templateRef; context: groupModel\"></ng-container>\n\n        </div>\n\n    </div>\n\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DynamicBootstrapFormControlContainerComponent, selector: "dynamic-bootstrap-form-control", inputs: ["asBootstrapFormGroup", "context", "group", "hostClass", "templates", "layout", "model"], outputs: ["blur", "change", "focus", "bsEvent"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapFormArrayComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-form-array", standalone: true, imports: [ReactiveFormsModule, NgClass, NgFor, NgTemplateOutlet, DynamicBootstrapFormControlContainerComponent], template: "<ng-container [formGroup]=\"group\">\n\n    <div [formArrayName]=\"model.id\" [id]=\"id\" [ngClass]=\"getClass('element', 'control')\">\n\n        <div *ngFor=\"let groupModel of model.groups; let idx = index\" role=\"group\"\n             [formGroupName]=\"idx\" [ngClass]=\"[getClass('element', 'group'), getClass('grid', 'group')]\">\n\n            <ng-container *ngTemplateOutlet=\"startTemplate?.templateRef; context: groupModel\"></ng-container>\n\n            <dynamic-bootstrap-form-control *ngFor=\"let _model of groupModel.group\"\n                                            [context]=\"groupModel\"\n                                            [group]=\"array.at(idx)\"\n                                            [hidden]=\"_model.hidden\"\n                                            [layout]=\"formLayout\"\n                                            [model]=\"_model\"\n                                            [templates]=\"templates\"\n                                            [hostClass]=\"[getClass('element','children'), getClass('grid','children')]\"\n                                            (blur)=\"onBlur($event)\"\n                                            (change)=\"onChange($event)\"\n                                            (focus)=\"onFocus($event)\"\n                                            (bsEvent)=\"onCustomEvent($event, null, true)\"></dynamic-bootstrap-form-control>\n\n            <ng-container *ngTemplateOutlet=\"endTemplate?.templateRef; context: groupModel\"></ng-container>\n\n        </div>\n\n    </div>\n\n</ng-container>\n" }]
        }], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
                type: Input
            }], group: [{
                type: Input
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], templates: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], customEvent: [{
                type: Output
            }], focus: [{
                type: Output
            }], components: [{
                type: ViewChildren,
                args: [DynamicBootstrapFormControlContainerComponent]
            }] } });
class DynamicBootstrapFormGroupComponent extends DynamicFormGroupComponent {
    constructor(layoutService, validationService) {
        super(layoutService, validationService);
        this.layoutService = layoutService;
        this.validationService = validationService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.customEvent = new EventEmitter();
        this.focus = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapFormGroupComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapFormGroupComponent, isStandalone: true, selector: "dynamic-bootstrap-form-group", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model", templates: "templates" }, outputs: { blur: "blur", change: "change", customEvent: "customEvent", focus: "focus" }, viewQueries: [{ propertyName: "components", predicate: DynamicBootstrapFormControlContainerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"group\">\n\n    <fieldset [formGroupName]=\"model.id\"\n              [id]=\"id\"\n              [name]=\"model.name\"\n              [ngClass]=\"getClass('element', 'control')\">\n\n        <legend *ngIf=\"model.legend\" [innerHTML]=\"model.legend\"></legend>\n\n        <dynamic-bootstrap-form-control *ngFor=\"let _model of model.group\"\n                                        [asBootstrapFormGroup]=\"false\"\n                                        [group]=\"control\"\n                                        [hidden]=\"_model.hidden\"\n                                        [layout]=\"formLayout\"\n                                        [model]=\"_model\"\n                                        [templates]=\"templates\"\n                                        [hostClass]=\"[getClass('element','children'), getClass('grid','children')]\"\n                                        (blur)=\"onBlur($event)\"\n                                        (change)=\"onChange($event)\"\n                                        (focus)=\"onFocus($event)\"\n                                        (bsEvent)=\"onCustomEvent($event, null, true)\"></dynamic-bootstrap-form-control>\n    </fieldset>\n\n</ng-container>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: DynamicBootstrapFormControlContainerComponent, selector: "dynamic-bootstrap-form-control", inputs: ["asBootstrapFormGroup", "context", "group", "hostClass", "templates", "layout", "model"], outputs: ["blur", "change", "focus", "bsEvent"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapFormGroupComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-form-group", standalone: true, imports: [ReactiveFormsModule, NgClass, NgIf, NgFor, DynamicBootstrapFormControlContainerComponent], template: "<ng-container [formGroup]=\"group\">\n\n    <fieldset [formGroupName]=\"model.id\"\n              [id]=\"id\"\n              [name]=\"model.name\"\n              [ngClass]=\"getClass('element', 'control')\">\n\n        <legend *ngIf=\"model.legend\" [innerHTML]=\"model.legend\"></legend>\n\n        <dynamic-bootstrap-form-control *ngFor=\"let _model of model.group\"\n                                        [asBootstrapFormGroup]=\"false\"\n                                        [group]=\"control\"\n                                        [hidden]=\"_model.hidden\"\n                                        [layout]=\"formLayout\"\n                                        [model]=\"_model\"\n                                        [templates]=\"templates\"\n                                        [hostClass]=\"[getClass('element','children'), getClass('grid','children')]\"\n                                        (blur)=\"onBlur($event)\"\n                                        (change)=\"onChange($event)\"\n                                        (focus)=\"onFocus($event)\"\n                                        (bsEvent)=\"onCustomEvent($event, null, true)\"></dynamic-bootstrap-form-control>\n    </fieldset>\n\n</ng-container>\n" }]
        }], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
                type: Input
            }], group: [{
                type: Input
            }], layout: [{
                type: Input
            }], model: [{
                type: Input
            }], templates: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], customEvent: [{
                type: Output
            }], focus: [{
                type: Output
            }], components: [{
                type: ViewChildren,
                args: [DynamicBootstrapFormControlContainerComponent]
            }] } });

class DynamicBootstrapFormComponent extends DynamicFormComponent {
    constructor(changeDetectorRef, componentService) {
        super(changeDetectorRef, componentService);
        this.changeDetectorRef = changeDetectorRef;
        this.componentService = componentService;
        this.blur = new EventEmitter();
        this.change = new EventEmitter();
        this.focus = new EventEmitter();
        this.bsEvent = new EventEmitter();
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DynamicFormComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapFormComponent, isStandalone: true, selector: "dynamic-bootstrap-form", inputs: { group: "group", model: "model", layout: "layout" }, outputs: { blur: "blur", change: "change", focus: "focus", bsEvent: "bsEvent" }, queries: [{ propertyName: "templates", predicate: DynamicTemplateDirective }], viewQueries: [{ propertyName: "components", predicate: DynamicBootstrapFormControlContainerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<dynamic-bootstrap-form-control *ngFor=\"let controlModel of model; trackBy: trackByFn\"\n                                [group]=\"group\"\n                                [hidden]=\"controlModel.hidden\"\n                                [layout]=\"layout\"\n                                [model]=\"controlModel\"\n                                [templates]=\"templates\"\n                                (blur)=\"onBlur($event)\"\n                                (change)=\"onChange($event)\"\n                                (focus)=\"onFocus($event)\"\n                                (bsEvent)=\"onCustomEvent($event, bsEvent)\"></dynamic-bootstrap-form-control>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: DynamicBootstrapFormControlContainerComponent, selector: "dynamic-bootstrap-form-control", inputs: ["asBootstrapFormGroup", "context", "group", "hostClass", "templates", "layout", "model"], outputs: ["blur", "change", "focus", "bsEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapFormComponent, decorators: [{
            type: Component,
            args: [{ selector: "dynamic-bootstrap-form", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, DynamicBootstrapFormControlContainerComponent], template: "<dynamic-bootstrap-form-control *ngFor=\"let controlModel of model; trackBy: trackByFn\"\n                                [group]=\"group\"\n                                [hidden]=\"controlModel.hidden\"\n                                [layout]=\"layout\"\n                                [model]=\"controlModel\"\n                                [templates]=\"templates\"\n                                (blur)=\"onBlur($event)\"\n                                (change)=\"onChange($event)\"\n                                (focus)=\"onFocus($event)\"\n                                (bsEvent)=\"onCustomEvent($event, bsEvent)\"></dynamic-bootstrap-form-control>\n" }]
        }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DynamicFormComponentService }]; }, propDecorators: { group: [{
                type: Input
            }], model: [{
                type: Input
            }], layout: [{
                type: Input
            }], blur: [{
                type: Output
            }], change: [{
                type: Output
            }], focus: [{
                type: Output
            }], bsEvent: [{
                type: Output
            }], templates: [{
                type: ContentChildren,
                args: [DynamicTemplateDirective]
            }], components: [{
                type: ViewChildren,
                args: [DynamicBootstrapFormControlContainerComponent]
            }] } });

/**
 * Generated bundle index. Do not edit.
 */

export { DynamicBootstrapCheckboxComponent, DynamicBootstrapDatePickerComponent, DynamicBootstrapFormArrayComponent, DynamicBootstrapFormComponent, DynamicBootstrapFormControlContainerComponent, DynamicBootstrapFormGroupComponent, DynamicBootstrapInputComponent, DynamicBootstrapRadioGroupComponent, DynamicBootstrapRatingComponent, DynamicBootstrapSelectComponent, DynamicBootstrapTextAreaComponent, DynamicBootstrapTimePickerComponent, bootstrapUIFormControlMapFn };
//# sourceMappingURL=ui-bootstrap.mjs.map