ngx-gccb 0.19.0 → 0.20.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.
@@ -2,15 +2,15 @@ import { trigger, transition, style, animate } from '@angular/animations';
2
2
  import * as i1 from '@angular/common';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { inject, NgZone, ElementRef, input, Directive, Input, HostListener, Renderer2, ViewContainerRef, effect, HostBinding, EventEmitter, Output, TemplateRef, output, Component, computed, Pipe, viewChild, model, contentChildren, Injectable } from '@angular/core';
5
+ import { inject, ElementRef, input, Input, HostListener, Directive, output, Component, computed, NgZone, Renderer2, effect, HostBinding, Pipe, viewChild, ViewContainerRef, TemplateRef, model, contentChildren, EventEmitter, Output, Injectable } from '@angular/core';
6
6
  import dayjs from 'dayjs';
7
- import { createPopper } from '@popperjs/core';
8
7
  import * as i2 from '@angular/forms';
9
8
  import { UntypedFormGroup, UntypedFormControl, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
10
9
  import { debounceTime } from 'rxjs';
11
10
  import * as i1$1 from '@fortawesome/angular-fontawesome';
12
11
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
13
12
  import { faSpinner, faTimes } from '@fortawesome/free-solid-svg-icons';
13
+ import { createPopper } from '@popperjs/core';
14
14
 
15
15
  const NgxFadeRightAnimation = trigger('ngxFadeRightAnimation', [
16
16
  transition(':enter', [
@@ -28,29 +28,6 @@ const NgxFadeAnimation = trigger('ngxFadeAnimation', [
28
28
  transition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),
29
29
  ]);
30
30
 
31
- class NgxAutofocusDirective {
32
- constructor() {
33
- this.ngZone = inject(NgZone);
34
- this.el = inject(ElementRef);
35
- this.ngxAutofocus = input(false, ...(ngDevMode ? [{ debugName: "ngxAutofocus" }] : []));
36
- }
37
- ngAfterViewInit() {
38
- if (this.ngxAutofocus()) {
39
- this.ngZone.runOutsideAngular(() => {
40
- setTimeout(() => {
41
- this.el.nativeElement.focus();
42
- }, 0);
43
- });
44
- }
45
- }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.2", type: NgxAutofocusDirective, isStandalone: true, selector: "[ngxAutofocus]", inputs: { ngxAutofocus: { classPropertyName: "ngxAutofocus", publicName: "ngxAutofocus", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxAutofocusDirective, decorators: [{
50
- type: Directive,
51
- args: [{ selector: '[ngxAutofocus]' }]
52
- }] });
53
-
54
31
  class NgxButtonDirective {
55
32
  constructor() {
56
33
  this.elementRef = inject((ElementRef));
@@ -91,10 +68,10 @@ class NgxButtonDirective {
91
68
  }
92
69
  this.elementRef.nativeElement.classList.add('flex-shrink-0');
93
70
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
95
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.2", type: NgxButtonDirective, isStandalone: true, selector: "button[ngxButton]", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, ngxButton: { classPropertyName: "ngxButton", publicName: "ngxButton", isSignal: false, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null } }, host: { listeners: { "focus": "onFocus($event)", "blur": "onblur($event)" } }, ngImport: i0 }); }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
72
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.3", type: NgxButtonDirective, isStandalone: true, selector: "button[ngxButton]", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, ngxButton: { classPropertyName: "ngxButton", publicName: "ngxButton", isSignal: false, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null } }, host: { listeners: { "focus": "onFocus($event)", "blur": "onblur($event)" } }, ngImport: i0 }); }
96
73
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxButtonDirective, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxButtonDirective, decorators: [{
98
75
  type: Directive,
99
76
  args: [{ selector: 'button[ngxButton]' }]
100
77
  }], propDecorators: { onFocus: [{
@@ -112,276 +89,226 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImpor
112
89
  type: Input
113
90
  }] } });
114
91
 
115
- class NgxCardBodyDirective {
92
+ class CalendarComponent {
116
93
  constructor() {
117
- this.elementRef = inject((ElementRef));
94
+ this.onDaySelected = output();
95
+ this.currentMonth = dayjs();
96
+ this.weeks = [];
97
+ this.selectedDay = null;
98
+ this.hoveredDay = null;
118
99
  }
119
100
  ngOnInit() {
120
- this.elementRef.nativeElement.classList.add('card-body');
101
+ this.generateCalendar();
102
+ }
103
+ onSelectDay(day) {
104
+ this.selectedDay = day;
105
+ this.onDaySelected.emit(this.selectedDay);
106
+ }
107
+ generateCalendar() {
108
+ const startOfMonth = this.currentMonth.startOf('month');
109
+ const endOfMonth = this.currentMonth.endOf('month');
110
+ const startDate = startOfMonth.startOf('week');
111
+ const endDate = endOfMonth.endOf('week');
112
+ let date = startDate.clone();
113
+ const calendar = [];
114
+ while (date.isBefore(endDate, 'day')) {
115
+ const week = [];
116
+ for (let i = 0; i < 7; i++) {
117
+ week.push(date.clone());
118
+ date = date.add(1, 'day');
119
+ }
120
+ calendar.push(week);
121
+ }
122
+ this.weeks = calendar;
123
+ }
124
+ previousMonth() {
125
+ this.currentMonth = this.currentMonth.subtract(1, 'month');
126
+ this.generateCalendar();
127
+ }
128
+ nextMonth() {
129
+ this.currentMonth = this.currentMonth.add(1, 'month');
130
+ this.generateCalendar();
131
+ }
132
+ isToday(date) {
133
+ return date.isSame(dayjs(), 'day');
121
134
  }
122
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxCardBodyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
123
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.2", type: NgxCardBodyDirective, isStandalone: true, selector: "[ngxCardBody]", ngImport: i0 }); }
135
+ isCurrentMonth(date) {
136
+ return date.isSame(this.currentMonth, 'month');
137
+ }
138
+ isSelected(day) {
139
+ return this.selectedDay?.isSame(day, 'day') || false;
140
+ }
141
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: CalendarComponent, isStandalone: true, selector: "ngx-calendar", outputs: { onDaySelected: "onDaySelected" }, ngImport: i0, template: "<div class=\"container my-3\">\n\t<div class=\"d-flex justify-content-between align-items-center mb-3\">\n\t\t<button ngxButton variant=\"outline\" (click)=\"previousMonth()\">\u00AB</button>\n\t\t<h4 class=\"m-0\">\n\t\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t\t</h4>\n\t\t<button ngxButton variant=\"outline\" (click)=\"nextMonth()\">\u00BB</button>\n\t</div>\n\n\t<div class=\"table-responsive\">\n\t\t<table class=\"table table-bordered text-center\">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']; track day) {\n\t\t\t\t\t\t<th>{{ day }}</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t\t[class.bg-light]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t\t[class.bg-dark-subtle]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t\t[class.text-white]=\"isToday(day) && !(isSelected(day) || day === hoveredDay)\"\n\t\t\t\t\t\t\t\t[class.bg-primary]=\"isToday(day)\"\n\t\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tr>\n\t\t\t\t}\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</div>\n", styles: [".day:hover{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: NgxButtonDirective, selector: "button[ngxButton]", inputs: ["type", "ngxButton", "variant", "size"] }] }); }
124
143
  }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxCardBodyDirective, decorators: [{
126
- type: Directive,
127
- args: [{ selector: '[ngxCardBody]' }]
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: CalendarComponent, decorators: [{
145
+ type: Component,
146
+ args: [{ selector: 'ngx-calendar', imports: [CommonModule, NgxButtonDirective], template: "<div class=\"container my-3\">\n\t<div class=\"d-flex justify-content-between align-items-center mb-3\">\n\t\t<button ngxButton variant=\"outline\" (click)=\"previousMonth()\">\u00AB</button>\n\t\t<h4 class=\"m-0\">\n\t\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t\t</h4>\n\t\t<button ngxButton variant=\"outline\" (click)=\"nextMonth()\">\u00BB</button>\n\t</div>\n\n\t<div class=\"table-responsive\">\n\t\t<table class=\"table table-bordered text-center\">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']; track day) {\n\t\t\t\t\t\t<th>{{ day }}</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t\t[class.bg-light]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t\t[class.bg-dark-subtle]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t\t[class.text-white]=\"isToday(day) && !(isSelected(day) || day === hoveredDay)\"\n\t\t\t\t\t\t\t\t[class.bg-primary]=\"isToday(day)\"\n\t\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tr>\n\t\t\t\t}\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</div>\n", styles: [".day:hover{cursor:pointer}\n"] }]
128
147
  }] });
129
148
 
130
- class NgxCardHeaderDirective {
131
- constructor() {
132
- this.elementRef = inject((ElementRef));
149
+ class NgxFormGroup extends UntypedFormGroup {
150
+ }
151
+ class NgxFormControl extends UntypedFormControl {
152
+ constructor(formState, validatorOrOpts, asyncValidator, config) {
153
+ super(formState, validatorOrOpts, asyncValidator);
154
+ this.config = config;
133
155
  }
134
- ngOnInit() {
135
- this.elementRef.nativeElement.classList.add('card-header');
156
+ updateSelecOptions(options) {
157
+ if (this.config?.selectConfig?.options) {
158
+ this.config.selectConfig.options = [...options];
159
+ }
136
160
  }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxCardHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
138
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.2", type: NgxCardHeaderDirective, isStandalone: true, selector: "[ngxCardHeader]", ngImport: i0 }); }
139
161
  }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxCardHeaderDirective, decorators: [{
141
- type: Directive,
142
- args: [{ selector: '[ngxCardHeader]' }]
162
+
163
+ class NgxFormErrorsComponent {
164
+ constructor() {
165
+ this.isDirty = input(false, ...(ngDevMode ? [{ debugName: "isDirty" }] : []));
166
+ this.errors = input(null, ...(ngDevMode ? [{ debugName: "errors" }] : []));
167
+ this.errorMessages = computed(() => {
168
+ const result = [];
169
+ if (this.isDirty() && this.errors()) {
170
+ for (const key in this.errors()) {
171
+ if (this.errorMessageDictionary[key]) {
172
+ result.push(this.errorMessageDictionary[key](this.errors()));
173
+ }
174
+ }
175
+ }
176
+ return result;
177
+ }, ...(ngDevMode ? [{ debugName: "errorMessages" }] : []));
178
+ this.errorMessageDictionary = {
179
+ required: () => 'Field is required',
180
+ requiredTrue: () => 'Field is required',
181
+ email: () => 'Invalid E-Mail',
182
+ min: (errors) => `At least ${errors['min']?.requiredLength} characters are required`,
183
+ minlength: (errors) => `At least ${errors['minlength']?.requiredLength} characters are required`,
184
+ max: (errors) => `Maximum of ${errors['max']?.requiredLength} characters exceeded`,
185
+ maxlength: (errors) => `Maximum of ${errors['maxlength']?.requiredLength} characters exceeded`,
186
+ pattern: () => `Input does not match pattern`,
187
+ dateAfterInvalid: (errors) => `Date must be after ${errors?.['startDateValue']}`,
188
+ match: () => `Input does not match!`,
189
+ timeAfterError: (errors) => `The time must be after ${errors?.['timeAfterError']}`,
190
+ };
191
+ }
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: NgxFormErrorsComponent, isStandalone: true, selector: "ngx-form-errors", inputs: { isDirty: { classPropertyName: "isDirty", publicName: "isDirty", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
194
+ @if (errorMessages()) {
195
+ <div class="invalid-feedback d-block">
196
+ @for (errorMessage of errorMessages(); track $index) {
197
+ <div>{{ errorMessage }}</div>
198
+ }
199
+ </div>
200
+ }
201
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
202
+ }
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormErrorsComponent, decorators: [{
204
+ type: Component,
205
+ args: [{
206
+ selector: 'ngx-form-errors',
207
+ template: `
208
+ @if (errorMessages()) {
209
+ <div class="invalid-feedback d-block">
210
+ @for (errorMessage of errorMessages(); track $index) {
211
+ <div>{{ errorMessage }}</div>
212
+ }
213
+ </div>
214
+ }
215
+ `,
216
+ imports: [CommonModule],
217
+ }]
143
218
  }] });
144
219
 
145
- class NgxCardDirective {
220
+ class NgxAutofocusDirective {
146
221
  constructor() {
147
- this.elementRef = inject((ElementRef));
222
+ this.ngZone = inject(NgZone);
223
+ this.el = inject(ElementRef);
224
+ this.ngxAutofocus = input(false, ...(ngDevMode ? [{ debugName: "ngxAutofocus" }] : []));
148
225
  }
149
- ngOnInit() {
150
- this.elementRef.nativeElement.classList.add('card');
226
+ ngAfterViewInit() {
227
+ if (this.ngxAutofocus()) {
228
+ this.ngZone.runOutsideAngular(() => {
229
+ setTimeout(() => {
230
+ this.el.nativeElement.focus();
231
+ }, 0);
232
+ });
233
+ }
151
234
  }
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxCardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
153
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.2", type: NgxCardDirective, isStandalone: true, selector: "[ngxCard]", ngImport: i0 }); }
235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxAutofocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
236
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.3", type: NgxAutofocusDirective, isStandalone: true, selector: "[ngxAutofocus]", inputs: { ngxAutofocus: { classPropertyName: "ngxAutofocus", publicName: "ngxAutofocus", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
154
237
  }
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxCardDirective, decorators: [{
238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxAutofocusDirective, decorators: [{
156
239
  type: Directive,
157
- args: [{ selector: '[ngxCard]' }]
240
+ args: [{ selector: '[ngxAutofocus]' }]
158
241
  }] });
159
242
 
160
- class NgxColDirective {
243
+ class NgxFormGroupDirective {
161
244
  constructor() {
162
- this.el = inject(ElementRef);
163
- this.span = 'col';
245
+ this.formGroup = input.required(...(ngDevMode ? [{ debugName: "formGroup" }] : []));
246
+ this.validateOnChange = input(true, ...(ngDevMode ? [{ debugName: "validateOnChange" }] : []));
164
247
  }
165
- set col(val) {
166
- if (val) {
167
- this.span = val;
168
- }
248
+ validateForm() {
249
+ Object.keys(this.formGroup().controls).forEach(key => {
250
+ const control = this.formGroup().get(key);
251
+ if (control instanceof NgxFormControl || control instanceof FormControl) {
252
+ this.formGroup().get(key)?.markAsTouched({ onlySelf: true });
253
+ this.formGroup().get(key)?.markAsDirty({ onlySelf: true });
254
+ this.formGroup().get(key)?.updateValueAndValidity({ onlySelf: true });
255
+ }
256
+ else if (control instanceof NgxFormGroup || control instanceof FormGroup) {
257
+ Object.keys(control.controls).forEach(subKey => {
258
+ control.get(subKey)?.markAsTouched({ onlySelf: true });
259
+ control.get(subKey)?.markAsDirty({ onlySelf: true });
260
+ control.get(subKey)?.updateValueAndValidity({ onlySelf: true });
261
+ });
262
+ }
263
+ });
169
264
  }
170
- ngAfterViewInit() {
171
- this.el.nativeElement.classList.add(this.span);
265
+ resetForm() {
266
+ this.formGroup().setErrors({});
267
+ this.formGroup().reset();
268
+ Object.keys(this.formGroup().controls).forEach(key => {
269
+ this.formGroup().get(key)?.markAsUntouched({ onlySelf: true });
270
+ });
172
271
  }
173
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxColDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
174
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.2", type: NgxColDirective, isStandalone: true, selector: "[ngxCol]", inputs: { col: "col" }, ngImport: i0 }); }
272
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
273
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.3", type: NgxFormGroupDirective, isStandalone: true, selector: "[ngxFormGroup]", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, validateOnChange: { classPropertyName: "validateOnChange", publicName: "validateOnChange", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ngxFormGroup"], ngImport: i0 }); }
175
274
  }
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxColDirective, decorators: [{
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormGroupDirective, decorators: [{
177
276
  type: Directive,
178
- args: [{ selector: '[ngxCol]' }]
179
- }], propDecorators: { col: [{
180
- type: Input
181
- }] } });
277
+ args: [{
278
+ selector: '[ngxFormGroup]',
279
+ exportAs: 'ngxFormGroup',
280
+ }]
281
+ }] });
182
282
 
183
- class NgxDropdownDirective {
283
+ class NgxFormInputDirective {
184
284
  constructor() {
185
- this.elementRef = inject(ElementRef);
186
- this.renderer = inject(Renderer2);
187
- this.viewContainerRef = inject(ViewContainerRef);
188
- this.ngxDropdown = input.required(...(ngDevMode ? [{ debugName: "ngxDropdown" }] : []));
189
- this.placement = input('bottom-start', ...(ngDevMode ? [{ debugName: "placement" }] : []));
190
- // adaptivePosition: InputSignal<boolean> = input(true);
191
- // fallbackPlacements: InputSignal<Placement[]> = input<Placement[]>(['top-end', 'bottom-end', 'right', 'left']);
192
- this.dropdownElement = null;
193
- this.dropdownMenuContentElement = null;
194
- this.isDropdownVisible = false;
285
+ this.elementRef = inject((ElementRef));
286
+ this.renderer2 = inject(Renderer2);
287
+ this.ngxFormInput = input.required(...(ngDevMode ? [{ debugName: "ngxFormInput" }] : []));
288
+ this.formControl = input(...(ngDevMode ? [undefined, { debugName: "formControl" }] : []));
289
+ this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : []));
290
+ this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
291
+ this.type = input(...(ngDevMode ? [undefined, { debugName: "type" }] : []));
292
+ this.placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : []));
293
+ this.isFloatingLabel = input(true, ...(ngDevMode ? [{ debugName: "isFloatingLabel" }] : []));
294
+ effect(() => {
295
+ const fc = this.formControl();
296
+ if (fc && this.type() === 'checkbox') {
297
+ const native = this.elementRef.nativeElement;
298
+ native.checked = fc.value === true;
299
+ }
300
+ this.checkIsValid();
301
+ });
195
302
  }
196
303
  ngOnInit() {
197
- if (!this.dropdownElement) {
198
- this.dropdownElement = this.renderer.createElement('div');
199
- this.renderer.addClass(this.dropdownElement, 'dropdown');
200
- const parent = this.elementRef.nativeElement.parentNode;
201
- this.renderer.insertBefore(parent, this.dropdownElement, this.elementRef.nativeElement);
202
- this.renderer.appendChild(this.dropdownElement, this.elementRef.nativeElement);
304
+ if (this.type() === 'select') {
305
+ this.elementRef.nativeElement.classList.add('form-select');
203
306
  }
204
- }
205
- toggleDropdown() {
206
- if (this.isDropdownVisible) {
207
- this.hide();
307
+ else if (this.type() === 'checkbox') {
308
+ this.elementRef.nativeElement.classList.add('form-check-input');
208
309
  }
209
310
  else {
210
- this.show();
211
- }
212
- }
213
- onDocumentClick(event) {
214
- if (this.isDropdownVisible &&
215
- this.dropdownElement &&
216
- !this.dropdownElement.contains(event.target) &&
217
- !this.elementRef.nativeElement.contains(event.target)) {
218
- this.hide();
219
- }
220
- }
221
- show() {
222
- if (!this.dropdownMenuContentElement && this.dropdownElement) {
223
- const embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.ngxDropdown());
224
- embeddedViewRef.detectChanges();
225
- this.dropdownMenuContentElement = embeddedViewRef.rootNodes[0];
226
- this.renderer.appendChild(this.dropdownElement, this.dropdownMenuContentElement);
227
- this.addDropdownLinksListener();
228
- this.popperInstance = createPopper(this.dropdownElement, this.dropdownMenuContentElement, {
229
- placement: this.placement(),
230
- modifiers: [
231
- {
232
- name: 'offset',
233
- options: {
234
- offset: ({ placement }) => {
235
- if (placement.startsWith('bottom')) {
236
- return [1, -(this.dropdownElement?.offsetHeight + 1)];
237
- }
238
- if (placement.startsWith('top')) {
239
- return [1, -(this.dropdownElement?.offsetHeight + 1)];
240
- }
241
- if (placement.startsWith('left')) {
242
- return [
243
- this.dropdownElement?.offsetHeight,
244
- -this.dropdownElement?.offsetWidth,
245
- ];
246
- }
247
- return [1, 1];
248
- },
249
- },
250
- },
251
- // {
252
- // name: 'flip',
253
- // options: {
254
- // fallbackPlacements: this.adaptivePosition() ? this.fallbackPlacements() : [],
255
- // boundary: 'viewport',
256
- // padding: 0,
257
- // },
258
- // },
259
- {
260
- name: 'preventOverflow',
261
- options: {
262
- boundary: 'viewport',
263
- padding: 0,
264
- tether: false,
265
- },
266
- },
267
- ],
268
- });
269
- }
270
- this.isDropdownVisible = true;
271
- }
272
- hide() {
273
- if (this.dropdownMenuContentElement) {
274
- this.viewContainerRef.clear();
275
- this.dropdownMenuContentElement = null;
276
- this.popperInstance?.destroy();
277
- }
278
- this.isDropdownVisible = false;
279
- }
280
- addDropdownLinksListener() {
281
- const links = this.dropdownMenuContentElement?.querySelectorAll('.dropdown-item');
282
- links?.forEach(link => {
283
- this.renderer.listen(link, 'click', () => {
284
- this.hide();
285
- });
286
- });
287
- }
288
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
289
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.2", type: NgxDropdownDirective, isStandalone: true, selector: "[ngxDropdown]", inputs: { ngxDropdown: { classPropertyName: "ngxDropdown", publicName: "ngxDropdown", isSignal: true, isRequired: true, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "toggleDropdown()", "document:click": "onDocumentClick($event)" } }, exportAs: ["ngxDropdown"], ngImport: i0 }); }
290
- }
291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxDropdownDirective, decorators: [{
292
- type: Directive,
293
- args: [{ selector: '[ngxDropdown]', exportAs: 'ngxDropdown' }]
294
- }], propDecorators: { toggleDropdown: [{
295
- type: HostListener,
296
- args: ['click']
297
- }], onDocumentClick: [{
298
- type: HostListener,
299
- args: ['document:click', ['$event']]
300
- }] } });
301
-
302
- class NgxFormGroup extends UntypedFormGroup {
303
- }
304
- class NgxFormControl extends UntypedFormControl {
305
- constructor(formState, validatorOrOpts, asyncValidator, config) {
306
- super(formState, validatorOrOpts, asyncValidator);
307
- this.config = config;
308
- }
309
- updateSelecOptions(options) {
310
- if (this.config?.selectConfig?.options) {
311
- this.config.selectConfig.options = [...options];
312
- }
313
- }
314
- }
315
-
316
- class NgxFormGroupDirective {
317
- constructor() {
318
- this.formGroup = input.required(...(ngDevMode ? [{ debugName: "formGroup" }] : []));
319
- this.validateOnChange = input(true, ...(ngDevMode ? [{ debugName: "validateOnChange" }] : []));
320
- }
321
- validateForm() {
322
- Object.keys(this.formGroup().controls).forEach(key => {
323
- const control = this.formGroup().get(key);
324
- if (control instanceof NgxFormControl || control instanceof FormControl) {
325
- this.formGroup().get(key)?.markAsTouched({ onlySelf: true });
326
- this.formGroup().get(key)?.markAsDirty({ onlySelf: true });
327
- this.formGroup().get(key)?.updateValueAndValidity({ onlySelf: true });
328
- }
329
- else if (control instanceof NgxFormGroup || control instanceof FormGroup) {
330
- Object.keys(control.controls).forEach(subKey => {
331
- control.get(subKey)?.markAsTouched({ onlySelf: true });
332
- control.get(subKey)?.markAsDirty({ onlySelf: true });
333
- control.get(subKey)?.updateValueAndValidity({ onlySelf: true });
334
- });
335
- }
336
- });
337
- }
338
- resetForm() {
339
- this.formGroup().setErrors({});
340
- this.formGroup().reset();
341
- Object.keys(this.formGroup().controls).forEach(key => {
342
- this.formGroup().get(key)?.markAsUntouched({ onlySelf: true });
343
- });
344
- }
345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
346
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.2", type: NgxFormGroupDirective, isStandalone: true, selector: "[ngxFormGroup]", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, validateOnChange: { classPropertyName: "validateOnChange", publicName: "validateOnChange", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ngxFormGroup"], ngImport: i0 }); }
347
- }
348
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormGroupDirective, decorators: [{
349
- type: Directive,
350
- args: [{
351
- selector: '[ngxFormGroup]',
352
- exportAs: 'ngxFormGroup',
353
- }]
354
- }] });
355
-
356
- class NgxFormInputDirective {
357
- constructor() {
358
- this.elementRef = inject((ElementRef));
359
- this.renderer2 = inject(Renderer2);
360
- this.ngxFormInput = input.required(...(ngDevMode ? [{ debugName: "ngxFormInput" }] : []));
361
- this.formControl = input(...(ngDevMode ? [undefined, { debugName: "formControl" }] : []));
362
- this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : []));
363
- this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
364
- this.type = input(...(ngDevMode ? [undefined, { debugName: "type" }] : []));
365
- this.placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : []));
366
- this.isFloatingLabel = input(true, ...(ngDevMode ? [{ debugName: "isFloatingLabel" }] : []));
367
- effect(() => {
368
- const fc = this.formControl();
369
- if (fc && this.type() === 'checkbox') {
370
- const native = this.elementRef.nativeElement;
371
- native.checked = fc.value === true;
372
- }
373
- this.checkIsValid();
374
- });
375
- }
376
- ngOnInit() {
377
- if (this.type() === 'select') {
378
- this.elementRef.nativeElement.classList.add('form-select');
379
- }
380
- else if (this.type() === 'checkbox') {
381
- this.elementRef.nativeElement.classList.add('form-check-input');
382
- }
383
- else {
384
- this.elementRef.nativeElement.classList.add('form-control');
311
+ this.elementRef.nativeElement.classList.add('form-control');
385
312
  }
386
313
  if (this.type()) {
387
314
  this.elementRef.nativeElement.setAttribute('type', this.type());
@@ -413,10 +340,10 @@ class NgxFormInputDirective {
413
340
  this.elementRef.nativeElement.classList.remove('is-invalid');
414
341
  }
415
342
  }
416
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
417
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.2", type: NgxFormInputDirective, isStandalone: true, selector: "[ngxFormInput]", inputs: { ngxFormInput: { classPropertyName: "ngxFormInput", publicName: "ngxFormInput", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, isFloatingLabel: { classPropertyName: "isFloatingLabel", publicName: "isFloatingLabel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
343
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
344
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.3", type: NgxFormInputDirective, isStandalone: true, selector: "[ngxFormInput]", inputs: { ngxFormInput: { classPropertyName: "ngxFormInput", publicName: "ngxFormInput", isSignal: true, isRequired: true, transformFunction: null }, formControl: { classPropertyName: "formControl", publicName: "formControl", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, isFloatingLabel: { classPropertyName: "isFloatingLabel", publicName: "isFloatingLabel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
418
345
  }
