ngx-gccb 0.6.1 → 0.8.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 +421 -587
- package/fesm2022/ngx-gccb.mjs.map +1 -1
- package/lib/decorators/decorator.types.d.ts +2 -2
- package/lib/directives/autofocus.directive.d.ts +11 -0
- package/lib/directives/dropdown.directive.d.ts +1 -1
- package/lib/directives/tooltip.directive.d.ts +8 -0
- package/lib/validators/dateAfter.validator.d.ts +3 -1
- package/lib/validators/match.validator.d.ts +3 -1
- package/lib/validators/timeAfter.validator.d.ts +4 -2
- package/package.json +7 -12
- package/public-api.d.ts +18 -5
- package/esm2022/lib/animations/fade-right.animation.mjs +0 -6
- package/esm2022/lib/animations/fade-up.animation.mjs +0 -6
- package/esm2022/lib/animations/index.mjs +0 -3
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +0 -50
- package/esm2022/lib/components/date-picker/index.mjs +0 -2
- package/esm2022/lib/components/form/form-errors/form-errors.component.mjs +0 -67
- package/esm2022/lib/components/form/form-errors/index.mjs +0 -2
- package/esm2022/lib/components/form/form-input/form-input.component.mjs +0 -53
- package/esm2022/lib/components/form/form-input/index.mjs +0 -2
- package/esm2022/lib/components/form/index.mjs +0 -3
- package/esm2022/lib/components/index.mjs +0 -7
- package/esm2022/lib/components/loading-indicator/index.mjs +0 -2
- package/esm2022/lib/components/loading-indicator/loading-indicator.component.mjs +0 -17
- package/esm2022/lib/components/modal/base-modal.component.mjs +0 -15
- package/esm2022/lib/components/modal/index.mjs +0 -3
- package/esm2022/lib/components/modal/modal.component.mjs +0 -43
- package/esm2022/lib/components/off-canvas/index.mjs +0 -2
- package/esm2022/lib/components/off-canvas/off-canvas.component.mjs +0 -27
- package/esm2022/lib/components/toast/index.mjs +0 -2
- package/esm2022/lib/components/toast/toast.component.mjs +0 -32
- package/esm2022/lib/decorators/class.decorator.mjs +0 -7
- package/esm2022/lib/decorators/decorator.types.mjs +0 -2
- package/esm2022/lib/decorators/index.mjs +0 -4
- package/esm2022/lib/decorators/log.decorator.mjs +0 -21
- package/esm2022/lib/directives/button.directive.mjs +0 -66
- package/esm2022/lib/directives/col.directive.mjs +0 -29
- package/esm2022/lib/directives/dropdown.directive.mjs +0 -118
- package/esm2022/lib/directives/form-input.directive.mjs +0 -30
- package/esm2022/lib/directives/form-label.directive.mjs +0 -20
- package/esm2022/lib/directives/form-select.directive.mjs +0 -30
- package/esm2022/lib/directives/icon-button.directive.mjs +0 -37
- package/esm2022/lib/directives/index.mjs +0 -11
- package/esm2022/lib/directives/list-group-item-avatar.directive.mjs +0 -20
- package/esm2022/lib/directives/list-group-item.directive.mjs +0 -45
- package/esm2022/lib/directives/list-group.directive.mjs +0 -21
- package/esm2022/lib/enums/index.mjs +0 -2
- package/esm2022/lib/enums/logtype.enum.mjs +0 -9
- package/esm2022/lib/helpers/index.mjs +0 -2
- package/esm2022/lib/helpers/sort.helper.mjs +0 -31
- package/esm2022/lib/interfaces/dictionary.interface.mjs +0 -2
- package/esm2022/lib/interfaces/index.mjs +0 -2
- package/esm2022/lib/pipe/form-control.pipe.mjs +0 -17
- package/esm2022/lib/pipe/index.mjs +0 -2
- package/esm2022/lib/services/clipboard.service.mjs +0 -16
- package/esm2022/lib/services/file.service.mjs +0 -71
- package/esm2022/lib/services/image.service.mjs +0 -49
- package/esm2022/lib/services/index.mjs +0 -10
- package/esm2022/lib/services/loading-indicator.service.mjs +0 -16
- package/esm2022/lib/services/local.service.mjs +0 -28
- package/esm2022/lib/services/logger.service.mjs +0 -36
- package/esm2022/lib/services/modal.service.mjs +0 -34
- package/esm2022/lib/services/toast.service.mjs +0 -42
- package/esm2022/lib/services/token.service.mjs +0 -26
- package/esm2022/lib/typings/array-extension.mjs +0 -39
- package/esm2022/lib/typings/date-extension.mjs +0 -34
- package/esm2022/lib/typings/index.mjs +0 -4
- package/esm2022/lib/typings/string-extensions.mjs +0 -5
- package/esm2022/lib/validators/dateAfter.validator.mjs +0 -20
- package/esm2022/lib/validators/index.mjs +0 -4
- package/esm2022/lib/validators/match.validator.mjs +0 -18
- package/esm2022/lib/validators/timeAfter.validator.mjs +0 -29
- package/esm2022/ngx-gccb.mjs +0 -5
- package/esm2022/public-api.mjs +0 -15
- package/lib/directives/index.d.ts +0 -10
- package/lib/helpers/index.d.ts +0 -1
- package/lib/helpers/sort.helper.d.ts +0 -1
- package/lib/interfaces/dictionary.interface.d.ts +0 -3
- package/lib/interfaces/index.d.ts +0 -1
- package/lib/services/clipboard.service.d.ts +0 -6
- package/lib/services/file.service.d.ts +0 -13
- package/lib/services/index.d.ts +0 -9
- package/lib/services/logger.service.d.ts +0 -18
- package/lib/typings/array-extension.d.ts +0 -11
- package/lib/typings/date-extension.d.ts +0 -15
- package/lib/typings/index.d.ts +0 -8
- package/lib/typings/string-extensions.d.ts +0 -6
package/fesm2022/ngx-gccb.mjs
CHANGED
|
@@ -2,27 +2,29 @@ import { trigger, transition, style, animate } from '@angular/animations';
|
|
|
2
2
|
import * as i1$2 from '@angular/common';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { Component, Input, inject, ElementRef,
|
|
5
|
+
import { Component, Input, inject, ElementRef, Directive, HostBinding, EventEmitter, Output, Renderer2, HostListener, ViewContainerRef, Pipe, Injectable, ComponentFactoryResolver } from '@angular/core';
|
|
6
6
|
import * as i1 from '@angular/forms';
|
|
7
7
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
8
|
-
import { createPopper } from '@popperjs/core';
|
|
9
8
|
import * as i1$1 from '@fortawesome/angular-fontawesome';
|
|
10
9
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
11
10
|
import { faSpinner, faTimes } from '@fortawesome/free-solid-svg-icons';
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
14
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
|
11
|
+
import { createPopper } from '@popperjs/core';
|
|
12
|
+
import { BehaviorSubject } from 'rxjs';
|
|
15
13
|
import { DomPortalOutlet, TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
|
|
16
|
-
import dayjs from 'dayjs';
|
|
17
|
-
import localizedFormat from 'dayjs/plugin/localizedFormat';
|
|
18
14
|
|
|
19
15
|
const FadeRightAnimation = trigger('fadeRightAnimation', [
|
|
20
|
-
transition(':enter', [
|
|
16
|
+
transition(':enter', [
|
|
17
|
+
style({ transform: 'translateX(-100%)', zIndex: 9999 }),
|
|
18
|
+
animate('200ms ease-in', style({ transform: 'translateX(0%)' })),
|
|
19
|
+
]),
|
|
21
20
|
transition(':leave', [animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))]),
|
|
22
21
|
]);
|
|
23
22
|
|
|
24
23
|
const FadeAnimation = trigger('fadeAnimation', [
|
|
25
|
-
transition(':enter', [
|
|
24
|
+
transition(':enter', [
|
|
25
|
+
style({ opacity: 0, transform: 'translateY(10px)' }),
|
|
26
|
+
animate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),
|
|
27
|
+
]),
|
|
26
28
|
transition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),
|
|
27
29
|
]);
|
|
28
30
|
|
|
@@ -44,12 +46,12 @@ class DatePickerComponent {
|
|
|
44
46
|
// }
|
|
45
47
|
// }
|
|
46
48
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: DatePickerComponent, isStandalone: true, selector: "app-date-picker", ngImport: i0, template: "coming soon\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
49
51
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
51
53
|
type: Component,
|
|
52
|
-
args: [{ selector: 'app-date-picker',
|
|
54
|
+
args: [{ selector: 'app-date-picker', imports: [CommonModule], template: "coming soon\n" }]
|
|
53
55
|
}] });
|
|
54
56
|
var DayOfWeek;
|
|
55
57
|
(function (DayOfWeek) {
|
|
@@ -106,8 +108,8 @@ class FormErrorsComponent {
|
|
|
106
108
|
}
|
|
107
109
|
}
|
|
108
110
|
}
|
|
109
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
112
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: FormErrorsComponent, isStandalone: true, selector: "app-form-errors", inputs: { errors: "errors" }, usesOnChanges: true, ngImport: i0, template: `
|
|
111
113
|
<div class="invalid-feedback d-block">
|
|
112
114
|
@if (errorMessages) {
|
|
113
115
|
@for (errorMessage of errorMessages; track $index) {
|
|
@@ -117,7 +119,7 @@ class FormErrorsComponent {
|
|
|
117
119
|
</div>
|
|
118
120
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
119
121
|
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormErrorsComponent, decorators: [{
|
|
121
123
|
type: Component,
|
|
122
124
|
args: [{
|
|
123
125
|
selector: 'app-form-errors',
|
|
@@ -130,13 +132,344 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
130
132
|
}
|
|
131
133
|
</div>
|
|
132
134
|
`,
|
|
133
|
-
standalone: true,
|
|
134
135
|
imports: [CommonModule],
|
|
135
136
|
}]
|
|
136
137
|
}], propDecorators: { errors: [{
|
|
137
138
|
type: Input
|
|
138
139
|
}] } });
|
|
139
140
|
|
|
141
|
+
class FormInputDirective {
|
|
142
|
+
constructor() {
|
|
143
|
+
this.elementRef = inject((ElementRef));
|
|
144
|
+
}
|
|
145
|
+
set formInputInvalid(val) {
|
|
146
|
+
if (val === true) {
|
|
147
|
+
this.elementRef.nativeElement.classList.add('is-invalid');
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.elementRef.nativeElement.classList.remove('is-invalid');
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
ngOnInit() {
|
|
154
|
+
this.elementRef.nativeElement.classList.add('form-control');
|
|
155
|
+
}
|
|
156
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
157
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: FormInputDirective, isStandalone: true, selector: "input,textarea[app-form-input]", inputs: { formInputInvalid: "formInputInvalid" }, ngImport: i0 }); }
|
|
158
|
+
}
|
|
159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormInputDirective, decorators: [{
|
|
160
|
+
type: Directive,
|
|
161
|
+
args: [{
|
|
162
|
+
selector: 'input,textarea[app-form-input]',
|
|
163
|
+
standalone: true,
|
|
164
|
+
}]
|
|
165
|
+
}], propDecorators: { formInputInvalid: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}] } });
|
|
168
|
+
|
|
169
|
+
class FormLabelDirective {
|
|
170
|
+
constructor() {
|
|
171
|
+
this.elementClass = 'form-label';
|
|
172
|
+
}
|
|
173
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
174
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: FormLabelDirective, isStandalone: true, selector: "label[app-form-label]", host: { properties: { "class": "this.elementClass" } }, ngImport: i0 }); }
|
|
175
|
+
}
|
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormLabelDirective, decorators: [{
|
|
177
|
+
type: Directive,
|
|
178
|
+
args: [{
|
|
179
|
+
selector: 'label[app-form-label]',
|
|
180
|
+
standalone: true,
|
|
181
|
+
}]
|
|
182
|
+
}], propDecorators: { elementClass: [{
|
|
183
|
+
type: HostBinding,
|
|
184
|
+
args: ['class']
|
|
185
|
+
}] } });
|
|
186
|
+
|
|
187
|
+
class FormSelectDirective {
|
|
188
|
+
constructor() {
|
|
189
|
+
this.elementRef = inject((ElementRef));
|
|
190
|
+
}
|
|
191
|
+
set formInputInvalid(val) {
|
|
192
|
+
if (val === true) {
|
|
193
|
+
this.elementRef.nativeElement.classList.add('is-invalid');
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
this.elementRef.nativeElement.classList.remove('is-invalid');
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
ngOnInit() {
|
|
200
|
+
this.elementRef.nativeElement.classList.add('form-select');
|
|
201
|
+
}
|
|
202
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
203
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: FormSelectDirective, isStandalone: true, selector: "select[app-form-select]", inputs: { formInputInvalid: "formInputInvalid" }, ngImport: i0 }); }
|
|
204
|
+
}
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormSelectDirective, decorators: [{
|
|
206
|
+
type: Directive,
|
|
207
|
+
args: [{
|
|
208
|
+
selector: 'select[app-form-select]',
|
|
209
|
+
standalone: true,
|
|
210
|
+
}]
|
|
211
|
+
}], propDecorators: { formInputInvalid: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}] } });
|
|
214
|
+
|
|
215
|
+
class FormInputComponent {
|
|
216
|
+
constructor() {
|
|
217
|
+
this.inputType = 'text';
|
|
218
|
+
this.isSubmitted = false;
|
|
219
|
+
this.selectOptions = [];
|
|
220
|
+
this.hintText = '';
|
|
221
|
+
this.onEnter = new EventEmitter();
|
|
222
|
+
this.onChange = new EventEmitter();
|
|
223
|
+
}
|
|
224
|
+
handleSelect(event) {
|
|
225
|
+
this.onChange.next(event);
|
|
226
|
+
}
|
|
227
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
228
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: FormInputComponent, isStandalone: true, selector: "app-form-input", inputs: { control: "control", inputType: "inputType", inputLabel: "inputLabel", inputPlaceholder: "inputPlaceholder", inputId: "inputId", inputName: "inputName", inputTabIndex: "inputTabIndex", isSubmitted: "isSubmitted", selectOptions: "selectOptions", hintText: "hintText" }, outputs: { onEnter: "onEnter", onChange: "onChange" }, ngImport: i0, template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === 'text' ||\n\t\tinputType === 'number' ||\n\t\tinputType === 'password' ||\n\t\tinputType === 'email' ||\n\t\tinputType === 'date' ||\n\t\tinputType === 'datetime-local' ||\n\t\tinputType === 'time'\n\t) {\n\t\t<input\n\t\t\t[type]=\"inputType\"\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\" />\n\t}\n\t@if (inputType === 'textarea') {\n\t\t<textarea\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\tstyle=\"min-height: 100px\">\n\t\t</textarea>\n\t}\n\t@if (inputType === 'select') {\n\t\t<select\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-select\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\t(change)=\"handleSelect($event)\">\n\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t{{ option.label }}\n\t\t\t\t</option>\n\t\t\t}\n\t\t</select>\n\t}\n\t<label app-form-label [attr.for]=\"inputName || inputId\"> {{ inputLabel }} </label>\n\n\t@if (hintText) {\n\t\t<div class=\"form-text\">\n\t\t\t{{ hintText }}\n\t\t</div>\n\t}\n\n\t@if (isSubmitted && control.errors) {\n\t\t<app-form-errors [errors]=\"control.errors\" />\n\t}\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormErrorsComponent, selector: "app-form-errors", inputs: ["errors"] }, { kind: "directive", type: FormLabelDirective, selector: "label[app-form-label]" }, { kind: "directive", type: FormInputDirective, selector: "input,textarea[app-form-input]", inputs: ["formInputInvalid"] }, { kind: "directive", type: FormSelectDirective, selector: "select[app-form-select]", inputs: ["formInputInvalid"] }] }); }
|
|
229
|
+
}
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormInputComponent, decorators: [{
|
|
231
|
+
type: Component,
|
|
232
|
+
args: [{ selector: 'app-form-input', imports: [ReactiveFormsModule, FormErrorsComponent, FormLabelDirective, FormInputDirective, FormSelectDirective], template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === 'text' ||\n\t\tinputType === 'number' ||\n\t\tinputType === 'password' ||\n\t\tinputType === 'email' ||\n\t\tinputType === 'date' ||\n\t\tinputType === 'datetime-local' ||\n\t\tinputType === 'time'\n\t) {\n\t\t<input\n\t\t\t[type]=\"inputType\"\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\" />\n\t}\n\t@if (inputType === 'textarea') {\n\t\t<textarea\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\tstyle=\"min-height: 100px\">\n\t\t</textarea>\n\t}\n\t@if (inputType === 'select') {\n\t\t<select\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-select\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\t(change)=\"handleSelect($event)\">\n\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t{{ option.label }}\n\t\t\t\t</option>\n\t\t\t}\n\t\t</select>\n\t}\n\t<label app-form-label [attr.for]=\"inputName || inputId\"> {{ inputLabel }} </label>\n\n\t@if (hintText) {\n\t\t<div class=\"form-text\">\n\t\t\t{{ hintText }}\n\t\t</div>\n\t}\n\n\t@if (isSubmitted && control.errors) {\n\t\t<app-form-errors [errors]=\"control.errors\" />\n\t}\n</div>\n" }]
|
|
233
|
+
}], propDecorators: { control: [{
|
|
234
|
+
type: Input,
|
|
235
|
+
args: [{ required: true }]
|
|
236
|
+
}], inputType: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], inputLabel: [{
|
|
239
|
+
type: Input,
|
|
240
|
+
args: [{ required: true }]
|
|
241
|
+
}], inputPlaceholder: [{
|
|
242
|
+
type: Input
|
|
243
|
+
}], inputId: [{
|
|
244
|
+
type: Input
|
|
245
|
+
}], inputName: [{
|
|
246
|
+
type: Input,
|
|
247
|
+
args: [{ required: true }]
|
|
248
|
+
}], inputTabIndex: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], isSubmitted: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], selectOptions: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], hintText: [{
|
|
255
|
+
type: Input
|
|
256
|
+
}], onEnter: [{
|
|
257
|
+
type: Output
|
|
258
|
+
}], onChange: [{
|
|
259
|
+
type: Output
|
|
260
|
+
}] } });
|
|
261
|
+
|
|
262
|
+
class LoadingIndicatorComponent {
|
|
263
|
+
constructor() {
|
|
264
|
+
this.faSpinner = faSpinner;
|
|
265
|
+
}
|
|
266
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: LoadingIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
267
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: LoadingIndicatorComponent, isStandalone: true, selector: "app-loading-indicator", ngImport: i0, template: "<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\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"] }] }); }
|
|
268
|
+
}
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: LoadingIndicatorComponent, decorators: [{
|
|
270
|
+
type: Component,
|
|
271
|
+
args: [{ selector: 'app-loading-indicator', imports: [FontAwesomeModule], template: "<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n", styles: [":host{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#495057}\n"] }]
|
|
272
|
+
}] });
|
|
273
|
+
|
|
274
|
+
class BaseModalComponent {
|
|
275
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: BaseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
276
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: BaseModalComponent, isStandalone: true, selector: "app-base-modal", ngImport: i0, template: ``, isInline: true }); }
|
|
277
|
+
}
|
|
278
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: BaseModalComponent, decorators: [{
|
|
279
|
+
type: Component,
|
|
280
|
+
args: [{
|
|
281
|
+
selector: 'app-base-modal',
|
|
282
|
+
template: ``,
|
|
283
|
+
standalone: true,
|
|
284
|
+
}]
|
|
285
|
+
}] });
|
|
286
|
+
|
|
287
|
+
class IconButtonDirective {
|
|
288
|
+
constructor() {
|
|
289
|
+
this.elementRef = inject((ElementRef));
|
|
290
|
+
}
|
|
291
|
+
set appIconButton(val) {
|
|
292
|
+
this.color = val || 'primary';
|
|
293
|
+
this.elementRef.nativeElement.classList.add(`icon-button-${this.color}`);
|
|
294
|
+
}
|
|
295
|
+
set shadow(val) {
|
|
296
|
+
if (val === true || val === undefined) {
|
|
297
|
+
this.elementRef.nativeElement.classList.add('shadow-sm');
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
this.elementRef.nativeElement.classList.remove('shadow-sm');
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
ngOnInit() {
|
|
304
|
+
this.elementRef.nativeElement.classList.add('btn', 'icon-button');
|
|
305
|
+
}
|
|
306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: IconButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
307
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: IconButtonDirective, isStandalone: true, selector: "button[app-icon-button]", inputs: { appIconButton: ["app-icon-button", "appIconButton"], shadow: "shadow" }, ngImport: i0 }); }
|
|
308
|
+
}
|
|
309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: IconButtonDirective, decorators: [{
|
|
310
|
+
type: Directive,
|
|
311
|
+
args: [{
|
|
312
|
+
selector: 'button[app-icon-button]',
|
|
313
|
+
standalone: true,
|
|
314
|
+
}]
|
|
315
|
+
}], propDecorators: { appIconButton: [{
|
|
316
|
+
type: Input,
|
|
317
|
+
args: ['app-icon-button']
|
|
318
|
+
}], shadow: [{
|
|
319
|
+
type: Input
|
|
320
|
+
}] } });
|
|
321
|
+
|
|
322
|
+
class ModalComponent {
|
|
323
|
+
constructor() {
|
|
324
|
+
this.title = '';
|
|
325
|
+
this.showClose = true;
|
|
326
|
+
this.onClose = new EventEmitter();
|
|
327
|
+
this.dialogCssClasses = [];
|
|
328
|
+
this.faTimes = faTimes;
|
|
329
|
+
}
|
|
330
|
+
set fullScreen(val) {
|
|
331
|
+
if (val === true) {
|
|
332
|
+
this.dialogCssClasses.push(`modal-fullscreen`);
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
this.dialogCssClasses = this.dialogCssClasses.filter(cssClass => cssClass !== 'modal-fullscreen');
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
handleClickClose() {
|
|
339
|
+
this.onClose.next();
|
|
340
|
+
}
|
|
341
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
342
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { title: "title", showClose: "showClose", fullScreen: "fullScreen" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [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\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (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]\"></ng-content>\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$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "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"] }] }); }
|
|
343
|
+
}
|
|
344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ModalComponent, decorators: [{
|
|
345
|
+
type: Component,
|
|
346
|
+
args: [{ selector: 'app-modal', imports: [CommonModule, IconButtonDirective, FontAwesomeModule], template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [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\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (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]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n" }]
|
|
347
|
+
}], propDecorators: { title: [{
|
|
348
|
+
type: Input
|
|
349
|
+
}], showClose: [{
|
|
350
|
+
type: Input
|
|
351
|
+
}], fullScreen: [{
|
|
352
|
+
type: Input
|
|
353
|
+
}], onClose: [{
|
|
354
|
+
type: Output
|
|
355
|
+
}] } });
|
|
356
|
+
|
|
357
|
+
class OffCanvasComponent {
|
|
358
|
+
constructor() {
|
|
359
|
+
this.title = '';
|
|
360
|
+
this.onClose = new EventEmitter();
|
|
361
|
+
this.faTimes = faTimes;
|
|
362
|
+
}
|
|
363
|
+
handleClickClose() {
|
|
364
|
+
this.onClose.next();
|
|
365
|
+
}
|
|
366
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: OffCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
367
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: OffCanvasComponent, isStandalone: true, selector: "app-off-canvas", inputs: { title: "title" }, 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 app-icon-button=\"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"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "shadow"] }] }); }
|
|
368
|
+
}
|
|
369
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: OffCanvasComponent, decorators: [{
|
|
370
|
+
type: Component,
|
|
371
|
+
args: [{ selector: 'app-off-canvas', imports: [FontAwesomeModule, IconButtonDirective], 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 app-icon-button=\"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"] }]
|
|
372
|
+
}], propDecorators: { title: [{
|
|
373
|
+
type: Input
|
|
374
|
+
}], onClose: [{
|
|
375
|
+
type: Output
|
|
376
|
+
}] } });
|
|
377
|
+
|
|
378
|
+
class ToastComponent {
|
|
379
|
+
constructor() {
|
|
380
|
+
this.onClose = new EventEmitter();
|
|
381
|
+
}
|
|
382
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
383
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.5", type: ToastComponent, isStandalone: true, selector: "app-toast", inputs: { message: "message" }, outputs: { onClose: "onClose" }, ngImport: i0, template: `
|
|
384
|
+
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
385
|
+
<div class="d-flex">
|
|
386
|
+
<div class="toast-body" [innerHTML]="message"></div>
|
|
387
|
+
<button class="btn-close btn-close-white me-2 m-auto" (click)="onClose.next()"></button>
|
|
388
|
+
</div>
|
|
389
|
+
</div>
|
|
390
|
+
`, isInline: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }); }
|
|
391
|
+
}
|
|
392
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ToastComponent, decorators: [{
|
|
393
|
+
type: Component,
|
|
394
|
+
args: [{ selector: 'app-toast', template: `
|
|
395
|
+
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
396
|
+
<div class="d-flex">
|
|
397
|
+
<div class="toast-body" [innerHTML]="message"></div>
|
|
398
|
+
<button class="btn-close btn-close-white me-2 m-auto" (click)="onClose.next()"></button>
|
|
399
|
+
</div>
|
|
400
|
+
</div>
|
|
401
|
+
`, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }]
|
|
402
|
+
}], propDecorators: { message: [{
|
|
403
|
+
type: Input
|
|
404
|
+
}], onClose: [{
|
|
405
|
+
type: Output
|
|
406
|
+
}] } });
|
|
407
|
+
|
|
408
|
+
const Class = (className) => (obj) => {
|
|
409
|
+
Object.defineProperty(obj.prototype, 'className', {
|
|
410
|
+
value: className,
|
|
411
|
+
writable: false,
|
|
412
|
+
});
|
|
413
|
+
};
|
|
414
|
+
|
|
415
|
+
var LogType;
|
|
416
|
+
(function (LogType) {
|
|
417
|
+
LogType["log"] = "log";
|
|
418
|
+
LogType["info"] = "info";
|
|
419
|
+
LogType["warn"] = "warn";
|
|
420
|
+
LogType["debug"] = "debug";
|
|
421
|
+
LogType["error"] = "error";
|
|
422
|
+
})(LogType || (LogType = {}));
|
|
423
|
+
|
|
424
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
425
|
+
/* eslint-disable prefer-arrow/prefer-arrow-functions */
|
|
426
|
+
function Log(methodName, logType = LogType.log, logArgs) {
|
|
427
|
+
return function (target, key, descriptor) {
|
|
428
|
+
const method = descriptor.value;
|
|
429
|
+
descriptor.value = function (...args) {
|
|
430
|
+
const className = target.constructor.name;
|
|
431
|
+
const newMethodName = methodName || key;
|
|
432
|
+
let logStatements = [className, newMethodName];
|
|
433
|
+
if (logArgs && args && args.length > 0) {
|
|
434
|
+
logStatements = logStatements.concat(args);
|
|
435
|
+
}
|
|
436
|
+
// eslint-disable-next-line no-console
|
|
437
|
+
console[logType](...logStatements);
|
|
438
|
+
return method.apply(this, args);
|
|
439
|
+
};
|
|
440
|
+
return descriptor;
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
class AutofocusDirective {
|
|
445
|
+
constructor(el) {
|
|
446
|
+
this.el = el;
|
|
447
|
+
this.focus = true;
|
|
448
|
+
}
|
|
449
|
+
set autofocus(condition) {
|
|
450
|
+
this.focus = condition !== false;
|
|
451
|
+
}
|
|
452
|
+
ngAfterViewInit() {
|
|
453
|
+
if (this.focus) {
|
|
454
|
+
setTimeout(() => {
|
|
455
|
+
this.el.nativeElement.focus();
|
|
456
|
+
this.el.nativeElement.classList.add('focus-ring');
|
|
457
|
+
}, 100);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
461
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: AutofocusDirective, isStandalone: true, selector: "[autofocus]", inputs: { autofocus: "autofocus" }, ngImport: i0 }); }
|
|
462
|
+
}
|
|
463
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AutofocusDirective, decorators: [{
|
|
464
|
+
type: Directive,
|
|
465
|
+
args: [{
|
|
466
|
+
selector: '[autofocus]',
|
|
467
|
+
standalone: true,
|
|
468
|
+
}]
|
|
469
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { autofocus: [{
|
|
470
|
+
type: Input
|
|
471
|
+
}] } });
|
|
472
|
+
|
|
140
473
|
class ButtonDirective {
|
|
141
474
|
constructor() {
|
|
142
475
|
this.elementRef = inject((ElementRef));
|
|
@@ -177,10 +510,10 @@ class ButtonDirective {
|
|
|
177
510
|
this.elementRef.nativeElement.classList.add('flex-shrink-0');
|
|
178
511
|
this.renderer.setAttribute(this.elementRef.nativeElement, 'type', 'button');
|
|
179
512
|
}
|
|
180
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
181
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
513
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
514
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: ButtonDirective, isStandalone: true, selector: "button[app-button]", inputs: { appButton: ["app-button", "appButton"], variant: "variant", size: "size" }, host: { listeners: { "focus": "onFocus($event)", "blur": "onblur($event)" } }, ngImport: i0 }); }
|
|
182
515
|
}
|
|
183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
516
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ButtonDirective, decorators: [{
|
|
184
517
|
type: Directive,
|
|
185
518
|
args: [{
|
|
186
519
|
selector: 'button[app-button]',
|
|
@@ -215,10 +548,10 @@ class ColDirective {
|
|
|
215
548
|
ngAfterViewInit() {
|
|
216
549
|
this.el.nativeElement.classList.add(this.span);
|
|
217
550
|
}
|
|
218
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
219
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
551
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ColDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
552
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: ColDirective, isStandalone: true, selector: "[col]", inputs: { col: "col" }, ngImport: i0 }); }
|
|
220
553
|
}
|
|
221
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ColDirective, decorators: [{
|
|
222
555
|
type: Directive,
|
|
223
556
|
args: [{
|
|
224
557
|
selector: '[col]',
|
|
@@ -312,7 +645,9 @@ class DropdownDirective {
|
|
|
312
645
|
this.isDropdownVisible = false;
|
|
313
646
|
}
|
|
314
647
|
onDocumentClick(event) {
|
|
315
|
-
if (this.wrapperElement &&
|
|
648
|
+
if (this.wrapperElement &&
|
|
649
|
+
!this.wrapperElement.contains(event.target) &&
|
|
650
|
+
!this.elementRef.nativeElement.contains(event.target)) {
|
|
316
651
|
this.closeDropdown();
|
|
317
652
|
}
|
|
318
653
|
}
|
|
@@ -320,136 +655,27 @@ class DropdownDirective {
|
|
|
320
655
|
const links = this.dropdownContent?.querySelectorAll('.dropdown-item');
|
|
321
656
|
links?.forEach(link => {
|
|
322
657
|
this.renderer.listen(link, 'click', () => {
|
|
323
|
-
this.closeDropdown();
|
|
324
|
-
});
|
|
325
|
-
});
|
|
326
|
-
}
|
|
327
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
328
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: DropdownDirective, isStandalone: true, selector: "[appDropdown]", inputs: { dropdownTemplate: ["appDropdown", "dropdownTemplate"], placement: "placement" }, host: { listeners: { "click": "toggleDropdown()" } }, ngImport: i0 }); }
|
|
329
|
-
}
|
|
330
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownDirective, decorators: [{
|
|
331
|
-
type: Directive,
|
|
332
|
-
args: [{
|
|
333
|
-
selector: '[appDropdown]',
|
|
334
|
-
standalone: true,
|
|
335
|
-
}]
|
|
336
|
-
}], ctorParameters: () => [], propDecorators: { dropdownTemplate: [{
|
|
337
|
-
type: Input,
|
|
338
|
-
args: ['appDropdown']
|
|
339
|
-
}], placement: [{
|
|
340
|
-
type: Input
|
|
341
|
-
}], toggleDropdown: [{
|
|
342
|
-
type: HostListener,
|
|
343
|
-
args: ['click']
|
|
344
|
-
}] } });
|
|
345
|
-
|
|
346
|
-
class FormInputDirective {
|
|
347
|
-
constructor() {
|
|
348
|
-
this.elementRef = inject((ElementRef));
|
|
349
|
-
}
|
|
350
|
-
set formInputInvalid(val) {
|
|
351
|
-
if (val === true) {
|
|
352
|
-
this.elementRef.nativeElement.classList.add('is-invalid');
|
|
353
|
-
}
|
|
354
|
-
else {
|
|
355
|
-
this.elementRef.nativeElement.classList.remove('is-invalid');
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
ngOnInit() {
|
|
359
|
-
this.elementRef.nativeElement.classList.add('form-control');
|
|
360
|
-
}
|
|
361
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
362
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: FormInputDirective, isStandalone: true, selector: "input,textarea[app-form-input]", inputs: { formInputInvalid: "formInputInvalid" }, ngImport: i0 }); }
|
|
363
|
-
}
|
|
364
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormInputDirective, decorators: [{
|
|
365
|
-
type: Directive,
|
|
366
|
-
args: [{
|
|
367
|
-
selector: 'input,textarea[app-form-input]',
|
|
368
|
-
standalone: true,
|
|
369
|
-
}]
|
|
370
|
-
}], propDecorators: { formInputInvalid: [{
|
|
371
|
-
type: Input
|
|
372
|
-
}] } });
|
|
373
|
-
|
|
374
|
-
class FormLabelDirective {
|
|
375
|
-
constructor() {
|
|
376
|
-
this.elementClass = 'form-label';
|
|
377
|
-
}
|
|
378
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
379
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: FormLabelDirective, isStandalone: true, selector: "label[app-form-label]", host: { properties: { "class": "this.elementClass" } }, ngImport: i0 }); }
|
|
380
|
-
}
|
|
381
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormLabelDirective, decorators: [{
|
|
382
|
-
type: Directive,
|
|
383
|
-
args: [{
|
|
384
|
-
selector: 'label[app-form-label]',
|
|
385
|
-
standalone: true,
|
|
386
|
-
}]
|
|
387
|
-
}], propDecorators: { elementClass: [{
|
|
388
|
-
type: HostBinding,
|
|
389
|
-
args: ['class']
|
|
390
|
-
}] } });
|
|
391
|
-
|
|
392
|
-
class FormSelectDirective {
|
|
393
|
-
constructor() {
|
|
394
|
-
this.elementRef = inject((ElementRef));
|
|
395
|
-
}
|
|
396
|
-
set formInputInvalid(val) {
|
|
397
|
-
if (val === true) {
|
|
398
|
-
this.elementRef.nativeElement.classList.add('is-invalid');
|
|
399
|
-
}
|
|
400
|
-
else {
|
|
401
|
-
this.elementRef.nativeElement.classList.remove('is-invalid');
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
ngOnInit() {
|
|
405
|
-
this.elementRef.nativeElement.classList.add('form-select');
|
|
406
|
-
}
|
|
407
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
408
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: FormSelectDirective, isStandalone: true, selector: "select[app-form-select]", inputs: { formInputInvalid: "formInputInvalid" }, ngImport: i0 }); }
|
|
409
|
-
}
|
|
410
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormSelectDirective, decorators: [{
|
|
411
|
-
type: Directive,
|
|
412
|
-
args: [{
|
|
413
|
-
selector: 'select[app-form-select]',
|
|
414
|
-
standalone: true,
|
|
415
|
-
}]
|
|
416
|
-
}], propDecorators: { formInputInvalid: [{
|
|
417
|
-
type: Input
|
|
418
|
-
}] } });
|
|
419
|
-
|
|
420
|
-
class IconButtonDirective {
|
|
421
|
-
constructor() {
|
|
422
|
-
this.elementRef = inject((ElementRef));
|
|
423
|
-
}
|
|
424
|
-
set appIconButton(val) {
|
|
425
|
-
this.color = val || 'primary';
|
|
426
|
-
this.elementRef.nativeElement.classList.add(`icon-button-${this.color}`);
|
|
427
|
-
}
|
|
428
|
-
set shadow(val) {
|
|
429
|
-
if (val === true || val === undefined) {
|
|
430
|
-
this.elementRef.nativeElement.classList.add('shadow-sm');
|
|
431
|
-
}
|
|
432
|
-
else {
|
|
433
|
-
this.elementRef.nativeElement.classList.remove('shadow-sm');
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
ngOnInit() {
|
|
437
|
-
this.elementRef.nativeElement.classList.add('btn', 'icon-button');
|
|
658
|
+
this.closeDropdown();
|
|
659
|
+
});
|
|
660
|
+
});
|
|
438
661
|
}
|
|
439
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
440
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
662
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: DropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
663
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: DropdownDirective, isStandalone: true, selector: "[appDropdown]", inputs: { dropdownTemplate: ["appDropdown", "dropdownTemplate"], placement: "placement" }, host: { listeners: { "click": "toggleDropdown()" } }, ngImport: i0 }); }
|
|
441
664
|
}
|
|
442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
665
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: DropdownDirective, decorators: [{
|
|
443
666
|
type: Directive,
|
|
444
667
|
args: [{
|
|
445
|
-
selector: '
|
|
668
|
+
selector: '[appDropdown]',
|
|
446
669
|
standalone: true,
|
|
447
670
|
}]
|
|
448
|
-
}], propDecorators: {
|
|
671
|
+
}], ctorParameters: () => [], propDecorators: { dropdownTemplate: [{
|
|
449
672
|
type: Input,
|
|
450
|
-
args: ['
|
|
451
|
-
}],
|
|
673
|
+
args: ['appDropdown']
|
|
674
|
+
}], placement: [{
|
|
452
675
|
type: Input
|
|
676
|
+
}], toggleDropdown: [{
|
|
677
|
+
type: HostListener,
|
|
678
|
+
args: ['click']
|
|
453
679
|
}] } });
|
|
454
680
|
|
|
455
681
|
class ListGroupItemAvatarDirective {
|
|
@@ -459,10 +685,10 @@ class ListGroupItemAvatarDirective {
|
|
|
459
685
|
ngOnInit() {
|
|
460
686
|
this.elementRef.nativeElement.classList.add('list-group-item-avatar');
|
|
461
687
|
}
|
|
462
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
463
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
688
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ListGroupItemAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
689
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: ListGroupItemAvatarDirective, isStandalone: true, selector: "[app-list-group-item-avatar]", ngImport: i0 }); }
|
|
464
690
|
}
|
|
465
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
691
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ListGroupItemAvatarDirective, decorators: [{
|
|
466
692
|
type: Directive,
|
|
467
693
|
args: [{
|
|
468
694
|
selector: '[app-list-group-item-avatar]',
|
|
@@ -498,10 +724,10 @@ class ListGroupItemDirective {
|
|
|
498
724
|
}
|
|
499
725
|
});
|
|
500
726
|
}
|
|
501
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
502
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
727
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ListGroupItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
728
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: ListGroupItemDirective, isStandalone: true, selector: "li[app-list-group-item]", inputs: { isActive: "isActive" }, outputs: { onOutsideClick: "onOutsideClick" }, ngImport: i0 }); }
|
|
503
729
|
}
|
|
504
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
730
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ListGroupItemDirective, decorators: [{
|
|
505
731
|
type: Directive,
|
|
506
732
|
args: [{
|
|
507
733
|
selector: 'li[app-list-group-item]',
|
|
@@ -521,10 +747,10 @@ class ListGroupDirective {
|
|
|
521
747
|
this.elementRef.nativeElement.classList.add('list-group');
|
|
522
748
|
this.elementRef.nativeElement.classList.add('list-group-flush');
|
|
523
749
|
}
|
|
524
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
525
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
750
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ListGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
751
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: ListGroupDirective, isStandalone: true, selector: "ul[app-list-group]", ngImport: i0 }); }
|
|
526
752
|
}
|
|
527
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
753
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ListGroupDirective, decorators: [{
|
|
528
754
|
type: Directive,
|
|
529
755
|
args: [{
|
|
530
756
|
selector: 'ul[app-list-group]',
|
|
@@ -532,239 +758,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
532
758
|
}]
|
|
533
759
|
}] });
|
|
534
760
|
|
|
535
|
-
class
|
|
536
|
-
constructor() {
|
|
537
|
-
this.inputType = 'text';
|
|
538
|
-
this.isSubmitted = false;
|
|
539
|
-
this.selectOptions = [];
|
|
540
|
-
this.hintText = '';
|
|
541
|
-
this.onEnter = new EventEmitter();
|
|
542
|
-
this.onChange = new EventEmitter();
|
|
543
|
-
}
|
|
544
|
-
handleSelect(event) {
|
|
545
|
-
this.onChange.next(event);
|
|
546
|
-
}
|
|
547
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
548
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: FormInputComponent, isStandalone: true, selector: "app-form-input", inputs: { control: "control", inputType: "inputType", inputLabel: "inputLabel", inputPlaceholder: "inputPlaceholder", inputId: "inputId", inputName: "inputName", inputTabIndex: "inputTabIndex", isSubmitted: "isSubmitted", selectOptions: "selectOptions", hintText: "hintText" }, outputs: { onEnter: "onEnter", onChange: "onChange" }, ngImport: i0, template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === 'text' ||\n\t\tinputType === 'number' ||\n\t\tinputType === 'password' ||\n\t\tinputType === 'email' ||\n\t\tinputType === 'date' ||\n\t\tinputType === 'datetime-local' ||\n\t\tinputType === 'time'\n\t) {\n\t\t<input\n\t\t\t[type]=\"inputType\"\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\" />\n\t}\n\t@if (inputType === 'textarea') {\n\t\t<textarea\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\tstyle=\"min-height: 100px\">\n\t\t</textarea>\n\t}\n\t@if (inputType === 'select') {\n\t\t<select\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-select\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\t(change)=\"handleSelect($event)\">\n\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t{{ option.label }}\n\t\t\t\t</option>\n\t\t\t}\n\t\t</select>\n\t}\n\t<label app-form-label [attr.for]=\"inputName || inputId\"> {{ inputLabel }} </label>\n\n\t@if (hintText) {\n\t\t<div class=\"form-text\">\n\t\t\t{{ hintText }}\n\t\t</div>\n\t}\n\n\t@if (isSubmitted && control.errors) {\n\t\t<app-form-errors [errors]=\"control.errors\" />\n\t}\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormErrorsComponent, selector: "app-form-errors", inputs: ["errors"] }, { kind: "directive", type: FormLabelDirective, selector: "label[app-form-label]" }, { kind: "directive", type: FormInputDirective, selector: "input,textarea[app-form-input]", inputs: ["formInputInvalid"] }, { kind: "directive", type: FormSelectDirective, selector: "select[app-form-select]", inputs: ["formInputInvalid"] }] }); }
|
|
549
|
-
}
|
|
550
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormInputComponent, decorators: [{
|
|
551
|
-
type: Component,
|
|
552
|
-
args: [{ selector: 'app-form-input', standalone: true, imports: [ReactiveFormsModule, FormErrorsComponent, FormLabelDirective, FormInputDirective, FormSelectDirective], template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === 'text' ||\n\t\tinputType === 'number' ||\n\t\tinputType === 'password' ||\n\t\tinputType === 'email' ||\n\t\tinputType === 'date' ||\n\t\tinputType === 'datetime-local' ||\n\t\tinputType === 'time'\n\t) {\n\t\t<input\n\t\t\t[type]=\"inputType\"\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\" />\n\t}\n\t@if (inputType === 'textarea') {\n\t\t<textarea\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\tstyle=\"min-height: 100px\">\n\t\t</textarea>\n\t}\n\t@if (inputType === 'select') {\n\t\t<select\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-select\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\t(change)=\"handleSelect($event)\">\n\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t{{ option.label }}\n\t\t\t\t</option>\n\t\t\t}\n\t\t</select>\n\t}\n\t<label app-form-label [attr.for]=\"inputName || inputId\"> {{ inputLabel }} </label>\n\n\t@if (hintText) {\n\t\t<div class=\"form-text\">\n\t\t\t{{ hintText }}\n\t\t</div>\n\t}\n\n\t@if (isSubmitted && control.errors) {\n\t\t<app-form-errors [errors]=\"control.errors\" />\n\t}\n</div>\n" }]
|
|
553
|
-
}], propDecorators: { control: [{
|
|
554
|
-
type: Input,
|
|
555
|
-
args: [{ required: true }]
|
|
556
|
-
}], inputType: [{
|
|
557
|
-
type: Input
|
|
558
|
-
}], inputLabel: [{
|
|
559
|
-
type: Input,
|
|
560
|
-
args: [{ required: true }]
|
|
561
|
-
}], inputPlaceholder: [{
|
|
562
|
-
type: Input
|
|
563
|
-
}], inputId: [{
|
|
564
|
-
type: Input
|
|
565
|
-
}], inputName: [{
|
|
566
|
-
type: Input,
|
|
567
|
-
args: [{ required: true }]
|
|
568
|
-
}], inputTabIndex: [{
|
|
569
|
-
type: Input
|
|
570
|
-
}], isSubmitted: [{
|
|
571
|
-
type: Input
|
|
572
|
-
}], selectOptions: [{
|
|
573
|
-
type: Input
|
|
574
|
-
}], hintText: [{
|
|
575
|
-
type: Input
|
|
576
|
-
}], onEnter: [{
|
|
577
|
-
type: Output
|
|
578
|
-
}], onChange: [{
|
|
579
|
-
type: Output
|
|
580
|
-
}] } });
|
|
581
|
-
|
|
582
|
-
class LoadingIndicatorComponent {
|
|
761
|
+
class TooltipDirective {
|
|
583
762
|
constructor() {
|
|
584
|
-
this.
|
|
763
|
+
this.placement = 'bottom-start';
|
|
585
764
|
}
|
|
586
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
587
|
-
static { this.ɵ
|
|
588
|
-
}
|
|
589
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoadingIndicatorComponent, decorators: [{
|
|
590
|
-
type: Component,
|
|
591
|
-
args: [{ selector: 'app-loading-indicator', standalone: true, imports: [FontAwesomeModule], template: "<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n", styles: [":host{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#495057}\n"] }]
|
|
592
|
-
}] });
|
|
593
|
-
|
|
594
|
-
class BaseModalComponent {
|
|
595
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: BaseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
596
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: BaseModalComponent, isStandalone: true, selector: "app-base-modal", ngImport: i0, template: ``, isInline: true }); }
|
|
765
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
766
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.5", type: TooltipDirective, isStandalone: true, selector: "[appTooltip]", inputs: { tooltip: ["appTooltip", "tooltip"], placement: "placement" }, ngImport: i0 }); }
|
|
597
767
|
}
|
|
598
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
599
|
-
type:
|
|
768
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
769
|
+
type: Directive,
|
|
600
770
|
args: [{
|
|
601
|
-
selector: '
|
|
602
|
-
template: ``,
|
|
771
|
+
selector: '[appTooltip]',
|
|
603
772
|
standalone: true,
|
|
604
773
|
}]
|
|
605
|
-
}]
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
this.title = '';
|
|
610
|
-
this.showClose = true;
|
|
611
|
-
this.onClose = new EventEmitter();
|
|
612
|
-
this.dialogCssClasses = [];
|
|
613
|
-
this.faTimes = faTimes;
|
|
614
|
-
}
|
|
615
|
-
set fullScreen(val) {
|
|
616
|
-
if (val === true) {
|
|
617
|
-
this.dialogCssClasses.push(`modal-fullscreen`);
|
|
618
|
-
}
|
|
619
|
-
else {
|
|
620
|
-
this.dialogCssClasses = this.dialogCssClasses.removeBy((cssClass) => cssClass, 'modal-fullscreen');
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
handleClickClose() {
|
|
624
|
-
this.onClose.next();
|
|
625
|
-
}
|
|
626
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
627
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { title: "title", showClose: "showClose", fullScreen: "fullScreen" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [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\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (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]\"></ng-content>\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$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "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"] }] }); }
|
|
628
|
-
}
|
|
629
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ModalComponent, decorators: [{
|
|
630
|
-
type: Component,
|
|
631
|
-
args: [{ selector: 'app-modal', standalone: true, imports: [CommonModule, IconButtonDirective, FontAwesomeModule], template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [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\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (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]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n" }]
|
|
632
|
-
}], propDecorators: { title: [{
|
|
633
|
-
type: Input
|
|
634
|
-
}], showClose: [{
|
|
635
|
-
type: Input
|
|
636
|
-
}], fullScreen: [{
|
|
637
|
-
type: Input
|
|
638
|
-
}], onClose: [{
|
|
639
|
-
type: Output
|
|
640
|
-
}] } });
|
|
641
|
-
|
|
642
|
-
class OffCanvasComponent {
|
|
643
|
-
constructor() {
|
|
644
|
-
this.title = '';
|
|
645
|
-
this.onClose = new EventEmitter();
|
|
646
|
-
this.faTimes = faTimes;
|
|
647
|
-
}
|
|
648
|
-
handleClickClose() {
|
|
649
|
-
this.onClose.next();
|
|
650
|
-
}
|
|
651
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: OffCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
652
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: OffCanvasComponent, isStandalone: true, selector: "app-off-canvas", inputs: { title: "title" }, 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 app-icon-button=\"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"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "shadow"] }] }); }
|
|
653
|
-
}
|
|
654
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: OffCanvasComponent, decorators: [{
|
|
655
|
-
type: Component,
|
|
656
|
-
args: [{ selector: 'app-off-canvas', standalone: true, imports: [FontAwesomeModule, IconButtonDirective], 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 app-icon-button=\"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"] }]
|
|
657
|
-
}], propDecorators: { title: [{
|
|
658
|
-
type: Input
|
|
659
|
-
}], onClose: [{
|
|
660
|
-
type: Output
|
|
661
|
-
}] } });
|
|
662
|
-
|
|
663
|
-
class ToastComponent {
|
|
664
|
-
constructor() {
|
|
665
|
-
this.onClose = new EventEmitter();
|
|
666
|
-
}
|
|
667
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
668
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: ToastComponent, isStandalone: true, selector: "app-toast", inputs: { message: "message" }, outputs: { onClose: "onClose" }, ngImport: i0, template: `
|
|
669
|
-
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
670
|
-
<div class="d-flex">
|
|
671
|
-
<div class="toast-body" [innerHTML]="message"></div>
|
|
672
|
-
<button class="btn-close btn-close-white me-2 m-auto" (click)="onClose.next()"></button>
|
|
673
|
-
</div>
|
|
674
|
-
</div>
|
|
675
|
-
`, isInline: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }); }
|
|
676
|
-
}
|
|
677
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ToastComponent, decorators: [{
|
|
678
|
-
type: Component,
|
|
679
|
-
args: [{ selector: 'app-toast', template: `
|
|
680
|
-
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
681
|
-
<div class="d-flex">
|
|
682
|
-
<div class="toast-body" [innerHTML]="message"></div>
|
|
683
|
-
<button class="btn-close btn-close-white me-2 m-auto" (click)="onClose.next()"></button>
|
|
684
|
-
</div>
|
|
685
|
-
</div>
|
|
686
|
-
`, standalone: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }]
|
|
687
|
-
}], propDecorators: { message: [{
|
|
774
|
+
}], propDecorators: { tooltip: [{
|
|
775
|
+
type: Input,
|
|
776
|
+
args: ['appTooltip']
|
|
777
|
+
}], placement: [{
|
|
688
778
|
type: Input
|
|
689
|
-
}], onClose: [{
|
|
690
|
-
type: Output
|
|
691
779
|
}] } });
|
|
692
780
|
|
|
693
|
-
const Class = (className) => (obj) => {
|
|
694
|
-
Object.defineProperty(obj.prototype, 'className', {
|
|
695
|
-
value: className,
|
|
696
|
-
writable: false,
|
|
697
|
-
});
|
|
698
|
-
};
|
|
699
|
-
|
|
700
|
-
var LogType;
|
|
701
|
-
(function (LogType) {
|
|
702
|
-
LogType["log"] = "log";
|
|
703
|
-
LogType["info"] = "info";
|
|
704
|
-
LogType["warn"] = "warn";
|
|
705
|
-
LogType["debug"] = "debug";
|
|
706
|
-
LogType["error"] = "error";
|
|
707
|
-
})(LogType || (LogType = {}));
|
|
708
|
-
|
|
709
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
710
|
-
/* eslint-disable prefer-arrow/prefer-arrow-functions */
|
|
711
|
-
function Log(methodName, logType = LogType.log, logArgs) {
|
|
712
|
-
return function (target, key, descriptor) {
|
|
713
|
-
const method = descriptor.value;
|
|
714
|
-
descriptor.value = function (...args) {
|
|
715
|
-
const className = target.className || target.constructor.name;
|
|
716
|
-
const newMethodName = methodName || key;
|
|
717
|
-
let logStatements = [className, newMethodName];
|
|
718
|
-
if (logArgs && args && args.length > 0) {
|
|
719
|
-
logStatements = logStatements.concat([...args]);
|
|
720
|
-
}
|
|
721
|
-
// eslint-disable-next-line no-console
|
|
722
|
-
console[logType].apply(console, [...logStatements]);
|
|
723
|
-
return method.apply(this, args);
|
|
724
|
-
};
|
|
725
|
-
return descriptor;
|
|
726
|
-
};
|
|
727
|
-
}
|
|
728
|
-
|
|
729
|
-
var SortOrder;
|
|
730
|
-
(function (SortOrder) {
|
|
731
|
-
SortOrder[SortOrder["NONE"] = 0] = "NONE";
|
|
732
|
-
SortOrder[SortOrder["ASC"] = 1] = "ASC";
|
|
733
|
-
SortOrder[SortOrder["DESC"] = -1] = "DESC";
|
|
734
|
-
})(SortOrder || (SortOrder = {}));
|
|
735
|
-
const compareString = (valA, valB, ascending) => {
|
|
736
|
-
return valA.localeCompare(valB) * (ascending ? SortOrder.ASC : SortOrder.DESC);
|
|
737
|
-
};
|
|
738
|
-
const getSortOrder = (valA, valB) => {
|
|
739
|
-
return valA < valB ? SortOrder.DESC : valA === valB ? SortOrder.NONE : SortOrder.ASC;
|
|
740
|
-
};
|
|
741
|
-
const compareNonString = (valA, valB, ascending) => {
|
|
742
|
-
return getSortOrder(valA, valB) * (ascending ? SortOrder.ASC : SortOrder.DESC);
|
|
743
|
-
};
|
|
744
|
-
const getValue = (valA, valB, ascending) => {
|
|
745
|
-
let result = 0;
|
|
746
|
-
if (typeof valA === 'string' && typeof valB === 'string') {
|
|
747
|
-
result = compareString(valA, valB, ascending);
|
|
748
|
-
}
|
|
749
|
-
else {
|
|
750
|
-
result = compareNonString(valA, valB, ascending);
|
|
751
|
-
}
|
|
752
|
-
return result;
|
|
753
|
-
};
|
|
754
|
-
const sortHelper = (a, b, valueGetter, ascending) => {
|
|
755
|
-
const valA = valueGetter(a);
|
|
756
|
-
const valB = valueGetter(b);
|
|
757
|
-
return getValue(valA, valB, ascending);
|
|
758
|
-
};
|
|
759
|
-
|
|
760
781
|
class FormControlPipe {
|
|
761
782
|
transform(value) {
|
|
762
783
|
return value;
|
|
763
784
|
}
|
|
764
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
765
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
785
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormControlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
786
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: FormControlPipe, isStandalone: true, name: "formControl" }); }
|
|
766
787
|
}
|
|
767
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
788
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: FormControlPipe, decorators: [{
|
|
768
789
|
type: Pipe,
|
|
769
790
|
args: [{
|
|
770
791
|
name: 'formControl',
|
|
@@ -772,87 +793,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
772
793
|
}]
|
|
773
794
|
}] });
|
|
774
795
|
|
|
775
|
-
class ClipboardService {
|
|
776
|
-
copy(text) {
|
|
777
|
-
return navigator.clipboard.writeText(text);
|
|
778
|
-
}
|
|
779
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
780
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ClipboardService, providedIn: 'root' }); }
|
|
781
|
-
}
|
|
782
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ClipboardService, decorators: [{
|
|
783
|
-
type: Injectable,
|
|
784
|
-
args: [{
|
|
785
|
-
providedIn: 'root',
|
|
786
|
-
}]
|
|
787
|
-
}] });
|
|
788
|
-
|
|
789
|
-
class FileService {
|
|
790
|
-
readAsText(file) {
|
|
791
|
-
const fileReader = new FileReader();
|
|
792
|
-
return new Promise((resolve, reject) => {
|
|
793
|
-
fileReader.onload = (event) => {
|
|
794
|
-
resolve(event);
|
|
795
|
-
};
|
|
796
|
-
fileReader.onerror = (event) => {
|
|
797
|
-
reject(event);
|
|
798
|
-
};
|
|
799
|
-
fileReader.readAsText(file);
|
|
800
|
-
});
|
|
801
|
-
}
|
|
802
|
-
readAsBinaryString(file) {
|
|
803
|
-
const fileReader = new FileReader();
|
|
804
|
-
return new Promise((resolve, reject) => {
|
|
805
|
-
fileReader.onload = (event) => {
|
|
806
|
-
resolve(event);
|
|
807
|
-
};
|
|
808
|
-
fileReader.onerror = (event) => {
|
|
809
|
-
reject(event);
|
|
810
|
-
};
|
|
811
|
-
fileReader.readAsBinaryString(file);
|
|
812
|
-
});
|
|
813
|
-
}
|
|
814
|
-
readAsDataUrl(file) {
|
|
815
|
-
const reader = new FileReader();
|
|
816
|
-
return new Promise((resolve, reject) => {
|
|
817
|
-
reader.onload = (event) => {
|
|
818
|
-
resolve(event);
|
|
819
|
-
};
|
|
820
|
-
reader.onerror = (error) => reject(error);
|
|
821
|
-
reader.readAsDataURL(file);
|
|
822
|
-
});
|
|
823
|
-
}
|
|
824
|
-
unparse(data, config) {
|
|
825
|
-
return unparse(data, config);
|
|
826
|
-
}
|
|
827
|
-
parse(content) {
|
|
828
|
-
return new Promise((resolve, reject) => {
|
|
829
|
-
parse(content, {
|
|
830
|
-
header: true,
|
|
831
|
-
complete: (results) => resolve(results),
|
|
832
|
-
error: (err) => reject(err),
|
|
833
|
-
});
|
|
834
|
-
});
|
|
835
|
-
}
|
|
836
|
-
getFileExtension(filename) {
|
|
837
|
-
let result = '-';
|
|
838
|
-
if (/[.]/.exec(filename)) {
|
|
839
|
-
const regexp = /[^.]+$/.exec(filename);
|
|
840
|
-
result = `.${regexp?.[0]}`;
|
|
841
|
-
}
|
|
842
|
-
return result;
|
|
843
|
-
}
|
|
844
|
-
save(content, fileName, fileType) {
|
|
845
|
-
const blob = new Blob([content], { type: fileType });
|
|
846
|
-
saveAs(blob, fileName, { autoBom: true });
|
|
847
|
-
}
|
|
848
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
849
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FileService, providedIn: 'root' }); }
|
|
850
|
-
}
|
|
851
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FileService, decorators: [{
|
|
852
|
-
type: Injectable,
|
|
853
|
-
args: [{ providedIn: 'root' }]
|
|
854
|
-
}] });
|
|
855
|
-
|
|
856
796
|
class ImageService {
|
|
857
797
|
async compress(imageBase64, quality = 0.8, fileType = 'image/jpeg') {
|
|
858
798
|
const img = await this.load(imageBase64);
|
|
@@ -892,10 +832,10 @@ class ImageService {
|
|
|
892
832
|
canvas.height = img.height;
|
|
893
833
|
context.drawImage(img, 0, 0, canvas.width, canvas.height);
|
|
894
834
|
}
|
|
895
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
896
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
835
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ImageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
836
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ImageService, providedIn: 'root' }); }
|
|
897
837
|
}
|
|
898
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
838
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ImageService, decorators: [{
|
|
899
839
|
type: Injectable,
|
|
900
840
|
args: [{ providedIn: 'root' }]
|
|
901
841
|
}] });
|
|
@@ -905,10 +845,10 @@ class LoadingIndicatorService {
|
|
|
905
845
|
this.show = new BehaviorSubject(undefined);
|
|
906
846
|
this.hide = new BehaviorSubject(undefined);
|
|
907
847
|
}
|
|
908
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
909
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
848
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: LoadingIndicatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
849
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: LoadingIndicatorService, providedIn: 'root' }); }
|
|
910
850
|
}
|
|
911
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
851
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: LoadingIndicatorService, decorators: [{
|
|
912
852
|
type: Injectable,
|
|
913
853
|
args: [{ providedIn: 'root' }]
|
|
914
854
|
}] });
|
|
@@ -931,42 +871,10 @@ class LocalService {
|
|
|
931
871
|
removeAll() {
|
|
932
872
|
localStorage.clear();
|
|
933
873
|
}
|
|
934
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
935
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
936
|
-
}
|
|
937
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LocalService, decorators: [{
|
|
938
|
-
type: Injectable,
|
|
939
|
-
args: [{ providedIn: 'root' }]
|
|
940
|
-
}] });
|
|
941
|
-
|
|
942
|
-
class LoggerService {
|
|
943
|
-
constructor() {
|
|
944
|
-
this.onLog = new Subject();
|
|
945
|
-
}
|
|
946
|
-
log(...args) {
|
|
947
|
-
this._doLog(LogType.log, args);
|
|
948
|
-
}
|
|
949
|
-
info(...args) {
|
|
950
|
-
this._doLog(LogType.info, args);
|
|
951
|
-
}
|
|
952
|
-
warn(...args) {
|
|
953
|
-
this._doLog(LogType.warn, args);
|
|
954
|
-
}
|
|
955
|
-
debug(...args) {
|
|
956
|
-
this._doLog(LogType.debug, args);
|
|
957
|
-
}
|
|
958
|
-
error(...args) {
|
|
959
|
-
this._doLog(LogType.error, args);
|
|
960
|
-
}
|
|
961
|
-
_doLog(logType, ...args) {
|
|
962
|
-
// eslint-disable-next-line no-console
|
|
963
|
-
console[logType].apply(console, args);
|
|
964
|
-
this.onLog.next({ logType: logType, args: args });
|
|
965
|
-
}
|
|
966
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoggerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
967
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoggerService, providedIn: 'root' }); }
|
|
874
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: LocalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
875
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: LocalService, providedIn: 'root' }); }
|
|
968
876
|
}
|
|
969
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
877
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: LocalService, decorators: [{
|
|
970
878
|
type: Injectable,
|
|
971
879
|
args: [{ providedIn: 'root' }]
|
|
972
880
|
}] });
|
|
@@ -994,10 +902,10 @@ class ModalService {
|
|
|
994
902
|
hide() {
|
|
995
903
|
this.portalHost.detach();
|
|
996
904
|
}
|
|
997
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
998
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
905
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
906
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ModalService, providedIn: 'root' }); }
|
|
999
907
|
}
|
|
1000
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
908
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ModalService, decorators: [{
|
|
1001
909
|
type: Injectable,
|
|
1002
910
|
args: [{ providedIn: 'root' }]
|
|
1003
911
|
}] });
|
|
@@ -1032,10 +940,10 @@ class ToastService {
|
|
|
1032
940
|
hide() {
|
|
1033
941
|
this.portalHost.detach();
|
|
1034
942
|
}
|
|
1035
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1036
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
943
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
944
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ToastService, providedIn: 'root' }); }
|
|
1037
945
|
}
|
|
1038
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
946
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ToastService, decorators: [{
|
|
1039
947
|
type: Injectable,
|
|
1040
948
|
args: [{ providedIn: 'root' }]
|
|
1041
949
|
}] });
|
|
@@ -1053,90 +961,14 @@ class TokenService {
|
|
|
1053
961
|
remove(key) {
|
|
1054
962
|
this.localService.remove(key);
|
|
1055
963
|
}
|
|
1056
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1057
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
964
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: TokenService, deps: [{ token: LocalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
965
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: TokenService, providedIn: 'root' }); }
|
|
1058
966
|
}
|
|
1059
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
967
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: TokenService, decorators: [{
|
|
1060
968
|
type: Injectable,
|
|
1061
|
-
args: [{
|
|
1062
|
-
providedIn: 'root',
|
|
1063
|
-
}]
|
|
969
|
+
args: [{ providedIn: 'root' }]
|
|
1064
970
|
}], ctorParameters: () => [{ type: LocalService }] });
|
|
1065
971
|
|
|
1066
|
-
Array.prototype.groupBy = function (valueGetter) {
|
|
1067
|
-
return this.reduce((curr, obj) => {
|
|
1068
|
-
const key = valueGetter(obj);
|
|
1069
|
-
(curr[key] = curr[key] || []).push(obj);
|
|
1070
|
-
return curr;
|
|
1071
|
-
}, {});
|
|
1072
|
-
};
|
|
1073
|
-
Array.prototype.removeBy = function (valueGetter, val) {
|
|
1074
|
-
return this.filter((curr) => {
|
|
1075
|
-
const key = valueGetter(curr);
|
|
1076
|
-
// change to split to remove only first item found
|
|
1077
|
-
return key !== val;
|
|
1078
|
-
});
|
|
1079
|
-
};
|
|
1080
|
-
Array.prototype.orderBy = function (valueGetter, ascending = true) {
|
|
1081
|
-
this?.sort((a, b) => sortHelper(a, b, valueGetter, ascending));
|
|
1082
|
-
return this;
|
|
1083
|
-
};
|
|
1084
|
-
Array.prototype.filterBy = function (key) {
|
|
1085
|
-
return this.filter((a) => {
|
|
1086
|
-
let result = false;
|
|
1087
|
-
if (key && a[key]) {
|
|
1088
|
-
result = a[key] === key;
|
|
1089
|
-
}
|
|
1090
|
-
else {
|
|
1091
|
-
result = a === key;
|
|
1092
|
-
}
|
|
1093
|
-
return result;
|
|
1094
|
-
});
|
|
1095
|
-
};
|
|
1096
|
-
Array.prototype.distinct = function (comparator) {
|
|
1097
|
-
const thisAsArray = this;
|
|
1098
|
-
const result = comparator
|
|
1099
|
-
? thisAsArray.filter((value, index, array) => array.findIndex((o) => comparator(o, value)) === index)
|
|
1100
|
-
: thisAsArray.filter((value, index, array) => array.indexOf(value) === index);
|
|
1101
|
-
return result;
|
|
1102
|
-
};
|
|
1103
|
-
|
|
1104
|
-
dayjs.extend(localizedFormat);
|
|
1105
|
-
Date.prototype.isAfter = function (date, unit) {
|
|
1106
|
-
return dayjs(this).isAfter(date, unit);
|
|
1107
|
-
};
|
|
1108
|
-
Date.prototype.isBefore = function (date, unit) {
|
|
1109
|
-
return dayjs(this).isBefore(date, unit);
|
|
1110
|
-
};
|
|
1111
|
-
Date.prototype.format = function (template) {
|
|
1112
|
-
return dayjs(this).format(template);
|
|
1113
|
-
};
|
|
1114
|
-
Date.prototype.isValid = function () {
|
|
1115
|
-
return dayjs(this).isValid();
|
|
1116
|
-
};
|
|
1117
|
-
Date.prototype.add = function (value, unit) {
|
|
1118
|
-
return dayjs(this).add(value, unit).toDate();
|
|
1119
|
-
};
|
|
1120
|
-
Date.prototype.subtract = function (value, unit) {
|
|
1121
|
-
return dayjs(this).subtract(value, unit).toDate();
|
|
1122
|
-
};
|
|
1123
|
-
Date.prototype.firstDayOfMonth = function () {
|
|
1124
|
-
return dayjs(this).startOf('month').toDate();
|
|
1125
|
-
};
|
|
1126
|
-
Date.prototype.lastDayOfMonth = function () {
|
|
1127
|
-
return dayjs(this).endOf('month').toDate();
|
|
1128
|
-
};
|
|
1129
|
-
Date.prototype.set = function (unit, value) {
|
|
1130
|
-
return dayjs(this).set(unit, value).toDate();
|
|
1131
|
-
};
|
|
1132
|
-
Date.prototype.diff = function (date, unit) {
|
|
1133
|
-
return dayjs(this).diff(date, unit);
|
|
1134
|
-
};
|
|
1135
|
-
|
|
1136
|
-
String.prototype.capitalize = function () {
|
|
1137
|
-
return this.charAt(0).toUpperCase() + this.slice(1);
|
|
1138
|
-
};
|
|
1139
|
-
|
|
1140
972
|
function dateAfterValidator(startDateControlKey) {
|
|
1141
973
|
return (endDateControl) => {
|
|
1142
974
|
let result = null;
|
|
@@ -1188,10 +1020,12 @@ function timeAfterValidator(startTimeControlKey) {
|
|
|
1188
1020
|
const startTime = startTimeControl.value;
|
|
1189
1021
|
const endTime = control.value;
|
|
1190
1022
|
// Umwandlung der Zeit in Minuten (z.B. 20:00 Uhr = 1200 Minuten)
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1023
|
+
if (startTime && endTime) {
|
|
1024
|
+
const startMinutes = convertToMinutes(startTime);
|
|
1025
|
+
const endMinutes = convertToMinutes(endTime);
|
|
1026
|
+
if (endMinutes <= startMinutes) {
|
|
1027
|
+
result = { timeAfterError: startTimeControl.value };
|
|
1028
|
+
}
|
|
1195
1029
|
}
|
|
1196
1030
|
}
|
|
1197
1031
|
}
|
|
@@ -1212,5 +1046,5 @@ function convertToMinutes(time) {
|
|
|
1212
1046
|
* Generated bundle index. Do not edit.
|
|
1213
1047
|
*/
|
|
1214
1048
|
|
|
1215
|
-
export { BaseModalComponent, ButtonDirective, Class,
|
|
1049
|
+
export { AutofocusDirective, BaseModalComponent, ButtonDirective, Class, ColDirective, DatePickerComponent, DropdownDirective, FadeAnimation, FadeRightAnimation, FormControlPipe, FormErrorsComponent, FormInputComponent, FormInputDirective, FormLabelDirective, FormSelectDirective, IconButtonDirective, ImageService, ListGroupDirective, ListGroupItemAvatarDirective, ListGroupItemDirective, LoadingIndicatorComponent, LoadingIndicatorService, LocalService, Log, LogType, ModalComponent, ModalService, OffCanvasComponent, ToastComponent, ToastService, TokenService, TooltipDirective, dateAfterValidator, matchValidator, timeAfterValidator };
|
|
1216
1050
|
//# sourceMappingURL=ngx-gccb.mjs.map
|