ngx-gccb 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/ngx-gccb.mjs +609 -609
- package/fesm2022/ngx-gccb.mjs.map +1 -1
- package/index.d.ts +108 -108
- 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,276 +89,226 @@ 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.
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
onDocumentClick(event) {
|
|
214
|
-
if (this.isDropdownVisible &&
|
|
215
|
-
this.dropdownElement &&
|
|
216
|
-
!this.dropdownElement.contains(event.target) &&
|
|
217
|
-
!this.elementRef.nativeElement.contains(event.target)) {
|
|
218
|
-
this.hide();
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
show() {
|
|
222
|
-
if (!this.dropdownMenuContentElement && this.dropdownElement) {
|
|
223
|
-
const embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.ngxDropdown());
|
|
224
|
-
embeddedViewRef.detectChanges();
|
|
225
|
-
this.dropdownMenuContentElement = embeddedViewRef.rootNodes[0];
|
|
226
|
-
this.renderer.appendChild(this.dropdownElement, this.dropdownMenuContentElement);
|
|
227
|
-
this.addDropdownLinksListener();
|
|
228
|
-
this.popperInstance = createPopper(this.dropdownElement, this.dropdownMenuContentElement, {
|
|
229
|
-
placement: this.placement(),
|
|
230
|
-
modifiers: [
|
|
231
|
-
{
|
|
232
|
-
name: 'offset',
|
|
233
|
-
options: {
|
|
234
|
-
offset: ({ placement }) => {
|
|
235
|
-
if (placement.startsWith('bottom')) {
|
|
236
|
-
return [1, -(this.dropdownElement?.offsetHeight + 1)];
|
|
237
|
-
}
|
|
238
|
-
if (placement.startsWith('top')) {
|
|
239
|
-
return [1, -(this.dropdownElement?.offsetHeight + 1)];
|
|
240
|
-
}
|
|
241
|
-
if (placement.startsWith('left')) {
|
|
242
|
-
return [
|
|
243
|
-
this.dropdownElement?.offsetHeight,
|
|
244
|
-
-this.dropdownElement?.offsetWidth,
|
|
245
|
-
];
|
|
246
|
-
}
|
|
247
|
-
return [1, 1];
|
|
248
|
-
},
|
|
249
|
-
},
|
|
250
|
-
},
|
|
251
|
-
// {
|
|
252
|
-
// name: 'flip',
|
|
253
|
-
// options: {
|
|
254
|
-
// fallbackPlacements: this.adaptivePosition() ? this.fallbackPlacements() : [],
|
|
255
|
-
// boundary: 'viewport',
|
|
256
|
-
// padding: 0,
|
|
257
|
-
// },
|
|
258
|
-
// },
|
|
259
|
-
{
|
|
260
|
-
name: 'preventOverflow',
|
|
261
|
-
options: {
|
|
262
|
-
boundary: 'viewport',
|
|
263
|
-
padding: 0,
|
|
264
|
-
tether: false,
|
|
265
|
-
},
|
|
266
|
-
},
|
|
267
|
-
],
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
this.isDropdownVisible = true;
|
|
271
|
-
}
|
|
272
|
-
hide() {
|
|
273
|
-
if (this.dropdownMenuContentElement) {
|
|
274
|
-
this.viewContainerRef.clear();
|
|
275
|
-
this.dropdownMenuContentElement = null;
|
|
276
|
-
this.popperInstance?.destroy();
|
|
277
|
-
}
|
|
278
|
-
this.isDropdownVisible = false;
|
|
279
|
-
}
|
|
280
|
-
addDropdownLinksListener() {
|
|
281
|
-
const links = this.dropdownMenuContentElement?.querySelectorAll('.dropdown-item');
|
|
282
|
-
links?.forEach(link => {
|
|
283
|
-
this.renderer.listen(link, 'click', () => {
|
|
284
|
-
this.hide();
|
|
285
|
-
});
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
289
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.2", type: NgxDropdownDirective, isStandalone: true, selector: "[ngxDropdown]", inputs: { ngxDropdown: { classPropertyName: "ngxDropdown", publicName: "ngxDropdown", isSignal: true, isRequired: true, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "toggleDropdown()", "document:click": "onDocumentClick($event)" } }, exportAs: ["ngxDropdown"], ngImport: i0 }); }
|
|
290
|
-
}
|
|
291
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxDropdownDirective, decorators: [{
|
|
292
|
-
type: Directive,
|
|
293
|
-
args: [{ selector: '[ngxDropdown]', exportAs: 'ngxDropdown' }]
|
|
294
|
-
}], propDecorators: { toggleDropdown: [{
|
|
295
|
-
type: HostListener,
|
|
296
|
-
args: ['click']
|
|
297
|
-
}], onDocumentClick: [{
|
|
298
|
-
type: HostListener,
|
|
299
|
-
args: ['document:click', ['$event']]
|
|
300
|
-
}] } });
|
|
301
|
-
|
|
302
|
-
class NgxFormGroup extends UntypedFormGroup {
|
|
303
|
-
}
|
|
304
|
-
class NgxFormControl extends UntypedFormControl {
|
|
305
|
-
constructor(formState, validatorOrOpts, asyncValidator, config) {
|
|
306
|
-
super(formState, validatorOrOpts, asyncValidator);
|
|
307
|
-
this.config = config;
|
|
308
|
-
}
|
|
309
|
-
updateSelecOptions(options) {
|
|
310
|
-
if (this.config?.selectConfig?.options) {
|
|
311
|
-
this.config.selectConfig.options = [...options];
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
class NgxFormGroupDirective {
|
|
317
|
-
constructor() {
|
|
318
|
-
this.formGroup = input.required(...(ngDevMode ? [{ debugName: "formGroup" }] : []));
|
|
319
|
-
this.validateOnChange = input(true, ...(ngDevMode ? [{ debugName: "validateOnChange" }] : []));
|
|
320
|
-
}
|
|
321
|
-
validateForm() {
|
|
322
|
-
Object.keys(this.formGroup().controls).forEach(key => {
|
|
323
|
-
const control = this.formGroup().get(key);
|
|
324
|
-
if (control instanceof NgxFormControl || control instanceof FormControl) {
|
|
325
|
-
this.formGroup().get(key)?.markAsTouched({ onlySelf: true });
|
|
326
|
-
this.formGroup().get(key)?.markAsDirty({ onlySelf: true });
|
|
327
|
-
this.formGroup().get(key)?.updateValueAndValidity({ onlySelf: true });
|
|
328
|
-
}
|
|
329
|
-
else if (control instanceof NgxFormGroup || control instanceof FormGroup) {
|
|
330
|
-
Object.keys(control.controls).forEach(subKey => {
|
|
331
|
-
control.get(subKey)?.markAsTouched({ onlySelf: true });
|
|
332
|
-
control.get(subKey)?.markAsDirty({ onlySelf: true });
|
|
333
|
-
control.get(subKey)?.updateValueAndValidity({ onlySelf: true });
|
|
334
|
-
});
|
|
335
|
-
}
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
resetForm() {
|
|
339
|
-
this.formGroup().setErrors({});
|
|
340
|
-
this.formGroup().reset();
|
|
341
|
-
Object.keys(this.formGroup().controls).forEach(key => {
|
|
342
|
-
this.formGroup().get(key)?.markAsUntouched({ onlySelf: true });
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
346
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.2", type: NgxFormGroupDirective, isStandalone: true, selector: "[ngxFormGroup]", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, validateOnChange: { classPropertyName: "validateOnChange", publicName: "validateOnChange", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ngxFormGroup"], ngImport: i0 }); }
|
|
347
|
-
}
|
|
348
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormGroupDirective, decorators: [{
|
|
349
|
-
type: Directive,
|
|
350
|
-
args: [{
|
|
351
|
-
selector: '[ngxFormGroup]',
|
|
352
|
-
exportAs: 'ngxFormGroup',
|
|
353
|
-
}]
|
|
354
|
-
}] });
|
|
355
|
-
|
|
356
|
-
class NgxFormInputDirective {
|
|
357
|
-
constructor() {
|
|
358
|
-
this.elementRef = inject((ElementRef));
|
|
359
|
-
this.renderer2 = inject(Renderer2);
|
|
360
|
-
this.ngxFormInput = input.required(...(ngDevMode ? [{ debugName: "ngxFormInput" }] : []));
|
|
361
|
-
this.formControl = input(...(ngDevMode ? [undefined, { debugName: "formControl" }] : []));
|
|
362
|
-
this.id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : []));
|
|
363
|
-
this.name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
|
|
364
|
-
this.type = input(...(ngDevMode ? [undefined, { debugName: "type" }] : []));
|
|
365
|
-
this.placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : []));
|
|
366
|
-
this.isFloatingLabel = input(true, ...(ngDevMode ? [{ debugName: "isFloatingLabel" }] : []));
|
|
367
|
-
effect(() => {
|
|
368
|
-
const fc = this.formControl();
|
|
369
|
-
if (fc && this.type() === 'checkbox') {
|
|
370
|
-
const native = this.elementRef.nativeElement;
|
|
371
|
-
native.checked = fc.value === true;
|
|
372
|
-
}
|
|
373
|
-
this.checkIsValid();
|
|
374
|
-
});
|
|
375
|
-
}
|
|
376
|
-
ngOnInit() {
|
|
377
|
-
if (this.type() === 'select') {
|
|
378
|
-
this.elementRef.nativeElement.classList.add('form-select');
|
|
379
|
-
}
|
|
380
|
-
else if (this.type() === 'checkbox') {
|
|
381
|
-
this.elementRef.nativeElement.classList.add('form-check-input');
|
|
382
|
-
}
|
|
383
|
-
else {
|
|
384
|
-
this.elementRef.nativeElement.classList.add('form-control');
|
|
311
|
+
this.elementRef.nativeElement.classList.add('form-control');
|
|
385
312
|
}
|
|
386
313
|
if (this.type()) {
|
|
387
314
|
this.elementRef.nativeElement.setAttribute('type', this.type());
|
|
@@ -413,10 +340,10 @@ class NgxFormInputDirective {
|
|
|
413
340
|
this.elementRef.nativeElement.classList.remove('is-invalid');
|
|
414
341
|
}
|
|
415
342
|
}
|
|
416
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
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,215 +698,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImpor
|
|
|
784
698
|
args: ['document:click', ['$event']]
|
|
785
699
|
}] } });
|
|
786
700
|
|
|
787
|
-
class CalendarComponent {
|
|
788
|
-
constructor() {
|
|
789
|
-
this.onDaySelected = output();
|
|
790
|
-
this.currentMonth = dayjs();
|
|
791
|
-
this.weeks = [];
|
|
792
|
-
this.selectedDay = null;
|
|
793
|
-
this.hoveredDay = null;
|
|
794
|
-
}
|
|
795
|
-
ngOnInit() {
|
|
796
|
-
this.generateCalendar();
|
|
797
|
-
}
|
|
798
|
-
onSelectDay(day) {
|
|
799
|
-
this.selectedDay = day;
|
|
800
|
-
this.onDaySelected.emit(this.selectedDay);
|
|
801
|
-
}
|
|
802
|
-
generateCalendar() {
|
|
803
|
-
const startOfMonth = this.currentMonth.startOf('month');
|
|
804
|
-
const endOfMonth = this.currentMonth.endOf('month');
|
|
805
|
-
const startDate = startOfMonth.startOf('week');
|
|
806
|
-
const endDate = endOfMonth.endOf('week');
|
|
807
|
-
let date = startDate.clone();
|
|
808
|
-
const calendar = [];
|
|
809
|
-
while (date.isBefore(endDate, 'day')) {
|
|
810
|
-
const week = [];
|
|
811
|
-
for (let i = 0; i < 7; i++) {
|
|
812
|
-
week.push(date.clone());
|
|
813
|
-
date = date.add(1, 'day');
|
|
814
|
-
}
|
|
815
|
-
calendar.push(week);
|
|
816
|
-
}
|
|
817
|
-
this.weeks = calendar;
|
|
818
|
-
}
|
|
819
|
-
previousMonth() {
|
|
820
|
-
this.currentMonth = this.currentMonth.subtract(1, 'month');
|
|
821
|
-
this.generateCalendar();
|
|
822
|
-
}
|
|
823
|
-
nextMonth() {
|
|
824
|
-
this.currentMonth = this.currentMonth.add(1, 'month');
|
|
825
|
-
this.generateCalendar();
|
|
826
|
-
}
|
|
827
|
-
isToday(date) {
|
|
828
|
-
return date.isSame(dayjs(), 'day');
|
|
829
|
-
}
|
|
830
|
-
isCurrentMonth(date) {
|
|
831
|
-
return date.isSame(this.currentMonth, 'month');
|
|
832
|
-
}
|
|
833
|
-
isSelected(day) {
|
|
834
|
-
return this.selectedDay?.isSame(day, 'day') || false;
|
|
835
|
-
}
|
|
836
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
837
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: CalendarComponent, isStandalone: true, selector: "ngx-calendar", outputs: { onDaySelected: "onDaySelected" }, ngImport: i0, template: "<div class=\"container my-3\">\n\t<div class=\"d-flex justify-content-between align-items-center mb-3\">\n\t\t<button ngxButton variant=\"outline\" (click)=\"previousMonth()\">\u00AB</button>\n\t\t<h4 class=\"m-0\">\n\t\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t\t</h4>\n\t\t<button ngxButton variant=\"outline\" (click)=\"nextMonth()\">\u00BB</button>\n\t</div>\n\n\t<div class=\"table-responsive\">\n\t\t<table class=\"table table-bordered text-center\">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']; track day) {\n\t\t\t\t\t\t<th>{{ day }}</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t\t[class.bg-light]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t\t[class.bg-dark-subtle]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t\t[class.text-white]=\"isToday(day) && !(isSelected(day) || day === hoveredDay)\"\n\t\t\t\t\t\t\t\t[class.bg-primary]=\"isToday(day)\"\n\t\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tr>\n\t\t\t\t}\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</div>\n", styles: [".day:hover{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: NgxButtonDirective, selector: "button[ngxButton]", inputs: ["type", "ngxButton", "variant", "size"] }] }); }
|
|
838
|
-
}
|
|
839
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: CalendarComponent, decorators: [{
|
|
840
|
-
type: Component,
|
|
841
|
-
args: [{ selector: 'ngx-calendar', imports: [CommonModule, NgxButtonDirective], template: "<div class=\"container my-3\">\n\t<div class=\"d-flex justify-content-between align-items-center mb-3\">\n\t\t<button ngxButton variant=\"outline\" (click)=\"previousMonth()\">\u00AB</button>\n\t\t<h4 class=\"m-0\">\n\t\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t\t</h4>\n\t\t<button ngxButton variant=\"outline\" (click)=\"nextMonth()\">\u00BB</button>\n\t</div>\n\n\t<div class=\"table-responsive\">\n\t\t<table class=\"table table-bordered text-center\">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']; track day) {\n\t\t\t\t\t\t<th>{{ day }}</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t\t[class.bg-light]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t\t[class.bg-dark-subtle]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t\t[class.text-white]=\"isToday(day) && !(isSelected(day) || day === hoveredDay)\"\n\t\t\t\t\t\t\t\t[class.bg-primary]=\"isToday(day)\"\n\t\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tr>\n\t\t\t\t}\n\t\t\t</tbody>\n\t\t</table>\n\t</div>\n</div>\n", styles: [".day:hover{cursor:pointer}\n"] }]
|
|
842
|
-
}] });
|
|
843
|
-
|
|
844
|
-
class NgxFormErrorsComponent {
|
|
845
|
-
constructor() {
|
|
846
|
-
this.isDirty = input(false, ...(ngDevMode ? [{ debugName: "isDirty" }] : []));
|
|
847
|
-
this.errors = input(null, ...(ngDevMode ? [{ debugName: "errors" }] : []));
|
|
848
|
-
this.errorMessages = computed(() => {
|
|
849
|
-
const result = [];
|
|
850
|
-
if (this.isDirty() && this.errors()) {
|
|
851
|
-
for (const key in this.errors()) {
|
|
852
|
-
if (this.errorMessageDictionary[key]) {
|
|
853
|
-
result.push(this.errorMessageDictionary[key](this.errors()));
|
|
854
|
-
}
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
return result;
|
|
858
|
-
}, ...(ngDevMode ? [{ debugName: "errorMessages" }] : []));
|
|
859
|
-
this.errorMessageDictionary = {
|
|
860
|
-
required: () => 'Field is required',
|
|
861
|
-
requiredTrue: () => 'Field is required',
|
|
862
|
-
email: () => 'Invalid E-Mail',
|
|
863
|
-
min: (errors) => `At least ${errors['min']?.requiredLength} characters are required`,
|
|
864
|
-
minlength: (errors) => `At least ${errors['minlength']?.requiredLength} characters are required`,
|
|
865
|
-
max: (errors) => `Maximum of ${errors['max']?.requiredLength} characters exceeded`,
|
|
866
|
-
maxlength: (errors) => `Maximum of ${errors['maxlength']?.requiredLength} characters exceeded`,
|
|
867
|
-
pattern: () => `Input does not match pattern`,
|
|
868
|
-
dateAfterInvalid: (errors) => `Date must be after ${errors?.['startDateValue']}`,
|
|
869
|
-
match: () => `Input does not match!`,
|
|
870
|
-
timeAfterError: (errors) => `The time must be after ${errors?.['timeAfterError']}`,
|
|
871
|
-
};
|
|
872
|
-
}
|
|
873
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
874
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: NgxFormErrorsComponent, isStandalone: true, selector: "ngx-form-errors", inputs: { isDirty: { classPropertyName: "isDirty", publicName: "isDirty", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
875
|
-
@if (errorMessages()) {
|
|
876
|
-
<div class="invalid-feedback d-block">
|
|
877
|
-
@for (errorMessage of errorMessages(); track $index) {
|
|
878
|
-
<div>{{ errorMessage }}</div>
|
|
879
|
-
}
|
|
880
|
-
</div>
|
|
881
|
-
}
|
|
882
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
883
|
-
}
|
|
884
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormErrorsComponent, decorators: [{
|
|
885
|
-
type: Component,
|
|
886
|
-
args: [{
|
|
887
|
-
selector: 'ngx-form-errors',
|
|
888
|
-
template: `
|
|
889
|
-
@if (errorMessages()) {
|
|
890
|
-
<div class="invalid-feedback d-block">
|
|
891
|
-
@for (errorMessage of errorMessages(); track $index) {
|
|
892
|
-
<div>{{ errorMessage }}</div>
|
|
893
|
-
}
|
|
894
|
-
</div>
|
|
895
|
-
}
|
|
896
|
-
`,
|
|
897
|
-
imports: [CommonModule],
|
|
898
|
-
}]
|
|
899
|
-
}] });
|
|
900
|
-
|
|
901
|
-
class NgxFormControlPipe {
|
|
902
|
-
transform(value) {
|
|
903
|
-
return value;
|
|
904
|
-
}
|
|
905
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormControlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
906
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.2", ngImport: i0, type: NgxFormControlPipe, isStandalone: true, name: "ngxAsFormControl" }); }
|
|
907
|
-
}
|
|
908
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormControlPipe, decorators: [{
|
|
909
|
-
type: Pipe,
|
|
910
|
-
args: [{ name: 'ngxAsFormControl' }]
|
|
911
|
-
}] });
|
|
912
|
-
|
|
913
|
-
class AppIsFormControlPipe {
|
|
914
|
-
transform(value) {
|
|
915
|
-
return value;
|
|
916
|
-
}
|
|
917
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: AppIsFormControlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
918
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.2", ngImport: i0, type: AppIsFormControlPipe, isStandalone: true, name: "appIsFormControl" }); }
|
|
919
|
-
}
|
|
920
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: AppIsFormControlPipe, decorators: [{
|
|
921
|
-
type: Pipe,
|
|
922
|
-
args: [{ name: 'appIsFormControl' }]
|
|
923
|
-
}] });
|
|
924
|
-
|
|
925
|
-
class NgxIsFormGroupPipe {
|
|
926
|
-
transform(value) {
|
|
927
|
-
return value;
|
|
928
|
-
}
|
|
929
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxIsFormGroupPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
930
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.2", ngImport: i0, type: NgxIsFormGroupPipe, isStandalone: true, name: "ngxIsFormGroup" }); }
|
|
931
|
-
}
|
|
932
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxIsFormGroupPipe, decorators: [{
|
|
933
|
-
type: Pipe,
|
|
934
|
-
args: [{ name: 'ngxIsFormGroup' }]
|
|
935
|
-
}] });
|
|
936
|
-
|
|
937
|
-
class NgxFormComponent {
|
|
938
|
-
constructor() {
|
|
939
|
-
this.formGroup = input.required(...(ngDevMode ? [{ debugName: "formGroup" }] : []));
|
|
940
|
-
this.formGroupDirective = viewChild(NgxFormGroupDirective, ...(ngDevMode ? [{ debugName: "formGroupDirective" }] : []));
|
|
941
|
-
this.onValidated = output();
|
|
942
|
-
this.keepOriginalOrder = () => 0;
|
|
943
|
-
}
|
|
944
|
-
isFormControl(control) {
|
|
945
|
-
return control instanceof NgxFormControl;
|
|
946
|
-
}
|
|
947
|
-
validate() {
|
|
948
|
-
this.formGroupDirective()?.validateForm();
|
|
949
|
-
this.onValidated.emit();
|
|
950
|
-
}
|
|
951
|
-
reset() {
|
|
952
|
-
this.formGroupDirective()?.resetForm();
|
|
953
|
-
}
|
|
954
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
955
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: NgxFormComponent, isStandalone: true, selector: "ngx-form", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onValidated: "onValidated" }, viewQueries: [{ propertyName: "formGroupDirective", first: true, predicate: NgxFormGroupDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<form ngxFormGroup #formGroupDirective=\"ngxFormGroup\" [formGroup]=\"formGroup()\">\n\t@for (control of formGroup().controls | keyvalue: keepOriginalOrder; track $index) {\n\t\t@if (isFormControl(control.value)) {\n\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: control }\" />\n\t\t} @else {\n\t\t\t<div ngxFormGroup [formGroup]=\"control.value | ngxIsFormGroup\" class=\"row\">\n\t\t\t\t@for (\n\t\t\t\t\tsubControl of (control.value | ngxIsFormGroup).controls | keyvalue: keepOriginalOrder;\n\t\t\t\t\ttrack $index\n\t\t\t\t) {\n\t\t\t\t\t<div class=\"col\">\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: subControl }\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</form>\n\n<ng-template #formField let-control=\"control\">\n\t@if (control.value | appIsFormControl; as typedControl) {\n\t\t<div class=\"mb-3\">\n\t\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ typedControl.customConfig?.label }}\n\t\t</label> -->\n\n\t\t\t@switch (typedControl.config?.type) {\n\t\t\t\t@case ('textarea') {\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[rows]=\"typedControl.config?.textareaConfig?.rows || 4\">\n\t\t\t\t\t</textarea>\n\t\t\t\t}\n\n\t\t\t\t@case ('select') {\n\t\t\t\t\t<select\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t\t@for (option of typedControl.config?.selectConfig?.options; track option.value) {\n\t\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t}\n\t\t\t\t\t</select>\n\t\t\t\t}\n\n\t\t\t\t@case ('checkbox') {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\n\t\t\t\t@default {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\t[type]=\"typedControl.config?.type || 'text'\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[autocomplete]=\"typedControl.config?.type === 'password' ? 'new-password' : undefined\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t\t{{ typedControl.config?.label }}\n\t\t\t</label>\n\n\t\t\t@if (typedControl.config?.hint) {\n\t\t\t\t<small class=\"text-muted\">\n\t\t\t\t\t{{ typedControl.config?.hint }}\n\t\t\t\t</small>\n\t\t\t}\n\n\t\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t\t</div>\n\t}\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgxFormGroupDirective, selector: "[ngxFormGroup]", inputs: ["formGroup", "validateOnChange"], exportAs: ["ngxFormGroup"] }, { kind: "directive", type: NgxFormLabelDirective, selector: "label[ngxFormLabel]" }, { kind: "component", type: NgxFormErrorsComponent, selector: "ngx-form-errors", inputs: ["isDirty", "errors"] }, { kind: "directive", type: NgxFormInputDirective, selector: "[ngxFormInput]", inputs: ["ngxFormInput", "formControl", "id", "name", "type", "placeholder", "isFloatingLabel"] }, { kind: "directive", type: NgxAutofocusDirective, selector: "[ngxAutofocus]", inputs: ["ngxAutofocus"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: AppIsFormControlPipe, name: "appIsFormControl" }, { kind: "pipe", type: NgxIsFormGroupPipe, name: "ngxIsFormGroup" }] }); }
|
|
956
|
-
}
|
|
957
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxFormComponent, decorators: [{
|
|
958
|
-
type: Component,
|
|
959
|
-
args: [{ selector: 'ngx-form', imports: [
|
|
960
|
-
CommonModule,
|
|
961
|
-
ReactiveFormsModule,
|
|
962
|
-
NgxFormGroupDirective,
|
|
963
|
-
NgxFormLabelDirective,
|
|
964
|
-
NgxFormErrorsComponent,
|
|
965
|
-
NgxFormInputDirective,
|
|
966
|
-
AppIsFormControlPipe,
|
|
967
|
-
NgxIsFormGroupPipe,
|
|
968
|
-
NgxAutofocusDirective,
|
|
969
|
-
], template: "<form ngxFormGroup #formGroupDirective=\"ngxFormGroup\" [formGroup]=\"formGroup()\">\n\t@for (control of formGroup().controls | keyvalue: keepOriginalOrder; track $index) {\n\t\t@if (isFormControl(control.value)) {\n\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: control }\" />\n\t\t} @else {\n\t\t\t<div ngxFormGroup [formGroup]=\"control.value | ngxIsFormGroup\" class=\"row\">\n\t\t\t\t@for (\n\t\t\t\t\tsubControl of (control.value | ngxIsFormGroup).controls | keyvalue: keepOriginalOrder;\n\t\t\t\t\ttrack $index\n\t\t\t\t) {\n\t\t\t\t\t<div class=\"col\">\n\t\t\t\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: subControl }\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</form>\n\n<ng-template #formField let-control=\"control\">\n\t@if (control.value | appIsFormControl; as typedControl) {\n\t\t<div class=\"mb-3\">\n\t\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ typedControl.customConfig?.label }}\n\t\t</label> -->\n\n\t\t\t@switch (typedControl.config?.type) {\n\t\t\t\t@case ('textarea') {\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[rows]=\"typedControl.config?.textareaConfig?.rows || 4\">\n\t\t\t\t\t</textarea>\n\t\t\t\t}\n\n\t\t\t\t@case ('select') {\n\t\t\t\t\t<select\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t\t@for (option of typedControl.config?.selectConfig?.options; track option.value) {\n\t\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t}\n\t\t\t\t\t</select>\n\t\t\t\t}\n\n\t\t\t\t@case ('checkbox') {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\n\t\t\t\t@default {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\t[type]=\"typedControl.config?.type || 'text'\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[autocomplete]=\"typedControl.config?.type === 'password' ? 'new-password' : undefined\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t\t{{ typedControl.config?.label }}\n\t\t\t</label>\n\n\t\t\t@if (typedControl.config?.hint) {\n\t\t\t\t<small class=\"text-muted\">\n\t\t\t\t\t{{ typedControl.config?.hint }}\n\t\t\t\t</small>\n\t\t\t}\n\n\t\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t\t</div>\n\t}\n</ng-template>\n", styles: [":host{display:block}\n"] }]
|
|
970
|
-
}] });
|
|
971
|
-
|
|
972
|
-
class NgxLoadingIndicatorComponent {
|
|
973
|
-
constructor() {
|
|
974
|
-
this.faSpinner = faSpinner;
|
|
975
|
-
}
|
|
976
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxLoadingIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
977
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", type: NgxLoadingIndicatorComponent, isStandalone: true, selector: "ngx-loading-indicator", ngImport: i0, template: "<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\" />\n", styles: [":host{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#495057}\n"], dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }] }); }
|
|
978
|
-
}
|
|
979
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: NgxLoadingIndicatorComponent, decorators: [{
|
|
980
|
-
type: Component,
|
|
981
|
-
args: [{ selector: 'ngx-loading-indicator', imports: [FontAwesomeModule], template: "<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\" />\n", styles: [":host{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#495057}\n"] }]
|
|
982
|
-
}] });
|
|
983
|
-
|
|
984
|
-
class BaseModalComponent {
|
|
985
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: BaseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
986
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.2", type: BaseModalComponent, isStandalone: true, selector: "ngx-base-modal", ngImport: i0, template: ``, isInline: true }); }
|
|
987
|
-
}
|
|
988
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: BaseModalComponent, decorators: [{
|
|
989
|
-
type: Component,
|
|
990
|
-
args: [{
|
|
991
|
-
selector: 'ngx-base-modal',
|
|
992
|
-
template: ``,
|
|
993
|
-
}]
|
|
994
|
-
}] });
|
|
995
|
-
|
|
996
701
|
class NgxModalComponent {
|
|
997
702
|
constructor() {
|
|
998
703
|
this.title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
@@ -1027,10 +732,10 @@ class NgxModalComponent {
|
|
|
1027
732
|
handleClickClose() {
|
|
1028
733
|
this.onClose.emit();
|
|
1029
734
|
}
|
|
1030
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1031
|
-
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"] }] }); }
|
|
1032
737
|
}
|
|
1033
|
-
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: [{
|
|
1034
739
|
type: Component,
|
|
1035
740
|
args: [{ selector: 'ngx-modal', imports: [CommonModule, NgxIconButtonDirective, FontAwesomeModule, NgxAutofocusDirective, NgxTooltipDirective], template: "<div class=\"modal d-flex justify-content-center align-items-center\" [ngxAutofocus]=\"true\" tabindex=\"0\">\n\t<div class=\"modal-dialog w-100\" [ngClass]=\"dialogCssClasses()\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title() }}</h5>\n\n\t\t\t\t@if (showClose()) {\n\t\t\t\t\t<button\n\t\t\t\t\t\tngxIconButton=\"secondary\"\n\t\t\t\t\t\tngxTooltip=\"close\"\n\t\t\t\t\t\t[ngxTooltipZIndex]=\"1055\"\n\t\t\t\t\t\tclass=\"ms-2\"\n\t\t\t\t\t\t(click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\" />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n" }]
|
|
1036
741
|
}], propDecorators: { handleKeyboardEvent: [{
|
|
@@ -1047,10 +752,10 @@ class NgxOffCanvasComponent {
|
|
|
1047
752
|
handleClickClose() {
|
|
1048
753
|
this.onClose.emit();
|
|
1049
754
|
}
|
|
1050
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1051
|
-
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"] }] }); }
|
|
1052
757
|
}
|
|
1053
|
-
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: [{
|
|
1054
759
|
type: Component,
|
|
1055
760
|
args: [{ selector: 'ngx-off-canvas', imports: [FontAwesomeModule, NgxIconButtonDirective], template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title() }}</h5>\n\t\t<button ngxIconButton=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n", styles: [":host{z-index:9999;display:block}\n"] }]
|
|
1056
761
|
}] });
|
|
@@ -1059,10 +764,10 @@ class NgxTabContentComponent {
|
|
|
1059
764
|
constructor() {
|
|
1060
765
|
this.isActive = model(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
|
|
1061
766
|
}
|
|
1062
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1063
|
-
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"] }] }); }
|
|
1064
769
|
}
|
|
1065
|
-
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: [{
|
|
1066
771
|
type: Component,
|
|
1067
772
|
args: [{ selector: 'ngx-tab-content', imports: [CommonModule], template: "<div class=\"tab-content\" [ngClass]=\"{ active: isActive() }\">\n\t<ng-content />\n</div>\n", styles: [".tab-content{display:none;padding:20px}.tab-content.active{display:block}\n"] }]
|
|
1068
773
|
}] });
|
|
@@ -1076,10 +781,10 @@ class NgxTabComponent {
|
|
|
1076
781
|
onClick() {
|
|
1077
782
|
this.onSelected.emit();
|
|
1078
783
|
}
|
|
1079
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1080
|
-
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"] }] }); }
|
|
1081
786
|
}
|
|
1082
|
-
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: [{
|
|
1083
788
|
type: Component,
|
|
1084
789
|
args: [{ selector: 'ngx-tab', imports: [CommonModule], template: "<div class=\"tab\" [ngClass]=\"{ active: isActive() }\" tabindex=\"0\">\n\t<ng-content />\n</div>\n", styles: [":host{display:flex}.tab{color:var(--font-color);padding:16px 20px;border-bottom:3px solid var(--gray-80);flex-shrink:0}.tab.active{color:var(--primary);background:var(--body-bg-color);border-bottom:3px solid var(--primary)}.tab:focus{outline:0;z-index:1}.tab:hover{cursor:pointer;background-color:var(--tab-highlight)}\n"] }]
|
|
1085
790
|
}], propDecorators: { onClick: [{
|
|
@@ -1108,10 +813,10 @@ class NgxTabsComponent {
|
|
|
1108
813
|
this.tabQueryList().forEach(tab => tab.isActive.update(() => tab === tabComponent));
|
|
1109
814
|
this.tabContentQueryList().forEach(tabContent => tabContent.isActive.update(() => tabContent === tabComponent.target()));
|
|
1110
815
|
}
|
|
1111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1112
|
-
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"] }); }
|
|
1113
818
|
}
|
|
1114
|
-
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: [{
|
|
1115
820
|
type: Component,
|
|
1116
821
|
args: [{ selector: 'ngx-tabs', template: "<div class=\"tabs\">\n\t<ng-content select=\"ngx-tab\" />\n</div>\n<div class=\"tab-contents\">\n\t<ng-content select=\"ngx-tab-content\" />\n</div>\n", styles: [".tabs{display:flex;cursor:pointer;-webkit-tap-highlight-color:transparent;overflow-x:auto}\n"] }]
|
|
1117
822
|
}] });
|
|
@@ -1120,8 +825,8 @@ class NgxToastComponent {
|
|
|
1120
825
|
constructor() {
|
|
1121
826
|
this.onClose = output();
|
|
1122
827
|
}
|
|
1123
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1124
|
-
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: `
|
|
1125
830
|
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
1126
831
|
<div class="d-flex">
|
|
1127
832
|
<div class="toast-body" [innerHTML]="message"></div>
|
|
@@ -1130,7 +835,7 @@ class NgxToastComponent {
|
|
|
1130
835
|
</div>
|
|
1131
836
|
`, isInline: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }); }
|
|
1132
837
|
}
|
|
1133
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
|
838
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxToastComponent, decorators: [{
|
|
1134
839
|
type: Component,
|
|
1135
840
|
args: [{ selector: 'ngx-toast', template: `
|
|
1136
841
|
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
@@ -1176,6 +881,301 @@ function NgxLog(methodName, logType = LogType.log, logArgs = false) {
|
|
|
1176
881
|
};
|
|
1177
882
|
}
|
|
1178
883
|
|
|
884
|
+
class NgxCardBodyDirective {
|
|
885
|
+
constructor() {
|
|
886
|
+
this.elementRef = inject((ElementRef));
|
|
887
|
+
}
|
|
888
|
+
ngOnInit() {
|
|
889
|
+
this.elementRef.nativeElement.classList.add('card-body');
|
|
890
|
+
}
|
|
891
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardBodyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
892
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxCardBodyDirective, isStandalone: true, selector: "[ngxCardBody]", ngImport: i0 }); }
|
|
893
|
+
}
|
|
894
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardBodyDirective, decorators: [{
|
|
895
|
+
type: Directive,
|
|
896
|
+
args: [{ selector: '[ngxCardBody]' }]
|
|
897
|
+
}] });
|
|
898
|
+
|
|
899
|
+
class NgxCardHeaderDirective {
|
|
900
|
+
constructor() {
|
|
901
|
+
this.elementRef = inject((ElementRef));
|
|
902
|
+
}
|
|
903
|
+
ngOnInit() {
|
|
904
|
+
this.elementRef.nativeElement.classList.add('card-header');
|
|
905
|
+
}
|
|
906
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
907
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxCardHeaderDirective, isStandalone: true, selector: "[ngxCardHeader]", ngImport: i0 }); }
|
|
908
|
+
}
|
|
909
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardHeaderDirective, decorators: [{
|
|
910
|
+
type: Directive,
|
|
911
|
+
args: [{ selector: '[ngxCardHeader]' }]
|
|
912
|
+
}] });
|
|
913
|
+
|
|
914
|
+
class NgxCardDirective {
|
|
915
|
+
constructor() {
|
|
916
|
+
this.elementRef = inject((ElementRef));
|
|
917
|
+
}
|
|
918
|
+
ngOnInit() {
|
|
919
|
+
this.elementRef.nativeElement.classList.add('card');
|
|
920
|
+
}
|
|
921
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
922
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxCardDirective, isStandalone: true, selector: "[ngxCard]", ngImport: i0 }); }
|
|
923
|
+
}
|
|
924
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxCardDirective, decorators: [{
|
|
925
|
+
type: Directive,
|
|
926
|
+
args: [{ selector: '[ngxCard]' }]
|
|
927
|
+
}] });
|
|
928
|
+
|
|
929
|
+
class NgxColDirective {
|
|
930
|
+
constructor() {
|
|
931
|
+
this.el = inject(ElementRef);
|
|
932
|
+
this.span = 'col';
|
|
933
|
+
}
|
|
934
|
+
set col(val) {
|
|
935
|
+
if (val) {
|
|
936
|
+
this.span = val;
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
ngAfterViewInit() {
|
|
940
|
+
this.el.nativeElement.classList.add(this.span);
|
|
941
|
+
}
|
|
942
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxColDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
943
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxColDirective, isStandalone: true, selector: "[ngxCol]", inputs: { col: "col" }, ngImport: i0 }); }
|
|
944
|
+
}
|
|
945
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxColDirective, decorators: [{
|
|
946
|
+
type: Directive,
|
|
947
|
+
args: [{ selector: '[ngxCol]' }]
|
|
948
|
+
}], propDecorators: { col: [{
|
|
949
|
+
type: Input
|
|
950
|
+
}] } });
|
|
951
|
+
|
|
952
|
+
class NgxDropdownDirective {
|
|
953
|
+
constructor() {
|
|
954
|
+
this.elementRef = inject(ElementRef);
|
|
955
|
+
this.renderer = inject(Renderer2);
|
|
956
|
+
this.viewContainerRef = inject(ViewContainerRef);
|
|
957
|
+
this.ngxDropdown = input.required(...(ngDevMode ? [{ debugName: "ngxDropdown" }] : []));
|
|
958
|
+
this.placement = input('bottom-start', ...(ngDevMode ? [{ debugName: "placement" }] : []));
|
|
959
|
+
// adaptivePosition: InputSignal<boolean> = input(true);
|
|
960
|
+
// fallbackPlacements: InputSignal<Placement[]> = input<Placement[]>(['top-end', 'bottom-end', 'right', 'left']);
|
|
961
|
+
this.dropdownElement = null;
|
|
962
|
+
this.dropdownMenuContentElement = null;
|
|
963
|
+
this.isDropdownVisible = false;
|
|
964
|
+
}
|
|
965
|
+
ngOnInit() {
|
|
966
|
+
if (!this.dropdownElement) {
|
|
967
|
+
this.dropdownElement = this.renderer.createElement('div');
|
|
968
|
+
this.renderer.addClass(this.dropdownElement, 'dropdown');
|
|
969
|
+
const parent = this.elementRef.nativeElement.parentNode;
|
|
970
|
+
this.renderer.insertBefore(parent, this.dropdownElement, this.elementRef.nativeElement);
|
|
971
|
+
this.renderer.appendChild(this.dropdownElement, this.elementRef.nativeElement);
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
toggleDropdown() {
|
|
975
|
+
if (this.isDropdownVisible) {
|
|
976
|
+
this.hide();
|
|
977
|
+
}
|
|
978
|
+
else {
|
|
979
|
+
this.show();
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
onDocumentClick(event) {
|
|
983
|
+
if (this.isDropdownVisible &&
|
|
984
|
+
this.dropdownElement &&
|
|
985
|
+
!this.dropdownElement.contains(event.target) &&
|
|
986
|
+
!this.elementRef.nativeElement.contains(event.target)) {
|
|
987
|
+
this.hide();
|
|
988
|
+
}
|
|
989
|
+
}
|
|
990
|
+
show() {
|
|
991
|
+
if (!this.dropdownMenuContentElement && this.dropdownElement) {
|
|
992
|
+
const embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.ngxDropdown());
|
|
993
|
+
embeddedViewRef.detectChanges();
|
|
994
|
+
this.dropdownMenuContentElement = embeddedViewRef.rootNodes[0];
|
|
995
|
+
this.renderer.appendChild(this.dropdownElement, this.dropdownMenuContentElement);
|
|
996
|
+
this.addDropdownLinksListener();
|
|
997
|
+
this.popperInstance = createPopper(this.dropdownElement, this.dropdownMenuContentElement, {
|
|
998
|
+
placement: this.placement(),
|
|
999
|
+
modifiers: [
|
|
1000
|
+
{
|
|
1001
|
+
name: 'offset',
|
|
1002
|
+
options: {
|
|
1003
|
+
offset: ({ placement }) => {
|
|
1004
|
+
if (placement.startsWith('bottom')) {
|
|
1005
|
+
return [1, -(this.dropdownElement?.offsetHeight + 1)];
|
|
1006
|
+
}
|
|
1007
|
+
if (placement.startsWith('top')) {
|
|
1008
|
+
return [1, -(this.dropdownElement?.offsetHeight + 1)];
|
|
1009
|
+
}
|
|
1010
|
+
if (placement.startsWith('left')) {
|
|
1011
|
+
return [
|
|
1012
|
+
this.dropdownElement?.offsetHeight,
|
|
1013
|
+
-this.dropdownElement?.offsetWidth,
|
|
1014
|
+
];
|
|
1015
|
+
}
|
|
1016
|
+
return [1, 1];
|
|
1017
|
+
},
|
|
1018
|
+
},
|
|
1019
|
+
},
|
|
1020
|
+
// {
|
|
1021
|
+
// name: 'flip',
|
|
1022
|
+
// options: {
|
|
1023
|
+
// fallbackPlacements: this.adaptivePosition() ? this.fallbackPlacements() : [],
|
|
1024
|
+
// boundary: 'viewport',
|
|
1025
|
+
// padding: 0,
|
|
1026
|
+
// },
|
|
1027
|
+
// },
|
|
1028
|
+
{
|
|
1029
|
+
name: 'preventOverflow',
|
|
1030
|
+
options: {
|
|
1031
|
+
boundary: 'viewport',
|
|
1032
|
+
padding: 0,
|
|
1033
|
+
tether: false,
|
|
1034
|
+
},
|
|
1035
|
+
},
|
|
1036
|
+
],
|
|
1037
|
+
});
|
|
1038
|
+
}
|
|
1039
|
+
this.isDropdownVisible = true;
|
|
1040
|
+
}
|
|
1041
|
+
hide() {
|
|
1042
|
+
if (this.dropdownMenuContentElement) {
|
|
1043
|
+
this.viewContainerRef.clear();
|
|
1044
|
+
this.dropdownMenuContentElement = null;
|
|
1045
|
+
this.popperInstance?.destroy();
|
|
1046
|
+
}
|
|
1047
|
+
this.isDropdownVisible = false;
|
|
1048
|
+
}
|
|
1049
|
+
addDropdownLinksListener() {
|
|
1050
|
+
const links = this.dropdownMenuContentElement?.querySelectorAll('.dropdown-item');
|
|
1051
|
+
links?.forEach(link => {
|
|
1052
|
+
this.renderer.listen(link, 'click', () => {
|
|
1053
|
+
this.hide();
|
|
1054
|
+
});
|
|
1055
|
+
});
|
|
1056
|
+
}
|
|
1057
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1058
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.3", type: NgxDropdownDirective, isStandalone: true, selector: "[ngxDropdown]", inputs: { ngxDropdown: { classPropertyName: "ngxDropdown", publicName: "ngxDropdown", isSignal: true, isRequired: true, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "toggleDropdown()", "document:click": "onDocumentClick($event)" } }, exportAs: ["ngxDropdown"], ngImport: i0 }); }
|
|
1059
|
+
}
|
|
1060
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxDropdownDirective, decorators: [{
|
|
1061
|
+
type: Directive,
|
|
1062
|
+
args: [{ selector: '[ngxDropdown]', exportAs: 'ngxDropdown' }]
|
|
1063
|
+
}], propDecorators: { toggleDropdown: [{
|
|
1064
|
+
type: HostListener,
|
|
1065
|
+
args: ['click']
|
|
1066
|
+
}], onDocumentClick: [{
|
|
1067
|
+
type: HostListener,
|
|
1068
|
+
args: ['document:click', ['$event']]
|
|
1069
|
+
}] } });
|
|
1070
|
+
|
|
1071
|
+
class NgxFormSelectDirective {
|
|
1072
|
+
constructor() {
|
|
1073
|
+
this.elementRef = inject((ElementRef));
|
|
1074
|
+
}
|
|
1075
|
+
set formInputInvalid(val) {
|
|
1076
|
+
if (val === true) {
|
|
1077
|
+
this.elementRef.nativeElement.classList.add('is-invalid');
|
|
1078
|
+
}
|
|
1079
|
+
else {
|
|
1080
|
+
this.elementRef.nativeElement.classList.remove('is-invalid');
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1083
|
+
ngOnInit() {
|
|
1084
|
+
this.elementRef.nativeElement.classList.add('form-select');
|
|
1085
|
+
}
|
|
1086
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1087
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxFormSelectDirective, isStandalone: true, selector: "select[ngxFormSelect]", inputs: { formInputInvalid: "formInputInvalid" }, ngImport: i0 }); }
|
|
1088
|
+
}
|
|
1089
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormSelectDirective, decorators: [{
|
|
1090
|
+
type: Directive,
|
|
1091
|
+
args: [{ selector: 'select[ngxFormSelect]' }]
|
|
1092
|
+
}], propDecorators: { formInputInvalid: [{
|
|
1093
|
+
type: Input
|
|
1094
|
+
}] } });
|
|
1095
|
+
|
|
1096
|
+
class NgxListGroupItemAvatarDirective {
|
|
1097
|
+
constructor() {
|
|
1098
|
+
this.elementRef = inject((ElementRef));
|
|
1099
|
+
}
|
|
1100
|
+
ngOnInit() {
|
|
1101
|
+
this.elementRef.nativeElement.classList.add('list-group-item-avatar');
|
|
1102
|
+
}
|
|
1103
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupItemAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1104
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxListGroupItemAvatarDirective, isStandalone: true, selector: "[ngxListGroupItemAvatar]", ngImport: i0 }); }
|
|
1105
|
+
}
|
|
1106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupItemAvatarDirective, decorators: [{
|
|
1107
|
+
type: Directive,
|
|
1108
|
+
args: [{ selector: '[ngxListGroupItemAvatar]' }]
|
|
1109
|
+
}] });
|
|
1110
|
+
|
|
1111
|
+
class NgxListGroupItemDirective {
|
|
1112
|
+
constructor() {
|
|
1113
|
+
this.renderer = inject(Renderer2);
|
|
1114
|
+
this.elementRef = inject((ElementRef));
|
|
1115
|
+
this._isActive = false;
|
|
1116
|
+
this.onOutsideClick = new EventEmitter();
|
|
1117
|
+
}
|
|
1118
|
+
set isActive(val) {
|
|
1119
|
+
this._isActive = val;
|
|
1120
|
+
if (val) {
|
|
1121
|
+
this.elementRef.nativeElement.classList.add('focus-active');
|
|
1122
|
+
}
|
|
1123
|
+
else {
|
|
1124
|
+
this.elementRef.nativeElement.classList.remove('focus-active');
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1127
|
+
ngOnInit() {
|
|
1128
|
+
this.elementRef.nativeElement.classList.add('list-group-item');
|
|
1129
|
+
this.elementRef.nativeElement.classList.add('list-group-item-action');
|
|
1130
|
+
this.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');
|
|
1131
|
+
this.renderer.listen('window', 'click', (e) => {
|
|
1132
|
+
if (e.target !== this.elementRef.nativeElement) {
|
|
1133
|
+
this._isActive = false;
|
|
1134
|
+
this.elementRef.nativeElement.classList.remove('focus-active');
|
|
1135
|
+
this.onOutsideClick.next();
|
|
1136
|
+
}
|
|
1137
|
+
});
|
|
1138
|
+
}
|
|
1139
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1140
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxListGroupItemDirective, isStandalone: true, selector: "li[ngxListGroupItem]", inputs: { isActive: "isActive" }, outputs: { onOutsideClick: "onOutsideClick" }, ngImport: i0 }); }
|
|
1141
|
+
}
|
|
1142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupItemDirective, decorators: [{
|
|
1143
|
+
type: Directive,
|
|
1144
|
+
args: [{ selector: 'li[ngxListGroupItem]' }]
|
|
1145
|
+
}], propDecorators: { isActive: [{
|
|
1146
|
+
type: Input
|
|
1147
|
+
}], onOutsideClick: [{
|
|
1148
|
+
type: Output
|
|
1149
|
+
}] } });
|
|
1150
|
+
|
|
1151
|
+
class NgxListGroupDirective {
|
|
1152
|
+
constructor() {
|
|
1153
|
+
this.elementRef = inject((ElementRef));
|
|
1154
|
+
}
|
|
1155
|
+
ngOnInit() {
|
|
1156
|
+
this.elementRef.nativeElement.classList.add('list-group');
|
|
1157
|
+
this.elementRef.nativeElement.classList.add('list-group-flush');
|
|
1158
|
+
}
|
|
1159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1160
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.3", type: NgxListGroupDirective, isStandalone: true, selector: "ul[ngxListGroup]", ngImport: i0 }); }
|
|
1161
|
+
}
|
|
1162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxListGroupDirective, decorators: [{
|
|
1163
|
+
type: Directive,
|
|
1164
|
+
args: [{ selector: 'ul[ngxListGroup]' }]
|
|
1165
|
+
}] });
|
|
1166
|
+
|
|
1167
|
+
class NgxFormControlPipe {
|
|
1168
|
+
transform(value) {
|
|
1169
|
+
return value;
|
|
1170
|
+
}
|
|
1171
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormControlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1172
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: NgxFormControlPipe, isStandalone: true, name: "ngxAsFormControl" }); }
|
|
1173
|
+
}
|
|
1174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: NgxFormControlPipe, decorators: [{
|
|
1175
|
+
type: Pipe,
|
|
1176
|
+
args: [{ name: 'ngxAsFormControl' }]
|
|
1177
|
+
}] });
|
|
1178
|
+
|
|
1179
1179
|
class NgxImageService {
|
|
1180
1180
|
async compress(imageBase64, quality = 0.8, fileType = 'image/jpeg') {
|
|
1181
1181
|
const img = await this.load(imageBase64);
|
|
@@ -1215,10 +1215,10 @@ class NgxImageService {
|
|
|
1215
1215
|
canvas.height = img.height;
|
|
1216
1216
|
context.drawImage(img, 0, 0, canvas.width, canvas.height);
|
|
1217
1217
|
}
|
|
1218
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1219
|
-
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' }); }
|
|
1220
1220
|
}
|
|
1221
|
-
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: [{
|
|
1222
1222
|
type: Injectable,
|
|
1223
1223
|
args: [{ providedIn: 'root' }]
|
|
1224
1224
|
}] });
|
|
@@ -1246,10 +1246,10 @@ class NgxLoadingIndicatorService {
|
|
|
1246
1246
|
this.componentRef.destroy();
|
|
1247
1247
|
}
|
|
1248
1248
|
}
|
|
1249
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1250
|
-
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' }); }
|
|
1251
1251
|
}
|
|
1252
|
-
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: [{
|
|
1253
1253
|
type: Injectable,
|
|
1254
1254
|
args: [{ providedIn: 'root' }]
|
|
1255
1255
|
}] });
|
|
@@ -1278,10 +1278,10 @@ class NgxModalService {
|
|
|
1278
1278
|
this.componentRef.destroy();
|
|
1279
1279
|
}
|
|
1280
1280
|
}
|
|
1281
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1282
|
-
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' }); }
|
|
1283
1283
|
}
|
|
1284
|
-
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: [{
|
|
1285
1285
|
type: Injectable,
|
|
1286
1286
|
args: [{ providedIn: 'root' }]
|
|
1287
1287
|
}] });
|
|
@@ -1319,10 +1319,10 @@ class NgxToastService {
|
|
|
1319
1319
|
clearTimeout(this.interval);
|
|
1320
1320
|
}
|
|
1321
1321
|
}
|
|
1322
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
|
1323
|
-
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' }); }
|
|
1324
1324
|
}
|
|
1325
|
-
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: [{
|
|
1326
1326
|
type: Injectable,
|
|
1327
1327
|
args: [{ providedIn: 'root' }]
|
|
1328
1328
|
}] });
|