ngx-gccb 0.33.2 → 0.35.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/assets/styles.scss +5 -1
- package/fesm2022/ngx-gccb.mjs +49 -45
- package/fesm2022/ngx-gccb.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngx-gccb.d.ts +4 -3
package/assets/styles.scss
CHANGED
|
@@ -37,6 +37,10 @@ $dark-hover: darken($dark, 20%);
|
|
|
37
37
|
&:hover {
|
|
38
38
|
cursor: pointer;
|
|
39
39
|
}
|
|
40
|
+
|
|
41
|
+
.list-group-item-avatar {
|
|
42
|
+
margin-right: 0.75rem;
|
|
43
|
+
}
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
.focus-active {
|
|
@@ -77,7 +81,7 @@ $dark-hover: darken($dark, 20%);
|
|
|
77
81
|
|
|
78
82
|
.dropdown-item {
|
|
79
83
|
padding: 0.75rem 1.25rem !important;
|
|
80
|
-
border-radius: var(--bs-dropdown-
|
|
84
|
+
border-radius: var(--bs-dropdown-border-radius, 0);
|
|
81
85
|
&:hover {
|
|
82
86
|
cursor: pointer;
|
|
83
87
|
}
|
package/fesm2022/ngx-gccb.mjs
CHANGED
|
@@ -7,7 +7,7 @@ import dayjs from 'dayjs';
|
|
|
7
7
|
import isoWeek from 'dayjs/plugin/isoWeek';
|
|
8
8
|
import * as i2$1 from '@angular/cdk/a11y';
|
|
9
9
|
import { ConfigurableFocusTrapFactory, A11yModule } from '@angular/cdk/a11y';
|
|
10
|
-
import { Overlay
|
|
10
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
11
11
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
12
12
|
import * as i2 from '@angular/forms';
|
|
13
13
|
import { UntypedFormGroup, UntypedFormControl, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
@@ -207,13 +207,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImpor
|
|
|
207
207
|
args: [{ selector: 'ngx-card', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass], template: "<div [ngClass]=\"getCssClasses()\"><ng-content /></div>\n" }]
|
|
208
208
|
}], propDecorators: { cssClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "cssClass", required: false }] }] } });
|
|
209
209
|
|
|
210
|
+
// TODO - solve problem with ngxTooltip in combination with ngxDropdown
|
|
210
211
|
class NgxDropdownDirective {
|
|
211
212
|
constructor() {
|
|
212
213
|
this.elementRef = inject(ElementRef);
|
|
213
214
|
this.viewContainerRef = inject(ViewContainerRef);
|
|
214
215
|
this.injector = inject(Injector);
|
|
215
216
|
this.overlay = inject(Overlay);
|
|
216
|
-
this.overlayPositionBuilder = inject(OverlayPositionBuilder);
|
|
217
217
|
this.focusTrapFactory = inject(ConfigurableFocusTrapFactory);
|
|
218
218
|
this.hostComponent = inject(FocusableHost, {
|
|
219
219
|
optional: true,
|
|
@@ -251,7 +251,7 @@ class NgxDropdownDirective {
|
|
|
251
251
|
positionStrategy: positionStrategy,
|
|
252
252
|
hasBackdrop: true,
|
|
253
253
|
backdropClass: 'cdk-overlay-transparent-backdrop',
|
|
254
|
-
scrollStrategy: this.overlay.scrollStrategies.
|
|
254
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
255
255
|
panelClass: 'ngx-dropdown-panel',
|
|
256
256
|
});
|
|
257
257
|
this.overlayRef.backdropClick().subscribe(() => this.hide());
|
|
@@ -262,26 +262,6 @@ class NgxDropdownDirective {
|
|
|
262
262
|
});
|
|
263
263
|
const portal = new TemplatePortal(this.ngxDropdown(), this.viewContainerRef, null, this.createChildInjector());
|
|
264
264
|
this.overlayRef.attach(portal);
|
|
265
|
-
if (this.placement() === 'bottom-end') {
|
|
266
|
-
requestAnimationFrame(() => {
|
|
267
|
-
const pane = this.overlayRef.overlayElement;
|
|
268
|
-
const inner = pane.querySelector('.ngx-dropdown-root') ??
|
|
269
|
-
pane.firstElementChild;
|
|
270
|
-
const measuringEl = inner ?? pane;
|
|
271
|
-
const bb = measuringEl?.getBoundingClientRect();
|
|
272
|
-
const width = bb?.width ?? measuringEl?.offsetWidth ?? 0;
|
|
273
|
-
this.overlayRef.updatePositionStrategy(this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([
|
|
274
|
-
{
|
|
275
|
-
originX: 'end',
|
|
276
|
-
originY: 'bottom',
|
|
277
|
-
overlayX: 'end',
|
|
278
|
-
overlayY: 'top',
|
|
279
|
-
offsetY: 3,
|
|
280
|
-
offsetX: -width,
|
|
281
|
-
},
|
|
282
|
-
]));
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
265
|
if (this.overlayRef.overlayElement) {
|
|
286
266
|
this.focusTrap = this.focusTrapFactory.create(this.overlayRef.overlayElement);
|
|
287
267
|
void this.focusTrap.focusInitialElementWhenReady();
|
|
@@ -311,31 +291,29 @@ class NgxDropdownDirective {
|
|
|
311
291
|
}
|
|
312
292
|
createPositionStrategy() {
|
|
313
293
|
const positions = [];
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
offsetY: 3,
|
|
330
|
-
});
|
|
331
|
-
}
|
|
294
|
+
positions.push({
|
|
295
|
+
originX: 'start',
|
|
296
|
+
originY: 'top',
|
|
297
|
+
overlayX: 'start',
|
|
298
|
+
overlayY: 'top',
|
|
299
|
+
offsetY: 3,
|
|
300
|
+
offsetX: 3,
|
|
301
|
+
});
|
|
302
|
+
positions.push({
|
|
303
|
+
originX: 'start',
|
|
304
|
+
originY: 'top',
|
|
305
|
+
overlayX: 'start',
|
|
306
|
+
overlayY: 'bottom',
|
|
307
|
+
offsetY: -3,
|
|
308
|
+
});
|
|
332
309
|
// Ankerpunkt ist der Host-Element
|
|
333
310
|
return this.overlay
|
|
334
311
|
.position()
|
|
335
312
|
.flexibleConnectedTo(this.elementRef)
|
|
336
313
|
.withPositions(positions)
|
|
337
314
|
.withFlexibleDimensions(true)
|
|
338
|
-
.withPush(true)
|
|
315
|
+
.withPush(true)
|
|
316
|
+
.withViewportMargin(8);
|
|
339
317
|
}
|
|
340
318
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: NgxDropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
341
319
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.3", type: NgxDropdownDirective, isStandalone: true, selector: "[ngxDropdown]", inputs: { ngxDropdown: { classPropertyName: "ngxDropdown", publicName: "ngxDropdown", isSignal: true, isRequired: true, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ngxDropdownItemSelected: "ngxDropdownItemSelected" }, host: { listeners: { "keydown.enter": "toggleDropdown()", "click": "toggleDropdown()", "document:keydown.escape": "handleKeyboardEvent()" } }, exportAs: ["ngxDropdown"], ngImport: i0 }); }
|
|
@@ -772,6 +750,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImpor
|
|
|
772
750
|
|
|
773
751
|
class NgxIconButtonComponent {
|
|
774
752
|
constructor() {
|
|
753
|
+
this.elementRef = inject(ElementRef);
|
|
775
754
|
this.svg = input.required(...(ngDevMode ? [{ debugName: "svg" }] : []));
|
|
776
755
|
this.type = input(...(ngDevMode ? [undefined, { debugName: "type" }] : []));
|
|
777
756
|
this.color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
@@ -792,12 +771,31 @@ class NgxIconButtonComponent {
|
|
|
792
771
|
return cssClasses.join(' ');
|
|
793
772
|
}, ...(ngDevMode ? [{ debugName: "getCssClasses" }] : []));
|
|
794
773
|
}
|
|
774
|
+
focus() {
|
|
775
|
+
const nativeButton = this.elementRef.nativeElement.querySelector('button');
|
|
776
|
+
if (nativeButton) {
|
|
777
|
+
nativeButton.focus();
|
|
778
|
+
}
|
|
779
|
+
else {
|
|
780
|
+
this.elementRef.nativeElement.focus();
|
|
781
|
+
}
|
|
782
|
+
}
|
|
795
783
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: NgxIconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
796
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.3", type: NgxIconButtonComponent, isStandalone: true, selector: "ngx-icon-button", inputs: { svg: { classPropertyName: "svg", publicName: "svg", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur" }, host: { classAttribute: "d-inline-flex align-items-center" },
|
|
784
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.3", type: NgxIconButtonComponent, isStandalone: true, selector: "ngx-icon-button", inputs: { svg: { classPropertyName: "svg", publicName: "svg", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur" }, host: { classAttribute: "d-inline-flex align-items-center" }, providers: [
|
|
785
|
+
{
|
|
786
|
+
provide: FocusableHost,
|
|
787
|
+
useExisting: forwardRef(() => NgxIconButtonComponent),
|
|
788
|
+
},
|
|
789
|
+
], ngImport: i0, template: "<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\">\n\t<ngx-icon [svg]=\"svg()\" />\n</button>\n", styles: [".icon-btn{display:flex;align-items:center;justify-content:center;min-width:40px;width:40px;height:40px;border-radius:100%;background-color:transparent;border-color:transparent}.icon-btn svg{max-width:20px;max-height:20px}\n"], dependencies: [{ kind: "component", type: NgxIconComponent, selector: "ngx-icon", inputs: ["svg", "size", "title", "ariaHidden", "class"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
797
790
|
}
|
|
798
791
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: NgxIconButtonComponent, decorators: [{
|
|
799
792
|
type: Component,
|
|
800
|
-
args: [{ selector: 'ngx-icon-button', host: { class: 'd-inline-flex align-items-center' }, imports: [NgxIconComponent, NgClass], changeDetection: ChangeDetectionStrategy.OnPush,
|
|
793
|
+
args: [{ selector: 'ngx-icon-button', host: { class: 'd-inline-flex align-items-center' }, imports: [NgxIconComponent, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
794
|
+
{
|
|
795
|
+
provide: FocusableHost,
|
|
796
|
+
useExisting: forwardRef(() => NgxIconButtonComponent),
|
|
797
|
+
},
|
|
798
|
+
], template: "<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\">\n\t<ngx-icon [svg]=\"svg()\" />\n</button>\n", styles: [".icon-btn{display:flex;align-items:center;justify-content:center;min-width:40px;width:40px;height:40px;border-radius:100%;background-color:transparent;border-color:transparent}.icon-btn svg{max-width:20px;max-height:20px}\n"] }]
|
|
801
799
|
}], propDecorators: { svg: [{ type: i0.Input, args: [{ isSignal: true, alias: "svg", required: true }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }], onClick: [{ type: i0.Output, args: ["onClick"] }], onFocus: [{ type: i0.Output, args: ["onFocus"] }], onBlur: [{ type: i0.Output, args: ["onBlur"] }] } });
|
|
802
800
|
|
|
803
801
|
class NgxListGroupItemAvatarDirective {
|
|
@@ -839,6 +837,7 @@ class NgxListGroupItemDirective {
|
|
|
839
837
|
this.elementRef.nativeElement.classList.add('list-group-item-action');
|
|
840
838
|
this.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');
|
|
841
839
|
this.elementRef.nativeElement.setAttribute('tabindex', '0');
|
|
840
|
+
this.listenerFn?.();
|
|
842
841
|
this.listenerFn = this.renderer.listen('window', 'click', (e) => {
|
|
843
842
|
if (e.target !== this.elementRef.nativeElement) {
|
|
844
843
|
this._isActive = false;
|
|
@@ -940,7 +939,12 @@ class NgxLoadingIndicatorService {
|
|
|
940
939
|
}
|
|
941
940
|
hide() {
|
|
942
941
|
if (this.componentRef) {
|
|
943
|
-
|
|
942
|
+
try {
|
|
943
|
+
this.componentRef.destroy();
|
|
944
|
+
}
|
|
945
|
+
finally {
|
|
946
|
+
this.componentRef = undefined;
|
|
947
|
+
}
|
|
944
948
|
}
|
|
945
949
|
}
|
|
946
950
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: NgxLoadingIndicatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-gccb.mjs","sources":["../../../projects/ngx-gccb/src/lib/animations/ngx-fade-right.animation.ts","../../../projects/ngx-gccb/src/lib/animations/ngx-fade-up.animation.ts","../../../projects/ngx-gccb/src/lib/interfaces/focusable-host.interface.ts","../../../projects/ngx-gccb/src/lib/components/ngx-button/ngx-button.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-button/ngx-button.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-calendar/ngx-calendar.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-calendar/ngx-calendar.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card-body.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card-body.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card-title.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card-title.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-dropdown/ngx-dropdown.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-dropdown/ngx-dropdown-item.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/components/ngx-form-errors/ngx-form-errors.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/ngx-form-control.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/directives/ngx-form-group.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/directives/ngx-form-input.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/directives/ngx-form-label.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/directives/ngx-form-select.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/ngx-as-form-control.pipe.ts","../../../projects/ngx-gccb/src/lib/directives/ngx-autofocus.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/pipes/ngx-is-form-control.pipe.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/pipes/ngx-is-form-group.pipe.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/ngx-form.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/ngx-form.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-icon/ngx-icon.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-icon-button/ngx-icon-button.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-icon-button/ngx-icon-button.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-list-group/ngx-list-group-item-avatar.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-list-group/ngx-list-group-item.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-list-group/ngx-list-group.directive.ts","../../../projects/ngx-gccb/src/lib/lib.icons.ts","../../../projects/ngx-gccb/src/lib/components/ngx-loading-indicator/ngx-loading-indicator.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-loading-indicator/ngx-loading-indicator.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-loading-indicator/ngx-loading-indicator.service.ts","../../../projects/ngx-gccb/src/lib/components/ngx-modal/ngx-base-modal.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-tooltip/ngx-tooltip.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-modal/ngx-modal.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-modal/ngx-modal.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-modal/ngx-modal.service.ts","../../../projects/ngx-gccb/src/lib/components/ngx-off-canvas/ngx-off-canvas.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-off-canvas/ngx-off-canvas.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tab-content.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tab-content.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tab.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tab.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tabs.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tabs.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-toast/ngx-toast.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-toast/ngx-toast.service.ts","../../../projects/ngx-gccb/src/lib/decorators/ngx-class.decorator.ts","../../../projects/ngx-gccb/src/lib/decorators/ngx-logtype.enum.ts","../../../projects/ngx-gccb/src/lib/decorators/ngx-log.decorator.ts","../../../projects/ngx-gccb/src/lib/directives/ngx-col.directive.ts","../../../projects/ngx-gccb/src/lib/services/ngx-image.service.ts","../../../projects/ngx-gccb/src/lib/validators/ngx-dateAfter.validator.ts","../../../projects/ngx-gccb/src/lib/validators/ngx-match.validator.ts","../../../projects/ngx-gccb/src/lib/validators/ngx-timeAfter.validator.ts","../../../projects/ngx-gccb/src/ngx-gccb.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const NgxFadeRightAnimation: AnimationTriggerMetadata = trigger('ngxFadeRightAnimation', [\n\ttransition(':enter', [\n\t\tstyle({ transform: 'translateX(-100%)', zIndex: 9999 }),\n\t\tanimate('200ms ease-in', style({ transform: 'translateX(0%)' })),\n\t]),\n\ttransition(':leave', [animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))]),\n]);\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const NgxFadeAnimation: AnimationTriggerMetadata = trigger('ngxFadeAnimation', [\n\ttransition(':enter', [\n\t\tstyle({ opacity: 0, transform: 'translateY(10px)' }),\n\t\tanimate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),\n\t]),\n\ttransition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),\n]);\n","export abstract class FocusableHost {\n\t/** Setzt den Fokus auf das native, fokussierbare Element der Komponente. */\n\tabstract focus(): void;\n}\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInputSignal,\n\tOutputEmitterRef,\n\tProvider,\n\tSignal,\n\tcomputed,\n\tforwardRef,\n\tinject,\n\tinput,\n\toutput,\n} from '@angular/core';\nimport { FocusableHost } from '../../interfaces/focusable-host.interface';\nimport { TColor, TSize } from '../../types';\n\nconst HOST_COMPONENT_PROVIDER: Provider = {\n\tprovide: FocusableHost,\n\tuseExisting: forwardRef(() => NgxButtonComponent),\n};\n\n// TODO - display block\n@Component({\n\tselector: 'ngx-button',\n\ttemplateUrl: './ngx-button.component.html',\n\thost: { class: 'd-inline-flex align-items-center' },\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [HOST_COMPONENT_PROVIDER],\n\timports: [NgClass],\n})\nexport class NgxButtonComponent {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n\tcssClass: InputSignal<string> = input('');\n\ttype: InputSignal<string | undefined> = input();\n\tcolor: InputSignal<TColor> = input<TColor>('primary');\n\tsize: InputSignal<TSize> = input<TSize>('md');\n\tvariant: InputSignal<'contained' | 'outline' | 'text'> = input<\n\t\t'contained' | 'outline' | 'text'\n\t>('contained');\n\tdisabled: InputSignal<boolean | undefined> = input();\n\tshadow: InputSignal<boolean | undefined> = input();\n\n\tonClick: OutputEmitterRef<MouseEvent> = output();\n\tonFocus: OutputEmitterRef<FocusEvent> = output();\n\tonBlur: OutputEmitterRef<FocusEvent> = output();\n\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = ['btn', 'flex-shrink-0'];\n\n\t\tif (this.variant() === 'outline' || this.variant() === 'text') {\n\t\t\tcssClasses.push(`btn-${this.variant()}-${this.color()}`);\n\t\t} else {\n\t\t\tcssClasses.push(`btn-${this.color()}`);\n\t\t}\n\n\t\tif (this.shadow()) {\n\t\t\tcssClasses.push('shadow-sm');\n\t\t}\n\t\tcssClasses.push(`btn-${this.size() || 'sm'}`);\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n\n\tpublic focus(): void {\n\t\tconst nativeButton: HTMLButtonElement | null =\n\t\t\tthis.elementRef.nativeElement.querySelector('button');\n\t\tif (nativeButton) {\n\t\t\tnativeButton.focus();\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.focus();\n\t\t}\n\t}\n}\n","<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\">\n\t<ng-content />\n</button>\n","import { NgClass } from '@angular/common';\nimport {\n\tComponent,\n\tcomputed,\n\tinput,\n\tInputSignal,\n\tOnInit,\n\toutput,\n\tOutputEmitterRef,\n\tSignal,\n} from '@angular/core';\nimport dayjs from 'dayjs';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport { NgxButtonComponent } from '../ngx-button/ngx-button.component';\ndayjs.extend(isoWeek);\n\n@Component({\n\tselector: 'ngx-calendar',\n\ttemplateUrl: './ngx-calendar.component.html',\n\tstyles: `\n\t\t.day {\n\t\t\t&:hover {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\t`,\n\timports: [NgxButtonComponent, NgClass],\n})\nexport class CalendarComponent implements OnInit {\n\tonDaySelected: OutputEmitterRef<dayjs.Dayjs> = output<dayjs.Dayjs>();\n\n\tcssClass: InputSignal<string> = input('');\n\n\tweekdayHeaders: string[] = [];\n\tcurrentMonth: dayjs.Dayjs = dayjs();\n\tweeks: dayjs.Dayjs[][] = [];\n\tselectedDay: dayjs.Dayjs | null = null;\n\thoveredDay: dayjs.Dayjs | null = null;\n\n\tngOnInit(): void {\n\t\tthis.init();\n\t}\n\n\tinit(): void {\n\t\tconst startOfMonth: dayjs.Dayjs = this.currentMonth.startOf('month');\n\t\tconst endOfMonth: dayjs.Dayjs = this.currentMonth.endOf('month');\n\n\t\tconst startDate: dayjs.Dayjs = startOfMonth.startOf('isoWeek');\n\t\tconst endDate: dayjs.Dayjs = endOfMonth.endOf('isoWeek');\n\n\t\tthis.weekdayHeaders = Array.from({ length: 7 }, (_, i) =>\n\t\t\tstartDate.add(i, 'day').format('dd')\n\t\t);\n\n\t\tlet date: dayjs.Dayjs = startDate.clone();\n\t\tconst calendar: dayjs.Dayjs[][] = [];\n\n\t\twhile (date.isBefore(endDate, 'day')) {\n\t\t\tconst week: dayjs.Dayjs[] = [];\n\n\t\t\tfor (let i: number = 0; i < 7; i++) {\n\t\t\t\tweek.push(date.clone());\n\t\t\t\tdate = date.add(1, 'day');\n\t\t\t}\n\n\t\t\tcalendar.push(week);\n\t\t}\n\n\t\tthis.weeks = calendar;\n\t}\n\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = [\n\t\t\t'd-flex',\n\t\t\t'justify-content-between',\n\t\t\t'align-items-center',\n\t\t\t'mb-3',\n\t\t];\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n\n\tonSelectDay(day: dayjs.Dayjs): void {\n\t\tthis.selectedDay = day;\n\t\tthis.onDaySelected.emit(this.selectedDay);\n\t}\n\n\tpreviousMonth(): void {\n\t\tthis.currentMonth = this.currentMonth.subtract(1, 'month');\n\t\tthis.init();\n\t}\n\n\tnextMonth(): void {\n\t\tthis.currentMonth = this.currentMonth.add(1, 'month');\n\t\tthis.init();\n\t}\n\n\tisToday(date: dayjs.Dayjs): boolean {\n\t\treturn date.isSame(dayjs(), 'day');\n\t}\n\n\tisCurrentMonth(date: dayjs.Dayjs): boolean {\n\t\treturn date.isSame(this.currentMonth, 'month');\n\t}\n\n\tisSelected(day: dayjs.Dayjs): boolean {\n\t\treturn this.selectedDay?.isSame(day, 'day') || false;\n\t}\n}\n","<div [ngClass]=\"getCssClasses()\">\n\t<ngx-button variant=\"outline\" (click)=\"previousMonth()\">«</ngx-button>\n\t<h4 class=\"m-0\">\n\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t</h4>\n\t<ngx-button variant=\"outline\" (click)=\"nextMonth()\">»</ngx-button>\n</div>\n\n<div class=\"table-responsive\">\n\t<table class=\"table table-bordered text-center\">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t@for (weekdayHeader of weekdayHeaders; track weekdayHeader) {\n\t\t\t\t\t<th>{{ weekdayHeader }}</th>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t[class.bg-light]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t[class.bg-primary]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t[class.text-white]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t[class.bg-dark-subtle]=\"isToday(day)\"\n\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t}\n\t\t</tbody>\n\t</table>\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinput,\n\tInputSignal,\n\tSignal,\n} from '@angular/core';\n\n@Component({\n\tselector: 'ngx-card-body',\n\ttemplateUrl: './ngx-card-body.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgClass],\n})\nexport class NgxCardBodyComponent {\n\tcssClass: InputSignal<string> = input('');\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = ['card-body'];\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n}\n","<div [ngClass]=\"getCssClasses()\"><ng-content /></div>\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinput,\n\tInputSignal,\n\tSignal,\n} from '@angular/core';\n\n@Component({\n\tselector: 'ngx-card-title',\n\ttemplateUrl: './ngx-card-title.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgClass],\n})\nexport class NgxCardTitleComponent {\n\tcssClass: InputSignal<string> = input('');\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = ['card-title'];\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n}\n","<h5 [ngClass]=\"getCssClasses()\"><ng-content /></h5>\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinput,\n\tInputSignal,\n\tSignal,\n} from '@angular/core';\n\n@Component({\n\tselector: 'ngx-card',\n\ttemplateUrl: './ngx-card.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgClass],\n})\nexport class NgxCardComponent {\n\tcssClass: InputSignal<string> = input('');\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = ['card'];\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n}\n","<div [ngClass]=\"getCssClasses()\"><ng-content /></div>\n","import { ConfigurableFocusTrapFactory, FocusTrap } from '@angular/cdk/a11y';\nimport {\n\tConnectionPositionPair,\n\tOverlay,\n\tOverlayPositionBuilder,\n\tOverlayRef,\n\tPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n\tDirective,\n\tElementRef,\n\tHostListener,\n\tinject,\n\tInjector,\n\tinput,\n\tInputSignal,\n\tOnDestroy,\n\toutput,\n\tOutputEmitterRef,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\nimport { FocusableHost } from '../../interfaces/focusable-host.interface';\n\n@Directive({\n\tselector: '[ngxDropdown]',\n\texportAs: 'ngxDropdown',\n})\nexport class NgxDropdownDirective implements OnDestroy {\n\tprivate readonly elementRef: ElementRef = inject(ElementRef);\n\tprivate readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n\tprivate readonly injector: Injector = inject(Injector);\n\tprivate readonly overlay: Overlay = inject(Overlay);\n\tprivate readonly overlayPositionBuilder: OverlayPositionBuilder =\n\t\tinject(OverlayPositionBuilder);\n\tprivate readonly focusTrapFactory: ConfigurableFocusTrapFactory = inject(\n\t\tConfigurableFocusTrapFactory\n\t);\n\tprivate readonly hostComponent: FocusableHost | null = inject(FocusableHost, {\n\t\toptional: true,\n\t});\n\n\tngxDropdown: InputSignal<TemplateRef<unknown>> = input.required();\n\tngxDropdownItemSelected: OutputEmitterRef<unknown> = output();\n\tplacement: InputSignal<'bottom-start' | 'bottom-end'> = input<'bottom-start' | 'bottom-end'>(\n\t\t'bottom-start'\n\t);\n\tprivate overlayRef?: OverlayRef;\n\tprivate isDropdownVisible: boolean = false;\n\tprivate focusTrap?: FocusTrap;\n\n\tngOnDestroy(): void {\n\t\tthis.hide();\n\t}\n\n\t@HostListener('keydown.enter')\n\t@HostListener('click')\n\ttoggleDropdown(): void {\n\t\tif (this.isDropdownVisible) {\n\t\t\tthis.hide();\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\t@HostListener('document:keydown.escape')\n\thandleKeyboardEvent(): void {\n\t\tthis.hide();\n\t}\n\n\t/** ngx-dropdown-item will trigger this */\n\thandleSelection(value: unknown): void {\n\t\tthis.ngxDropdownItemSelected.emit(value);\n\t\tthis.hide();\n\t}\n\n\tprivate show(): void {\n\t\tif (this.isDropdownVisible) {\n\t\t\treturn;\n\t\t}\n\t\tconst positionStrategy: PositionStrategy = this.createPositionStrategy();\n\n\t\tthis.overlayRef = this.overlay.create({\n\t\t\tpositionStrategy: positionStrategy,\n\t\t\thasBackdrop: true,\n\t\t\tbackdropClass: 'cdk-overlay-transparent-backdrop',\n\t\t\tscrollStrategy: this.overlay.scrollStrategies.block(), //.reposition(),\n\t\t\tpanelClass: 'ngx-dropdown-panel',\n\t\t});\n\t\tthis.overlayRef.backdropClick().subscribe(() => this.hide());\n\t\tthis.overlayRef.keydownEvents().subscribe(event => {\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t});\n\t\tconst portal: TemplatePortal<unknown> = new TemplatePortal(\n\t\t\tthis.ngxDropdown(),\n\t\t\tthis.viewContainerRef,\n\t\t\tnull,\n\t\t\tthis.createChildInjector()\n\t\t);\n\t\tthis.overlayRef!.attach(portal);\n\n\t\tif (this.placement() === 'bottom-end') {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst pane: HTMLElement = this.overlayRef!.overlayElement;\n\t\t\t\tconst inner: HTMLElement | null =\n\t\t\t\t\tpane.querySelector<HTMLElement>('.ngx-dropdown-root') ??\n\t\t\t\t\t(pane.firstElementChild as HTMLElement | null);\n\n\t\t\t\tconst measuringEl: HTMLElement = inner ?? pane;\n\t\t\t\tconst bb: DOMRect = measuringEl?.getBoundingClientRect();\n\t\t\t\tconst width: number = bb?.width ?? measuringEl?.offsetWidth ?? 0;\n\t\t\t\tthis.overlayRef!.updatePositionStrategy(\n\t\t\t\t\tthis.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\toriginX: 'end',\n\t\t\t\t\t\t\toriginY: 'bottom',\n\t\t\t\t\t\t\toverlayX: 'end',\n\t\t\t\t\t\t\toverlayY: 'top',\n\t\t\t\t\t\t\toffsetY: 3,\n\t\t\t\t\t\t\toffsetX: -width,\n\t\t\t\t\t\t},\n\t\t\t\t\t])\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tif (this.overlayRef!.overlayElement) {\n\t\t\tthis.focusTrap = this.focusTrapFactory.create(this.overlayRef!.overlayElement);\n\t\t\tvoid this.focusTrap.focusInitialElementWhenReady();\n\t\t}\n\n\t\tthis.isDropdownVisible = true;\n\t}\n\n\tprivate hide(): void {\n\t\tif (this.overlayRef) {\n\t\t\tthis.focusTrap?.destroy();\n\t\t\tthis.focusTrap = undefined;\n\n\t\t\tthis.overlayRef.dispose();\n\t\t\tthis.overlayRef = undefined;\n\n\t\t\tif (this.hostComponent) {\n\t\t\t\tthis.hostComponent.focus();\n\t\t\t} else {\n\t\t\t\tthis.elementRef.nativeElement.focus();\n\t\t\t}\n\t\t}\n\t\tthis.isDropdownVisible = false;\n\t}\n\n\tprivate createChildInjector(): Injector {\n\t\treturn Injector.create({\n\t\t\tproviders: [{ provide: NgxDropdownDirective, useValue: this }],\n\t\t\tparent: this.injector,\n\t\t});\n\t}\n\n\tprivate createPositionStrategy(): PositionStrategy {\n\t\tconst positions: ConnectionPositionPair[] = [];\n\t\tif (this.placement() === 'bottom-start') {\n\t\t\tpositions.push({\n\t\t\t\toriginX: 'start',\n\t\t\t\toriginY: 'bottom',\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t\toffsetY: 3,\n\t\t\t});\n\t\t} else if (this.placement() === 'bottom-end') {\n\t\t\tpositions.push({\n\t\t\t\toriginX: 'end',\n\t\t\t\toriginY: 'bottom',\n\t\t\t\toverlayX: 'end',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t\toffsetY: 3,\n\t\t\t});\n\t\t}\n\n\t\t// Ankerpunkt ist der Host-Element\n\t\treturn this.overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.elementRef)\n\t\t\t.withPositions(positions)\n\t\t\t.withFlexibleDimensions(true)\n\t\t\t.withPush(true);\n\t}\n}\n","import { Directive, HostListener, inject, input, InputSignal } from '@angular/core';\nimport { NgxDropdownDirective } from './ngx-dropdown.directive'; // Pfad anpassen\n\n@Directive({\n\tselector: '[ngxDropdownItem]',\n\tstandalone: true,\n\thost: {\n\t\ttabindex: '0',\n\t\trole: 'menuitem',\n\t},\n})\nexport class NgxDropdownItemDirective {\n\tprivate readonly dropdown: NgxDropdownDirective = inject(NgxDropdownDirective);\n\tvalue: InputSignal<unknown> = input<unknown>();\n\n\t@HostListener('click', ['$event'])\n\tonClick(event: MouseEvent): void {\n\t\tevent.stopPropagation();\n\t\tthis.dropdown.handleSelection(this.value());\n\t}\n\n\t@HostListener('keydown.enter', ['$event'])\n\tonKeyDown(event: Event): void {\n\t\tevent.preventDefault();\n\t\tthis.dropdown.handleSelection(this.value());\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, input, InputSignal, Signal } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\n@Component({\n\tselector: 'ngx-form-errors',\n\ttemplate: `\n\t\t@if (errorMessages()) {\n\t\t\t<div class=\"invalid-feedback d-block\">\n\t\t\t\t@for (errorMessage of errorMessages(); track $index) {\n\t\t\t\t\t<div>{{ errorMessage }}</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t`,\n\timports: [],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxFormErrorsComponent {\n\tisDirty: InputSignal<boolean> = input(false);\n\terrors: InputSignal<ValidationErrors | null> = input<ValidationErrors | null>(null);\n\n\terrorMessages: Signal<string[]> = computed(() => {\n\t\tconst result: string[] = [];\n\t\tif (this.isDirty() && this.errors()) {\n\t\t\tfor (const key in this.errors()) {\n\t\t\t\tif (this.errorMessageDictionary[key]) {\n\t\t\t\t\tresult.push(this.errorMessageDictionary[key](this.errors() as ValidationErrors));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t});\n\n\terrorMessageDictionary: IErrorMessage = {\n\t\trequired: () => 'Field is required',\n\t\trequiredTrue: () => 'Field is required',\n\t\temail: () => 'Invalid E-Mail',\n\t\tmin: (errors: ValidationErrors) => `At least ${errors['min']?.requiredLength} characters are required`,\n\t\tminlength: (errors: ValidationErrors) => `At least ${errors['minlength']?.requiredLength} characters are required`,\n\t\tmax: (errors: ValidationErrors) => `Maximum of ${errors['max']?.requiredLength} characters exceeded`,\n\t\tmaxlength: (errors: ValidationErrors) => `Maximum of ${errors['maxlength']?.requiredLength} characters exceeded`,\n\t\tpattern: () => `Input does not match pattern`,\n\t\tdateAfterInvalid: (errors: ValidationErrors) => `Date must be after ${errors?.['startDateValue']}`,\n\t\tmatch: () => `Input does not match!`,\n\t\ttimeAfterError: (errors: ValidationErrors) => `The time must be after ${errors?.['timeAfterError']}`,\n\t};\n}\n\ninterface IErrorMessage {\n\t[key: string]: (error: ValidationErrors) => string;\n}\n","import { AbstractControlOptions, AsyncValidatorFn, UntypedFormControl, UntypedFormGroup, ValidatorFn } from '@angular/forms';\nimport { IFormControlConfig, IOption } from './ngx-form.interfaces';\n\nexport class NgxFormGroup extends UntypedFormGroup {\n\toverride controls!: {\n\t\t[key: string]: NgxFormControl | NgxFormGroup;\n\t};\n}\n\nexport class NgxFormControl extends UntypedFormControl {\n\tconfig?: IFormControlConfig;\n\n\tconstructor(\n\t\tformState: unknown,\n\t\tvalidatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions,\n\t\tasyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null,\n\t\tconfig?: IFormControlConfig\n\t) {\n\t\tsuper(formState, validatorOrOpts, asyncValidator);\n\t\tthis.config = config;\n\t}\n\n\tupdateSelecOptions(options: IOption[]): void {\n\t\tif (this.config?.selectConfig?.options) {\n\t\t\tthis.config.selectConfig.options = [...options];\n\t\t}\n\t}\n}\n","import { Directive, input, InputSignal } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup } from '@angular/forms';\nimport { NgxFormControl, NgxFormGroup } from '../ngx-form-control';\n\n@Directive({\n\tselector: '[ngxFormGroup]',\n\texportAs: 'ngxFormGroup',\n})\nexport class NgxFormGroupDirective {\n\tformGroup: InputSignal<NgxFormGroup | FormGroup> = input.required();\n\tvalidateOnChange: InputSignal<boolean> = input(true);\n\n\tvalidateForm(): void {\n\t\tObject.keys(this.formGroup().controls).forEach(key => {\n\t\t\tconst control: AbstractControl | null = this.formGroup().get(key);\n\t\t\tif (control instanceof NgxFormControl || control instanceof FormControl) {\n\t\t\t\tthis.formGroup().get(key)?.markAsTouched({ onlySelf: true });\n\t\t\t\tthis.formGroup().get(key)?.markAsDirty({ onlySelf: true });\n\t\t\t\tthis.formGroup().get(key)?.updateValueAndValidity({ onlySelf: true });\n\t\t\t} else if (control instanceof NgxFormGroup || control instanceof FormGroup) {\n\t\t\t\tObject.keys(control.controls).forEach(subKey => {\n\t\t\t\t\tcontrol.get(subKey)?.markAsTouched({ onlySelf: true });\n\t\t\t\t\tcontrol.get(subKey)?.markAsDirty({ onlySelf: true });\n\t\t\t\t\tcontrol.get(subKey)?.updateValueAndValidity({ onlySelf: true });\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tresetForm(): void {\n\t\tthis.formGroup().setErrors({});\n\t\tthis.formGroup().reset();\n\n\t\tObject.keys(this.formGroup().controls).forEach(key => {\n\t\t\tthis.formGroup().get(key)?.markAsUntouched({ onlySelf: true });\n\t\t});\n\t}\n\n\t// TODO - disable form\n}\n","import { Directive, ElementRef, InputSignal, OnInit, Renderer2, effect, inject, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { debounceTime } from 'rxjs';\n\n@Directive({ selector: '[ngxFormInput]' })\nexport class NgxFormInputDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\tprivate readonly renderer2: Renderer2 = inject(Renderer2);\n\n\tngxFormInput: InputSignal<string> = input.required();\n\tformControl: InputSignal<FormControl | undefined> = input();\n\tid: InputSignal<string | undefined> = input();\n\tname: InputSignal<string | undefined> = input();\n\ttype: InputSignal<string | undefined> = input();\n\tplaceholder: InputSignal<string | undefined> = input();\n\tisFloatingLabel: InputSignal<boolean> = input(true);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst fc: FormControl<unknown> | undefined = this.formControl();\n\t\t\tif (fc && this.type() === 'checkbox') {\n\t\t\t\tconst native: HTMLInputElement = this.elementRef.nativeElement as HTMLInputElement;\n\t\t\t\tnative.checked = fc.value === true;\n\t\t\t}\n\n\t\t\tthis.checkIsValid();\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tif (this.type() === 'select') {\n\t\t\tthis.elementRef.nativeElement.classList.add('form-select');\n\t\t} else if (this.type() === 'checkbox') {\n\t\t\tthis.elementRef.nativeElement.classList.add('form-check-input');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.add('form-control');\n\t\t}\n\n\t\tif (this.type()) {\n\t\t\tthis.elementRef.nativeElement.setAttribute('type', this.type()!);\n\t\t}\n\n\t\tthis.elementRef.nativeElement.setAttribute('placeholder', this.placeholder() ?? (this.name() || this.ngxFormInput()));\n\n\t\tif (this.id() ?? (this.name() || this.ngxFormInput())) {\n\t\t\tthis.elementRef.nativeElement.setAttribute('id', this.id() ?? (this.name() || this.ngxFormInput()));\n\t\t}\n\n\t\tthis.elementRef.nativeElement.setAttribute('name', this.name() || this.ngxFormInput());\n\n\t\tconst parent: ParentNode | null = this.elementRef.nativeElement.parentNode;\n\t\tif (this.isFloatingLabel() && this.type() !== 'checkbox') {\n\t\t\t// && this.type() !== 'textarea'\n\t\t\tthis.renderer2.addClass(parent, 'form-floating');\n\t\t}\n\n\t\tif (this.type() === 'checkbox') {\n\t\t\tthis.renderer2.addClass(parent, 'form-check');\n\t\t}\n\n\t\tthis.formControl()\n\t\t\t?.valueChanges.pipe(debounceTime(100))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.checkIsValid();\n\t\t\t});\n\t}\n\n\tcheckIsValid(): void {\n\t\tif (this.formControl()?.touched && this.formControl()?.invalid) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({ selector: 'label[ngxFormLabel]' })\nexport class NgxFormLabelDirective {\n\t@HostBinding('class')\n\telementClass: string = 'form-label';\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({ selector: 'select[ngxFormSelect]' })\nexport class NgxFormSelectDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n\t@Input() set formInputInvalid(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('form-select');\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Pipe({ name: 'ngxAsFormControl' })\nexport class NgxFormControlPipe implements PipeTransform {\n\ttransform(value: AbstractControl): FormControl<(typeof value)['value']> {\n\t\treturn value as FormControl<(typeof value)['value']>;\n\t}\n}\n","import { AfterViewInit, Directive, ElementRef, inject, input, InputSignal, NgZone } from '@angular/core';\n\n@Directive({ selector: '[ngxAutofocus]' })\nexport class NgxAutofocusDirective implements AfterViewInit {\n\tprivate readonly ngZone: NgZone = inject(NgZone);\n\tprivate readonly el: ElementRef = inject(ElementRef);\n\tngxAutofocus: InputSignal<boolean> = input(false);\n\n\tngAfterViewInit(): void {\n\t\tif (this.ngxAutofocus()) {\n\t\t\tthis.ngZone.runOutsideAngular(() => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.el.nativeElement.focus();\n\t\t\t\t}, 0);\n\t\t\t});\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { NgxFormControl } from '../ngx-form-control';\n\n@Pipe({ name: 'appIsFormControl' })\nexport class AppIsFormControlPipe implements PipeTransform {\n\ttransform(value: AbstractControl): NgxFormControl {\n\t\treturn value as NgxFormControl;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { NgxFormGroup } from '../ngx-form-control';\n\n@Pipe({ name: 'ngxIsFormGroup' })\nexport class NgxIsFormGroupPipe implements PipeTransform {\n\ttransform(value: AbstractControl): NgxFormGroup {\n\t\treturn value as NgxFormGroup;\n\t}\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinput,\n\tInputSignal,\n\toutput,\n\tOutputEmitterRef,\n\tSignal,\n\tviewChild,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NgxAutofocusDirective } from '../../directives/ngx-autofocus.directive';\nimport { NgxFormErrorsComponent } from './components/ngx-form-errors/ngx-form-errors.component';\nimport { NgxFormGroupDirective } from './directives/ngx-form-group.directive';\nimport { NgxFormInputDirective } from './directives/ngx-form-input.directive';\nimport { NgxFormLabelDirective } from './directives/ngx-form-label.directive';\nimport { NgxFormControl, NgxFormGroup } from './ngx-form-control';\nimport { AppIsFormControlPipe, NgxIsFormGroupPipe } from './pipes';\n\n@Component({\n\tselector: 'ngx-form',\n\ttemplateUrl: './ngx-form.component.html',\n\timports: [\n\t\tCommonModule,\n\t\tReactiveFormsModule,\n\t\tNgxFormGroupDirective,\n\t\tNgxFormLabelDirective,\n\t\tNgxFormErrorsComponent,\n\t\tNgxFormInputDirective,\n\t\tAppIsFormControlPipe,\n\t\tNgxIsFormGroupPipe,\n\t\tNgxAutofocusDirective,\n\t\tNgClass,\n\t],\n\tstyles: `\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxFormComponent {\n\tformGroup: InputSignal<NgxFormGroup> = input.required();\n\tcssClass: InputSignal<string> = input('');\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = [''];\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n\n\tformGroupDirective: Signal<NgxFormGroupDirective | undefined> =\n\t\tviewChild(NgxFormGroupDirective);\n\tonValidated: OutputEmitterRef<void> = output();\n\n\tisFormControl(control: NgxFormControl | NgxFormGroup): boolean {\n\t\treturn control instanceof NgxFormControl;\n\t}\n\n\tvalidate(): void {\n\t\tthis.formGroupDirective()?.validateForm();\n\t\tthis.onValidated.emit();\n\t}\n\n\treset(): void {\n\t\tthis.formGroupDirective()?.resetForm();\n\t}\n\n\tkeepOriginalOrder: (a: unknown, b: unknown) => number = (): number => 0;\n}\n","<form\n\t[ngClass]=\"getCssClasses()\"\n\tngxFormGroup\n\t#formGroupDirective=\"ngxFormGroup\"\n\t[formGroup]=\"formGroup()\">\n\t@for (control of formGroup().controls | keyvalue: keepOriginalOrder; track $index) {\n\t\t@if (isFormControl(control.value)) {\n\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: control }\" />\n\t\t} @else {\n\t\t\t<div ngxFormGroup [formGroup]=\"control.value | ngxIsFormGroup\" class=\"row\">\n\t\t\t\t@for (\n\t\t\t\t\tsubControl of (control.value | ngxIsFormGroup).controls\n\t\t\t\t\t\t| keyvalue: keepOriginalOrder;\n\t\t\t\t\ttrack $index\n\t\t\t\t) {\n\t\t\t\t\t<div class=\"col\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"formField; context: { control: subControl }\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</form>\n\n<ng-template #formField let-control=\"control\">\n\t@if (control.value | appIsFormControl; as typedControl) {\n\t\t<div class=\"mb-3\">\n\t\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ typedControl.customConfig?.label }}\n\t\t</label> -->\n\n\t\t\t@switch (typedControl.config?.type) {\n\t\t\t\t@case ('textarea') {\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[rows]=\"typedControl.config?.textareaConfig?.rows || 4\">\n\t\t\t\t\t</textarea>\n\t\t\t\t}\n\n\t\t\t\t@case ('select') {\n\t\t\t\t\t<select\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t\t@for (\n\t\t\t\t\t\t\toption of typedControl.config?.selectConfig?.options;\n\t\t\t\t\t\t\ttrack option.value\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t}\n\t\t\t\t\t</select>\n\t\t\t\t}\n\n\t\t\t\t@case ('checkbox') {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\n\t\t\t\t@default {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\t[type]=\"typedControl.config?.type || 'text'\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[autocomplete]=\"\n\t\t\t\t\t\t\ttypedControl.config?.type === 'password' ? 'new-password' : undefined\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t\t{{ typedControl.config?.label }}\n\t\t\t</label>\n\n\t\t\t@if (typedControl.config?.hint) {\n\t\t\t\t<small class=\"text-muted\">\n\t\t\t\t\t{{ typedControl.config?.hint }}\n\t\t\t\t</small>\n\t\t\t}\n\n\t\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t\t</div>\n\t}\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, inject, input, InputSignal, Signal } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n\tselector: 'ngx-icon',\n\tstandalone: true,\n\timports: [CommonModule],\n\ttemplate: `\n\t\t<span\n\t\t\tclass=\"ngx-icon\"\n\t\t\t[attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n\t\t\t[attr.role]=\"ariaHidden() ? null : 'img'\"\n\t\t\t[attr.title]=\"title() || null\"\n\t\t\t[innerHTML]=\"svgHtml()\">\n\t\t</span>\n\t`,\n\tstyles: `\n\t\t:host {\n\t\t\tdisplay: inline-flex;\n\t\t\tline-height: 0;\n\t\t\tvertical-align: middle;\n\t\t}\n\t\t.ngx-icon {\n\t\t\tdisplay: inline-flex;\n\t\t\twidth: var(--ngx-icon-size, 1.5em);\n\t\t\theight: var(--ngx-icon-size, 1.5em);\n\t\t}\n\t\t.ngx-icon svg {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tdisplay: block;\n\t\t}\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxIconComponent {\n\tprivate readonly sanitizer: DomSanitizer = inject(DomSanitizer);\n\n\treadonly svg: InputSignal<string> = input.required();\n\treadonly size: InputSignal<string | number> = input<string | number>('1.25em');\n\treadonly title: InputSignal<string | undefined> = input();\n\treadonly ariaHidden: InputSignal<boolean> = input(true);\n\treadonly class: InputSignal<string | undefined> = input<string | undefined>();\n\n\treadonly svgHtml: Signal<SafeHtml> = computed(() => {\n\t\treturn this.svg() ? this.sanitizer.bypassSecurityTrustHtml(this.fixFill(this.svg())) : '';\n\t});\n\n\t@HostBinding('style.--ngx-icon-size')\n\tget hostSize(): string {\n\t\tconst size: string | number = this.size();\n\t\treturn typeof size === 'number' ? `${size}px` : (size ?? '1.25em');\n\t}\n\n\t@HostBinding('class')\n\tget hostClass(): string | null {\n\t\treturn this.class() ?? null;\n\t}\n\n\tprivate fixFill(svg: string): string {\n\t\tif (!svg) {\n\t\t\treturn '';\n\t\t}\n\t\tif (/^<svg[^>]*fill=/i.test(svg)) {\n\t\t\treturn svg.replace(/^<svg([^>]*)fill=\"[^\"]*\"/i, '<svg$1fill=\"currentColor\"');\n\t\t}\n\t\treturn svg.replace(/^<svg/i, '<svg fill=\"currentColor\"');\n\t}\n}\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tInputSignal,\n\tOutputEmitterRef,\n\tSignal,\n\tcomputed,\n\tinput,\n\toutput,\n} from '@angular/core';\nimport { NgxIconComponent } from '../ngx-icon/ngx-icon.component';\n\n@Component({\n\tselector: 'ngx-icon-button',\n\ttemplateUrl: './ngx-icon-button.component.html',\n\tstyleUrl: './ngx-icon-button.component.scss',\n\thost: { class: 'd-inline-flex align-items-center' },\n\timports: [NgxIconComponent, NgClass],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxIconButtonComponent {\n\tsvg: InputSignal<string> = input.required();\n\ttype: InputSignal<string | undefined> = input();\n\tcolor: InputSignal<string> = input<string>('primary');\n\tsize: InputSignal<'sm' | 'md' | 'lg'> = input<'sm' | 'md' | 'lg'>('sm');\n\tvariant: InputSignal<'contained' | 'outline' | 'text'> = input<\n\t\t'contained' | 'outline' | 'text'\n\t>('contained');\n\tdisabled: InputSignal<boolean | undefined> = input();\n\tshadow: InputSignal<boolean | undefined> = input();\n\n\tonClick: OutputEmitterRef<MouseEvent> = output();\n\tonFocus: OutputEmitterRef<FocusEvent> = output();\n\tonBlur: OutputEmitterRef<FocusEvent> = output();\n\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = ['btn', 'icon-btn', `icon-btn-${this.color()}`];\n\t\tif (this.shadow()) {\n\t\t\tcssClasses.push('shadow-sm');\n\t\t}\n\t\tcssClasses.push(`btn-${this.size() || 'sm'}`);\n\t\tcssClasses.push('flex-shrink-0');\n\t\treturn cssClasses.join(' ');\n\t});\n}\n","<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\">\n\t<ngx-icon [svg]=\"svg()\" />\n</button>\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n\tselector: '[ngxListGroupItemAvatar]',\n})\nexport class NgxListGroupItemAvatarDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-avatar');\n\t}\n}\n","import {\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tInput,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tRenderer2,\n\tinject,\n} from '@angular/core';\n\n@Directive({\n\tselector: 'li[ngxListGroupItem]',\n})\nexport class NgxListGroupItemDirective implements OnInit, OnDestroy {\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(\n\t\tElementRef<HTMLUListElement>\n\t);\n\tlistenerFn: (() => void) | undefined = undefined;\n\n\t_isActive: boolean = false;\n\t@Input() set isActive(val: boolean) {\n\t\tthis._isActive = val;\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add('focus-active');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t}\n\t}\n\n\t@Output() onOutsideClick: EventEmitter<void> = new EventEmitter<void>();\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-action');\n\t\tthis.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');\n\t\tthis.elementRef.nativeElement.setAttribute('tabindex', '0');\n\n\t\tthis.listenerFn = this.renderer.listen('window', 'click', (e: Event) => {\n\t\t\tif (e.target !== this.elementRef.nativeElement) {\n\t\t\t\tthis._isActive = false;\n\t\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t\t\tthis.onOutsideClick.next();\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.listenerFn?.();\n\t}\n}\n","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'ul[ngxListGroup]',\n})\nexport class NgxListGroupDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-flush');\n\t}\n}\n","export type LibIconKey = 'faXmark' | 'faSpinner';\n\nexport const LibIcons: Record<LibIconKey, string> = {\n\tfaXmark:\n\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 640\"><path d=\"M183.1 137.4C170.6 124.9 150.3 124.9 137.8 137.4C125.3 149.9 125.3 170.2 137.8 182.7L275.2 320L137.9 457.4C125.4 469.9 125.4 490.2 137.9 502.7C150.4 515.2 170.7 515.2 183.2 502.7L320.5 365.3L457.9 502.6C470.4 515.1 490.7 515.1 503.2 502.6C515.7 490.1 515.7 469.8 503.2 457.3L365.8 320L503.1 182.6C515.6 170.1 515.6 149.8 503.1 137.3C490.6 124.8 470.3 124.8 457.8 137.3L320.5 274.7L183.1 137.4z\"/></svg>',\n\tfaSpinner:\n\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 640\"><path d=\"M272 112C272 85.5 293.5 64 320 64C346.5 64 368 85.5 368 112C368 138.5 346.5 160 320 160C293.5 160 272 138.5 272 112zM272 528C272 501.5 293.5 480 320 480C346.5 480 368 501.5 368 528C368 554.5 346.5 576 320 576C293.5 576 272 554.5 272 528zM112 272C138.5 272 160 293.5 160 320C160 346.5 138.5 368 112 368C85.5 368 64 346.5 64 320C64 293.5 85.5 272 112 272zM480 320C480 293.5 501.5 272 528 272C554.5 272 576 293.5 576 320C576 346.5 554.5 368 528 368C501.5 368 480 346.5 480 320zM139 433.1C157.8 414.3 188.1 414.3 206.9 433.1C225.7 451.9 225.7 482.2 206.9 501C188.1 519.8 157.8 519.8 139 501C120.2 482.2 120.2 451.9 139 433.1zM139 139C157.8 120.2 188.1 120.2 206.9 139C225.7 157.8 225.7 188.1 206.9 206.9C188.1 225.7 157.8 225.7 139 206.9C120.2 188.1 120.2 157.8 139 139zM501 433.1C519.8 451.9 519.8 482.2 501 501C482.2 519.8 451.9 519.8 433.1 501C414.3 482.2 414.3 451.9 433.1 433.1C451.9 414.3 482.2 414.3 501 433.1z\"/></svg>',\n};\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tHostBinding,\n\tinput,\n\tInputSignal,\n\tmodel,\n\tModelSignal,\n\tSignal,\n} from '@angular/core';\nimport { LibIcons } from '../../lib.icons';\nimport { NgxIconComponent } from '../ngx-icon/ngx-icon.component';\n\n@Component({\n\tselector: 'ngx-loading-indicator',\n\ttemplateUrl: './ngx-loading-indicator.component.html',\n\tstyles: `\n\t\t:host {\n\t\t\tcolor: #495057;\n\n\t\t\t&.float {\n\t\t\t\tposition: fixed;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t}\n\t\t}\n\t`,\n\timports: [NgxIconComponent, NgClass],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxLoadingIndicatorComponent {\n\treadonly icon: InputSignal<string> = input<string>(LibIcons.faSpinner);\n\treadonly spin: ModelSignal<boolean> = model<boolean>(false);\n\treadonly float: ModelSignal<boolean> = model<boolean>(false);\n\n\t@HostBinding('class')\n\tget hostClass(): string | null {\n\t\tconst cssClasses: string[] = [''];\n\t\tif (this.float()) {\n\t\t\tcssClasses.push(`float`);\n\t\t}\n\t\treturn cssClasses.join(' ');\n\t}\n\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = [''];\n\t\tif (this.spin()) {\n\t\t\tcssClasses.push(`spin`);\n\t\t}\n\t\treturn cssClasses.join(' ');\n\t});\n}\n","<ngx-icon [ngClass]=\"getCssClasses()\" [svg]=\"icon()\" />\n","import { ComponentRef, Injectable, ViewContainerRef } from '@angular/core';\nimport { NgxLoadingIndicatorComponent } from './ngx-loading-indicator.component';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxLoadingIndicatorService {\n\tviewContainerRef!: ViewContainerRef;\n\tcomponentRef!: ComponentRef<NgxLoadingIndicatorComponent>;\n\n\tinit(viewContainer: ViewContainerRef): void {\n\t\tif (!viewContainer) {\n\t\t\tthrow new Error('viewContainerRef needs to be defined!');\n\t\t}\n\t\tthis.viewContainerRef = viewContainer;\n\t}\n\n\tshow(): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tif (this.componentRef) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(NgxLoadingIndicatorComponent);\n\t\t\tthis.componentRef.instance.spin.set(true);\n\t\t\tthis.componentRef.instance.float.set(true);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\thide(): void {\n\t\tif (this.componentRef) {\n\t\t\tthis.componentRef.destroy();\n\t\t}\n\t}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'ngx-base-modal',\n\ttemplate: ``,\n})\nexport class BaseModalComponent {}\n","import {\n\tDirective,\n\teffect,\n\tElementRef,\n\tEmbeddedViewRef,\n\tHostListener,\n\tinject,\n\tinput,\n\tInputSignal,\n\tOnDestroy,\n\tRenderer2,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\nimport { createPopper, Instance, Placement } from '@popperjs/core';\nimport { TooltipSize, TooltipTrigger } from './ngx-tooltip.types';\n\n@Directive({ selector: '[ngxTooltip]', exportAs: 'ngxTooltip' })\nexport class NgxTooltipDirective implements OnDestroy {\n\tprivate readonly elementRef: ElementRef = inject(ElementRef);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n\n\tngxTooltip: InputSignal<string | TemplateRef<unknown>> = input.required();\n\tngxTooltipClass: InputSignal<string> = input<string>('');\n\tngxTooltipPlacement: InputSignal<Placement> = input<Placement>('top');\n\tngxTooltipIsShow: InputSignal<boolean> = input<boolean>(false);\n\tngxTooltipXOffset: InputSignal<number> = input<number>(0);\n\tngxTooltipYOffset: InputSignal<number> = input<number>(8);\n\tngxTooltipDelay: InputSignal<number> = input<number>(200);\n\tngxTooltipTriggers: InputSignal<TooltipTrigger[]> = input<TooltipTrigger[]>(['hover']);\n\tngxTooltipSize: InputSignal<TooltipSize> = input<TooltipSize>('sm');\n\tngxTooltipZIndex: InputSignal<number> = input(5);\n\tngxTooltipAdaptivePosition: InputSignal<boolean> = input(true);\n\tngxTooltipFallbackPlacements: InputSignal<Placement[]> = input<Placement[]>(['top', 'bottom', 'right', 'left']);\n\n\tprivate popperInstance?: Instance;\n\tprivate tooltipElement!: HTMLElement | null;\n\n\tprivate mutationObserver?: MutationObserver;\n\tprivate mutationTimeout?: number;\n\tprivate openTimeout?: number;\n\tprivate closeTimeout?: number;\n\tprivate isOpen: boolean = false;\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (this.ngxTooltipIsShow()) {\n\t\t\t\tthis.show();\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.hide();\n\t}\n\n\t@HostListener('mouseenter')\n\tonHover(): void {\n\t\tif (this.ngxTooltipTriggers().includes('hover')) {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\t@HostListener('mouseleave')\n\tonLeave(): void {\n\t\tif (this.ngxTooltipTriggers().includes('hover')) {\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\t@HostListener('pointerenter')\n\tonPointerEnter(): void {\n\t\tif (this.ngxTooltipTriggers().includes('pointer')) {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\t@HostListener('pointerout')\n\tonPointerOut(): void {\n\t\tif (this.ngxTooltipTriggers().includes('pointer')) {\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\t@HostListener('focusin')\n\tonFocusIn(): void {\n\t\tif (this.ngxTooltipTriggers().includes('focus')) {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\t@HostListener('focusout')\n\tonFocusOut(): void {\n\t\tif (this.ngxTooltipTriggers().includes('focus')) {\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\t@HostListener('click')\n\tonClick(): void {\n\t\tif (this.ngxTooltipTriggers().includes('manual')) {\n\t\t\tthis.toggle();\n\t\t}\n\t}\n\n\t@HostListener('document:click', ['$event'])\n\tonDocumentClick(event: MouseEvent): void {\n\t\tif (\n\t\t\tthis.isOpen &&\n\t\t\tthis.tooltipElement &&\n\t\t\t!this.tooltipElement.contains(event.target as Node) &&\n\t\t\t!this.elementRef.nativeElement.contains(event.target as Node) &&\n\t\t\t!this.ngxTooltipTriggers().includes('manual')\n\t\t) {\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\tshow(): void {\n\t\tclearTimeout(this.closeTimeout);\n\t\tthis.openTimeout = window.setTimeout(() => this.init(), this.ngxTooltipDelay());\n\t}\n\n\tprivate init(): void {\n\t\tif (!this.tooltipElement && !!this.ngxTooltip()) {\n\t\t\tthis.tooltipElement = this.renderer.createElement('div');\n\t\t\tthis.renderer.addClass(this.tooltipElement, 'ngx-tooltip');\n\t\t\tif (this.ngxTooltipClass()) {\n\t\t\t\tthis.ngxTooltipClass()\n\t\t\t\t\t.split(' ')\n\t\t\t\t\t.forEach(cssClass => this.renderer.addClass(this.tooltipElement, cssClass));\n\t\t\t}\n\t\t\tthis.renderer.addClass(this.tooltipElement, this.ngxTooltipSize());\n\t\t\tthis.renderer.setStyle(this.tooltipElement, 'zIndex', this.ngxTooltipZIndex());\n\n\t\t\tif (this.ngxTooltip() instanceof TemplateRef) {\n\t\t\t\tthis.renderTemplate(this.ngxTooltip() as TemplateRef<unknown>);\n\t\t\t} else {\n\t\t\t\tthis.renderText(this.ngxTooltip() as string);\n\t\t\t}\n\n\t\t\tthis.renderer.appendChild(document.body, this.tooltipElement);\n\n\t\t\tconst arrowDiv: HTMLDivElement = this.renderer.createElement('div');\n\t\t\tarrowDiv.classList.add('ngx-tooltip-arrow');\n\t\t\tarrowDiv.setAttribute('data-popper-arrow', '');\n\t\t\tthis.renderer.appendChild(this.tooltipElement, arrowDiv);\n\n\t\t\tthis.popperInstance = createPopper(this.elementRef.nativeElement, this.tooltipElement!, {\n\t\t\t\tplacement: this.ngxTooltipPlacement(),\n\t\t\t\tmodifiers: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'offset',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\toffset: [this.ngxTooltipXOffset(), this.ngxTooltipYOffset()],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'flip',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tfallbackPlacements: this.ngxTooltipAdaptivePosition() ? this.ngxTooltipFallbackPlacements() : [],\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'preventOverflow',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\ttether: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\n\t\t\tthis.isOpen = true;\n\t\t\tthis.observeMutation();\n\t\t}\n\t}\n\n\tprivate observeMutation(): void {\n\t\tthis.mutationObserver = new MutationObserver(() => {\n\t\t\tclearTimeout(this.mutationTimeout);\n\t\t\tthis.mutationTimeout = window.setTimeout(() => {\n\t\t\t\tvoid this.popperInstance?.update();\n\t\t\t\tif (!this.isTooltipTargetVisible()) {\n\t\t\t\t\tthis.hide();\n\t\t\t\t}\n\t\t\t}, 100);\n\t\t});\n\t\tthis.mutationObserver.observe(this.tooltipElement!, { attributes: true, childList: true, subtree: true });\n\t}\n\n\tprivate isTooltipTargetVisible(): boolean {\n\t\tlet result: boolean = false;\n\t\tif (this.elementRef.nativeElement && document.body.contains(this.elementRef.nativeElement)) {\n\t\t\tconst rect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\t\t\tif (rect.top < 0 || rect.left < 0 || rect.bottom > window.innerHeight || rect.right > window.innerWidth) {\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t\tconst style: CSSStyleDeclaration = window.getComputedStyle(this.elementRef.nativeElement);\n\t\t\tresult = !(style.display === 'none' || style.visibility === 'hidden');\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate renderText(text: string): void {\n\t\tthis.renderer.appendChild(this.tooltipElement, this.renderer.createText(text));\n\t}\n\n\tprivate renderTemplate(templateRef: TemplateRef<unknown>): void {\n\t\tconst embeddedViewRef: EmbeddedViewRef<unknown> = this.viewContainerRef.createEmbeddedView(templateRef);\n\t\tembeddedViewRef.detectChanges();\n\t\tembeddedViewRef.rootNodes.forEach(node => {\n\t\t\tthis.renderer.appendChild(this.tooltipElement, node);\n\t\t});\n\t}\n\n\thide(): void {\n\t\tthis.viewContainerRef.clear();\n\t\tthis.mutationObserver?.disconnect();\n\t\tclearTimeout(this.mutationTimeout);\n\t\tclearTimeout(this.openTimeout);\n\t\tclearTimeout(this.closeTimeout);\n\n\t\tif (this.popperInstance) {\n\t\t\tthis.popperInstance.destroy();\n\t\t\tthis.popperInstance = undefined;\n\t\t}\n\n\t\tif (this.tooltipElement) {\n\t\t\tthis.renderer.removeChild(document.body, this.tooltipElement);\n\t\t\tthis.tooltipElement = null;\n\t\t}\n\n\t\tthis.isOpen = false;\n\t}\n\n\ttoggle(): void {\n\t\tif (this.isOpen) {\n\t\t\tthis.hide();\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\t}\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tHostListener,\n\tinput,\n\tInputSignal,\n\toutput,\n\tOutputEmitterRef,\n\tSignal,\n} from '@angular/core';\nimport { LibIcons } from '../../lib.icons';\nimport { NgxIconButtonComponent } from '../ngx-icon-button';\nimport { NgxTooltipDirective } from '../ngx-tooltip';\nimport { ModalSize } from './ngx-modal.types';\n\n@Component({\n\tselector: 'ngx-modal',\n\ttemplateUrl: './ngx-modal.component.html',\n\timports: [CommonModule, NgxTooltipDirective, NgxIconButtonComponent, A11yModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxModalComponent {\n\ttitle: InputSignal<string> = input<string>('');\n\tshowClose: InputSignal<boolean> = input<boolean>(true);\n\tfullScreen: InputSignal<boolean> = input<boolean>(false);\n\tscrollable: InputSignal<boolean> = input<boolean>(true);\n\tcentered: InputSignal<boolean> = input<boolean>(true);\n\n\toldSize: ModalSize = 'md';\n\tsize: InputSignal<ModalSize> = input<ModalSize>('md');\n\n\tonClose: OutputEmitterRef<void> = output();\n\n\tdialogCssClasses: Signal<string[]> = computed(() => {\n\t\tconst classes: string[] = [];\n\n\t\tif (this.fullScreen()) {\n\t\t\tclasses.push('modal-fullscreen');\n\t\t}\n\t\tif (this.centered()) {\n\t\t\tclasses.push('modal-dialog-centered');\n\t\t}\n\t\tif (this.scrollable()) {\n\t\t\tclasses.push('modal-dialog-scrollable');\n\t\t}\n\t\tif (this.size()) {\n\t\t\tclasses.push(`modal-${this.size()}`);\n\t\t}\n\t\treturn classes;\n\t});\n\n\tLibIcons: typeof LibIcons = LibIcons;\n\n\t@HostListener('document:keydown.escape')\n\thandleKeyboardEvent(): void {\n\t\tthis.onClose.emit();\n\t}\n\n\thandleClickClose(): void {\n\t\tthis.onClose.emit();\n\t}\n}\n","<section\n\tclass=\"modal d-flex justify-content-center align-items-center\"\n\tcdkTrapFocus\n\t[cdkTrapFocusAutoCapture]=\"true\"\n\ttabindex=\"0\"\n\trole=\"dialog\"\n\taria-modal=\"true\"\n\taria-labelledby=\"modal-title\"\n\taria-describedby=\"modal-body\">\n\t<div class=\"modal-dialog w-100\" [ngClass]=\"dialogCssClasses()\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 id=\"modal-title\" class=\"modal-title\">{{ title() }}</h5>\n\n\t\t\t\t@if (showClose()) {\n\t\t\t\t\t<ngx-icon-button\n\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\tngxTooltip=\"close\"\n\t\t\t\t\t\t[ngxTooltipZIndex]=\"1055\"\n\t\t\t\t\t\tcdkFocusInitial\n\t\t\t\t\t\tclass=\"ms-2\"\n\t\t\t\t\t\t(onClick)=\"handleClickClose()\"\n\t\t\t\t\t\t[svg]=\"LibIcons.faXmark\" />\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div id=\"modal-body\" class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\" />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n<div class=\"modal-backdrop fade show\"></div>\n","import { ComponentRef, EmbeddedViewRef, Injectable, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { BaseModalComponent } from './ngx-base-modal.component';\nimport { NgxModalComponent } from './ngx-modal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxModalService {\n\tviewContainerRef!: ViewContainerRef;\n\tcomponentRef!: ComponentRef<unknown>;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tif (!viewContainerRef) {\n\t\t\tthrow new Error('viewContainerRef needs to be defined!');\n\t\t}\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshowTemplate(templateRef: TemplateRef<NgxModalComponent>): EmbeddedViewRef<NgxModalComponent> {\n\t\tif (!this.viewContainerRef) {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t\treturn this.viewContainerRef.createEmbeddedView(templateRef);\n\t}\n\n\tcreateComponent<T extends BaseModalComponent>(component: Type<T>): ComponentRef<T> {\n\t\tif (!this.viewContainerRef) {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t\treturn this.viewContainerRef.createComponent(component);\n\t}\n\n\thide(): void {\n\t\tif (this.componentRef) {\n\t\t\tthis.componentRef.destroy();\n\t\t}\n\t}\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tHostBinding,\n\tinject,\n\tinput,\n\tInputSignal,\n\tOnDestroy,\n\tOnInit,\n\toutput,\n\tOutputEmitterRef,\n\tRenderer2,\n} from '@angular/core';\nimport { LibIcons } from '../../lib.icons';\nimport { NgxIconButtonComponent } from '../ngx-icon-button';\nimport { NgxTooltipDirective } from '../ngx-tooltip';\n\n@Component({\n\tselector: 'ngx-off-canvas',\n\ttemplateUrl: './ngx-off-canvas.component.html',\n\tstyles: `\n\t\t:host {\n\t\t\tz-index: 9999;\n\t\t\tdisplay: block;\n\t\t\toutline: none;\n\t\t}\n\t`,\n\timports: [NgxIconButtonComponent, NgxTooltipDirective, A11yModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxOffCanvasComponent implements OnInit, OnDestroy {\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\n\ttitle: InputSignal<string> = input('');\n\tonClose: OutputEmitterRef<void> = output();\n\n\tLibIcons: typeof LibIcons = LibIcons;\n\n\t@HostBinding('tabIndex') readonly tabIndex: number = -1;\n\t@HostBinding('attr.role') readonly role: string = 'dialog';\n\t@HostBinding('attr.aria-modal') readonly ariaModal: string = 'true';\n\t@HostBinding('attr.aria-labelledby') readonly ariaLabelledBy: string = 'ngx-offcanvas-title';\n\n\tngOnInit(): void {\n\t\tthis.renderer.addClass(document.body, 'overflow-y-hidden');\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.renderer.removeClass(document.body, 'overflow-y-hidden');\n\t}\n\n\thandleKeyDown($event: KeyboardEvent): void {\n\t\tif ($event.key.toLowerCase() === 'escape') {\n\t\t\tthis.onClose.emit();\n\t\t}\n\t}\n\n\thandleClickClose(): void {\n\t\tthis.onClose.emit();\n\t}\n}\n","<div\n\tclass=\"offcanvas offcanvas-start show\"\n\ttabindex=\"-1\"\n\tid=\"offcanvas\"\n\tstyle=\"z-index: 1051\"\n\tcdkTrapFocus\n\t[cdkTrapFocusAutoCapture]=\"true\"\n\t(keydown)=\"handleKeyDown($event)\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"ngx-offcanvas-title\">{{ title() }}</h5>\n\t\t<ngx-icon-button\n\t\t\tcolor=\"secondary\"\n\t\t\tclass=\"ml-auto\"\n\t\t\t(onClick)=\"handleClickClose()\"\n\t\t\t[svg]=\"LibIcons.faXmark\"\n\t\t\tngxTooltip=\"close menu\"\n\t\t\t[ngxTooltipZIndex]=\"1052\" />\n\t</div>\n\t<div class=\"overflow-y-scroll h-100\">\n\t\t<ng-content />\n\t</div>\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, model, ModelSignal } from '@angular/core';\n\n@Component({\n\tselector: 'ngx-tab-content',\n\ttemplateUrl: './ngx-tab-content.component.html',\n\tstyleUrl: './ngx-tab-content.component.scss',\n\timports: [CommonModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxTabContentComponent {\n\tisActive: ModelSignal<boolean> = model(false);\n}\n","<div class=\"tab-content\" [ngClass]=\"{ active: isActive() }\">\n\t<ng-content />\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tHostListener,\n\tinput,\n\tInputSignal,\n\tmodel,\n\tModelSignal,\n\toutput,\n\tOutputEmitterRef,\n} from '@angular/core';\nimport { NgxTabContentComponent } from './ngx-tab-content.component';\n\n@Component({\n\tselector: 'ngx-tab',\n\ttemplateUrl: './ngx-tab.component.html',\n\tstyleUrl: './ngx-tab.component.scss',\n\timports: [CommonModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxTabComponent {\n\tisActive: ModelSignal<boolean> = model<boolean>(false);\n\ttarget: InputSignal<NgxTabContentComponent> = input.required();\n\n\tonSelected: OutputEmitterRef<void> = output<void>();\n\n\t@HostListener('click')\n\tonClick(): void {\n\t\tthis.onSelected.emit();\n\t}\n}\n","<div class=\"tab\" [ngClass]=\"{ active: isActive() }\" tabindex=\"0\">\n\t<ng-content />\n</div>\n","import { AfterContentInit, ChangeDetectionStrategy, Component, contentChildren, Signal } from '@angular/core';\nimport { NgxTabContentComponent } from './ngx-tab-content.component';\nimport { NgxTabComponent } from './ngx-tab.component';\n\n@Component({\n\tselector: 'ngx-tabs',\n\ttemplateUrl: './ngx-tabs.component.html',\n\tstyleUrl: './ngx-tabs.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxTabsComponent implements AfterContentInit {\n\ttabQueryList: Signal<readonly NgxTabComponent[]> = contentChildren(NgxTabComponent);\n\ttabContentQueryList: Signal<readonly NgxTabContentComponent[]> = contentChildren(NgxTabContentComponent);\n\n\tngAfterContentInit(): void {\n\t\tthis.tabQueryList().forEach(tab => {\n\t\t\ttab.onSelected.subscribe(() => this.selectTab(tab));\n\t\t});\n\n\t\tconst firstActiveTab: NgxTabComponent | undefined = this.tabQueryList().find(tab => tab.isActive());\n\t\tif (firstActiveTab) {\n\t\t\tthis.selectTab(firstActiveTab);\n\t\t} else if (this.tabQueryList().length > 0) {\n\t\t\tthis.selectTab(this.tabQueryList()[0]);\n\t\t}\n\t}\n\n\tselectTab(tabComponent: NgxTabComponent): void {\n\t\tthis.tabQueryList().forEach(tab => tab.isActive.update(() => tab === tabComponent));\n\t\tthis.tabContentQueryList().forEach(tabContent => tabContent.isActive.update(() => tabContent === tabComponent.target()));\n\t}\n}\n","<div class=\"tabs\">\n\t<ng-content select=\"ngx-tab\" />\n</div>\n<div class=\"tab-contents\">\n\t<ng-content select=\"ngx-tab-content\" />\n</div>\n","import { Component, Input, output, OutputEmitterRef } from '@angular/core';\n\n@Component({\n\tselector: 'ngx-toast',\n\ttemplate: `\n\t\t<div class=\"toast align-items-center text-bg-dark border-0 show\">\n\t\t\t<div class=\"d-flex\">\n\t\t\t\t<div class=\"toast-body\" [innerHTML]=\"message\"></div>\n\t\t\t\t<button class=\"btn-close btn-close-white me-2 m-auto\" (click)=\"onClose.emit()\"></button>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\tbottom: 20px;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%);\n\t\t\tz-index: 1051;\n\t\t}\n\t`,\n})\nexport class NgxToastComponent {\n\t@Input() message?: string;\n\tonClose: OutputEmitterRef<void> = output();\n}\n","import { ComponentRef, Injectable, ViewContainerRef } from '@angular/core';\nimport { NgxToastComponent } from './ngx-toast.component';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxToastService {\n\tprivate viewContainerRef!: ViewContainerRef;\n\tprivate componentRef!: ComponentRef<NgxToastComponent>;\n\tprivate interval: number | undefined;\n\n\tinit(viewContainer: ViewContainerRef): void {\n\t\tif (!viewContainer) {\n\t\t\tthrow new Error('viewContainerRef needs to be defined!');\n\t\t}\n\t\tthis.viewContainerRef = viewContainer;\n\t}\n\n\tshow(message: string, timeout: number = 1500): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tif (this.componentRef) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(NgxToastComponent);\n\t\t\tthis.componentRef.instance.message = message;\n\t\t\tthis.componentRef.instance.onClose.subscribe(() => {\n\t\t\t\tthis.hide();\n\t\t\t});\n\n\t\t\tthis.interval = window.setTimeout(() => {\n\t\t\t\tthis.hide();\n\t\t\t}, timeout);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\thide(): void {\n\t\tif (this.componentRef) {\n\t\t\tthis.componentRef.destroy();\n\t\t}\n\t\tif (this.interval) {\n\t\t\tclearTimeout(this.interval);\n\t\t}\n\t}\n}\n","import { NgxDecoratorClassType } from './ngx-decorator.types';\n\nexport const NgxClass =\n\t(className: string): NgxDecoratorClassType =>\n\t<T extends abstract new (...args: unknown[]) => unknown>(obj: T): void => {\n\t\tObject.defineProperty(obj.prototype, 'className', {\n\t\t\tvalue: className,\n\t\t\twritable: false,\n\t\t});\n\t};\n","export enum LogType {\n\tlog = 'log',\n\tinfo = 'info',\n\twarn = 'warn',\n\tdebug = 'debug',\n\terror = 'error',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { NgxDecoratorMethodType } from './ngx-decorator.types';\nimport { LogType } from './ngx-logtype.enum';\n\nexport function NgxLog(methodName?: string, logType: LogType = LogType.log, logArgs: boolean = false): NgxDecoratorMethodType {\n\treturn function (target: object, key: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor {\n\t\tconst originalMethod: (...args: unknown[]) => unknown = descriptor.value as (...args: unknown[]) => unknown;\n\n\t\tdescriptor.value = function (...args: unknown[]): unknown {\n\t\t\tconst className: string = target.constructor.name;\n\t\t\tconst newMethodName: string = methodName || key.toString();\n\n\t\t\tconst logStatements: unknown[] = [className, newMethodName, ...(logArgs ? args : [])];\n\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole[logType](...logStatements);\n\n\t\t\treturn originalMethod.apply(this, args);\n\t\t};\n\n\t\treturn descriptor;\n\t};\n}\n","import { AfterViewInit, Directive, ElementRef, inject, Input } from '@angular/core';\n\n@Directive({ selector: '[ngxCol]' })\nexport class NgxColDirective implements AfterViewInit {\n\tprivate readonly el: ElementRef = inject(ElementRef);\n\tspan: string = 'col';\n\n\t@Input() set col(val: string | null) {\n\t\tif (val) {\n\t\t\tthis.span = val;\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\t(this.el.nativeElement as HTMLElement).classList.add(this.span);\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxImageService {\n\tasync compress(imageBase64: string, quality: number = 0.8, fileType: string = 'image/jpeg'): Promise<string> {\n\t\tconst img: HTMLImageElement = await this.load(imageBase64);\n\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\tthis.drawImage(canvas, img);\n\t\treturn canvas.toDataURL(fileType, quality);\n\t}\n\n\tasync toBlob(imageBase64: string, quality: number = 1, fileType: string = 'image/jpeg'): Promise<Blob> {\n\t\tconst img: HTMLImageElement = await this.load(imageBase64);\n\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\tthis.drawImage(canvas, img);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tcanvas.toBlob(\n\t\t\t\tblob => {\n\t\t\t\t\tif (blob) {\n\t\t\t\t\t\tresolve(blob);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject('Error on converting image to blob');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfileType,\n\t\t\t\tquality\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate load(imageBase64: string): Promise<HTMLImageElement> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst img: HTMLImageElement = new Image();\n\t\t\timg.onload = (): void => resolve(img);\n\t\t\timg.onerror = (event): void => reject(event);\n\t\t\timg.src = imageBase64;\n\t\t});\n\t}\n\n\tprivate createCanvas(): HTMLCanvasElement {\n\t\treturn document.createElement('canvas');\n\t}\n\n\tprivate drawImage(canvas: HTMLCanvasElement, img: HTMLImageElement): void {\n\t\tconst context: CanvasRenderingContext2D = canvas.getContext('2d')!;\n\t\tcanvas.width = img.width;\n\t\tcanvas.height = img.height;\n\t\tcontext.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t}\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function ngxDateAfterValidator<T extends { [key: string]: AbstractControl }>(\n\tstartDateControlKey: keyof T & string\n): (control: AbstractControl) => ValidationErrors | null {\n\treturn (endDateControl: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = endDateControl.parent;\n\t\tif (formGroup) {\n\t\t\tconst startDate: string | undefined = (formGroup as FormGroup).get(startDateControlKey)?.value;\n\t\t\tconst endDate: string = endDateControl.value;\n\n\t\t\tif (!startDate || !endDate) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tconst start: Date = new Date(startDate);\n\t\t\t\tconst end: Date = new Date(endDate);\n\n\t\t\t\tresult = start < end ? null : { dateAfterInvalid: true, startDateValue: startDate };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function ngxMatchValidator<T extends { [key: string]: AbstractControl }>(\n\ttoMatchControlKey: keyof T & string\n): (control: AbstractControl) => ValidationErrors | null {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = control.parent;\n\t\tif (formGroup) {\n\t\t\tconst toMatchValue: unknown = (formGroup as FormGroup).get(toMatchControlKey)?.value;\n\t\t\tconst currentValue: unknown = control.value;\n\n\t\t\tif (!toMatchValue || !currentValue) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tresult = toMatchValue === currentValue ? null : { match: true };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function ngxTimeAfterValidator<T extends { [key: string]: AbstractControl }>(startTimeControlKey: keyof T & string): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = control.parent;\n\t\tif (formGroup) {\n\t\t\tconst startTimeControl: AbstractControl | null = (formGroup as FormGroup).get(startTimeControlKey);\n\t\t\tif (startTimeControl) {\n\t\t\t\tif (!control.value || !startTimeControl.value) {\n\t\t\t\t\tresult = null; // Keine Validierung, wenn entweder Start- oder Endzeit fehlt\n\t\t\t\t}\n\n\t\t\t\tconst startTime: string = startTimeControl.value;\n\t\t\t\tconst endTime: string = control.value;\n\n\t\t\t\t// Umwandlung der Zeit in Minuten (z.B. 20:00 Uhr = 1200 Minuten)\n\t\t\t\tif (startTime && endTime) {\n\t\t\t\t\tconst startMinutes: number = convertToMinutes(startTime);\n\t\t\t\t\tconst endMinutes: number = convertToMinutes(endTime);\n\t\t\t\t\tif (endMinutes <= startMinutes) {\n\t\t\t\t\t\tresult = { timeAfterError: startTimeControl.value };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n\n// Funktion zur Umwandlung von Zeit in Minuten\nfunction convertToMinutes(time: string): number {\n\tconst [hours, minutes] = time.split(':').map(Number);\n\treturn hours * 60 + minutes;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-gccb.mjs","sources":["../../../projects/ngx-gccb/src/lib/animations/ngx-fade-right.animation.ts","../../../projects/ngx-gccb/src/lib/animations/ngx-fade-up.animation.ts","../../../projects/ngx-gccb/src/lib/interfaces/focusable-host.interface.ts","../../../projects/ngx-gccb/src/lib/components/ngx-button/ngx-button.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-button/ngx-button.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-calendar/ngx-calendar.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-calendar/ngx-calendar.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card-body.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card-body.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card-title.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card-title.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-card/ngx-card.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-dropdown/ngx-dropdown.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-dropdown/ngx-dropdown-item.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/components/ngx-form-errors/ngx-form-errors.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/ngx-form-control.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/directives/ngx-form-group.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/directives/ngx-form-input.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/directives/ngx-form-label.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/directives/ngx-form-select.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/ngx-as-form-control.pipe.ts","../../../projects/ngx-gccb/src/lib/directives/ngx-autofocus.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/pipes/ngx-is-form-control.pipe.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/pipes/ngx-is-form-group.pipe.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/ngx-form.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-form/ngx-form.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-icon/ngx-icon.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-icon-button/ngx-icon-button.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-icon-button/ngx-icon-button.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-list-group/ngx-list-group-item-avatar.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-list-group/ngx-list-group-item.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-list-group/ngx-list-group.directive.ts","../../../projects/ngx-gccb/src/lib/lib.icons.ts","../../../projects/ngx-gccb/src/lib/components/ngx-loading-indicator/ngx-loading-indicator.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-loading-indicator/ngx-loading-indicator.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-loading-indicator/ngx-loading-indicator.service.ts","../../../projects/ngx-gccb/src/lib/components/ngx-modal/ngx-base-modal.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-tooltip/ngx-tooltip.directive.ts","../../../projects/ngx-gccb/src/lib/components/ngx-modal/ngx-modal.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-modal/ngx-modal.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-modal/ngx-modal.service.ts","../../../projects/ngx-gccb/src/lib/components/ngx-off-canvas/ngx-off-canvas.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-off-canvas/ngx-off-canvas.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tab-content.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tab-content.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tab.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tab.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tabs.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-tabs/ngx-tabs.component.html","../../../projects/ngx-gccb/src/lib/components/ngx-toast/ngx-toast.component.ts","../../../projects/ngx-gccb/src/lib/components/ngx-toast/ngx-toast.service.ts","../../../projects/ngx-gccb/src/lib/decorators/ngx-class.decorator.ts","../../../projects/ngx-gccb/src/lib/decorators/ngx-logtype.enum.ts","../../../projects/ngx-gccb/src/lib/decorators/ngx-log.decorator.ts","../../../projects/ngx-gccb/src/lib/directives/ngx-col.directive.ts","../../../projects/ngx-gccb/src/lib/services/ngx-image.service.ts","../../../projects/ngx-gccb/src/lib/validators/ngx-dateAfter.validator.ts","../../../projects/ngx-gccb/src/lib/validators/ngx-match.validator.ts","../../../projects/ngx-gccb/src/lib/validators/ngx-timeAfter.validator.ts","../../../projects/ngx-gccb/src/ngx-gccb.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const NgxFadeRightAnimation: AnimationTriggerMetadata = trigger('ngxFadeRightAnimation', [\n\ttransition(':enter', [\n\t\tstyle({ transform: 'translateX(-100%)', zIndex: 9999 }),\n\t\tanimate('200ms ease-in', style({ transform: 'translateX(0%)' })),\n\t]),\n\ttransition(':leave', [animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))]),\n]);\n","import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const NgxFadeAnimation: AnimationTriggerMetadata = trigger('ngxFadeAnimation', [\n\ttransition(':enter', [\n\t\tstyle({ opacity: 0, transform: 'translateY(10px)' }),\n\t\tanimate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),\n\t]),\n\ttransition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),\n]);\n","export abstract class FocusableHost {\n\t/** Setzt den Fokus auf das native, fokussierbare Element der Komponente. */\n\tabstract focus(): void;\n}\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInputSignal,\n\tOutputEmitterRef,\n\tProvider,\n\tSignal,\n\tcomputed,\n\tforwardRef,\n\tinject,\n\tinput,\n\toutput,\n} from '@angular/core';\nimport { FocusableHost } from '../../interfaces/focusable-host.interface';\nimport { TColor, TSize } from '../../types';\n\nconst HOST_COMPONENT_PROVIDER: Provider = {\n\tprovide: FocusableHost,\n\tuseExisting: forwardRef(() => NgxButtonComponent),\n};\n\n// TODO - display block\n@Component({\n\tselector: 'ngx-button',\n\ttemplateUrl: './ngx-button.component.html',\n\thost: { class: 'd-inline-flex align-items-center' },\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [HOST_COMPONENT_PROVIDER],\n\timports: [NgClass],\n})\nexport class NgxButtonComponent {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n\tcssClass: InputSignal<string> = input('');\n\ttype: InputSignal<string | undefined> = input();\n\tcolor: InputSignal<TColor> = input<TColor>('primary');\n\tsize: InputSignal<TSize> = input<TSize>('md');\n\tvariant: InputSignal<'contained' | 'outline' | 'text'> = input<\n\t\t'contained' | 'outline' | 'text'\n\t>('contained');\n\tdisabled: InputSignal<boolean | undefined> = input();\n\tshadow: InputSignal<boolean | undefined> = input();\n\n\tonClick: OutputEmitterRef<MouseEvent> = output();\n\tonFocus: OutputEmitterRef<FocusEvent> = output();\n\tonBlur: OutputEmitterRef<FocusEvent> = output();\n\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = ['btn', 'flex-shrink-0'];\n\n\t\tif (this.variant() === 'outline' || this.variant() === 'text') {\n\t\t\tcssClasses.push(`btn-${this.variant()}-${this.color()}`);\n\t\t} else {\n\t\t\tcssClasses.push(`btn-${this.color()}`);\n\t\t}\n\n\t\tif (this.shadow()) {\n\t\t\tcssClasses.push('shadow-sm');\n\t\t}\n\t\tcssClasses.push(`btn-${this.size() || 'sm'}`);\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n\n\tpublic focus(): void {\n\t\tconst nativeButton: HTMLButtonElement | null =\n\t\t\tthis.elementRef.nativeElement.querySelector('button');\n\t\tif (nativeButton) {\n\t\t\tnativeButton.focus();\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.focus();\n\t\t}\n\t}\n}\n","<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\">\n\t<ng-content />\n</button>\n","import { NgClass } from '@angular/common';\nimport {\n\tComponent,\n\tcomputed,\n\tinput,\n\tInputSignal,\n\tOnInit,\n\toutput,\n\tOutputEmitterRef,\n\tSignal,\n} from '@angular/core';\nimport dayjs from 'dayjs';\nimport isoWeek from 'dayjs/plugin/isoWeek';\nimport { NgxButtonComponent } from '../ngx-button/ngx-button.component';\ndayjs.extend(isoWeek);\n\n@Component({\n\tselector: 'ngx-calendar',\n\ttemplateUrl: './ngx-calendar.component.html',\n\tstyles: `\n\t\t.day {\n\t\t\t&:hover {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\t`,\n\timports: [NgxButtonComponent, NgClass],\n})\nexport class CalendarComponent implements OnInit {\n\tonDaySelected: OutputEmitterRef<dayjs.Dayjs> = output<dayjs.Dayjs>();\n\n\tcssClass: InputSignal<string> = input('');\n\n\tweekdayHeaders: string[] = [];\n\tcurrentMonth: dayjs.Dayjs = dayjs();\n\tweeks: dayjs.Dayjs[][] = [];\n\tselectedDay: dayjs.Dayjs | null = null;\n\thoveredDay: dayjs.Dayjs | null = null;\n\n\tngOnInit(): void {\n\t\tthis.init();\n\t}\n\n\tinit(): void {\n\t\tconst startOfMonth: dayjs.Dayjs = this.currentMonth.startOf('month');\n\t\tconst endOfMonth: dayjs.Dayjs = this.currentMonth.endOf('month');\n\n\t\tconst startDate: dayjs.Dayjs = startOfMonth.startOf('isoWeek');\n\t\tconst endDate: dayjs.Dayjs = endOfMonth.endOf('isoWeek');\n\n\t\tthis.weekdayHeaders = Array.from({ length: 7 }, (_, i) =>\n\t\t\tstartDate.add(i, 'day').format('dd')\n\t\t);\n\n\t\tlet date: dayjs.Dayjs = startDate.clone();\n\t\tconst calendar: dayjs.Dayjs[][] = [];\n\n\t\twhile (date.isBefore(endDate, 'day')) {\n\t\t\tconst week: dayjs.Dayjs[] = [];\n\n\t\t\tfor (let i: number = 0; i < 7; i++) {\n\t\t\t\tweek.push(date.clone());\n\t\t\t\tdate = date.add(1, 'day');\n\t\t\t}\n\n\t\t\tcalendar.push(week);\n\t\t}\n\n\t\tthis.weeks = calendar;\n\t}\n\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = [\n\t\t\t'd-flex',\n\t\t\t'justify-content-between',\n\t\t\t'align-items-center',\n\t\t\t'mb-3',\n\t\t];\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n\n\tonSelectDay(day: dayjs.Dayjs): void {\n\t\tthis.selectedDay = day;\n\t\tthis.onDaySelected.emit(this.selectedDay);\n\t}\n\n\tpreviousMonth(): void {\n\t\tthis.currentMonth = this.currentMonth.subtract(1, 'month');\n\t\tthis.init();\n\t}\n\n\tnextMonth(): void {\n\t\tthis.currentMonth = this.currentMonth.add(1, 'month');\n\t\tthis.init();\n\t}\n\n\tisToday(date: dayjs.Dayjs): boolean {\n\t\treturn date.isSame(dayjs(), 'day');\n\t}\n\n\tisCurrentMonth(date: dayjs.Dayjs): boolean {\n\t\treturn date.isSame(this.currentMonth, 'month');\n\t}\n\n\tisSelected(day: dayjs.Dayjs): boolean {\n\t\treturn this.selectedDay?.isSame(day, 'day') || false;\n\t}\n}\n","<div [ngClass]=\"getCssClasses()\">\n\t<ngx-button variant=\"outline\" (click)=\"previousMonth()\">«</ngx-button>\n\t<h4 class=\"m-0\">\n\t\t{{ currentMonth.format('MMMM YYYY') }}\n\t</h4>\n\t<ngx-button variant=\"outline\" (click)=\"nextMonth()\">»</ngx-button>\n</div>\n\n<div class=\"table-responsive\">\n\t<table class=\"table table-bordered text-center\">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t@for (weekdayHeader of weekdayHeaders; track weekdayHeader) {\n\t\t\t\t\t<th>{{ weekdayHeader }}</th>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t@for (week of weeks; track $index) {\n\t\t\t\t<tr>\n\t\t\t\t\t@for (day of week; track day.date()) {\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tclass=\"day\"\n\t\t\t\t\t\t\t[class.bg-light]=\"!isCurrentMonth(day)\"\n\t\t\t\t\t\t\t[class.bg-primary]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t[class.text-white]=\"isSelected(day) || day === hoveredDay\"\n\t\t\t\t\t\t\t[class.bg-dark-subtle]=\"isToday(day)\"\n\t\t\t\t\t\t\t(click)=\"onSelectDay(day)\"\n\t\t\t\t\t\t\t(mouseover)=\"hoveredDay = day\"\n\t\t\t\t\t\t\t(mouseout)=\"hoveredDay = null\">\n\t\t\t\t\t\t\t{{ day.date() }}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t}\n\t\t</tbody>\n\t</table>\n</div>\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinput,\n\tInputSignal,\n\tSignal,\n} from '@angular/core';\n\n@Component({\n\tselector: 'ngx-card-body',\n\ttemplateUrl: './ngx-card-body.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgClass],\n})\nexport class NgxCardBodyComponent {\n\tcssClass: InputSignal<string> = input('');\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = ['card-body'];\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n}\n","<div [ngClass]=\"getCssClasses()\"><ng-content /></div>\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinput,\n\tInputSignal,\n\tSignal,\n} from '@angular/core';\n\n@Component({\n\tselector: 'ngx-card-title',\n\ttemplateUrl: './ngx-card-title.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgClass],\n})\nexport class NgxCardTitleComponent {\n\tcssClass: InputSignal<string> = input('');\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = ['card-title'];\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n}\n","<h5 [ngClass]=\"getCssClasses()\"><ng-content /></h5>\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinput,\n\tInputSignal,\n\tSignal,\n} from '@angular/core';\n\n@Component({\n\tselector: 'ngx-card',\n\ttemplateUrl: './ngx-card.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgClass],\n})\nexport class NgxCardComponent {\n\tcssClass: InputSignal<string> = input('');\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = ['card'];\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n}\n","<div [ngClass]=\"getCssClasses()\"><ng-content /></div>\n","import { ConfigurableFocusTrapFactory, FocusTrap } from '@angular/cdk/a11y';\nimport {\n\tConnectionPositionPair,\n\tOverlay,\n\tOverlayRef,\n\tPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n\tDirective,\n\tElementRef,\n\tHostListener,\n\tinject,\n\tInjector,\n\tinput,\n\tInputSignal,\n\tOnDestroy,\n\toutput,\n\tOutputEmitterRef,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\nimport { FocusableHost } from '../../interfaces/focusable-host.interface';\n\n// TODO - solve problem with ngxTooltip in combination with ngxDropdown\n\n@Directive({\n\tselector: '[ngxDropdown]',\n\texportAs: 'ngxDropdown',\n})\nexport class NgxDropdownDirective implements OnDestroy {\n\tprivate readonly elementRef: ElementRef = inject(ElementRef);\n\tprivate readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n\tprivate readonly injector: Injector = inject(Injector);\n\tprivate readonly overlay: Overlay = inject(Overlay);\n\tprivate readonly focusTrapFactory: ConfigurableFocusTrapFactory = inject(\n\t\tConfigurableFocusTrapFactory\n\t);\n\tprivate readonly hostComponent: FocusableHost | null = inject(FocusableHost, {\n\t\toptional: true,\n\t});\n\n\tngxDropdown: InputSignal<TemplateRef<unknown>> = input.required();\n\tngxDropdownItemSelected: OutputEmitterRef<unknown> = output();\n\tplacement: InputSignal<'bottom-start' | 'bottom-end'> = input<'bottom-start' | 'bottom-end'>(\n\t\t'bottom-start'\n\t);\n\tprivate overlayRef?: OverlayRef;\n\tprivate focusTrap?: FocusTrap;\n\tisDropdownVisible: boolean = false;\n\n\tngOnDestroy(): void {\n\t\tthis.hide();\n\t}\n\n\t@HostListener('keydown.enter')\n\t@HostListener('click')\n\ttoggleDropdown(): void {\n\t\tif (this.isDropdownVisible) {\n\t\t\tthis.hide();\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\t@HostListener('document:keydown.escape')\n\thandleKeyboardEvent(): void {\n\t\tthis.hide();\n\t}\n\n\t/** ngx-dropdown-item will trigger this */\n\thandleSelection(value: unknown): void {\n\t\tthis.ngxDropdownItemSelected.emit(value);\n\t\tthis.hide();\n\t}\n\n\tprivate show(): void {\n\t\tif (this.isDropdownVisible) {\n\t\t\treturn;\n\t\t}\n\t\tconst positionStrategy: PositionStrategy = this.createPositionStrategy();\n\n\t\tthis.overlayRef = this.overlay.create({\n\t\t\tpositionStrategy: positionStrategy,\n\t\t\thasBackdrop: true,\n\t\t\tbackdropClass: 'cdk-overlay-transparent-backdrop',\n\t\t\tscrollStrategy: this.overlay.scrollStrategies.reposition(),\n\t\t\tpanelClass: 'ngx-dropdown-panel',\n\t\t});\n\t\tthis.overlayRef.backdropClick().subscribe(() => this.hide());\n\t\tthis.overlayRef.keydownEvents().subscribe(event => {\n\t\t\tif (event.key === 'Escape') {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t});\n\t\tconst portal: TemplatePortal<unknown> = new TemplatePortal(\n\t\t\tthis.ngxDropdown(),\n\t\t\tthis.viewContainerRef,\n\t\t\tnull,\n\t\t\tthis.createChildInjector()\n\t\t);\n\t\tthis.overlayRef!.attach(portal);\n\n\t\tif (this.overlayRef!.overlayElement) {\n\t\t\tthis.focusTrap = this.focusTrapFactory.create(this.overlayRef!.overlayElement);\n\t\t\tvoid this.focusTrap.focusInitialElementWhenReady();\n\t\t}\n\n\t\tthis.isDropdownVisible = true;\n\t}\n\n\tprivate hide(): void {\n\t\tif (this.overlayRef) {\n\t\t\tthis.focusTrap?.destroy();\n\t\t\tthis.focusTrap = undefined;\n\n\t\t\tthis.overlayRef.dispose();\n\t\t\tthis.overlayRef = undefined;\n\n\t\t\tif (this.hostComponent) {\n\t\t\t\tthis.hostComponent.focus();\n\t\t\t} else {\n\t\t\t\tthis.elementRef.nativeElement.focus();\n\t\t\t}\n\t\t}\n\t\tthis.isDropdownVisible = false;\n\t}\n\n\tprivate createChildInjector(): Injector {\n\t\treturn Injector.create({\n\t\t\tproviders: [{ provide: NgxDropdownDirective, useValue: this }],\n\t\t\tparent: this.injector,\n\t\t});\n\t}\n\n\tprivate createPositionStrategy(): PositionStrategy {\n\t\tconst positions: ConnectionPositionPair[] = [];\n\t\tpositions.push({\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t\toffsetY: 3,\n\t\t\toffsetX: 3,\n\t\t});\n\t\tpositions.push({\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'bottom',\n\t\t\toffsetY: -3,\n\t\t});\n\n\t\t// Ankerpunkt ist der Host-Element\n\t\treturn this.overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.elementRef)\n\t\t\t.withPositions(positions)\n\t\t\t.withFlexibleDimensions(true)\n\t\t\t.withPush(true)\n\t\t\t.withViewportMargin(8);\n\t}\n}\n","import { Directive, HostListener, inject, input, InputSignal } from '@angular/core';\nimport { NgxDropdownDirective } from './ngx-dropdown.directive'; // Pfad anpassen\n\n@Directive({\n\tselector: '[ngxDropdownItem]',\n\tstandalone: true,\n\thost: {\n\t\ttabindex: '0',\n\t\trole: 'menuitem',\n\t},\n})\nexport class NgxDropdownItemDirective {\n\tprivate readonly dropdown: NgxDropdownDirective = inject(NgxDropdownDirective);\n\tvalue: InputSignal<unknown> = input<unknown>();\n\n\t@HostListener('click', ['$event'])\n\tonClick(event: MouseEvent): void {\n\t\tevent.stopPropagation();\n\t\tthis.dropdown.handleSelection(this.value());\n\t}\n\n\t@HostListener('keydown.enter', ['$event'])\n\tonKeyDown(event: Event): void {\n\t\tevent.preventDefault();\n\t\tthis.dropdown.handleSelection(this.value());\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, input, InputSignal, Signal } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\n@Component({\n\tselector: 'ngx-form-errors',\n\ttemplate: `\n\t\t@if (errorMessages()) {\n\t\t\t<div class=\"invalid-feedback d-block\">\n\t\t\t\t@for (errorMessage of errorMessages(); track $index) {\n\t\t\t\t\t<div>{{ errorMessage }}</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t`,\n\timports: [],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxFormErrorsComponent {\n\tisDirty: InputSignal<boolean> = input(false);\n\terrors: InputSignal<ValidationErrors | null> = input<ValidationErrors | null>(null);\n\n\terrorMessages: Signal<string[]> = computed(() => {\n\t\tconst result: string[] = [];\n\t\tif (this.isDirty() && this.errors()) {\n\t\t\tfor (const key in this.errors()) {\n\t\t\t\tif (this.errorMessageDictionary[key]) {\n\t\t\t\t\tresult.push(this.errorMessageDictionary[key](this.errors() as ValidationErrors));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t});\n\n\terrorMessageDictionary: IErrorMessage = {\n\t\trequired: () => 'Field is required',\n\t\trequiredTrue: () => 'Field is required',\n\t\temail: () => 'Invalid E-Mail',\n\t\tmin: (errors: ValidationErrors) => `At least ${errors['min']?.requiredLength} characters are required`,\n\t\tminlength: (errors: ValidationErrors) => `At least ${errors['minlength']?.requiredLength} characters are required`,\n\t\tmax: (errors: ValidationErrors) => `Maximum of ${errors['max']?.requiredLength} characters exceeded`,\n\t\tmaxlength: (errors: ValidationErrors) => `Maximum of ${errors['maxlength']?.requiredLength} characters exceeded`,\n\t\tpattern: () => `Input does not match pattern`,\n\t\tdateAfterInvalid: (errors: ValidationErrors) => `Date must be after ${errors?.['startDateValue']}`,\n\t\tmatch: () => `Input does not match!`,\n\t\ttimeAfterError: (errors: ValidationErrors) => `The time must be after ${errors?.['timeAfterError']}`,\n\t};\n}\n\ninterface IErrorMessage {\n\t[key: string]: (error: ValidationErrors) => string;\n}\n","import { AbstractControlOptions, AsyncValidatorFn, UntypedFormControl, UntypedFormGroup, ValidatorFn } from '@angular/forms';\nimport { IFormControlConfig, IOption } from './ngx-form.interfaces';\n\nexport class NgxFormGroup extends UntypedFormGroup {\n\toverride controls!: {\n\t\t[key: string]: NgxFormControl | NgxFormGroup;\n\t};\n}\n\nexport class NgxFormControl extends UntypedFormControl {\n\tconfig?: IFormControlConfig;\n\n\tconstructor(\n\t\tformState: unknown,\n\t\tvalidatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions,\n\t\tasyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null,\n\t\tconfig?: IFormControlConfig\n\t) {\n\t\tsuper(formState, validatorOrOpts, asyncValidator);\n\t\tthis.config = config;\n\t}\n\n\tupdateSelecOptions(options: IOption[]): void {\n\t\tif (this.config?.selectConfig?.options) {\n\t\t\tthis.config.selectConfig.options = [...options];\n\t\t}\n\t}\n}\n","import { Directive, input, InputSignal } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup } from '@angular/forms';\nimport { NgxFormControl, NgxFormGroup } from '../ngx-form-control';\n\n@Directive({\n\tselector: '[ngxFormGroup]',\n\texportAs: 'ngxFormGroup',\n})\nexport class NgxFormGroupDirective {\n\tformGroup: InputSignal<NgxFormGroup | FormGroup> = input.required();\n\tvalidateOnChange: InputSignal<boolean> = input(true);\n\n\tvalidateForm(): void {\n\t\tObject.keys(this.formGroup().controls).forEach(key => {\n\t\t\tconst control: AbstractControl | null = this.formGroup().get(key);\n\t\t\tif (control instanceof NgxFormControl || control instanceof FormControl) {\n\t\t\t\tthis.formGroup().get(key)?.markAsTouched({ onlySelf: true });\n\t\t\t\tthis.formGroup().get(key)?.markAsDirty({ onlySelf: true });\n\t\t\t\tthis.formGroup().get(key)?.updateValueAndValidity({ onlySelf: true });\n\t\t\t} else if (control instanceof NgxFormGroup || control instanceof FormGroup) {\n\t\t\t\tObject.keys(control.controls).forEach(subKey => {\n\t\t\t\t\tcontrol.get(subKey)?.markAsTouched({ onlySelf: true });\n\t\t\t\t\tcontrol.get(subKey)?.markAsDirty({ onlySelf: true });\n\t\t\t\t\tcontrol.get(subKey)?.updateValueAndValidity({ onlySelf: true });\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tresetForm(): void {\n\t\tthis.formGroup().setErrors({});\n\t\tthis.formGroup().reset();\n\n\t\tObject.keys(this.formGroup().controls).forEach(key => {\n\t\t\tthis.formGroup().get(key)?.markAsUntouched({ onlySelf: true });\n\t\t});\n\t}\n\n\t// TODO - disable form\n}\n","import { Directive, ElementRef, InputSignal, OnInit, Renderer2, effect, inject, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { debounceTime } from 'rxjs';\n\n@Directive({ selector: '[ngxFormInput]' })\nexport class NgxFormInputDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\tprivate readonly renderer2: Renderer2 = inject(Renderer2);\n\n\tngxFormInput: InputSignal<string> = input.required();\n\tformControl: InputSignal<FormControl | undefined> = input();\n\tid: InputSignal<string | undefined> = input();\n\tname: InputSignal<string | undefined> = input();\n\ttype: InputSignal<string | undefined> = input();\n\tplaceholder: InputSignal<string | undefined> = input();\n\tisFloatingLabel: InputSignal<boolean> = input(true);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst fc: FormControl<unknown> | undefined = this.formControl();\n\t\t\tif (fc && this.type() === 'checkbox') {\n\t\t\t\tconst native: HTMLInputElement = this.elementRef.nativeElement as HTMLInputElement;\n\t\t\t\tnative.checked = fc.value === true;\n\t\t\t}\n\n\t\t\tthis.checkIsValid();\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tif (this.type() === 'select') {\n\t\t\tthis.elementRef.nativeElement.classList.add('form-select');\n\t\t} else if (this.type() === 'checkbox') {\n\t\t\tthis.elementRef.nativeElement.classList.add('form-check-input');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.add('form-control');\n\t\t}\n\n\t\tif (this.type()) {\n\t\t\tthis.elementRef.nativeElement.setAttribute('type', this.type()!);\n\t\t}\n\n\t\tthis.elementRef.nativeElement.setAttribute('placeholder', this.placeholder() ?? (this.name() || this.ngxFormInput()));\n\n\t\tif (this.id() ?? (this.name() || this.ngxFormInput())) {\n\t\t\tthis.elementRef.nativeElement.setAttribute('id', this.id() ?? (this.name() || this.ngxFormInput()));\n\t\t}\n\n\t\tthis.elementRef.nativeElement.setAttribute('name', this.name() || this.ngxFormInput());\n\n\t\tconst parent: ParentNode | null = this.elementRef.nativeElement.parentNode;\n\t\tif (this.isFloatingLabel() && this.type() !== 'checkbox') {\n\t\t\t// && this.type() !== 'textarea'\n\t\t\tthis.renderer2.addClass(parent, 'form-floating');\n\t\t}\n\n\t\tif (this.type() === 'checkbox') {\n\t\t\tthis.renderer2.addClass(parent, 'form-check');\n\t\t}\n\n\t\tthis.formControl()\n\t\t\t?.valueChanges.pipe(debounceTime(100))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.checkIsValid();\n\t\t\t});\n\t}\n\n\tcheckIsValid(): void {\n\t\tif (this.formControl()?.touched && this.formControl()?.invalid) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({ selector: 'label[ngxFormLabel]' })\nexport class NgxFormLabelDirective {\n\t@HostBinding('class')\n\telementClass: string = 'form-label';\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({ selector: 'select[ngxFormSelect]' })\nexport class NgxFormSelectDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n\n\t@Input() set formInputInvalid(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.elementRef.nativeElement.classList.add('is-invalid');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('is-invalid');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('form-select');\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Pipe({ name: 'ngxAsFormControl' })\nexport class NgxFormControlPipe implements PipeTransform {\n\ttransform(value: AbstractControl): FormControl<(typeof value)['value']> {\n\t\treturn value as FormControl<(typeof value)['value']>;\n\t}\n}\n","import { AfterViewInit, Directive, ElementRef, inject, input, InputSignal, NgZone } from '@angular/core';\n\n@Directive({ selector: '[ngxAutofocus]' })\nexport class NgxAutofocusDirective implements AfterViewInit {\n\tprivate readonly ngZone: NgZone = inject(NgZone);\n\tprivate readonly el: ElementRef = inject(ElementRef);\n\tngxAutofocus: InputSignal<boolean> = input(false);\n\n\tngAfterViewInit(): void {\n\t\tif (this.ngxAutofocus()) {\n\t\t\tthis.ngZone.runOutsideAngular(() => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.el.nativeElement.focus();\n\t\t\t\t}, 0);\n\t\t\t});\n\t\t}\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { NgxFormControl } from '../ngx-form-control';\n\n@Pipe({ name: 'appIsFormControl' })\nexport class AppIsFormControlPipe implements PipeTransform {\n\ttransform(value: AbstractControl): NgxFormControl {\n\t\treturn value as NgxFormControl;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { NgxFormGroup } from '../ngx-form-control';\n\n@Pipe({ name: 'ngxIsFormGroup' })\nexport class NgxIsFormGroupPipe implements PipeTransform {\n\ttransform(value: AbstractControl): NgxFormGroup {\n\t\treturn value as NgxFormGroup;\n\t}\n}\n","import { CommonModule, NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tinput,\n\tInputSignal,\n\toutput,\n\tOutputEmitterRef,\n\tSignal,\n\tviewChild,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NgxAutofocusDirective } from '../../directives/ngx-autofocus.directive';\nimport { NgxFormErrorsComponent } from './components/ngx-form-errors/ngx-form-errors.component';\nimport { NgxFormGroupDirective } from './directives/ngx-form-group.directive';\nimport { NgxFormInputDirective } from './directives/ngx-form-input.directive';\nimport { NgxFormLabelDirective } from './directives/ngx-form-label.directive';\nimport { NgxFormControl, NgxFormGroup } from './ngx-form-control';\nimport { AppIsFormControlPipe, NgxIsFormGroupPipe } from './pipes';\n\n@Component({\n\tselector: 'ngx-form',\n\ttemplateUrl: './ngx-form.component.html',\n\timports: [\n\t\tCommonModule,\n\t\tReactiveFormsModule,\n\t\tNgxFormGroupDirective,\n\t\tNgxFormLabelDirective,\n\t\tNgxFormErrorsComponent,\n\t\tNgxFormInputDirective,\n\t\tAppIsFormControlPipe,\n\t\tNgxIsFormGroupPipe,\n\t\tNgxAutofocusDirective,\n\t\tNgClass,\n\t],\n\tstyles: `\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxFormComponent {\n\tformGroup: InputSignal<NgxFormGroup> = input.required();\n\tcssClass: InputSignal<string> = input('');\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = [''];\n\t\tcssClasses.push(this.cssClass());\n\t\treturn cssClasses.join(' ');\n\t});\n\n\tformGroupDirective: Signal<NgxFormGroupDirective | undefined> =\n\t\tviewChild(NgxFormGroupDirective);\n\tonValidated: OutputEmitterRef<void> = output();\n\n\tisFormControl(control: NgxFormControl | NgxFormGroup): boolean {\n\t\treturn control instanceof NgxFormControl;\n\t}\n\n\tvalidate(): void {\n\t\tthis.formGroupDirective()?.validateForm();\n\t\tthis.onValidated.emit();\n\t}\n\n\treset(): void {\n\t\tthis.formGroupDirective()?.resetForm();\n\t}\n\n\tkeepOriginalOrder: (a: unknown, b: unknown) => number = (): number => 0;\n}\n","<form\n\t[ngClass]=\"getCssClasses()\"\n\tngxFormGroup\n\t#formGroupDirective=\"ngxFormGroup\"\n\t[formGroup]=\"formGroup()\">\n\t@for (control of formGroup().controls | keyvalue: keepOriginalOrder; track $index) {\n\t\t@if (isFormControl(control.value)) {\n\t\t\t<ng-container *ngTemplateOutlet=\"formField; context: { control: control }\" />\n\t\t} @else {\n\t\t\t<div ngxFormGroup [formGroup]=\"control.value | ngxIsFormGroup\" class=\"row\">\n\t\t\t\t@for (\n\t\t\t\t\tsubControl of (control.value | ngxIsFormGroup).controls\n\t\t\t\t\t\t| keyvalue: keepOriginalOrder;\n\t\t\t\t\ttrack $index\n\t\t\t\t) {\n\t\t\t\t\t<div class=\"col\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t*ngTemplateOutlet=\"formField; context: { control: subControl }\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</form>\n\n<ng-template #formField let-control=\"control\">\n\t@if (control.value | appIsFormControl; as typedControl) {\n\t\t<div class=\"mb-3\">\n\t\t\t<!-- <label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t{{ typedControl.customConfig?.label }}\n\t\t</label> -->\n\n\t\t\t@switch (typedControl.config?.type) {\n\t\t\t\t@case ('textarea') {\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"textarea\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[rows]=\"typedControl.config?.textareaConfig?.rows || 4\">\n\t\t\t\t\t</textarea>\n\t\t\t\t}\n\n\t\t\t\t@case ('select') {\n\t\t\t\t\t<select\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"select\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\">\n\t\t\t\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\t\t\t\t\t\t@for (\n\t\t\t\t\t\t\toption of typedControl.config?.selectConfig?.options;\n\t\t\t\t\t\t\ttrack option.value\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\">\n\t\t\t\t\t\t\t\t{{ option.label }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t}\n\t\t\t\t\t</select>\n\t\t\t\t}\n\n\t\t\t\t@case ('checkbox') {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\n\t\t\t\t@default {\n\t\t\t\t\t<input\n\t\t\t\t\t\tngxFormInput\n\t\t\t\t\t\t[type]=\"typedControl.config?.type || 'text'\"\n\t\t\t\t\t\t[ngxAutofocus]=\"typedControl.config?.autofocus || false\"\n\t\t\t\t\t\t[id]=\"control.key\"\n\t\t\t\t\t\t[placeholder]=\"typedControl.config?.placeholder\"\n\t\t\t\t\t\t[formControl]=\"typedControl\"\n\t\t\t\t\t\t[autocomplete]=\"\n\t\t\t\t\t\t\ttypedControl.config?.type === 'password' ? 'new-password' : undefined\n\t\t\t\t\t\t\"\n\t\t\t\t\t\t(keydown.enter)=\"validate()\" />\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t<label ngxFormLabel [attr.for]=\"control.key\">\n\t\t\t\t{{ typedControl.config?.label }}\n\t\t\t</label>\n\n\t\t\t@if (typedControl.config?.hint) {\n\t\t\t\t<small class=\"text-muted\">\n\t\t\t\t\t{{ typedControl.config?.hint }}\n\t\t\t\t</small>\n\t\t\t}\n\n\t\t\t<ngx-form-errors [errors]=\"control.value.errors\" [isDirty]=\"control.value.dirty\" />\n\t\t</div>\n\t}\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, inject, input, InputSignal, Signal } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n\tselector: 'ngx-icon',\n\tstandalone: true,\n\timports: [CommonModule],\n\ttemplate: `\n\t\t<span\n\t\t\tclass=\"ngx-icon\"\n\t\t\t[attr.aria-hidden]=\"ariaHidden() ? 'true' : null\"\n\t\t\t[attr.role]=\"ariaHidden() ? null : 'img'\"\n\t\t\t[attr.title]=\"title() || null\"\n\t\t\t[innerHTML]=\"svgHtml()\">\n\t\t</span>\n\t`,\n\tstyles: `\n\t\t:host {\n\t\t\tdisplay: inline-flex;\n\t\t\tline-height: 0;\n\t\t\tvertical-align: middle;\n\t\t}\n\t\t.ngx-icon {\n\t\t\tdisplay: inline-flex;\n\t\t\twidth: var(--ngx-icon-size, 1.5em);\n\t\t\theight: var(--ngx-icon-size, 1.5em);\n\t\t}\n\t\t.ngx-icon svg {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tdisplay: block;\n\t\t}\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxIconComponent {\n\tprivate readonly sanitizer: DomSanitizer = inject(DomSanitizer);\n\n\treadonly svg: InputSignal<string> = input.required();\n\treadonly size: InputSignal<string | number> = input<string | number>('1.25em');\n\treadonly title: InputSignal<string | undefined> = input();\n\treadonly ariaHidden: InputSignal<boolean> = input(true);\n\treadonly class: InputSignal<string | undefined> = input<string | undefined>();\n\n\treadonly svgHtml: Signal<SafeHtml> = computed(() => {\n\t\treturn this.svg() ? this.sanitizer.bypassSecurityTrustHtml(this.fixFill(this.svg())) : '';\n\t});\n\n\t@HostBinding('style.--ngx-icon-size')\n\tget hostSize(): string {\n\t\tconst size: string | number = this.size();\n\t\treturn typeof size === 'number' ? `${size}px` : (size ?? '1.25em');\n\t}\n\n\t@HostBinding('class')\n\tget hostClass(): string | null {\n\t\treturn this.class() ?? null;\n\t}\n\n\tprivate fixFill(svg: string): string {\n\t\tif (!svg) {\n\t\t\treturn '';\n\t\t}\n\t\tif (/^<svg[^>]*fill=/i.test(svg)) {\n\t\t\treturn svg.replace(/^<svg([^>]*)fill=\"[^\"]*\"/i, '<svg$1fill=\"currentColor\"');\n\t\t}\n\t\treturn svg.replace(/^<svg/i, '<svg fill=\"currentColor\"');\n\t}\n}\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInputSignal,\n\tOutputEmitterRef,\n\tSignal,\n\tcomputed,\n\tforwardRef,\n\tinject,\n\tinput,\n\toutput,\n} from '@angular/core';\nimport { FocusableHost } from '../../interfaces/focusable-host.interface';\nimport { NgxIconComponent } from '../ngx-icon/ngx-icon.component';\n\n@Component({\n\tselector: 'ngx-icon-button',\n\ttemplateUrl: './ngx-icon-button.component.html',\n\tstyleUrl: './ngx-icon-button.component.scss',\n\thost: { class: 'd-inline-flex align-items-center' },\n\timports: [NgxIconComponent, NgClass],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: FocusableHost,\n\t\t\tuseExisting: forwardRef(() => NgxIconButtonComponent),\n\t\t},\n\t],\n})\nexport class NgxIconButtonComponent {\n\tprivate readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n\tsvg: InputSignal<string> = input.required();\n\ttype: InputSignal<string | undefined> = input();\n\tcolor: InputSignal<string> = input<string>('primary');\n\tsize: InputSignal<'sm' | 'md' | 'lg'> = input<'sm' | 'md' | 'lg'>('sm');\n\tvariant: InputSignal<'contained' | 'outline' | 'text'> = input<\n\t\t'contained' | 'outline' | 'text'\n\t>('contained');\n\tdisabled: InputSignal<boolean | undefined> = input();\n\tshadow: InputSignal<boolean | undefined> = input();\n\n\tonClick: OutputEmitterRef<MouseEvent> = output();\n\tonFocus: OutputEmitterRef<FocusEvent> = output();\n\tonBlur: OutputEmitterRef<FocusEvent> = output();\n\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = ['btn', 'icon-btn', `icon-btn-${this.color()}`];\n\t\tif (this.shadow()) {\n\t\t\tcssClasses.push('shadow-sm');\n\t\t}\n\t\tcssClasses.push(`btn-${this.size() || 'sm'}`);\n\t\tcssClasses.push('flex-shrink-0');\n\t\treturn cssClasses.join(' ');\n\t});\n\n\tpublic focus(): void {\n\t\tconst nativeButton: HTMLButtonElement | null =\n\t\t\tthis.elementRef.nativeElement.querySelector('button');\n\t\tif (nativeButton) {\n\t\t\tnativeButton.focus();\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.focus();\n\t\t}\n\t}\n}\n","<button\n\t[ngClass]=\"getCssClasses()\"\n\t[attr.type]=\"type()\"\n\t[disabled]=\"disabled()\"\n\t(click)=\"onClick.emit($event)\"\n\t(focus)=\"onFocus.emit($event)\"\n\t(blur)=\"onBlur.emit($event)\">\n\t<ngx-icon [svg]=\"svg()\" />\n</button>\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n\tselector: '[ngxListGroupItemAvatar]',\n})\nexport class NgxListGroupItemAvatarDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-avatar');\n\t}\n}\n","import {\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tInput,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tRenderer2,\n\tinject,\n} from '@angular/core';\n\n@Directive({\n\tselector: 'li[ngxListGroupItem]',\n})\nexport class NgxListGroupItemDirective implements OnInit, OnDestroy {\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(\n\t\tElementRef<HTMLUListElement>\n\t);\n\tlistenerFn: (() => void) | undefined = undefined;\n\n\t_isActive: boolean = false;\n\t@Input() set isActive(val: boolean) {\n\t\tthis._isActive = val;\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add('focus-active');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t}\n\t}\n\n\t@Output() onOutsideClick: EventEmitter<void> = new EventEmitter<void>();\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-item-action');\n\t\tthis.elementRef.nativeElement.classList.add('d-flex', 'flex-row', 'align-items-center');\n\t\tthis.elementRef.nativeElement.setAttribute('tabindex', '0');\n\n\t\tthis.listenerFn?.();\n\t\tthis.listenerFn = this.renderer.listen('window', 'click', (e: Event) => {\n\t\t\tif (e.target !== this.elementRef.nativeElement) {\n\t\t\t\tthis._isActive = false;\n\t\t\t\tthis.elementRef.nativeElement.classList.remove('focus-active');\n\t\t\t\tthis.onOutsideClick.next();\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.listenerFn?.();\n\t}\n}\n","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'ul[ngxListGroup]',\n})\nexport class NgxListGroupDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('list-group');\n\t\tthis.elementRef.nativeElement.classList.add('list-group-flush');\n\t}\n}\n","export type LibIconKey = 'faXmark' | 'faSpinner';\n\nexport const LibIcons: Record<LibIconKey, string> = {\n\tfaXmark:\n\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 640\"><path d=\"M183.1 137.4C170.6 124.9 150.3 124.9 137.8 137.4C125.3 149.9 125.3 170.2 137.8 182.7L275.2 320L137.9 457.4C125.4 469.9 125.4 490.2 137.9 502.7C150.4 515.2 170.7 515.2 183.2 502.7L320.5 365.3L457.9 502.6C470.4 515.1 490.7 515.1 503.2 502.6C515.7 490.1 515.7 469.8 503.2 457.3L365.8 320L503.1 182.6C515.6 170.1 515.6 149.8 503.1 137.3C490.6 124.8 470.3 124.8 457.8 137.3L320.5 274.7L183.1 137.4z\"/></svg>',\n\tfaSpinner:\n\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 640\"><path d=\"M272 112C272 85.5 293.5 64 320 64C346.5 64 368 85.5 368 112C368 138.5 346.5 160 320 160C293.5 160 272 138.5 272 112zM272 528C272 501.5 293.5 480 320 480C346.5 480 368 501.5 368 528C368 554.5 346.5 576 320 576C293.5 576 272 554.5 272 528zM112 272C138.5 272 160 293.5 160 320C160 346.5 138.5 368 112 368C85.5 368 64 346.5 64 320C64 293.5 85.5 272 112 272zM480 320C480 293.5 501.5 272 528 272C554.5 272 576 293.5 576 320C576 346.5 554.5 368 528 368C501.5 368 480 346.5 480 320zM139 433.1C157.8 414.3 188.1 414.3 206.9 433.1C225.7 451.9 225.7 482.2 206.9 501C188.1 519.8 157.8 519.8 139 501C120.2 482.2 120.2 451.9 139 433.1zM139 139C157.8 120.2 188.1 120.2 206.9 139C225.7 157.8 225.7 188.1 206.9 206.9C188.1 225.7 157.8 225.7 139 206.9C120.2 188.1 120.2 157.8 139 139zM501 433.1C519.8 451.9 519.8 482.2 501 501C482.2 519.8 451.9 519.8 433.1 501C414.3 482.2 414.3 451.9 433.1 433.1C451.9 414.3 482.2 414.3 501 433.1z\"/></svg>',\n};\n","import { NgClass } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tHostBinding,\n\tinput,\n\tInputSignal,\n\tmodel,\n\tModelSignal,\n\tSignal,\n} from '@angular/core';\nimport { LibIcons } from '../../lib.icons';\nimport { NgxIconComponent } from '../ngx-icon/ngx-icon.component';\n\n@Component({\n\tselector: 'ngx-loading-indicator',\n\ttemplateUrl: './ngx-loading-indicator.component.html',\n\tstyles: `\n\t\t:host {\n\t\t\tcolor: #495057;\n\n\t\t\t&.float {\n\t\t\t\tposition: fixed;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t}\n\t\t}\n\t`,\n\timports: [NgxIconComponent, NgClass],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxLoadingIndicatorComponent {\n\treadonly icon: InputSignal<string> = input<string>(LibIcons.faSpinner);\n\treadonly spin: ModelSignal<boolean> = model<boolean>(false);\n\treadonly float: ModelSignal<boolean> = model<boolean>(false);\n\n\t@HostBinding('class')\n\tget hostClass(): string | null {\n\t\tconst cssClasses: string[] = [''];\n\t\tif (this.float()) {\n\t\t\tcssClasses.push(`float`);\n\t\t}\n\t\treturn cssClasses.join(' ');\n\t}\n\n\tgetCssClasses: Signal<string> = computed(() => {\n\t\tconst cssClasses: string[] = [''];\n\t\tif (this.spin()) {\n\t\t\tcssClasses.push(`spin`);\n\t\t}\n\t\treturn cssClasses.join(' ');\n\t});\n}\n","<ngx-icon [ngClass]=\"getCssClasses()\" [svg]=\"icon()\" />\n","import { ComponentRef, Injectable, ViewContainerRef } from '@angular/core';\nimport { NgxLoadingIndicatorComponent } from './ngx-loading-indicator.component';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxLoadingIndicatorService {\n\tviewContainerRef!: ViewContainerRef;\n\tcomponentRef?: ComponentRef<NgxLoadingIndicatorComponent>;\n\n\tinit(viewContainer: ViewContainerRef): void {\n\t\tif (!viewContainer) {\n\t\t\tthrow new Error('viewContainerRef needs to be defined!');\n\t\t}\n\t\tthis.viewContainerRef = viewContainer;\n\t}\n\n\tshow(): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tif (this.componentRef) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(NgxLoadingIndicatorComponent);\n\t\t\tthis.componentRef.instance.spin.set(true);\n\t\t\tthis.componentRef.instance.float.set(true);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\thide(): void {\n\t\tif (this.componentRef) {\n\t\t\ttry {\n\t\t\t\tthis.componentRef.destroy();\n\t\t\t} finally {\n\t\t\t\tthis.componentRef = undefined;\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'ngx-base-modal',\n\ttemplate: ``,\n})\nexport class BaseModalComponent {}\n","import {\n\tDirective,\n\teffect,\n\tElementRef,\n\tEmbeddedViewRef,\n\tHostListener,\n\tinject,\n\tinput,\n\tInputSignal,\n\tOnDestroy,\n\tRenderer2,\n\tTemplateRef,\n\tViewContainerRef,\n} from '@angular/core';\nimport { createPopper, Instance, Placement } from '@popperjs/core';\nimport { TooltipSize, TooltipTrigger } from './ngx-tooltip.types';\n\n@Directive({ selector: '[ngxTooltip]', exportAs: 'ngxTooltip' })\nexport class NgxTooltipDirective implements OnDestroy {\n\tprivate readonly elementRef: ElementRef = inject(ElementRef);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n\n\tngxTooltip: InputSignal<string | TemplateRef<unknown>> = input.required();\n\tngxTooltipClass: InputSignal<string> = input<string>('');\n\tngxTooltipPlacement: InputSignal<Placement> = input<Placement>('top');\n\tngxTooltipIsShow: InputSignal<boolean> = input<boolean>(false);\n\tngxTooltipXOffset: InputSignal<number> = input<number>(0);\n\tngxTooltipYOffset: InputSignal<number> = input<number>(8);\n\tngxTooltipDelay: InputSignal<number> = input<number>(200);\n\tngxTooltipTriggers: InputSignal<TooltipTrigger[]> = input<TooltipTrigger[]>(['hover']);\n\tngxTooltipSize: InputSignal<TooltipSize> = input<TooltipSize>('sm');\n\tngxTooltipZIndex: InputSignal<number> = input(5);\n\tngxTooltipAdaptivePosition: InputSignal<boolean> = input(true);\n\tngxTooltipFallbackPlacements: InputSignal<Placement[]> = input<Placement[]>(['top', 'bottom', 'right', 'left']);\n\n\tprivate popperInstance?: Instance;\n\tprivate tooltipElement!: HTMLElement | null;\n\n\tprivate mutationObserver?: MutationObserver;\n\tprivate mutationTimeout?: number;\n\tprivate openTimeout?: number;\n\tprivate closeTimeout?: number;\n\tprivate isOpen: boolean = false;\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (this.ngxTooltipIsShow()) {\n\t\t\t\tthis.show();\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.hide();\n\t}\n\n\t@HostListener('mouseenter')\n\tonHover(): void {\n\t\tif (this.ngxTooltipTriggers().includes('hover')) {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\t@HostListener('mouseleave')\n\tonLeave(): void {\n\t\tif (this.ngxTooltipTriggers().includes('hover')) {\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\t@HostListener('pointerenter')\n\tonPointerEnter(): void {\n\t\tif (this.ngxTooltipTriggers().includes('pointer')) {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\t@HostListener('pointerout')\n\tonPointerOut(): void {\n\t\tif (this.ngxTooltipTriggers().includes('pointer')) {\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\t@HostListener('focusin')\n\tonFocusIn(): void {\n\t\tif (this.ngxTooltipTriggers().includes('focus')) {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\t@HostListener('focusout')\n\tonFocusOut(): void {\n\t\tif (this.ngxTooltipTriggers().includes('focus')) {\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\t@HostListener('click')\n\tonClick(): void {\n\t\tif (this.ngxTooltipTriggers().includes('manual')) {\n\t\t\tthis.toggle();\n\t\t}\n\t}\n\n\t@HostListener('document:click', ['$event'])\n\tonDocumentClick(event: MouseEvent): void {\n\t\tif (\n\t\t\tthis.isOpen &&\n\t\t\tthis.tooltipElement &&\n\t\t\t!this.tooltipElement.contains(event.target as Node) &&\n\t\t\t!this.elementRef.nativeElement.contains(event.target as Node) &&\n\t\t\t!this.ngxTooltipTriggers().includes('manual')\n\t\t) {\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\tshow(): void {\n\t\tclearTimeout(this.closeTimeout);\n\t\tthis.openTimeout = window.setTimeout(() => this.init(), this.ngxTooltipDelay());\n\t}\n\n\tprivate init(): void {\n\t\tif (!this.tooltipElement && !!this.ngxTooltip()) {\n\t\t\tthis.tooltipElement = this.renderer.createElement('div');\n\t\t\tthis.renderer.addClass(this.tooltipElement, 'ngx-tooltip');\n\t\t\tif (this.ngxTooltipClass()) {\n\t\t\t\tthis.ngxTooltipClass()\n\t\t\t\t\t.split(' ')\n\t\t\t\t\t.forEach(cssClass => this.renderer.addClass(this.tooltipElement, cssClass));\n\t\t\t}\n\t\t\tthis.renderer.addClass(this.tooltipElement, this.ngxTooltipSize());\n\t\t\tthis.renderer.setStyle(this.tooltipElement, 'zIndex', this.ngxTooltipZIndex());\n\n\t\t\tif (this.ngxTooltip() instanceof TemplateRef) {\n\t\t\t\tthis.renderTemplate(this.ngxTooltip() as TemplateRef<unknown>);\n\t\t\t} else {\n\t\t\t\tthis.renderText(this.ngxTooltip() as string);\n\t\t\t}\n\n\t\t\tthis.renderer.appendChild(document.body, this.tooltipElement);\n\n\t\t\tconst arrowDiv: HTMLDivElement = this.renderer.createElement('div');\n\t\t\tarrowDiv.classList.add('ngx-tooltip-arrow');\n\t\t\tarrowDiv.setAttribute('data-popper-arrow', '');\n\t\t\tthis.renderer.appendChild(this.tooltipElement, arrowDiv);\n\n\t\t\tthis.popperInstance = createPopper(this.elementRef.nativeElement, this.tooltipElement!, {\n\t\t\t\tplacement: this.ngxTooltipPlacement(),\n\t\t\t\tmodifiers: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'offset',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\toffset: [this.ngxTooltipXOffset(), this.ngxTooltipYOffset()],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'flip',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tfallbackPlacements: this.ngxTooltipAdaptivePosition() ? this.ngxTooltipFallbackPlacements() : [],\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'preventOverflow',\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\tboundary: 'viewport',\n\t\t\t\t\t\t\tpadding: 0,\n\t\t\t\t\t\t\ttether: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\n\t\t\tthis.isOpen = true;\n\t\t\tthis.observeMutation();\n\t\t}\n\t}\n\n\tprivate observeMutation(): void {\n\t\tthis.mutationObserver = new MutationObserver(() => {\n\t\t\tclearTimeout(this.mutationTimeout);\n\t\t\tthis.mutationTimeout = window.setTimeout(() => {\n\t\t\t\tvoid this.popperInstance?.update();\n\t\t\t\tif (!this.isTooltipTargetVisible()) {\n\t\t\t\t\tthis.hide();\n\t\t\t\t}\n\t\t\t}, 100);\n\t\t});\n\t\tthis.mutationObserver.observe(this.tooltipElement!, { attributes: true, childList: true, subtree: true });\n\t}\n\n\tprivate isTooltipTargetVisible(): boolean {\n\t\tlet result: boolean = false;\n\t\tif (this.elementRef.nativeElement && document.body.contains(this.elementRef.nativeElement)) {\n\t\t\tconst rect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\t\t\tif (rect.top < 0 || rect.left < 0 || rect.bottom > window.innerHeight || rect.right > window.innerWidth) {\n\t\t\t\tresult = false;\n\t\t\t}\n\t\t\tconst style: CSSStyleDeclaration = window.getComputedStyle(this.elementRef.nativeElement);\n\t\t\tresult = !(style.display === 'none' || style.visibility === 'hidden');\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate renderText(text: string): void {\n\t\tthis.renderer.appendChild(this.tooltipElement, this.renderer.createText(text));\n\t}\n\n\tprivate renderTemplate(templateRef: TemplateRef<unknown>): void {\n\t\tconst embeddedViewRef: EmbeddedViewRef<unknown> = this.viewContainerRef.createEmbeddedView(templateRef);\n\t\tembeddedViewRef.detectChanges();\n\t\tembeddedViewRef.rootNodes.forEach(node => {\n\t\t\tthis.renderer.appendChild(this.tooltipElement, node);\n\t\t});\n\t}\n\n\thide(): void {\n\t\tthis.viewContainerRef.clear();\n\t\tthis.mutationObserver?.disconnect();\n\t\tclearTimeout(this.mutationTimeout);\n\t\tclearTimeout(this.openTimeout);\n\t\tclearTimeout(this.closeTimeout);\n\n\t\tif (this.popperInstance) {\n\t\t\tthis.popperInstance.destroy();\n\t\t\tthis.popperInstance = undefined;\n\t\t}\n\n\t\tif (this.tooltipElement) {\n\t\t\tthis.renderer.removeChild(document.body, this.tooltipElement);\n\t\t\tthis.tooltipElement = null;\n\t\t}\n\n\t\tthis.isOpen = false;\n\t}\n\n\ttoggle(): void {\n\t\tif (this.isOpen) {\n\t\t\tthis.hide();\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\t}\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tHostListener,\n\tinput,\n\tInputSignal,\n\toutput,\n\tOutputEmitterRef,\n\tSignal,\n} from '@angular/core';\nimport { LibIcons } from '../../lib.icons';\nimport { NgxIconButtonComponent } from '../ngx-icon-button';\nimport { NgxTooltipDirective } from '../ngx-tooltip';\nimport { ModalSize } from './ngx-modal.types';\n\n@Component({\n\tselector: 'ngx-modal',\n\ttemplateUrl: './ngx-modal.component.html',\n\timports: [CommonModule, NgxTooltipDirective, NgxIconButtonComponent, A11yModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxModalComponent {\n\ttitle: InputSignal<string> = input<string>('');\n\tshowClose: InputSignal<boolean> = input<boolean>(true);\n\tfullScreen: InputSignal<boolean> = input<boolean>(false);\n\tscrollable: InputSignal<boolean> = input<boolean>(true);\n\tcentered: InputSignal<boolean> = input<boolean>(true);\n\n\toldSize: ModalSize = 'md';\n\tsize: InputSignal<ModalSize> = input<ModalSize>('md');\n\n\tonClose: OutputEmitterRef<void> = output();\n\n\tdialogCssClasses: Signal<string[]> = computed(() => {\n\t\tconst classes: string[] = [];\n\n\t\tif (this.fullScreen()) {\n\t\t\tclasses.push('modal-fullscreen');\n\t\t}\n\t\tif (this.centered()) {\n\t\t\tclasses.push('modal-dialog-centered');\n\t\t}\n\t\tif (this.scrollable()) {\n\t\t\tclasses.push('modal-dialog-scrollable');\n\t\t}\n\t\tif (this.size()) {\n\t\t\tclasses.push(`modal-${this.size()}`);\n\t\t}\n\t\treturn classes;\n\t});\n\n\tLibIcons: typeof LibIcons = LibIcons;\n\n\t@HostListener('document:keydown.escape')\n\thandleKeyboardEvent(): void {\n\t\tthis.onClose.emit();\n\t}\n\n\thandleClickClose(): void {\n\t\tthis.onClose.emit();\n\t}\n}\n","<section\n\tclass=\"modal d-flex justify-content-center align-items-center\"\n\tcdkTrapFocus\n\t[cdkTrapFocusAutoCapture]=\"true\"\n\ttabindex=\"0\"\n\trole=\"dialog\"\n\taria-modal=\"true\"\n\taria-labelledby=\"modal-title\"\n\taria-describedby=\"modal-body\">\n\t<div class=\"modal-dialog w-100\" [ngClass]=\"dialogCssClasses()\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 id=\"modal-title\" class=\"modal-title\">{{ title() }}</h5>\n\n\t\t\t\t@if (showClose()) {\n\t\t\t\t\t<ngx-icon-button\n\t\t\t\t\t\tcolor=\"secondary\"\n\t\t\t\t\t\tngxTooltip=\"close\"\n\t\t\t\t\t\t[ngxTooltipZIndex]=\"1055\"\n\t\t\t\t\t\tcdkFocusInitial\n\t\t\t\t\t\tclass=\"ms-2\"\n\t\t\t\t\t\t(onClick)=\"handleClickClose()\"\n\t\t\t\t\t\t[svg]=\"LibIcons.faXmark\" />\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div id=\"modal-body\" class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\" />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</section>\n<div class=\"modal-backdrop fade show\"></div>\n","import { ComponentRef, EmbeddedViewRef, Injectable, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { BaseModalComponent } from './ngx-base-modal.component';\nimport { NgxModalComponent } from './ngx-modal.component';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxModalService {\n\tviewContainerRef!: ViewContainerRef;\n\tcomponentRef!: ComponentRef<unknown>;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tif (!viewContainerRef) {\n\t\t\tthrow new Error('viewContainerRef needs to be defined!');\n\t\t}\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshowTemplate(templateRef: TemplateRef<NgxModalComponent>): EmbeddedViewRef<NgxModalComponent> {\n\t\tif (!this.viewContainerRef) {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t\treturn this.viewContainerRef.createEmbeddedView(templateRef);\n\t}\n\n\tcreateComponent<T extends BaseModalComponent>(component: Type<T>): ComponentRef<T> {\n\t\tif (!this.viewContainerRef) {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t\treturn this.viewContainerRef.createComponent(component);\n\t}\n\n\thide(): void {\n\t\tif (this.componentRef) {\n\t\t\tthis.componentRef.destroy();\n\t\t}\n\t}\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tHostBinding,\n\tinject,\n\tinput,\n\tInputSignal,\n\tOnDestroy,\n\tOnInit,\n\toutput,\n\tOutputEmitterRef,\n\tRenderer2,\n} from '@angular/core';\nimport { LibIcons } from '../../lib.icons';\nimport { NgxIconButtonComponent } from '../ngx-icon-button';\nimport { NgxTooltipDirective } from '../ngx-tooltip';\n\n@Component({\n\tselector: 'ngx-off-canvas',\n\ttemplateUrl: './ngx-off-canvas.component.html',\n\tstyles: `\n\t\t:host {\n\t\t\tz-index: 9999;\n\t\t\tdisplay: block;\n\t\t\toutline: none;\n\t\t}\n\t`,\n\timports: [NgxIconButtonComponent, NgxTooltipDirective, A11yModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxOffCanvasComponent implements OnInit, OnDestroy {\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\n\ttitle: InputSignal<string> = input('');\n\tonClose: OutputEmitterRef<void> = output();\n\n\tLibIcons: typeof LibIcons = LibIcons;\n\n\t@HostBinding('tabIndex') readonly tabIndex: number = -1;\n\t@HostBinding('attr.role') readonly role: string = 'dialog';\n\t@HostBinding('attr.aria-modal') readonly ariaModal: string = 'true';\n\t@HostBinding('attr.aria-labelledby') readonly ariaLabelledBy: string = 'ngx-offcanvas-title';\n\n\tngOnInit(): void {\n\t\tthis.renderer.addClass(document.body, 'overflow-y-hidden');\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.renderer.removeClass(document.body, 'overflow-y-hidden');\n\t}\n\n\thandleKeyDown($event: KeyboardEvent): void {\n\t\tif ($event.key.toLowerCase() === 'escape') {\n\t\t\tthis.onClose.emit();\n\t\t}\n\t}\n\n\thandleClickClose(): void {\n\t\tthis.onClose.emit();\n\t}\n}\n","<div\n\tclass=\"offcanvas offcanvas-start show\"\n\ttabindex=\"-1\"\n\tid=\"offcanvas\"\n\tstyle=\"z-index: 1051\"\n\tcdkTrapFocus\n\t[cdkTrapFocusAutoCapture]=\"true\"\n\t(keydown)=\"handleKeyDown($event)\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"ngx-offcanvas-title\">{{ title() }}</h5>\n\t\t<ngx-icon-button\n\t\t\tcolor=\"secondary\"\n\t\t\tclass=\"ml-auto\"\n\t\t\t(onClick)=\"handleClickClose()\"\n\t\t\t[svg]=\"LibIcons.faXmark\"\n\t\t\tngxTooltip=\"close menu\"\n\t\t\t[ngxTooltipZIndex]=\"1052\" />\n\t</div>\n\t<div class=\"overflow-y-scroll h-100\">\n\t\t<ng-content />\n\t</div>\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, model, ModelSignal } from '@angular/core';\n\n@Component({\n\tselector: 'ngx-tab-content',\n\ttemplateUrl: './ngx-tab-content.component.html',\n\tstyleUrl: './ngx-tab-content.component.scss',\n\timports: [CommonModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxTabContentComponent {\n\tisActive: ModelSignal<boolean> = model(false);\n}\n","<div class=\"tab-content\" [ngClass]=\"{ active: isActive() }\">\n\t<ng-content />\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tHostListener,\n\tinput,\n\tInputSignal,\n\tmodel,\n\tModelSignal,\n\toutput,\n\tOutputEmitterRef,\n} from '@angular/core';\nimport { NgxTabContentComponent } from './ngx-tab-content.component';\n\n@Component({\n\tselector: 'ngx-tab',\n\ttemplateUrl: './ngx-tab.component.html',\n\tstyleUrl: './ngx-tab.component.scss',\n\timports: [CommonModule],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxTabComponent {\n\tisActive: ModelSignal<boolean> = model<boolean>(false);\n\ttarget: InputSignal<NgxTabContentComponent> = input.required();\n\n\tonSelected: OutputEmitterRef<void> = output<void>();\n\n\t@HostListener('click')\n\tonClick(): void {\n\t\tthis.onSelected.emit();\n\t}\n}\n","<div class=\"tab\" [ngClass]=\"{ active: isActive() }\" tabindex=\"0\">\n\t<ng-content />\n</div>\n","import { AfterContentInit, ChangeDetectionStrategy, Component, contentChildren, Signal } from '@angular/core';\nimport { NgxTabContentComponent } from './ngx-tab-content.component';\nimport { NgxTabComponent } from './ngx-tab.component';\n\n@Component({\n\tselector: 'ngx-tabs',\n\ttemplateUrl: './ngx-tabs.component.html',\n\tstyleUrl: './ngx-tabs.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgxTabsComponent implements AfterContentInit {\n\ttabQueryList: Signal<readonly NgxTabComponent[]> = contentChildren(NgxTabComponent);\n\ttabContentQueryList: Signal<readonly NgxTabContentComponent[]> = contentChildren(NgxTabContentComponent);\n\n\tngAfterContentInit(): void {\n\t\tthis.tabQueryList().forEach(tab => {\n\t\t\ttab.onSelected.subscribe(() => this.selectTab(tab));\n\t\t});\n\n\t\tconst firstActiveTab: NgxTabComponent | undefined = this.tabQueryList().find(tab => tab.isActive());\n\t\tif (firstActiveTab) {\n\t\t\tthis.selectTab(firstActiveTab);\n\t\t} else if (this.tabQueryList().length > 0) {\n\t\t\tthis.selectTab(this.tabQueryList()[0]);\n\t\t}\n\t}\n\n\tselectTab(tabComponent: NgxTabComponent): void {\n\t\tthis.tabQueryList().forEach(tab => tab.isActive.update(() => tab === tabComponent));\n\t\tthis.tabContentQueryList().forEach(tabContent => tabContent.isActive.update(() => tabContent === tabComponent.target()));\n\t}\n}\n","<div class=\"tabs\">\n\t<ng-content select=\"ngx-tab\" />\n</div>\n<div class=\"tab-contents\">\n\t<ng-content select=\"ngx-tab-content\" />\n</div>\n","import { Component, Input, output, OutputEmitterRef } from '@angular/core';\n\n@Component({\n\tselector: 'ngx-toast',\n\ttemplate: `\n\t\t<div class=\"toast align-items-center text-bg-dark border-0 show\">\n\t\t\t<div class=\"d-flex\">\n\t\t\t\t<div class=\"toast-body\" [innerHTML]=\"message\"></div>\n\t\t\t\t<button class=\"btn-close btn-close-white me-2 m-auto\" (click)=\"onClose.emit()\"></button>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\tbottom: 20px;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%);\n\t\t\tz-index: 1051;\n\t\t}\n\t`,\n})\nexport class NgxToastComponent {\n\t@Input() message?: string;\n\tonClose: OutputEmitterRef<void> = output();\n}\n","import { ComponentRef, Injectable, ViewContainerRef } from '@angular/core';\nimport { NgxToastComponent } from './ngx-toast.component';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxToastService {\n\tprivate viewContainerRef!: ViewContainerRef;\n\tprivate componentRef!: ComponentRef<NgxToastComponent>;\n\tprivate interval: number | undefined;\n\n\tinit(viewContainer: ViewContainerRef): void {\n\t\tif (!viewContainer) {\n\t\t\tthrow new Error('viewContainerRef needs to be defined!');\n\t\t}\n\t\tthis.viewContainerRef = viewContainer;\n\t}\n\n\tshow(message: string, timeout: number = 1500): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tif (this.componentRef) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(NgxToastComponent);\n\t\t\tthis.componentRef.instance.message = message;\n\t\t\tthis.componentRef.instance.onClose.subscribe(() => {\n\t\t\t\tthis.hide();\n\t\t\t});\n\n\t\t\tthis.interval = window.setTimeout(() => {\n\t\t\t\tthis.hide();\n\t\t\t}, timeout);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\thide(): void {\n\t\tif (this.componentRef) {\n\t\t\tthis.componentRef.destroy();\n\t\t}\n\t\tif (this.interval) {\n\t\t\tclearTimeout(this.interval);\n\t\t}\n\t}\n}\n","import { NgxDecoratorClassType } from './ngx-decorator.types';\n\nexport const NgxClass =\n\t(className: string): NgxDecoratorClassType =>\n\t<T extends abstract new (...args: unknown[]) => unknown>(obj: T): void => {\n\t\tObject.defineProperty(obj.prototype, 'className', {\n\t\t\tvalue: className,\n\t\t\twritable: false,\n\t\t});\n\t};\n","export enum LogType {\n\tlog = 'log',\n\tinfo = 'info',\n\twarn = 'warn',\n\tdebug = 'debug',\n\terror = 'error',\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n\nimport { NgxDecoratorMethodType } from './ngx-decorator.types';\nimport { LogType } from './ngx-logtype.enum';\n\nexport function NgxLog(methodName?: string, logType: LogType = LogType.log, logArgs: boolean = false): NgxDecoratorMethodType {\n\treturn function (target: object, key: string | symbol, descriptor: PropertyDescriptor): PropertyDescriptor {\n\t\tconst originalMethod: (...args: unknown[]) => unknown = descriptor.value as (...args: unknown[]) => unknown;\n\n\t\tdescriptor.value = function (...args: unknown[]): unknown {\n\t\t\tconst className: string = target.constructor.name;\n\t\t\tconst newMethodName: string = methodName || key.toString();\n\n\t\t\tconst logStatements: unknown[] = [className, newMethodName, ...(logArgs ? args : [])];\n\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole[logType](...logStatements);\n\n\t\t\treturn originalMethod.apply(this, args);\n\t\t};\n\n\t\treturn descriptor;\n\t};\n}\n","import { AfterViewInit, Directive, ElementRef, inject, Input } from '@angular/core';\n\n@Directive({ selector: '[ngxCol]' })\nexport class NgxColDirective implements AfterViewInit {\n\tprivate readonly el: ElementRef = inject(ElementRef);\n\tspan: string = 'col';\n\n\t@Input() set col(val: string | null) {\n\t\tif (val) {\n\t\t\tthis.span = val;\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\t(this.el.nativeElement as HTMLElement).classList.add(this.span);\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxImageService {\n\tasync compress(imageBase64: string, quality: number = 0.8, fileType: string = 'image/jpeg'): Promise<string> {\n\t\tconst img: HTMLImageElement = await this.load(imageBase64);\n\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\tthis.drawImage(canvas, img);\n\t\treturn canvas.toDataURL(fileType, quality);\n\t}\n\n\tasync toBlob(imageBase64: string, quality: number = 1, fileType: string = 'image/jpeg'): Promise<Blob> {\n\t\tconst img: HTMLImageElement = await this.load(imageBase64);\n\t\tconst canvas: HTMLCanvasElement = this.createCanvas();\n\t\tthis.drawImage(canvas, img);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tcanvas.toBlob(\n\t\t\t\tblob => {\n\t\t\t\t\tif (blob) {\n\t\t\t\t\t\tresolve(blob);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject('Error on converting image to blob');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfileType,\n\t\t\t\tquality\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate load(imageBase64: string): Promise<HTMLImageElement> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst img: HTMLImageElement = new Image();\n\t\t\timg.onload = (): void => resolve(img);\n\t\t\timg.onerror = (event): void => reject(event);\n\t\t\timg.src = imageBase64;\n\t\t});\n\t}\n\n\tprivate createCanvas(): HTMLCanvasElement {\n\t\treturn document.createElement('canvas');\n\t}\n\n\tprivate drawImage(canvas: HTMLCanvasElement, img: HTMLImageElement): void {\n\t\tconst context: CanvasRenderingContext2D = canvas.getContext('2d')!;\n\t\tcanvas.width = img.width;\n\t\tcanvas.height = img.height;\n\t\tcontext.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t}\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function ngxDateAfterValidator<T extends { [key: string]: AbstractControl }>(\n\tstartDateControlKey: keyof T & string\n): (control: AbstractControl) => ValidationErrors | null {\n\treturn (endDateControl: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = endDateControl.parent;\n\t\tif (formGroup) {\n\t\t\tconst startDate: string | undefined = (formGroup as FormGroup).get(startDateControlKey)?.value;\n\t\t\tconst endDate: string = endDateControl.value;\n\n\t\t\tif (!startDate || !endDate) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tconst start: Date = new Date(startDate);\n\t\t\t\tconst end: Date = new Date(endDate);\n\n\t\t\t\tresult = start < end ? null : { dateAfterInvalid: true, startDateValue: startDate };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport function ngxMatchValidator<T extends { [key: string]: AbstractControl }>(\n\ttoMatchControlKey: keyof T & string\n): (control: AbstractControl) => ValidationErrors | null {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = control.parent;\n\t\tif (formGroup) {\n\t\t\tconst toMatchValue: unknown = (formGroup as FormGroup).get(toMatchControlKey)?.value;\n\t\t\tconst currentValue: unknown = control.value;\n\n\t\t\tif (!toMatchValue || !currentValue) {\n\t\t\t\tresult = null;\n\t\t\t} else {\n\t\t\t\tresult = toMatchValue === currentValue ? null : { match: true };\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AbstractControl, FormArray, FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function ngxTimeAfterValidator<T extends { [key: string]: AbstractControl }>(startTimeControlKey: keyof T & string): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tlet result: ValidationErrors | null = null;\n\n\t\tconst formGroup: FormGroup<T> | FormArray | null = control.parent;\n\t\tif (formGroup) {\n\t\t\tconst startTimeControl: AbstractControl | null = (formGroup as FormGroup).get(startTimeControlKey);\n\t\t\tif (startTimeControl) {\n\t\t\t\tif (!control.value || !startTimeControl.value) {\n\t\t\t\t\tresult = null; // Keine Validierung, wenn entweder Start- oder Endzeit fehlt\n\t\t\t\t}\n\n\t\t\t\tconst startTime: string = startTimeControl.value;\n\t\t\t\tconst endTime: string = control.value;\n\n\t\t\t\t// Umwandlung der Zeit in Minuten (z.B. 20:00 Uhr = 1200 Minuten)\n\t\t\t\tif (startTime && endTime) {\n\t\t\t\t\tconst startMinutes: number = convertToMinutes(startTime);\n\t\t\t\t\tconst endMinutes: number = convertToMinutes(endTime);\n\t\t\t\t\tif (endMinutes <= startMinutes) {\n\t\t\t\t\t\tresult = { timeAfterError: startTimeControl.value };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}\n\n// Funktion zur Umwandlung von Zeit in Minuten\nfunction convertToMinutes(time: string): number {\n\tconst [hours, minutes] = time.split(':').map(Number);\n\treturn hours * 60 + minutes;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1"],"mappings":"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"}
|
package/package.json
CHANGED
package/types/ngx-gccb.d.ts
CHANGED
|
@@ -88,15 +88,14 @@ declare class NgxDropdownDirective implements OnDestroy {
|
|
|
88
88
|
private readonly viewContainerRef;
|
|
89
89
|
private readonly injector;
|
|
90
90
|
private readonly overlay;
|
|
91
|
-
private readonly overlayPositionBuilder;
|
|
92
91
|
private readonly focusTrapFactory;
|
|
93
92
|
private readonly hostComponent;
|
|
94
93
|
ngxDropdown: InputSignal<TemplateRef<unknown>>;
|
|
95
94
|
ngxDropdownItemSelected: OutputEmitterRef<unknown>;
|
|
96
95
|
placement: InputSignal<'bottom-start' | 'bottom-end'>;
|
|
97
96
|
private overlayRef?;
|
|
98
|
-
private isDropdownVisible;
|
|
99
97
|
private focusTrap?;
|
|
98
|
+
isDropdownVisible: boolean;
|
|
100
99
|
ngOnDestroy(): void;
|
|
101
100
|
toggleDropdown(): void;
|
|
102
101
|
handleKeyboardEvent(): void;
|
|
@@ -243,6 +242,7 @@ declare class NgxIconComponent {
|
|
|
243
242
|
}
|
|
244
243
|
|
|
245
244
|
declare class NgxIconButtonComponent {
|
|
245
|
+
private readonly elementRef;
|
|
246
246
|
svg: InputSignal<string>;
|
|
247
247
|
type: InputSignal<string | undefined>;
|
|
248
248
|
color: InputSignal<string>;
|
|
@@ -254,6 +254,7 @@ declare class NgxIconButtonComponent {
|
|
|
254
254
|
onFocus: OutputEmitterRef<FocusEvent>;
|
|
255
255
|
onBlur: OutputEmitterRef<FocusEvent>;
|
|
256
256
|
getCssClasses: Signal<string>;
|
|
257
|
+
focus(): void;
|
|
257
258
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxIconButtonComponent, never>;
|
|
258
259
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgxIconButtonComponent, "ngx-icon-button", never, { "svg": { "alias": "svg"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; "onFocus": "onFocus"; "onBlur": "onBlur"; }, never, never, true, never>;
|
|
259
260
|
}
|
|
@@ -297,7 +298,7 @@ declare class NgxLoadingIndicatorComponent {
|
|
|
297
298
|
|
|
298
299
|
declare class NgxLoadingIndicatorService {
|
|
299
300
|
viewContainerRef: ViewContainerRef;
|
|
300
|
-
componentRef
|
|
301
|
+
componentRef?: ComponentRef<NgxLoadingIndicatorComponent>;
|
|
301
302
|
init(viewContainer: ViewContainerRef): void;
|
|
302
303
|
show(): void;
|
|
303
304
|
hide(): void;
|