ngx-gccb 0.2.2 → 0.3.1
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 +19 -1
- package/esm2022/lib/components/modal/modal.component.mjs +3 -3
- package/esm2022/lib/components/off-canvas/off-canvas.component.mjs +3 -3
- package/esm2022/lib/components/toast/toast.component.mjs +3 -11
- package/esm2022/lib/directives/button.directive.mjs +4 -2
- package/esm2022/lib/directives/dropdown.directive.mjs +48 -17
- package/fesm2022/ngx-gccb.mjs +56 -31
- package/fesm2022/ngx-gccb.mjs.map +1 -1
- package/lib/directives/button.directive.d.ts +1 -0
- package/lib/directives/dropdown.directive.d.ts +7 -4
- package/package.json +3 -2
package/assets/styles.scss
CHANGED
|
@@ -32,7 +32,7 @@ $btn-border-width: 2px;
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.btn {
|
|
35
|
-
min-width:
|
|
35
|
+
min-width: 62px;
|
|
36
36
|
line-height: 21px;
|
|
37
37
|
text-transform: uppercase;
|
|
38
38
|
}
|
|
@@ -103,3 +103,21 @@ $btn-border-width: 2px;
|
|
|
103
103
|
justify-content: center;
|
|
104
104
|
margin-right: 1rem;
|
|
105
105
|
}
|
|
106
|
+
|
|
107
|
+
.dropdown-menu {
|
|
108
|
+
margin: 0 !important;
|
|
109
|
+
padding: 0 !important;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.dropdown-item {
|
|
113
|
+
padding: 0.75rem 1.25rem !important;
|
|
114
|
+
border-radius: var(--bs-dropdown-item-border-radius, 0);
|
|
115
|
+
&:hover {
|
|
116
|
+
cursor: pointer;
|
|
117
|
+
}
|
|
118
|
+
&.dropdown-item.active,
|
|
119
|
+
&.dropdown-item:active {
|
|
120
|
+
color: var(--secondary-hover);
|
|
121
|
+
background-color: rgba(0, 0, 0, 0.04);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -26,11 +26,11 @@ export class ModalComponent {
|
|
|
26
26
|
this.onClose.next();
|
|
27
27
|
}
|
|
28
28
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { title: "title", showClose: "showClose", fullScreen: "fullScreen" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\"
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { title: "title", showClose: "showClose", fullScreen: "fullScreen" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "shadow"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
|
|
30
30
|
}
|
|
31
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ModalComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
|
-
args: [{ selector: 'app-modal', standalone: true, imports: [CommonModule, IconButtonDirective, FontAwesomeModule], template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\"
|
|
33
|
+
args: [{ selector: 'app-modal', standalone: true, imports: [CommonModule, IconButtonDirective, FontAwesomeModule], template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n" }]
|
|
34
34
|
}], propDecorators: { title: [{
|
|
35
35
|
type: Input
|
|
36
36
|
}], showClose: [{
|
|
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
40
40
|
}], onClose: [{
|
|
41
41
|
type: Output
|
|
42
42
|
}] } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFrQixNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBUXZELE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBT1UsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixjQUFTLEdBQVksSUFBSSxDQUFDO1FBVXpCLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzRCxxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFDaEMsWUFBTyxHQUFtQixPQUFPLENBQUM7S0FLbEM7SUFoQkEsSUFBYSxVQUFVLENBQUMsR0FBWTtRQUNuQyxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDcEcsQ0FBQztJQUNGLENBQUM7SUFPRCxnQkFBZ0I7UUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7K0dBbkJXLGNBQWM7bUdBQWQsY0FBYyxvTENaM0Isb3dCQXVCQSwyQ0RiVyxZQUFZLDZIQUFFLG1CQUFtQiwwR0FBRSxpQkFBaUI7OzRGQUVsRCxjQUFjO2tCQU4xQixTQUFTOytCQUNDLFdBQVcsY0FFVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUM7OEJBR3RELEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBUUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYVRpbWVzLCBJY29uRGVmaW5pdGlvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBJY29uQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2FwcC1tb2RhbCcsXG5cdHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25CdXR0b25EaXJlY3RpdmUsIEZvbnRBd2Vzb21lTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQge1xuXHRASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJyc7XG5cdEBJbnB1dCgpIHNob3dDbG9zZTogYm9vbGVhbiA9IHRydWU7XG5cblx0QElucHV0KCkgc2V0IGZ1bGxTY3JlZW4odmFsOiBib29sZWFuKSB7XG5cdFx0aWYgKHZhbCA9PT0gdHJ1ZSkge1xuXHRcdFx0dGhpcy5kaWFsb2dDc3NDbGFzc2VzLnB1c2goYG1vZGFsLWZ1bGxzY3JlZW5gKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5kaWFsb2dDc3NDbGFzc2VzID0gdGhpcy5kaWFsb2dDc3NDbGFzc2VzLnJlbW92ZUJ5KChjc3NDbGFzcykgPT4gY3NzQ2xhc3MsICdtb2RhbC1mdWxsc2NyZWVuJyk7XG5cdFx0fVxuXHR9XG5cblx0QE91dHB1dCgpIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRkaWFsb2dDc3NDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXHRmYVRpbWVzOiBJY29uRGVmaW5pdGlvbiA9IGZhVGltZXM7XG5cblx0aGFuZGxlQ2xpY2tDbG9zZSgpOiB2b2lkIHtcblx0XHR0aGlzLm9uQ2xvc2UubmV4dCgpO1xuXHR9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCIgdGFiaW5kZXg9XCItMVwiPlxuXHQ8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nXCIgW25nQ2xhc3NdPVwiZGlhbG9nQ3NzQ2xhc3Nlc1wiPlxuXHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG5cdFx0XHRcdDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+e3sgdGl0bGUgfX08L2g1PlxuXHRcdFx0XHRAaWYgKHNob3dDbG9zZSkge1xuXHRcdFx0XHRcdDxidXR0b24gYXBwLWljb24tYnV0dG9uPVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJtcy0yXCIgKGNsaWNrKT1cImhhbmRsZUNsaWNrQ2xvc2UoKVwiPlxuXHRcdFx0XHRcdFx0PGZhLWljb24gW2ljb25dPVwiZmFUaW1lc1wiIC8+XG5cdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdH1cblx0XHRcdDwvZGl2PlxuXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuXHRcdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdFx0PC9kaXY+XG5cblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cblx0XHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb2RhbC1iYWNrZHJvcCBmYWRlIHNob3dcIj48L2Rpdj5cbiJdfQ==
|
|
@@ -14,14 +14,14 @@ export class OffCanvasComponent {
|
|
|
14
14
|
this.onClose.next();
|
|
15
15
|
}
|
|
16
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: OffCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: OffCanvasComponent, isStandalone: true, selector: "app-off-canvas", inputs: { title: "title" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\"
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: OffCanvasComponent, isStandalone: true, selector: "app-off-canvas", inputs: { title: "title" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n", styles: [":host{z-index:9999;display:block}\n"], dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "shadow"] }] }); }
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: OffCanvasComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
|
-
args: [{ selector: 'app-off-canvas', standalone: true, imports: [FontAwesomeModule, IconButtonDirective], template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\"
|
|
21
|
+
args: [{ selector: 'app-off-canvas', standalone: true, imports: [FontAwesomeModule, IconButtonDirective], template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n", styles: [":host{z-index:9999;display:block}\n"] }]
|
|
22
22
|
}], propDecorators: { title: [{
|
|
23
23
|
type: Input
|
|
24
24
|
}], onClose: [{
|
|
25
25
|
type: Output
|
|
26
26
|
}] } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmLWNhbnZhcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2NvbXBvbmVudHMvb2ZmLWNhbnZhcy9vZmYtY2FudmFzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvY29tcG9uZW50cy9vZmYtY2FudmFzL29mZi1jYW52YXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFrQixNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFhdkQsTUFBTSxPQUFPLGtCQUFrQjtJQVovQjtRQWFVLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbEIsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNELFlBQU8sR0FBbUIsT0FBTyxDQUFDO0tBS2xDO0lBSEEsZ0JBQWdCO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQVJXLGtCQUFrQjttR0FBbEIsa0JBQWtCLHVJQ2hCL0Isd2ZBV0EsNEZER1csaUJBQWlCLDZQQUFFLG1CQUFtQjs7NEZBRXBDLGtCQUFrQjtrQkFaOUIsU0FBUzsrQkFDQyxnQkFBZ0IsY0FFZCxJQUFJLFdBT1AsQ0FBQyxpQkFBaUIsRUFBRSxtQkFBbUIsQ0FBQzs4QkFHeEMsS0FBSztzQkFBYixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYVRpbWVzLCBJY29uRGVmaW5pdGlvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBJY29uQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtb2ZmLWNhbnZhcycsXG5cdHRlbXBsYXRlVXJsOiAnLi9vZmYtY2FudmFzLmNvbXBvbmVudC5odG1sJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c3R5bGVzOiBgXG5cdFx0Omhvc3Qge1xuXHRcdFx0ei1pbmRleDogOTk5OTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0YCxcblx0aW1wb3J0czogW0ZvbnRBd2Vzb21lTW9kdWxlLCBJY29uQnV0dG9uRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgT2ZmQ2FudmFzQ29tcG9uZW50IHtcblx0QElucHV0KCkgdGl0bGU6IHN0cmluZyA9ICcnO1xuXHRAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdGZhVGltZXM6IEljb25EZWZpbml0aW9uID0gZmFUaW1lcztcblxuXHRoYW5kbGVDbGlja0Nsb3NlKCk6IHZvaWQge1xuXHRcdHRoaXMub25DbG9zZS5uZXh0KCk7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvZmZjYW52YXMgb2ZmY2FudmFzLXN0YXJ0IHNob3dcIiB0YWJpbmRleD1cIi0xXCIgaWQ9XCJvZmZjYW52YXNcIiBzdHlsZT1cInotaW5kZXg6IDEwNTFcIj5cblx0PGRpdiBjbGFzcz1cIm9mZmNhbnZhcy1oZWFkZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cblx0XHQ8aDUgY2xhc3M9XCJvZmZjYW52YXMtdGl0bGVcIiBpZD1cIm9mZmNhbnZhc0xhYmVsXCI+e3sgdGl0bGUgfX08L2g1PlxuXHRcdDxidXR0b24gYXBwLWljb24tYnV0dG9uPVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJtbC1hdXRvXCIgKGNsaWNrKT1cImhhbmRsZUNsaWNrQ2xvc2UoKVwiPlxuXHRcdFx0PGZhLWljb24gW2ljb25dPVwiZmFUaW1lc1wiIC8+XG5cdFx0PC9idXR0b24+XG5cdDwvZGl2PlxuXHQ8bmctY29udGVudCAvPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJtb2RhbC1iYWNrZHJvcCBmYWRlIHNob3dcIiAoY2xpY2spPVwiaGFuZGxlQ2xpY2tDbG9zZSgpXCI+PC9kaXY+XG4iXX0=
|
|
@@ -9,11 +9,7 @@ export class ToastComponent {
|
|
|
9
9
|
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
10
10
|
<div class="d-flex">
|
|
11
11
|
<div class="toast-body" [innerHTML]="message"></div>
|
|
12
|
-
<button
|
|
13
|
-
type="button"
|
|
14
|
-
class="btn-close btn-close-white me-2 m-auto"
|
|
15
|
-
(click)="onClose.next()"
|
|
16
|
-
></button>
|
|
12
|
+
<button class="btn-close btn-close-white me-2 m-auto" (click)="onClose.next()"></button>
|
|
17
13
|
</div>
|
|
18
14
|
</div>
|
|
19
15
|
`, isInline: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }); }
|
|
@@ -24,11 +20,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
24
20
|
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
25
21
|
<div class="d-flex">
|
|
26
22
|
<div class="toast-body" [innerHTML]="message"></div>
|
|
27
|
-
<button
|
|
28
|
-
type="button"
|
|
29
|
-
class="btn-close btn-close-white me-2 m-auto"
|
|
30
|
-
(click)="onClose.next()"
|
|
31
|
-
></button>
|
|
23
|
+
<button class="btn-close btn-close-white me-2 m-auto" (click)="onClose.next()"></button>
|
|
32
24
|
</div>
|
|
33
25
|
</div>
|
|
34
26
|
`, standalone: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }]
|
|
@@ -37,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
37
29
|
}], onClose: [{
|
|
38
30
|
type: Output
|
|
39
31
|
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXVCdkUsTUFBTSxPQUFPLGNBQWM7SUFyQjNCO1FBdUJXLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQUMzRDsrR0FIWSxjQUFjO21HQUFkLGNBQWMsc0lBbkJoQjs7Ozs7OztFQU9UOzs0RkFZVyxjQUFjO2tCQXJCMUIsU0FBUzsrQkFDQyxXQUFXLFlBQ1g7Ozs7Ozs7RUFPVCxjQVVXLElBQUk7OEJBR1AsT0FBTztzQkFBZixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdhcHAtdG9hc3QnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgY2xhc3M9XCJ0b2FzdCBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1iZy1kYXJrIGJvcmRlci0wIHNob3dcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInRvYXN0LWJvZHlcIiBbaW5uZXJIVE1MXT1cIm1lc3NhZ2VcIj48L2Rpdj5cblx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0bi1jbG9zZSBidG4tY2xvc2Utd2hpdGUgbWUtMiBtLWF1dG9cIiAoY2xpY2spPVwib25DbG9zZS5uZXh0KClcIj48L2J1dHRvbj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRgLFxuXHRzdHlsZXM6IGBcblx0XHQ6aG9zdCB7XG5cdFx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0XHRib3R0b206IDIwcHg7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcblx0XHRcdHotaW5kZXg6IDEwNTE7XG5cdFx0fVxuXHRgLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdENvbXBvbmVudCB7XG5cdEBJbnB1dCgpIG1lc3NhZ2U/OiBzdHJpbmc7XG5cdEBPdXRwdXQoKSBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG59XG4iXX0=
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostListener, Input, inject } from '@angular/core';
|
|
1
|
+
import { Directive, ElementRef, HostListener, Input, Renderer2, inject } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class ButtonDirective {
|
|
4
4
|
constructor() {
|
|
5
5
|
this.elementRef = inject((ElementRef));
|
|
6
|
+
this.renderer = inject(Renderer2);
|
|
6
7
|
this._variant = 'contained';
|
|
7
8
|
}
|
|
8
9
|
onFocus() {
|
|
@@ -37,6 +38,7 @@ export class ButtonDirective {
|
|
|
37
38
|
this.elementRef.nativeElement.classList.add(`btn-${this.color}`);
|
|
38
39
|
}
|
|
39
40
|
this.elementRef.nativeElement.classList.add('flex-shrink-0');
|
|
41
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'type', 'button');
|
|
40
42
|
}
|
|
41
43
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
42
44
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: ButtonDirective, isStandalone: true, selector: "button[app-button]", inputs: { appButton: ["app-button", "appButton"], variant: "variant", size: "size" }, host: { listeners: { "focus": "onFocus($event)", "blur": "onblur($event)" } }, ngImport: i0 }); }
|
|
@@ -61,4 +63,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
61
63
|
}], size: [{
|
|
62
64
|
type: Input
|
|
63
65
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvZGlyZWN0aXZlcy9idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNdEcsTUFBTSxPQUFPLGVBQWU7SUFKNUI7UUFLa0IsZUFBVSxHQUFrQyxNQUFNLENBQUMsQ0FBQSxVQUE2QixDQUFBLENBQUMsQ0FBQztRQUNsRixhQUFRLEdBQWMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXpELGFBQVEsR0FBVyxXQUFXLENBQUM7S0F3Qy9CO0lBdENtQyxPQUFPO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFaUMsTUFBTTtRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsR0FBWTtRQUN6QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBeUIsU0FBUyxDQUFDLEdBQVc7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFhLE9BQU8sQ0FBQyxHQUFxQztRQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBYSxJQUFJLENBQUMsR0FBVztRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFFBQVE7UUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRixDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0UsQ0FBQzsrR0EzQ1csZUFBZTttR0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNoQjs4QkFPbUMsT0FBTztzQkFBekMsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBSUMsTUFBTTtzQkFBdkMsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBWVAsU0FBUztzQkFBakMsS0FBSzt1QkFBQyxZQUFZO2dCQUlOLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdidXR0b25bYXBwLWJ1dHRvbl0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXHRwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KTtcblx0cHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cdGNvbG9yITogc3RyaW5nO1xuXHRfdmFyaWFudDogc3RyaW5nID0gJ2NvbnRhaW5lZCc7XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnLCBbJyRldmVudCddKSBvbkZvY3VzKCk6IHZvaWQge1xuXHRcdHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2JsdXInLCBbJyRldmVudCddKSBvbmJsdXIoKTogdm9pZCB7XG5cdFx0dGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcblx0fVxuXG5cdHNldCBpc0ZvY3VzZWQodmFsOiBib29sZWFuKSB7XG5cdFx0aWYgKHZhbCkge1xuXHRcdFx0dGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgZm9jdXMtcmluZy0ke3RoaXMuY29sb3J9YCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoYGZvY3VzLXJpbmctJHt0aGlzLmNvbG9yfWApO1xuXHRcdH1cblx0fVxuXG5cdEBJbnB1dCgnYXBwLWJ1dHRvbicpIHNldCBhcHBCdXR0b24odmFsOiBzdHJpbmcpIHtcblx0XHR0aGlzLmNvbG9yID0gdmFsIHx8ICdwcmltYXJ5Jztcblx0fVxuXG5cdEBJbnB1dCgpIHNldCB2YXJpYW50KHZhbDogJ2NvbnRhaW5lZCcgfCAnb3V0bGluZScgfCAndGV4dCcpIHtcblx0XHR0aGlzLl92YXJpYW50ID0gdmFsO1xuXHR9XG5cblx0QElucHV0KCkgc2V0IHNpemUodmFsOiBzdHJpbmcpIHtcblx0XHR0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBidG4tJHt2YWwgfHwgJ3NtJ31gKTtcblx0fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2J0bicpO1xuXHRcdGlmICh0aGlzLl92YXJpYW50ID09PSAnb3V0bGluZScgfHwgdGhpcy5fdmFyaWFudCA9PT0gJ3RleHQnKSB7XG5cdFx0XHR0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBidG4tJHt0aGlzLl92YXJpYW50fS0ke3RoaXMuY29sb3J9YCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYGJ0bi0ke3RoaXMuY29sb3J9YCk7XG5cdFx0fVxuXHRcdHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2ZsZXgtc2hyaW5rLTAnKTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3R5cGUnLCAnYnV0dG9uJyk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
import { Directive, ElementRef, HostListener, inject, Input, Renderer2, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { createPopper } from '@popperjs/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class DropdownDirective {
|
|
4
5
|
constructor() {
|
|
6
|
+
this.placement = 'bottom-start';
|
|
5
7
|
this.elementRef = inject(ElementRef);
|
|
6
8
|
this.renderer = inject(Renderer2);
|
|
7
9
|
this.viewContainer = inject(ViewContainerRef);
|
|
8
10
|
this.isDropdownVisible = false;
|
|
9
|
-
// Listener für Klicks außerhalb des Dropdowns
|
|
10
11
|
this.documentClickListener = this.onDocumentClick.bind(this);
|
|
11
12
|
}
|
|
12
|
-
// Initialisiere das Wrapper-Element mit der Klasse "dropdown" direkt beim Erstellen
|
|
13
13
|
ngOnInit() {
|
|
14
14
|
if (!this.wrapperElement) {
|
|
15
|
-
// Erstelle das Wrapper-Div mit der Klasse "dropdown"
|
|
16
15
|
this.wrapperElement = this.renderer.createElement('div');
|
|
17
16
|
this.renderer.addClass(this.wrapperElement, 'dropdown');
|
|
18
17
|
const parent = this.elementRef.nativeElement.parentNode;
|
|
19
|
-
// Füge das Wrapper-Div vor das Button-Element ein und verschiebe das Button-Element hinein
|
|
20
18
|
this.renderer.insertBefore(parent, this.wrapperElement, this.elementRef.nativeElement);
|
|
21
19
|
this.renderer.appendChild(this.wrapperElement, this.elementRef.nativeElement);
|
|
22
20
|
}
|
|
@@ -30,46 +28,77 @@ export class DropdownDirective {
|
|
|
30
28
|
}
|
|
31
29
|
}
|
|
32
30
|
openDropdown() {
|
|
33
|
-
if (!this.dropdownContent) {
|
|
34
|
-
// Erstelle das Dropdown-Template und füge es dem Wrapper-Div hinzu
|
|
31
|
+
if (!this.dropdownContent && this.wrapperElement) {
|
|
35
32
|
const dropdownView = this.viewContainer.createEmbeddedView(this.dropdownTemplate);
|
|
36
33
|
this.dropdownContent = dropdownView.rootNodes[0];
|
|
37
|
-
// Füge das Dropdown-Menü in das Wrapper-Div ein
|
|
38
34
|
this.renderer.appendChild(this.wrapperElement, this.dropdownContent);
|
|
39
|
-
// Füge EventListener zu den Dropdown-Links hinzu, um das Dropdown zu schließen
|
|
40
35
|
this.addDropdownLinksListener();
|
|
36
|
+
this.popperInstance = createPopper(this.wrapperElement, this.dropdownContent, {
|
|
37
|
+
placement: this.placement,
|
|
38
|
+
modifiers: [
|
|
39
|
+
{
|
|
40
|
+
name: 'offset',
|
|
41
|
+
options: {
|
|
42
|
+
offset: ({ placement }) => {
|
|
43
|
+
if (placement.startsWith('bottom')) {
|
|
44
|
+
return [0, -this.wrapperElement?.offsetHeight];
|
|
45
|
+
}
|
|
46
|
+
if (placement.startsWith('top')) {
|
|
47
|
+
return [0, -this.wrapperElement?.offsetHeight];
|
|
48
|
+
}
|
|
49
|
+
if (placement.startsWith('left')) {
|
|
50
|
+
return [0, -this.wrapperElement?.offsetWidth];
|
|
51
|
+
}
|
|
52
|
+
return [0, 0];
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'flip',
|
|
58
|
+
options: {
|
|
59
|
+
fallbackPlacements: ['right-start', 'top-start', 'left-start'],
|
|
60
|
+
boundary: 'viewport',
|
|
61
|
+
padding: 0,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'preventOverflow',
|
|
66
|
+
options: {
|
|
67
|
+
boundary: 'viewport',
|
|
68
|
+
padding: 0,
|
|
69
|
+
tether: false,
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
});
|
|
41
74
|
}
|
|
42
|
-
// Event-Listener für den Klick außerhalb des Dropdowns
|
|
43
75
|
document.addEventListener('click', this.documentClickListener);
|
|
44
76
|
this.isDropdownVisible = true;
|
|
45
77
|
}
|
|
46
78
|
closeDropdown() {
|
|
47
79
|
if (this.dropdownContent) {
|
|
48
|
-
// Entferne das Dropdown-Template
|
|
49
80
|
this.viewContainer.clear();
|
|
50
81
|
this.dropdownContent = null;
|
|
82
|
+
this.popperInstance?.destroy();
|
|
51
83
|
}
|
|
52
|
-
// Entferne den Event-Listener für Klicks außerhalb
|
|
53
84
|
document.removeEventListener('click', this.documentClickListener);
|
|
54
85
|
this.isDropdownVisible = false;
|
|
55
86
|
}
|
|
56
|
-
// Funktion, die aufgerufen wird, wenn ein Klick auf das Dokument erkannt wird
|
|
57
87
|
onDocumentClick(event) {
|
|
58
88
|
if (this.wrapperElement && !this.wrapperElement.contains(event.target) && !this.elementRef.nativeElement.contains(event.target)) {
|
|
59
89
|
this.closeDropdown();
|
|
60
90
|
}
|
|
61
91
|
}
|
|
62
|
-
// Funktion, um den EventListener für Links im Dropdown hinzuzufügen
|
|
63
92
|
addDropdownLinksListener() {
|
|
64
|
-
const links = this.dropdownContent?.querySelectorAll('
|
|
93
|
+
const links = this.dropdownContent?.querySelectorAll('.dropdown-item');
|
|
65
94
|
links?.forEach(link => {
|
|
66
95
|
this.renderer.listen(link, 'click', () => {
|
|
67
|
-
this.closeDropdown();
|
|
96
|
+
this.closeDropdown();
|
|
68
97
|
});
|
|
69
98
|
});
|
|
70
99
|
}
|
|
71
100
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
72
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: DropdownDirective, isStandalone: true, selector: "[appDropdown]", inputs: { dropdownTemplate: ["appDropdown", "dropdownTemplate"] }, host: { listeners: { "click": "toggleDropdown()" } }, ngImport: i0 }); }
|
|
101
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: DropdownDirective, isStandalone: true, selector: "[appDropdown]", inputs: { dropdownTemplate: ["appDropdown", "dropdownTemplate"], placement: "placement" }, host: { listeners: { "click": "toggleDropdown()" } }, ngImport: i0 }); }
|
|
73
102
|
}
|
|
74
103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownDirective, decorators: [{
|
|
75
104
|
type: Directive,
|
|
@@ -80,8 +109,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
80
109
|
}], ctorParameters: () => [], propDecorators: { dropdownTemplate: [{
|
|
81
110
|
type: Input,
|
|
82
111
|
args: ['appDropdown']
|
|
112
|
+
}], placement: [{
|
|
113
|
+
type: Input
|
|
83
114
|
}], toggleDropdown: [{
|
|
84
115
|
type: HostListener,
|
|
85
116
|
args: ['click']
|
|
86
117
|
}] } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9kaXJlY3RpdmVzL2Ryb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTdILE1BQU0sT0FBTyxpQkFBaUI7SUFhN0I7UUFWaUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFJbEQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBS2pDLDhDQUE4QztRQUM5QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELG9GQUFvRjtJQUNwRixRQUFRO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxQixxREFBcUQ7WUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUV4RCwyRkFBMkY7WUFDM0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FB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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBJbnB1dCwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYXBwRHJvcGRvd25dJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25EaXJlY3RpdmUge1xuXHRASW5wdXQoJ2FwcERyb3Bkb3duJykgZHJvcGRvd25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cblx0cHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXHRwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cdHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuXHRwcml2YXRlIHdyYXBwZXJFbGVtZW50ITogSFRNTEVsZW1lbnQgfCBudWxsO1xuXHRwcml2YXRlIGRyb3Bkb3duQ29udGVudCE6IEhUTUxFbGVtZW50IHwgbnVsbDtcblx0cHJpdmF0ZSBpc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuXG5cdHByaXZhdGUgZG9jdW1lbnRDbGlja0xpc3RlbmVyITogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdC8vIExpc3RlbmVyIGbDvHIgS2xpY2tzIGF1w59lcmhhbGIgZGVzIERyb3Bkb3duc1xuXHRcdHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyID0gdGhpcy5vbkRvY3VtZW50Q2xpY2suYmluZCh0aGlzKTtcblx0fVxuXG5cdC8vIEluaXRpYWxpc2llcmUgZGFzIFdyYXBwZXItRWxlbWVudCBtaXQgZGVyIEtsYXNzZSBcImRyb3Bkb3duXCIgZGlyZWt0IGJlaW0gRXJzdGVsbGVuXG5cdG5nT25Jbml0KCkge1xuXHRcdGlmICghdGhpcy53cmFwcGVyRWxlbWVudCkge1xuXHRcdFx0Ly8gRXJzdGVsbGUgZGFzIFdyYXBwZXItRGl2IG1pdCBkZXIgS2xhc3NlIFwiZHJvcGRvd25cIlxuXHRcdFx0dGhpcy53cmFwcGVyRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMud3JhcHBlckVsZW1lbnQsICdkcm9wZG93bicpO1xuXHRcdFx0Y29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcblxuXHRcdFx0Ly8gRsO8Z2UgZGFzIFdyYXBwZXItRGl2IHZvciBkYXMgQnV0dG9uLUVsZW1lbnQgZWluIHVuZCB2ZXJzY2hpZWJlIGRhcyBCdXR0b24tRWxlbWVudCBoaW5laW5cblx0XHRcdHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHBhcmVudCwgdGhpcy53cmFwcGVyRWxlbWVudCwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLndyYXBwZXJFbGVtZW50LCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignY2xpY2snKVxuXHR0b2dnbGVEcm9wZG93bigpIHtcblx0XHRpZiAodGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSkge1xuXHRcdFx0dGhpcy5jbG9zZURyb3Bkb3duKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMub3BlbkRyb3Bkb3duKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBvcGVuRHJvcGRvd24oKSB7XG5cdFx0aWYgKCF0aGlzLmRyb3Bkb3duQ29udGVudCkge1xuXHRcdFx0Ly8gRXJzdGVsbGUgZGFzIERyb3Bkb3duLVRlbXBsYXRlIHVuZCBmw7xnZSBlcyBkZW0gV3JhcHBlci1EaXYgaGluenVcblx0XHRcdGNvbnN0IGRyb3Bkb3duVmlldyA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5kcm9wZG93blRlbXBsYXRlKTtcblx0XHRcdHRoaXMuZHJvcGRvd25Db250ZW50ID0gZHJvcGRvd25WaWV3LnJvb3ROb2Rlc1swXTtcblxuXHRcdFx0Ly8gRsO8Z2UgZGFzIERyb3Bkb3duLU1lbsO8IGluIGRhcyBXcmFwcGVyLURpdiBlaW5cblx0XHRcdHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy53cmFwcGVyRWxlbWVudCwgdGhpcy5kcm9wZG93bkNvbnRlbnQpO1xuXG5cdFx0XHQvLyBGw7xnZSBFdmVudExpc3RlbmVyIHp1IGRlbiBEcm9wZG93bi1MaW5rcyBoaW56dSwgdW0gZGFzIERyb3Bkb3duIHp1IHNjaGxpZcOfZW5cblx0XHRcdHRoaXMuYWRkRHJvcGRvd25MaW5rc0xpc3RlbmVyKCk7XG5cdFx0fVxuXG5cdFx0Ly8gRXZlbnQtTGlzdGVuZXIgZsO8ciBkZW4gS2xpY2sgYXXDn2VyaGFsYiBkZXMgRHJvcGRvd25zXG5cdFx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcik7XG5cblx0XHR0aGlzLmlzRHJvcGRvd25WaXNpYmxlID0gdHJ1ZTtcblx0fVxuXG5cdHByaXZhdGUgY2xvc2VEcm9wZG93bigpIHtcblx0XHRpZiAodGhpcy5kcm9wZG93bkNvbnRlbnQpIHtcblx0XHRcdC8vIEVudGZlcm5lIGRhcyBEcm9wZG93bi1UZW1wbGF0ZVxuXHRcdFx0dGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG5cdFx0XHR0aGlzLmRyb3Bkb3duQ29udGVudCA9IG51bGw7XG5cdFx0fVxuXG5cdFx0Ly8gRW50ZmVybmUgZGVuIEV2ZW50LUxpc3RlbmVyIGbDvHIgS2xpY2tzIGF1w59lcmhhbGJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyKTtcblxuXHRcdHRoaXMuaXNEcm9wZG93blZpc2libGUgPSBmYWxzZTtcblx0fVxuXG5cdC8vIEZ1bmt0aW9uLCBkaWUgYXVmZ2VydWZlbiB3aXJkLCB3ZW5uIGVpbiBLbGljayBhdWYgZGFzIERva3VtZW50IGVya2FubnQgd2lyZFxuXHRwcml2YXRlIG9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuXHRcdGlmICh0aGlzLndyYXBwZXJFbGVtZW50ICYmICF0aGlzLndyYXBwZXJFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJiAhdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG5cdFx0XHR0aGlzLmNsb3NlRHJvcGRvd24oKTtcblx0XHR9XG5cdH1cblxuXHQvLyBGdW5rdGlvbiwgdW0gZGVuIEV2ZW50TGlzdGVuZXIgZsO8ciBMaW5rcyBpbSBEcm9wZG93biBoaW56dXp1ZsO8Z2VuXG5cdHByaXZhdGUgYWRkRHJvcGRvd25MaW5rc0xpc3RlbmVyKCkge1xuXHRcdGNvbnN0IGxpbmtzID0gdGhpcy5kcm9wZG93bkNvbnRlbnQ/LnF1ZXJ5U2VsZWN0b3JBbGwoJ2EnKTtcblx0XHRsaW5rcz8uZm9yRWFjaChsaW5rID0+IHtcblx0XHRcdHRoaXMucmVuZGVyZXIubGlzdGVuKGxpbmssICdjbGljaycsICgpID0+IHtcblx0XHRcdFx0dGhpcy5jbG9zZURyb3Bkb3duKCk7IC8vIFNjaGxpZcOfZSBkYXMgRHJvcGRvd24gYmVpbSBLbGlja2VuIGF1ZiBlaW5lbiBMaW5rXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9kaXJlY3RpdmVzL2Ryb3Bkb3duLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBbUIsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFlLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RKLE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sZ0JBQWdCLENBQUM7O0FBTW5FLE1BQU0sT0FBTyxpQkFBaUI7SUFlN0I7UUFiUyxjQUFTLEdBQWMsY0FBYyxDQUFDO1FBRTlCLGVBQVUsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUMsYUFBUSxHQUFjLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUlwRSxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFNMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDeEQsTUFBTSxNQUFNLEdBQWtCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUN2RSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FB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WCxTQUFTO3NCQUFqQixLQUFLO2dCQTRCTixjQUFjO3NCQURiLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlUG9wcGVyLCBJbnN0YW5jZSwgUGxhY2VtZW50IH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYXBwRHJvcGRvd25dJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXHRASW5wdXQoJ2FwcERyb3Bkb3duJykgZHJvcGRvd25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPFVua25vd25PYmplY3Q+O1xuXHRASW5wdXQoKSBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICdib3R0b20tc3RhcnQnO1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblx0cHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cdHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuXHRwcml2YXRlIHdyYXBwZXJFbGVtZW50ITogSFRNTEVsZW1lbnQgfCBudWxsO1xuXHRwcml2YXRlIGRyb3Bkb3duQ29udGVudCE6IEhUTUxFbGVtZW50IHwgbnVsbDtcblx0cHJpdmF0ZSBpc0Ryb3Bkb3duVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXHRwcml2YXRlIHBvcHBlckluc3RhbmNlPzogSW5zdGFuY2U7XG5cblx0cHJpdmF0ZSBkb2N1bWVudENsaWNrTGlzdGVuZXIhOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXIgPSB0aGlzLm9uRG9jdW1lbnRDbGljay5iaW5kKHRoaXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLndyYXBwZXJFbGVtZW50KSB7XG5cdFx0XHR0aGlzLndyYXBwZXJFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy53cmFwcGVyRWxlbWVudCwgJ2Ryb3Bkb3duJyk7XG5cdFx0XHRjb25zdCBwYXJlbnQ6IFVua25vd25PYmplY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlO1xuXHRcdFx0dGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUocGFyZW50LCB0aGlzLndyYXBwZXJFbGVtZW50LCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMud3JhcHBlckVsZW1lbnQsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdjbGljaycpXG5cdHRvZ2dsZURyb3Bkb3duKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmlzRHJvcGRvd25WaXNpYmxlKSB7XG5cdFx0XHR0aGlzLmNsb3NlRHJvcGRvd24oKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5vcGVuRHJvcGRvd24oKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuZHJvcGRvd25Db250ZW50ICYmIHRoaXMud3JhcHBlckVsZW1lbnQpIHtcblx0XHRcdGNvbnN0IGRyb3Bkb3duVmlldzogRW1iZWRkZWRWaWV3UmVmPFVua25vd25PYmplY3Q+ID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmRyb3Bkb3duVGVtcGxhdGUpO1xuXHRcdFx0dGhpcy5kcm9wZG93bkNvbnRlbnQgPSBkcm9wZG93blZpZXcucm9vdE5vZGVzWzBdO1xuXHRcdFx0dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLndyYXBwZXJFbGVtZW50LCB0aGlzLmRyb3Bkb3duQ29udGVudCk7XG5cblx0XHRcdHRoaXMuYWRkRHJvcGRvd25MaW5rc0xpc3RlbmVyKCk7XG5cblx0XHRcdHRoaXMucG9wcGVySW5zdGFuY2UgPSBjcmVhdGVQb3BwZXIodGhpcy53cmFwcGVyRWxlbWVudCwgdGhpcy5kcm9wZG93bkNvbnRlbnQhLCB7XG5cdFx0XHRcdHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXG5cdFx0XHRcdG1vZGlmaWVyczogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG5hbWU6ICdvZmZzZXQnLFxuXHRcdFx0XHRcdFx0b3B0aW9uczoge1xuXHRcdFx0XHRcdFx0XHRvZmZzZXQ6ICh7IHBsYWNlbWVudCB9OiBVbmtub3duT2JqZWN0KTogbnVtYmVyW10gPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChwbGFjZW1lbnQuc3RhcnRzV2l0aCgnYm90dG9tJykpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBbMCwgLSh0aGlzLndyYXBwZXJFbGVtZW50Py5vZmZzZXRIZWlnaHQgYXMgbnVtYmVyKV07XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGlmIChwbGFjZW1lbnQuc3RhcnRzV2l0aCgndG9wJykpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBbMCwgLSh0aGlzLndyYXBwZXJFbGVtZW50Py5vZmZzZXRIZWlnaHQgYXMgbnVtYmVyKV07XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdGlmIChwbGFjZW1lbnQuc3RhcnRzV2l0aCgnbGVmdCcpKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gWzAsIC0odGhpcy53cmFwcGVyRWxlbWVudD8ub2Zmc2V0V2lkdGggYXMgbnVtYmVyKV07XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBbMCwgMF07XG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bmFtZTogJ2ZsaXAnLFxuXHRcdFx0XHRcdFx0b3B0aW9uczoge1xuXHRcdFx0XHRcdFx0XHRmYWxsYmFja1BsYWNlbWVudHM6IFsncmlnaHQtc3RhcnQnLCAndG9wLXN0YXJ0JywgJ2xlZnQtc3RhcnQnXSxcblx0XHRcdFx0XHRcdFx0Ym91bmRhcnk6ICd2aWV3cG9ydCcsXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDAsXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0bmFtZTogJ3ByZXZlbnRPdmVyZmxvdycsXG5cdFx0XHRcdFx0XHRvcHRpb25zOiB7XG5cdFx0XHRcdFx0XHRcdGJvdW5kYXJ5OiAndmlld3BvcnQnLFxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAwLFxuXHRcdFx0XHRcdFx0XHR0ZXRoZXI6IGZhbHNlLFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRdLFxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcik7XG5cdFx0dGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSA9IHRydWU7XG5cdH1cblxuXHRwcml2YXRlIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuZHJvcGRvd25Db250ZW50KSB7XG5cdFx0XHR0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcblx0XHRcdHRoaXMuZHJvcGRvd25Db250ZW50ID0gbnVsbDtcblx0XHRcdHRoaXMucG9wcGVySW5zdGFuY2U/LmRlc3Ryb3koKTtcblx0XHR9XG5cdFx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcik7XG5cdFx0dGhpcy5pc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuXHR9XG5cblx0cHJpdmF0ZSBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcblx0XHRpZiAodGhpcy53cmFwcGVyRWxlbWVudCAmJiAhdGhpcy53cmFwcGVyRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkgJiYgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuXHRcdFx0dGhpcy5jbG9zZURyb3Bkb3duKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBhZGREcm9wZG93bkxpbmtzTGlzdGVuZXIoKTogdm9pZCB7XG5cdFx0Y29uc3QgbGlua3M6IE5vZGVMaXN0T2Y8RWxlbWVudD4gfCB1bmRlZmluZWQgPSB0aGlzLmRyb3Bkb3duQ29udGVudD8ucXVlcnlTZWxlY3RvckFsbCgnLmRyb3Bkb3duLWl0ZW0nKTtcblx0XHRsaW5rcz8uZm9yRWFjaChsaW5rID0+IHtcblx0XHRcdHRoaXMucmVuZGVyZXIubGlzdGVuKGxpbmssICdjbGljaycsICgpID0+IHtcblx0XHRcdFx0dGhpcy5jbG9zZURyb3Bkb3duKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
|
package/fesm2022/ngx-gccb.mjs
CHANGED
|
@@ -2,9 +2,10 @@ import { trigger, transition, style, animate } from '@angular/animations';
|
|
|
2
2
|
import * as i1$2 from '@angular/common';
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { Component, Input, inject, ElementRef, Directive, HostListener,
|
|
5
|
+
import { Component, Input, inject, ElementRef, Renderer2, Directive, HostListener, ViewContainerRef, HostBinding, EventEmitter, Output, Pipe, Injectable, ComponentFactoryResolver } from '@angular/core';
|
|
6
6
|
import * as i1 from '@angular/forms';
|
|
7
7
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
8
|
+
import { createPopper } from '@popperjs/core';
|
|
8
9
|
import * as i1$1 from '@fortawesome/angular-fontawesome';
|
|
9
10
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
10
11
|
import { faSpinner, faTimes } from '@fortawesome/free-solid-svg-icons';
|
|
@@ -121,6 +122,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
121
122
|
class ButtonDirective {
|
|
122
123
|
constructor() {
|
|
123
124
|
this.elementRef = inject((ElementRef));
|
|
125
|
+
this.renderer = inject(Renderer2);
|
|
124
126
|
this._variant = 'contained';
|
|
125
127
|
}
|
|
126
128
|
onFocus() {
|
|
@@ -155,6 +157,7 @@ class ButtonDirective {
|
|
|
155
157
|
this.elementRef.nativeElement.classList.add(`btn-${this.color}`);
|
|
156
158
|
}
|
|
157
159
|
this.elementRef.nativeElement.classList.add('flex-shrink-0');
|
|
160
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'type', 'button');
|
|
158
161
|
}
|
|
159
162
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
160
163
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: ButtonDirective, isStandalone: true, selector: "button[app-button]", inputs: { appButton: ["app-button", "appButton"], variant: "variant", size: "size" }, host: { listeners: { "focus": "onFocus($event)", "blur": "onblur($event)" } }, ngImport: i0 }); }
|
|
@@ -182,21 +185,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
182
185
|
|
|
183
186
|
class DropdownDirective {
|
|
184
187
|
constructor() {
|
|
188
|
+
this.placement = 'bottom-start';
|
|
185
189
|
this.elementRef = inject(ElementRef);
|
|
186
190
|
this.renderer = inject(Renderer2);
|
|
187
191
|
this.viewContainer = inject(ViewContainerRef);
|
|
188
192
|
this.isDropdownVisible = false;
|
|
189
|
-
// Listener für Klicks außerhalb des Dropdowns
|
|
190
193
|
this.documentClickListener = this.onDocumentClick.bind(this);
|
|
191
194
|
}
|
|
192
|
-
// Initialisiere das Wrapper-Element mit der Klasse "dropdown" direkt beim Erstellen
|
|
193
195
|
ngOnInit() {
|
|
194
196
|
if (!this.wrapperElement) {
|
|
195
|
-
// Erstelle das Wrapper-Div mit der Klasse "dropdown"
|
|
196
197
|
this.wrapperElement = this.renderer.createElement('div');
|
|
197
198
|
this.renderer.addClass(this.wrapperElement, 'dropdown');
|
|
198
199
|
const parent = this.elementRef.nativeElement.parentNode;
|
|
199
|
-
// Füge das Wrapper-Div vor das Button-Element ein und verschiebe das Button-Element hinein
|
|
200
200
|
this.renderer.insertBefore(parent, this.wrapperElement, this.elementRef.nativeElement);
|
|
201
201
|
this.renderer.appendChild(this.wrapperElement, this.elementRef.nativeElement);
|
|
202
202
|
}
|
|
@@ -210,46 +210,77 @@ class DropdownDirective {
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
openDropdown() {
|
|
213
|
-
if (!this.dropdownContent) {
|
|
214
|
-
// Erstelle das Dropdown-Template und füge es dem Wrapper-Div hinzu
|
|
213
|
+
if (!this.dropdownContent && this.wrapperElement) {
|
|
215
214
|
const dropdownView = this.viewContainer.createEmbeddedView(this.dropdownTemplate);
|
|
216
215
|
this.dropdownContent = dropdownView.rootNodes[0];
|
|
217
|
-
// Füge das Dropdown-Menü in das Wrapper-Div ein
|
|
218
216
|
this.renderer.appendChild(this.wrapperElement, this.dropdownContent);
|
|
219
|
-
// Füge EventListener zu den Dropdown-Links hinzu, um das Dropdown zu schließen
|
|
220
217
|
this.addDropdownLinksListener();
|
|
218
|
+
this.popperInstance = createPopper(this.wrapperElement, this.dropdownContent, {
|
|
219
|
+
placement: this.placement,
|
|
220
|
+
modifiers: [
|
|
221
|
+
{
|
|
222
|
+
name: 'offset',
|
|
223
|
+
options: {
|
|
224
|
+
offset: ({ placement }) => {
|
|
225
|
+
if (placement.startsWith('bottom')) {
|
|
226
|
+
return [0, -this.wrapperElement?.offsetHeight];
|
|
227
|
+
}
|
|
228
|
+
if (placement.startsWith('top')) {
|
|
229
|
+
return [0, -this.wrapperElement?.offsetHeight];
|
|
230
|
+
}
|
|
231
|
+
if (placement.startsWith('left')) {
|
|
232
|
+
return [0, -this.wrapperElement?.offsetWidth];
|
|
233
|
+
}
|
|
234
|
+
return [0, 0];
|
|
235
|
+
},
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
name: 'flip',
|
|
240
|
+
options: {
|
|
241
|
+
fallbackPlacements: ['right-start', 'top-start', 'left-start'],
|
|
242
|
+
boundary: 'viewport',
|
|
243
|
+
padding: 0,
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
name: 'preventOverflow',
|
|
248
|
+
options: {
|
|
249
|
+
boundary: 'viewport',
|
|
250
|
+
padding: 0,
|
|
251
|
+
tether: false,
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
],
|
|
255
|
+
});
|
|
221
256
|
}
|
|
222
|
-
// Event-Listener für den Klick außerhalb des Dropdowns
|
|
223
257
|
document.addEventListener('click', this.documentClickListener);
|
|
224
258
|
this.isDropdownVisible = true;
|
|
225
259
|
}
|
|
226
260
|
closeDropdown() {
|
|
227
261
|
if (this.dropdownContent) {
|
|
228
|
-
// Entferne das Dropdown-Template
|
|
229
262
|
this.viewContainer.clear();
|
|
230
263
|
this.dropdownContent = null;
|
|
264
|
+
this.popperInstance?.destroy();
|
|
231
265
|
}
|
|
232
|
-
// Entferne den Event-Listener für Klicks außerhalb
|
|
233
266
|
document.removeEventListener('click', this.documentClickListener);
|
|
234
267
|
this.isDropdownVisible = false;
|
|
235
268
|
}
|
|
236
|
-
// Funktion, die aufgerufen wird, wenn ein Klick auf das Dokument erkannt wird
|
|
237
269
|
onDocumentClick(event) {
|
|
238
270
|
if (this.wrapperElement && !this.wrapperElement.contains(event.target) && !this.elementRef.nativeElement.contains(event.target)) {
|
|
239
271
|
this.closeDropdown();
|
|
240
272
|
}
|
|
241
273
|
}
|
|
242
|
-
// Funktion, um den EventListener für Links im Dropdown hinzuzufügen
|
|
243
274
|
addDropdownLinksListener() {
|
|
244
|
-
const links = this.dropdownContent?.querySelectorAll('
|
|
275
|
+
const links = this.dropdownContent?.querySelectorAll('.dropdown-item');
|
|
245
276
|
links?.forEach(link => {
|
|
246
277
|
this.renderer.listen(link, 'click', () => {
|
|
247
|
-
this.closeDropdown();
|
|
278
|
+
this.closeDropdown();
|
|
248
279
|
});
|
|
249
280
|
});
|
|
250
281
|
}
|
|
251
282
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
252
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: DropdownDirective, isStandalone: true, selector: "[appDropdown]", inputs: { dropdownTemplate: ["appDropdown", "dropdownTemplate"] }, host: { listeners: { "click": "toggleDropdown()" } }, ngImport: i0 }); }
|
|
283
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: DropdownDirective, isStandalone: true, selector: "[appDropdown]", inputs: { dropdownTemplate: ["appDropdown", "dropdownTemplate"], placement: "placement" }, host: { listeners: { "click": "toggleDropdown()" } }, ngImport: i0 }); }
|
|
253
284
|
}
|
|
254
285
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: DropdownDirective, decorators: [{
|
|
255
286
|
type: Directive,
|
|
@@ -260,6 +291,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
260
291
|
}], ctorParameters: () => [], propDecorators: { dropdownTemplate: [{
|
|
261
292
|
type: Input,
|
|
262
293
|
args: ['appDropdown']
|
|
294
|
+
}], placement: [{
|
|
295
|
+
type: Input
|
|
263
296
|
}], toggleDropdown: [{
|
|
264
297
|
type: HostListener,
|
|
265
298
|
args: ['click']
|
|
@@ -543,11 +576,11 @@ class ModalComponent {
|
|
|
543
576
|
this.onClose.next();
|
|
544
577
|
}
|
|
545
578
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
546
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { title: "title", showClose: "showClose", fullScreen: "fullScreen" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\"
|
|
579
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { title: "title", showClose: "showClose", fullScreen: "fullScreen" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "shadow"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }] }); }
|
|
547
580
|
}
|
|
548
581
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ModalComponent, decorators: [{
|
|
549
582
|
type: Component,
|
|
550
|
-
args: [{ selector: 'app-modal', standalone: true, imports: [CommonModule, IconButtonDirective, FontAwesomeModule], template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\"
|
|
583
|
+
args: [{ selector: 'app-modal', standalone: true, imports: [CommonModule, IconButtonDirective, FontAwesomeModule], template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n" }]
|
|
551
584
|
}], propDecorators: { title: [{
|
|
552
585
|
type: Input
|
|
553
586
|
}], showClose: [{
|
|
@@ -568,11 +601,11 @@ class OffCanvasComponent {
|
|
|
568
601
|
this.onClose.next();
|
|
569
602
|
}
|
|
570
603
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: OffCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
571
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: OffCanvasComponent, isStandalone: true, selector: "app-off-canvas", inputs: { title: "title" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\"
|
|
604
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.11", type: OffCanvasComponent, isStandalone: true, selector: "app-off-canvas", inputs: { title: "title" }, outputs: { onClose: "onClose" }, ngImport: i0, template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n", styles: [":host{z-index:9999;display:block}\n"], dependencies: [{ kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1$1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "shadow"] }] }); }
|
|
572
605
|
}
|
|
573
606
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: OffCanvasComponent, decorators: [{
|
|
574
607
|
type: Component,
|
|
575
|
-
args: [{ selector: 'app-off-canvas', standalone: true, imports: [FontAwesomeModule, IconButtonDirective], template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\"
|
|
608
|
+
args: [{ selector: 'app-off-canvas', standalone: true, imports: [FontAwesomeModule, IconButtonDirective], template: "<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n", styles: [":host{z-index:9999;display:block}\n"] }]
|
|
576
609
|
}], propDecorators: { title: [{
|
|
577
610
|
type: Input
|
|
578
611
|
}], onClose: [{
|
|
@@ -588,11 +621,7 @@ class ToastComponent {
|
|
|
588
621
|
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
589
622
|
<div class="d-flex">
|
|
590
623
|
<div class="toast-body" [innerHTML]="message"></div>
|
|
591
|
-
<button
|
|
592
|
-
type="button"
|
|
593
|
-
class="btn-close btn-close-white me-2 m-auto"
|
|
594
|
-
(click)="onClose.next()"
|
|
595
|
-
></button>
|
|
624
|
+
<button class="btn-close btn-close-white me-2 m-auto" (click)="onClose.next()"></button>
|
|
596
625
|
</div>
|
|
597
626
|
</div>
|
|
598
627
|
`, isInline: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }); }
|
|
@@ -603,11 +632,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
603
632
|
<div class="toast align-items-center text-bg-dark border-0 show">
|
|
604
633
|
<div class="d-flex">
|
|
605
634
|
<div class="toast-body" [innerHTML]="message"></div>
|
|
606
|
-
<button
|
|
607
|
-
type="button"
|
|
608
|
-
class="btn-close btn-close-white me-2 m-auto"
|
|
609
|
-
(click)="onClose.next()"
|
|
610
|
-
></button>
|
|
635
|
+
<button class="btn-close btn-close-white me-2 m-auto" (click)="onClose.next()"></button>
|
|
611
636
|
</div>
|
|
612
637
|
</div>
|
|
613
638
|
`, standalone: true, styles: [":host{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1051}\n"] }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-gccb.mjs","sources":["../../../projects/ngx-gccb/src/lib/animations/fade-right.animation.ts","../../../projects/ngx-gccb/src/lib/animations/fade-up.animation.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.html","../../../projects/ngx-gccb/src/lib/components/form-errors/form-errors.component.ts","../../../projects/ngx-gccb/src/lib/directives/button.directive.ts","../../../projects/ngx-gccb/src/lib/directives/dropdown.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-input.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-label.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-select.directive.ts","../../../projects/ngx-gccb/src/lib/directives/icon-button.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item-avatar.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group.directive.ts","../../../projects/ngx-gccb/src/lib/components/form-input/form-input.component.ts","../../../projects/ngx-gccb/src/lib/components/form-input/form-input.component.html","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.ts","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.html","../../../projects/ngx-gccb/src/lib/components/modal/base-modal.component.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.html","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.ts","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.html","../../../projects/ngx-gccb/src/lib/components/toast/toast.component.ts","../../../projects/ngx-gccb/src/lib/helpers/sort.helper.ts","../../../projects/ngx-gccb/src/lib/pipe/form-control.pipe.ts","../../../projects/ngx-gccb/src/lib/services/clipboard.service.ts","../../../projects/ngx-gccb/src/lib/services/file.service.ts","../../../projects/ngx-gccb/src/lib/services/loading-indicator.service.ts","../../../projects/ngx-gccb/src/lib/services/local.service.ts","../../../projects/ngx-gccb/src/lib/services/modal.service.ts","../../../projects/ngx-gccb/src/lib/services/toast.service.ts","../../../projects/ngx-gccb/src/lib/services/token.service.ts","../../../projects/ngx-gccb/src/lib/typings/array-extension.ts","../../../projects/ngx-gccb/src/lib/typings/date-extension.ts","../../../projects/ngx-gccb/src/lib/typings/string-extensions.ts","../../../projects/ngx-gccb/src/public-api.ts","../../../projects/ngx-gccb/src/ngx-gccb.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const FadeRightAnimation: AnimationTriggerMetadata = trigger('fadeRightAnimation', [\n\ttransition(':enter', [style({ transform: 'translateX(-100%)', zIndex: 9999 }), animate('200ms ease-in', style({ transform: 'translateX(0%)' }))]),\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 FadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n\ttransition(':enter', [style({ opacity: 0, transform: 'translateY(10px)' }), animate('500ms', style({ opacity: 1, transform: 'translateY(0)' }))]),\n\ttransition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),\n]);\n","/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'app-date-picker',\n\ttemplateUrl: './date-picker.component.html',\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class DatePickerComponent implements OnInit {\n\tcurrentDate: Date = new Date();\n\n\tngOnInit(): void {\n\t\tconst firstDayOfMonth: Date = this.currentDate.firstDayOfMonth();\n\t\t// console.warn(firstDayOfMonth, firstDayOfMonth.getDate(), firstDayOfMonth.getDay());\n\n\t\tconst weekCount: number = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);\n\t\tconsole.warn(weekCount);\n\n\t\tconst weeks: unknown[] = [];\n\n\t\tfor (let i: number = 0; i <= weekCount; i++) {\n\t\t\t// for(let){\n\t\t\t// }\n\t\t}\n\t}\n}\n\nenum DayOfWeek {\n\t'Sunday' = 0,\n\t'Monday' = 1,\n\t'Tuesday' = 2,\n\t'Wednesday' = 3,\n\t'Thursday' = 4,\n\t'Friday' = 5,\n\t'Saturday' = 6,\n}\n\nfunction getWeekCount(year: number, month: number, startDayOfWeek: DayOfWeek): number {\n\t// month_number is in the range 0..11\n\n\t// Get the first day of week week day (0: Sunday, 1: Monday, ...)\n\tconst firstDayOfWeek: DayOfWeek = startDayOfWeek || DayOfWeek.Sunday;\n\tconst firstOfMonth: Date = new Date(year, month, 1);\n\tconst lastOfMonth: Date = new Date(year, month + 1, 0);\n\tconst numberOfDaysInMonth: number = lastOfMonth.getDate();\n\tconst firstWeekDay: number = (firstOfMonth.getDay() - firstDayOfWeek + 7) % 7;\n\tconst used: number = firstWeekDay + numberOfDaysInMonth;\n\n\treturn Math.ceil(used / 7);\n}\n","coming soon\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\n@Component({\n\tselector: 'app-form-errors',\n\ttemplate: `\n\t\t<div class=\"invalid-feedback d-block\">\n\t\t\t@if (errors) {\n\t\t\t\t@if (errors['required']) {\n\t\t\t\t\tField is required\n\t\t\t\t}\n\t\t\t\t@if (errors['email']) {\n\t\t\t\t\tInvalid E-Mail\n\t\t\t\t}\n\t\t\t\t@if (errors['minlength']) {\n\t\t\t\t\tAt least {{ errors['minlength'].requiredLength }} are required\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n\t`,\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class FormErrorsComponent {\n\t@Input() errors: ValidationErrors | null = null;\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-button]',\n\tstandalone: true,\n})\nexport class ButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tcolor!: string;\n\t_variant: string = 'contained';\n\n\t@HostListener('focus', ['$event']) onFocus(): void {\n\t\tthis.isFocused = true;\n\t}\n\n\t@HostListener('blur', ['$event']) onblur(): void {\n\t\tthis.isFocused = false;\n\t}\n\n\tset isFocused(val: boolean) {\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add(`focus-ring-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove(`focus-ring-${this.color}`);\n\t\t}\n\t}\n\n\t@Input('app-button') set appButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t}\n\n\t@Input() set variant(val: 'contained' | 'outline' | 'text') {\n\t\tthis._variant = val;\n\t}\n\n\t@Input() set size(val: string) {\n\t\tthis.elementRef.nativeElement.classList.add(`btn-${val || 'sm'}`);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn');\n\t\tif (this._variant === 'outline' || this._variant === 'text') {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this._variant}-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this.color}`);\n\t\t}\n\t\tthis.elementRef.nativeElement.classList.add('flex-shrink-0');\n\t}\n}\n","import { Directive, ElementRef, HostListener, inject, Input, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n\tselector: '[appDropdown]',\n\tstandalone: true,\n})\nexport class DropdownDirective {\n\t@Input('appDropdown') dropdownTemplate!: TemplateRef<any>;\n\n\tprivate readonly elementRef = inject(ElementRef);\n\tprivate readonly renderer = inject(Renderer2);\n\tprivate readonly viewContainer = inject(ViewContainerRef);\n\n\tprivate wrapperElement!: HTMLElement | null;\n\tprivate dropdownContent!: HTMLElement | null;\n\tprivate isDropdownVisible = false;\n\n\tprivate documentClickListener!: (event: MouseEvent) => void;\n\n\tconstructor() {\n\t\t// Listener für Klicks außerhalb des Dropdowns\n\t\tthis.documentClickListener = this.onDocumentClick.bind(this);\n\t}\n\n\t// Initialisiere das Wrapper-Element mit der Klasse \"dropdown\" direkt beim Erstellen\n\tngOnInit() {\n\t\tif (!this.wrapperElement) {\n\t\t\t// Erstelle das Wrapper-Div mit der Klasse \"dropdown\"\n\t\t\tthis.wrapperElement = this.renderer.createElement('div');\n\t\t\tthis.renderer.addClass(this.wrapperElement, 'dropdown');\n\t\t\tconst parent = this.elementRef.nativeElement.parentNode;\n\n\t\t\t// Füge das Wrapper-Div vor das Button-Element ein und verschiebe das Button-Element hinein\n\t\t\tthis.renderer.insertBefore(parent, this.wrapperElement, this.elementRef.nativeElement);\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.elementRef.nativeElement);\n\t\t}\n\t}\n\n\t@HostListener('click')\n\ttoggleDropdown() {\n\t\tif (this.isDropdownVisible) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\n\tprivate openDropdown() {\n\t\tif (!this.dropdownContent) {\n\t\t\t// Erstelle das Dropdown-Template und füge es dem Wrapper-Div hinzu\n\t\t\tconst dropdownView = this.viewContainer.createEmbeddedView(this.dropdownTemplate);\n\t\t\tthis.dropdownContent = dropdownView.rootNodes[0];\n\n\t\t\t// Füge das Dropdown-Menü in das Wrapper-Div ein\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.dropdownContent);\n\n\t\t\t// Füge EventListener zu den Dropdown-Links hinzu, um das Dropdown zu schließen\n\t\t\tthis.addDropdownLinksListener();\n\t\t}\n\n\t\t// Event-Listener für den Klick außerhalb des Dropdowns\n\t\tdocument.addEventListener('click', this.documentClickListener);\n\n\t\tthis.isDropdownVisible = true;\n\t}\n\n\tprivate closeDropdown() {\n\t\tif (this.dropdownContent) {\n\t\t\t// Entferne das Dropdown-Template\n\t\t\tthis.viewContainer.clear();\n\t\t\tthis.dropdownContent = null;\n\t\t}\n\n\t\t// Entferne den Event-Listener für Klicks außerhalb\n\t\tdocument.removeEventListener('click', this.documentClickListener);\n\n\t\tthis.isDropdownVisible = false;\n\t}\n\n\t// Funktion, die aufgerufen wird, wenn ein Klick auf das Dokument erkannt wird\n\tprivate onDocumentClick(event: MouseEvent) {\n\t\tif (this.wrapperElement && !this.wrapperElement.contains(event.target as Node) && !this.elementRef.nativeElement.contains(event.target as Node)) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\t// Funktion, um den EventListener für Links im Dropdown hinzuzufügen\n\tprivate addDropdownLinksListener() {\n\t\tconst links = this.dropdownContent?.querySelectorAll('a');\n\t\tlinks?.forEach(link => {\n\t\t\tthis.renderer.listen(link, 'click', () => {\n\t\t\t\tthis.closeDropdown(); // Schließe das Dropdown beim Klicken auf einen Link\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'input,textarea[app-form-input]',\n\tstandalone: true,\n})\nexport class FormInputDirective 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-control');\n\t}\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n\tselector: 'label[app-form-label]',\n\tstandalone: true,\n})\nexport class FormLabelDirective {\n\t@HostBinding('class')\n\telementClass: string = 'form-label';\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'select[app-form-select]',\n\tstandalone: true,\n})\nexport class FormSelectDirective 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 { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-icon-button]',\n\tstandalone: true,\n})\nexport class IconButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tcolor!: string;\n\n\t@Input('app-icon-button') set appIconButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t\tthis.elementRef.nativeElement.classList.add(`icon-button-${this.color}`);\n\t}\n\n\t@Input() set shadow(val: boolean) {\n\t\tif (val === true || val === undefined) {\n\t\t\tthis.elementRef.nativeElement.classList.add('shadow-sm');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('shadow-sm');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn', 'icon-button');\n\t}\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n\tselector: '[app-list-group-item-avatar]',\n\tstandalone: true,\n})\nexport class ListGroupItemAvatarDirective 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 { Directive, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'li[app-list-group-item]',\n\tstandalone: true,\n})\nexport class ListGroupItemDirective implements OnInit {\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\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\n\t\tthis.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","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'ul[app-list-group]',\n\tstandalone: true,\n})\nexport class ListGroupDirective 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","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FormInputDirective, FormLabelDirective, FormSelectDirective } from '../../directives';\nimport { FormErrorsComponent } from '../form-errors';\n\nexport interface ISelectOptions {\n\tlabel: string;\n\tvalue: string;\n\tdisabled?: boolean;\n\tselected?: boolean;\n}\n\n@Component({\n\tselector: 'app-form-input',\n\ttemplateUrl: './form-input.component.html',\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormErrorsComponent, FormLabelDirective, FormInputDirective, FormSelectDirective],\n})\nexport class FormInputComponent {\n\t@Input({ required: true }) control!: FormControl;\n\t@Input() inputType: string = 'text';\n\t@Input({ required: true }) inputLabel!: string;\n\t@Input() inputPlaceholder?: string;\n\t@Input() inputId?: string;\n\t@Input({ required: true }) inputName!: string;\n\t@Input() inputTabIndex?: string;\n\t@Input() isSubmitted: boolean = false;\n\t@Input() selectOptions: ISelectOptions[] = [];\n\n\t@Output() onEnter: EventEmitter<void> = new EventEmitter();\n\t@Output() onChange: EventEmitter<Event> = new EventEmitter();\n\n\thandleSelect(event: Event): void {\n\t\tthis.onChange.next(event);\n\t}\n}\n","<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"password\" ||\n\t\tinputType === \"email\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\" ||\n\t\tinputType === \"time\"\n\t) {\n\t\t<input\n\t\t\t[type]=\"inputType\"\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t/>\n\t}\n\t@if (inputType === \"textarea\") {\n\t\t<textarea\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\tstyle=\"height: 100px\"\n\t\t>\n\t\t</textarea>\n\t}\n\t@if (inputType === \"select\") {\n\t\t<select\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-select\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\t(change)=\"handleSelect($event)\"\n\t\t>\n\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\" [selected]=\"option.selected\">\n\t\t\t\t\t{{ option.label }}\n\t\t\t\t</option>\n\t\t\t}\n\t\t</select>\n\t}\n\t<label app-form-label [attr.for]=\"inputName || inputId\"> {{ inputLabel }} </label>\n\t@if (isSubmitted && control.errors) {\n\t\t<app-form-errors [errors]=\"control.errors\" />\n\t}\n</div>\n","import { Component } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faSpinner, IconDefinition } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n\tselector: 'app-loading-indicator',\n\ttemplateUrl: './loading-indicator.component.html',\n\tstandalone: true,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%, -50%);\n\t\t\tcolor: #495057;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule],\n})\nexport class LoadingIndicatorComponent {\n\tfaSpinner: IconDefinition = faSpinner;\n}\n","<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'app-base-modal',\n\ttemplate: ``,\n\tstandalone: true,\n})\nexport class BaseModalComponent {\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives';\n\n@Component({\n\tselector: 'app-modal',\n\ttemplateUrl: './modal.component.html',\n\tstandalone: true,\n\timports: [CommonModule, IconButtonDirective, FontAwesomeModule],\n})\nexport class ModalComponent {\n\t@Input() title: string = '';\n\t@Input() showClose: boolean = true;\n\n\t@Input() set fullScreen(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.dialogCssClasses.push(`modal-fullscreen`);\n\t\t} else {\n\t\t\tthis.dialogCssClasses = this.dialogCssClasses.removeBy((cssClass) => cssClass, 'modal-fullscreen');\n\t\t}\n\t}\n\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tdialogCssClasses: string[] = [];\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" type=\"button\" class=\"ms-2\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives';\n@Component({\n\tselector: 'app-off-canvas',\n\ttemplateUrl: './off-canvas.component.html',\n\tstandalone: true,\n\tstyles: `\n\t\t:host {\n\t\t\tz-index: 9999;\n\t\t\tdisplay: block;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule, IconButtonDirective],\n})\nexport class OffCanvasComponent {\n\t@Input() title: string = '';\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\" type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n\tselector: 'app-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\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"btn-close btn-close-white me-2 m-auto\"\n\t\t\t\t\t(click)=\"onClose.next()\"\n\t\t\t\t></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\tstandalone: true,\n})\nexport class ToastComponent {\n\t@Input() message?: string;\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n}\n","enum SortOrder {\n\tNONE = 0,\n\tASC = 1,\n\tDESC = -1,\n}\n\nconst compareString = (valA: string, valB: string, ascending: boolean | undefined): number => {\n\treturn valA.localeCompare(valB) * (ascending ? SortOrder.ASC : SortOrder.DESC);\n};\n\nconst getSortOrder = <T>(valA: T, valB: T): SortOrder => {\n\treturn valA < valB ? SortOrder.DESC : valA === valB ? SortOrder.NONE : SortOrder.ASC;\n};\n\nconst compareNonString = <T>(valA: T, valB: T, ascending: boolean | undefined): number => {\n\treturn getSortOrder(valA, valB) * (ascending ? SortOrder.ASC : SortOrder.DESC);\n};\n\nconst getValue = <T>(valA: T, valB: T, ascending: boolean | undefined): number => {\n\tlet result: number = 0;\n\tif (typeof valA === 'string' && typeof valB === 'string') {\n\t\tresult = compareString(valA, valB, ascending);\n\t} else {\n\t\tresult = compareNonString(valA, valB, ascending);\n\t}\n\treturn result;\n};\n\nexport const sortHelper = <T, G>(\n\ta: T,\n\tb: T,\n\tvalueGetter: (a: T) => G,\n\tascending?: boolean,\n): number => {\n\tconst valA: G = valueGetter(a);\n\tconst valB: G = valueGetter(b);\n\treturn getValue(valA, valB, ascending);\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Pipe({\n\tname: 'formControl',\n\tstandalone: true,\n})\nexport class FormControlPipe implements PipeTransform {\n\ttransform(value: AbstractControl): FormControl<(typeof value)['value']> {\n\t\treturn value as FormControl<(typeof value)['value']>;\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ClipboardService {\n\tcopy(text: string): Promise<void> {\n\t\treturn navigator.clipboard.writeText(text);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport saveAs from 'file-saver';\nimport type { ParseResult, UnparseConfig, UnparseObject } from 'papaparse';\nimport { parse, unparse } from 'papaparse';\n\n@Injectable({ providedIn: 'root' })\nexport class FileService {\n\treadAsText(file: File): Promise<ProgressEvent<FileReader>> {\n\t\tconst fileReader: FileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\tresolve(event);\n\t\t\t};\n\t\t\tfileReader.onerror = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\treject(event);\n\t\t\t};\n\t\t\tfileReader.readAsText(file);\n\t\t});\n\t}\n\n\treadAsBinaryString(file: File): Promise<ProgressEvent<FileReader>> {\n\t\tconst fileReader: FileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\tresolve(event);\n\t\t\t};\n\t\t\tfileReader.onerror = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\treject(event);\n\t\t\t};\n\t\t\tfileReader.readAsBinaryString(file);\n\t\t});\n\t}\n\n\tunparse<T>(data: T[] | UnparseObject<T>, config?: UnparseConfig): string {\n\t\treturn unparse(data, config);\n\t}\n\n\tparse<T>(content: string | File): Promise<ParseResult<T>> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tparse(content, {\n\t\t\t\theader: true,\n\t\t\t\tcomplete: (results: ParseResult<T>) => resolve(results),\n\t\t\t\terror: (err: Error) => reject(err),\n\t\t\t});\n\t\t});\n\t}\n\n\tsaveAs(content: BlobPart, fileName: string, fileType: string): void {\n\t\tconst blob: Blob = new Blob([content], { type: fileType });\n\t\tsaveAs(blob, fileName, { autoBom: true });\n\t}\n\n\tgetFileExtension(filename: string): string {\n\t\tlet result: string = '-';\n\t\tif (/[.]/.exec(filename)) {\n\t\t\tconst regexp: RegExpExecArray | null = /[^.]+$/.exec(filename);\n\t\t\tresult = `.${regexp?.[0]}`;\n\t\t}\n\t\treturn result;\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingIndicatorService {\n\tshow: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n\thide: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalService {\n\tget<T>(key: string): T | null {\n\t\tlet result: T | null = null;\n\t\tconst local: string | null = localStorage.getItem(key);\n\t\tif (local) {\n\t\t\tresult = JSON.parse(local);\n\t\t}\n\t\treturn result;\n\t}\n\n\tset<T>(key: string, val: T): void {\n\t\tlocalStorage.setItem(key, JSON.stringify(val));\n\t}\n\n\tremove(key: string): void {\n\t\tlocalStorage.removeItem(key);\n\t}\n\n\tremoveAll(): void {\n\t\tlocalStorage.clear();\n\t}\n}\n","import { ComponentType, DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BaseModalComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n\tprivate viewContainerRef?: ViewContainerRef;\n\tprivate portalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshowTemplate(templateRef: TemplateRef<unknown>): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tconst newPortal: TemplatePortal = new TemplatePortal(templateRef, this.viewContainerRef);\n\t\t\tthis.portalHost.attach(newPortal);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\tshowComponent<T extends BaseModalComponent>(component: ComponentType<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\tthis.portalHost.detach();\n\t}\n}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, ComponentRef, Injectable, ViewContainerRef, inject } from '@angular/core';\nimport { ToastComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n\tprivate readonly componentFactoryResolver: ComponentFactoryResolver = inject(ComponentFactoryResolver);\n\tviewContainerRef?: ViewContainerRef;\n\tportalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshow(message: string, timeout: number = 1500): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tif (this.portalHost.hasAttached()) {\n\t\t\t\tthis.portalHost.detach();\n\t\t\t}\n\n\t\t\tconst componentPortal: ComponentPortal<ToastComponent> = new ComponentPortal(\n\t\t\t\tToastComponent,\n\t\t\t\tthis.viewContainerRef,\n\t\t\t\tnull,\n\t\t\t\tthis.componentFactoryResolver\n\t\t\t);\n\t\t\tconst componentRef: ComponentRef<ToastComponent> = this.portalHost.attachComponentPortal(componentPortal);\n\t\t\tcomponentRef.instance.message = message;\n\t\t\tcomponentRef.instance.onClose.subscribe(() => {\n\t\t\t\tthis.hide();\n\t\t\t});\n\n\t\t\tsetTimeout(() => {\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\tthis.portalHost.detach();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { LocalService } from './local.service';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class TokenService {\n\tconstructor(private localService: LocalService) {}\n\n\tget(key: 'accesstoken' | 'refreshtoken'): string | null {\n\t\treturn this.localService.get<string>(key);\n\t}\n\n\tset(key: 'accesstoken' | 'refreshtoken', token: string): void {\n\t\tthis.localService.set(key, token);\n\t}\n\n\tremove(key: 'accesstoken' | 'refreshtoken'): void {\n\t\tthis.localService.remove(key);\n\t}\n}\n","import { sortHelper } from '../helpers';\nimport { IDictionary } from '../interfaces';\n\nexport {};\n\ndeclare global {\n\tinterface Array<T> {\n\t\tgroupBy(valueGetter: (a: T) => string): IDictionary<T[]>;\n\t\tremoveBy<T, G>(valueGetter: (a: T) => G, val: G): T[];\n\t\torderBy<T, G>(valueGetter: (a: T) => G, ascending?: boolean): T[];\n\t\tfilterBy<G>(key?: string): G[];\n\t\tdistinct<T>(comparator?: (obj1: unknown, obj2: unknown) => boolean): T[];\n\t}\n}\n\nArray.prototype.groupBy = function <T>(valueGetter: (a: T) => string): IDictionary<T> {\n\treturn this.reduce((curr, obj) => {\n\t\tconst key: string = valueGetter(obj);\n\t\t(curr[key] = curr[key] || []).push(obj);\n\t\treturn curr;\n\t}, {});\n};\n\nArray.prototype.removeBy = function <T, G>(valueGetter: (a: T) => G, val: G): T[] {\n\treturn this.filter((curr) => {\n\t\tconst key: G = valueGetter(curr);\n\t\t// change to split to remove only first item found\n\t\treturn key !== val;\n\t});\n};\n\nArray.prototype.orderBy = function <T, G>(valueGetter: (a: T) => G, ascending: boolean = true): T[] {\n\tthis?.sort((a, b) => sortHelper(a, b, valueGetter, ascending));\n\treturn this;\n};\n\nArray.prototype.filterBy = function <T>(key?: string): T[] {\n\treturn this.filter((a) => {\n\t\tlet result: boolean = false;\n\t\tif (key && a[key]) {\n\t\t\tresult = a[key] === key;\n\t\t} else {\n\t\t\tresult = a === key;\n\t\t}\n\t\treturn result;\n\t});\n};\n\nArray.prototype.distinct = function <T>(comparator?: (obj1: unknown, obj2: unknown) => boolean): T[] {\n\tconst thisAsArray: T[] = this as T[];\n\tconst result: T[] = comparator\n\t\t? thisAsArray.filter((value, index, array) => array.findIndex((o) => comparator(o, value)) === index)\n\t\t: thisAsArray.filter((value, index, array) => array.indexOf(value) === index);\n\treturn result;\n};\n","import type { ConfigType, ManipulateType, OpUnitType, UnitType } from 'dayjs';\nimport dayjs from 'dayjs';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\ndayjs.extend(localizedFormat);\n\ndeclare global {\n\tinterface Date {\n\t\tisAfter(date: ConfigType, unit?: OpUnitType): boolean;\n\t\tisBefore(date: ConfigType, unit?: OpUnitType): boolean;\n\t\tformat(template?: string): string;\n\t\tisValid(): boolean;\n\t\tadd(value: number, unit?: ManipulateType): Date;\n\t\tsubtract(value: number, unit?: ManipulateType): Date;\n\t\tfirstDayOfMonth(): Date;\n\t\tlastDayOfMonth(): Date;\n\t\tset(unit: UnitType, value: number): Date;\n\t\tdiff(date: Date, unit?: UnitType): number;\n\t}\n}\n\nDate.prototype.isAfter = function (date: dayjs.ConfigType, unit?: dayjs.OpUnitType): boolean {\n\treturn dayjs(this).isAfter(date, unit);\n};\n\nDate.prototype.isBefore = function (date: dayjs.ConfigType, unit?: dayjs.OpUnitType): boolean {\n\treturn dayjs(this).isBefore(date, unit);\n};\n\nDate.prototype.format = function (template?: string): string {\n\treturn dayjs(this).format(template);\n};\n\nDate.prototype.isValid = function (): boolean {\n\treturn dayjs(this).isValid();\n};\n\nDate.prototype.add = function (value: number, unit?: ManipulateType): Date {\n\treturn dayjs(this).add(value, unit).toDate();\n};\n\nDate.prototype.subtract = function (value: number, unit?: ManipulateType): Date {\n\treturn dayjs(this).subtract(value, unit).toDate();\n};\n\nDate.prototype.firstDayOfMonth = function (): Date {\n\treturn dayjs(this).startOf('month').toDate();\n};\n\nDate.prototype.lastDayOfMonth = function (): Date {\n\treturn dayjs(this).endOf('month').toDate();\n};\n\nDate.prototype.set = function (unit: UnitType, value: number): Date {\n\treturn dayjs(this).set(unit, value).toDate();\n};\n\nDate.prototype.diff = function (date: Date, unit?: UnitType): number {\n\treturn dayjs(this).diff(date, unit);\n};\n","export {};\n\ndeclare global {\n\tinterface String {\n\t\tcapitalize(): string;\n\t}\n}\n\nString.prototype.capitalize = function (): string {\n\treturn this.charAt(0).toUpperCase() + this.slice(1);\n};\n","/*\n * Public API Surface of ngx-gccb\n */\n\n// export * from './lib/ngx-gccb.component';\n// export * from './lib/ngx-gccb.service';\n\nexport * from './lib/animations';\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/helpers';\nexport * from './lib/interfaces';\nexport * from './lib/pipe';\nexport * from './lib/services';\nexport * from './lib/typings';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.LocalService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-gccb.mjs","sources":["../../../projects/ngx-gccb/src/lib/animations/fade-right.animation.ts","../../../projects/ngx-gccb/src/lib/animations/fade-up.animation.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.ts","../../../projects/ngx-gccb/src/lib/components/date-picker/date-picker.component.html","../../../projects/ngx-gccb/src/lib/components/form-errors/form-errors.component.ts","../../../projects/ngx-gccb/src/lib/directives/button.directive.ts","../../../projects/ngx-gccb/src/lib/directives/dropdown.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-input.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-label.directive.ts","../../../projects/ngx-gccb/src/lib/directives/form-select.directive.ts","../../../projects/ngx-gccb/src/lib/directives/icon-button.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item-avatar.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group-item.directive.ts","../../../projects/ngx-gccb/src/lib/directives/list-group.directive.ts","../../../projects/ngx-gccb/src/lib/components/form-input/form-input.component.ts","../../../projects/ngx-gccb/src/lib/components/form-input/form-input.component.html","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.ts","../../../projects/ngx-gccb/src/lib/components/loading-indicator/loading-indicator.component.html","../../../projects/ngx-gccb/src/lib/components/modal/base-modal.component.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.ts","../../../projects/ngx-gccb/src/lib/components/modal/modal.component.html","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.ts","../../../projects/ngx-gccb/src/lib/components/off-canvas/off-canvas.component.html","../../../projects/ngx-gccb/src/lib/components/toast/toast.component.ts","../../../projects/ngx-gccb/src/lib/helpers/sort.helper.ts","../../../projects/ngx-gccb/src/lib/pipe/form-control.pipe.ts","../../../projects/ngx-gccb/src/lib/services/clipboard.service.ts","../../../projects/ngx-gccb/src/lib/services/file.service.ts","../../../projects/ngx-gccb/src/lib/services/loading-indicator.service.ts","../../../projects/ngx-gccb/src/lib/services/local.service.ts","../../../projects/ngx-gccb/src/lib/services/modal.service.ts","../../../projects/ngx-gccb/src/lib/services/toast.service.ts","../../../projects/ngx-gccb/src/lib/services/token.service.ts","../../../projects/ngx-gccb/src/lib/typings/array-extension.ts","../../../projects/ngx-gccb/src/lib/typings/date-extension.ts","../../../projects/ngx-gccb/src/lib/typings/string-extensions.ts","../../../projects/ngx-gccb/src/public-api.ts","../../../projects/ngx-gccb/src/ngx-gccb.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, style, transition, trigger } from '@angular/animations';\n\nexport const FadeRightAnimation: AnimationTriggerMetadata = trigger('fadeRightAnimation', [\n\ttransition(':enter', [style({ transform: 'translateX(-100%)', zIndex: 9999 }), animate('200ms ease-in', style({ transform: 'translateX(0%)' }))]),\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 FadeAnimation: AnimationTriggerMetadata = trigger('fadeAnimation', [\n\ttransition(':enter', [style({ opacity: 0, transform: 'translateY(10px)' }), animate('500ms', style({ opacity: 1, transform: 'translateY(0)' }))]),\n\ttransition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),\n]);\n","/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { CommonModule } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n\tselector: 'app-date-picker',\n\ttemplateUrl: './date-picker.component.html',\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class DatePickerComponent implements OnInit {\n\tcurrentDate: Date = new Date();\n\n\tngOnInit(): void {\n\t\tconst firstDayOfMonth: Date = this.currentDate.firstDayOfMonth();\n\t\t// console.warn(firstDayOfMonth, firstDayOfMonth.getDate(), firstDayOfMonth.getDay());\n\n\t\tconst weekCount: number = getWeekCount(this.currentDate.getFullYear(), this.currentDate.getMonth(), DayOfWeek.Monday);\n\t\tconsole.warn(weekCount);\n\n\t\tconst weeks: unknown[] = [];\n\n\t\tfor (let i: number = 0; i <= weekCount; i++) {\n\t\t\t// for(let){\n\t\t\t// }\n\t\t}\n\t}\n}\n\nenum DayOfWeek {\n\t'Sunday' = 0,\n\t'Monday' = 1,\n\t'Tuesday' = 2,\n\t'Wednesday' = 3,\n\t'Thursday' = 4,\n\t'Friday' = 5,\n\t'Saturday' = 6,\n}\n\nfunction getWeekCount(year: number, month: number, startDayOfWeek: DayOfWeek): number {\n\t// month_number is in the range 0..11\n\n\t// Get the first day of week week day (0: Sunday, 1: Monday, ...)\n\tconst firstDayOfWeek: DayOfWeek = startDayOfWeek || DayOfWeek.Sunday;\n\tconst firstOfMonth: Date = new Date(year, month, 1);\n\tconst lastOfMonth: Date = new Date(year, month + 1, 0);\n\tconst numberOfDaysInMonth: number = lastOfMonth.getDate();\n\tconst firstWeekDay: number = (firstOfMonth.getDay() - firstDayOfWeek + 7) % 7;\n\tconst used: number = firstWeekDay + numberOfDaysInMonth;\n\n\treturn Math.ceil(used / 7);\n}\n","coming soon\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\n\n@Component({\n\tselector: 'app-form-errors',\n\ttemplate: `\n\t\t<div class=\"invalid-feedback d-block\">\n\t\t\t@if (errors) {\n\t\t\t\t@if (errors['required']) {\n\t\t\t\t\tField is required\n\t\t\t\t}\n\t\t\t\t@if (errors['email']) {\n\t\t\t\t\tInvalid E-Mail\n\t\t\t\t}\n\t\t\t\t@if (errors['minlength']) {\n\t\t\t\t\tAt least {{ errors['minlength'].requiredLength }} are required\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n\t`,\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class FormErrorsComponent {\n\t@Input() errors: ValidationErrors | null = null;\n}\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-button]',\n\tstandalone: true,\n})\nexport class ButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tcolor!: string;\n\t_variant: string = 'contained';\n\n\t@HostListener('focus', ['$event']) onFocus(): void {\n\t\tthis.isFocused = true;\n\t}\n\n\t@HostListener('blur', ['$event']) onblur(): void {\n\t\tthis.isFocused = false;\n\t}\n\n\tset isFocused(val: boolean) {\n\t\tif (val) {\n\t\t\tthis.elementRef.nativeElement.classList.add(`focus-ring-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove(`focus-ring-${this.color}`);\n\t\t}\n\t}\n\n\t@Input('app-button') set appButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t}\n\n\t@Input() set variant(val: 'contained' | 'outline' | 'text') {\n\t\tthis._variant = val;\n\t}\n\n\t@Input() set size(val: string) {\n\t\tthis.elementRef.nativeElement.classList.add(`btn-${val || 'sm'}`);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn');\n\t\tif (this._variant === 'outline' || this._variant === 'text') {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this._variant}-${this.color}`);\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.add(`btn-${this.color}`);\n\t\t}\n\t\tthis.elementRef.nativeElement.classList.add('flex-shrink-0');\n\t\tthis.renderer.setAttribute(this.elementRef.nativeElement, 'type', 'button');\n\t}\n}\n","import { Directive, ElementRef, EmbeddedViewRef, HostListener, inject, Input, OnInit, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { createPopper, Instance, Placement } from '@popperjs/core';\n\n@Directive({\n\tselector: '[appDropdown]',\n\tstandalone: true,\n})\nexport class DropdownDirective implements OnInit {\n\t@Input('appDropdown') dropdownTemplate!: TemplateRef<UnknownObject>;\n\t@Input() placement: Placement = 'bottom-start';\n\n\tprivate readonly elementRef: ElementRef = inject(ElementRef);\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly viewContainer: ViewContainerRef = inject(ViewContainerRef);\n\n\tprivate wrapperElement!: HTMLElement | null;\n\tprivate dropdownContent!: HTMLElement | null;\n\tprivate isDropdownVisible: boolean = false;\n\tprivate popperInstance?: Instance;\n\n\tprivate documentClickListener!: (event: MouseEvent) => void;\n\n\tconstructor() {\n\t\tthis.documentClickListener = this.onDocumentClick.bind(this);\n\t}\n\n\tngOnInit(): void {\n\t\tif (!this.wrapperElement) {\n\t\t\tthis.wrapperElement = this.renderer.createElement('div');\n\t\t\tthis.renderer.addClass(this.wrapperElement, 'dropdown');\n\t\t\tconst parent: UnknownObject = this.elementRef.nativeElement.parentNode;\n\t\t\tthis.renderer.insertBefore(parent, this.wrapperElement, this.elementRef.nativeElement);\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.elementRef.nativeElement);\n\t\t}\n\t}\n\n\t@HostListener('click')\n\ttoggleDropdown(): void {\n\t\tif (this.isDropdownVisible) {\n\t\t\tthis.closeDropdown();\n\t\t} else {\n\t\t\tthis.openDropdown();\n\t\t}\n\t}\n\n\tprivate openDropdown(): void {\n\t\tif (!this.dropdownContent && this.wrapperElement) {\n\t\t\tconst dropdownView: EmbeddedViewRef<UnknownObject> = this.viewContainer.createEmbeddedView(this.dropdownTemplate);\n\t\t\tthis.dropdownContent = dropdownView.rootNodes[0];\n\t\t\tthis.renderer.appendChild(this.wrapperElement, this.dropdownContent);\n\n\t\t\tthis.addDropdownLinksListener();\n\n\t\t\tthis.popperInstance = createPopper(this.wrapperElement, this.dropdownContent!, {\n\t\t\t\tplacement: this.placement,\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: ({ placement }: UnknownObject): number[] => {\n\t\t\t\t\t\t\t\tif (placement.startsWith('bottom')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetHeight as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (placement.startsWith('top')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetHeight as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (placement.startsWith('left')) {\n\t\t\t\t\t\t\t\t\treturn [0, -(this.wrapperElement?.offsetWidth as number)];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [0, 0];\n\t\t\t\t\t\t\t},\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: ['right-start', 'top-start', 'left-start'],\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\t\t}\n\n\t\tdocument.addEventListener('click', this.documentClickListener);\n\t\tthis.isDropdownVisible = true;\n\t}\n\n\tprivate closeDropdown(): void {\n\t\tif (this.dropdownContent) {\n\t\t\tthis.viewContainer.clear();\n\t\t\tthis.dropdownContent = null;\n\t\t\tthis.popperInstance?.destroy();\n\t\t}\n\t\tdocument.removeEventListener('click', this.documentClickListener);\n\t\tthis.isDropdownVisible = false;\n\t}\n\n\tprivate onDocumentClick(event: MouseEvent): void {\n\t\tif (this.wrapperElement && !this.wrapperElement.contains(event.target as Node) && !this.elementRef.nativeElement.contains(event.target as Node)) {\n\t\t\tthis.closeDropdown();\n\t\t}\n\t}\n\n\tprivate addDropdownLinksListener(): void {\n\t\tconst links: NodeListOf<Element> | undefined = this.dropdownContent?.querySelectorAll('.dropdown-item');\n\t\tlinks?.forEach(link => {\n\t\t\tthis.renderer.listen(link, 'click', () => {\n\t\t\t\tthis.closeDropdown();\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'input,textarea[app-form-input]',\n\tstandalone: true,\n})\nexport class FormInputDirective 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-control');\n\t}\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n\tselector: 'label[app-form-label]',\n\tstandalone: true,\n})\nexport class FormLabelDirective {\n\t@HostBinding('class')\n\telementClass: string = 'form-label';\n}\n","import { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'select[app-form-select]',\n\tstandalone: true,\n})\nexport class FormSelectDirective 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 { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-icon-button]',\n\tstandalone: true,\n})\nexport class IconButtonDirective implements OnInit {\n\tprivate readonly elementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tcolor!: string;\n\n\t@Input('app-icon-button') set appIconButton(val: string) {\n\t\tthis.color = val || 'primary';\n\t\tthis.elementRef.nativeElement.classList.add(`icon-button-${this.color}`);\n\t}\n\n\t@Input() set shadow(val: boolean) {\n\t\tif (val === true || val === undefined) {\n\t\t\tthis.elementRef.nativeElement.classList.add('shadow-sm');\n\t\t} else {\n\t\t\tthis.elementRef.nativeElement.classList.remove('shadow-sm');\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.classList.add('btn', 'icon-button');\n\t}\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n\tselector: '[app-list-group-item-avatar]',\n\tstandalone: true,\n})\nexport class ListGroupItemAvatarDirective 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 { Directive, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'li[app-list-group-item]',\n\tstandalone: true,\n})\nexport class ListGroupItemDirective implements OnInit {\n\tprivate readonly renderer: Renderer2 = inject(Renderer2);\n\tprivate readonly elementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\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\n\t\tthis.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","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'ul[app-list-group]',\n\tstandalone: true,\n})\nexport class ListGroupDirective 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","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FormInputDirective, FormLabelDirective, FormSelectDirective } from '../../directives';\nimport { FormErrorsComponent } from '../form-errors';\n\nexport interface ISelectOptions {\n\tlabel: string;\n\tvalue: string;\n\tdisabled?: boolean;\n\tselected?: boolean;\n}\n\n@Component({\n\tselector: 'app-form-input',\n\ttemplateUrl: './form-input.component.html',\n\tstandalone: true,\n\timports: [ReactiveFormsModule, FormErrorsComponent, FormLabelDirective, FormInputDirective, FormSelectDirective],\n})\nexport class FormInputComponent {\n\t@Input({ required: true }) control!: FormControl;\n\t@Input() inputType: string = 'text';\n\t@Input({ required: true }) inputLabel!: string;\n\t@Input() inputPlaceholder?: string;\n\t@Input() inputId?: string;\n\t@Input({ required: true }) inputName!: string;\n\t@Input() inputTabIndex?: string;\n\t@Input() isSubmitted: boolean = false;\n\t@Input() selectOptions: ISelectOptions[] = [];\n\n\t@Output() onEnter: EventEmitter<void> = new EventEmitter();\n\t@Output() onChange: EventEmitter<Event> = new EventEmitter();\n\n\thandleSelect(event: Event): void {\n\t\tthis.onChange.next(event);\n\t}\n}\n","<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"password\" ||\n\t\tinputType === \"email\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\" ||\n\t\tinputType === \"time\"\n\t) {\n\t\t<input\n\t\t\t[type]=\"inputType\"\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t/>\n\t}\n\t@if (inputType === \"textarea\") {\n\t\t<textarea\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-input\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[placeholder]=\"inputPlaceholder\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\tstyle=\"height: 100px\"\n\t\t>\n\t\t</textarea>\n\t}\n\t@if (inputType === \"select\") {\n\t\t<select\n\t\t\t[attr.id]=\"inputId || inputName\"\n\t\t\t[attr.name]=\"inputName\"\n\t\t\t[formControl]=\"control\"\n\t\t\tapp-form-select\n\t\t\t[formInputInvalid]=\"isSubmitted && !!control.errors\"\n\t\t\t[tabIndex]=\"inputTabIndex\"\n\t\t\t(keydown.enter)=\"onEnter.next()\"\n\t\t\t(change)=\"handleSelect($event)\"\n\t\t>\n\t\t\t<option value=\"\" disabled selected>Select your option</option>\n\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\" [disabled]=\"option.disabled\" [selected]=\"option.selected\">\n\t\t\t\t\t{{ option.label }}\n\t\t\t\t</option>\n\t\t\t}\n\t\t</select>\n\t}\n\t<label app-form-label [attr.for]=\"inputName || inputId\"> {{ inputLabel }} </label>\n\t@if (isSubmitted && control.errors) {\n\t\t<app-form-errors [errors]=\"control.errors\" />\n\t}\n</div>\n","import { Component } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faSpinner, IconDefinition } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n\tselector: 'app-loading-indicator',\n\ttemplateUrl: './loading-indicator.component.html',\n\tstandalone: true,\n\tstyles: `\n\t\t:host {\n\t\t\tposition: fixed;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\ttransform: translate(-50%, -50%);\n\t\t\tcolor: #495057;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule],\n})\nexport class LoadingIndicatorComponent {\n\tfaSpinner: IconDefinition = faSpinner;\n}\n","<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'app-base-modal',\n\ttemplate: ``,\n\tstandalone: true,\n})\nexport class BaseModalComponent {\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives';\n\n@Component({\n\tselector: 'app-modal',\n\ttemplateUrl: './modal.component.html',\n\tstandalone: true,\n\timports: [CommonModule, IconButtonDirective, FontAwesomeModule],\n})\nexport class ModalComponent {\n\t@Input() title: string = '';\n\t@Input() showClose: boolean = true;\n\n\t@Input() set fullScreen(val: boolean) {\n\t\tif (val === true) {\n\t\t\tthis.dialogCssClasses.push(`modal-fullscreen`);\n\t\t} else {\n\t\t\tthis.dialogCssClasses = this.dialogCssClasses.removeBy((cssClass) => cssClass, 'modal-fullscreen');\n\t\t}\n\t}\n\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tdialogCssClasses: string[] = [];\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\" [ngClass]=\"dialogCssClasses\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header justify-content-between\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t\t<button app-icon-button=\"secondary\" class=\"ms-2\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<ng-content />\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"modal-backdrop fade show\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes, IconDefinition } from '@fortawesome/free-solid-svg-icons';\nimport { IconButtonDirective } from '../../directives';\n@Component({\n\tselector: 'app-off-canvas',\n\ttemplateUrl: './off-canvas.component.html',\n\tstandalone: true,\n\tstyles: `\n\t\t:host {\n\t\t\tz-index: 9999;\n\t\t\tdisplay: block;\n\t\t}\n\t`,\n\timports: [FontAwesomeModule, IconButtonDirective],\n})\nexport class OffCanvasComponent {\n\t@Input() title: string = '';\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tfaTimes: IconDefinition = faTimes;\n\n\thandleClickClose(): void {\n\t\tthis.onClose.next();\n\t}\n}\n","<div class=\"offcanvas offcanvas-start show\" tabindex=\"-1\" id=\"offcanvas\" style=\"z-index: 1051\">\n\t<div class=\"offcanvas-header justify-content-between\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button=\"secondary\" class=\"ml-auto\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\" />\n\t\t</button>\n\t</div>\n\t<ng-content />\n</div>\n\n<div class=\"modal-backdrop fade show\" (click)=\"handleClickClose()\"></div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n\tselector: 'app-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.next()\"></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\tstandalone: true,\n})\nexport class ToastComponent {\n\t@Input() message?: string;\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n}\n","enum SortOrder {\n\tNONE = 0,\n\tASC = 1,\n\tDESC = -1,\n}\n\nconst compareString = (valA: string, valB: string, ascending: boolean | undefined): number => {\n\treturn valA.localeCompare(valB) * (ascending ? SortOrder.ASC : SortOrder.DESC);\n};\n\nconst getSortOrder = <T>(valA: T, valB: T): SortOrder => {\n\treturn valA < valB ? SortOrder.DESC : valA === valB ? SortOrder.NONE : SortOrder.ASC;\n};\n\nconst compareNonString = <T>(valA: T, valB: T, ascending: boolean | undefined): number => {\n\treturn getSortOrder(valA, valB) * (ascending ? SortOrder.ASC : SortOrder.DESC);\n};\n\nconst getValue = <T>(valA: T, valB: T, ascending: boolean | undefined): number => {\n\tlet result: number = 0;\n\tif (typeof valA === 'string' && typeof valB === 'string') {\n\t\tresult = compareString(valA, valB, ascending);\n\t} else {\n\t\tresult = compareNonString(valA, valB, ascending);\n\t}\n\treturn result;\n};\n\nexport const sortHelper = <T, G>(\n\ta: T,\n\tb: T,\n\tvalueGetter: (a: T) => G,\n\tascending?: boolean,\n): number => {\n\tconst valA: G = valueGetter(a);\n\tconst valB: G = valueGetter(b);\n\treturn getValue(valA, valB, ascending);\n};\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\n\n@Pipe({\n\tname: 'formControl',\n\tstandalone: true,\n})\nexport class FormControlPipe implements PipeTransform {\n\ttransform(value: AbstractControl): FormControl<(typeof value)['value']> {\n\t\treturn value as FormControl<(typeof value)['value']>;\n\t}\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class ClipboardService {\n\tcopy(text: string): Promise<void> {\n\t\treturn navigator.clipboard.writeText(text);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport saveAs from 'file-saver';\nimport type { ParseResult, UnparseConfig, UnparseObject } from 'papaparse';\nimport { parse, unparse } from 'papaparse';\n\n@Injectable({ providedIn: 'root' })\nexport class FileService {\n\treadAsText(file: File): Promise<ProgressEvent<FileReader>> {\n\t\tconst fileReader: FileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\tresolve(event);\n\t\t\t};\n\t\t\tfileReader.onerror = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\treject(event);\n\t\t\t};\n\t\t\tfileReader.readAsText(file);\n\t\t});\n\t}\n\n\treadAsBinaryString(file: File): Promise<ProgressEvent<FileReader>> {\n\t\tconst fileReader: FileReader = new FileReader();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tfileReader.onload = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\tresolve(event);\n\t\t\t};\n\t\t\tfileReader.onerror = (event: ProgressEvent<FileReader>): void => {\n\t\t\t\treject(event);\n\t\t\t};\n\t\t\tfileReader.readAsBinaryString(file);\n\t\t});\n\t}\n\n\tunparse<T>(data: T[] | UnparseObject<T>, config?: UnparseConfig): string {\n\t\treturn unparse(data, config);\n\t}\n\n\tparse<T>(content: string | File): Promise<ParseResult<T>> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tparse(content, {\n\t\t\t\theader: true,\n\t\t\t\tcomplete: (results: ParseResult<T>) => resolve(results),\n\t\t\t\terror: (err: Error) => reject(err),\n\t\t\t});\n\t\t});\n\t}\n\n\tsaveAs(content: BlobPart, fileName: string, fileType: string): void {\n\t\tconst blob: Blob = new Blob([content], { type: fileType });\n\t\tsaveAs(blob, fileName, { autoBom: true });\n\t}\n\n\tgetFileExtension(filename: string): string {\n\t\tlet result: string = '-';\n\t\tif (/[.]/.exec(filename)) {\n\t\t\tconst regexp: RegExpExecArray | null = /[^.]+$/.exec(filename);\n\t\t\tresult = `.${regexp?.[0]}`;\n\t\t}\n\t\treturn result;\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class LoadingIndicatorService {\n\tshow: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n\thide: BehaviorSubject<void> = new BehaviorSubject<void>(undefined);\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class LocalService {\n\tget<T>(key: string): T | null {\n\t\tlet result: T | null = null;\n\t\tconst local: string | null = localStorage.getItem(key);\n\t\tif (local) {\n\t\t\tresult = JSON.parse(local);\n\t\t}\n\t\treturn result;\n\t}\n\n\tset<T>(key: string, val: T): void {\n\t\tlocalStorage.setItem(key, JSON.stringify(val));\n\t}\n\n\tremove(key: string): void {\n\t\tlocalStorage.removeItem(key);\n\t}\n\n\tremoveAll(): void {\n\t\tlocalStorage.clear();\n\t}\n}\n","import { ComponentType, DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BaseModalComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n\tprivate viewContainerRef?: ViewContainerRef;\n\tprivate portalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshowTemplate(templateRef: TemplateRef<unknown>): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tconst newPortal: TemplatePortal = new TemplatePortal(templateRef, this.viewContainerRef);\n\t\t\tthis.portalHost.attach(newPortal);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\tshowComponent<T extends BaseModalComponent>(component: ComponentType<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\tthis.portalHost.detach();\n\t}\n}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, ComponentRef, Injectable, ViewContainerRef, inject } from '@angular/core';\nimport { ToastComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n\tprivate readonly componentFactoryResolver: ComponentFactoryResolver = inject(ComponentFactoryResolver);\n\tviewContainerRef?: ViewContainerRef;\n\tportalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef): void {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshow(message: string, timeout: number = 1500): void {\n\t\tif (this.viewContainerRef) {\n\t\t\tif (this.portalHost.hasAttached()) {\n\t\t\t\tthis.portalHost.detach();\n\t\t\t}\n\n\t\t\tconst componentPortal: ComponentPortal<ToastComponent> = new ComponentPortal(\n\t\t\t\tToastComponent,\n\t\t\t\tthis.viewContainerRef,\n\t\t\t\tnull,\n\t\t\t\tthis.componentFactoryResolver\n\t\t\t);\n\t\t\tconst componentRef: ComponentRef<ToastComponent> = this.portalHost.attachComponentPortal(componentPortal);\n\t\t\tcomponentRef.instance.message = message;\n\t\t\tcomponentRef.instance.onClose.subscribe(() => {\n\t\t\t\tthis.hide();\n\t\t\t});\n\n\t\t\tsetTimeout(() => {\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\tthis.portalHost.detach();\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { LocalService } from './local.service';\n\n@Injectable({\n\tprovidedIn: 'root',\n})\nexport class TokenService {\n\tconstructor(private localService: LocalService) {}\n\n\tget(key: 'accesstoken' | 'refreshtoken'): string | null {\n\t\treturn this.localService.get<string>(key);\n\t}\n\n\tset(key: 'accesstoken' | 'refreshtoken', token: string): void {\n\t\tthis.localService.set(key, token);\n\t}\n\n\tremove(key: 'accesstoken' | 'refreshtoken'): void {\n\t\tthis.localService.remove(key);\n\t}\n}\n","import { sortHelper } from '../helpers';\nimport { IDictionary } from '../interfaces';\n\nexport {};\n\ndeclare global {\n\tinterface Array<T> {\n\t\tgroupBy(valueGetter: (a: T) => string): IDictionary<T[]>;\n\t\tremoveBy<T, G>(valueGetter: (a: T) => G, val: G): T[];\n\t\torderBy<T, G>(valueGetter: (a: T) => G, ascending?: boolean): T[];\n\t\tfilterBy<G>(key?: string): G[];\n\t\tdistinct<T>(comparator?: (obj1: unknown, obj2: unknown) => boolean): T[];\n\t}\n}\n\nArray.prototype.groupBy = function <T>(valueGetter: (a: T) => string): IDictionary<T> {\n\treturn this.reduce((curr, obj) => {\n\t\tconst key: string = valueGetter(obj);\n\t\t(curr[key] = curr[key] || []).push(obj);\n\t\treturn curr;\n\t}, {});\n};\n\nArray.prototype.removeBy = function <T, G>(valueGetter: (a: T) => G, val: G): T[] {\n\treturn this.filter((curr) => {\n\t\tconst key: G = valueGetter(curr);\n\t\t// change to split to remove only first item found\n\t\treturn key !== val;\n\t});\n};\n\nArray.prototype.orderBy = function <T, G>(valueGetter: (a: T) => G, ascending: boolean = true): T[] {\n\tthis?.sort((a, b) => sortHelper(a, b, valueGetter, ascending));\n\treturn this;\n};\n\nArray.prototype.filterBy = function <T>(key?: string): T[] {\n\treturn this.filter((a) => {\n\t\tlet result: boolean = false;\n\t\tif (key && a[key]) {\n\t\t\tresult = a[key] === key;\n\t\t} else {\n\t\t\tresult = a === key;\n\t\t}\n\t\treturn result;\n\t});\n};\n\nArray.prototype.distinct = function <T>(comparator?: (obj1: unknown, obj2: unknown) => boolean): T[] {\n\tconst thisAsArray: T[] = this as T[];\n\tconst result: T[] = comparator\n\t\t? thisAsArray.filter((value, index, array) => array.findIndex((o) => comparator(o, value)) === index)\n\t\t: thisAsArray.filter((value, index, array) => array.indexOf(value) === index);\n\treturn result;\n};\n","import type { ConfigType, ManipulateType, OpUnitType, UnitType } from 'dayjs';\nimport dayjs from 'dayjs';\nimport localizedFormat from 'dayjs/plugin/localizedFormat';\ndayjs.extend(localizedFormat);\n\ndeclare global {\n\tinterface Date {\n\t\tisAfter(date: ConfigType, unit?: OpUnitType): boolean;\n\t\tisBefore(date: ConfigType, unit?: OpUnitType): boolean;\n\t\tformat(template?: string): string;\n\t\tisValid(): boolean;\n\t\tadd(value: number, unit?: ManipulateType): Date;\n\t\tsubtract(value: number, unit?: ManipulateType): Date;\n\t\tfirstDayOfMonth(): Date;\n\t\tlastDayOfMonth(): Date;\n\t\tset(unit: UnitType, value: number): Date;\n\t\tdiff(date: Date, unit?: UnitType): number;\n\t}\n}\n\nDate.prototype.isAfter = function (date: dayjs.ConfigType, unit?: dayjs.OpUnitType): boolean {\n\treturn dayjs(this).isAfter(date, unit);\n};\n\nDate.prototype.isBefore = function (date: dayjs.ConfigType, unit?: dayjs.OpUnitType): boolean {\n\treturn dayjs(this).isBefore(date, unit);\n};\n\nDate.prototype.format = function (template?: string): string {\n\treturn dayjs(this).format(template);\n};\n\nDate.prototype.isValid = function (): boolean {\n\treturn dayjs(this).isValid();\n};\n\nDate.prototype.add = function (value: number, unit?: ManipulateType): Date {\n\treturn dayjs(this).add(value, unit).toDate();\n};\n\nDate.prototype.subtract = function (value: number, unit?: ManipulateType): Date {\n\treturn dayjs(this).subtract(value, unit).toDate();\n};\n\nDate.prototype.firstDayOfMonth = function (): Date {\n\treturn dayjs(this).startOf('month').toDate();\n};\n\nDate.prototype.lastDayOfMonth = function (): Date {\n\treturn dayjs(this).endOf('month').toDate();\n};\n\nDate.prototype.set = function (unit: UnitType, value: number): Date {\n\treturn dayjs(this).set(unit, value).toDate();\n};\n\nDate.prototype.diff = function (date: Date, unit?: UnitType): number {\n\treturn dayjs(this).diff(date, unit);\n};\n","export {};\n\ndeclare global {\n\tinterface String {\n\t\tcapitalize(): string;\n\t}\n}\n\nString.prototype.capitalize = function (): string {\n\treturn this.charAt(0).toUpperCase() + this.slice(1);\n};\n","/*\n * Public API Surface of ngx-gccb\n */\n\n// export * from './lib/ngx-gccb.component';\n// export * from './lib/ngx-gccb.service';\n\nexport * from './lib/animations';\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/helpers';\nexport * from './lib/interfaces';\nexport * from './lib/pipe';\nexport * from './lib/services';\nexport * from './lib/typings';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.LocalService"],"mappings":"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"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { TemplateRef } from '@angular/core';
|
|
1
|
+
import { OnInit, TemplateRef } from '@angular/core';
|
|
2
|
+
import { Placement } from '@popperjs/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class DropdownDirective {
|
|
4
|
-
dropdownTemplate: TemplateRef<
|
|
4
|
+
export declare class DropdownDirective implements OnInit {
|
|
5
|
+
dropdownTemplate: TemplateRef<UnknownObject>;
|
|
6
|
+
placement: Placement;
|
|
5
7
|
private readonly elementRef;
|
|
6
8
|
private readonly renderer;
|
|
7
9
|
private readonly viewContainer;
|
|
8
10
|
private wrapperElement;
|
|
9
11
|
private dropdownContent;
|
|
10
12
|
private isDropdownVisible;
|
|
13
|
+
private popperInstance?;
|
|
11
14
|
private documentClickListener;
|
|
12
15
|
constructor();
|
|
13
16
|
ngOnInit(): void;
|
|
@@ -17,5 +20,5 @@ export declare class DropdownDirective {
|
|
|
17
20
|
private onDocumentClick;
|
|
18
21
|
private addDropdownLinksListener;
|
|
19
22
|
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownDirective, never>;
|
|
20
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownDirective, "[appDropdown]", never, { "dropdownTemplate": { "alias": "appDropdown"; "required": false; }; }, {}, never, never, true, never>;
|
|
23
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DropdownDirective, "[appDropdown]", never, { "dropdownTemplate": { "alias": "appDropdown"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; }, {}, never, never, true, never>;
|
|
21
24
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-gccb",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^18.2.11",
|
|
6
6
|
"@angular/core": "^18.2.11",
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"@fortawesome/free-solid-svg-icons": "^6.6.0",
|
|
11
11
|
"dayjs": "^1.11.13",
|
|
12
12
|
"file-saver": "^2.0.5",
|
|
13
|
-
"papaparse": "^5.4.1"
|
|
13
|
+
"papaparse": "^5.4.1",
|
|
14
|
+
"@popperjs/core": "^2.11.8"
|
|
14
15
|
},
|
|
15
16
|
"dependencies": {
|
|
16
17
|
"tslib": "^2.3.0"
|