@siemens/element-ng 47.4.0 → 47.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/breadcrumb-router/index.d.ts +8 -0
  2. package/breadcrumb-router/package.json +3 -0
  3. package/breadcrumb-router/si-breadcrumb-default-resolver.service.d.ts +23 -0
  4. package/breadcrumb-router/si-breadcrumb-router.component.d.ts +30 -0
  5. package/breadcrumb-router/si-breadcrumb-router.model.d.ts +53 -0
  6. package/breadcrumb-router/si-breadcrumb-router.module.d.ts +7 -0
  7. package/common/models/status-type.model.d.ts +2 -0
  8. package/datatable/index.d.ts +42 -0
  9. package/datatable/package.json +3 -0
  10. package/datatable/si-datatable-interaction.directive.d.ts +34 -0
  11. package/datatable/si-datatable.module.d.ts +7 -0
  12. package/date-range-filter/si-date-range-filter.component.d.ts +5 -1
  13. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +263 -0
  14. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -0
  15. package/fesm2022/siemens-element-ng-breadcrumb.mjs +1 -1
  16. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  18. package/fesm2022/siemens-element-ng-datatable.mjs +173 -0
  19. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -0
  20. package/fesm2022/siemens-element-ng-date-range-filter.mjs +26 -5
  21. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  22. package/fesm2022/siemens-element-ng-filtered-search.mjs +1139 -0
  23. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -0
  24. package/fesm2022/siemens-element-ng-formly.mjs +935 -0
  25. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -0
  26. package/fesm2022/siemens-element-ng-icon.mjs +29 -15
  27. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  28. package/fesm2022/siemens-element-ng-list-details.mjs +390 -0
  29. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -0
  30. package/fesm2022/siemens-element-ng-loading-spinner.mjs +15 -12
  31. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  32. package/fesm2022/siemens-element-ng-main-detail-container.mjs +269 -0
  33. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -0
  34. package/fesm2022/siemens-element-ng-modal.mjs +5 -2
  35. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  36. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +802 -0
  37. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -0
  38. package/fesm2022/siemens-element-ng-password-strength.mjs +22 -16
  39. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  40. package/fesm2022/siemens-element-ng-phone-number.mjs +426 -0
  41. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -0
  42. package/fesm2022/siemens-element-ng-resize-observer.mjs +6 -3
  43. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  44. package/fesm2022/siemens-element-ng-result-details-list.mjs +74 -0
  45. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -0
  46. package/fesm2022/siemens-element-ng-shadow-root.mjs +70 -0
  47. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -0
  48. package/fesm2022/siemens-element-ng-side-panel.mjs +554 -0
  49. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -0
  50. package/fesm2022/siemens-element-ng-status-bar.mjs +348 -0
  51. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -0
  52. package/fesm2022/siemens-element-ng-tabs-next.mjs +356 -0
  53. package/fesm2022/siemens-element-ng-tabs-next.mjs.map +1 -0
  54. package/fesm2022/siemens-element-ng-tabs.mjs +1 -1
  55. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  56. package/fesm2022/siemens-element-ng-threshold.mjs +319 -0
  57. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -0
  58. package/fesm2022/siemens-element-ng-tour.mjs +384 -0
  59. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -0
  60. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-tree-view.mjs +2936 -0
  62. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -0
  63. package/fesm2022/siemens-element-ng-wizard.mjs +2 -2
  64. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  65. package/filtered-search/index.d.ts +7 -0
  66. package/filtered-search/package.json +3 -0
  67. package/filtered-search/si-filtered-search-helper.d.ts +22 -0
  68. package/filtered-search/si-filtered-search-value.component.d.ts +53 -0
  69. package/filtered-search/si-filtered-search.component.d.ts +329 -0
  70. package/filtered-search/si-filtered-search.model.d.ts +139 -0
  71. package/filtered-search/si-filtered-search.module.d.ts +7 -0
  72. package/filtered-search/values/date-value/si-filtered-search-date-value.component.d.ts +57 -0
  73. package/filtered-search/values/si-filtered-search-value.base.d.ts +27 -0
  74. package/filtered-search/values/typeahead/si-filtered-search-typeahead.component.d.ts +45 -0
  75. package/formly/fields/button/si-formly-button.component.d.ts +7 -0
  76. package/formly/fields/date-range/si-formly-date-range.component.d.ts +6 -0
  77. package/formly/fields/datetime/si-formly-datetime.component.d.ts +13 -0
  78. package/formly/fields/email/si-formly-email.component.d.ts +6 -0
  79. package/formly/fields/ip-input/si-formly-ip-input.component.d.ts +6 -0
  80. package/formly/fields/number/si-formly-number.component.d.ts +6 -0
  81. package/formly/fields/password/si-formly-password.component.d.ts +6 -0
  82. package/formly/fields/select/si-formly-select.component.d.ts +6 -0
  83. package/formly/fields/text/si-formly-text-display.component.d.ts +7 -0
  84. package/formly/fields/textarea/si-formly-textarea.component.d.ts +18 -0
  85. package/formly/fields/time/si-formly-time.component.d.ts +13 -0
  86. package/formly/index.d.ts +6 -0
  87. package/formly/package.json +3 -0
  88. package/formly/si-formly-translate.extension.d.ts +11 -0
  89. package/formly/si-formly.component.d.ts +62 -0
  90. package/formly/si-formly.module.d.ts +35 -0
  91. package/formly/structural/si-formly-accordion/si-formly-accordion.component.d.ts +13 -0
  92. package/formly/structural/si-formly-array/si-formly-array.component.d.ts +6 -0
  93. package/formly/structural/si-formly-object/si-formly-object.component.d.ts +6 -0
  94. package/formly/structural/si-formly-object-grid/si-formly-object-grid.component.d.ts +22 -0
  95. package/formly/structural/si-formly-object-grid/si-formly-object-grid.model.d.ts +21 -0
  96. package/formly/structural/si-formly-object-plain/si-formly-object-plain.component.d.ts +6 -0
  97. package/formly/structural/si-formly-tabset/si-formly-object-tabset.component.d.ts +7 -0
  98. package/formly/utils.d.ts +6 -0
  99. package/formly/wrapper/si-formly-fieldset.component.d.ts +8 -0
  100. package/formly/wrapper/si-formly-form-field-provider.directive.d.ts +19 -0
  101. package/formly/wrapper/si-formly-horizontal-wrapper.component.d.ts +6 -0
  102. package/formly/wrapper/si-formly-icon-wrapper.component.d.ts +6 -0
  103. package/formly/wrapper/si-formly-wrapper.component.d.ts +8 -0
  104. package/icon/element-icons.d.ts +5 -0
  105. package/list-details/index.d.ts +12 -0
  106. package/list-details/package.json +3 -0
  107. package/list-details/si-details-pane/si-details-pane.component.d.ts +8 -0
  108. package/list-details/si-details-pane-body/si-details-pane-body.component.d.ts +6 -0
  109. package/list-details/si-details-pane-footer/si-details-pane-footer.component.d.ts +6 -0
  110. package/list-details/si-details-pane-header/si-details-pane-header.component.d.ts +38 -0
  111. package/list-details/si-list-details.component.d.ts +100 -0
  112. package/list-details/si-list-pane/si-list-pane.component.d.ts +10 -0
  113. package/list-details/si-list-pane-body/si-list-pane-body.component.d.ts +6 -0
  114. package/list-details/si-list-pane-header/si-list-pane-header.component.d.ts +6 -0
  115. package/loading-spinner/si-loading-spinner.directive.d.ts +3 -2
  116. package/main-detail-container/index.d.ts +6 -0
  117. package/main-detail-container/package.json +3 -0
  118. package/main-detail-container/si-main-detail-container.component.d.ts +151 -0
  119. package/main-detail-container/si-main-detail-container.module.d.ts +7 -0
  120. package/navbar-vertical/index.d.ts +7 -0
  121. package/navbar-vertical/package.json +3 -0
  122. package/navbar-vertical/si-navbar-vertical-divider.component.d.ts +5 -0
  123. package/navbar-vertical/si-navbar-vertical-group-trigger.directive.d.ts +38 -0
  124. package/navbar-vertical/si-navbar-vertical-group.component.d.ts +16 -0
  125. package/navbar-vertical/si-navbar-vertical-header.component.d.ts +6 -0
  126. package/navbar-vertical/si-navbar-vertical-item-legacy.component.d.ts +17 -0
  127. package/navbar-vertical/si-navbar-vertical-item.component.d.ts +21 -0
  128. package/navbar-vertical/si-navbar-vertical.component.d.ts +148 -0
  129. package/navbar-vertical/si-navbar-vertical.model.d.ts +77 -0
  130. package/navbar-vertical/si-navbar-vertical.module.d.ts +7 -0
  131. package/navbar-vertical/si-navbar-vertical.provider.d.ts +7 -0
  132. package/package.json +93 -9
  133. package/password-strength/si-password-strength.directive.d.ts +11 -0
  134. package/phone-number/index.d.ts +7 -0
  135. package/phone-number/package.json +3 -0
  136. package/phone-number/si-phone-number-input-select.directive.d.ts +10 -0
  137. package/phone-number/si-phone-number-input.component.d.ts +137 -0
  138. package/phone-number/si-phone-number-input.models.d.ts +48 -0
  139. package/phone-number/si-phone-number-input.module.d.ts +7 -0
  140. package/resize-observer/si-resize-observer.directive.d.ts +3 -1
  141. package/result-details-list/index.d.ts +7 -0
  142. package/result-details-list/package.json +3 -0
  143. package/result-details-list/si-result-details-list.component.d.ts +14 -0
  144. package/result-details-list/si-result-details-list.datamodel.d.ts +48 -0
  145. package/result-details-list/si-result-details-list.module.d.ts +7 -0
  146. package/shadow-root/index.d.ts +5 -0
  147. package/shadow-root/package.json +3 -0
  148. package/shadow-root/si-shadow-root.directive.d.ts +39 -0
  149. package/side-panel/index.d.ts +9 -0
  150. package/side-panel/package.json +3 -0
  151. package/side-panel/si-side-panel-content.component.d.ts +105 -0
  152. package/side-panel/si-side-panel.component.d.ts +108 -0
  153. package/side-panel/si-side-panel.module.d.ts +8 -0
  154. package/side-panel/si-side-panel.service.d.ts +45 -0
  155. package/side-panel/side-panel.model.d.ts +16 -0
  156. package/status-bar/index.d.ts +7 -0
  157. package/status-bar/package.json +3 -0
  158. package/status-bar/si-status-bar-item/index.d.ts +6 -0
  159. package/status-bar/si-status-bar-item/si-status-bar-item.component.d.ts +22 -0
  160. package/status-bar/si-status-bar-item/si-status-bar-item.model.d.ts +33 -0
  161. package/status-bar/si-status-bar.component.d.ts +116 -0
  162. package/status-bar/si-status-bar.module.d.ts +7 -0
  163. package/tabs-next/index.d.ts +7 -0
  164. package/tabs-next/package.json +3 -0
  165. package/tabs-next/si-tab-next-base.directive.d.ts +63 -0
  166. package/tabs-next/si-tab-next-link.component.d.ts +16 -0
  167. package/tabs-next/si-tab-next.component.d.ts +16 -0
  168. package/tabs-next/si-tabs-tokens.d.ts +7 -0
  169. package/tabs-next/si-tabset-next.component.d.ts +57 -0
  170. package/template-i18n.json +45 -0
  171. package/threshold/index.d.ts +6 -0
  172. package/threshold/package.json +3 -0
  173. package/threshold/si-readonly-threshold-option.component.d.ts +11 -0
  174. package/threshold/si-threshold.component.d.ts +147 -0
  175. package/threshold/si-threshold.module.d.ts +7 -0
  176. package/tour/index.d.ts +6 -0
  177. package/tour/package.json +3 -0
  178. package/tour/si-tour-highlight.component.d.ts +15 -0
  179. package/tour/si-tour-token.model.d.ts +27 -0
  180. package/tour/si-tour.component.d.ts +31 -0
  181. package/tour/si-tour.model.d.ts +51 -0
  182. package/tour/si-tour.service.d.ts +62 -0
  183. package/translate/si-translatable-keys.interface.d.ts +45 -0
  184. package/tree-view/drag-drop.util.d.ts +32 -0
  185. package/tree-view/index.d.ts +12 -0
  186. package/tree-view/package.json +3 -0
  187. package/tree-view/si-tree-view-converter.service.d.ts +41 -0
  188. package/tree-view/si-tree-view-item/si-tree-view-item.component.d.ts +105 -0
  189. package/tree-view/si-tree-view-item/si-tree-view-item.directive.d.ts +24 -0
  190. package/tree-view/si-tree-view-item-context.d.ts +11 -0
  191. package/tree-view/si-tree-view-item-height.service.d.ts +49 -0
  192. package/tree-view/si-tree-view-item-template.directive.d.ts +18 -0
  193. package/tree-view/si-tree-view-virtualization.service.d.ts +150 -0
  194. package/tree-view/si-tree-view.component.d.ts +466 -0
  195. package/tree-view/si-tree-view.model.d.ts +146 -0
  196. package/tree-view/si-tree-view.module.d.ts +10 -0
  197. package/tree-view/si-tree-view.service.d.ts +55 -0
  198. package/tree-view/si-tree-view.utils.d.ts +46 -0
