@kominal/common-angular 0.0.16 → 0.0.17

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.
@@ -1,7 +1,8 @@
1
1
  import * as i3 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { input, Component, inject, Pipe, computed, signal, effect } from '@angular/core';
4
+ import { inject, DestroyRef, input, signal, effect, Component, Pipe, computed } from '@angular/core';
5
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
6
  import * as i2 from '@angular/forms';
6
7
  import { Validators, ReactiveFormsModule } from '@angular/forms';
7
8
  import { TranslatePipe, TranslateService, TranslateModule } from '@ngx-translate/core';
@@ -20,15 +21,23 @@ import * as i1$2 from 'primeng/textarea';
20
21
  import { TextareaModule } from 'primeng/textarea';
21
22
 
22
23
  class LabelComponent {
24
+ destroyRef = inject(DestroyRef);
23
25
  label = input.required();
24
26
  formElement = input.required();
27
+ required = signal(false);
28
+ constructor() {
29
+ effect(() => {
30
+ const formElement = this.formElement();
31
+ formElement.statusChanges.pipe(startWith(undefined), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.required.set(formElement.hasValidator(Validators.required)));
32
+ });
33
+ }
25
34
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: LabelComponent, isStandalone: true, selector: "app-label", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, formElement: { classPropertyName: "formElement", publicName: "formElement", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<span>{{ label() | translate }}</span>\r\n", dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }] });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: LabelComponent, isStandalone: true, selector: "app-label", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, formElement: { classPropertyName: "formElement", publicName: "formElement", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<span>{{ label() | translate }}{{ required() ? ' *' : '' }}</span>\r\n", dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }] });
27
36
  }
28
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: LabelComponent, decorators: [{
29
38
  type: Component,
30
- args: [{ selector: 'app-label', imports: [TranslatePipe], template: "<span>{{ label() | translate }}</span>\r\n" }]
31
- }] });
39
+ args: [{ selector: 'app-label', imports: [TranslatePipe], template: "<span>{{ label() | translate }}{{ required() ? ' *' : '' }}</span>\r\n" }]
40
+ }], ctorParameters: () => [] });
32
41
 
33
42
  class TranslateSelectItemsPipe {
34
43
  translateService = inject(TranslateService);
@@ -140,6 +149,7 @@ function generateRandomString(length) {
140
149
  }
141
150
 
142
151
  class EnumInputComponent {
152
+ destroyRef = inject(DestroyRef);
143
153
  label = input.required();
144
154
  enum = input.required();
145
155
  enumName = input.required();
@@ -150,8 +160,8 @@ class EnumInputComponent {
150
160
  constructor() {
151
161
  effect(() => {
152
162
  const formElement = this.formElement();
153
- formElement.statusChanges.pipe(startWith(undefined)).subscribe(() => this.required.set(formElement.hasValidator(Validators.required)));
154
- }, { allowSignalWrites: true });
163
+ formElement.statusChanges.pipe(startWith(undefined), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.required.set(formElement.hasValidator(Validators.required)));
164
+ });
155
165
  }
156
166
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: EnumInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
157
167
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.10", type: EnumInputComponent, isStandalone: true, selector: "app-enum-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, enum: { classPropertyName: "enum", publicName: "enum", isSignal: true, isRequired: true, transformFunction: null }, enumName: { classPropertyName: "enumName", publicName: "enumName", isSignal: true, isRequired: true, transformFunction: null }, formElement: { classPropertyName: "formElement", publicName: "formElement", isSignal: true, isRequired: true, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "flex flex-col gap-1 w-full" }, ngImport: i0, template: "<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n@if (mode() === 'DROPDOWN') {\r\n <p-dropdown\r\n [filter]=\"true\"\r\n class=\"w-full\"\r\n styleClass=\"w-full\"\r\n appendTo=\"body\"\r\n [formControl]=\"formElement()\"\r\n [options]=\"(options() | translateSelectItems | async) || []\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [showClear]=\"!required()\"\r\n ></p-dropdown>\r\n}\r\n@if (mode() === 'BUTTON') {\r\n <p-selectButton [formControl]=\"formElement()\" [options]=\"(options() | translateSelectItems | async) || []\" optionLabel=\"label\" optionValue=\"value\" />\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$1.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslateSelectItemsPipe, name: "translateSelectItems" }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: LabelComponent, selector: "app-label", inputs: ["label", "formElement"] }, { kind: "ngmodule", type: SelectButtonModule }, { kind: "component", type: i4.SelectButton, selector: "p-selectButton, p-selectbutton, p-select-button", inputs: ["options", "optionLabel", "optionValue", "optionDisabled", "unselectable", "tabindex", "multiple", "allowEmpty", "style", "styleClass", "ariaLabelledBy", "size", "disabled", "dataKey", "autofocus"], outputs: ["onOptionClick", "onChange"] }] });
@@ -162,16 +172,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
162
172
  }], ctorParameters: () => [] });