419
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormInputDirective, decorators: [{
346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormInputDirective, decorators: [{
420
347
  type: Directive,
421
348
  args: [{ selector: '[ngxFormInput]' }]
422
349
  }], ctorParameters: () => [] });
@@ -425,10 +352,10 @@ class NgxFormLabelDirective {
425
352
  constructor() {
426
353
  this.elementClass = 'form-label';
427
354
  }
428
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
429
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.2", type: NgxFormLabelDirective, isStandalone: true, selector: "label[ngxFormLabel]", host: { properties: { "class": "this.elementClass" } }, ngImport: i0 }); }
355
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
356
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxFormLabelDirective, isStandalone: true, selector: "label[ngxFormLabel]", host: { properties: { "class": "this.elementClass" } }, ngImport: i0 }); }
430
357
  }
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormLabelDirective, decorators: [{
358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormLabelDirective, decorators: [{
432
359
  type: Directive,
433
360
  args: [{ selector: 'label[ngxFormLabel]' }]
434
361
  }], propDecorators: { elementClass: [{
@@ -436,30 +363,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImpor
436
363
  args: ['class']
437
364
  }] } });
438
365
 
439
- class NgxFormSelectDirective {
366
+ class AppIsFormControlPipe {
367
+ transform(value) {
368
+ return value;
369
+ }
370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AppIsFormControlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
371
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: AppIsFormControlPipe, isStandalone: true, name: "appIsFormControl" }); }
372
+ }
373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AppIsFormControlPipe, decorators: [{
374
+ type: Pipe,
375
+ args: [{ name: 'appIsFormControl' }]
376
+ }] });
377
+
378
+ class NgxIsFormGroupPipe {
379
+ transform(value) {
380
+ return value;
381
+ }
382
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxIsFormGroupPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
383
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: NgxIsFormGroupPipe, isStandalone: true, name: "ngxIsFormGroup" }); }
384
+ }
385
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxIsFormGroupPipe, decorators: [{
386
+ type: Pipe,
387
+ args: [{ name: 'ngxIsFormGroup' }]
388
+ }] });
389
+
390
+ class NgxFormComponent {
440
391
  constructor() {
441
- this.elementRef = inject((ElementRef));
392
+ this.formGroup = input.required(...(ngDevMode ? [{ debugName: "formGroup" }] : []));
393
+ this.formGroupDirective = viewChild(NgxFormGroupDirective, ...(ngDevMode ? [{ debugName: "formGroupDirective" }] : []));
394
+ this.onValidated = output();
395
+ this.keepOriginalOrder = () => 0;
442
396
  }
443
- set formInputInvalid(val) {
444
- if (val === true) {
445
- this.elementRef.nativeElement.classList.add('is-invalid');
446
- }
447
- else {
448
- this.elementRef.nativeElement.classList.remove('is-invalid');
449
- }
397
+ isFormControl(control) {
398
+ return control instanceof NgxFormControl;
450
399
  }
451
- ngOnInit() {
452
- this.elementRef.nativeElement.classList.add('form-select');
400
+ validate() {
401
+ this.formGroupDirective()?.validateForm();
402
+ this.onValidated.emit();
403
+ }
404
+ reset() {
405
+ this.formGroupDirective()?.resetForm();
453
406
  }
454
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
455
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.2", type: NgxFormSelectDirective, isStandalone: true, selector: "select[ngxFormSelect]", inputs: { formInputInvalid: "formInputInvalid" }, ngImport: i0 }); }
407
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
408
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: NgxFormComponent, isStandalone: true, selector: "ngx-form", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onValidated: "onValidated" }, viewQueries: [{ propertyName: "formGroupDirective", first: true, predicate: NgxFormGroupDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<form ngxFormGroup #formGroupDirective=\"ngxFormGroup\" [formGroup]=\"formGroup()\">\n\t@for (control of formGroup().controls | keyvalue: keepOriginalOrder; track $index) {\n\t\t@if (isFormControl(control.value)) {\n\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: control }\" />\n\t\t} @else {\n\t\t\t<div ngxFormGroup [formGroup]=\"control.value | ngxIsFormGroup\" class=\"row\">\n\t\t\t\t@for (\n\t\t\t\t\tsubControl of (control.value | ngxIsFormGroup).controls | keyvalue: keepOriginalOrder;\n\t\t\t\t\ttrack $index\n\t\t\t\t) {\n\t\t\t\t\t<div class=\"col\">\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: subControl }\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</form>\n\n<ng-template #formField let-control=\"control\">\n\t@if (control.value | appIsFormControl; as typedControl) {\n\t\t<div class=\"mb-3\">\n\t\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ typedControl.customConfig?.label }}\n\t\t</label> -->\n\n\t\t\t@switch (typedControl.config?.type) {\n\t\t\t\t@case ('textarea') {\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[rows]=\"typedControl.config?.textareaConfig?.rows || 4\">\n\t\t\t\t\t</textarea>\n\t\t\t\t}\n\n\t\t\t\t@case ('select') {\n\t\t\t\t\t<select\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t\t@for (option of typedControl.config?.selectConfig?.options; track option.value) {\n\t\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t}\n\t\t\t\t\t</select>\n\t\t\t\t}\n\n\t\t\t\t@case ('checkbox') {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\n\t\t\t\t@default {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\t[type]=\"typedControl.config?.type || 'text'\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[autocomplete]=\"typedControl.config?.type === 'password' ? 'new-password' : undefined\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t\t{{ typedControl.config?.label }}\n\t\t\t</label>\n\n\t\t\t@if (typedControl.config?.hint) {\n\t\t\t\t<small class=\"text-muted\">\n\t\t\t\t\t{{ typedControl.config?.hint }}\n\t\t\t\t</small>\n\t\t\t}\n\n\t\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t\t</div>\n\t}\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgxFormGroupDirective, selector: "[ngxFormGroup]", inputs: ["formGroup", "validateOnChange"], exportAs: ["ngxFormGroup"] }, { kind: "directive", type: NgxFormLabelDirective, selector: "label[ngxFormLabel]" }, { kind: "component", type: NgxFormErrorsComponent, selector: "ngx-form-errors", inputs: ["isDirty", "errors"] }, { kind: "directive", type: NgxFormInputDirective, selector: "[ngxFormInput]", inputs: ["ngxFormInput", "formControl", "id", "name", "type", "placeholder", "isFloatingLabel"] }, { kind: "directive", type: NgxAutofocusDirective, selector: "[ngxAutofocus]", inputs: ["ngxAutofocus"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: AppIsFormControlPipe, name: "appIsFormControl" }, { kind: "pipe", type: NgxIsFormGroupPipe, name: "ngxIsFormGroup" }] }); }
456
409
  }
457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormSelectDirective, decorators: [{
458
- type: Directive,
459
- args: [{ selector: 'select[ngxFormSelect]' }]
460
- }], propDecorators: { formInputInvalid: [{
461
- type: Input
462
- }] } });
410
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormComponent, decorators: [{
411
+ type: Component,
412
+ args: [{ selector: 'ngx-form', imports: [
413
+ CommonModule,
414
+ ReactiveFormsModule,
415
+ NgxFormGroupDirective,
416
+ NgxFormLabelDirective,
417
+ NgxFormErrorsComponent,
418
+ NgxFormInputDirective,
419
+ AppIsFormControlPipe,
420
+ NgxIsFormGroupPipe,
421
+ NgxAutofocusDirective,
422
+ ], template: "<form ngxFormGroup #formGroupDirective=\"ngxFormGroup\" [formGroup]=\"formGroup()\">\n\t@for (control of formGroup().controls | keyvalue: keepOriginalOrder; track $index) {\n\t\t@if (isFormControl(control.value)) {\n\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: control }\" />\n\t\t} @else {\n\t\t\t<div ngxFormGroup [formGroup]=\"control.value | ngxIsFormGroup\" class=\"row\">\n\t\t\t\t@for (\n\t\t\t\t\tsubControl of (control.value | ngxIsFormGroup).controls | keyvalue: keepOriginalOrder;\n\t\t\t\t\ttrack $index\n\t\t\t\t) {\n\t\t\t\t\t<div class=\"col\">\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: subControl }\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</form>\n\n<ng-template #formField let-control=\"control\">\n\t@if (control.value | appIsFormControl; as typedControl) {\n\t\t<div class=\"mb-3\">\n\t\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ typedControl.customConfig?.label }}\n\t\t</label> -->\n\n\t\t\t@switch (typedControl.config?.type) {\n\t\t\t\t@case ('textarea') {\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[rows]=\"typedControl.config?.textareaConfig?.rows || 4\">\n\t\t\t\t\t</textarea>\n\t\t\t\t}\n\n\t\t\t\t@case ('select') {\n\t\t\t\t\t<select\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t\t@for (option of typedControl.config?.selectConfig?.options; track option.value) {\n\t\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t}\n\t\t\t\t\t</select>\n\t\t\t\t}\n\n\t\t\t\t@case ('checkbox') {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\n\t\t\t\t@default {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\t[type]=\"typedControl.config?.type || 'text'\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[autocomplete]=\"typedControl.config?.type === 'password' ? 'new-password' : undefined\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t\t{{ typedControl.config?.label }}\n\t\t\t</label>\n\n\t\t\t@if (typedControl.config?.hint) {\n\t\t\t\t<small class=\"text-muted\">\n\t\t\t\t\t{{ typedControl.config?.hint }}\n\t\t\t\t</small>\n\t\t\t}\n\n\t\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t\t</div>\n\t}\n</ng-template>\n", styles: [":host{display:block}\n"] }]
423
+ }] });
424
+
425
+ class NgxLoadingIndicatorComponent {
426
+ constructor() {
427
+ this.faSpinner = faSpinner;
428
+ }
429
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxLoadingIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
430
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: NgxLoadingIndicatorComponent, isStandalone: true, selector: "ngx-loading-indicator", ngImport: i0, template: "<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\" />\n", styles: [":host{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#495057}\n"], dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }] }); }
431
+ }
432
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxLoadingIndicatorComponent, decorators: [{
433
+ type: Component,
434
+ args: [{ selector: 'ngx-loading-indicator', imports: [FontAwesomeModule], template: "<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\" />\n", styles: [":host{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#495057}\n"] }]
435
+ }] });
436
+
437
+ class BaseModalComponent {
438
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: BaseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
439
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: BaseModalComponent, isStandalone: true, selector: "ngx-base-modal", ngImport: i0, template: ``, isInline: true }); }
440
+ }
441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: BaseModalComponent, decorators: [{
442
+ type: Component,
443
+ args: [{
444
+ selector: 'ngx-base-modal',
445
+ template: ``,
446
+ }]
447
+ }] });
463
448
 