@@ -0,0 +1,935 @@
1
+ import * as i0 from '@angular/core';
2
+ import { viewChild, model, input, output, computed, inject, Component, ChangeDetectionStrategy, Directive, NgModule } from '@angular/core';
3
+ import * as i1$2 from '@angular/forms';
4
+ import { FormGroup, ReactiveFormsModule, FormsModule } from '@angular/forms';
5
+ import * as i1$1 from '@ngx-formly/core';
6
+ import { FormlyForm, FieldType, FormlyModule, FieldArrayType, FieldWrapper, FormlyConfig, FORMLY_CONFIG, FormlyFormBuilder } from '@ngx-formly/core';
7
+ import { FormlyJsonschema } from '@ngx-formly/core/json-schema';
8
+ import * as i1 from '@angular/common';
9
+ import { NgClass, CommonModule } from '@angular/common';
10
+ import * as i4 from '@siemens/element-ng/form';
11
+ import { SiFormContainerComponent, SiFormFieldsetComponent, SI_FORM_ITEM_CONTROL, SiFormItemComponent, SiFormModule } from '@siemens/element-ng/form';
12
+ import { FormlyBootstrapModule } from '@ngx-formly/bootstrap';
13
+ import { FormlyFieldMultiCheckbox } from '@ngx-formly/bootstrap/multicheckbox';
14
+ import { FormlyFieldRadio } from '@ngx-formly/bootstrap/radio';
15
+ import * as i1$3 from '@siemens/element-translate-ng/translate';
16
+ import { SiTranslateModule, SiTranslateService } from '@siemens/element-translate-ng/translate';
17
+ import { SiDateRangeComponent, SiCalendarButtonComponent, SiDatepickerDirective, SiTimepickerComponent } from '@siemens/element-ng/datepicker';
18
+ import { SiIp4InputDirective, SiIp6InputDirective } from '@siemens/element-ng/ip-input';
19
+ import { SiNumberInputComponent } from '@siemens/element-ng/number-input';
20
+ import { SiPasswordStrengthComponent, SiPasswordStrengthDirective } from '@siemens/element-ng/password-strength';
21
+ import { SiSelectComponent, SiSelectSimpleOptionsDirective, SiSelectMultiValueDirective, SiSelectSingleValueDirective } from '@siemens/element-ng/select';
22
+ import { SiCollapsiblePanelComponent, SiAccordionComponent } from '@siemens/element-ng/accordion';
23
+ import { SiTabsetComponent, SiTabComponent } from '@siemens/element-ng/tabs';
24
+ import { SiTooltipDirective } from '@siemens/element-ng/tooltip';
25
+
26
+ /**
27
+ * Copyright Siemens 2016 - 2025.
28
+ * SPDX-License-Identifier: MIT
29
+ */
30
+ class SiFormlyComponent {
31
+ /**
32
+ * Formly main container to provide modelChange subscriptions.
33
+ */
34
+ formlyForm = viewChild(FormlyForm);
35
+ form = model();
36
+ /**
37
+ * Mapping of field name and its value.
38
+ *
39
+ * @defaultValue
40
+ * ```
41
+ * {}
42
+ * ```
43
+ */
44
+ model = model({});
45
+ /**
46
+ * Define FormlyFormOptions.
47
+ *
48
+ * @defaultValue
49
+ * ```
50
+ * {}
51
+ * ```
52
+ */
53
+ options = input({});
54
+ /**
55
+ * JSONSchema7 can be used instead of FormlyFieldConfig array for defining form fields.
56
+ * */
57
+ schema = model();
58
+ /**
59
+ * Define all form fields with FormlyFieldConfig array.
60
+ *
61
+ * @defaultValue []
62
+ */
63
+ fields = input([]);
64
+ fieldsChange = output();
65
+ /** Define width for field labels in pixel */
66
+ labelWidth = input();
67
+ fieldConfig = computed(() => {
68
+ let formlyFieldConfig;
69
+ const schema = this.schema();
70
+ const labelWidth = this.labelWidth();
71
+ const opts = {
72
+ map: (field, s) => {
73
+ if (labelWidth) {
74
+ field.props ??= {};
75
+ field.props.labelWidth = labelWidth;
76
+ }
77
+ return field;
78
+ }
79
+ };
80
+ if (schema) {
81
+ formlyFieldConfig = [this.formlyJsonschema.toFieldConfig(schema, opts)];
82
+ }
83
+ else {
84
+ formlyFieldConfig = this.fields();
85
+ }
86
+ if (formlyFieldConfig && formlyFieldConfig.length > 0) {
87
+ this.applyLabelWidth(formlyFieldConfig);
88
+ }
89
+ this.fieldsChange.emit(formlyFieldConfig);
90
+ return formlyFieldConfig;
91
+ });
92
+ ownForm = false;
93
+ formlyJsonschema = inject(FormlyJsonschema);
94
+ ngOnInit() {
95
+ if (!this.form()) {
96
+ this.ownForm = true;
97
+ this.form.set(new FormGroup({}));
98
+ }
99
+ }
100
+ applyLabelWidth(formlyFieldConfig) {
101
+ const apply = (cfg) => {
102
+ cfg.forEach(field => {
103
+ field.props ??= {};
104
+ field.props.labelWidth = this.labelWidth();
105
+ if (Array.isArray(field.fieldGroup)) {
106
+ apply(field.fieldGroup);
107
+ }
108
+ if (typeof field.fieldArray !== 'function') {
109
+ if (Array.isArray(field.fieldArray?.fieldGroup)) {
110
+ apply(field.fieldArray.fieldGroup);
111
+ }
112
+ }
113
+ });
114
+ };
115
+ apply(formlyFieldConfig);
116
+ }
117
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
118
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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],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"] }] });
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyComponent, decorators: [{
121
+ type: Component,
122
+ 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" }]
123
+ }] });
124
+
125
+ /**
126
+ * Copyright Siemens 2016 - 2025.
127
+ * SPDX-License-Identifier: MIT
128
+ */
129
+ class SiFormlyButtonComponent extends FieldType {
130
+ click() {
131
+ const listener = this.props.clickListener;
132
+ let args = this.props.clickArgs ?? [];
133
+ if (args && !Array.isArray(args)) {
134
+ args = [args];
135
+ }
136
+ if (!listener) {
137
+ return;
138
+ }
139
+ if (typeof listener === 'string') {
140
+ try {
141
+ /* eslint-disable */
142
+ const getFn = Function('formState', 'model', 'field', `return ${listener};`);
143
+ const fn = getFn.apply(this, [this.formState, this.model, this.field]);
144
+ if (typeof fn === 'function') {
145
+ fn.apply(this, args);
146
+ }
147
+ else {
148
+ console.warn(`The dyn ui button ${this.key} has no valid click listener`);
149
+ }
150
+ }
151
+ catch (error) {
152
+ console.warn(`Error while executing dyn ui button "${this.key}" click listener.`, error);
153
+ }
154
+ /* eslint-enable */
155
+ return;
156
+ }
157
+ if (typeof listener === 'function') {
158
+ try {
159
+ listener.apply(this, args);
160
+ }
161
+ catch (error) {
162
+ console.warn(`Error while executing dyn ui button "${this.key}" direct click listener.`, error);
163
+ }
164
+ }
165
+ }
166
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
167
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", type: SiFormlyButtonComponent, isStandalone: true, selector: "si-formly-button", usesInheritance: true, ngImport: i0, template: "<button\n type=\"button\"\n class=\"btn\"\n [id]=\"id\"\n [ngClass]=\"{\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 [formlyAttributes]=\"field\"\n [hidden]=\"props.hidden\"\n (click)=\"click()\"\n >{{ props.label | translate }}</button\n>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1$3.SiTranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i1$1.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }] });
168
+ }
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyButtonComponent, decorators: [{
170
+ type: Component,
171
+ args: [{ selector: 'si-formly-button', imports: [NgClass, SiTranslateModule, FormlyModule], template: "<button\n type=\"button\"\n class=\"btn\"\n [id]=\"id\"\n [ngClass]=\"{\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 [formlyAttributes]=\"field\"\n [hidden]=\"props.hidden\"\n (click)=\"click()\"\n >{{ props.label | translate }}</button\n>\n" }]
172
+ }] });
173
+
174
+ /**
175
+ * Copyright Siemens 2016 - 2025.
176
+ * SPDX-License-Identifier: MIT
177
+ */
178
+ class SiFormlyDateRangeComponent extends FieldType {
179
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyDateRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
180
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", 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 [debounceTime]=\"props.debounceTime ?? dateRange.debounceTime()\"\n [required]=\"props.required ?? false\"\n [readonly]=\"props.readonly ?? dateRange.readonly()\"\n [autoClose]=\"props.autoClose ?? dateRange.autoClose()\"\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", "debounceTime", "autoClose", "disabled", "readonly", "value"], outputs: ["siDatepickerConfigChange", "siDatepickerRangeChange", "disabledTimeChange", "valueChange"] }] });
181
+ }
182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyDateRangeComponent, decorators: [{
183
+ type: Component,
184
+ args: [{ selector: 'si-formly-date-range', imports: [ReactiveFormsModule, FormlyModule, SiDateRangeComponent], 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 [debounceTime]=\"props.debounceTime ?? dateRange.debounceTime()\"\n [required]=\"props.required ?? false\"\n [readonly]=\"props.readonly ?? dateRange.readonly()\"\n [autoClose]=\"props.autoClose ?? dateRange.autoClose()\"\n/>\n" }]
185
+ }] });
186
+
187
+ /**
188
+ * Copyright Siemens 2016 - 2025.
189
+ * SPDX-License-Identifier: MIT
190
+ */
191
+ class SiFormlyDateTimeComponent extends FieldType {
192
+ ngOnInit() {
193
+ // if the date value is in string then first convert it into date
194
+ this.convertValidStringToDate();
195
+ this.formControl.registerOnChange(() => this.convertValidStringToDate());
196
+ }
197
+ convertValidStringToDate() {
198
+ if (this.formControl && !(this.formControl.value && this.formControl.value instanceof Date)) {
199
+ const dateVal = new Date(this.formControl.value);
200
+ if (!isNaN(dateVal.valueOf())) {
201
+ this.formControl.setValue(dateVal);
202
+ }
203
+ else if (this.formControl.value !== '') {
204
+ this.formControl.setValue('');
205
+ }
206
+ }
207
+ }
208
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
209
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", 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 />\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", "triggeringInput"], exportAs: ["siDatepicker"] }] });
210
+ }
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyDateTimeComponent, decorators: [{
212
+ type: Component,
213
+ args: [{ selector: 'si-formly-datetime', imports: [FormsModule, ReactiveFormsModule, SiCalendarButtonComponent, SiDatepickerDirective], 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 />\n</si-calendar-button>\n" }]
214
+ }] });
215
+
216
+ /**
217
+ * Copyright Siemens 2016 - 2025.
218
+ * SPDX-License-Identifier: MIT
219
+ */
220
+ class SiFormlyEmailComponent extends FieldType {
221
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
222
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", 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/>\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"] }] });
223
+ }
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyEmailComponent, decorators: [{
225
+ type: Component,
226
+ args: [{ selector: 'si-formly-email', imports: [FormsModule, ReactiveFormsModule, FormlyModule], template: "<input\n type=\"email\"\n class=\"form-control\"\n [id]=\"id\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n/>\n" }]
227
+ }] });
228
+
229
+ /**
230
+ * Copyright Siemens 2016 - 2025.
231
+ * SPDX-License-Identifier: MIT
232
+ */
233
+ class SiFormlyIpInputComponent extends FieldType {
234
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyIpInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
235
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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 />\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 />\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"] }] });
236
+ }
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyIpInputComponent, decorators: [{
238
+ type: Component,
239
+ args: [{ selector: 'si-formly-ip-address', imports: [ReactiveFormsModule, FormlyModule, SiIp4InputDirective, SiIp6InputDirective], 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 />\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 />\n}\n" }]
240
+ }] });
241
+
242
+ /**
243
+ * Copyright Siemens 2016 - 2025.
244
+ * SPDX-License-Identifier: MIT
245
+ */
246
+ class SiFormlyNumberComponent extends FieldType {
247
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
248
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", 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/>\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"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
249
+ }
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyNumberComponent, decorators: [{
251
+ type: Component,
252
+ args: [{ selector: 'si-formly-number', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ReactiveFormsModule, FormlyModule, SiNumberInputComponent], 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/>\n" }]
253
+ }] });
254
+
255
+ /**
256
+ * Copyright Siemens 2016 - 2025.
257
+ * SPDX-License-Identifier: MIT
258
+ */
259
+ class SiFormlyPasswordComponent extends FieldType {
260
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyPasswordComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
261
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", 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 />\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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
262
+ }
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyPasswordComponent, decorators: [{
264
+ type: Component,
265
+ args: [{ selector: 'si-formly-password', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
266
+ FormsModule,
267
+ ReactiveFormsModule,
268
+ FormlyModule,
269
+ SiPasswordStrengthComponent,
270
+ SiPasswordStrengthDirective
271
+ ], 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 />\n</si-password-strength>\n" }]
272
+ }] });
273
+
274
+ /**
275
+ * Copyright Siemens 2016 - 2025.
276
+ * SPDX-License-Identifier: MIT
277
+ */
278
+ class SiFormlySelectComponent extends FieldType {
279
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlySelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
280
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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 />\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 />\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", "hasFilter"], outputs: ["dropdownClose", "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])" }] });
281
+ }
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlySelectComponent, decorators: [{
283
+ type: Component,
284
+ args: [{ selector: 'si-formly-select', imports: [
285
+ FormsModule,
286
+ ReactiveFormsModule,
287
+ FormlyModule,
288
+ SiSelectComponent,
289
+ SiSelectSimpleOptionsDirective,
290
+ SiSelectMultiValueDirective,
291
+ SiSelectSingleValueDirective
292
+ ], 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 />\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 />\n}\n" }]
293
+ }] });
294
+
295
+ /**
296
+ * Copyright Siemens 2016 - 2025.
297
+ * SPDX-License-Identifier: MIT
298
+ */
299
+ const getFieldValue = (model, path) => {
300
+ for (const p of path) {
301
+ if (!model) {
302
+ return model;
303
+ }
304
+ model = model[p];
305
+ }
306
+ return model;
307
+ };
308
+ // Got this from @ngx-formly/core/lib/utils
309
+ const getKeyPath = (key) => {
310
+ if (!key) {
311
+ return [];
312
+ }
313
+ let path = [];
314
+ if (typeof key === 'string') {
315
+ const k = !key.includes('[') ? key : key.replace(/\[(\w+)\]/g, '.$1');
316
+ path = k.includes('.') ? k.split('.') : [k];
317
+ }
318
+ else if (Array.isArray(key)) {
319
+ path = key.slice(0);
320
+ }
321
+ else {
322
+ path = [`${key}`];
323
+ }
324
+ return path.slice(0);
325
+ };
326
+
327
+ /**
328
+ * Copyright Siemens 2016 - 2025.
329
+ * SPDX-License-Identifier: MIT
330
+ */
331
+ class SiFormlyTextDisplayComponent extends FieldType {
332
+ get value() {
333
+ if (!this.props.key) {
334
+ return this.formControl.value;
335
+ }
336
+ let sourceModel = this.model;
337
+ if (Array.isArray(this.model)) {
338
+ // The model is the arry itself when using this field as item into an array type...
339
+ sourceModel = this.formControl.value;
340
+ }
341
+ if (this.props.key.indexOf('.') === -1) {
342
+ // Special case for Array types:
343
+ return sourceModel[this.props.key];
344
+ }
345
+ const path = getKeyPath(this.props.key);
346
+ return getFieldValue(sourceModel, path);
347
+ }
348
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyTextDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
349
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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>\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: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1$3.SiTranslatePipe, name: "translate" }] });
350
+ }
351
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyTextDisplayComponent, decorators: [{
352
+ type: Component,
353
+ args: [{ selector: 'si-formly-text-display', imports: [FormlyModule, ReactiveFormsModule, SiTranslateModule], template: "<input type=\"hidden\" [id]=\"id\" [formControl]=\"formControl\" [formlyAttributes]=\"field\" />\n<div>\n @if (props.prefix) {\n {{ props.prefix | translate }}\n }\n {{ value }}\n @if (props.suffix) {\n {{ props.suffix | translate }}\n }\n</div>\n" }]
354
+ }] });
355
+
356
+ /**
357
+ * Copyright Siemens 2016 - 2025.
358
+ * SPDX-License-Identifier: MIT
359
+ */
360
+ class SiFormlyTextareaComponent extends FieldType {
361
+ textArea = viewChild.required('textArea');
362
+ contentGrowTextarea() {
363
+ return this.props.autoGrow ? `attr(data-replicated-value) ' '` : 'none';
364
+ }
365
+ resizeConfiguration() {
366
+ return this.props.resizable ? 'vertical' : 'none';
367
+ }
368
+ maxHeightConfiguration() {
369
+ return this.props.maxHeight ?? 'auto';
370
+ }
371
+ ngOnInit() {
372
+ this.formControl.valueChanges.subscribe(() => {
373
+ this.assignValueToParent();
374
+ });
375
+ }
376
+ ngAfterViewInit() {
377
+ this.assignValueToParent();
378
+ }
379
+ assignValueToParent() {
380
+ this.model.i = (this.model.i ?? 0) + 1;
381
+ this.textArea().nativeElement.parentNode.dataset.replicatedValue =
382
+ this.textArea().nativeElement.value;
383
+ }
384
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyTextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
385
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.6", 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 >\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"] }] });
386
+ }
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyTextareaComponent, decorators: [{
388
+ type: Component,
389
+ args: [{ selector: 'si-formly-textarea', imports: [FormsModule, ReactiveFormsModule, FormlyModule], 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 >\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"] }]
390
+ }] });
391
+
392
+ /**
393
+ * Copyright Siemens 2016 - 2025.
394
+ * SPDX-License-Identifier: MIT
395
+ */
396
+ class SiFormlyTimeComponent extends FieldType {
397
+ ngOnInit() {
398
+ // if the date value is in string then first convert it into date
399
+ this.convertValidStringToDate();
400
+ this.formControl.registerOnChange(() => this.convertValidStringToDate());
401
+ }
402
+ convertValidStringToDate() {
403
+ if (this.formControl && !(this.formControl.value && this.formControl.value instanceof Date)) {
404
+ const dateVal = new Date(this.formControl.value);
405
+ if (!isNaN(dateVal.valueOf())) {
406
+ this.formControl.setValue(dateVal);
407
+ }
408
+ else if (this.formControl.value !== '') {
409
+ this.formControl.setValue('');
410
+ }
411
+ }
412
+ }
413
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
414
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", type: SiFormlyTimeComponent, isStandalone: true, selector: "si-formly-time", usesInheritance: true, ngImport: i0, template: `<si-timepicker
415
+ [id]="id"
416
+ [hideLabels]="props.timeConfig?.hideLabels ?? true"
417
+ [showMinutes]="props.timeConfig?.showMinutes ?? true"
418
+ [showSeconds]="props.timeConfig?.showSeconds ?? false"
419
+ [showMilliseconds]="props.timeConfig?.showMilliseconds ?? false"
420
+ [showMeridian]="props.timeConfig?.showMeridian"
421
+ [formControl]="formControl"
422
+ [readonly]="props.readonly || false"
423
+ />`, 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"], 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"] }] });
424
+ }
425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyTimeComponent, decorators: [{
426
+ type: Component,
427
+ args: [{
428
+ selector: 'si-formly-time',
429
+ template: `<si-timepicker
430
+ [id]="id"
431
+ [hideLabels]="props.timeConfig?.hideLabels ?? true"
432
+ [showMinutes]="props.timeConfig?.showMinutes ?? true"
433
+ [showSeconds]="props.timeConfig?.showSeconds ?? false"
434
+ [showMilliseconds]="props.timeConfig?.showMilliseconds ?? false"
435
+ [showMeridian]="props.timeConfig?.showMeridian"
436
+ [formControl]="formControl"
437
+ [readonly]="props.readonly || false"
438
+ />`,
439
+ imports: [SiTimepickerComponent, ReactiveFormsModule]
440
+ }]
441
+ }] });
442
+
443
+ class SiFormlyTranslateExtension {
444
+ translate;
445
+ constructor(translate) {
446
+ this.translate = translate;
447
+ }
448
+ prePopulate(field) {
449
+ const to = field.props ?? {};
450
+ if (to.translate === false || to._translated) {
451
+ return;
452
+ }
453
+ field.expressions ??= {};
454
+ to._translated = true;
455
+ if (to.label) {
456
+ field.expressions['props.label'] = this.translate.translateAsync(to.label);
457
+ }
458
+ if (to.options) {
459
+ // e.g. a select
460
+ let i = -1;
461
+ to.options.forEach((val) => {
462
+ i++;
463
+ if (field.expressions) {
464
+ field.expressions[`props.options.${i}.label`] = this.translate.translateAsync(val.label);
465
+ }
466
+ });
467
+ }
468
+ if (to.placeholder) {
469
+ field.expressions['props.placeholder'] = this.translate.translateAsync(to.placeholder);
470
+ }
471
+ if (to.description) {
472
+ field.expressions['props.description'] = this.translate.translateAsync(to.description);
473
+ }
474
+ if (field.validation?.messages) {
475
+ const msgs = field.validation.messages;
476
+ for (const msg in msgs) {
477
+ if (typeof msgs[msg] === 'string') {
478
+ // This unfortunately blocks any opportunity to create context specific messages
479
+ // Specific messages could be done via the "map" function when the schema itself is parsed
480
+ field.expressions[`validation.messages.${msg}`] = this.translate.translateAsync(msgs[msg] + '');
481
+ }
482
+ }
483
+ }
484
+ // Trigger a change
485
+ field.expressions = { ...(field.expressions ?? {}) };
486
+ }
487
+ }
488
+
489
+ /**
490
+ * Copyright Siemens 2016 - 2025.
491
+ * SPDX-License-Identifier: MIT
492
+ */
493
+ class SiFormlyAccordionComponent extends FieldType {
494
+ panelToggle(toggle, fieldGroup) {
495
+ if (this.field.fieldGroup) {
496
+ const openPanelField = this.field.fieldGroup?.find(f => f.props?.opened);
497
+ if (openPanelField?.props) {
498
+ openPanelField.props.opened = false;
499
+ }
500
+ }
501
+ if (fieldGroup.props) {
502
+ fieldGroup.props.opened = toggle;
503
+ }
504
+ }
505
+ ngAfterViewInit() {
506
+ if (this.props?.expandFirstPanel !== false) {
507
+ if (this.field.fieldGroup?.[0].props) {
508
+ this.field.fieldGroup[0].props.opened = true;
509
+ }
510
+ }
511
+ }
512
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyAccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
513
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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 [colorVariant]=\"props.colorVariant\"\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", "toggle"] }, { 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", "colorVariant"] }] });
514
+ }
515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyAccordionComponent, decorators: [{
516
+ type: Component,
517
+ args: [{ selector: 'si-formly-accordion', imports: [SiCollapsiblePanelComponent, FormlyModule, SiAccordionComponent], template: "<si-accordion\n #accordion\n [expandFirstPanel]=\"props.expandFirstPanel ?? accordion.expandFirstPanel()\"\n [fullHeight]=\"props.fullHeight ?? accordion.fullHeight()\"\n [hcollapsed]=\"props.hcollapsed ?? accordion.collapsed()\"\n [colorVariant]=\"props.colorVariant\"\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" }]
518
+ }] });
519
+
520
+ /**
521
+ * Copyright Siemens 2016 - 2025.
522
+ * SPDX-License-Identifier: MIT
523
+ */
524
+ class SiFormlyArrayComponent extends FieldArrayType {
525
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyArrayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
526
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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 }\n @if (!props.removeText) {\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 }\n @if (!props.addText) {\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: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1$3.SiTranslatePipe, name: "translate" }] });
527
+ }
528
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyArrayComponent, decorators: [{
529
+ type: Component,
530
+ args: [{ selector: 'si-formly-array', imports: [FormlyModule, SiTranslateModule], 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 }\n @if (!props.removeText) {\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 }\n @if (!props.addText) {\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"add()\"> + </button>\n }\n </div>\n }\n</div>\n" }]
531
+ }] });
532
+
533
+ /**
534
+ * Copyright Siemens 2016 - 2025.
535
+ * SPDX-License-Identifier: MIT
536
+ */
537
+ class SiFormlyObjectGridComponent extends FieldType {
538
+ rows = [];
539
+ /**
540
+ * Template option to suppress displaying error messages that relate
541
+ * to the formControl of this grid (see formControl.errors).
542
+ */
543
+ suppressFormErrorDisplay = false;
544
+ get containerClass() {
545
+ if (Array.isArray(this.props.containerClass) && this.props.containerClass.length > 0) {
546
+ return this.props.containerClass;
547
+ }
548
+ return typeof this.props.containerClass === 'string' ? this.props.containerClass : 'container';
549
+ }
550
+ ngOnInit() {
551
+ this.setRows();
552
+ this.suppressFormErrorDisplay = this.props.suppressFormErrorDisplay === true;
553
+ }
554
+ get displayErrorMessages() {
555
+ return this.showError && !!this.formControl.errors && !this.suppressFormErrorDisplay;
556
+ }
557
+ setRows() {
558
+ this.rows.length = 0;
559
+ if (!Array.isArray(this.props.gridConfig) || this.props.gridConfig.length === 0) {
560
+ this.rows = [
561
+ {
562
+ classes: ['row'],
563
+ columns: [{ classes: ['col-sm'], fields: this.field.fieldGroup }]
564
+ }
565
+ ];
566
+ }
567
+ const gridConfig = this.props.gridConfig;
568
+ const fieldGroup = [...(this.field.fieldGroup ?? [])];
569
+ gridConfig.forEach(rowConfig => {
570
+ const columns = [];
571
+ rowConfig.columns.forEach(config => {
572
+ const fields = fieldGroup.splice(0, config.fieldCount < 0 ? fieldGroup.length : config.fieldCount);
573
+ const colClasses = config.classes ?? [];
574
+ if (colClasses.length === 0) {
575
+ colClasses.push('col');
576
+ }
577
+ columns.push({ fields, classes: colClasses });
578
+ });
579
+ const rowClasses = rowConfig.classes ?? [];
580
+ if (rowClasses.length === 0) {
581
+ rowClasses.push('row');
582
+ }
583
+ this.rows.push({ classes: rowClasses, columns });
584
+ });
585
+ }
586
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyObjectGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
587
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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"] }] });
588
+ }
589
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyObjectGridComponent, decorators: [{
590
+ type: Component,
591
+ args: [{ selector: 'si-formly-object-grid', imports: [FormlyModule, SiFormContainerComponent], 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" }]
592
+ }] });
593
+
594
+ /**
595
+ * Copyright Siemens 2016 - 2025.
596
+ * SPDX-License-Identifier: MIT
597
+ */
598
+ class SiFormlyObjectPlainComponent extends FieldType {
599
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyObjectPlainComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
600
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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"] }] });
601
+ }
602
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyObjectPlainComponent, decorators: [{
603
+ type: Component,
604
+ args: [{ selector: 'si-formly-object-plain', imports: [FormlyModule], 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" }]
605
+ }] });
606
+
607
+ /**
608
+ * Copyright Siemens 2016 - 2025.
609
+ * SPDX-License-Identifier: MIT
610
+ */
611
+ class SiFormlyObjectComponent extends FieldType {
612
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyObjectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
613
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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"] }] });
614
+ }
615
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyObjectComponent, decorators: [{
616
+ type: Component,
617
+ args: [{ selector: 'si-formly-object', imports: [FormlyModule], 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" }]
618
+ }] });
619
+
620
+ /**
621
+ * Copyright Siemens 2016 - 2025.
622
+ * SPDX-License-Identifier: MIT
623
+ */
624
+ class SiFormlyObjectTabsetComponent extends FieldType {
625
+ tabIndexChange(selectedTab) {
626
+ if (this.options?.formState) {
627
+ this.options.formState.selectedTabIndex = selectedTab;
628
+ }
629
+ }
630
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyObjectTabsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
631
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiFormlyObjectTabsetComponent, isStandalone: true, selector: "si-formly-object-tabset", usesInheritance: true, ngImport: i0, template: "<si-tabset\n class=\"d-flex si-layout-fixed-height\"\n [selectedTabIndex]=\"options.formState?.selectedTabIndex ?? 0\"\n (selectedTabIndexChange)=\"tabIndexChange($event)\"\n>\n @for (f of field.fieldGroup; track $index) {\n @if (!(f.props?.hidden === true)) {\n <si-tab class=\"overflow-auto pt-8\" [heading]=\"f.props?.label || ''\">\n <formly-field [field]=\"f\" [formlyAttributes]=\"field\" />\n </si-tab>\n }\n }\n</si-tabset>\n", dependencies: [{ kind: "component", type: SiTabsetComponent, selector: "si-tabset", inputs: ["selectDefaultTab", "selectedTabIndex", "tabButtonMaxWidth"], outputs: ["selectedTabIndexChange", "deselect"] }, { kind: "component", type: SiTabComponent, selector: "si-tab", inputs: ["heading", "icon", "iconAltText", "badgeContent", "badgeColor", "disabled", "closable"], outputs: ["closeTriggered"] }, { 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"] }] });
632
+ }
633
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyObjectTabsetComponent, decorators: [{
634
+ type: Component,
635
+ args: [{ selector: 'si-formly-object-tabset', imports: [SiTabsetComponent, SiTabComponent, FormlyModule], template: "<si-tabset\n class=\"d-flex si-layout-fixed-height\"\n [selectedTabIndex]=\"options.formState?.selectedTabIndex ?? 0\"\n (selectedTabIndexChange)=\"tabIndexChange($event)\"\n>\n @for (f of field.fieldGroup; track $index) {\n @if (!(f.props?.hidden === true)) {\n <si-tab class=\"overflow-auto pt-8\" [heading]=\"f.props?.label || ''\">\n <formly-field [field]=\"f\" [formlyAttributes]=\"field\" />\n </si-tab>\n }\n }\n</si-tabset>\n" }]
636
+ }] });
637
+
638
+ /**
639
+ * Copyright Siemens 2016 - 2025.
640
+ * SPDX-License-Identifier: MIT
641
+ */
642
+ class SiFormlyFieldsetComponent extends FieldWrapper {
643
+ get label() {
644
+ return this.props.label && this.props.hideLabel !== true ? this.props.label : undefined;
645
+ }
646
+ get labelWidth() {
647
+ return this.props.labelWidth ? this.props.labelWidth + 'px' : undefined;
648
+ }
649
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyFieldsetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
650
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", 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"] }] });
651
+ }
652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyFieldsetComponent, decorators: [{
653
+ type: Component,
654
+ args: [{ selector: 'si-formly-fieldset', imports: [FormlyModule, SiFormFieldsetComponent], 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" }]
655
+ }] });
656
+
657
+ /**
658
+ * Copyright Siemens 2016 - 2025.
659
+ * SPDX-License-Identifier: MIT
660
+ */
661
+ class SiFormlyHorizontalWrapperComponent extends FieldWrapper {
662
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyHorizontalWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
663
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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"] }] });
664
+ }
665
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyHorizontalWrapperComponent, decorators: [{
666
+ type: Component,
667
+ args: [{ selector: 'si-formly-horizontal-wrapper', imports: [FormlyModule], 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" }]
668
+ }] });
669
+
670
+ /**
671
+ * Copyright Siemens 2016 - 2025.
672
+ * SPDX-License-Identifier: MIT
673
+ */
674
+ class SiFormlyIconWrapperComponent extends FieldWrapper {
675
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyIconWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
676
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", 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\"\n [style]=\"'font-size: ' + (props.iconSize ? props.iconSize : 24) + 'px'\"\n [siTooltip]=\"props.iconTooltip | translate\"\n >\n <i [class]=\"props.icon\"></i>\n </div>\n }\n</div>\n", styles: [".flex-1{flex:1}.wrapper-icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: SiTooltipDirective, selector: "[siTooltip]", inputs: ["siTooltip", "placement", "triggers", "isDisabled"] }, { kind: "ngmodule", type: SiTranslateModule }, { kind: "pipe", type: i1$3.SiTranslatePipe, name: "translate" }] });
677
+ }
678
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyIconWrapperComponent, decorators: [{
679
+ type: Component,
680
+ args: [{ selector: 'si-formly-icon-wrapper', imports: [SiTooltipDirective, SiTranslateModule], 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\"\n [style]=\"'font-size: ' + (props.iconSize ? props.iconSize : 24) + 'px'\"\n [siTooltip]=\"props.iconTooltip | translate\"\n >\n <i [class]=\"props.icon\"></i>\n </div>\n }\n</div>\n", styles: [".flex-1{flex:1}.wrapper-icon{display:flex;align-items:center}\n"] }]
681
+ }] });
682
+
683
+ /**
684
+ * Copyright Siemens 2016 - 2025.
685
+ * SPDX-License-Identifier: MIT
686
+ */
687
+ class SiFormlyFormFieldProviderDirective {
688
+ field = input.required();
689
+ id = computed(() => this.field().id);
690
+ isFormCheck;
691
+ labelledby = computed(() => {
692
+ const fieldValue = this.field();
693
+ if (fieldValue.props?.useAriaLabel) {
694
+ return fieldValue.id + '-label';
695
+ }
696
+ else {
697
+ return undefined;
698
+ }
699
+ });
700
+ ngOnChanges() {
701
+ this.isFormCheck = this.field().type === 'checkbox' || this.field().type === 'boolean';
702
+ }
703
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyFormFieldProviderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
704
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.6", 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 });
705
+ }
706
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyFormFieldProviderDirective, decorators: [{
707
+ type: Directive,
708
+ args: [{
709
+ selector: '[siFormlyFormFieldProvider]',
710
+ providers: [{ provide: SI_FORM_ITEM_CONTROL, useExisting: SiFormlyFormFieldProviderDirective }]
711
+ }]
712
+ }] });
713
+
714
+ /**
715
+ * Copyright Siemens 2016 - 2025.
716
+ * SPDX-License-Identifier: MIT
717
+ */
718
+ class SiFormlyWrapperComponent extends FieldWrapper {
719
+ get label() {
720
+ return this.props.label && this.props.hideLabel !== true ? this.props.label : undefined;
721
+ }
722
+ get labelWidth() {
723
+ return this.props.labelWidth;
724
+ }
725
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
726
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.6", type: SiFormlyWrapperComponent, isStandalone: true, selector: "si-formly-wrapper", usesInheritance: true, ngImport: i0, template: "<si-form-item [label]=\"label\" [labelWidth]=\"labelWidth\" [required]=\"props.required\">\n <div class=\"w-100\" siFormlyFormFieldProvider [field]=\"field\">\n <ng-template #fieldComponent />\n <div class=\"invalid-feedback\" [class.d-block]=\"showError\">\n <formly-validation-message [field]=\"field\" />\n </div>\n </div>\n</si-form-item>\n", dependencies: [{ kind: "component", type: SiFormItemComponent, selector: "si-form-item", inputs: ["inputId", "label", "labelWidth", "readonly", "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"] }] });
727
+ }
728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyWrapperComponent, decorators: [{
729
+ type: Component,
730
+ args: [{ selector: 'si-formly-wrapper', imports: [SiFormItemComponent, FormlyModule, SiFormlyFormFieldProviderDirective], template: "<si-form-item [label]=\"label\" [labelWidth]=\"labelWidth\" [required]=\"props.required\">\n <div class=\"w-100\" siFormlyFormFieldProvider [field]=\"field\">\n <ng-template #fieldComponent />\n <div class=\"invalid-feedback\" [class.d-block]=\"showError\">\n <formly-validation-message [field]=\"field\" />\n </div>\n </div>\n</si-form-item>\n" }]
731
+ }] });
732
+
733
+ /**
734
+ * Copyright Siemens 2016 - 2025.
735
+ * SPDX-License-Identifier: MIT
736
+ */
737
+ const dynamicUiConfig = (translate) => {
738
+ return {
739
+ types: [
740
+ { name: 'string', extends: 'input' },
741
+ {
742
+ name: 'integer',
743
+ extends: 'input',
744
+ defaultOptions: {
745
+ props: {
746
+ type: 'number'
747
+ }
748
+ }
749
+ },
750
+ {
751
+ name: 'checkbox',
752
+ defaultOptions: {
753
+ props: {
754
+ formCheck: 'form-check'
755
+ }
756
+ }
757
+ },
758
+ { name: 'boolean', extends: 'checkbox' },
759
+ { name: 'multicheckbox', component: FormlyFieldMultiCheckbox, wrappers: ['form-fieldset'] },
760
+ { name: 'radio', component: FormlyFieldRadio, wrappers: ['form-fieldset'] },
761
+ { name: 'enum', extends: 'select' },
762
+ { name: 'array', component: SiFormlyArrayComponent },
763
+ { name: 'object', component: SiFormlyObjectComponent },
764
+ { name: 'object-plain', component: SiFormlyObjectPlainComponent },
765
+ { name: 'object-grid', component: SiFormlyObjectGridComponent },
766
+ { name: 'tabset', component: SiFormlyObjectTabsetComponent },
767
+ { name: 'accordion', component: SiFormlyAccordionComponent },
768
+ { name: 'textdisplay', component: SiFormlyTextDisplayComponent },
769
+ { name: 'email', component: SiFormlyEmailComponent, wrappers: ['form-field'] },
770
+ { name: 'date', component: SiFormlyDateTimeComponent, wrappers: ['form-field'] },
771
+ { name: 'datetime', extends: 'date' },
772
+ { name: 'ipv4', component: SiFormlyIpInputComponent, wrappers: ['form-field'] },
773
+ {
774
+ name: 'ipv6',
775
+ extends: 'ipv4'
776
+ },
777
+ { name: 'date-range', component: SiFormlyDateRangeComponent, wrappers: ['form-field'] },
778
+ { name: 'password', component: SiFormlyPasswordComponent, wrappers: ['form-field'] },
779
+ { name: 'number', component: SiFormlyNumberComponent, wrappers: ['form-field'] },
780
+ { name: 'textarea', component: SiFormlyTextareaComponent, wrappers: ['form-field'] },
781
+ { name: 'button', component: SiFormlyButtonComponent },
782
+ {
783
+ name: 'si-select',
784
+ component: SiFormlySelectComponent,
785
+ wrappers: ['form-field'],
786
+ defaultOptions: { props: { useAriaLabel: true } }
787
+ },
788
+ {
789
+ name: 'time',
790
+ component: SiFormlyTimeComponent,
791
+ wrappers: ['form-field'],
792
+ defaultOptions: { props: { useAriaLabel: true } }
793
+ }
794
+ ],
795
+ wrappers: [
796
+ // { name: 'form-field-original', component: FormlyWrapperFormField }, // Overrides the default
797
+ { name: 'form-field', component: SiFormlyWrapperComponent }, // Overrides the default
798
+ { name: 'form-fieldset', component: SiFormlyFieldsetComponent },
799
+ { name: 'form-field-no-icon', component: SiFormlyWrapperComponent },
800
+ { name: 'form-field-horizontal', component: SiFormlyHorizontalWrapperComponent },
801
+ { name: 'icon-wrapper', component: SiFormlyIconWrapperComponent }
802
+ ],
803
+ extensions: [
804
+ {
805
+ name: 'translate',
806
+ extension: new SiFormlyTranslateExtension(translate)
807
+ }
808
+ ]
809
+ };
810
+ };
811
+ class SiFormlyModule {
812
+ config = inject(FormlyConfig);
813
+ configs = inject(FORMLY_CONFIG, { optional: true });
814
+ static forRoot(formlyConfig = {}) {
815
+ return {
816
+ ngModule: SiFormlyModule,
817
+ providers: [
818
+ { provide: FORMLY_CONFIG, useValue: formlyConfig, multi: true },
819
+ FormlyConfig,
820
+ FormlyFormBuilder
821
+ ]
822
+ };
823
+ }
824
+ constructor() {
825
+ if (!this.configs) {
826
+ return;
827
+ }
828
+ this.configs.forEach(configuration => {
829
+ this.config.addConfig(configuration);
830
+ });
831
+ }
832
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
833
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyModule, declarations: [SiFormlyComponent], imports: [CommonModule,
834
+ FormlyBootstrapModule,
835
+ FormlyModule,
836
+ ReactiveFormsModule,
837
+ SiFormlyIpInputComponent,
838
+ SiFormlyAccordionComponent,
839
+ SiFormlyArrayComponent,
840
+ SiFormlyButtonComponent,
841
+ SiFormlyDateTimeComponent,
842
+ SiFormlyEmailComponent,
843
+ SiFormlyHorizontalWrapperComponent,
844
+ SiFormlyIconWrapperComponent,
845
+ SiFormlyObjectComponent,
846
+ SiFormlyObjectGridComponent,
847
+ SiFormlyObjectPlainComponent,
848
+ SiFormlyObjectTabsetComponent,
849
+ SiFormlyPasswordComponent,
850
+ SiFormlySelectComponent,
851
+ SiFormlyTextareaComponent,
852
+ SiFormlyTextDisplayComponent,
853
+ SiFormlyWrapperComponent,
854
+ SiFormModule], exports: [SiFormlyComponent] });
855
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyModule, providers: [
856
+ {
857
+ provide: FORMLY_CONFIG,
858
+ multi: true,
859
+ useFactory: dynamicUiConfig,
860
+ deps: [SiTranslateService]
861
+ }
862
+ ], imports: [CommonModule,
863
+ FormlyBootstrapModule,
864
+ FormlyModule,
865
+ ReactiveFormsModule,
866
+ SiFormlyIpInputComponent,
867
+ SiFormlyAccordionComponent,
868
+ SiFormlyArrayComponent,
869
+ SiFormlyButtonComponent,
870
+ SiFormlyDateTimeComponent,
871
+ SiFormlyEmailComponent,
872
+ SiFormlyHorizontalWrapperComponent,
873
+ SiFormlyIconWrapperComponent,
874
+ SiFormlyObjectComponent,
875
+ SiFormlyObjectGridComponent,
876
+ SiFormlyObjectPlainComponent,
877
+ SiFormlyObjectTabsetComponent,
878
+ SiFormlyPasswordComponent,
879
+ SiFormlySelectComponent,
880
+ SiFormlyTextareaComponent,
881
+ SiFormlyTextDisplayComponent,
882
+ SiFormlyWrapperComponent,
883
+ SiFormModule] });
884
+ }
885
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiFormlyModule, decorators: [{
886
+ type: NgModule,
887
+ args: [{
888
+ declarations: [SiFormlyComponent],
889
+ exports: [SiFormlyComponent],
890
+ imports: [
891
+ CommonModule,
892
+ FormlyBootstrapModule,
893
+ FormlyModule,
894
+ ReactiveFormsModule,
895
+ SiFormlyIpInputComponent,
896
+ SiFormlyAccordionComponent,
897
+ SiFormlyArrayComponent,
898
+ SiFormlyButtonComponent,
899
+ SiFormlyDateTimeComponent,
900
+ SiFormlyEmailComponent,
901
+ SiFormlyHorizontalWrapperComponent,
902
+ SiFormlyIconWrapperComponent,
903
+ SiFormlyObjectComponent,
904
+ SiFormlyObjectGridComponent,
905
+ SiFormlyObjectPlainComponent,
906
+ SiFormlyObjectTabsetComponent,
907
+ SiFormlyPasswordComponent,
908
+ SiFormlySelectComponent,
909
+ SiFormlyTextareaComponent,
910
+ SiFormlyTextDisplayComponent,
911
+ SiFormlyWrapperComponent,
912
+ SiFormModule
913
+ ],
914
+ providers: [
915
+ {
916
+ provide: FORMLY_CONFIG,
917
+ multi: true,
918
+ useFactory: dynamicUiConfig,
919
+ deps: [SiTranslateService]
920
+ }
921
+ ]
922
+ }]
923
+ }], ctorParameters: () => [] });
924
+
925
+ /**
926
+ * Copyright Siemens 2016 - 2025.
927
+ * SPDX-License-Identifier: MIT
928
+ */
929
+
930
+ /**
931
+ * Generated bundle index. Do not edit.
932
+ */
933
+
934
+ export { SiFormlyComponent, SiFormlyModule };
935
+ //# sourceMappingURL=siemens-element-ng-formly.mjs.map