163
173
 
164
174
  class InputDateComponent {
175
+ destroyRef = inject(DestroyRef);
165
176
  label = input.required();
166
177
  formElement = input.required();
167
- showClear = input(true);
178
+ required = signal(false);
179
+ constructor() {
180
+ effect(() => {
181
+ const formElement = this.formElement();
182
+ formElement.statusChanges.pipe(startWith(undefined), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.required.set(formElement.hasValidator(Validators.required)));
183
+ });
184
+ }
168
185
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: InputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
169
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: InputDateComponent, isStandalone: true, selector: "app-input-date", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, formElement: { classPropertyName: "formElement", publicName: "formElement", isSignal: true, isRequired: true, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "flex flex-col gap-1 w-full" }, ngImport: i0, template: "<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-datepicker [readonlyInput]=\"true\" [formControl]=\"formElement()\" styleClass=\"w-full\" dateFormat=\"dd.mm.yy\" [showClear]=\"showClear()\" appendTo=\"body\" />\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: LabelComponent, selector: "app-label", inputs: ["label", "formElement"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i2$2.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }] });
186
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: InputDateComponent, isStandalone: true, selector: "app-input-date", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, formElement: { classPropertyName: "formElement", publicName: "formElement", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "flex flex-col gap-1 w-full" }, ngImport: i0, template: "<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-datepicker [formControl]=\"formElement()\" styleClass=\"w-full\" dateFormat=\"dd.mm.yy\" [showClear]=\"!required()\" appendTo=\"body\" />\r\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: LabelComponent, selector: "app-label", inputs: ["label", "formElement"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i2$2.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }] });
170
187
  }
171
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: InputDateComponent, decorators: [{
172
189
  type: Component,
173
- args: [{ selector: 'app-input-date', imports: [ReactiveFormsModule, LabelComponent, DatePickerModule], host: { class: 'flex flex-col gap-1 w-full' }, template: "<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-datepicker [readonlyInput]=\"true\" [formControl]=\"formElement()\" styleClass=\"w-full\" dateFormat=\"dd.mm.yy\" [showClear]=\"showClear()\" appendTo=\"body\" />\r\n" }]
174
- }] });
190
+ args: [{ selector: 'app-input-date', imports: [ReactiveFormsModule, LabelComponent, DatePickerModule], host: { class: 'flex flex-col gap-1 w-full' }, template: "<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-datepicker [formControl]=\"formElement()\" styleClass=\"w-full\" dateFormat=\"dd.mm.yy\" [showClear]=\"!required()\" appendTo=\"body\" />\r\n" }]
191
+ }], ctorParameters: () => [] });
175
192
 
176
193
  class InputNumberComponent {
177
194
  label = input.required();
@@ -188,17 +205,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
188
205
  }] });
189
206
 
190
207
  class InputSelectComponent {
208
+ destroyRef = inject(DestroyRef);
191
209
  label = input.required();
192
210
  formElement = input.required();
193
211
  options = input.required();
194
- showClear = input(true);
212
+ required = signal(false);
213
+ constructor() {
214
+ effect(() => {
215
+ const formElement = this.formElement();
216
+ formElement.statusChanges.pipe(startWith(undefined), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.required.set(formElement.hasValidator(Validators.required)));
217
+ });
218
+ }
195
219
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: InputSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
196
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: InputSelectComponent, isStandalone: true, selector: "app-input-select", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, formElement: { classPropertyName: "formElement", publicName: "formElement", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, showClear: { classPropertyName: "showClear", publicName: "showClear", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "flex flex-col gap-1 w-full" }, ngImport: i0, template: "<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-dropdown\r\n [filter]=\"true\"\r\n class=\"w-full\"\r\n styleClass=\"w-full\"\r\n appendTo=\"body\"\r\n [formControl]=\"formElement()\"\r\n [options]=\"options() || []\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [showClear]=\"showClear()\"\r\n></p-dropdown>\r\n", dependencies: [{ kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$1.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: LabelComponent, selector: "app-label", inputs: ["label", "formElement"] }] });
220
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.10", type: InputSelectComponent, isStandalone: true, selector: "app-input-select", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, formElement: { classPropertyName: "formElement", publicName: "formElement", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "flex flex-col gap-1 w-full" }, ngImport: i0, template: "<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-dropdown\r\n [filter]=\"true\"\r\n class=\"w-full\"\r\n styleClass=\"w-full\"\r\n appendTo=\"body\"\r\n [formControl]=\"formElement()\"\r\n [options]=\"options() || []\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [showClear]=\"!required()\"\r\n></p-dropdown>\r\n", dependencies: [{ kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$1.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: LabelComponent, selector: "app-label", inputs: ["label", "formElement"] }] });
197
221
  }
