ngx-gccb 0.6.0 → 0.7.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/esm2022/lib/components/form/form-input/form-input.component.mjs +4 -2
- package/esm2022/lib/components/modal/modal.component.mjs +3 -3
- package/esm2022/lib/components/off-canvas/off-canvas.component.mjs +2 -2
- package/esm2022/lib/decorators/log.decorator.mjs +4 -4
- package/esm2022/lib/directives/autofocus.directive.mjs +31 -0
- package/esm2022/lib/directives/dropdown.directive.mjs +5 -3
- package/esm2022/lib/directives/tooltip.directive.mjs +22 -0
- package/esm2022/lib/services/token.service.mjs +2 -4
- package/esm2022/lib/validators/dateAfter.validator.mjs +1 -1
- package/esm2022/lib/validators/match.validator.mjs +1 -1
- package/esm2022/lib/validators/timeAfter.validator.mjs +7 -5
- package/esm2022/public-api.mjs +19 -6
- package/fesm2022/ngx-gccb.mjs +431 -602
- package/fesm2022/ngx-gccb.mjs.map +1 -1
- 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 +1 -4
- package/public-api.d.ts +18 -5
- package/esm2022/lib/directives/index.mjs +0 -11
- 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/services/clipboard.service.mjs +0 -16
- package/esm2022/lib/services/file.service.mjs +0 -71
- package/esm2022/lib/services/index.mjs +0 -10
- package/esm2022/lib/services/logger.service.mjs +0 -36
- 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/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,19 +2,15 @@ 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
16
|
transition(':enter', [style({ transform: 'translateX(-100%)', zIndex: 9999 }), animate('200ms ease-in', style({ transform: 'translateX(0%)' }))]),
|
|
@@ -117,23 +113,355 @@ class FormErrorsComponent {
|
|
|
117
113
|
</div>
|
|
118
114
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
119
115
|
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormErrorsComponent, decorators: [{
|
|
121
|
-
type: Component,
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormErrorsComponent, decorators: [{
|
|
117
|
+
type: Component,
|
|
118
|
+
args: [{
|
|
119
|
+
selector: 'app-form-errors',
|
|
120
|
+
template: `
|
|
121
|
+
<div class="invalid-feedback d-block">
|
|
122
|
+
@if (errorMessages) {
|
|
123
|
+
@for (errorMessage of errorMessages; track $index) {
|
|
124
|
+
<div>{{ errorMessage }}</div>
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
</div>
|
|
128
|
+
`,
|
|
129
|
+
standalone: true,
|
|
130
|
+
imports: [CommonModule],
|
|
131
|
+
}]
|
|
132
|
+
}], propDecorators: { errors: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}] } });
|
|
135
|
+
|
|
136
|
+
class FormInputDirective {
|
|
137
|
+
constructor() {
|
|
138
|
+
this.elementRef = inject((ElementRef));
|
|
139
|
+
}
|
|
140
|
+
set formInputInvalid(val) {
|
|
141
|
+
if (val === true) {
|
|
142
|
+
this.elementRef.nativeElement.classList.add('is-invalid');
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
this.elementRef.nativeElement.classList.remove('is-invalid');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
ngOnInit() {
|
|
149
|
+
this.elementRef.nativeElement.classList.add('form-control');
|
|
150
|
+
}
|
|
151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
152
|
+
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 }); }
|
|
153
|
+
}
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormInputDirective, decorators: [{
|
|
155
|
+
type: Directive,
|
|
156
|
+
args: [{
|
|
157
|
+
selector: 'input,textarea[app-form-input]',
|
|
158
|
+
standalone: true,
|
|
159
|
+
}]
|
|
160
|
+
}], propDecorators: { formInputInvalid: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}] } });
|
|
163
|
+
|
|
164
|
+
class FormLabelDirective {
|
|
165
|
+
constructor() {
|
|
166
|
+
this.elementClass = 'form-label';
|
|
167
|
+
}
|
|
168
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
169
|
+
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 }); }
|
|
170
|
+
}
|
|
171
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormLabelDirective, decorators: [{
|
|
172
|
+
type: Directive,
|
|
173
|
+
args: [{
|
|
174
|
+
selector: 'label[app-form-label]',
|
|
175
|
+
standalone: true,
|
|
176
|
+
}]
|
|
177
|
+
}], propDecorators: { elementClass: [{
|
|
178
|
+
type: HostBinding,
|
|
179
|
+
args: ['class']
|
|
180
|
+
}] } });
|
|
181
|
+
|
|
182
|
+
class FormSelectDirective {
|
|
183
|
+
constructor() {
|
|
184
|
+
this.elementRef = inject((ElementRef));
|
|
185
|
+
}
|
|
186
|
+
set formInputInvalid(val) {
|
|
187
|
+
if (val === true) {
|
|
188
|
+
this.elementRef.nativeElement.classList.add('is-invalid');
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
this.elementRef.nativeElement.classList.remove('is-invalid');
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
ngOnInit() {
|
|
195
|
+
this.elementRef.nativeElement.classList.add('form-select');
|
|
196
|
+
}
|
|
197
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
198
|
+
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 }); }
|
|
199
|
+
}
|
|
200
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormSelectDirective, decorators: [{
|
|
201
|
+
type: Directive,
|
|
202
|
+
args: [{
|
|
203
|
+
selector: 'select[app-form-select]',
|
|
204
|
+
standalone: true,
|
|
205
|
+
}]
|
|
206
|
+
}], propDecorators: { formInputInvalid: [{
|
|
207
|
+
type: Input
|
|
208
|
+
}] } });
|
|
209
|
+
|
|
210
|
+
class FormInputComponent {
|
|
211
|
+
constructor() {
|
|
212
|
+
this.inputType = 'text';
|
|
213
|
+
this.isSubmitted = false;
|
|
214
|
+
this.selectOptions = [];
|
|
215
|
+
this.hintText = '';
|
|
216
|
+
this.onEnter = new EventEmitter();
|
|
217
|
+
this.onChange = new EventEmitter();
|
|
218
|
+
}
|
|
219
|
+
handleSelect(event) {
|
|
220
|
+
this.onChange.next(event);
|
|
221
|
+
}
|
|
222
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
223
|
+
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"] }] }); }
|
|
224
|
+
}
|
|
225
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: FormInputComponent, decorators: [{
|
|
226
|
+
type: Component,
|
|
227
|
+
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" }]
|
|
228
|
+
}], propDecorators: { control: [{
|
|
229
|
+
type: Input,
|
|
230
|
+
args: [{ required: true }]
|
|
231
|
+
}], inputType: [{
|
|
232
|
+
type: Input
|
|
233
|
+
}], inputLabel: [{
|
|
234
|
+
type: Input,
|
|
235
|
+
args: [{ required: true }]
|
|
236
|
+
}], inputPlaceholder: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], inputId: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}], inputName: [{
|
|
241
|
+
type: Input,
|
|
242
|
+
args: [{ required: true }]
|
|
243
|
+
}], inputTabIndex: [{
|
|
244
|
+
type: Input
|
|
245
|
+
}], isSubmitted: [{
|
|
246
|
+
type: Input
|
|
247
|
+
}], selectOptions: [{
|
|
248
|
+
type: Input
|
|
249
|
+
}], hintText: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], onEnter: [{
|
|
252
|
+
type: Output
|
|
253
|
+
}], onChange: [{
|
|
254
|
+
type: Output
|
|
255
|
+
}] } });
|
|
256
|
+
|
|
257
|
+
class LoadingIndicatorComponent {
|
|
258
|
+
constructor() {
|
|
259
|
+
this.faSpinner = faSpinner;
|
|
260
|
+
}
|
|
261
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoadingIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
262
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", 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"] }] }); }
|
|
263
|
+
}
|
|
264
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoadingIndicatorComponent, decorators: [{
|
|
265
|
+
type: Component,
|
|
266
|
+
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"] }]
|
|
267
|
+
}] });
|
|
268
|
+
|
|
269
|
+
class BaseModalComponent {
|
|
270
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: BaseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
271
|
+
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 }); }
|
|
272
|
+
}
|
|
273
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: BaseModalComponent, decorators: [{
|
|
274
|
+
type: Component,
|
|
275
|
+
args: [{
|
|
276
|
+
selector: 'app-base-modal',
|
|
277
|
+
template: ``,
|
|
278
|
+
standalone: true,
|
|
279
|
+
}]
|
|
280
|
+
}] });
|
|
281
|
+
|
|
282
|
+
class IconButtonDirective {
|
|
283
|
+
constructor() {
|
|
284
|
+
this.elementRef = inject((ElementRef));
|
|
285
|
+
}
|
|
286
|
+
set appIconButton(val) {
|
|
287
|
+
this.color = val || 'primary';
|
|
288
|
+
this.elementRef.nativeElement.classList.add(`icon-button-${this.color}`);
|
|
289
|
+
}
|
|
290
|
+
set shadow(val) {
|
|
291
|
+
if (val === true || val === undefined) {
|
|
292
|
+
this.elementRef.nativeElement.classList.add('shadow-sm');
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
this.elementRef.nativeElement.classList.remove('shadow-sm');
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
ngOnInit() {
|
|
299
|
+
this.elementRef.nativeElement.classList.add('btn', 'icon-button');
|
|
300
|
+
}
|
|
301
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IconButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
302
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: IconButtonDirective, isStandalone: true, selector: "button[app-icon-button]", inputs: { appIconButton: ["app-icon-button", "appIconButton"], shadow: "shadow" }, ngImport: i0 }); }
|
|
303
|
+
}
|
|
304
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IconButtonDirective, decorators: [{
|
|
305
|
+
type: Directive,
|
|
306
|
+
args: [{
|
|
307
|
+
selector: 'button[app-icon-button]',
|
|
308
|
+
standalone: true,
|
|
309
|
+
}]
|
|
310
|
+
}], propDecorators: { appIconButton: [{
|
|
311
|
+
type: Input,
|
|
312
|
+
args: ['app-icon-button']
|
|
313
|
+
}], shadow: [{
|
|
314
|
+
type: Input
|
|
315
|
+
}] } });
|
|
316
|
+
|
|
317
|
+
class ModalComponent {
|
|
318
|
+
constructor() {
|
|
319
|
+
this.title = '';
|
|
320
|
+
this.showClose = true;
|
|
321
|
+
this.onClose = new EventEmitter();
|
|
322
|
+
this.dialogCssClasses = [];
|
|
323
|
+
this.faTimes = faTimes;
|
|
324
|
+
}
|
|
325
|
+
set fullScreen(val) {
|
|
326
|
+
if (val === true) {
|
|
327
|
+
this.dialogCssClasses.push(`modal-fullscreen`);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
this.dialogCssClasses = this.dialogCssClasses.filter(cssClass => cssClass !== 'modal-fullscreen');
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
handleClickClose() {
|
|
334
|
+
this.onClose.next();
|
|
335
|
+
}
|
|
336
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
337
|
+
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"] }] }); }
|
|
338
|
+
}
|
|
339
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ModalComponent, decorators: [{
|
|
340
|
+
type: Component,
|
|
341
|
+
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" }]
|
|
342
|
+
}], propDecorators: { title: [{
|
|
343
|
+
type: Input
|
|
344
|
+
}], showClose: [{
|
|
345
|
+
type: Input
|
|
346
|
+
}], fullScreen: [{
|
|
347
|
+
type: Input
|
|
348
|
+
}], onClose: [{
|
|
349
|
+
type: Output
|
|
350
|
+
}] } });
|
|
351
|
+
|
|
352
|
+
class OffCanvasComponent {
|
|
353
|
+
constructor() {
|
|
354
|
+
this.title = '';
|
|
355
|
+
this.onClose = new EventEmitter();
|
|
356
|
+
this.faTimes = faTimes;
|
|
357
|
+
}
|
|
358
|
+
handleClickClose() {
|
|
359
|
+
this.onClose.next();
|
|
360
|
+
}
|
|
361
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: OffCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
362
|
+
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"] }] }); }
|
|
363
|
+
}
|
|
364
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: OffCanvasComponent, decorators: [{
|
|
365
|
+
type: Component,
|
|
366
|
+
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"] }]
|
|
367
|
+
}], propDecorators: { title: [{
|
|
368
|
+
type: Input
|
|
369
|
+
}], onClose: [{
|
|
370
|
+
type: Output
|
|
371
|
+
}] } });
|
|
372
|
+
|
|
373
|
+
class ToastComponent {
|
|
374
|
+
constructor() {
|
|
375
|
+
this.onClose = new EventEmitter();
|
|
376
|
+
}
|
|
377
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
378
|
+
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: `
|
|
379
|
+
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
380
|
+
<div class="d-flex">
|
|
381
|
+
<div class="toast-body" [innerHTML]="message"></div>
|
|
382
|
+
<button class="btn-close btn-close-white me-2 m-auto" (click)="onClose.next()"></button>
|
|
383
|
+
</div>
|
|
384
|
+
</div>
|
|
385
|
+
`, isInline: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }); }
|
|
386
|
+
}
|
|
387
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ToastComponent, decorators: [{
|
|
388
|
+
type: Component,
|
|
389
|
+
args: [{ selector: 'app-toast', template: `
|
|
390
|
+
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
391
|
+
<div class="d-flex">
|
|
392
|
+
<div class="toast-body" [innerHTML]="message"></div>
|
|
393
|
+
<button class="btn-close btn-close-white me-2 m-auto" (click)="onClose.next()"></button>
|
|
394
|
+
</div>
|
|
395
|
+
</div>
|
|
396
|
+
`, standalone: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }]
|
|
397
|
+
}], propDecorators: { message: [{
|
|
398
|
+
type: Input
|
|
399
|
+
}], onClose: [{
|
|
400
|
+
type: Output
|
|
401
|
+
}] } });
|
|
402
|
+
|
|
403
|
+
const Class = (className) => (obj) => {
|
|
404
|
+
Object.defineProperty(obj.prototype, 'className', {
|
|
405
|
+
value: className,
|
|
406
|
+
writable: false,
|
|
407
|
+
});
|
|
408
|
+
};
|
|
409
|
+
|
|
410
|
+
var LogType;
|
|
411
|
+
(function (LogType) {
|
|
412
|
+
LogType["log"] = "log";
|
|
413
|
+
LogType["info"] = "info";
|
|
414
|
+
LogType["warn"] = "warn";
|
|
415
|
+
LogType["debug"] = "debug";
|
|
416
|
+
LogType["error"] = "error";
|
|
417
|
+
})(LogType || (LogType = {}));
|
|
418
|
+
|
|
419
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
420
|
+
/* eslint-disable prefer-arrow/prefer-arrow-functions */
|
|
421
|
+
function Log(methodName, logType = LogType.log, logArgs) {
|
|
422
|
+
return function (target, key, descriptor) {
|
|
423
|
+
const method = descriptor.value;
|
|
424
|
+
descriptor.value = function (...args) {
|
|
425
|
+
const className = target.constructor.name;
|
|
426
|
+
const newMethodName = methodName || key;
|
|
427
|
+
let logStatements = [className, newMethodName];
|
|
428
|
+
if (logArgs && args && args.length > 0) {
|
|
429
|
+
logStatements = logStatements.concat(args);
|
|
430
|
+
}
|
|
431
|
+
// eslint-disable-next-line no-console
|
|
432
|
+
console[logType](...logStatements);
|
|
433
|
+
return method.apply(this, args);
|
|
434
|
+
};
|
|
435
|
+
return descriptor;
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
class AutofocusDirective {
|
|
440
|
+
constructor(el) {
|
|
441
|
+
this.el = el;
|
|
442
|
+
this.focus = true;
|
|
443
|
+
}
|
|
444
|
+
set autofocus(condition) {
|
|
445
|
+
this.focus = condition !== false;
|
|
446
|
+
}
|
|
447
|
+
ngAfterViewInit() {
|
|
448
|
+
if (this.focus) {
|
|
449
|
+
setTimeout(() => {
|
|
450
|
+
this.el.nativeElement.focus();
|
|
451
|
+
this.el.nativeElement.classList.add('focus-ring');
|
|
452
|
+
}, 100);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
456
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: AutofocusDirective, isStandalone: true, selector: "[autofocus]", inputs: { autofocus: "autofocus" }, ngImport: i0 }); }
|
|
457
|
+
}
|
|
458
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: AutofocusDirective, decorators: [{
|
|
459
|
+
type: Directive,
|
|
122
460
|
args: [{
|
|
123
|
-
selector: '
|
|
124
|
-
template: `
|
|
125
|
-
<div class="invalid-feedback d-block">
|
|
126
|
-
@if (errorMessages) {
|
|
127
|
-
@for (errorMessage of errorMessages; track $index) {
|
|
128
|
-
<div>{{ errorMessage }}</div>
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
</div>
|
|
132
|
-
`,
|
|
461
|
+
selector: '[autofocus]',
|
|
133
462
|
standalone: true,
|
|
134
|
-
imports: [CommonModule],
|
|
135
463
|
}]
|
|
136
|
-
}], propDecorators: {
|
|
464
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { autofocus: [{
|
|
137
465
|
type: Input
|
|
138
466
|
}] } });
|
|
139
467
|
|
|
@@ -312,7 +640,9 @@ class DropdownDirective {
|
|
|
312
640
|
this.isDropdownVisible = false;
|
|
313
641
|
}
|
|
314
642
|
onDocumentClick(event) {
|
|
315
|
-
if (this.wrapperElement &&
|
|
643
|
+
if (this.wrapperElement &&
|
|
644
|
+
!this.wrapperElement.contains(event.target) &&
|
|
645
|
+
!this.elementRef.nativeElement.contains(event.target)) {
|
|
316
646
|
this.closeDropdown();
|
|
317
647
|
}
|
|
318
648
|
}
|
|
@@ -339,424 +669,110 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
339
669
|
}], placement: [{
|
|
340
670
|
type: Input
|
|
341
671
|
}], 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');
|
|
438
|
-
}
|
|
439
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IconButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
440
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: IconButtonDirective, isStandalone: true, selector: "button[app-icon-button]", inputs: { appIconButton: ["app-icon-button", "appIconButton"], shadow: "shadow" }, ngImport: i0 }); }
|
|
441
|
-
}
|
|
442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: IconButtonDirective, decorators: [{
|
|
443
|
-
type: Directive,
|
|
444
|
-
args: [{
|
|
445
|
-
selector: 'button[app-icon-button]',
|
|
446
|
-
standalone: true,
|
|
447
|
-
}]
|
|
448
|
-
}], propDecorators: { appIconButton: [{
|
|
449
|
-
type: Input,
|
|
450
|
-
args: ['app-icon-button']
|
|
451
|
-
}], shadow: [{
|
|
452
|
-
type: Input
|
|
453
|
-
}] } });
|
|
454
|
-
|
|
455
|
-
class ListGroupItemAvatarDirective {
|
|
456
|
-
constructor() {
|
|
457
|
-
this.elementRef = inject((ElementRef));
|
|
458
|
-
}
|
|
459
|
-
ngOnInit() {
|
|
460
|
-
this.elementRef.nativeElement.classList.add('list-group-item-avatar');
|
|
461
|
-
}
|
|
462
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupItemAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
463
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: ListGroupItemAvatarDirective, isStandalone: true, selector: "[app-list-group-item-avatar]", ngImport: i0 }); }
|
|
464
|
-
}
|
|
465
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupItemAvatarDirective, decorators: [{
|
|
466
|
-
type: Directive,
|
|
467
|
-
args: [{
|
|
468
|
-
selector: '[app-list-group-item-avatar]',
|
|
469
|
-
standalone: true,
|
|
470
|
-
}]
|
|
471
|
-
}] });
|
|
472
|
-
|
|
473
|
-
class ListGroupItemDirective {
|
|
474
|
-
constructor() {
|
|
475
|
-
this.renderer = inject(Renderer2);
|
|
476
|
-
this.elementRef = inject((ElementRef));
|
|
477
|
-
this._isActive = false;
|
|
478
|
-
this.onOutsideClick = new EventEmitter();
|
|
479
|
-
}
|
|
480
|
-
set isActive(val) {
|
|
481
|
-
this._isActive = val;
|
|
482
|
-
if (val) {
|
|
483
|
-
this.elementRef.nativeElement.classList.add('focus-active');
|
|
484
|
-
}
|
|
485
|
-
else {
|
|
486
|
-
this.elementRef.nativeElement.classList.remove('focus-active');
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
ngOnInit() {
|
|
490
|
-
this.elementRef.nativeElement.classList.add('list-group-item');
|
|
491
|
-
this.elementRef.nativeElement.classList.add('list-group-item-action');
|
|
492
|
-
this.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');
|
|
493
|
-
this.renderer.listen('window', 'click', (e) => {
|
|
494
|
-
if (e.target !== this.elementRef.nativeElement) {
|
|
495
|
-
this._isActive = false;
|
|
496
|
-
this.elementRef.nativeElement.classList.remove('focus-active');
|
|
497
|
-
this.onOutsideClick.next();
|
|
498
|
-
}
|
|
499
|
-
});
|
|
500
|
-
}
|
|
501
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
502
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: ListGroupItemDirective, isStandalone: true, selector: "li[app-list-group-item]", inputs: { isActive: "isActive" }, outputs: { onOutsideClick: "onOutsideClick" }, ngImport: i0 }); }
|
|
503
|
-
}
|
|
504
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupItemDirective, decorators: [{
|
|
505
|
-
type: Directive,
|
|
506
|
-
args: [{
|
|
507
|
-
selector: 'li[app-list-group-item]',
|
|
508
|
-
standalone: true,
|
|
509
|
-
}]
|
|
510
|
-
}], propDecorators: { isActive: [{
|
|
511
|
-
type: Input
|
|
512
|
-
}], onOutsideClick: [{
|
|
513
|
-
type: Output
|
|
514
|
-
}] } });
|
|
515
|
-
|
|
516
|
-
class ListGroupDirective {
|
|
517
|
-
constructor() {
|
|
518
|
-
this.elementRef = inject((ElementRef));
|
|
519
|
-
}
|
|
520
|
-
ngOnInit() {
|
|
521
|
-
this.elementRef.nativeElement.classList.add('list-group');
|
|
522
|
-
this.elementRef.nativeElement.classList.add('list-group-flush');
|
|
523
|
-
}
|
|
524
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
525
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: ListGroupDirective, isStandalone: true, selector: "ul[app-list-group]", ngImport: i0 }); }
|
|
526
|
-
}
|
|
527
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupDirective, decorators: [{
|
|
528
|
-
type: Directive,
|
|
529
|
-
args: [{
|
|
530
|
-
selector: 'ul[app-list-group]',
|
|
531
|
-
standalone: true,
|
|
532
|
-
}]
|
|
533
|
-
}] });
|
|
534
|
-
|
|
535
|
-
class FormInputComponent {
|
|
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
|
|
672
|
+
type: HostListener,
|
|
673
|
+
args: ['click']
|
|
580
674
|
}] } });
|
|
581
675
|
|
|
582
|
-
class
|
|
676
|
+
class ListGroupItemAvatarDirective {
|
|
583
677
|
constructor() {
|
|
584
|
-
this.
|
|
678
|
+
this.elementRef = inject((ElementRef));
|
|
585
679
|
}
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
}
|
|
589
|
-
i0.ɵɵ
|
|
590
|
-
|
|
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 }); }
|
|
680
|
+
ngOnInit() {
|
|
681
|
+
this.elementRef.nativeElement.classList.add('list-group-item-avatar');
|
|
682
|
+
}
|
|
683
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupItemAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
684
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: ListGroupItemAvatarDirective, isStandalone: true, selector: "[app-list-group-item-avatar]", ngImport: i0 }); }
|
|
597
685
|
}
|
|
598
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type:
|
|
599
|
-
type:
|
|
686
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupItemAvatarDirective, decorators: [{
|
|
687
|
+
type: Directive,
|
|
600
688
|
args: [{
|
|
601
|
-
selector: 'app-
|
|
602
|
-
template: ``,
|
|
689
|
+
selector: '[app-list-group-item-avatar]',
|
|
603
690
|
standalone: true,
|
|
604
691
|
}]
|
|
605
692
|
}] });
|
|
606
693
|
|
|
607
|
-
class
|
|
694
|
+
class ListGroupItemDirective {
|
|
608
695
|
constructor() {
|
|
609
|
-
this.
|
|
610
|
-
this.
|
|
611
|
-
this.
|
|
612
|
-
this.
|
|
613
|
-
this.faTimes = faTimes;
|
|
696
|
+
this.renderer = inject(Renderer2);
|
|
697
|
+
this.elementRef = inject((ElementRef));
|
|
698
|
+
this._isActive = false;
|
|
699
|
+
this.onOutsideClick = new EventEmitter();
|
|
614
700
|
}
|
|
615
|
-
set
|
|
616
|
-
|
|
617
|
-
|
|
701
|
+
set isActive(val) {
|
|
702
|
+
this._isActive = val;
|
|
703
|
+
if (val) {
|
|
704
|
+
this.elementRef.nativeElement.classList.add('focus-active');
|
|
618
705
|
}
|
|
619
706
|
else {
|
|
620
|
-
this.
|
|
707
|
+
this.elementRef.nativeElement.classList.remove('focus-active');
|
|
621
708
|
}
|
|
622
709
|
}
|
|
623
|
-
|
|
624
|
-
this.
|
|
710
|
+
ngOnInit() {
|
|
711
|
+
this.elementRef.nativeElement.classList.add('list-group-item');
|
|
712
|
+
this.elementRef.nativeElement.classList.add('list-group-item-action');
|
|
713
|
+
this.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');
|
|
714
|
+
this.renderer.listen('window', 'click', (e) => {
|
|
715
|
+
if (e.target !== this.elementRef.nativeElement) {
|
|
716
|
+
this._isActive = false;
|
|
717
|
+
this.elementRef.nativeElement.classList.remove('focus-active');
|
|
718
|
+
this.onOutsideClick.next();
|
|
719
|
+
}
|
|
720
|
+
});
|
|
625
721
|
}
|
|
626
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type:
|
|
627
|
-
static { this.ɵ
|
|
722
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
723
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: ListGroupItemDirective, isStandalone: true, selector: "li[app-list-group-item]", inputs: { isActive: "isActive" }, outputs: { onOutsideClick: "onOutsideClick" }, ngImport: i0 }); }
|
|
628
724
|
}
|
|
629
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type:
|
|
630
|
-
type:
|
|
631
|
-
args: [{
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
}], fullScreen: [{
|
|
725
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupItemDirective, decorators: [{
|
|
726
|
+
type: Directive,
|
|
727
|
+
args: [{
|
|
728
|
+
selector: 'li[app-list-group-item]',
|
|
729
|
+
standalone: true,
|
|
730
|
+
}]
|
|
731
|
+
}], propDecorators: { isActive: [{
|
|
637
732
|
type: Input
|
|
638
|
-
}],
|
|
733
|
+
}], onOutsideClick: [{
|
|
639
734
|
type: Output
|
|
640
735
|
}] } });
|
|
641
736
|
|
|
642
|
-
class
|
|
737
|
+
class ListGroupDirective {
|
|
643
738
|
constructor() {
|
|
644
|
-
this.
|
|
645
|
-
this.onClose = new EventEmitter();
|
|
646
|
-
this.faTimes = faTimes;
|
|
739
|
+
this.elementRef = inject((ElementRef));
|
|
647
740
|
}
|
|
648
|
-
|
|
649
|
-
this.
|
|
741
|
+
ngOnInit() {
|
|
742
|
+
this.elementRef.nativeElement.classList.add('list-group');
|
|
743
|
+
this.elementRef.nativeElement.classList.add('list-group-flush');
|
|
650
744
|
}
|
|
651
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type:
|
|
652
|
-
static { this.ɵ
|
|
745
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
746
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: ListGroupDirective, isStandalone: true, selector: "ul[app-list-group]", ngImport: i0 }); }
|
|
653
747
|
}
|
|
654
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type:
|
|
655
|
-
type:
|
|
656
|
-
args: [{
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
}] } });
|
|
748
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ListGroupDirective, decorators: [{
|
|
749
|
+
type: Directive,
|
|
750
|
+
args: [{
|
|
751
|
+
selector: 'ul[app-list-group]',
|
|
752
|
+
standalone: true,
|
|
753
|
+
}]
|
|
754
|
+
}] });
|
|
662
755
|
|
|
663
|
-
class
|
|
756
|
+
class TooltipDirective {
|
|
664
757
|
constructor() {
|
|
665
|
-
this.
|
|
758
|
+
this.placement = 'bottom-start';
|
|
666
759
|
}
|
|
667
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type:
|
|
668
|
-
static { this.ɵ
|
|
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"] }); }
|
|
760
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
761
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: TooltipDirective, isStandalone: true, selector: "[appTooltip]", inputs: { tooltip: ["appTooltip", "tooltip"], placement: "placement" }, ngImport: i0 }); }
|
|
676
762
|
}
|
|
677
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type:
|
|
678
|
-
type:
|
|
679
|
-
args: [{
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
}], propDecorators: { message: [{
|
|
763
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
764
|
+
type: Directive,
|
|
765
|
+
args: [{
|
|
766
|
+
selector: '[appTooltip]',
|
|
767
|
+
standalone: true,
|
|
768
|
+
}]
|
|
769
|
+
}], propDecorators: { tooltip: [{
|
|
770
|
+
type: Input,
|
|
771
|
+
args: ['appTooltip']
|
|
772
|
+
}], placement: [{
|
|
688
773
|
type: Input
|
|
689
|
-
}], onClose: [{
|
|
690
|
-
type: Output
|
|
691
774
|
}] } });
|
|
692
775
|
|
|
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
776
|
class FormControlPipe {
|
|
761
777
|
transform(value) {
|
|
762
778
|
return value;
|
|
@@ -772,87 +788,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
772
788
|
}]
|
|
773
789
|
}] });
|
|
774
790
|
|
|
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
|
-
saveAs(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
791
|
class ImageService {
|
|
857
792
|
async compress(imageBase64, quality = 0.8, fileType = 'image/jpeg') {
|
|
858
793
|
const img = await this.load(imageBase64);
|
|
@@ -939,38 +874,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
939
874
|
args: [{ providedIn: 'root' }]
|
|
940
875
|
}] });
|
|
941
876
|
|
|
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' }); }
|
|
968
|
-
}
|
|
969
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: LoggerService, decorators: [{
|
|
970
|
-
type: Injectable,
|
|
971
|
-
args: [{ providedIn: 'root' }]
|
|
972
|
-
}] });
|
|
973
|
-
|
|
974
877
|
class ModalService {
|
|
975
878
|
init(viewContainerRef) {
|
|
976
879
|
this.portalHost = new DomPortalOutlet(document.body);
|
|
@@ -1058,85 +961,9 @@ class TokenService {
|
|
|
1058
961
|
}
|
|
1059
962
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: TokenService, decorators: [{
|
|
1060
963
|
type: Injectable,
|
|
1061
|
-
args: [{
|
|
1062
|
-
providedIn: 'root',
|
|
1063
|
-
}]
|
|
964
|
+
args: [{ providedIn: 'root' }]
|
|
1064
965
|
}], ctorParameters: () => [{ type: LocalService }] });
|
|
1065
966
|
|
|
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
967
|
function dateAfterValidator(startDateControlKey) {
|
|
1141
968
|
return (endDateControl) => {
|
|
1142
969
|
let result = null;
|
|
@@ -1188,10 +1015,12 @@ function timeAfterValidator(startTimeControlKey) {
|
|
|
1188
1015
|
const startTime = startTimeControl.value;
|
|
1189
1016
|
const endTime = control.value;
|
|
1190
1017
|
// Umwandlung der Zeit in Minuten (z.B. 20:00 Uhr = 1200 Minuten)
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1018
|
+
if (startTime && endTime) {
|
|
1019
|
+
const startMinutes = convertToMinutes(startTime);
|
|
1020
|
+
const endMinutes = convertToMinutes(endTime);
|
|
1021
|
+
if (endMinutes <= startMinutes) {
|
|
1022
|
+
result = { timeAfterError: startTimeControl.value };
|
|
1023
|
+
}
|
|
1195
1024
|
}
|
|
1196
1025
|
}
|
|
1197
1026
|
}
|
|
@@ -1212,5 +1041,5 @@ function convertToMinutes(time) {
|
|
|
1212
1041
|
* Generated bundle index. Do not edit.
|
|
1213
1042
|
*/
|
|
1214
1043
|
|
|
1215
|
-
export { BaseModalComponent, ButtonDirective, Class,
|
|
1044
|
+
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
1045
|
//# sourceMappingURL=ngx-gccb.mjs.map
|