464
449
  class NgxIconButtonDirective {
465
450
  constructor() {
@@ -480,10 +465,10 @@ class NgxIconButtonDirective {
480
465
  ngOnInit() {
481
466
  this.elementRef.nativeElement.classList.add('btn', 'icon-button');
482
467
  }
483
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxIconButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
484
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.2", type: NgxIconButtonDirective, isStandalone: true, selector: "button[ngxIconButton]", inputs: { appIconButton: ["ngxIconButton", "appIconButton"], shadow: "shadow" }, ngImport: i0 }); }
468
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxIconButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
469
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxIconButtonDirective, isStandalone: true, selector: "button[ngxIconButton]", inputs: { appIconButton: ["ngxIconButton", "appIconButton"], shadow: "shadow" }, ngImport: i0 }); }
485
470
  }
486
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxIconButtonDirective, decorators: [{
471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxIconButtonDirective, decorators: [{
487
472
  type: Directive,
488
473
  args: [{ selector: 'button[ngxIconButton]' }]
489
474
  }], propDecorators: { appIconButton: [{
@@ -493,80 +478,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImpor
493
478
  type: Input
494
479
  }] } });
495
480
 
496
- class NgxListGroupItemAvatarDirective {
497
- constructor() {
498
- this.elementRef = inject((ElementRef));
499
- }
500
- ngOnInit() {
501
- this.elementRef.nativeElement.classList.add('list-group-item-avatar');
502
- }
503
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxListGroupItemAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
504
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.2", type: NgxListGroupItemAvatarDirective, isStandalone: true, selector: "[ngxListGroupItemAvatar]", ngImport: i0 }); }
505
- }
506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxListGroupItemAvatarDirective, decorators: [{
507
- type: Directive,
508
- args: [{ selector: '[ngxListGroupItemAvatar]' }]
509
- }] });
510
-
511
- class NgxListGroupItemDirective {
481
+ class NgxTooltipDirective {
512
482
  constructor() {
513
- this.renderer = inject(Renderer2);
514
- this.elementRef = inject((ElementRef));
515
- this._isActive = false;
516
- this.onOutsideClick = new EventEmitter();
517
- }
518
- set isActive(val) {
519
- this._isActive = val;
520
- if (val) {
521
- this.elementRef.nativeElement.classList.add('focus-active');
522
- }
523
- else {
524
- this.elementRef.nativeElement.classList.remove('focus-active');
525
- }
526
- }
527
- ngOnInit() {
528
- this.elementRef.nativeElement.classList.add('list-group-item');
529
- this.elementRef.nativeElement.classList.add('list-group-item-action');
530
- this.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');
531
- this.renderer.listen('window', 'click', (e) => {
532
- if (e.target !== this.elementRef.nativeElement) {
533
- this._isActive = false;
534
- this.elementRef.nativeElement.classList.remove('focus-active');
535
- this.onOutsideClick.next();
536
- }
537
- });
538
- }
539
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxListGroupItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
540
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.2", type: NgxListGroupItemDirective, isStandalone: true, selector: "li[ngxListGroupItem]", inputs: { isActive: "isActive" }, outputs: { onOutsideClick: "onOutsideClick" }, ngImport: i0 }); }
541
- }
542
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxListGroupItemDirective, decorators: [{
543
- type: Directive,
544
- args: [{ selector: 'li[ngxListGroupItem]' }]
545
- }], propDecorators: { isActive: [{
546
- type: Input
547
- }], onOutsideClick: [{
548
- type: Output
549
- }] } });
550
-
551
- class NgxListGroupDirective {
552
- constructor() {
553
- this.elementRef = inject((ElementRef));
554
- }
555
- ngOnInit() {
556
- this.elementRef.nativeElement.classList.add('list-group');
557
- this.elementRef.nativeElement.classList.add('list-group-flush');
558
- }
559
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxListGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
560
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.2", type: NgxListGroupDirective, isStandalone: true, selector: "ul[ngxListGroup]", ngImport: i0 }); }
561
- }
562
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxListGroupDirective, decorators: [{
563
- type: Directive,
564
- args: [{ selector: 'ul[ngxListGroup]' }]
565
- }] });
566
-
567
- class NgxTooltipDirective {
568
- constructor() {
569
- this.elementRef = inject(ElementRef);
483
+ this.elementRef = inject(ElementRef);
570
484
  this.renderer = inject(Renderer2);
571
485
  this.viewContainerRef = inject(ViewContainerRef);
572
486
  this.ngxTooltip = input.required(...(ngDevMode ? [{ debugName: "ngxTooltip" }] : []));
@@ -752,10 +666,10 @@ class NgxTooltipDirective {
752
666
  this.show();
753
667
  }
754
668
  }
755
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
756
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.2", type: NgxTooltipDirective, isStandalone: true, selector: "[ngxTooltip]", inputs: { ngxTooltip: { classPropertyName: "ngxTooltip", publicName: "ngxTooltip", isSignal: true, isRequired: true, transformFunction: null }, ngxTooltipClass: { classPropertyName: "ngxTooltipClass", publicName: "ngxTooltipClass", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipPlacement: { classPropertyName: "ngxTooltipPlacement", publicName: "ngxTooltipPlacement", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipIsShow: { classPropertyName: "ngxTooltipIsShow", publicName: "ngxTooltipIsShow", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipXOffset: { classPropertyName: "ngxTooltipXOffset", publicName: "ngxTooltipXOffset", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipYOffset: { classPropertyName: "ngxTooltipYOffset", publicName: "ngxTooltipYOffset", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipDelay: { classPropertyName: "ngxTooltipDelay", publicName: "ngxTooltipDelay", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipTriggers: { classPropertyName: "ngxTooltipTriggers", publicName: "ngxTooltipTriggers", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipSize: { classPropertyName: "ngxTooltipSize", publicName: "ngxTooltipSize", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipZIndex: { classPropertyName: "ngxTooltipZIndex", publicName: "ngxTooltipZIndex", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipAdaptivePosition: { classPropertyName: "ngxTooltipAdaptivePosition", publicName: "ngxTooltipAdaptivePosition", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipFallbackPlacements: { classPropertyName: "ngxTooltipFallbackPlacements", publicName: "ngxTooltipFallbackPlacements", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onHover()", "mouseleave": "onLeave()", "pointerenter": "onPointerEnter()", "pointerout": "onPointerOut()", "focusin": "onFocusIn()", "focusout": "onFocusOut()", "click": "onClick($event)", "document:click": "onDocumentClick($event)" } }, exportAs: ["ngxTooltip"], ngImport: i0 }); }
669
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
670
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.3", type: NgxTooltipDirective, isStandalone: true, selector: "[ngxTooltip]", inputs: { ngxTooltip: { classPropertyName: "ngxTooltip", publicName: "ngxTooltip", isSignal: true, isRequired: true, transformFunction: null }, ngxTooltipClass: { classPropertyName: "ngxTooltipClass", publicName: "ngxTooltipClass", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipPlacement: { classPropertyName: "ngxTooltipPlacement", publicName: "ngxTooltipPlacement", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipIsShow: { classPropertyName: "ngxTooltipIsShow", publicName: "ngxTooltipIsShow", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipXOffset: { classPropertyName: "ngxTooltipXOffset", publicName: "ngxTooltipXOffset", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipYOffset: { classPropertyName: "ngxTooltipYOffset", publicName: "ngxTooltipYOffset", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipDelay: { classPropertyName: "ngxTooltipDelay", publicName: "ngxTooltipDelay", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipTriggers: { classPropertyName: "ngxTooltipTriggers", publicName: "ngxTooltipTriggers", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipSize: { classPropertyName: "ngxTooltipSize", publicName: "ngxTooltipSize", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipZIndex: { classPropertyName: "ngxTooltipZIndex", publicName: "ngxTooltipZIndex", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipAdaptivePosition: { classPropertyName: "ngxTooltipAdaptivePosition", publicName: "ngxTooltipAdaptivePosition", isSignal: true, isRequired: false, transformFunction: null }, ngxTooltipFallbackPlacements: { classPropertyName: "ngxTooltipFallbackPlacements", publicName: "ngxTooltipFallbackPlacements", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onHover()", "mouseleave": "onLeave()", "pointerenter": "onPointerEnter()", "pointerout": "onPointerOut()", "focusin": "onFocusIn()", "focusout": "onFocusOut()", "click": "onClick($event)", "document:click": "onDocumentClick($event)" } }, exportAs: ["ngxTooltip"], ngImport: i0 }); }
757
671
  }