198
222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: InputSelectComponent, decorators: [{
199
223
  type: Component,
200
- args: [{ selector: 'app-input-select', imports: [DropdownModule, ReactiveFormsModule, LabelComponent], host: { class: 'flex flex-col gap-1 w-full' }, template: "<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-dropdown\r\n [filter]=\"true\"\r\n class=\"w-full\"\r\n styleClass=\"w-full\"\r\n appendTo=\"body\"\r\n [formControl]=\"formElement()\"\r\n [options]=\"options() || []\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [showClear]=\"showClear()\"\r\n></p-dropdown>\r\n" }]
201
- }] });
224
+ args: [{ selector: 'app-input-select', imports: [DropdownModule, ReactiveFormsModule, LabelComponent], host: { class: 'flex flex-col gap-1 w-full' }, template: "<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-dropdown\r\n [filter]=\"true\"\r\n class=\"w-full\"\r\n styleClass=\"w-full\"\r\n appendTo=\"body\"\r\n [formControl]=\"formElement()\"\r\n [options]=\"options() || []\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [showClear]=\"!required()\"\r\n></p-dropdown>\r\n" }]
225
+ }], ctorParameters: () => [] });
202
226
 
203
227
  class InputTextComponent {
204
228
  label = input.required();
@@ -1 +1 @@
1
- {"version":3,"file":"kominal-common-angular.mjs","sources":["../../../projects/common-angular/src/lib/label/label.component.ts","../../../projects/common-angular/src/lib/label/label.component.html","../../../projects/common-angular/src/lib/pipes/translate-select-items.pipe.ts","../../../projects/common-angular/src/lib/util.ts","../../../projects/common-angular/src/lib/enum-input/enum-input.component.ts","../../../projects/common-angular/src/lib/enum-input/enum-input.component.html","../../../projects/common-angular/src/lib/input-date/input-date.component.ts","../../../projects/common-angular/src/lib/input-date/input-date.component.html","../../../projects/common-angular/src/lib/input-number/input-number.component.ts","../../../projects/common-angular/src/lib/input-number/input-number.component.html","../../../projects/common-angular/src/lib/input-select/input-select.component.ts","../../../projects/common-angular/src/lib/input-select/input-select.component.html","../../../projects/common-angular/src/lib/input-text/input-text.component.ts","../../../projects/common-angular/src/lib/input-text/input-text.component.html","../../../projects/common-angular/src/lib/input-textarea/input-textarea.component.ts","../../../projects/common-angular/src/lib/input-textarea/input-textarea.component.html","../../../projects/common-angular/src/public-api.ts","../../../projects/common-angular/src/kominal-common-angular.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-label',\r\n imports: [TranslatePipe],\r\n templateUrl: './label.component.html',\r\n})\r\nexport class LabelComponent {\r\n public label = input.required<string>();\r\n public formElement = input.required<AbstractControl>();\r\n}\r\n","<span>{{ label() | translate }}</span>\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SelectItem } from 'primeng/api';\nimport { map, Observable, startWith } from 'rxjs';\n\n@Pipe({\n name: 'translateSelectItems',\n standalone: true,\n})\nexport class TranslateSelectItemsPipe implements PipeTransform {\n private translateService = inject(TranslateService);\n\n public transform(value: SelectItem[]): Observable<SelectItem[]> {\n return this.translateService.onLangChange.pipe(\n startWith(this.translateService.currentLang),\n map((): SelectItem[] =>\n value.map((item) => ({\n label: this.translateService.instant(item.label!),\n value: item.value,\n })),\n ),\n );\n }\n}\n","import { FormArray } from '@angular/forms';\nimport { SelectItem } from 'primeng/api';\nimport { OperatorFunction, shareReplay } from 'rxjs';\n\nexport function moveControlInFormArray(formArray: FormArray, previousIndex: number, currentIndex: number): void {\n const dir = currentIndex > previousIndex ? 1 : -1;\n\n const temp = formArray.at(previousIndex);\n for (let i = previousIndex; i * dir < currentIndex * dir; i += dir) {\n const current = formArray.at(i + dir);\n formArray.setControl(i, current);\n }\n formArray.setControl(currentIndex, temp);\n formArray.markAsDirty();\n}\n\nexport function moveUpInFormArray(formArray: FormArray, previousIndex: number): void {\n const currentIndex = previousIndex - 1;\n\n if (currentIndex >= 0) {\n moveControlInFormArray(formArray, previousIndex, currentIndex);\n }\n}\n\nexport function moveDownInFormArray(formArray: FormArray, previousIndex: number): void {\n const currentIndex = previousIndex + 1;\n\n if (currentIndex < formArray.length) {\n moveControlInFormArray(formArray, previousIndex, currentIndex);\n }\n}\n\nexport function shareReplayOne<T>(): OperatorFunction<T, T> {\n return shareReplay({ bufferSize: 1, refCount: true });\n}\n\nexport class ListRequest {\n public active?: string;\n public direction?: string;\n public pageIndex?: number;\n public pageSize?: number;\n public filter?: string;\n public select?: string;\n}\n\nexport function toListRequest<T>(conditions: any | undefined, additionalFilters?: Partial<Record<keyof T, any>>, select?: (keyof T)[]): ListRequest {\n if (!conditions && !additionalFilters && !select) {\n return {};\n }\n\n if (!conditions) {\n return {\n filter: JSON.stringify(additionalFilters),\n select: select?.join(' '),\n };\n }\n\n const filter: any = {};\n\n for (const [key, value] of Object.entries<any>(conditions.filters || {})) {\n if (value) {\n if (value.matchMode === 'startsWith' && value.value) {\n filter[key] = { $regex: `^${value.value}`, $options: 'i' };\n }\n if (value.matchMode === 'contains' && value.value) {\n filter[key] = { $regex: `${value.value}`, $options: 'i' };\n }\n if (value.matchMode === 'notContains' && value.value) {\n filter[key] = { $not: { $regex: `${value.value}`, $options: 'i' } };\n }\n if (value.matchMode === 'endsWith' && value.value) {\n filter[key] = { $regex: `${value.value}$`, $options: 'i' };\n }\n if (value.matchMode === 'equals' && value.value) {\n filter[key] = { $eq: value.value };\n }\n if (value.matchMode === 'notEquals' && value.value) {\n filter[key] = { $ne: value.value };\n }\n if (value.matchMode === 'in' && value.value && value.value.length > 0) {\n filter[key] = { $in: value.value };\n }\n }\n }\n\n return {\n active: conditions.sortField,\n direction: conditions.sortOrder === -1 ? 'asc' : 'desc',\n pageIndex: conditions.first / conditions.rows,\n pageSize: conditions.rows,\n filter: JSON.stringify({ ...filter, ...(additionalFilters || {}) }),\n select: select?.join(' '),\n };\n}\n\nexport function toSelectItems(name: string, type: any): SelectItem<string>[] {\n return Object.values<any>(type).map((value) => ({ label: `enums.${name}.${value}`, value }));\n}\n\nexport function generateRandomString(length: number): string {\n const characters = 'ABCDEFGHJKLMNRSTUYZ0123456789';\n let result = '';\n for (let i = 0; i < length; i += 1) {\n result += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return result;\n}\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed, effect, input, signal } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { startWith } from 'rxjs';\r\nimport { LabelComponent } from '../label/label.component';\r\nimport { TranslateSelectItemsPipe } from '../pipes/translate-select-items.pipe';\r\nimport { toSelectItems } from '../util';\r\n\r\n@Component({\r\n selector: 'app-enum-input',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, DropdownModule, CommonModule, TranslateSelectItemsPipe, TranslateModule, LabelComponent, SelectButtonModule],\r\n templateUrl: './enum-input.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class EnumInputComponent {\r\n public label = input.required<string>();\r\n public enum = input.required<any>();\r\n public enumName = input.required<string>();\r\n public formElement = input.required<FormControl<any>>();\r\n public mode = input<'DROPDOWN' | 'BUTTON'>('DROPDOWN');\r\n\r\n public options = computed(() => toSelectItems(this.enumName(), this.enum()));\r\n\r\n public required = signal(false);\r\n\r\n public constructor() {\r\n effect(\r\n () => {\r\n const formElement = this.formElement();\r\n formElement.statusChanges.pipe(startWith(undefined)).subscribe(() => this.required.set(formElement.hasValidator(Validators.required)));\r\n },\r\n { allowSignalWrites: true },\r\n );\r\n }\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n@if (mode() === 'DROPDOWN') {\r\n <p-dropdown\r\n [filter]=\"true\"\r\n class=\"w-full\"\r\n styleClass=\"w-full\"\r\n appendTo=\"body\"\r\n [formControl]=\"formElement()\"\r\n [options]=\"(options() | translateSelectItems | async) || []\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [showClear]=\"!required()\"\r\n ></p-dropdown>\r\n}\r\n@if (mode() === 'BUTTON') {\r\n <p-selectButton [formControl]=\"formElement()\" [options]=\"(options() | translateSelectItems | async) || []\" optionLabel=\"label\" optionValue=\"value\" />\r\n}\r\n","import { Component, input } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { DatePickerModule } from 'primeng/datepicker';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n selector: 'app-input-date',\r\n imports: [ReactiveFormsModule, LabelComponent, DatePickerModule],\r\n templateUrl: './input-date.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class InputDateComponent {\r\n public label = input.required<string>();\r\n public formElement = input.required<FormControl<Date>>();\r\n public showClear = input<boolean>(true);\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-datepicker [readonlyInput]=\"true\" [formControl]=\"formElement()\" styleClass=\"w-full\" dateFormat=\"dd.mm.yy\" [showClear]=\"showClear()\" appendTo=\"body\" />\r\n","import { Component, input } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n selector: 'app-input-number',\r\n imports: [LabelComponent, InputNumberModule, ReactiveFormsModule],\r\n templateUrl: './input-number.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class InputNumberComponent {\r\n public label = input.required<string>();\r\n public formElement = input.required<FormControl<number>>();\r\n public min = input<number>();\r\n public max = input<number>();\r\n public step = input<number>();\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-inputNumber [formControl]=\"formElement()\" [min]=\"min()\" [max]=\"max()\" [step]=\"step()\" mode=\"decimal\" />\r\n","import { Component, input } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n selector: 'app-input-select',\r\n imports: [DropdownModule, ReactiveFormsModule, LabelComponent],\r\n templateUrl: './input-select.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class InputSelectComponent {\r\n public label = input.required<string>();\r\n public formElement = input.required<FormControl<string>>();\r\n public options = input.required<SelectItem[]>();\r\n public showClear = input<boolean>(true);\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-dropdown\r\n [filter]=\"true\"\r\n class=\"w-full\"\r\n styleClass=\"w-full\"\r\n appendTo=\"body\"\r\n [formControl]=\"formElement()\"\r\n [options]=\"options() || []\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [showClear]=\"showClear()\"\r\n></p-dropdown>\r\n","import { Component, input } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n selector: 'app-input-text',\r\n imports: [InputTextModule, ReactiveFormsModule, LabelComponent],\r\n templateUrl: './input-text.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class InputTextComponent {\r\n public label = input.required<string>();\r\n public formElement = input.required<FormControl<string>>();\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<input pInputText [formControl]=\"formElement()\" />\r\n","import { Component, input } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { TextareaModule } from 'primeng/textarea';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n selector: 'app-input-textarea',\r\n imports: [TextareaModule, ReactiveFormsModule, LabelComponent],\r\n templateUrl: './input-textarea.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class InputTextareaComponent {\r\n public label = input.required<string>();\r\n public formElement = input.required<FormControl<string>>();\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<textarea pInputTextarea [autoResize]=\"true\" [formControl]=\"formElement()\"></textarea>\r\n","/*\r\n * Public API Surface of common-angular\r\n */\r\n\r\nexport * from './lib/enum-input/enum-input.component';\r\nexport * from './lib/input-date/input-date.component';\r\nexport * from './lib/input-number/input-number.component';\r\nexport * from './lib/input-select/input-select.component';\r\nexport * from './lib/input-text/input-text.component';\r\nexport * from './lib/input-textarea/input-textarea.component';\r\n\r\nexport * from './lib/pipes/translate-select-items.pipe';\r\n\r\nexport * from './lib/util';\r\n\r\nexport * from './lib/models/form.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1"],"mappings":"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"}
1
+ {"version":3,"file":"kominal-common-angular.mjs","sources":["../../../projects/common-angular/src/lib/label/label.component.ts","../../../projects/common-angular/src/lib/label/label.component.html","../../../projects/common-angular/src/lib/pipes/translate-select-items.pipe.ts","../../../projects/common-angular/src/lib/util.ts","../../../projects/common-angular/src/lib/enum-input/enum-input.component.ts","../../../projects/common-angular/src/lib/enum-input/enum-input.component.html","../../../projects/common-angular/src/lib/input-date/input-date.component.ts","../../../projects/common-angular/src/lib/input-date/input-date.component.html","../../../projects/common-angular/src/lib/input-number/input-number.component.ts","../../../projects/common-angular/src/lib/input-number/input-number.component.html","../../../projects/common-angular/src/lib/input-select/input-select.component.ts","../../../projects/common-angular/src/lib/input-select/input-select.component.html","../../../projects/common-angular/src/lib/input-text/input-text.component.ts","../../../projects/common-angular/src/lib/input-text/input-text.component.html","../../../projects/common-angular/src/lib/input-textarea/input-textarea.component.ts","../../../projects/common-angular/src/lib/input-textarea/input-textarea.component.html","../../../projects/common-angular/src/public-api.ts","../../../projects/common-angular/src/kominal-common-angular.ts"],"sourcesContent":["import { Component, DestroyRef, effect, inject, input, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { AbstractControl, Validators } from '@angular/forms';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\nimport { startWith } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-label',\r\n imports: [TranslatePipe],\r\n templateUrl: './label.component.html',\r\n})\r\nexport class LabelComponent {\r\n private destroyRef = inject(DestroyRef);\r\n\r\n public label = input.required<string>();\r\n public formElement = input.required<AbstractControl>();\r\n\r\n public required = signal(false);\r\n\r\n public constructor() {\r\n effect(() => {\r\n const formElement = this.formElement();\r\n formElement.statusChanges.pipe(startWith(undefined), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.required.set(formElement.hasValidator(Validators.required)));\r\n });\r\n }\r\n}\r\n","<span>{{ label() | translate }}{{ required() ? ' *' : '' }}</span>\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SelectItem } from 'primeng/api';\nimport { map, Observable, startWith } from 'rxjs';\n\n@Pipe({\n name: 'translateSelectItems',\n standalone: true,\n})\nexport class TranslateSelectItemsPipe implements PipeTransform {\n private translateService = inject(TranslateService);\n\n public transform(value: SelectItem[]): Observable<SelectItem[]> {\n return this.translateService.onLangChange.pipe(\n startWith(this.translateService.currentLang),\n map((): SelectItem[] =>\n value.map((item) => ({\n label: this.translateService.instant(item.label!),\n value: item.value,\n })),\n ),\n );\n }\n}\n","import { FormArray } from '@angular/forms';\nimport { SelectItem } from 'primeng/api';\nimport { OperatorFunction, shareReplay } from 'rxjs';\n\nexport function moveControlInFormArray(formArray: FormArray, previousIndex: number, currentIndex: number): void {\n const dir = currentIndex > previousIndex ? 1 : -1;\n\n const temp = formArray.at(previousIndex);\n for (let i = previousIndex; i * dir < currentIndex * dir; i += dir) {\n const current = formArray.at(i + dir);\n formArray.setControl(i, current);\n }\n formArray.setControl(currentIndex, temp);\n formArray.markAsDirty();\n}\n\nexport function moveUpInFormArray(formArray: FormArray, previousIndex: number): void {\n const currentIndex = previousIndex - 1;\n\n if (currentIndex >= 0) {\n moveControlInFormArray(formArray, previousIndex, currentIndex);\n }\n}\n\nexport function moveDownInFormArray(formArray: FormArray, previousIndex: number): void {\n const currentIndex = previousIndex + 1;\n\n if (currentIndex < formArray.length) {\n moveControlInFormArray(formArray, previousIndex, currentIndex);\n }\n}\n\nexport function shareReplayOne<T>(): OperatorFunction<T, T> {\n return shareReplay({ bufferSize: 1, refCount: true });\n}\n\nexport class ListRequest {\n public active?: string;\n public direction?: string;\n public pageIndex?: number;\n public pageSize?: number;\n public filter?: string;\n public select?: string;\n}\n\nexport function toListRequest<T>(conditions: any | undefined, additionalFilters?: Partial<Record<keyof T, any>>, select?: (keyof T)[]): ListRequest {\n if (!conditions && !additionalFilters && !select) {\n return {};\n }\n\n if (!conditions) {\n return {\n filter: JSON.stringify(additionalFilters),\n select: select?.join(' '),\n };\n }\n\n const filter: any = {};\n\n for (const [key, value] of Object.entries<any>(conditions.filters || {})) {\n if (value) {\n if (value.matchMode === 'startsWith' && value.value) {\n filter[key] = { $regex: `^${value.value}`, $options: 'i' };\n }\n if (value.matchMode === 'contains' && value.value) {\n filter[key] = { $regex: `${value.value}`, $options: 'i' };\n }\n if (value.matchMode === 'notContains' && value.value) {\n filter[key] = { $not: { $regex: `${value.value}`, $options: 'i' } };\n }\n if (value.matchMode === 'endsWith' && value.value) {\n filter[key] = { $regex: `${value.value}$`, $options: 'i' };\n }\n if (value.matchMode === 'equals' && value.value) {\n filter[key] = { $eq: value.value };\n }\n if (value.matchMode === 'notEquals' && value.value) {\n filter[key] = { $ne: value.value };\n }\n if (value.matchMode === 'in' && value.value && value.value.length > 0) {\n filter[key] = { $in: value.value };\n }\n }\n }\n\n return {\n active: conditions.sortField,\n direction: conditions.sortOrder === -1 ? 'asc' : 'desc',\n pageIndex: conditions.first / conditions.rows,\n pageSize: conditions.rows,\n filter: JSON.stringify({ ...filter, ...(additionalFilters || {}) }),\n select: select?.join(' '),\n };\n}\n\nexport function toSelectItems(name: string, type: any): SelectItem<string>[] {\n return Object.values<any>(type).map((value) => ({ label: `enums.${name}.${value}`, value }));\n}\n\nexport function generateRandomString(length: number): string {\n const characters = 'ABCDEFGHJKLMNRSTUYZ0123456789';\n let result = '';\n for (let i = 0; i < length; i += 1) {\n result += characters.charAt(Math.floor(Math.random() * characters.length));\n }\n return result;\n}\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed, DestroyRef, effect, inject, input, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { startWith } from 'rxjs';\r\nimport { LabelComponent } from '../label/label.component';\r\nimport { TranslateSelectItemsPipe } from '../pipes/translate-select-items.pipe';\r\nimport { toSelectItems } from '../util';\r\n\r\n@Component({\r\n selector: 'app-enum-input',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, DropdownModule, CommonModule, TranslateSelectItemsPipe, TranslateModule, LabelComponent, SelectButtonModule],\r\n templateUrl: './enum-input.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class EnumInputComponent {\r\n private destroyRef = inject(DestroyRef);\r\n\r\n public label = input.required<string>();\r\n public enum = input.required<any>();\r\n public enumName = input.required<string>();\r\n public formElement = input.required<FormControl<any>>();\r\n public mode = input<'DROPDOWN' | 'BUTTON'>('DROPDOWN');\r\n\r\n public options = computed(() => toSelectItems(this.enumName(), this.enum()));\r\n\r\n public required = signal(false);\r\n\r\n public constructor() {\r\n effect(() => {\r\n const formElement = this.formElement();\r\n formElement.statusChanges.pipe(startWith(undefined), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.required.set(formElement.hasValidator(Validators.required)));\r\n });\r\n }\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n@if (mode() === 'DROPDOWN') {\r\n <p-dropdown\r\n [filter]=\"true\"\r\n class=\"w-full\"\r\n styleClass=\"w-full\"\r\n appendTo=\"body\"\r\n [formControl]=\"formElement()\"\r\n [options]=\"(options() | translateSelectItems | async) || []\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [showClear]=\"!required()\"\r\n ></p-dropdown>\r\n}\r\n@if (mode() === 'BUTTON') {\r\n <p-selectButton [formControl]=\"formElement()\" [options]=\"(options() | translateSelectItems | async) || []\" optionLabel=\"label\" optionValue=\"value\" />\r\n}\r\n","import { Component, DestroyRef, effect, inject, input, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { DatePickerModule } from 'primeng/datepicker';\r\nimport { startWith } from 'rxjs';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n selector: 'app-input-date',\r\n imports: [ReactiveFormsModule, LabelComponent, DatePickerModule],\r\n templateUrl: './input-date.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class InputDateComponent {\r\n private destroyRef = inject(DestroyRef);\r\n\r\n public label = input.required<string>();\r\n public formElement = input.required<FormControl<Date>>();\r\n\r\n public required = signal(false);\r\n\r\n public constructor() {\r\n effect(() => {\r\n const formElement = this.formElement();\r\n formElement.statusChanges.pipe(startWith(undefined), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.required.set(formElement.hasValidator(Validators.required)));\r\n });\r\n }\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-datepicker [formControl]=\"formElement()\" styleClass=\"w-full\" dateFormat=\"dd.mm.yy\" [showClear]=\"!required()\" appendTo=\"body\" />\r\n","import { Component, input } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n selector: 'app-input-number',\r\n imports: [LabelComponent, InputNumberModule, ReactiveFormsModule],\r\n templateUrl: './input-number.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class InputNumberComponent {\r\n public label = input.required<string>();\r\n public formElement = input.required<FormControl<number>>();\r\n public min = input<number>();\r\n public max = input<number>();\r\n public step = input<number>();\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-inputNumber [formControl]=\"formElement()\" [min]=\"min()\" [max]=\"max()\" [step]=\"step()\" mode=\"decimal\" />\r\n","import { Component, DestroyRef, effect, inject, input, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { startWith } from 'rxjs';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n selector: 'app-input-select',\r\n imports: [DropdownModule, ReactiveFormsModule, LabelComponent],\r\n templateUrl: './input-select.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class InputSelectComponent {\r\n private destroyRef = inject(DestroyRef);\r\n\r\n public label = input.required<string>();\r\n public formElement = input.required<FormControl<string>>();\r\n public options = input.required<SelectItem[]>();\r\n\r\n public required = signal(false);\r\n\r\n public constructor() {\r\n effect(() => {\r\n const formElement = this.formElement();\r\n formElement.statusChanges.pipe(startWith(undefined), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.required.set(formElement.hasValidator(Validators.required)));\r\n });\r\n }\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<p-dropdown\r\n [filter]=\"true\"\r\n class=\"w-full\"\r\n styleClass=\"w-full\"\r\n appendTo=\"body\"\r\n [formControl]=\"formElement()\"\r\n [options]=\"options() || []\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [showClear]=\"!required()\"\r\n></p-dropdown>\r\n","import { Component, input } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n selector: 'app-input-text',\r\n imports: [InputTextModule, ReactiveFormsModule, LabelComponent],\r\n templateUrl: './input-text.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class InputTextComponent {\r\n public label = input.required<string>();\r\n public formElement = input.required<FormControl<string>>();\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<input pInputText [formControl]=\"formElement()\" />\r\n","import { Component, input } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { TextareaModule } from 'primeng/textarea';\r\nimport { LabelComponent } from '../label/label.component';\r\n\r\n@Component({\r\n selector: 'app-input-textarea',\r\n imports: [TextareaModule, ReactiveFormsModule, LabelComponent],\r\n templateUrl: './input-textarea.component.html',\r\n host: { class: 'flex flex-col gap-1 w-full' },\r\n})\r\nexport class InputTextareaComponent {\r\n public label = input.required<string>();\r\n public formElement = input.required<FormControl<string>>();\r\n}\r\n","<app-label [label]=\"label()\" [formElement]=\"formElement()\" />\r\n<textarea pInputTextarea [autoResize]=\"true\" [formControl]=\"formElement()\"></textarea>\r\n","/*\r\n * Public API Surface of common-angular\r\n */\r\n\r\nexport * from './lib/enum-input/enum-input.component';\r\nexport * from './lib/input-date/input-date.component';\r\nexport * from './lib/input-number/input-number.component';\r\nexport * from './lib/input-select/input-select.component';\r\nexport * from './lib/input-text/input-text.component';\r\nexport * from './lib/input-textarea/input-textarea.component';\r\n\r\nexport * from './lib/pipes/translate-select-items.pipe';\r\n\r\nexport * from './lib/util';\r\n\r\nexport * from './lib/models/form.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { FormControl } from '@angular/forms';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class EnumInputComponent {
4
+ private destroyRef;
4
5
  label: import("@angular/core").InputSignal<string>;
5
6
  enum: import("@angular/core").InputSignal<any>;
6
7
  enumName: import("@angular/core").InputSignal<string>;
@@ -1,9 +1,11 @@
1
1
  import { FormControl } from '@angular/forms';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class InputDateComponent {
4
+ private destroyRef;
4
5
  label: import("@angular/core").InputSignal<string>;
5
6
  formElement: import("@angular/core").InputSignal<FormControl<Date>>;
6
- showClear: import("@angular/core").InputSignal<boolean>;
7
+ required: import("@angular/core").WritableSignal<boolean>;
8
+ constructor();
7
9
  static ɵfac: i0.ɵɵFactoryDeclaration<InputDateComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<InputDateComponent, "app-input-date", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "formElement": { "alias": "formElement"; "required": true; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputDateComponent, "app-input-date", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "formElement": { "alias": "formElement"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
9
11
  }
@@ -2,10 +2,12 @@ import { FormControl } from '@angular/forms';
2
2
  import { SelectItem } from 'primeng/api';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class InputSelectComponent {
5
+ private destroyRef;
5
6
  label: import("@angular/core").InputSignal<string>;
6
7
  formElement: import("@angular/core").InputSignal<FormControl<string>>;
7
8
  options: import("@angular/core").InputSignal<SelectItem<any>[]>;
8
- showClear: import("@angular/core").InputSignal<boolean>;
9
+ required: import("@angular/core").WritableSignal<boolean>;
10
+ constructor();
9
11
  static ɵfac: i0.ɵɵFactoryDeclaration<InputSelectComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<InputSelectComponent, "app-input-select", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "formElement": { "alias": "formElement"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputSelectComponent, "app-input-select", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "formElement": { "alias": "formElement"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11
13
  }
@@ -1,8 +1,11 @@
1
1
  import { AbstractControl } from '@angular/forms';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class LabelComponent {
4
+ private destroyRef;
4
5
  label: import("@angular/core").InputSignal<string>;
5
6
  formElement: import("@angular/core").InputSignal<AbstractControl<any, any>>;
7
+ required: import("@angular/core").WritableSignal<boolean>;
8
+ constructor();
6
9
  static ɵfac: i0.ɵɵFactoryDeclaration<LabelComponent, never>;
7
10
  static ɵcmp: i0.ɵɵComponentDeclaration<LabelComponent, "app-label", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "formElement": { "alias": "formElement"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
8
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kominal/common-angular",
3
- "version": "0.0.16",
3
+ "version": "0.0.17",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.0",
6
6
  "@angular/core": "^19.2.0",