ngx-gccb 0.18.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.
- package/fesm2022/ngx-gccb.mjs +611 -612
- package/fesm2022/ngx-gccb.mjs.map +1 -1
- package/index.d.ts +111 -111
- package/package.json +1 -1
package/fesm2022/ngx-gccb.mjs
CHANGED
|
@@ -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,
|
|
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.
|
|
95
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.
|
|
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.
|
|
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,279 +89,229 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImpor
|
|
|
112
89
|
type: Input
|
|
113
90
|
}] } });
|
|
114
91
|
|
|
115
|
-
class
|
|
92
|
+
class CalendarComponent {
|
|
116
93
|
constructor() {
|
|
117
|
-
this.
|
|
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.
|
|
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
|
-
|
|
123
|
-
|
|
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.
|
|
126
|
-
type:
|
|
127
|
-
args: [{ selector: '[
|
|
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
|
|
131
|
-
|
|
132
|
-
|
|
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
|
-
|
|
135
|
-
this.
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
|
220
|
+
class NgxAutofocusDirective {
|
|
146
221
|
constructor() {
|
|
147
|
-
this.
|
|
222
|
+
this.ngZone = inject(NgZone);
|
|
223
|
+
this.el = inject(ElementRef);
|
|
224
|
+
this.ngxAutofocus = input(false, ...(ngDevMode ? [{ debugName: "ngxAutofocus" }] : []));
|
|
148
225
|
}
|
|
149
|
-
|
|
150
|
-
this.
|
|
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.
|
|
153
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
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.
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxAutofocusDirective, decorators: [{
|
|
156
239
|
type: Directive,
|
|
157
|
-
args: [{ selector: '[
|
|
240
|
+
args: [{ selector: '[ngxAutofocus]' }]
|
|
158
241
|
}] });
|
|
159
242
|
|
|
160
|
-
class
|
|
243
|
+
class NgxFormGroupDirective {
|
|
161
244
|
constructor() {
|
|
162
|
-
this.
|
|
163
|
-
this.
|
|
245
|
+
this.formGroup = input.required(...(ngDevMode ? [{ debugName: "formGroup" }] : []));
|
|
246
|
+
this.validateOnChange = input(true, ...(ngDevMode ? [{ debugName: "validateOnChange" }] : []));
|
|
164
247
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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
|
-
|
|
171
|
-
this.
|
|
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.
|
|
174
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
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.
|
|
275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormGroupDirective, decorators: [{
|
|
177
276
|
type: Directive,
|
|
178
|
-
args: [{
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
277
|
+
args: [{
|
|
278
|
+
selector: '[ngxFormGroup]',
|
|
279
|
+
exportAs: 'ngxFormGroup',
|
|
280
|
+
}]
|
|
281
|
+
}] });
|
|
182
282
|
|
|
183
|
-
class
|
|
283
|
+
class NgxFormInputDirective {
|
|
184
284
|
constructor() {
|
|
185
|
-
this.elementRef = inject(ElementRef);
|
|
186
|
-
this.
|
|
187
|
-
this.
|
|
188
|
-
this.
|
|
189
|
-
this.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
this.
|
|
193
|
-
this.
|
|
194
|
-
|
|
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 (
|
|
198
|
-
this.
|
|
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
|
-
|
|
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.
|
|
311
|
+
this.elementRef.nativeElement.classList.add('form-control');
|
|
211
312
|
}
|
|
212
|
-
|
|
213
|
-
|
|
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, customConfig) {
|
|
306
|
-
super(formState, validatorOrOpts, asyncValidator);
|
|
307
|
-
this.customConfig = customConfig;
|
|
308
|
-
}
|
|
309
|
-
updateSelecOptions(options) {
|
|
310
|
-
if (this.customConfig?.selectConfig?.options) {
|
|
311
|
-
this.customConfig.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');
|
|
385
|
-
}
|
|
386
|
-
if (this.type()) {
|
|
387
|
-
this.elementRef.nativeElement.setAttribute('type', this.type());
|
|
313
|
+
if (this.type()) {
|
|
314
|
+
this.elementRef.nativeElement.setAttribute('type', this.type());
|
|
388
315
|
}
|
|
389
316
|
this.elementRef.nativeElement.setAttribute('placeholder', this.placeholder() ?? (this.name() || this.ngxFormInput()));
|
|
390
317
|
if (this.id() ?? (this.name() || this.ngxFormInput())) {
|
|
@@ -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.
|
|
417
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.
|
|
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.
|
|
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.
|
|
429
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.
|
|
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.
|
|
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
|
|
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.
|
|
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
|
-
|
|
444
|
-
|
|
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
|
-
|
|
452
|
-
this.
|
|
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.
|
|
455
|
-
static { this.ɵ
|
|
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.
|
|
458
|
-
type:
|
|
459
|
-
args: [{ selector: '
|
|
460
|
-
|
|
461
|
-
|
|
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.
|
|
484
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
756
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.
|
|
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.
|
|
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,216 +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.formGroupDir = viewChild(NgxFormGroupDirective, ...(ngDevMode ? [{ debugName: "formGroupDir" }] : []));
|
|
941
|
-
this.onValidated = output();
|
|
942
|
-
this.keepOriginalOrder = () => 0;
|
|
943
|
-
}
|
|
944
|
-
isFormControl(control) {
|
|
945
|
-
return control instanceof NgxFormControl;
|
|
946
|
-
}
|
|
947
|
-
validate() {
|
|
948
|
-
this.formGroupDir()?.validateForm();
|
|
949
|
-
this.onValidated.emit();
|
|
950
|
-
}
|
|
951
|
-
reset() {
|
|
952
|
-
this.formGroupDir()?.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: "formGroupDir", first: true, predicate: NgxFormGroupDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<form ngxFormGroup #formGroupDir=\"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<div class=\"mb-3\">\n\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ (control.value | appIsFormControl).customConfig?.label }}\n\t\t</label> -->\n\n\t\t@switch ((control.value | appIsFormControl).customConfig?.type) {\n\t\t\t@case ('textarea') {\n\t\t\t\t<textarea\n\t\t\t\t\tngxFormInput\n\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t[ngxAutofocus]=\"(control.value | appIsFormControl).customConfig?.autofocus || false\"\n\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t[placeholder]=\"(control.value | appIsFormControl).customConfig?.placeholder\"\n\t\t\t\t\t[formControl]=\"control.value | ngxAsFormControl\"\n\t\t\t\t\t[rows]=\"(control.value | appIsFormControl).customConfig?.textareaConfig?.rows || 4\">\n\t\t\t\t</textarea>\n\t\t\t}\n\n\t\t\t@case ('select') {\n\t\t\t\t<select\n\t\t\t\t\tngxFormInput\n\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t[ngxAutofocus]=\"(control.value | appIsFormControl).customConfig?.autofocus || false\"\n\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t[formControl]=\"control.value | ngxAsFormControl\"\n\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t@for (\n\t\t\t\t\t\toption of (control.value | appIsFormControl).customConfig?.selectConfig?.options;\n\t\t\t\t\t\ttrack option.value\n\t\t\t\t\t) {\n\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t}\n\t\t\t\t</select>\n\t\t\t}\n\n\t\t\t@case ('checkbox') {\n\t\t\t\t<input\n\t\t\t\t\tngxFormInput\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t[ngxAutofocus]=\"(control.value | appIsFormControl).customConfig?.autofocus || false\"\n\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t[formControl]=\"control.value | ngxAsFormControl\"\n\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t}\n\n\t\t\t@default {\n\t\t\t\t<input\n\t\t\t\t\tngxFormInput\n\t\t\t\t\t[type]=\"(control.value | appIsFormControl).customConfig?.type || 'text'\"\n\t\t\t\t\t[ngxAutofocus]=\"(control.value | appIsFormControl).customConfig?.autofocus || false\"\n\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t[placeholder]=\"(control.value | appIsFormControl).customConfig?.placeholder\"\n\t\t\t\t\t[formControl]=\"control.value | ngxAsFormControl\"\n\t\t\t\t\t[autocomplete]=\"\n\t\t\t\t\t\t(control.value | appIsFormControl).customConfig?.type === 'password'\n\t\t\t\t\t\t\t? 'new-password'\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\"\n\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t}\n\t\t}\n\n\t\t<!-- @if ((control.value | appIsFormControl).customConfig?.type !== 'textarea') { -->\n\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ (control.value | appIsFormControl).customConfig?.label }}\n\t\t</label>\n\t\t<!-- } -->\n\n\t\t@if ((control.value | appIsFormControl).customConfig?.hint) {\n\t\t\t<small class=\"text-muted\">\n\t\t\t\t{{ (control.value | appIsFormControl).customConfig?.hint }}\n\t\t\t</small>\n\t\t}\n\n\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t</div>\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: NgxFormControlPipe, name: "ngxAsFormControl" }, { 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
|
-
NgxFormControlPipe,
|
|
963
|
-
NgxFormGroupDirective,
|
|
964
|
-
NgxFormLabelDirective,
|
|
965
|
-
NgxFormErrorsComponent,
|
|
966
|
-
NgxFormInputDirective,
|
|
967
|
-
AppIsFormControlPipe,
|
|
968
|
-
NgxIsFormGroupPipe,
|
|
969
|
-
NgxAutofocusDirective,
|
|
970
|
-
], template: "<form ngxFormGroup #formGroupDir=\"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<div class=\"mb-3\">\n\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ (control.value | appIsFormControl).customConfig?.label }}\n\t\t</label> -->\n\n\t\t@switch ((control.value | appIsFormControl).customConfig?.type) {\n\t\t\t@case ('textarea') {\n\t\t\t\t<textarea\n\t\t\t\t\tngxFormInput\n\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t[ngxAutofocus]=\"(control.value | appIsFormControl).customConfig?.autofocus || false\"\n\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t[placeholder]=\"(control.value | appIsFormControl).customConfig?.placeholder\"\n\t\t\t\t\t[formControl]=\"control.value | ngxAsFormControl\"\n\t\t\t\t\t[rows]=\"(control.value | appIsFormControl).customConfig?.textareaConfig?.rows || 4\">\n\t\t\t\t</textarea>\n\t\t\t}\n\n\t\t\t@case ('select') {\n\t\t\t\t<select\n\t\t\t\t\tngxFormInput\n\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t[ngxAutofocus]=\"(control.value | appIsFormControl).customConfig?.autofocus || false\"\n\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t[formControl]=\"control.value | ngxAsFormControl\"\n\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t@for (\n\t\t\t\t\t\toption of (control.value | appIsFormControl).customConfig?.selectConfig?.options;\n\t\t\t\t\t\ttrack option.value\n\t\t\t\t\t) {\n\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t}\n\t\t\t\t</select>\n\t\t\t}\n\n\t\t\t@case ('checkbox') {\n\t\t\t\t<input\n\t\t\t\t\tngxFormInput\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t[ngxAutofocus]=\"(control.value | appIsFormControl).customConfig?.autofocus || false\"\n\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t[formControl]=\"control.value | ngxAsFormControl\"\n\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t}\n\n\t\t\t@default {\n\t\t\t\t<input\n\t\t\t\t\tngxFormInput\n\t\t\t\t\t[type]=\"(control.value | appIsFormControl).customConfig?.type || 'text'\"\n\t\t\t\t\t[ngxAutofocus]=\"(control.value | appIsFormControl).customConfig?.autofocus || false\"\n\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t[placeholder]=\"(control.value | appIsFormControl).customConfig?.placeholder\"\n\t\t\t\t\t[formControl]=\"control.value | ngxAsFormControl\"\n\t\t\t\t\t[autocomplete]=\"\n\t\t\t\t\t\t(control.value | appIsFormControl).customConfig?.type === 'password'\n\t\t\t\t\t\t\t? 'new-password'\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\"\n\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t}\n\t\t}\n\n\t\t<!-- @if ((control.value | appIsFormControl).customConfig?.type !== 'textarea') { -->\n\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ (control.value | appIsFormControl).customConfig?.label }}\n\t\t</label>\n\t\t<!-- } -->\n\n\t\t@if ((control.value | appIsFormControl).customConfig?.hint) {\n\t\t\t<small class=\"text-muted\">\n\t\t\t\t{{ (control.value | appIsFormControl).customConfig?.hint }}\n\t\t\t</small>\n\t\t}\n\n\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t</div>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
|
|
971
|
-
}] });
|
|
972
|
-
|
|
973
|
-
class NgxLoadingIndicatorComponent {
|
|
974
|
-
constructor() {
|
|
975
|
-
this.faSpinner = faSpinner;
|
|
976
|
-
}
|
|
977
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxLoadingIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
978
|
-
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"] }] }); }
|
|
979
|
-
}
|
|
980
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxLoadingIndicatorComponent, decorators: [{
|
|
981
|
-
type: Component,
|
|
982
|
-
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"] }]
|
|
983
|
-
}] });
|
|
984
|
-
|
|
985
|
-
class BaseModalComponent {
|
|
986
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: BaseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
987
|
-
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 }); }
|
|
988
|
-
}
|
|
989
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: BaseModalComponent, decorators: [{
|
|
990
|
-
type: Component,
|
|
991
|
-
args: [{
|
|
992
|
-
selector: 'ngx-base-modal',
|
|
993
|
-
template: ``,
|
|
994
|
-
}]
|
|
995
|
-
}] });
|
|
996
|
-
|
|
997
701
|
class NgxModalComponent {
|
|
998
702
|
constructor() {
|
|
999
703
|
this.title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
@@ -1028,10 +732,10 @@ class NgxModalComponent {
|
|
|
1028
732
|
handleClickClose() {
|
|
1029
733
|
this.onClose.emit();
|
|
1030
734
|
}
|
|
1031
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1032
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
|
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"] }] }); }
|
|
1033
737
|
}
|
|
1034
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
738
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxModalComponent, decorators: [{
|
|
1035
739
|
type: Component,
|
|
1036
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" }]
|
|
1037
741
|
}], propDecorators: { handleKeyboardEvent: [{
|
|
@@ -1048,10 +752,10 @@ class NgxOffCanvasComponent {
|
|
|
1048
752
|
handleClickClose() {
|
|
1049
753
|
this.onClose.emit();
|
|
1050
754
|
}
|
|
1051
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1052
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.
|
|
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"] }] }); }
|
|
1053
757
|
}
|
|
1054
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
758
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxOffCanvasComponent, decorators: [{
|
|
1055
759
|
type: Component,
|
|
1056
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"] }]
|
|
1057
761
|
}] });
|
|
@@ -1060,10 +764,10 @@ class NgxTabContentComponent {
|
|
|
1060
764
|
constructor() {
|
|
1061
765
|
this.isActive = model(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
|
|
1062
766
|
}
|
|
1063
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1064
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.
|
|
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"] }] }); }
|
|
1065
769
|
}
|
|
1066
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
770
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTabContentComponent, decorators: [{
|
|
1067
771
|
type: Component,
|
|
1068
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"] }]
|
|
1069
773
|
}] });
|
|
@@ -1077,10 +781,10 @@ class NgxTabComponent {
|
|
|
1077
781
|
onClick() {
|
|
1078
782
|
this.onSelected.emit();
|
|
1079
783
|
}
|
|
1080
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1081
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.
|
|
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"] }] }); }
|
|
1082
786
|
}
|
|
1083
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
787
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTabComponent, decorators: [{
|
|
1084
788
|
type: Component,
|
|
1085
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"] }]
|
|
1086
790
|
}], propDecorators: { onClick: [{
|
|
@@ -1109,10 +813,10 @@ class NgxTabsComponent {
|
|
|
1109
813
|
this.tabQueryList().forEach(tab => tab.isActive.update(() => tab === tabComponent));
|
|
1110
814
|
this.tabContentQueryList().forEach(tabContent => tabContent.isActive.update(() => tabContent === tabComponent.target()));
|
|
1111
815
|
}
|
|
1112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.1.
|
|
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"] }); }
|
|
1114
818
|
}
|
|
1115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
819
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxTabsComponent, decorators: [{
|
|
1116
820
|
type: Component,
|
|
1117
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"] }]
|
|
1118
822
|
}] });
|
|
@@ -1121,8 +825,8 @@ class NgxToastComponent {
|
|
|
1121
825
|
constructor() {
|
|
1122
826
|
this.onClose = output();
|
|
1123
827
|
}
|
|
1124
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.
|
|
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: `
|
|
1126
830
|
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
1127
831
|
<div class="d-flex">
|
|
1128
832
|
<div class="toast-body" [innerHTML]="message"></div>
|
|
@@ -1131,7 +835,7 @@ class NgxToastComponent {
|
|
|
1131
835
|
</div>
|
|
1132
836
|
`, isInline: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }); }
|
|
1133
837
|
}
|
|
1134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
838
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxToastComponent, decorators: [{
|
|
1135
839
|
type: Component,
|
|
1136
840
|
args: [{ selector: 'ngx-toast', template: `
|
|
1137
841
|
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
@@ -1177,6 +881,301 @@ function NgxLog(methodName, logType = LogType.log, logArgs = false) {
|
|
|
1177
881
|
};
|
|
1178
882
|
}
|
|
1179
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
|
+
|
|
1180
1179
|
class NgxImageService {
|
|
1181
1180
|
async compress(imageBase64, quality = 0.8, fileType = 'image/jpeg') {
|
|
1182
1181
|
const img = await this.load(imageBase64);
|
|
@@ -1216,10 +1215,10 @@ class NgxImageService {
|
|
|
1216
1215
|
canvas.height = img.height;
|
|
1217
1216
|
context.drawImage(img, 0, 0, canvas.width, canvas.height);
|
|
1218
1217
|
}
|
|
1219
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1220
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
|
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' }); }
|
|
1221
1220
|
}
|
|
1222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
1221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxImageService, decorators: [{
|
|
1223
1222
|
type: Injectable,
|
|
1224
1223
|
args: [{ providedIn: 'root' }]
|
|
1225
1224
|
}] });
|
|
@@ -1247,10 +1246,10 @@ class NgxLoadingIndicatorService {
|
|
|
1247
1246
|
this.componentRef.destroy();
|
|
1248
1247
|
}
|
|
1249
1248
|
}
|
|
1250
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1251
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
|
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' }); }
|
|
1252
1251
|
}
|
|
1253
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
1252
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxLoadingIndicatorService, decorators: [{
|
|
1254
1253
|
type: Injectable,
|
|
1255
1254
|
args: [{ providedIn: 'root' }]
|
|
1256
1255
|
}] });
|
|
@@ -1279,10 +1278,10 @@ class NgxModalService {
|
|
|
1279
1278
|
this.componentRef.destroy();
|
|
1280
1279
|
}
|
|
1281
1280
|
}
|
|
1282
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1283
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
|
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' }); }
|
|
1284
1283
|
}
|
|
1285
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
1284
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxModalService, decorators: [{
|
|
1286
1285
|
type: Injectable,
|
|
1287
1286
|
args: [{ providedIn: 'root' }]
|
|
1288
1287
|
}] });
|
|
@@ -1320,10 +1319,10 @@ class NgxToastService {
|
|
|
1320
1319
|
clearTimeout(this.interval);
|
|
1321
1320
|
}
|
|
1322
1321
|
}
|
|
1323
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1324
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
|
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' }); }
|
|
1325
1324
|
}
|
|
1326
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
1325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxToastService, decorators: [{
|
|
1327
1326
|
type: Injectable,
|
|
1328
1327
|
args: [{ providedIn: 'root' }]
|
|
1329
1328
|
}] });
|