758
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxTooltipDirective, decorators: [{
672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTooltipDirective, decorators: [{
759
673
  type: Directive,
760
674
  args: [{ selector: '[ngxTooltip]', exportAs: 'ngxTooltip' }]
761
675
  }], ctorParameters: () => [], propDecorators: { onHover: [{
@@ -784,215 +698,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImpor
784
698
  args: ['document:click', ['$event']]
785
699
  }] } });
786
700
 
787
- class CalendarComponent {
788
- constructor() {
789
- this.onDaySelected = output();
790
- this.currentMonth = dayjs();
791
- this.weeks = [];
792
- this.selectedDay = null;
793
- this.hoveredDay = null;
794
- }
795
- ngOnInit() {
796
- this.generateCalendar();
797
- }
798
- onSelectDay(day) {
799
- this.selectedDay = day;
800
- this.onDaySelected.emit(this.selectedDay);
801
- }
802
- generateCalendar() {
803
- const startOfMonth = this.currentMonth.startOf('month');
804
- const endOfMonth = this.currentMonth.endOf('month');
805
- const startDate = startOfMonth.startOf('week');
806
- const endDate = endOfMonth.endOf('week');
807
- let date = startDate.clone();
808
- const calendar = [];
809
- while (date.isBefore(endDate, 'day')) {
810
- const week = [];
811
- for (let i = 0; i < 7; i++) {
812
- week.push(date.clone());
813
- date = date.add(1, 'day');
814
- }
815
- calendar.push(week);
816
- }
817
- this.weeks = calendar;
818
- }
819
- previousMonth() {
820
- this.currentMonth = this.currentMonth.subtract(1, 'month');
821
- this.generateCalendar();
822
- }
823
- nextMonth() {
824
- this.currentMonth = this.currentMonth.add(1, 'month');
825
- this.generateCalendar();
826
- }
827
- isToday(date) {
828
- return date.isSame(dayjs(), 'day');
829
- }
830
- isCurrentMonth(date) {
831
- return date.isSame(this.currentMonth, 'month');
832
- }
833
- isSelected(day) {
834
- return this.selectedDay?.isSame(day, 'day') || false;
835
- }
836
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
837
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: CalendarComponent, isStandalone: true, selector: "ngx-calendar", outputs: { onDaySelected: "onDaySelected" }, ngImport: i0, template: "<div class=\"container my-3\">\n\t<div class=\"d-flex justify-content-between align-items-center mb-3\">\n\t\t<button ngxButton variant=\"outline\" (click)=\"previousMonth()\">\u00AB</button>\n\t\t<h4 class=\"m-0\">\n\t\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t\t</h4>\n\t\t<button ngxButton variant=\"outline\" (click)=\"nextMonth()\">\u00BB</button>\n\t</div>\n\n\t<div class=\"table-responsive\">\n\t\t<table class=\"table table-bordered text-center\">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']; track day) {\n\t\t\t\t\t\t<th>{{ day }}</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t\t[class.bg-light]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t\t[class.bg-dark-subtle]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t\t[class.text-white]=\"isToday(day) && !(isSelected(day) || day === hoveredDay)\"\n\t\t\t\t\t\t\t\t[class.bg-primary]=\"isToday(day)\"\n\t\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tr>\n\t\t\t\t}\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</div>\n", styles: [".day:hover{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: NgxButtonDirective, selector: "button[ngxButton]", inputs: ["type", "ngxButton", "variant", "size"] }] }); }
838
- }
839
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: CalendarComponent, decorators: [{
840
- type: Component,
841
- args: [{ selector: 'ngx-calendar', imports: [CommonModule, NgxButtonDirective], template: "<div class=\"container my-3\">\n\t<div class=\"d-flex justify-content-between align-items-center mb-3\">\n\t\t<button ngxButton variant=\"outline\" (click)=\"previousMonth()\">\u00AB</button>\n\t\t<h4 class=\"m-0\">\n\t\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t\t</h4>\n\t\t<button ngxButton variant=\"outline\" (click)=\"nextMonth()\">\u00BB</button>\n\t</div>\n\n\t<div class=\"table-responsive\">\n\t\t<table class=\"table table-bordered text-center\">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']; track day) {\n\t\t\t\t\t\t<th>{{ day }}</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t\t[class.bg-light]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t\t[class.bg-dark-subtle]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t\t[class.text-white]=\"isToday(day) && !(isSelected(day) || day === hoveredDay)\"\n\t\t\t\t\t\t\t\t[class.bg-primary]=\"isToday(day)\"\n\t\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tr>\n\t\t\t\t}\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</div>\n", styles: [".day:hover{cursor:pointer}\n"] }]
842
- }] });
843
-
844
- class NgxFormErrorsComponent {
845
- constructor() {
846
- this.isDirty = input(false, ...(ngDevMode ? [{ debugName: "isDirty" }] : []));
847
- this.errors = input(null, ...(ngDevMode ? [{ debugName: "errors" }] : []));
848
- this.errorMessages = computed(() => {
849
- const result = [];
850
- if (this.isDirty() && this.errors()) {
851
- for (const key in this.errors()) {
852
- if (this.errorMessageDictionary[key]) {
853
- result.push(this.errorMessageDictionary[key](this.errors()));
854
- }
855
- }
856
- }
857
- return result;
858
- }, ...(ngDevMode ? [{ debugName: "errorMessages" }] : []));
859
- this.errorMessageDictionary = {
860
- required: () => 'Field is required',
861
- requiredTrue: () => 'Field is required',
862
- email: () => 'Invalid E-Mail',
863
- min: (errors) => `At least ${errors['min']?.requiredLength} characters are required`,
864
- minlength: (errors) => `At least ${errors['minlength']?.requiredLength} characters are required`,
865
- max: (errors) => `Maximum of ${errors['max']?.requiredLength} characters exceeded`,
866
- maxlength: (errors) => `Maximum of ${errors['maxlength']?.requiredLength} characters exceeded`,
867
- pattern: () => `Input does not match pattern`,
868
- dateAfterInvalid: (errors) => `Date must be after ${errors?.['startDateValue']}`,
869
- match: () => `Input does not match!`,
870
- timeAfterError: (errors) => `The time must be after ${errors?.['timeAfterError']}`,
871
- };
872
- }
873
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
874
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: NgxFormErrorsComponent, isStandalone: true, selector: "ngx-form-errors", inputs: { isDirty: { classPropertyName: "isDirty", publicName: "isDirty", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
875
- @if (errorMessages()) {
876
- <div class="invalid-feedback d-block">
877
- @for (errorMessage of errorMessages(); track $index) {
878
- <div>{{ errorMessage }}</div>
879
- }
880
- </div>
881
- }
882
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
883
- }
884
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormErrorsComponent, decorators: [{
885
- type: Component,
886
- args: [{
887
- selector: 'ngx-form-errors',
888
- template: `
889
- @if (errorMessages()) {
890
- <div class="invalid-feedback d-block">
891
- @for (errorMessage of errorMessages(); track $index) {
892
- <div>{{ errorMessage }}</div>
893
- }
894
- </div>
895
- }
896
- `,
897
- imports: [CommonModule],
898
- }]
899
- }] });
900
-
901
- class NgxFormControlPipe {
902
- transform(value) {
903
- return value;
904
- }
905
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormControlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
906
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.2", ngImport: i0, type: NgxFormControlPipe, isStandalone: true, name: "ngxAsFormControl" }); }
907
- }
908
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormControlPipe, decorators: [{
909
- type: Pipe,
910
- args: [{ name: 'ngxAsFormControl' }]
911
- }] });
912
-
913
- class AppIsFormControlPipe {
914
- transform(value) {
915
- return value;
916
- }
917
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: AppIsFormControlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
918
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.2", ngImport: i0, type: AppIsFormControlPipe, isStandalone: true, name: "appIsFormControl" }); }
919
- }
920
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: AppIsFormControlPipe, decorators: [{
921
- type: Pipe,
922
- args: [{ name: 'appIsFormControl' }]
923
- }] });
924
-
925
- class NgxIsFormGroupPipe {
926
- transform(value) {
927
- return value;
928
- }
929
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxIsFormGroupPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
930
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.2", ngImport: i0, type: NgxIsFormGroupPipe, isStandalone: true, name: "ngxIsFormGroup" }); }
931
- }
932
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxIsFormGroupPipe, decorators: [{
933
- type: Pipe,
934
- args: [{ name: 'ngxIsFormGroup' }]
935
- }] });
936
-
937
- class NgxFormComponent {
938
- constructor() {
939
- this.formGroup = input.required(...(ngDevMode ? [{ debugName: "formGroup" }] : []));
940
- this.formGroupDirective = viewChild(NgxFormGroupDirective, ...(ngDevMode ? [{ debugName: "formGroupDirective" }] : []));
941
- this.onValidated = output();
942
- this.keepOriginalOrder = () => 0;
943
- }
944
- isFormControl(control) {
945
- return control instanceof NgxFormControl;
946
- }
947
- validate() {
948
- this.formGroupDirective()?.validateForm();
949
- this.onValidated.emit();
950
- }
951
- reset() {
952
- this.formGroupDirective()?.resetForm();
953
- }
954
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
955
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: NgxFormComponent, isStandalone: true, selector: "ngx-form", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onValidated: "onValidated" }, viewQueries: [{ propertyName: "formGroupDirective", first: true, predicate: NgxFormGroupDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<form ngxFormGroup #formGroupDirective=\"ngxFormGroup\" [formGroup]=\"formGroup()\">\n\t@for (control of formGroup().controls | keyvalue: keepOriginalOrder; track $index) {\n\t\t@if (isFormControl(control.value)) {\n\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: control }\" />\n\t\t} @else {\n\t\t\t<div ngxFormGroup [formGroup]=\"control.value | ngxIsFormGroup\" class=\"row\">\n\t\t\t\t@for (\n\t\t\t\t\tsubControl of (control.value | ngxIsFormGroup).controls | keyvalue: keepOriginalOrder;\n\t\t\t\t\ttrack $index\n\t\t\t\t) {\n\t\t\t\t\t<div class=\"col\">\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: subControl }\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</form>\n\n<ng-template #formField let-control=\"control\">\n\t@if (control.value | appIsFormControl; as typedControl) {\n\t\t<div class=\"mb-3\">\n\t\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ typedControl.customConfig?.label }}\n\t\t</label> -->\n\n\t\t\t@switch (typedControl.config?.type) {\n\t\t\t\t@case ('textarea') {\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[rows]=\"typedControl.config?.textareaConfig?.rows || 4\">\n\t\t\t\t\t</textarea>\n\t\t\t\t}\n\n\t\t\t\t@case ('select') {\n\t\t\t\t\t<select\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t\t@for (option of typedControl.config?.selectConfig?.options; track option.value) {\n\t\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t}\n\t\t\t\t\t</select>\n\t\t\t\t}\n\n\t\t\t\t@case ('checkbox') {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\n\t\t\t\t@default {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\t[type]=\"typedControl.config?.type || 'text'\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[autocomplete]=\"typedControl.config?.type === 'password' ? 'new-password' : undefined\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t\t{{ typedControl.config?.label }}\n\t\t\t</label>\n\n\t\t\t@if (typedControl.config?.hint) {\n\t\t\t\t<small class=\"text-muted\">\n\t\t\t\t\t{{ typedControl.config?.hint }}\n\t\t\t\t</small>\n\t\t\t}\n\n\t\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t\t</div>\n\t}\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgxFormGroupDirective, selector: "[ngxFormGroup]", inputs: ["formGroup", "validateOnChange"], exportAs: ["ngxFormGroup"] }, { kind: "directive", type: NgxFormLabelDirective, selector: "label[ngxFormLabel]" }, { kind: "component", type: NgxFormErrorsComponent, selector: "ngx-form-errors", inputs: ["isDirty", "errors"] }, { kind: "directive", type: NgxFormInputDirective, selector: "[ngxFormInput]", inputs: ["ngxFormInput", "formControl", "id", "name", "type", "placeholder", "isFloatingLabel"] }, { kind: "directive", type: NgxAutofocusDirective, selector: "[ngxAutofocus]", inputs: ["ngxAutofocus"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: AppIsFormControlPipe, name: "appIsFormControl" }, { kind: "pipe", type: NgxIsFormGroupPipe, name: "ngxIsFormGroup" }] }); }
956
- }
957
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormComponent, decorators: [{
958
- type: Component,
959
- args: [{ selector: 'ngx-form', imports: [
960
- CommonModule,
961
- ReactiveFormsModule,
962
- NgxFormGroupDirective,
963
- NgxFormLabelDirective,
964
- NgxFormErrorsComponent,
965
- NgxFormInputDirective,
966
- AppIsFormControlPipe,
967
- NgxIsFormGroupPipe,
968
- NgxAutofocusDirective,
969
- ], template: "<form ngxFormGroup #formGroupDirective=\"ngxFormGroup\" [formGroup]=\"formGroup()\">\n\t@for (control of formGroup().controls | keyvalue: keepOriginalOrder; track $index) {\n\t\t@if (isFormControl(control.value)) {\n\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: control }\" />\n\t\t} @else {\n\t\t\t<div ngxFormGroup [formGroup]=\"control.value | ngxIsFormGroup\" class=\"row\">\n\t\t\t\t@for (\n\t\t\t\t\tsubControl of (control.value | ngxIsFormGroup).controls | keyvalue: keepOriginalOrder;\n\t\t\t\t\ttrack $index\n\t\t\t\t) {\n\t\t\t\t\t<div class=\"col\">\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: subControl }\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</form>\n\n<ng-template #formField let-control=\"control\">\n\t@if (control.value | appIsFormControl; as typedControl) {\n\t\t<div class=\"mb-3\">\n\t\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ typedControl.customConfig?.label }}\n\t\t</label> -->\n\n\t\t\t@switch (typedControl.config?.type) {\n\t\t\t\t@case ('textarea') {\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[rows]=\"typedControl.config?.textareaConfig?.rows || 4\">\n\t\t\t\t\t</textarea>\n\t\t\t\t}\n\n\t\t\t\t@case ('select') {\n\t\t\t\t\t<select\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t\t@for (option of typedControl.config?.selectConfig?.options; track option.value) {\n\t\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t}\n\t\t\t\t\t</select>\n\t\t\t\t}\n\n\t\t\t\t@case ('checkbox') {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\n\t\t\t\t@default {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\t[type]=\"typedControl.config?.type || 'text'\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[autocomplete]=\"typedControl.config?.type === 'password' ? 'new-password' : undefined\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t\t{{ typedControl.config?.label }}\n\t\t\t</label>\n\n\t\t\t@if (typedControl.config?.hint) {\n\t\t\t\t<small class=\"text-muted\">\n\t\t\t\t\t{{ typedControl.config?.hint }}\n\t\t\t\t</small>\n\t\t\t}\n\n\t\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t\t</div>\n\t}\n</ng-template>\n", styles: [":host{display:block}\n"] }]
970
- }] });
971
-
972
- class NgxLoadingIndicatorComponent {
973
- constructor() {
974
- this.faSpinner = faSpinner;
975
- }
976
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxLoadingIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
977
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", type: NgxLoadingIndicatorComponent, isStandalone: true, selector: "ngx-loading-indicator", ngImport: i0, template: "<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\" />\n", styles: [":host{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#495057}\n"], dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }] }); }
978
- }
979
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxLoadingIndicatorComponent, decorators: [{
980
- type: Component,
981
- args: [{ selector: 'ngx-loading-indicator', imports: [FontAwesomeModule], template: "<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\" />\n", styles: [":host{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#495057}\n"] }]
982
- }] });
983
-
984
- class BaseModalComponent {
985
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: BaseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
986
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", type: BaseModalComponent, isStandalone: true, selector: "ngx-base-modal", ngImport: i0, template: ``, isInline: true }); }
987
- }
988
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: BaseModalComponent, decorators: [{
989
- type: Component,
990
- args: [{
991
- selector: 'ngx-base-modal',
992
- template: ``,
993
- }]
994
- }] });
995
-
996
701
  class NgxModalComponent {
997
702
  constructor() {
998
703
  this.title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
@@ -1027,10 +732,10 @@ class NgxModalComponent {
1027
732
  handleClickClose() {
1028
733
  this.onClose.emit();
1029
734
  }
1030
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1031
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: NgxModalComponent, isStandalone: true, selector: "ngx-modal", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null }, fullScreen: { classPropertyName: "fullScreen", publicName: "fullScreen", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, centered: { classPropertyName: "centered", publicName: "centered", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClose: "onClose" }, host: { listeners: { "document:keydown.escape": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<div class=\"modal d-flex justify-content-center align-items-center\" [ngxAutofocus]=\"true\" tabindex=\"0\">\n\t<div class=\"modal-dialog w-100\" [ngClass]=\"dialogCssClasses()\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title() }}</h5>\n\n\t\t\t\t@if (showClose()) {\n\t\t\t\t\t<button\n\t\t\t\t\t\tngxIconButton=\"secondary\"\n\t\t\t\t\t\tngxTooltip=\"close\"\n\t\t\t\t\t\t[ngxTooltipZIndex]=\"1055\"\n\t\t\t\t\t\tclass=\"ms-2\"\n\t\t\t\t\t\t(click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\" />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgxIconButtonDirective, selector: "button[ngxIconButton]", inputs: ["ngxIconButton", "shadow"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "directive", type: NgxAutofocusDirective, selector: "[ngxAutofocus]", inputs: ["ngxAutofocus"] }, { kind: "directive", type: NgxTooltipDirective, selector: "[ngxTooltip]", inputs: ["ngxTooltip", "ngxTooltipClass", "ngxTooltipPlacement", "ngxTooltipIsShow", "ngxTooltipXOffset", "ngxTooltipYOffset", "ngxTooltipDelay", "ngxTooltipTriggers", "ngxTooltipSize", "ngxTooltipZIndex", "ngxTooltipAdaptivePosition", "ngxTooltipFallbackPlacements"], exportAs: ["ngxTooltip"] }] }); }
735
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
736
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: NgxModalComponent, isStandalone: true, selector: "ngx-modal", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showClose: { classPropertyName: "showClose", publicName: "showClose", isSignal: true, isRequired: false, transformFunction: null }, fullScreen: { classPropertyName: "fullScreen", publicName: "fullScreen", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, centered: { classPropertyName: "centered", publicName: "centered", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClose: "onClose" }, host: { listeners: { "document:keydown.escape": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<div class=\"modal d-flex justify-content-center align-items-center\" [ngxAutofocus]=\"true\" tabindex=\"0\">\n\t<div class=\"modal-dialog w-100\" [ngClass]=\"dialogCssClasses()\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title() }}</h5>\n\n\t\t\t\t@if (showClose()) {\n\t\t\t\t\t<button\n\t\t\t\t\t\tngxIconButton=\"secondary\"\n\t\t\t\t\t\tngxTooltip=\"close\"\n\t\t\t\t\t\t[ngxTooltipZIndex]=\"1055\"\n\t\t\t\t\t\tclass=\"ms-2\"\n\t\t\t\t\t\t(click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\" />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgxIconButtonDirective, selector: "button[ngxIconButton]", inputs: ["ngxIconButton", "shadow"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "directive", type: NgxAutofocusDirective, selector: "[ngxAutofocus]", inputs: ["ngxAutofocus"] }, { kind: "directive", type: NgxTooltipDirective, selector: "[ngxTooltip]", inputs: ["ngxTooltip", "ngxTooltipClass", "ngxTooltipPlacement", "ngxTooltipIsShow", "ngxTooltipXOffset", "ngxTooltipYOffset", "ngxTooltipDelay", "ngxTooltipTriggers", "ngxTooltipSize", "ngxTooltipZIndex", "ngxTooltipAdaptivePosition", "ngxTooltipFallbackPlacements"], exportAs: ["ngxTooltip"] }] }); }
1032
737
  }
1033
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxModalComponent, decorators: [{
738
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxModalComponent, decorators: [{
1034
739
  type: Component,
1035
740
  args: [{ selector: 'ngx-modal', imports: [CommonModule, NgxIconButtonDirective, FontAwesomeModule, NgxAutofocusDirective, NgxTooltipDirective], template: "<div class=\"modal d-flex justify-content-center align-items-center\" [ngxAutofocus]=\"true\" tabindex=\"0\">\n\t<div class=\"modal-dialog w-100\" [ngClass]=\"dialogCssClasses()\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title() }}</h5>\n\n\t\t\t\t@if (showClose()) {\n\t\t\t\t\t<button\n\t\t\t\t\t\tngxIconButton=\"secondary\"\n\t\t\t\t\t\tngxTooltip=\"close\"\n\t\t\t\t\t\t[ngxTooltipZIndex]=\"1055\"\n\t\t\t\t\t\tclass=\"ms-2\"\n\t\t\t\t\t\t(click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\" />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n" }]
1036
741
  }], propDecorators: { handleKeyboardEvent: [{
@@ -1047,10 +752,10 @@ class NgxOffCanvasComponent {
1047
752
  handleClickClose() {
1048
753
  this.onClose.emit();
1049
754
  }
1050
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxOffCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1051
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.2", type: NgxOffCanvasComponent, isStandalone: true, selector: "ngx-off-canvas", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title() }}</h5>\n\t\t<button ngxIconButton=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n", styles: [":host{z-index:9999;display:block}\n"], dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "directive", type: NgxIconButtonDirective, selector: "button[ngxIconButton]", inputs: ["ngxIconButton", "shadow"] }] }); }
755
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxOffCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
756
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: NgxOffCanvasComponent, isStandalone: true, selector: "ngx-off-canvas", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title() }}</h5>\n\t\t<button ngxIconButton=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n", styles: [":host{z-index:9999;display:block}\n"], dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "directive", type: NgxIconButtonDirective, selector: "button[ngxIconButton]", inputs: ["ngxIconButton", "shadow"] }] }); }
1052
757
  }
1053
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxOffCanvasComponent, decorators: [{
758
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxOffCanvasComponent, decorators: [{
1054
759
  type: Component,
1055
760
  args: [{ selector: 'ngx-off-canvas', imports: [FontAwesomeModule, NgxIconButtonDirective], template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title() }}</h5>\n\t\t<button ngxIconButton=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n", styles: [":host{z-index:9999;display:block}\n"] }]
1056
761
  }] });
@@ -1059,10 +764,10 @@ class NgxTabContentComponent {
1059
764
  constructor() {
1060
765
  this.isActive = model(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
1061
766
  }
1062
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxTabContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1063
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.2", type: NgxTabContentComponent, isStandalone: true, selector: "ngx-tab-content", inputs: { isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isActive: "isActiveChange" }, ngImport: i0, template: "<div class=\"tab-content\" [ngClass]=\"{ active: isActive() }\">\n\t<ng-content />\n</div>\n", styles: [".tab-content{display:none;padding:20px}.tab-content.active{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
767
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTabContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
768
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: NgxTabContentComponent, isStandalone: true, selector: "ngx-tab-content", inputs: { isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isActive: "isActiveChange" }, ngImport: i0, template: "<div class=\"tab-content\" [ngClass]=\"{ active: isActive() }\">\n\t<ng-content />\n</div>\n", styles: [".tab-content{display:none;padding:20px}.tab-content.active{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
1064
769
  }
1065
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxTabContentComponent, decorators: [{
770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTabContentComponent, decorators: [{
1066
771
  type: Component,
1067
772
  args: [{ selector: 'ngx-tab-content', imports: [CommonModule], template: "<div class=\"tab-content\" [ngClass]=\"{ active: isActive() }\">\n\t<ng-content />\n</div>\n", styles: [".tab-content{display:none;padding:20px}.tab-content.active{display:block}\n"] }]
1068
773
  }] });
@@ -1076,10 +781,10 @@ class NgxTabComponent {
1076
781
  onClick() {
1077
782
  this.onSelected.emit();
1078
783
  }
1079
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1080
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.2", type: NgxTabComponent, isStandalone: true, selector: "ngx-tab", inputs: { isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { isActive: "isActiveChange", onSelected: "onSelected" }, host: { listeners: { "click": "onClick($event.target)" } }, ngImport: i0, template: "<div class=\"tab\" [ngClass]=\"{ active: isActive() }\" tabindex=\"0\">\n\t<ng-content />\n</div>\n", styles: [":host{display:flex}.tab{color:var(--font-color);padding:16px 20px;border-bottom:3px solid var(--gray-80);flex-shrink:0}.tab.active{color:var(--primary);background:var(--body-bg-color);border-bottom:3px solid var(--primary)}.tab:focus{outline:0;z-index:1}.tab:hover{cursor:pointer;background-color:var(--tab-highlight)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
784
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
785
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: NgxTabComponent, isStandalone: true, selector: "ngx-tab", inputs: { isActive: { classPropertyName: "isActive", publicName: "isActive", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { isActive: "isActiveChange", onSelected: "onSelected" }, host: { listeners: { "click": "onClick($event.target)" } }, ngImport: i0, template: "<div class=\"tab\" [ngClass]=\"{ active: isActive() }\" tabindex=\"0\">\n\t<ng-content />\n</div>\n", styles: [":host{display:flex}.tab{color:var(--font-color);padding:16px 20px;border-bottom:3px solid var(--gray-80);flex-shrink:0}.tab.active{color:var(--primary);background:var(--body-bg-color);border-bottom:3px solid var(--primary)}.tab:focus{outline:0;z-index:1}.tab:hover{cursor:pointer;background-color:var(--tab-highlight)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
1081
786
  }
1082
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxTabComponent, decorators: [{
787
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTabComponent, decorators: [{
1083
788
  type: Component,
1084
789
  args: [{ selector: 'ngx-tab', imports: [CommonModule], template: "<div class=\"tab\" [ngClass]=\"{ active: isActive() }\" tabindex=\"0\">\n\t<ng-content />\n</div>\n", styles: [":host{display:flex}.tab{color:var(--font-color);padding:16px 20px;border-bottom:3px solid var(--gray-80);flex-shrink:0}.tab.active{color:var(--primary);background:var(--body-bg-color);border-bottom:3px solid var(--primary)}.tab:focus{outline:0;z-index:1}.tab:hover{cursor:pointer;background-color:var(--tab-highlight)}\n"] }]
1085
790
  }], propDecorators: { onClick: [{
@@ -1108,10 +813,10 @@ class NgxTabsComponent {
1108
813
  this.tabQueryList().forEach(tab => tab.isActive.update(() => tab === tabComponent));
1109
814
  this.tabContentQueryList().forEach(tabContent => tabContent.isActive.update(() => tabContent === tabComponent.target()));
1110
815
  }
1111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.2", type: NgxTabsComponent, isStandalone: true, selector: "ngx-tabs", queries: [{ propertyName: "tabQueryList", predicate: NgxTabComponent, isSignal: true }, { propertyName: "tabContentQueryList", predicate: NgxTabContentComponent, isSignal: true }], ngImport: i0, template: "<div class=\"tabs\">\n\t<ng-content select=\"ngx-tab\" />\n</div>\n<div class=\"tab-contents\">\n\t<ng-content select=\"ngx-tab-content\" />\n</div>\n", styles: [".tabs{display:flex;cursor:pointer;-webkit-tap-highlight-color:transparent;overflow-x:auto}\n"] }); }
816
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
817
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.3", type: NgxTabsComponent, isStandalone: true, selector: "ngx-tabs", queries: [{ propertyName: "tabQueryList", predicate: NgxTabComponent, isSignal: true }, { propertyName: "tabContentQueryList", predicate: NgxTabContentComponent, isSignal: true }], ngImport: i0, template: "<div class=\"tabs\">\n\t<ng-content select=\"ngx-tab\" />\n</div>\n<div class=\"tab-contents\">\n\t<ng-content select=\"ngx-tab-content\" />\n</div>\n", styles: [".tabs{display:flex;cursor:pointer;-webkit-tap-highlight-color:transparent;overflow-x:auto}\n"] }); }
1113
818
  }
1114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxTabsComponent, decorators: [{
819
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTabsComponent, decorators: [{
1115
820
  type: Component,
1116
821
  args: [{ selector: 'ngx-tabs', template: "<div class=\"tabs\">\n\t<ng-content select=\"ngx-tab\" />\n</div>\n<div class=\"tab-contents\">\n\t<ng-content select=\"ngx-tab-content\" />\n</div>\n", styles: [".tabs{display:flex;cursor:pointer;-webkit-tap-highlight-color:transparent;overflow-x:auto}\n"] }]
1117
822
  }] });
@@ -1120,8 +825,8 @@ class NgxToastComponent {
1120
825
  constructor() {
1121
826
  this.onClose = output();
1122
827
  }
1123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1124
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", type: NgxToastComponent, isStandalone: true, selector: "ngx-toast", inputs: { message: "message" }, outputs: { onClose: "onClose" }, ngImport: i0, template: `
828
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
829
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: NgxToastComponent, isStandalone: true, selector: "ngx-toast", inputs: { message: "message" }, outputs: { onClose: "onClose" }, ngImport: i0, template: `
1125
830
  <div class="toast align-items-center text-bg-dark border-0 show">
1126
831
  <div class="d-flex">
1127
832
  <div class="toast-body" [innerHTML]="message"></div>
@@ -1130,7 +835,7 @@ class NgxToastComponent {
1130
835
  </div>
1131
836
  `, isInline: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }); }
1132
837
  }
1133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxToastComponent, decorators: [{
838
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxToastComponent, decorators: [{
1134
839
  type: Component,
1135
840
  args: [{ selector: 'ngx-toast', template: `
1136
841
  <div class="toast align-items-center text-bg-dark border-0 show">
@@ -1176,6 +881,301 @@ function NgxLog(methodName, logType = LogType.log, logArgs = false) {
1176
881
  };
1177
882
  }
1178
883
 
884
+ class NgxCardBodyDirective {
885
+ constructor() {
886
+ this.elementRef = inject((ElementRef));
887
+ }
888
+ ngOnInit() {
889
+ this.elementRef.nativeElement.classList.add('card-body');
890
+ }
891
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardBodyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
892
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxCardBodyDirective, isStandalone: true, selector: "[ngxCardBody]", ngImport: i0 }); }
893
+ }
894
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardBodyDirective, decorators: [{
895
+ type: Directive,
896
+ args: [{ selector: '[ngxCardBody]' }]
897
+ }] });
898
+
899
+ class NgxCardHeaderDirective {
900
+ constructor() {
901
+ this.elementRef = inject((ElementRef));
902
+ }
903
+ ngOnInit() {
904
+ this.elementRef.nativeElement.classList.add('card-header');
905
+ }
906
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
907
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxCardHeaderDirective, isStandalone: true, selector: "[ngxCardHeader]", ngImport: i0 }); }
908
+ }
909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardHeaderDirective, decorators: [{
910
+ type: Directive,
911
+ args: [{ selector: '[ngxCardHeader]' }]
912
+ }] });
913
+
914
+ class NgxCardDirective {
915
+ constructor() {
916
+ this.elementRef = inject((ElementRef));
917
+ }
918
+ ngOnInit() {
919
+ this.elementRef.nativeElement.classList.add('card');
920
+ }
921
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
922
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxCardDirective, isStandalone: true, selector: "[ngxCard]", ngImport: i0 }); }
923
+ }
924
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardDirective, decorators: [{
925
+ type: Directive,
926
+ args: [{ selector: '[ngxCard]' }]
927
+ }] });
928
+
929
+ class NgxColDirective {
930
+ constructor() {
931
+ this.el = inject(ElementRef);
932
+ this.span = 'col';
933
+ }
934
+ set col(val) {
935
+ if (val) {
936
+ this.span = val;
937
+ }
938
+ }
939
+ ngAfterViewInit() {
940
+ this.el.nativeElement.classList.add(this.span);
941
+ }
942
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxColDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
943
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxColDirective, isStandalone: true, selector: "[ngxCol]", inputs: { col: "col" }, ngImport: i0 }); }
944
+ }
945
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxColDirective, decorators: [{
946
+ type: Directive,
947
+ args: [{ selector: '[ngxCol]' }]
948
+ }], propDecorators: { col: [{
949
+ type: Input
950
+ }] } });
951
+
952
+ class NgxDropdownDirective {
953
+ constructor() {
954
+ this.elementRef = inject(ElementRef);
955
+ this.renderer = inject(Renderer2);
956
+ this.viewContainerRef = inject(ViewContainerRef);
957
+ this.ngxDropdown = input.required(...(ngDevMode ? [{ debugName: "ngxDropdown" }] : []));
958
+ this.placement = input('bottom-start', ...(ngDevMode ? [{ debugName: "placement" }] : []));
959
+ // adaptivePosition: InputSignal<boolean> = input(true);
960
+ // fallbackPlacements: InputSignal<Placement[]> = input<Placement[]>(['top-end', 'bottom-end', 'right', 'left']);
961
+ this.dropdownElement = null;
962
+ this.dropdownMenuContentElement = null;
963
+ this.isDropdownVisible = false;
964
+ }
965
+ ngOnInit() {
966
+ if (!this.dropdownElement) {
967
+ this.dropdownElement = this.renderer.createElement('div');
968
+ this.renderer.addClass(this.dropdownElement, 'dropdown');
969
+ const parent = this.elementRef.nativeElement.parentNode;
970
+ this.renderer.insertBefore(parent, this.dropdownElement, this.elementRef.nativeElement);
971
+ this.renderer.appendChild(this.dropdownElement, this.elementRef.nativeElement);
972
+ }
973
+ }
974
+ toggleDropdown() {
975
+ if (this.isDropdownVisible) {
976
+ this.hide();
977
+ }
978
+ else {
979
+ this.show();
980
+ }
981
+ }
982
+ onDocumentClick(event) {
983
+ if (this.isDropdownVisible &&
984
+ this.dropdownElement &&
985
+ !this.dropdownElement.contains(event.target) &&
986
+ !this.elementRef.nativeElement.contains(event.target)) {
987
+ this.hide();
988
+ }
989
+ }
990
+ show() {
991
+ if (!this.dropdownMenuContentElement && this.dropdownElement) {
992
+ const embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.ngxDropdown());
993
+ embeddedViewRef.detectChanges();
994
+ this.dropdownMenuContentElement = embeddedViewRef.rootNodes[0];
995
+ this.renderer.appendChild(this.dropdownElement, this.dropdownMenuContentElement);
996
+ this.addDropdownLinksListener();
997
+ this.popperInstance = createPopper(this.dropdownElement, this.dropdownMenuContentElement, {
998
+ placement: this.placement(),
999
+ modifiers: [
1000
+ {
1001
+ name: 'offset',
1002
+ options: {
1003
+ offset: ({ placement }) => {
1004
+ if (placement.startsWith('bottom')) {
1005
+ return [1, -(this.dropdownElement?.offsetHeight + 1)];
1006
+ }
1007
+ if (placement.startsWith('top')) {
1008
+ return [1, -(this.dropdownElement?.offsetHeight + 1)];
1009
+ }
1010
+ if (placement.startsWith('left')) {
1011
+ return [
1012
+ this.dropdownElement?.offsetHeight,
1013
+ -this.dropdownElement?.offsetWidth,
1014
+ ];
1015
+ }
1016
+ return [1, 1];
1017
+ },
1018
+ },
1019
+ },
1020
+ // {
1021
+ // name: 'flip',
1022
+ // options: {
1023
+ // fallbackPlacements: this.adaptivePosition() ? this.fallbackPlacements() : [],
1024
+ // boundary: 'viewport',
1025
+ // padding: 0,
1026
+ // },
1027
+ // },
1028
+ {
1029
+ name: 'preventOverflow',
1030
+ options: {
1031
+ boundary: 'viewport',
1032
+ padding: 0,
1033
+ tether: false,
1034
+ },
1035
+ },
1036
+ ],
1037
+ });
1038
+ }
1039
+ this.isDropdownVisible = true;
1040
+ }
1041
+ hide() {
1042
+ if (this.dropdownMenuContentElement) {
1043
+ this.viewContainerRef.clear();
1044
+ this.dropdownMenuContentElement = null;
1045
+ this.popperInstance?.destroy();
1046
+ }
1047
+ this.isDropdownVisible = false;
1048
+ }
1049
+ addDropdownLinksListener() {
1050
+ const links = this.dropdownMenuContentElement?.querySelectorAll('.dropdown-item');
1051
+ links?.forEach(link => {
1052
+ this.renderer.listen(link, 'click', () => {
1053
+ this.hide();
1054
+ });
1055
+ });
1056
+ }
1057
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1058
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.3", type: NgxDropdownDirective, isStandalone: true, selector: "[ngxDropdown]", inputs: { ngxDropdown: { classPropertyName: "ngxDropdown", publicName: "ngxDropdown", isSignal: true, isRequired: true, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "toggleDropdown()", "document:click": "onDocumentClick($event)" } }, exportAs: ["ngxDropdown"], ngImport: i0 }); }
1059
+ }
1060
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxDropdownDirective, decorators: [{
1061
+ type: Directive,
1062
+ args: [{ selector: '[ngxDropdown]', exportAs: 'ngxDropdown' }]
1063
+ }], propDecorators: { toggleDropdown: [{
1064
+ type: HostListener,
1065
+ args: ['click']
1066
+ }], onDocumentClick: [{
1067
+ type: HostListener,
1068
+ args: ['document:click', ['$event']]
1069
+ }] } });
1070
+
1071
+ class NgxFormSelectDirective {
1072
+ constructor() {
1073
+ this.elementRef = inject((ElementRef));
1074
+ }
1075
+ set formInputInvalid(val) {
1076
+ if (val === true) {
1077
+ this.elementRef.nativeElement.classList.add('is-invalid');
1078
+ }
1079
+ else {
1080
+ this.elementRef.nativeElement.classList.remove('is-invalid');
1081
+ }
1082
+ }
1083
+ ngOnInit() {
1084
+ this.elementRef.nativeElement.classList.add('form-select');
1085
+ }
1086
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1087
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxFormSelectDirective, isStandalone: true, selector: "select[ngxFormSelect]", inputs: { formInputInvalid: "formInputInvalid" }, ngImport: i0 }); }
1088
+ }
1089
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormSelectDirective, decorators: [{
1090
+ type: Directive,
1091
+ args: [{ selector: 'select[ngxFormSelect]' }]
1092
+ }], propDecorators: { formInputInvalid: [{
1093
+ type: Input
1094
+ }] } });
1095
+
1096
+ class NgxListGroupItemAvatarDirective {
1097
+ constructor() {
1098
+ this.elementRef = inject((ElementRef));
1099
+ }
1100
+ ngOnInit() {
1101
+ this.elementRef.nativeElement.classList.add('list-group-item-avatar');
1102
+ }
1103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupItemAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1104
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxListGroupItemAvatarDirective, isStandalone: true, selector: "[ngxListGroupItemAvatar]", ngImport: i0 }); }
1105
+ }
1106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupItemAvatarDirective, decorators: [{
1107
+ type: Directive,
1108
+ args: [{ selector: '[ngxListGroupItemAvatar]' }]
1109
+ }] });
1110
+
1111
+ class NgxListGroupItemDirective {
1112
+ constructor() {
1113
+ this.renderer = inject(Renderer2);
1114
+ this.elementRef = inject((ElementRef));
1115
+ this._isActive = false;
1116
+ this.onOutsideClick = new EventEmitter();
1117
+ }
1118
+ set isActive(val) {
1119
+ this._isActive = val;
1120
+ if (val) {
1121
+ this.elementRef.nativeElement.classList.add('focus-active');
1122
+ }
1123
+ else {
1124
+ this.elementRef.nativeElement.classList.remove('focus-active');
1125
+ }
1126
+ }
1127
+ ngOnInit() {
1128
+ this.elementRef.nativeElement.classList.add('list-group-item');
1129
+ this.elementRef.nativeElement.classList.add('list-group-item-action');
1130
+ this.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');
1131
+ this.renderer.listen('window', 'click', (e) => {
1132
+ if (e.target !== this.elementRef.nativeElement) {
1133
+ this._isActive = false;
1134
+ this.elementRef.nativeElement.classList.remove('focus-active');
1135
+ this.onOutsideClick.next();
1136
+ }
1137
+ });
1138
+ }
1139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1140
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxListGroupItemDirective, isStandalone: true, selector: "li[ngxListGroupItem]", inputs: { isActive: "isActive" }, outputs: { onOutsideClick: "onOutsideClick" }, ngImport: i0 }); }
1141
+ }
1142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupItemDirective, decorators: [{
1143
+ type: Directive,
1144
+ args: [{ selector: 'li[ngxListGroupItem]' }]
1145
+ }], propDecorators: { isActive: [{
1146
+ type: Input
1147
+ }], onOutsideClick: [{
1148
+ type: Output
1149
+ }] } });
1150
+
1151
+ class NgxListGroupDirective {
1152
+ constructor() {
1153
+ this.elementRef = inject((ElementRef));
1154
+ }
1155
+ ngOnInit() {
1156
+ this.elementRef.nativeElement.classList.add('list-group');
1157
+ this.elementRef.nativeElement.classList.add('list-group-flush');
1158
+ }
1159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1160
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxListGroupDirective, isStandalone: true, selector: "ul[ngxListGroup]", ngImport: i0 }); }
1161
+ }
1162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupDirective, decorators: [{
1163
+ type: Directive,
1164
+ args: [{ selector: 'ul[ngxListGroup]' }]
1165
+ }] });
1166
+
1167
+ class NgxFormControlPipe {
1168
+ transform(value) {
1169
+ return value;
1170
+ }
1171
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormControlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1172
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: NgxFormControlPipe, isStandalone: true, name: "ngxAsFormControl" }); }
1173
+ }
1174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormControlPipe, decorators: [{
1175
+ type: Pipe,
1176
+ args: [{ name: 'ngxAsFormControl' }]
1177
+ }] });
1178
+
1179
1179
  class NgxImageService {
1180
1180
  async compress(imageBase64, quality = 0.8, fileType = 'image/jpeg') {
1181
1181
  const img = await this.load(imageBase64);
@@ -1215,10 +1215,10 @@ class NgxImageService {
1215
1215
  canvas.height = img.height;
1216
1216
  context.drawImage(img, 0, 0, canvas.width, canvas.height);
1217
1217
  }
1218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1219
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxImageService, providedIn: 'root' }); }
1218
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1219
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxImageService, providedIn: 'root' }); }
1220
1220
  }
1221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxImageService, decorators: [{
1221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxImageService, decorators: [{
1222
1222
  type: Injectable,
1223
1223
  args: [{ providedIn: 'root' }]
1224
1224
  }] });
@@ -1246,10 +1246,10 @@ class NgxLoadingIndicatorService {
1246
1246
  this.componentRef.destroy();
1247
1247
  }
1248
1248
  }
1249
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxLoadingIndicatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1250
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxLoadingIndicatorService, providedIn: 'root' }); }
1249
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxLoadingIndicatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1250
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxLoadingIndicatorService, providedIn: 'root' }); }
1251
1251
  }
1252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxLoadingIndicatorService, decorators: [{
1252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxLoadingIndicatorService, decorators: [{
1253
1253
  type: Injectable,
1254
1254
  args: [{ providedIn: 'root' }]
1255
1255
  }] });
@@ -1278,10 +1278,10 @@ class NgxModalService {
1278
1278
  this.componentRef.destroy();
1279
1279
  }
1280
1280
  }
1281
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1282
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxModalService, providedIn: 'root' }); }
1281
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1282
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxModalService, providedIn: 'root' }); }
1283
1283
  }
1284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxModalService, decorators: [{
1284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxModalService, decorators: [{
1285
1285
  type: Injectable,
1286
1286
  args: [{ providedIn: 'root' }]
1287
1287
  }] });
@@ -1319,10 +1319,10 @@ class NgxToastService {
1319
1319
  clearTimeout(this.interval);
1320
1320
  }
1321
1321
  }
1322
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1323
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxToastService, providedIn: 'root' }); }
1322
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1323
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxToastService, providedIn: 'root' }); }
1324
1324
  }
1325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxToastService, decorators: [{
1325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxToastService, decorators: [{
1326
1326
  type: Injectable,
1327
1327
  args: [{ providedIn: 'root' }]
1328
1328
  }] });