import * as i0 from '@angular/core';
import { viewChild, model, input, output, computed, inject, Component, Pipe, ChangeDetectionStrategy, Directive, NgModule } from '@angular/core';
import * as i1$2 from '@angular/forms';
import { FormGroup, ReactiveFormsModule, FormsModule } from '@angular/forms';
import * as i1$1 from '@ngx-formly/core';
import { FormlyForm, FieldType, FormlyModule, FieldArrayType, FieldWrapper, FormlyConfig, FORMLY_CONFIG, FormlyFormBuilder } from '@ngx-formly/core';
import { FormlyJsonschema } from '@ngx-formly/core/json-schema';
import * as i1 from '@angular/common';
import { CommonModule } from '@angular/common';
import * as i4 from '@siemens/element-ng/form';
import { SiFormContainerComponent, SiFormFieldsetComponent, SI_FORM_ITEM_CONTROL, SiFormItemComponent, SiFormModule } from '@siemens/element-ng/form';
import { FormlyBootstrapModule } from '@ngx-formly/bootstrap';
import { FormlyFieldMultiCheckbox } from '@ngx-formly/bootstrap/multicheckbox';
import { FormlyFieldRadio } from '@ngx-formly/bootstrap/radio';
import { SiTranslatePipe, injectSiTranslateService } from '@siemens/element-translate-ng/translate';
import { SiDateRangeComponent, SiCalendarButtonComponent, SiDatepickerDirective, SiTimepickerComponent } from '@siemens/element-ng/datepicker';
import { SiIp4InputDirective, SiIp6InputDirective } from '@siemens/element-ng/ip-input';
import { SiNumberInputComponent } from '@siemens/element-ng/number-input';
import { SiPasswordStrengthComponent, SiPasswordStrengthDirective } from '@siemens/element-ng/password-strength';
import { SiSelectComponent, SiSelectSimpleOptionsDirective, SiSelectMultiValueDirective, SiSelectSingleValueDirective } from '@siemens/element-ng/select';
import { SiCollapsiblePanelComponent, SiAccordionComponent } from '@siemens/element-ng/accordion';
import { SiTabsetComponent, SiTabComponent } from '@siemens/element-ng/tabs';
import { SiIconComponent } from '@siemens/element-ng/icon';
import { SiTooltipDirective } from '@siemens/element-ng/tooltip';

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyComponent {
    /**
     * Formly main container to provide modelChange subscriptions.
     */
    formlyForm = viewChild(FormlyForm, ...(ngDevMode ? [{ debugName: "formlyForm" }] : []));
    form = model(...(ngDevMode ? [undefined, { debugName: "form" }] : []));
    /**
     * Mapping of field name and its value.
     *
     * @defaultValue
     * ```
     * {}
     * ```
     */
    model = model({}, ...(ngDevMode ? [{ debugName: "model" }] : []));
    /**
     * Define FormlyFormOptions.
     *
     * @defaultValue
     * ```
     * {}
     * ```
     */
    options = input({}, ...(ngDevMode ? [{ debugName: "options" }] : []));
    /**
     * JSONSchema7 can be used instead of FormlyFieldConfig array for defining form fields.
     * */
    schema = model(...(ngDevMode ? [undefined, { debugName: "schema" }] : []));
    /**
     * Define all form fields with FormlyFieldConfig array.
     *
     * @defaultValue []
     */
    // eslint-disable-next-line @angular-eslint/prefer-signal-model
    fields = input([], ...(ngDevMode ? [{ debugName: "fields" }] : []));
    fieldsChange = output();
    /** Define width for field labels in pixel */
    labelWidth = input(...(ngDevMode ? [undefined, { debugName: "labelWidth" }] : []));
    fieldConfig = computed(() => {
        let formlyFieldConfig;
        const schema = this.schema();
        const labelWidth = this.labelWidth();
        const opts = {
            map: (field, s) => {
                if (labelWidth) {
                    field.props ??= {};
                    field.props.labelWidth = labelWidth;
                }
                return field;
            }
        };
        if (schema) {
            formlyFieldConfig = [this.formlyJsonschema.toFieldConfig(schema, opts)];
        }
        else {
            formlyFieldConfig = this.fields();
        }
        if (formlyFieldConfig && formlyFieldConfig.length > 0) {
            this.applyLabelWidth(formlyFieldConfig);
        }
        this.fieldsChange.emit(formlyFieldConfig);
        return formlyFieldConfig;
    }, ...(ngDevMode ? [{ debugName: "fieldConfig" }] : []));
    ownForm = false;
    formlyJsonschema = inject(FormlyJsonschema);
    ngOnInit() {
        if (!this.form()) {
            this.ownForm = true;
            this.form.set(new FormGroup({}));
        }
    }
    applyLabelWidth(formlyFieldConfig) {
        const apply = (cfg) => {
            cfg.forEach(field => {
                field.props ??= {};
                field.props.labelWidth = this.labelWidth();
                if (Array.isArray(field.fieldGroup)) {
                    apply(field.fieldGroup);
                }
                if (typeof field.fieldArray !== 'function') {
                    if (Array.isArray(field.fieldArray?.fieldGroup)) {
                        apply(field.fieldArray.fieldGroup);
                    }
                }
            });
        };
        apply(formlyFieldConfig);
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyComponent, isStandalone: false, selector: "si-formly", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, schema: { classPropertyName: "schema", publicName: "schema", isSignal: true, isRequired: false, transformFunction: null }, fields: { classPropertyName: "fields", publicName: "fields", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { form: "formChange", model: "modelChange", schema: "schemaChange", fieldsChange: "fieldsChange" }, viewQueries: [{ propertyName: "formlyForm", first: true, predicate: FormlyForm, descendants: true, isSignal: true }], ngImport: i0, template: "@let formlyForm = form();\n@let formlyFieldConfig = fieldConfig();\n@let formlyFormOptions = options();\n@if (formlyForm && formlyFieldConfig) {\n  @if (ownForm) {\n    <form [formGroup]=\"formlyForm\">\n      <si-form-container [form]=\"formlyForm\">\n        <div si-form-container-content>\n          <ng-container *ngTemplateOutlet=\"formlytmpl\" />\n        </div>\n      </si-form-container>\n    </form>\n  } @else {\n    <ng-container *ngTemplateOutlet=\"formlytmpl\" />\n  }\n\n  <ng-template #formlytmpl>\n    <formly-form\n      [fields]=\"formlyFieldConfig\"\n      [options]=\"formlyFormOptions\"\n      [form]=\"formlyForm\"\n      [(model)]=\"model\"\n    />\n  </ng-template>\n}\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$1.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.SiFormContainerComponent, selector: "si-form-container", inputs: ["form", "readonly", "contentContainerBreakpoints", "disableContainerBreakpoints", "errorCodeTranslateKeyMap", "controlNameTranslateKeyMap", "disableErrorPrinting", "labelWidth"] }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly', standalone: false, template: "@let formlyForm = form();\n@let formlyFieldConfig = fieldConfig();\n@let formlyFormOptions = options();\n@if (formlyForm && formlyFieldConfig) {\n  @if (ownForm) {\n    <form [formGroup]=\"formlyForm\">\n      <si-form-container [form]=\"formlyForm\">\n        <div si-form-container-content>\n          <ng-container *ngTemplateOutlet=\"formlytmpl\" />\n        </div>\n      </si-form-container>\n    </form>\n  } @else {\n    <ng-container *ngTemplateOutlet=\"formlytmpl\" />\n  }\n\n  <ng-template #formlytmpl>\n    <formly-form\n      [fields]=\"formlyFieldConfig\"\n      [options]=\"formlyFormOptions\"\n      [form]=\"formlyForm\"\n      [(model)]=\"model\"\n    />\n  </ng-template>\n}\n" }]
        }], propDecorators: { formlyForm: [{ type: i0.ViewChild, args: [i0.forwardRef(() => FormlyForm), { isSignal: true }] }], form: [{ type: i0.Input, args: [{ isSignal: true, alias: "form", required: false }] }, { type: i0.Output, args: ["formChange"] }], model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: false }] }, { type: i0.Output, args: ["modelChange"] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], schema: [{ type: i0.Input, args: [{ isSignal: true, alias: "schema", required: false }] }, { type: i0.Output, args: ["schemaChange"] }], fields: [{ type: i0.Input, args: [{ isSignal: true, alias: "fields", required: false }] }], fieldsChange: [{ type: i0.Output, args: ["fieldsChange"] }], labelWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelWidth", required: false }] }] } });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyButtonComponent extends FieldType {
    click() {
        const listener = this.props.clickListener;
        let args = this.props.clickArgs ?? [];
        if (args && !Array.isArray(args)) {
            args = [args];
        }
        if (!listener) {
            return;
        }
        if (typeof listener === 'string') {
            try {
                /* eslint-disable */
                const getFn = Function('formState', 'model', 'field', `return ${listener};`);
                const fn = getFn.apply(this, [this.formState, this.model, this.field]);
                if (typeof fn === 'function') {
                    fn.apply(this, args);
                }
                else {
                    console.warn(`The dyn ui button ${this.key} has no valid click listener`);
                }
            }
            catch (error) {
                console.warn(`Error while executing dyn ui button "${this.key}" click listener.`, error);
            }
            /* eslint-enable */
            return;
        }
        if (typeof listener === 'function') {
            try {
                listener.apply(this, args);
            }
            catch (error) {
                console.warn(`Error while executing dyn ui button "${this.key}" direct click listener.`, error);
            }
        }
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiFormlyButtonComponent, isStandalone: true, selector: "si-formly-button", usesInheritance: true, ngImport: i0, template: "<button\n  type=\"button\"\n  class=\"btn\"\n  [class]=\"{\n    'btn-secondary': !props.btnType || props.btnType === 'secondary',\n    'btn-primary': props.btnType === 'primary',\n    'btn-tertiary': props.btnType === 'tertiary',\n    'btn-warning': props.btnType === 'warning',\n    'btn-danger': props.btnType === 'danger'\n  }\"\n  [id]=\"id\"\n  [formlyAttributes]=\"field\"\n  [hidden]=\"props.hidden\"\n  (click)=\"click()\"\n  >{{ props.label | translate }}</button\n>\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyButtonComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-button', imports: [SiTranslatePipe, FormlyModule], template: "<button\n  type=\"button\"\n  class=\"btn\"\n  [class]=\"{\n    'btn-secondary': !props.btnType || props.btnType === 'secondary',\n    'btn-primary': props.btnType === 'primary',\n    'btn-tertiary': props.btnType === 'tertiary',\n    'btn-warning': props.btnType === 'warning',\n    'btn-danger': props.btnType === 'danger'\n  }\"\n  [id]=\"id\"\n  [formlyAttributes]=\"field\"\n  [hidden]=\"props.hidden\"\n  (click)=\"click()\"\n  >{{ props.label | translate }}</button\n>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
/** */
const getFieldValue = (model, path) => {
    for (const p of path) {
        if (!model) {
            return model;
        }
        model = model[p];
    }
    return model;
};
// Got this from @ngx-formly/core/lib/utils
const getKeyPath = (key) => {
    if (!key) {
        return [];
    }
    let path;
    if (typeof key === 'string') {
        const k = !key.includes('[') ? key : key.replace(/\[(\w+)\]/g, '.$1');
        path = k.includes('.') ? k.split('.') : [k];
    }
    else if (Array.isArray(key)) {
        path = key.slice(0);
    }
    else {
        path = [`${key}`];
    }
    return path.slice(0);
};
class SiValidationErrorIdPipe {
    transform(value, ...args) {
        return `${value}-formly-validation-error`;
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiValidationErrorIdPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
    static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiValidationErrorIdPipe, isStandalone: true, name: "siValidationErrorId" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiValidationErrorIdPipe, decorators: [{
            type: Pipe,
            args: [{ name: 'siValidationErrorId' }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyDateRangeComponent extends FieldType {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyDateRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiFormlyDateRangeComponent, isStandalone: true, selector: "si-formly-date-range", usesInheritance: true, ngImport: i0, template: "<si-date-range\n  #dateRange\n  [id]=\"id\"\n  [formlyAttributes]=\"field\"\n  [formControl]=\"formControl\"\n  [siDatepickerConfig]=\"props.siDatepickerConfig\"\n  [startDatePlaceholder]=\"props.startDatePlaceholder ?? dateRange.startDatePlaceholder()\"\n  [endDatePlaceholder]=\"props.endDatePlaceholder ?? dateRange.endDatePlaceholder()\"\n  [ariaLabelCalendarButton]=\"props.ariaLabelCalendarButton ?? dateRange.ariaLabelCalendarButton()\"\n  [startTimeLabel]=\"props.startTimeLabel ?? dateRange.startTimeLabel()\"\n  [endTimeLabel]=\"props.endTimeLabel ?? dateRange.endTimeLabel()\"\n  [required]=\"props.required ?? false\"\n  [readonly]=\"props.readonly ?? dateRange.readonly()\"\n  [autoClose]=\"props.autoClose ?? dateRange.autoClose()\"\n  [errormessageId]=\"id | siValidationErrorId\"\n/>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: SiDateRangeComponent, selector: "si-date-range", inputs: ["id", "siDatepickerConfig", "startDatePlaceholder", "endDatePlaceholder", "ariaLabelCalendarButton", "startTimeLabel", "endTimeLabel", "autoClose", "disabled", "readonly", "value", "errormessageId"], outputs: ["siDatepickerConfigChange", "siDatepickerRangeChange", "disabledTimeChange", "valueChange"] }, { kind: "pipe", type: SiValidationErrorIdPipe, name: "siValidationErrorId" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyDateRangeComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-date-range', imports: [ReactiveFormsModule, FormlyModule, SiDateRangeComponent, SiValidationErrorIdPipe], template: "<si-date-range\n  #dateRange\n  [id]=\"id\"\n  [formlyAttributes]=\"field\"\n  [formControl]=\"formControl\"\n  [siDatepickerConfig]=\"props.siDatepickerConfig\"\n  [startDatePlaceholder]=\"props.startDatePlaceholder ?? dateRange.startDatePlaceholder()\"\n  [endDatePlaceholder]=\"props.endDatePlaceholder ?? dateRange.endDatePlaceholder()\"\n  [ariaLabelCalendarButton]=\"props.ariaLabelCalendarButton ?? dateRange.ariaLabelCalendarButton()\"\n  [startTimeLabel]=\"props.startTimeLabel ?? dateRange.startTimeLabel()\"\n  [endTimeLabel]=\"props.endTimeLabel ?? dateRange.endTimeLabel()\"\n  [required]=\"props.required ?? false\"\n  [readonly]=\"props.readonly ?? dateRange.readonly()\"\n  [autoClose]=\"props.autoClose ?? dateRange.autoClose()\"\n  [errormessageId]=\"id | siValidationErrorId\"\n/>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyDateTimeComponent extends FieldType {
    ngOnInit() {
        // if the date value is in string then first convert it into date
        this.convertValidStringToDate();
        this.formControl.registerOnChange(() => this.convertValidStringToDate());
    }
    convertValidStringToDate() {
        if (this.formControl && !(this.formControl.value && this.formControl.value instanceof Date)) {
            const dateVal = new Date(this.formControl.value);
            if (!isNaN(dateVal.valueOf())) {
                this.formControl.setValue(dateVal);
            }
            else if (this.formControl.value !== '') {
                this.formControl.setValue('');
            }
        }
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiFormlyDateTimeComponent, isStandalone: true, selector: "si-formly-datetime", usesInheritance: true, ngImport: i0, template: "<si-calendar-button class=\"w-100\">\n  <input\n    type=\"text\"\n    class=\"form-control\"\n    siDatepicker\n    [id]=\"id\"\n    [autoClose]=\"props.autoClose\"\n    [placeholder]=\"props.placeholder\"\n    [formControl]=\"formControl\"\n    [siDatepickerConfig]=\"props.dateConfig\"\n    [readonly]=\"props.readonly || false\"\n    [errormessageId]=\"id | siValidationErrorId\"\n  />\n</si-calendar-button>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: SiCalendarButtonComponent, selector: "si-calendar-button", inputs: ["ariaLabel"] }, { kind: "directive", type: SiDatepickerDirective, selector: "[siDatepicker]", inputs: ["autoClose"], exportAs: ["siDatepicker"] }, { kind: "pipe", type: SiValidationErrorIdPipe, name: "siValidationErrorId" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyDateTimeComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-datetime', imports: [
                        FormsModule,
                        ReactiveFormsModule,
                        SiCalendarButtonComponent,
                        SiDatepickerDirective,
                        SiValidationErrorIdPipe
                    ], template: "<si-calendar-button class=\"w-100\">\n  <input\n    type=\"text\"\n    class=\"form-control\"\n    siDatepicker\n    [id]=\"id\"\n    [autoClose]=\"props.autoClose\"\n    [placeholder]=\"props.placeholder\"\n    [formControl]=\"formControl\"\n    [siDatepickerConfig]=\"props.dateConfig\"\n    [readonly]=\"props.readonly || false\"\n    [errormessageId]=\"id | siValidationErrorId\"\n  />\n</si-calendar-button>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyEmailComponent extends FieldType {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiFormlyEmailComponent, isStandalone: true, selector: "si-formly-email", usesInheritance: true, ngImport: i0, template: "<input\n  type=\"email\"\n  class=\"form-control\"\n  [id]=\"id\"\n  [formControl]=\"formControl\"\n  [formlyAttributes]=\"field\"\n  [attr.aria-describedby]=\"id | siValidationErrorId\"\n/>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: SiValidationErrorIdPipe, name: "siValidationErrorId" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyEmailComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-email', imports: [FormsModule, ReactiveFormsModule, FormlyModule, SiValidationErrorIdPipe], template: "<input\n  type=\"email\"\n  class=\"form-control\"\n  [id]=\"id\"\n  [formControl]=\"formControl\"\n  [formlyAttributes]=\"field\"\n  [attr.aria-describedby]=\"id | siValidationErrorId\"\n/>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyIpInputComponent extends FieldType {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyIpInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyIpInputComponent, isStandalone: true, selector: "si-formly-ip-address", usesInheritance: true, ngImport: i0, template: "@if (field.type === 'ipv6') {\n  <input\n    type=\"text\"\n    class=\"form-control\"\n    siIpV6\n    [cidr]=\"props.cidr\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [id]=\"id\"\n    [attr.aria-describedby]=\"id | siValidationErrorId\"\n  />\n} @else {\n  <input\n    type=\"text\"\n    class=\"form-control\"\n    siIpV4\n    [cidr]=\"props.cidr\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [id]=\"id\"\n    [attr.aria-describedby]=\"id | siValidationErrorId\"\n  />\n}\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "directive", type: SiIp4InputDirective, selector: "input[siIpV4]", exportAs: ["siIpV4"] }, { kind: "directive", type: SiIp6InputDirective, selector: "input[siIpV6]", exportAs: ["siIpV6"] }, { kind: "pipe", type: SiValidationErrorIdPipe, name: "siValidationErrorId" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyIpInputComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-ip-address', imports: [
                        ReactiveFormsModule,
                        FormlyModule,
                        SiIp4InputDirective,
                        SiIp6InputDirective,
                        SiValidationErrorIdPipe
                    ], template: "@if (field.type === 'ipv6') {\n  <input\n    type=\"text\"\n    class=\"form-control\"\n    siIpV6\n    [cidr]=\"props.cidr\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [id]=\"id\"\n    [attr.aria-describedby]=\"id | siValidationErrorId\"\n  />\n} @else {\n  <input\n    type=\"text\"\n    class=\"form-control\"\n    siIpV4\n    [cidr]=\"props.cidr\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [id]=\"id\"\n    [attr.aria-describedby]=\"id | siValidationErrorId\"\n  />\n}\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyNumberComponent extends FieldType {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiFormlyNumberComponent, isStandalone: true, selector: "si-formly-number", usesInheritance: true, ngImport: i0, template: "<si-number-input\n  class=\"form-control\"\n  [inputId]=\"id\"\n  [formControl]=\"formControl\"\n  [formlyAttributes]=\"field\"\n  [min]=\"props.min\"\n  [max]=\"props.max\"\n  [placeholder]=\"props.placeholder\"\n  [showButtons]=\"props.showButtons ?? true\"\n  [step]=\"props.numberStep ?? 1\"\n  [unit]=\"props.unit\"\n  [errormessageId]=\"id | siValidationErrorId\"\n/>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: SiNumberInputComponent, selector: "si-number-input", inputs: ["min", "max", "step", "value", "unit", "showButtons", "aria-label", "inputId", "disabled", "readonly", "placeholder", "errormessageId"], outputs: ["valueChange"] }, { kind: "pipe", type: SiValidationErrorIdPipe, name: "siValidationErrorId" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyNumberComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-number', imports: [ReactiveFormsModule, FormlyModule, SiNumberInputComponent, SiValidationErrorIdPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<si-number-input\n  class=\"form-control\"\n  [inputId]=\"id\"\n  [formControl]=\"formControl\"\n  [formlyAttributes]=\"field\"\n  [min]=\"props.min\"\n  [max]=\"props.max\"\n  [placeholder]=\"props.placeholder\"\n  [showButtons]=\"props.showButtons ?? true\"\n  [step]=\"props.numberStep ?? 1\"\n  [unit]=\"props.unit\"\n  [errormessageId]=\"id | siValidationErrorId\"\n/>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyPasswordComponent extends FieldType {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyPasswordComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiFormlyPasswordComponent, isStandalone: true, selector: "si-formly-password", usesInheritance: true, ngImport: i0, template: "<si-password-strength>\n  <input\n    type=\"password\"\n    name=\"password\"\n    class=\"form-control\"\n    [id]=\"id\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [siPasswordStrength]=\"{\n      minLength: props.minLength && props.minLength > 0 ? props.minLength : 8,\n      uppercase: props.upperCase !== false,\n      lowercase: props.lowerCase !== false,\n      digits: props.digits !== false,\n      special: props.special !== false\n    }\"\n    [attr.aria-describedby]=\"id | siValidationErrorId\"\n  />\n</si-password-strength>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: SiPasswordStrengthComponent, selector: "si-password-strength", inputs: ["showVisibilityIcon"] }, { kind: "directive", type: SiPasswordStrengthDirective, selector: "[siPasswordStrength]", inputs: ["siPasswordStrength"], outputs: ["passwordStrengthChanged"] }, { kind: "pipe", type: SiValidationErrorIdPipe, name: "siValidationErrorId" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyPasswordComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-password', imports: [
                        FormsModule,
                        ReactiveFormsModule,
                        FormlyModule,
                        SiPasswordStrengthComponent,
                        SiPasswordStrengthDirective,
                        SiValidationErrorIdPipe
                    ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<si-password-strength>\n  <input\n    type=\"password\"\n    name=\"password\"\n    class=\"form-control\"\n    [id]=\"id\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [siPasswordStrength]=\"{\n      minLength: props.minLength && props.minLength > 0 ? props.minLength : 8,\n      uppercase: props.upperCase !== false,\n      lowercase: props.lowerCase !== false,\n      digits: props.digits !== false,\n      special: props.special !== false\n    }\"\n    [attr.aria-describedby]=\"id | siValidationErrorId\"\n  />\n</si-password-strength>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlySelectComponent extends FieldType {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlySelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlySelectComponent, isStandalone: true, selector: "si-formly-select", usesInheritance: true, ngImport: i0, template: "@if (props.multi) {\n  <si-select\n    #select\n    class=\"form-control\"\n    multi\n    [id]=\"id\"\n    [options]=\"props.optionsList\"\n    [hasFilter]=\"props.hasFilter ?? select.hasFilter()\"\n    [filterPlaceholder]=\"props.filterPlaceholder ?? select.filterPlaceholder()\"\n    [placeholder]=\"props.placeholder ?? select.placeholder()\"\n    [ariaLabel]=\"props.ariaLabel ?? select.ariaLabel()\"\n    [noResultsFoundLabel]=\"props.noResultsFoundLabel ?? select.noResultsFoundLabel()\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [readonly]=\"props.readonly || false\"\n    [errormessageId]=\"id | siValidationErrorId\"\n  />\n} @else {\n  <si-select\n    #select\n    class=\"form-control\"\n    [id]=\"id\"\n    [options]=\"props.optionsList\"\n    [hasFilter]=\"props.hasFilter ?? select.hasFilter()\"\n    [filterPlaceholder]=\"props.filterPlaceholder ?? select.filterPlaceholder()\"\n    [placeholder]=\"props.placeholder ?? select.placeholder()\"\n    [ariaLabel]=\"props.ariaLabel ?? select.ariaLabel()\"\n    [noResultsFoundLabel]=\"props.noResultsFoundLabel ?? select.noResultsFoundLabel()\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [readonly]=\"props.readonly || false\"\n    [errormessageId]=\"id | siValidationErrorId\"\n  />\n}\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: SiSelectComponent, selector: "si-select", inputs: ["id", "ariaLabel", "labelledby", "filterPlaceholder", "noResultsFoundLabel", "placeholder", "readonly", "errormessageId", "hasFilter"], outputs: ["openChange"] }, { kind: "directive", type: SiSelectSimpleOptionsDirective, selector: "si-select[options]", inputs: ["options", "optionEqualCheckFn"] }, { kind: "directive", type: SiSelectMultiValueDirective, selector: "si-select[multi]" }, { kind: "directive", type: SiSelectSingleValueDirective, selector: "si-select:not([multi])" }, { kind: "pipe", type: SiValidationErrorIdPipe, name: "siValidationErrorId" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlySelectComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-select', imports: [
                        FormsModule,
                        ReactiveFormsModule,
                        FormlyModule,
                        SiSelectComponent,
                        SiSelectSimpleOptionsDirective,
                        SiSelectMultiValueDirective,
                        SiSelectSingleValueDirective,
                        SiValidationErrorIdPipe
                    ], template: "@if (props.multi) {\n  <si-select\n    #select\n    class=\"form-control\"\n    multi\n    [id]=\"id\"\n    [options]=\"props.optionsList\"\n    [hasFilter]=\"props.hasFilter ?? select.hasFilter()\"\n    [filterPlaceholder]=\"props.filterPlaceholder ?? select.filterPlaceholder()\"\n    [placeholder]=\"props.placeholder ?? select.placeholder()\"\n    [ariaLabel]=\"props.ariaLabel ?? select.ariaLabel()\"\n    [noResultsFoundLabel]=\"props.noResultsFoundLabel ?? select.noResultsFoundLabel()\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [readonly]=\"props.readonly || false\"\n    [errormessageId]=\"id | siValidationErrorId\"\n  />\n} @else {\n  <si-select\n    #select\n    class=\"form-control\"\n    [id]=\"id\"\n    [options]=\"props.optionsList\"\n    [hasFilter]=\"props.hasFilter ?? select.hasFilter()\"\n    [filterPlaceholder]=\"props.filterPlaceholder ?? select.filterPlaceholder()\"\n    [placeholder]=\"props.placeholder ?? select.placeholder()\"\n    [ariaLabel]=\"props.ariaLabel ?? select.ariaLabel()\"\n    [noResultsFoundLabel]=\"props.noResultsFoundLabel ?? select.noResultsFoundLabel()\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [readonly]=\"props.readonly || false\"\n    [errormessageId]=\"id | siValidationErrorId\"\n  />\n}\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyTextDisplayComponent extends FieldType {
    get value() {
        if (!this.props.key) {
            return this.formControl.value;
        }
        let sourceModel = this.model;
        if (Array.isArray(this.model)) {
            // The model is the arry itself when using this field as item into an array type...
            sourceModel = this.formControl.value;
        }
        if (this.props.key.indexOf('.') === -1) {
            // Special case for Array types:
            return sourceModel[this.props.key];
        }
        const path = getKeyPath(this.props.key);
        return getFieldValue(sourceModel, path);
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyTextDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyTextDisplayComponent, isStandalone: true, selector: "si-formly-text-display", usesInheritance: true, ngImport: i0, template: "<input type=\"hidden\" [id]=\"id\" [formControl]=\"formControl\" [formlyAttributes]=\"field\" />\n<div class=\"py-4\">\n  @if (props.prefix) {\n    {{ props.prefix | translate }}\n  }\n  {{ value }}\n  @if (props.suffix) {\n    {{ props.suffix | translate }}\n  }\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyTextDisplayComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-text-display', imports: [FormlyModule, ReactiveFormsModule, SiTranslatePipe], template: "<input type=\"hidden\" [id]=\"id\" [formControl]=\"formControl\" [formlyAttributes]=\"field\" />\n<div class=\"py-4\">\n  @if (props.prefix) {\n    {{ props.prefix | translate }}\n  }\n  {{ value }}\n  @if (props.suffix) {\n    {{ props.suffix | translate }}\n  }\n</div>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyTextareaComponent extends FieldType {
    textArea = viewChild.required('textArea');
    contentGrowTextarea() {
        return this.props.autoGrow ? `attr(data-replicated-value) ' '` : 'none';
    }
    resizeConfiguration() {
        return this.props.resizable ? 'vertical' : 'none';
    }
    maxHeightConfiguration() {
        return this.props.maxHeight ?? 'auto';
    }
    ngOnInit() {
        this.formControl.valueChanges.subscribe(() => {
            this.assignValueToParent();
        });
    }
    ngAfterViewInit() {
        this.assignValueToParent();
    }
    assignValueToParent() {
        this.model.i = (this.model.i ?? 0) + 1;
        this.textArea().nativeElement.parentNode.dataset.replicatedValue =
            this.textArea().nativeElement.value;
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyTextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.8", type: SiFormlyTextareaComponent, isStandalone: true, selector: "si-formly-textarea", viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\n  class=\"textarea-grow-wrap text-break\"\n  [style.--content-grow]=\"contentGrowTextarea()\"\n  [style.max-height]=\"maxHeightConfiguration()\"\n>\n  <textarea\n    #textArea\n    class=\"form-control\"\n    [id]=\"id\"\n    [rows]=\"props.rows ?? 1\"\n    [cols]=\"props.cols ?? 1\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [style.resize]=\"resizeConfiguration()\"\n    [style.max-height]=\"maxHeightConfiguration()\"\n    [attr.aria-describedby]=\"id | siValidationErrorId\"\n  >\n  </textarea>\n</div>\n", styles: [".textarea-grow-wrap{display:grid}.textarea-grow-wrap:after{content:var(--content-grow);white-space:pre-wrap;visibility:hidden;margin-block:3px}.textarea-grow-wrap>textarea,.textarea-grow-wrap:after{grid-area:1/1/2/2;padding-block:6px;font:inherit}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.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: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: SiValidationErrorIdPipe, name: "siValidationErrorId" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyTextareaComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-textarea', imports: [FormsModule, ReactiveFormsModule, FormlyModule, SiValidationErrorIdPipe], template: "<div\n  class=\"textarea-grow-wrap text-break\"\n  [style.--content-grow]=\"contentGrowTextarea()\"\n  [style.max-height]=\"maxHeightConfiguration()\"\n>\n  <textarea\n    #textArea\n    class=\"form-control\"\n    [id]=\"id\"\n    [rows]=\"props.rows ?? 1\"\n    [cols]=\"props.cols ?? 1\"\n    [formControl]=\"formControl\"\n    [formlyAttributes]=\"field\"\n    [style.resize]=\"resizeConfiguration()\"\n    [style.max-height]=\"maxHeightConfiguration()\"\n    [attr.aria-describedby]=\"id | siValidationErrorId\"\n  >\n  </textarea>\n</div>\n", styles: [".textarea-grow-wrap{display:grid}.textarea-grow-wrap:after{content:var(--content-grow);white-space:pre-wrap;visibility:hidden;margin-block:3px}.textarea-grow-wrap>textarea,.textarea-grow-wrap:after{grid-area:1/1/2/2;padding-block:6px;font:inherit}\n"] }]
        }], propDecorators: { textArea: [{ type: i0.ViewChild, args: ['textArea', { isSignal: true }] }] } });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyTimeComponent extends FieldType {
    ngOnInit() {
        // if the date value is in string then first convert it into date
        this.convertValidStringToDate();
        this.formControl.registerOnChange(() => this.convertValidStringToDate());
    }
    convertValidStringToDate() {
        if (this.formControl && !(this.formControl.value && this.formControl.value instanceof Date)) {
            const dateVal = new Date(this.formControl.value);
            if (!isNaN(dateVal.valueOf())) {
                this.formControl.setValue(dateVal);
            }
            else if (this.formControl.value !== '') {
                this.formControl.setValue('');
            }
        }
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiFormlyTimeComponent, isStandalone: true, selector: "si-formly-time", usesInheritance: true, ngImport: i0, template: `<si-timepicker
    [id]="id"
    [hideLabels]="props.timeConfig?.hideLabels ?? true"
    [showMinutes]="props.timeConfig?.showMinutes ?? true"
    [showSeconds]="props.timeConfig?.showSeconds ?? false"
    [showMilliseconds]="props.timeConfig?.showMilliseconds ?? false"
    [showMeridian]="props.timeConfig?.showMeridian"
    [formControl]="formControl"
    [readonly]="props.readonly || false"
    [errormessageId]="id | siValidationErrorId"
  />`, isInline: true, dependencies: [{ kind: "component", type: SiTimepickerComponent, selector: "si-timepicker", inputs: ["id", "disabled", "hoursLabel", "minutesLabel", "secondsLabel", "millisecondsLabel", "hideLabels", "hoursAriaLabel", "minutesAriaLabel", "secondsAriaLabel", "millisecondsAriaLabel", "hoursPlaceholder", "minutesPlaceholder", "secondsPlaceholder", "millisecondsPlaceholder", "meridians", "meridiansLabel", "meridiansAriaLabel", "showMinutes", "showSeconds", "showMilliseconds", "showMeridian", "min", "max", "readonly", "errormessageId"], outputs: ["isValid", "meridianChange", "inputCompleted"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: SiValidationErrorIdPipe, name: "siValidationErrorId" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyTimeComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'si-formly-time',
                    imports: [SiTimepickerComponent, ReactiveFormsModule, SiValidationErrorIdPipe],
                    template: `<si-timepicker
    [id]="id"
    [hideLabels]="props.timeConfig?.hideLabels ?? true"
    [showMinutes]="props.timeConfig?.showMinutes ?? true"
    [showSeconds]="props.timeConfig?.showSeconds ?? false"
    [showMilliseconds]="props.timeConfig?.showMilliseconds ?? false"
    [showMeridian]="props.timeConfig?.showMeridian"
    [formControl]="formControl"
    [readonly]="props.readonly || false"
    [errormessageId]="id | siValidationErrorId"
  />`
                }]
        }] });

class SiFormlyTranslateExtension {
    translate = injectSiTranslateService();
    prePopulate(field) {
        const to = field.props ?? {};
        if (to.translate === false || to._translated) {
            return;
        }
        field.expressions ??= {};
        to._translated = true;
        if (to.label) {
            field.expressions['props.label'] = this.translate.translateAsync(to.label);
        }
        if (to.options) {
            // e.g. a select
            let i = -1;
            to.options.forEach((val) => {
                i++;
                if (field.expressions) {
                    field.expressions[`props.options.${i}.label`] = this.translate.translateAsync(val.label);
                }
            });
        }
        if (to.placeholder) {
            field.expressions['props.placeholder'] = this.translate.translateAsync(to.placeholder);
        }
        if (to.description) {
            field.expressions['props.description'] = this.translate.translateAsync(to.description);
        }
        if (field.validation?.messages) {
            const msgs = field.validation.messages;
            for (const msg in msgs) {
                if (typeof msgs[msg] === 'string') {
                    // This unfortunately blocks any opportunity to create context specific messages
                    // Specific messages could be done via the "map" function when the schema itself is parsed
                    field.expressions[`validation.messages.${msg}`] = this.translate.translateAsync(msgs[msg] + '');
                }
            }
        }
        // Trigger a change
        field.expressions = { ...(field.expressions ?? {}) };
    }
}

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyAccordionComponent extends FieldType {
    panelToggle(toggle, fieldGroup) {
        if (this.field.fieldGroup) {
            const openPanelField = this.field.fieldGroup?.find(f => f.props?.opened);
            if (openPanelField?.props) {
                openPanelField.props.opened = false;
            }
        }
        if (fieldGroup.props) {
            fieldGroup.props.opened = toggle;
        }
    }
    ngAfterViewInit() {
        if (this.props?.expandFirstPanel !== false) {
            if (this.field.fieldGroup?.[0].props) {
                this.field.fieldGroup[0].props.opened = true;
            }
        }
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyAccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyAccordionComponent, isStandalone: true, selector: "si-formly-accordion", usesInheritance: true, ngImport: i0, template: "<si-accordion\n  #accordion\n  [expandFirstPanel]=\"props.expandFirstPanel ?? accordion.expandFirstPanel()\"\n  [fullHeight]=\"props.fullHeight ?? accordion.fullHeight()\"\n  [hcollapsed]=\"props.hcollapsed ?? accordion.collapsed()\"\n>\n  @for (f of field.fieldGroup; track $index) {\n    <si-collapsible-panel\n      #panel\n      [heading]=\"f.props?.label\"\n      [contentCssClasses]=\"f.props?.cssClasses ?? 'p-5'\"\n      [headerCssClasses]=\"f.props?.headerCssClasses ?? panel.headerCssClasses()\"\n      [contentBgClasses]=\"f.props?.contentBgClasses ?? panel.contentBgClasses()\"\n      [badge]=\"f.props?.badge ?? panel.badge()\"\n      [badgeColor]=\"f.props?.badgeColor ?? panel.badgeColor()\"\n      [icon]=\"f.props?.icon ?? panel.icon()\"\n      [opened]=\"f.props?.opened ?? panel.opened()\"\n      [disabled]=\"f.props?.disabled ?? panel.disabled()\"\n      [colorVariant]=\"f.props?.colorVariant ?? panel.colorVariant()\"\n      (panelToggle)=\"panelToggle($event, f)\"\n    >\n      <formly-field [field]=\"f\" [formlyAttributes]=\"field\" />\n    </si-collapsible-panel>\n  }\n</si-accordion>\n", dependencies: [{ kind: "component", type: SiCollapsiblePanelComponent, selector: "si-collapsible-panel", inputs: ["heading", "headerCssClasses", "contentBgClasses", "contentCssClasses", "opened", "icon", "disabled", "colorVariant", "badge", "badgeColor"], outputs: ["openedChange", "panelToggle"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: SiAccordionComponent, selector: "si-accordion", inputs: ["expandFirstPanel", "fullHeight", "hcollapsed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyAccordionComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-accordion', imports: [SiCollapsiblePanelComponent, FormlyModule, SiAccordionComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<si-accordion\n  #accordion\n  [expandFirstPanel]=\"props.expandFirstPanel ?? accordion.expandFirstPanel()\"\n  [fullHeight]=\"props.fullHeight ?? accordion.fullHeight()\"\n  [hcollapsed]=\"props.hcollapsed ?? accordion.collapsed()\"\n>\n  @for (f of field.fieldGroup; track $index) {\n    <si-collapsible-panel\n      #panel\n      [heading]=\"f.props?.label\"\n      [contentCssClasses]=\"f.props?.cssClasses ?? 'p-5'\"\n      [headerCssClasses]=\"f.props?.headerCssClasses ?? panel.headerCssClasses()\"\n      [contentBgClasses]=\"f.props?.contentBgClasses ?? panel.contentBgClasses()\"\n      [badge]=\"f.props?.badge ?? panel.badge()\"\n      [badgeColor]=\"f.props?.badgeColor ?? panel.badgeColor()\"\n      [icon]=\"f.props?.icon ?? panel.icon()\"\n      [opened]=\"f.props?.opened ?? panel.opened()\"\n      [disabled]=\"f.props?.disabled ?? panel.disabled()\"\n      [colorVariant]=\"f.props?.colorVariant ?? panel.colorVariant()\"\n      (panelToggle)=\"panelToggle($event, f)\"\n    >\n      <formly-field [field]=\"f\" [formlyAttributes]=\"field\" />\n    </si-collapsible-panel>\n  }\n</si-accordion>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyArrayComponent extends FieldArrayType {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyArrayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyArrayComponent, isStandalone: true, selector: "si-formly-array", usesInheritance: true, ngImport: i0, template: "<div class=\"mb-3\">\n  @if (props.label) {\n    <b>{{ props.label }}</b>\n  }\n  @if (props.description) {\n    <p>{{ props.description }}</p>\n  }\n  @if (showError && formControl.errors) {\n    <div class=\"alert alert-danger\" role=\"alert\">\n      <formly-validation-message [field]=\"field\" />\n    </div>\n  }\n  @for (field of field.fieldGroup; track $index) {\n    <div class=\"row\">\n      <formly-field class=\"col-10\" [field]=\"field\" />\n      @if (!props.readonly && !props.disabled && !props.noRemove) {\n        <div class=\"col-1 text-end\">\n          @if (props.removeText) {\n            <button class=\"btn btn-danger\" type=\"button\" (click)=\"remove($index)\">\n              {{ props.removeText | translate }}\n            </button>\n          } @else {\n            <button class=\"btn btn-danger\" type=\"button\" (click)=\"remove($index)\"> - </button>\n          }\n        </div>\n      }\n    </div>\n  }\n  @if (!props.readonly && !props.disabled && !props.noAdd) {\n    <div class=\"d-flex flex-row-reverse\">\n      @if (props.addText) {\n        <button class=\"btn btn-primary\" type=\"button\" (click)=\"add()\">\n          {{ props.addText | translate }}\n        </button>\n      } @else {\n        <button class=\"btn btn-primary\" type=\"button\" (click)=\"add()\"> + </button>\n      }\n    </div>\n  }\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "component", type: i1$1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyArrayComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-array', imports: [FormlyModule, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mb-3\">\n  @if (props.label) {\n    <b>{{ props.label }}</b>\n  }\n  @if (props.description) {\n    <p>{{ props.description }}</p>\n  }\n  @if (showError && formControl.errors) {\n    <div class=\"alert alert-danger\" role=\"alert\">\n      <formly-validation-message [field]=\"field\" />\n    </div>\n  }\n  @for (field of field.fieldGroup; track $index) {\n    <div class=\"row\">\n      <formly-field class=\"col-10\" [field]=\"field\" />\n      @if (!props.readonly && !props.disabled && !props.noRemove) {\n        <div class=\"col-1 text-end\">\n          @if (props.removeText) {\n            <button class=\"btn btn-danger\" type=\"button\" (click)=\"remove($index)\">\n              {{ props.removeText | translate }}\n            </button>\n          } @else {\n            <button class=\"btn btn-danger\" type=\"button\" (click)=\"remove($index)\"> - </button>\n          }\n        </div>\n      }\n    </div>\n  }\n  @if (!props.readonly && !props.disabled && !props.noAdd) {\n    <div class=\"d-flex flex-row-reverse\">\n      @if (props.addText) {\n        <button class=\"btn btn-primary\" type=\"button\" (click)=\"add()\">\n          {{ props.addText | translate }}\n        </button>\n      } @else {\n        <button class=\"btn btn-primary\" type=\"button\" (click)=\"add()\"> + </button>\n      }\n    </div>\n  }\n</div>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyObjectGridComponent extends FieldType {
    rows = [];
    /**
     * Template option to suppress displaying error messages that relate
     * to the formControl of this grid (see formControl.errors).
     */
    suppressFormErrorDisplay = false;
    get containerClass() {
        if (Array.isArray(this.props.containerClass) && this.props.containerClass.length > 0) {
            return this.props.containerClass;
        }
        return typeof this.props.containerClass === 'string' ? this.props.containerClass : 'container';
    }
    ngOnInit() {
        this.setRows();
        this.suppressFormErrorDisplay = this.props.suppressFormErrorDisplay === true;
    }
    get displayErrorMessages() {
        return this.showError && !!this.formControl.errors && !this.suppressFormErrorDisplay;
    }
    setRows() {
        this.rows.length = 0;
        if (!Array.isArray(this.props.gridConfig) || this.props.gridConfig.length === 0) {
            this.rows = [
                {
                    classes: ['row'],
                    columns: [{ classes: ['col-sm'], fields: this.field.fieldGroup }]
                }
            ];
        }
        const gridConfig = this.props.gridConfig;
        const fieldGroup = [...(this.field.fieldGroup ?? [])];
        gridConfig.forEach(rowConfig => {
            const columns = [];
            rowConfig.columns.forEach(config => {
                const fields = fieldGroup.splice(0, config.fieldCount < 0 ? fieldGroup.length : config.fieldCount);
                const colClasses = config.classes ?? [];
                if (colClasses.length === 0) {
                    colClasses.push('col');
                }
                columns.push({ fields, classes: colClasses });
            });
            const rowClasses = rowConfig.classes ?? [];
            if (rowClasses.length === 0) {
                rowClasses.push('row');
            }
            this.rows.push({ classes: rowClasses, columns });
        });
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyObjectGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyObjectGridComponent, isStandalone: true, selector: "si-formly-object-grid", usesInheritance: true, ngImport: i0, template: "@if (props.hidden !== true) {\n  <div>\n    @if (props.label && props.plain !== true) {\n      <b>{{ props.label }}</b>\n    }\n    @if (props.description && props.plain !== true) {\n      <p>{{ props.description }}</p>\n    }\n    @if (displayErrorMessages) {\n      <div class=\"alert alert-danger\" role=\"alert\">\n        <formly-validation-message [field]=\"field\" />\n      </div>\n    }\n    <div [class]=\"containerClass\">\n      @for (row of rows; track $index) {\n        <div [class]=\"row.classes\">\n          @for (column of row.columns; track $index) {\n            <div [class]=\"column.classes\">\n              <si-form-container>\n                <div si-form-container-content>\n                  @for (f of column.fields; track $index) {\n                    <formly-field class=\"d-block\" [field]=\"f\" />\n                  }\n                </div>\n              </si-form-container>\n            </div>\n          }\n        </div>\n      }\n    </div>\n  </div>\n}\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "component", type: i1$1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "component", type: SiFormContainerComponent, selector: "si-form-container", inputs: ["form", "readonly", "contentContainerBreakpoints", "disableContainerBreakpoints", "errorCodeTranslateKeyMap", "controlNameTranslateKeyMap", "disableErrorPrinting", "labelWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyObjectGridComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-object-grid', imports: [FormlyModule, SiFormContainerComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (props.hidden !== true) {\n  <div>\n    @if (props.label && props.plain !== true) {\n      <b>{{ props.label }}</b>\n    }\n    @if (props.description && props.plain !== true) {\n      <p>{{ props.description }}</p>\n    }\n    @if (displayErrorMessages) {\n      <div class=\"alert alert-danger\" role=\"alert\">\n        <formly-validation-message [field]=\"field\" />\n      </div>\n    }\n    <div [class]=\"containerClass\">\n      @for (row of rows; track $index) {\n        <div [class]=\"row.classes\">\n          @for (column of row.columns; track $index) {\n            <div [class]=\"column.classes\">\n              <si-form-container>\n                <div si-form-container-content>\n                  @for (f of column.fields; track $index) {\n                    <formly-field class=\"d-block\" [field]=\"f\" />\n                  }\n                </div>\n              </si-form-container>\n            </div>\n          }\n        </div>\n      }\n    </div>\n  </div>\n}\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyObjectPlainComponent extends FieldType {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyObjectPlainComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyObjectPlainComponent, isStandalone: true, selector: "si-formly-object-plain", usesInheritance: true, ngImport: i0, template: "<div>\n  @if (props.description) {\n    <p>{{ props.description }}</p>\n  }\n  @for (f of field.fieldGroup; track $index) {\n    <formly-field [field]=\"f\" />\n  }\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$1.FormlyField, selector: "formly-field", inputs: ["field"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyObjectPlainComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-object-plain', imports: [FormlyModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\n  @if (props.description) {\n    <p>{{ props.description }}</p>\n  }\n  @for (f of field.fieldGroup; track $index) {\n    <formly-field [field]=\"f\" />\n  }\n</div>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyObjectComponent extends FieldType {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyObjectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyObjectComponent, isStandalone: true, selector: "si-formly-object", usesInheritance: true, ngImport: i0, template: "@if (props.hidden !== true) {\n  <div class=\"mb-3\">\n    @if (props.label) {\n      <b>{{ props.label }}</b>\n    }\n    @if (props.description) {\n      <p>{{ props.description }}</p>\n    }\n    @if (showError && formControl.errors) {\n      <div class=\"alert alert-danger\" role=\"alert\">\n        <formly-validation-message [field]=\"field\" />\n      </div>\n    }\n    @for (f of field.fieldGroup; track $index) {\n      <formly-field [field]=\"f\" />\n    }\n  </div>\n}\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "component", type: i1$1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyObjectComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-object', imports: [FormlyModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (props.hidden !== true) {\n  <div class=\"mb-3\">\n    @if (props.label) {\n      <b>{{ props.label }}</b>\n    }\n    @if (props.description) {\n      <p>{{ props.description }}</p>\n    }\n    @if (showError && formControl.errors) {\n      <div class=\"alert alert-danger\" role=\"alert\">\n        <formly-validation-message [field]=\"field\" />\n      </div>\n    }\n    @for (f of field.fieldGroup; track $index) {\n      <formly-field [field]=\"f\" />\n    }\n  </div>\n}\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyObjectTabsetComponent extends FieldType {
    tabIndexChange(isActive, selectedTab) {
        if (this.options?.formState && isActive) {
            this.options.formState.selectedTabIndex = selectedTab;
        }
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyObjectTabsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyObjectTabsetComponent, isStandalone: true, selector: "si-formly-object-tabset", usesInheritance: true, ngImport: i0, template: "<si-tabset class=\"d-flex si-layout-fixed-height\">\n  @for (f of field.fieldGroup; track $index) {\n    @let isTabActive = options.formState.selectedTabIndex === $index;\n    @if (!(f.props?.hidden === true)) {\n      <si-tab\n        [heading]=\"f.props?.label || ''\"\n        [active]=\"isTabActive\"\n        (activeChange)=\"tabIndexChange($event, $index)\"\n      >\n        <div class=\"pt-8\">\n          <formly-field [field]=\"f\" [formlyAttributes]=\"field\" />\n        </div>\n      </si-tab>\n    }\n  }\n</si-tabset>\n", dependencies: [{ kind: "component", type: SiTabsetComponent, selector: "si-tabset", inputs: ["contentOverflowAuto"] }, { kind: "component", type: SiTabComponent, selector: "si-tab", inputs: ["active", "canActivate", "canDeactivate"], outputs: ["activeChange"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyObjectTabsetComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-object-tabset', imports: [SiTabsetComponent, SiTabComponent, FormlyModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<si-tabset class=\"d-flex si-layout-fixed-height\">\n  @for (f of field.fieldGroup; track $index) {\n    @let isTabActive = options.formState.selectedTabIndex === $index;\n    @if (!(f.props?.hidden === true)) {\n      <si-tab\n        [heading]=\"f.props?.label || ''\"\n        [active]=\"isTabActive\"\n        (activeChange)=\"tabIndexChange($event, $index)\"\n      >\n        <div class=\"pt-8\">\n          <formly-field [field]=\"f\" [formlyAttributes]=\"field\" />\n        </div>\n      </si-tab>\n    }\n  }\n</si-tabset>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyFieldsetComponent extends FieldWrapper {
    get label() {
        return this.props.label && this.props.hideLabel !== true ? this.props.label : undefined;
    }
    get labelWidth() {
        return this.props.labelWidth ? this.props.labelWidth + 'px' : undefined;
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyFieldsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiFormlyFieldsetComponent, isStandalone: true, selector: "si-formly-fieldset", usesInheritance: true, ngImport: i0, template: "<si-form-fieldset [label]=\"label!\" [labelWidth]=\"labelWidth\" [required]=\"props.required\">\n  <ng-template #fieldComponent />\n  <div class=\"invalid-feedback\" [class.d-block]=\"showError\">\n    <formly-validation-message [field]=\"field\" />\n  </div>\n</si-form-fieldset>\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "component", type: SiFormFieldsetComponent, selector: "si-form-fieldset", inputs: ["label", "labelWidth", "required", "inline"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyFieldsetComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-fieldset', imports: [FormlyModule, SiFormFieldsetComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<si-form-fieldset [label]=\"label!\" [labelWidth]=\"labelWidth\" [required]=\"props.required\">\n  <ng-template #fieldComponent />\n  <div class=\"invalid-feedback\" [class.d-block]=\"showError\">\n    <formly-validation-message [field]=\"field\" />\n  </div>\n</si-form-fieldset>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyHorizontalWrapperComponent extends FieldWrapper {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyHorizontalWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyHorizontalWrapperComponent, isStandalone: true, selector: "si-formly-horizontal-wrapper", usesInheritance: true, ngImport: i0, template: "<div class=\"mb-6 row\">\n  @if (props.label) {\n    <label class=\"col-sm-2 col-form-label\" [attr.for]=\"id\">\n      {{ props.label }}\n      @if (props.required && props.hideRequiredMarker !== true) {\n        *\n      }\n    </label>\n  }\n  <div class=\"col-sm-10\">\n    <ng-template #fieldComponent />\n  </div>\n\n  @if (showError) {\n    <div class=\"col-sm-3 invalid-feedback d-block\">\n      <formly-validation-message [field]=\"field\" />\n    </div>\n  }\n</div>\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyHorizontalWrapperComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-horizontal-wrapper', imports: [FormlyModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mb-6 row\">\n  @if (props.label) {\n    <label class=\"col-sm-2 col-form-label\" [attr.for]=\"id\">\n      {{ props.label }}\n      @if (props.required && props.hideRequiredMarker !== true) {\n        *\n      }\n    </label>\n  }\n  <div class=\"col-sm-10\">\n    <ng-template #fieldComponent />\n  </div>\n\n  @if (showError) {\n    <div class=\"col-sm-3 invalid-feedback d-block\">\n      <formly-validation-message [field]=\"field\" />\n    </div>\n  }\n</div>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyIconWrapperComponent extends FieldWrapper {
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyIconWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiFormlyIconWrapperComponent, isStandalone: true, selector: "si-formly-icon-wrapper", usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex\">\n  <div class=\"flex-1 me-2\">\n    <ng-template #fieldComponent />\n  </div>\n  @if (props.icon) {\n    <div\n      class=\"wrapper-icon icon\"\n      [style.font-size.px]=\"props.iconSize\"\n      [siTooltip]=\"props.iconTooltip | translate\"\n    >\n      <si-icon [icon]=\"props.icon\" />\n    </div>\n  }\n</div>\n", styles: [".flex-1{flex:1}.wrapper-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiTooltipDirective, selector: "[siTooltip]", inputs: ["siTooltip", "placement", "isDisabled", "tooltipContext"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyIconWrapperComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-icon-wrapper', imports: [SiIconComponent, SiTooltipDirective, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"d-flex\">\n  <div class=\"flex-1 me-2\">\n    <ng-template #fieldComponent />\n  </div>\n  @if (props.icon) {\n    <div\n      class=\"wrapper-icon icon\"\n      [style.font-size.px]=\"props.iconSize\"\n      [siTooltip]=\"props.iconTooltip | translate\"\n    >\n      <si-icon [icon]=\"props.icon\" />\n    </div>\n  }\n</div>\n", styles: [".flex-1{flex:1}.wrapper-icon{display:flex;align-items:center}\n"] }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyFormFieldProviderDirective {
    field = input.required(...(ngDevMode ? [{ debugName: "field" }] : []));
    id = computed(() => this.field().id, ...(ngDevMode ? [{ debugName: "id" }] : []));
    errormessageId = computed(() => `${this.field().id}-errormessage`, ...(ngDevMode ? [{ debugName: "errormessageId" }] : []));
    isFormCheck;
    labelledby = computed(() => {
        const fieldValue = this.field();
        if (fieldValue.props?.useAriaLabel) {
            return fieldValue.id + '-label';
        }
        else {
            return undefined;
        }
    }, ...(ngDevMode ? [{ debugName: "labelledby" }] : []));
    ngOnChanges() {
        this.isFormCheck = this.field().type === 'checkbox' || this.field().type === 'boolean';
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyFormFieldProviderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
    static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.8", type: SiFormlyFormFieldProviderDirective, isStandalone: true, selector: "[siFormlyFormFieldProvider]", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, providers: [{ provide: SI_FORM_ITEM_CONTROL, useExisting: SiFormlyFormFieldProviderDirective }], usesOnChanges: true, ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyFormFieldProviderDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '[siFormlyFormFieldProvider]',
                    providers: [{ provide: SI_FORM_ITEM_CONTROL, useExisting: SiFormlyFormFieldProviderDirective }]
                }]
        }], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }] } });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
class SiFormlyWrapperComponent extends FieldWrapper {
    get label() {
        return this.props.label && this.props.hideLabel !== true ? this.props.label : '';
    }
    get labelWidth() {
        return this.props.labelWidth;
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
    static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiFormlyWrapperComponent, isStandalone: true, selector: "si-formly-wrapper", usesInheritance: true, ngImport: i0, template: "<si-form-item\n  [class.ms-n8]=\"field.type === 'checkbox'\"\n  [label]=\"label\"\n  [labelWidth]=\"labelWidth\"\n  [required]=\"props.required\"\n>\n  <div class=\"w-100\" siFormlyFormFieldProvider [field]=\"field\">\n    <ng-template #fieldComponent />\n    <div class=\"invalid-feedback\" [class.d-block]=\"showError\">\n      <!-- This string is hard-coded in the bootstrap fields. -->\n      <!-- See https://github.com/ngx-formly/ngx-formly/blob/main/src/ui/bootstrap/input/src/input.type.ts -->\n      <!-- We should get rid of the bootstrap package, to make it rely on our si-form-item code. -->\n      <formly-validation-message [field]=\"field\" [id]=\"id | siValidationErrorId\" />\n    </div>\n  </div>\n</si-form-item>\n", dependencies: [{ kind: "component", type: SiFormItemComponent, selector: "si-form-item", inputs: ["label", "labelWidth", "disableErrorPrinting", "formErrorMapper", "required"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "directive", type: SiFormlyFormFieldProviderDirective, selector: "[siFormlyFormFieldProvider]", inputs: ["field"] }, { kind: "pipe", type: SiValidationErrorIdPipe, name: "siValidationErrorId" }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyWrapperComponent, decorators: [{
            type: Component,
            args: [{ selector: 'si-formly-wrapper', imports: [
                        SiFormItemComponent,
                        FormlyModule,
                        SiFormlyFormFieldProviderDirective,
                        SiValidationErrorIdPipe
                    ], template: "<si-form-item\n  [class.ms-n8]=\"field.type === 'checkbox'\"\n  [label]=\"label\"\n  [labelWidth]=\"labelWidth\"\n  [required]=\"props.required\"\n>\n  <div class=\"w-100\" siFormlyFormFieldProvider [field]=\"field\">\n    <ng-template #fieldComponent />\n    <div class=\"invalid-feedback\" [class.d-block]=\"showError\">\n      <!-- This string is hard-coded in the bootstrap fields. -->\n      <!-- See https://github.com/ngx-formly/ngx-formly/blob/main/src/ui/bootstrap/input/src/input.type.ts -->\n      <!-- We should get rid of the bootstrap package, to make it rely on our si-form-item code. -->\n      <formly-validation-message [field]=\"field\" [id]=\"id | siValidationErrorId\" />\n    </div>\n  </div>\n</si-form-item>\n" }]
        }] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */
const dynamicUiConfig = () => {
    return {
        types: [
            { name: 'string', extends: 'input' },
            {
                name: 'integer',
                extends: 'input',
                defaultOptions: {
                    props: {
                        type: 'number'
                    }
                }
            },
            {
                name: 'checkbox'
            },
            { name: 'boolean', extends: 'checkbox' },
            { name: 'multicheckbox', component: FormlyFieldMultiCheckbox, wrappers: ['form-fieldset'] },
            { name: 'radio', component: FormlyFieldRadio, wrappers: ['form-fieldset'] },
            { name: 'enum', extends: 'select' },
            { name: 'array', component: SiFormlyArrayComponent },
            { name: 'object', component: SiFormlyObjectComponent },
            { name: 'object-plain', component: SiFormlyObjectPlainComponent },
            { name: 'object-grid', component: SiFormlyObjectGridComponent },
            { name: 'tabset', component: SiFormlyObjectTabsetComponent },
            { name: 'accordion', component: SiFormlyAccordionComponent },
            { name: 'textdisplay', component: SiFormlyTextDisplayComponent },
            { name: 'email', component: SiFormlyEmailComponent, wrappers: ['form-field'] },
            { name: 'date', component: SiFormlyDateTimeComponent, wrappers: ['form-field'] },
            { name: 'datetime', extends: 'date' },
            { name: 'ipv4', component: SiFormlyIpInputComponent, wrappers: ['form-field'] },
            {
                name: 'ipv6',
                extends: 'ipv4'
            },
            { name: 'date-range', component: SiFormlyDateRangeComponent, wrappers: ['form-field'] },
            { name: 'password', component: SiFormlyPasswordComponent, wrappers: ['form-field'] },
            { name: 'number', component: SiFormlyNumberComponent, wrappers: ['form-field'] },
            { name: 'textarea', component: SiFormlyTextareaComponent, wrappers: ['form-field'] },
            { name: 'button', component: SiFormlyButtonComponent },
            {
                name: 'si-select',
                component: SiFormlySelectComponent,
                wrappers: ['form-field'],
                defaultOptions: { props: { useAriaLabel: true } }
            },
            {
                name: 'time',
                component: SiFormlyTimeComponent,
                wrappers: ['form-field'],
                defaultOptions: { props: { useAriaLabel: true } }
            }
        ],
        wrappers: [
            // { name: 'form-field-original', component: FormlyWrapperFormField }, // Overrides the default
            { name: 'form-field', component: SiFormlyWrapperComponent }, // Overrides the default
            { name: 'form-fieldset', component: SiFormlyFieldsetComponent },
            { name: 'form-field-no-icon', component: SiFormlyWrapperComponent },
            { name: 'form-field-horizontal', component: SiFormlyHorizontalWrapperComponent },
            { name: 'icon-wrapper', component: SiFormlyIconWrapperComponent }
        ],
        extensions: [
            {
                name: 'translate',
                extension: new SiFormlyTranslateExtension()
            }
        ]
    };
};
class SiFormlyModule {
    config = inject(FormlyConfig);
    configs = inject(FORMLY_CONFIG, { optional: true });
    static forRoot(formlyConfig = {}) {
        return {
            ngModule: SiFormlyModule,
            providers: [
                { provide: FORMLY_CONFIG, useValue: formlyConfig, multi: true },
                FormlyConfig,
                FormlyFormBuilder
            ]
        };
    }
    constructor() {
        if (!this.configs) {
            return;
        }
        this.configs.forEach(configuration => {
            this.config.addConfig(configuration);
        });
    }
    static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
    static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyModule, declarations: [SiFormlyComponent], imports: [CommonModule,
            FormlyBootstrapModule,
            FormlyModule,
            ReactiveFormsModule,
            SiFormlyIpInputComponent,
            SiFormlyAccordionComponent,
            SiFormlyArrayComponent,
            SiFormlyButtonComponent,
            SiFormlyDateTimeComponent,
            SiFormlyEmailComponent,
            SiFormlyHorizontalWrapperComponent,
            SiFormlyIconWrapperComponent,
            SiFormlyObjectComponent,
            SiFormlyObjectGridComponent,
            SiFormlyObjectPlainComponent,
            SiFormlyObjectTabsetComponent,
            SiFormlyPasswordComponent,
            SiFormlySelectComponent,
            SiFormlyTextareaComponent,
            SiFormlyTextDisplayComponent,
            SiFormlyWrapperComponent,
            SiFormModule], exports: [SiFormlyComponent] });
    static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyModule, providers: [
            {
                provide: FORMLY_CONFIG,
                multi: true,
                useFactory: dynamicUiConfig
            }
        ], imports: [CommonModule,
            FormlyBootstrapModule,
            FormlyModule,
            ReactiveFormsModule,
            SiFormlyIpInputComponent,
            SiFormlyAccordionComponent,
            SiFormlyArrayComponent,
            SiFormlyButtonComponent,
            SiFormlyDateTimeComponent,
            SiFormlyEmailComponent,
            SiFormlyHorizontalWrapperComponent,
            SiFormlyIconWrapperComponent,
            SiFormlyObjectComponent,
            SiFormlyObjectGridComponent,
            SiFormlyObjectPlainComponent,
            SiFormlyObjectTabsetComponent,
            SiFormlyPasswordComponent,
            SiFormlySelectComponent,
            SiFormlyTextareaComponent,
            SiFormlyTextDisplayComponent,
            SiFormlyWrapperComponent,
            SiFormModule] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiFormlyModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [
                        CommonModule,
                        FormlyBootstrapModule,
                        FormlyModule,
                        ReactiveFormsModule,
                        SiFormlyIpInputComponent,
                        SiFormlyAccordionComponent,
                        SiFormlyArrayComponent,
                        SiFormlyButtonComponent,
                        SiFormlyDateTimeComponent,
                        SiFormlyEmailComponent,
                        SiFormlyHorizontalWrapperComponent,
                        SiFormlyIconWrapperComponent,
                        SiFormlyObjectComponent,
                        SiFormlyObjectGridComponent,
                        SiFormlyObjectPlainComponent,
                        SiFormlyObjectTabsetComponent,
                        SiFormlyPasswordComponent,
                        SiFormlySelectComponent,
                        SiFormlyTextareaComponent,
                        SiFormlyTextDisplayComponent,
                        SiFormlyWrapperComponent,
                        SiFormModule
                    ],
                    declarations: [SiFormlyComponent],
                    providers: [
                        {
                            provide: FORMLY_CONFIG,
                            multi: true,
                            useFactory: dynamicUiConfig
                        }
                    ],
                    exports: [SiFormlyComponent]
                }]
        }], ctorParameters: () => [] });

/**
 * Copyright (c) Siemens 2016 - 2026
 * SPDX-License-Identifier: MIT
 */

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

export { SiFormlyComponent, SiFormlyModule };
//# sourceMappingURL=siemens-element-ng-formly.mjs.map
