ngx-gccb 0.0.5 → 0.0.7
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/README.md +11 -12
- package/esm2022/lib/components/form-input/form-input.component.mjs +3 -3
- package/esm2022/lib/components/modal/base-modal.component.mjs +18 -0
- package/esm2022/lib/components/modal/index.mjs +2 -1
- package/esm2022/lib/components/modal/modal.component.mjs +8 -3
- package/esm2022/lib/components/off-canvas/off-canvas.component.mjs +3 -3
- package/esm2022/lib/services/modal.service.mjs +16 -3
- package/fesm2022/ngx-gccb.mjs +37 -7
- package/fesm2022/ngx-gccb.mjs.map +1 -1
- package/lib/components/modal/base-modal.component.d.ts +8 -0
- package/lib/components/modal/index.d.ts +1 -0
- package/lib/components/modal/modal.component.d.ts +1 -0
- package/lib/services/modal.service.d.ts +5 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
# NgxGccb
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
simple component library using bootstrap styles
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## install library
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
> Note: Don't forget to add `--project ngx-gccb` or else it will be added to the default project in your `angular.json` file.
|
|
7
|
+
`npm i ngx-gccb`
|
|
9
8
|
|
|
10
|
-
##
|
|
9
|
+
## include styles
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
since ngx-gccb is using bootstrap scss styles, you need to import bootstrap first
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
install bootstrap
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
`npm i bootstrap`
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
include bootstrap
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
`@import "bootstrap/scss/bootstrap";`
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
include ngx-gccb styles
|
|
23
22
|
|
|
24
|
-
|
|
23
|
+
`@import "ngx-gccb/assets/styles.scss";`
|
|
@@ -11,7 +11,7 @@ export class FormInputComponent {
|
|
|
11
11
|
this.onEnter = new EventEmitter();
|
|
12
12
|
}
|
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: FormInputComponent, isStandalone: true, selector: "app-form-input", inputs: { control: "control", inputType: "inputType", inputLabel: "inputLabel", inputPlaceholder: "inputPlaceholder", inputId: "inputId", inputName: "inputName", inputTabIndex: "inputTabIndex", isSubmitted: "isSubmitted", selectOptions: "selectOptions" }, outputs: { onEnter: "onEnter" }, ngImport: i0, template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\"\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 === \"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>\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\">\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", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormErrors, selector: "app-form-errors", inputs: ["errors"] }, { kind: "directive", type: FormLabelDirective, selector: "label[app-form-label]" }, { kind: "directive", type: FormInputDirective, selector: "input,textarea[app-form-input]", inputs: ["formInputInvalid"] }, { kind: "directive", type: FormSelectDirective, selector: "select[app-form-select]", inputs: ["formInputInvalid"] }] }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: FormInputComponent, isStandalone: true, selector: "app-form-input", inputs: { control: "control", inputType: "inputType", inputLabel: "inputLabel", inputPlaceholder: "inputPlaceholder", inputId: "inputId", inputName: "inputName", inputTabIndex: "inputTabIndex", isSubmitted: "isSubmitted", selectOptions: "selectOptions" }, outputs: { onEnter: "onEnter" }, ngImport: i0, template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"password\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\"\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 === \"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>\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\">\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", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormErrors, selector: "app-form-errors", inputs: ["errors"] }, { kind: "directive", type: FormLabelDirective, selector: "label[app-form-label]" }, { kind: "directive", type: FormInputDirective, selector: "input,textarea[app-form-input]", inputs: ["formInputInvalid"] }, { kind: "directive", type: FormSelectDirective, selector: "select[app-form-select]", inputs: ["formInputInvalid"] }] }); }
|
|
15
15
|
}
|
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FormInputComponent, decorators: [{
|
|
17
17
|
type: Component,
|
|
@@ -21,7 +21,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
21
21
|
FormLabelDirective,
|
|
22
22
|
FormInputDirective,
|
|
23
23
|
FormSelectDirective,
|
|
24
|
-
], template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\"\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 === \"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>\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\">\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" }]
|
|
24
|
+
], template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"password\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\"\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 === \"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>\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\">\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" }]
|
|
25
25
|
}], propDecorators: { control: [{
|
|
26
26
|
type: Input,
|
|
27
27
|
args: [{ required: true }]
|
|
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
46
46
|
}], onEnter: [{
|
|
47
47
|
type: Output
|
|
48
48
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQWUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQW1CNUMsTUFBTSxPQUFPLGtCQUFrQjtJQVovQjtRQWNVLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFNM0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFHNUIsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO0tBQzNEOzhHQVpZLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDJXQ3RCL0IsMHdDQTBDQSwyQ0QzQkUsbUJBQW1CLHErQkFDbkIsVUFBVSxnRkFDVixrQkFBa0Isa0VBQ2xCLGtCQUFrQix5R0FDbEIsbUJBQW1COzsyRkFHUixrQkFBa0I7a0JBWjlCLFNBQVM7K0JBQ0MsZ0JBQWdCLGNBRWQsSUFBSSxXQUNQO3dCQUNSLG1CQUFtQjt3QkFDbkIsVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3FCQUNuQjs4QkFHMEIsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ3FCLFVBQVU7c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNxQixTQUFTO3NCQUFuQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1JbnB1dERpcmVjdGl2ZSwgRm9ybUxhYmVsRGlyZWN0aXZlLCBGb3JtU2VsZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGb3JtRXJyb3JzIH0gZnJvbSAnLi4vZm9ybS1lcnJvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTZWxlY3RPcHRpb25zIHtcblx0bGFiZWw6IHN0cmluZztcblx0dmFsdWU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXBwLWZvcm0taW5wdXQnLFxuXHR0ZW1wbGF0ZVVybDogJy4vZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtcblx0XHRSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXHRcdEZvcm1FcnJvcnMsXG5cdFx0Rm9ybUxhYmVsRGlyZWN0aXZlLFxuXHRcdEZvcm1JbnB1dERpcmVjdGl2ZSxcblx0XHRGb3JtU2VsZWN0RGlyZWN0aXZlLFxuXHRdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtSW5wdXRDb21wb25lbnQge1xuXHRASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb250cm9sITogRm9ybUNvbnRyb2w7XG5cdEBJbnB1dCgpIGlucHV0VHlwZTogc3RyaW5nID0gJ3RleHQnO1xuXHRASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBpbnB1dExhYmVsITogc3RyaW5nO1xuXHRASW5wdXQoKSBpbnB1dFBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXHRASW5wdXQoKSBpbnB1dElkPzogc3RyaW5nO1xuXHRASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBpbnB1dE5hbWUhOiBzdHJpbmc7XG5cdEBJbnB1dCgpIGlucHV0VGFiSW5kZXg/OiBzdHJpbmc7XG5cdEBJbnB1dCgpIGlzU3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XG5cdEBJbnB1dCgpIHNlbGVjdE9wdGlvbnM/OiBJU2VsZWN0T3B0aW9uc1tdO1xuXG5cdEBPdXRwdXQoKSBvbkVudGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1mbG9hdGluZyBtYi0zXCI+XG5cdEBpZiAoXG5cdFx0aW5wdXRUeXBlID09PSBcInRleHRcIiB8fFxuXHRcdGlucHV0VHlwZSA9PT0gXCJudW1iZXJcIiB8fFxuXHRcdGlucHV0VHlwZSA9PT0gXCJwYXNzd29yZFwiIHx8XG5cdFx0aW5wdXRUeXBlID09PSBcImRhdGVcIiB8fFxuXHRcdGlucHV0VHlwZSA9PT0gXCJkYXRldGltZS1sb2NhbFwiXG5cdCkge1xuXHRcdDxpbnB1dFxuXHRcdFx0W3R5cGVdPVwiaW5wdXRUeXBlXCJcblx0XHRcdFthdHRyLmlkXT1cImlucHV0SWQgfHwgaW5wdXROYW1lXCJcblx0XHRcdFthdHRyLm5hbWVdPVwiaW5wdXROYW1lXCJcblx0XHRcdFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcblx0XHRcdGFwcC1mb3JtLWlucHV0XG5cdFx0XHRbZm9ybUlucHV0SW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiAhIWNvbnRyb2wuZXJyb3JzXCJcblx0XHRcdFtwbGFjZWhvbGRlcl09XCJpbnB1dFBsYWNlaG9sZGVyXCJcblx0XHRcdFt0YWJJbmRleF09XCJpbnB1dFRhYkluZGV4XCJcblx0XHRcdChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXIubmV4dCgpXCJcblx0XHQvPlxuXHR9XG5cdEBpZiAoaW5wdXRUeXBlID09PSBcInNlbGVjdFwiKSB7XG5cdFx0PHNlbGVjdFxuXHRcdFx0W2F0dHIuaWRdPVwiaW5wdXRJZCB8fCBpbnB1dE5hbWVcIlxuXHRcdFx0W2F0dHIubmFtZV09XCJpbnB1dE5hbWVcIlxuXHRcdFx0W2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuXHRcdFx0YXBwLWZvcm0tc2VsZWN0XG5cdFx0XHRbZm9ybUlucHV0SW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiAhIWNvbnRyb2wuZXJyb3JzXCJcblx0XHRcdFt0YWJJbmRleF09XCJpbnB1dFRhYkluZGV4XCJcblx0XHRcdChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXIubmV4dCgpXCJcblx0XHQ+XG5cdFx0XHRAZm9yIChvcHRpb24gb2Ygc2VsZWN0T3B0aW9uczsgdHJhY2sgb3B0aW9uLnZhbHVlKSB7XG5cdFx0XHRcdDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPlxuXHRcdFx0XHRcdHt7IG9wdGlvbi5sYWJlbCB9fVxuXHRcdFx0XHQ8L29wdGlvbj5cblx0XHRcdH1cblx0XHQ8L3NlbGVjdD5cblx0fVxuXHQ8bGFiZWwgYXBwLWZvcm0tbGFiZWwgW2F0dHIuZm9yXT1cImlucHV0TmFtZSB8fCBpbnB1dElkXCI+IHt7IGlucHV0TGFiZWwgfX0gPC9sYWJlbD5cblx0QGlmIChpc1N1Ym1pdHRlZCAmJiBjb250cm9sLmVycm9ycykge1xuXHRcdDxhcHAtZm9ybS1lcnJvcnMgW2Vycm9yc109XCJjb250cm9sLmVycm9yc1wiIC8+XG5cdH1cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BaseModalComponent {
|
|
4
|
+
hide() {
|
|
5
|
+
this.portalHost.detach();
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BaseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: BaseModalComponent, isStandalone: true, selector: "app-base-modal", ngImport: i0, template: ``, isInline: true }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BaseModalComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{
|
|
13
|
+
selector: 'app-base-modal',
|
|
14
|
+
template: ``,
|
|
15
|
+
standalone: true,
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwvYmFzZS1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLGtCQUFrQjtJQUc5QixJQUFJO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQUxXLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDBFQUhwQixFQUFFOzsyRkFHQSxrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osVUFBVSxFQUFFLElBQUk7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9tUG9ydGFsT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXBwLWJhc2UtbW9kYWwnLFxuXHR0ZW1wbGF0ZTogYGAsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VNb2RhbENvbXBvbmVudCB7XG5cdHBvcnRhbEhvc3QhOiBEb21Qb3J0YWxPdXRsZXQ7XG5cblx0aGlkZSgpIHtcblx0XHR0aGlzLnBvcnRhbEhvc3QuZGV0YWNoKCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
export * from './base-modal.component';
|
|
1
2
|
export * from './modal.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNlLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
3
|
+
import { faTimes } from '@fortawesome/free-solid-svg-icons';
|
|
4
|
+
import { IconButtonDirective } from '../../directives';
|
|
2
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@fortawesome/angular-fontawesome";
|
|
3
7
|
export class ModalComponent {
|
|
4
8
|
constructor() {
|
|
5
9
|
this.title = '';
|
|
6
10
|
this.showClose = true;
|
|
7
11
|
this.onClose = new EventEmitter();
|
|
12
|
+
this.faTimes = faTimes;
|
|
8
13
|
}
|
|
9
14
|
handleClickClose() {
|
|
10
15
|
this.onClose.next();
|
|
11
16
|
}
|
|
12
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { title: "title", showClose: "showClose" }, 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\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t<button type=\"button\"
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { title: "title", showClose: "showClose" }, 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\">\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 type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "shadow"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
|
|
14
19
|
}
|
|
15
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ModalComponent, decorators: [{
|
|
16
21
|
type: Component,
|
|
17
|
-
args: [{ selector: 'app-modal', standalone: true, template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t<button type=\"button\"
|
|
22
|
+
args: [{ selector: 'app-modal', standalone: true, imports: [IconButtonDirective, FontAwesomeModule], template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\">\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 type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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" }]
|
|
18
23
|
}], propDecorators: { title: [{
|
|
19
24
|
type: Input
|
|
20
25
|
}], showClose: [{
|
|
@@ -22,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
22
27
|
}], onClose: [{
|
|
23
28
|
type: Output
|
|
24
29
|
}] } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWdjY2Ivc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBUXZELE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBT1UsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixjQUFTLEdBQVksSUFBSSxDQUFDO1FBRXpCLFlBQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzRCxZQUFPLEdBQUcsT0FBTyxDQUFDO0tBS2xCO0lBSEEsZ0JBQWdCO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQVZXLGNBQWM7a0dBQWQsY0FBYywwSkNYM0IsZ3VCQXVCQSw0Q0RkVyxtQkFBbUIsMEdBQUUsaUJBQWlCOzsyRkFFcEMsY0FBYztrQkFOMUIsU0FBUzsrQkFDQyxXQUFXLGNBRVQsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCLENBQUM7OEJBR3hDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBmYVRpbWVzIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJztcbmltcG9ydCB7IEljb25CdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXBwLW1vZGFsJyxcblx0dGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW0ljb25CdXR0b25EaXJlY3RpdmUsIEZvbnRBd2Vzb21lTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQge1xuXHRASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJyc7XG5cdEBJbnB1dCgpIHNob3dDbG9zZTogYm9vbGVhbiA9IHRydWU7XG5cblx0QE91dHB1dCgpIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRmYVRpbWVzID0gZmFUaW1lcztcblxuXHRoYW5kbGVDbGlja0Nsb3NlKCkge1xuXHRcdHRoaXMub25DbG9zZS5uZXh0KCk7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIiB0YWJpbmRleD1cIi0xXCI+XG5cdDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIj5cblx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuXHRcdFx0XHQ8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPnt7IHRpdGxlIH19PC9oNT5cblx0XHRcdFx0QGlmIChzaG93Q2xvc2UpIHtcblx0XHRcdFx0XHQ8YnV0dG9uIGFwcC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImhhbmRsZUNsaWNrQ2xvc2UoKVwiPlxuXHRcdFx0XHRcdFx0PGZhLWljb24gW2ljb25dPVwiZmFUaW1lc1wiPjwvZmEtaWNvbj5cblx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0fVxuXHRcdFx0PC9kaXY+XG5cblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG5cdFx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0XHQ8L2Rpdj5cblxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuXHRcdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm1vZGFsLWJhY2tkcm9wIGZhZGUgc2hvd1wiPjwvZGl2PlxuIl19
|
|
@@ -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: "17.2.2", ngImport: i0, type: OffCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", 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\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "shadow"] }] }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", 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 class=\"ml-auto\" type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "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: "17.2.2", 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\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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"] }]
|
|
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 class=\"ml-auto\" type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmLWNhbnZhcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZ2NjYi9zcmMvbGliL2NvbXBvbmVudHMvb2ZmLWNhbnZhcy9vZmYtY2FudmFzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvY29tcG9uZW50cy9vZmYtY2FudmFzL29mZi1jYW52YXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQWF2RCxNQUFNLE9BQU8sa0JBQWtCO0lBWi9CO1FBYVUsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNsQixZQUFPLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0QsWUFBTyxHQUFHLE9BQU8sQ0FBQztLQUtsQjtJQUhBLGdCQUFnQjtRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQzs4R0FSVyxrQkFBa0I7a0dBQWxCLGtCQUFrQix1SUNoQi9CLGtnQkFXQSw0RkRHVyxpQkFBaUIsbVNBQUUsbUJBQW1COzsyRkFFcEMsa0JBQWtCO2tCQVo5QixTQUFTOytCQUNDLGdCQUFnQixjQUVkLElBQUksV0FPUCxDQUFDLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDOzhCQUd4QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IGZhVGltZXMgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuaW1wb3J0IHsgSWNvbkJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYXBwLW9mZi1jYW52YXMnLFxuXHR0ZW1wbGF0ZVVybDogJy4vb2ZmLWNhbnZhcy5jb21wb25lbnQuaHRtbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHN0eWxlczogYFxuXHRcdDpob3N0IHtcblx0XHRcdHotaW5kZXg6IDk5OTk7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdGAsXG5cdGltcG9ydHM6IFtGb250QXdlc29tZU1vZHVsZSwgSWNvbkJ1dHRvbkRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE9mZkNhbnZhc0NvbXBvbmVudCB7XG5cdEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcblx0QE91dHB1dCgpIG9uQ2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRmYVRpbWVzID0gZmFUaW1lcztcblxuXHRoYW5kbGVDbGlja0Nsb3NlKCkge1xuXHRcdHRoaXMub25DbG9zZS5uZXh0KCk7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvZmZjYW52YXMgb2ZmY2FudmFzLXN0YXJ0IHNob3dcIiB0YWJpbmRleD1cIi0xXCIgaWQ9XCJvZmZjYW52YXNcIiBzdHlsZT1cInotaW5kZXg6IDEwNTFcIj5cblx0PGRpdiBjbGFzcz1cIm9mZmNhbnZhcy1oZWFkZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cblx0XHQ8aDUgY2xhc3M9XCJvZmZjYW52YXMtdGl0bGVcIiBpZD1cIm9mZmNhbnZhc0xhYmVsXCI+e3sgdGl0bGUgfX08L2g1PlxuXHRcdDxidXR0b24gYXBwLWljb24tYnV0dG9uIGNsYXNzPVwibWwtYXV0b1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiaGFuZGxlQ2xpY2tDbG9zZSgpXCI+XG5cdFx0XHQ8ZmEtaWNvbiBbaWNvbl09XCJmYVRpbWVzXCI+PC9mYS1pY29uPlxuXHRcdDwvYnV0dG9uPlxuXHQ8L2Rpdj5cblx0PG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibW9kYWwtYmFja2Ryb3AgZmFkZSBzaG93XCIgKGNsaWNrKT1cImhhbmRsZUNsaWNrQ2xvc2UoKVwiPjwvZGl2PlxuIl19
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
1
|
+
import { ComponentPortal, DomPortalOutlet, TemplatePortal, } from '@angular/cdk/portal';
|
|
2
|
+
import { ComponentFactoryResolver, Injectable, inject, } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class ModalService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.componentFactoryResolver = inject(ComponentFactoryResolver);
|
|
7
|
+
}
|
|
5
8
|
init(viewContainerRef) {
|
|
6
9
|
this.portalHost = new DomPortalOutlet(document.body);
|
|
7
10
|
this.viewContainerRef = viewContainerRef;
|
|
@@ -15,6 +18,16 @@ export class ModalService {
|
|
|
15
18
|
throw Error('no viewcontainer ref is set');
|
|
16
19
|
}
|
|
17
20
|
}
|
|
21
|
+
showComponent(component) {
|
|
22
|
+
if (!this.viewContainerRef) {
|
|
23
|
+
throw Error('no viewcontainer ref is set');
|
|
24
|
+
}
|
|
25
|
+
const portalHost = new DomPortalOutlet(document.body);
|
|
26
|
+
const componentPortal = new ComponentPortal(component, this.viewContainerRef, null, this.componentFactoryResolver);
|
|
27
|
+
const componentRef = portalHost.attachComponentPortal(componentPortal);
|
|
28
|
+
componentRef.instance.portalHost = portalHost;
|
|
29
|
+
return componentRef;
|
|
30
|
+
}
|
|
18
31
|
hide() {
|
|
19
32
|
this.portalHost.detach();
|
|
20
33
|
}
|
|
@@ -25,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
25
38
|
type: Injectable,
|
|
26
39
|
args: [{ providedIn: 'root' }]
|
|
27
40
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1nY2NiL3NyYy9saWIvc2VydmljZXMvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUVmLGVBQWUsRUFDZixjQUFjLEdBQ2QsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ04sd0JBQXdCLEVBQ3hCLFVBQVUsRUFHVixNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7O0FBSXZCLE1BQU0sT0FBTyxZQUFZO0lBRHpCO1FBRUMsNkJBQXdCLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0F3QzVEO0lBcENBLElBQUksQ0FBQyxnQkFBa0M7UUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFZLENBQUMsV0FBaUM7UUFDN0MsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMzQixNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDekUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDUCxNQUFNLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDRixDQUFDO0lBRUQsYUFBYSxDQUErQixTQUEyQjtRQUN0RSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDNUIsTUFBTSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRELE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxDQUMxQyxTQUFTLEVBQ1QsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLEVBQ0osSUFBSSxDQUFDLHdCQUF3QixDQUM3QixDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZFLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM5QyxPQUFPLFlBQVksQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSTtRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs4R0F4Q1csWUFBWTtrSEFBWixZQUFZLGNBREMsTUFBTTs7MkZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50UG9ydGFsLFxuXHRDb21wb25lbnRUeXBlLFxuXHREb21Qb3J0YWxPdXRsZXQsXG5cdFRlbXBsYXRlUG9ydGFsLFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG5cdENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcblx0SW5qZWN0YWJsZSxcblx0VGVtcGxhdGVSZWYsXG5cdFZpZXdDb250YWluZXJSZWYsXG5cdGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xuXHRjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgPSBpbmplY3QoQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcblx0dmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG5cdHBvcnRhbEhvc3QhOiBEb21Qb3J0YWxPdXRsZXQ7XG5cblx0aW5pdCh2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XG5cdFx0dGhpcy5wb3J0YWxIb3N0ID0gbmV3IERvbVBvcnRhbE91dGxldChkb2N1bWVudC5ib2R5KTtcblx0XHR0aGlzLnZpZXdDb250YWluZXJSZWYgPSB2aWV3Q29udGFpbmVyUmVmO1xuXHR9XG5cblx0c2hvd1RlbXBsYXRlKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikge1xuXHRcdGlmICh0aGlzLnZpZXdDb250YWluZXJSZWYpIHtcblx0XHRcdGNvbnN0IG5ld1BvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZVJlZiwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcblx0XHRcdHRoaXMucG9ydGFsSG9zdC5hdHRhY2gobmV3UG9ydGFsKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgRXJyb3IoJ25vIHZpZXdjb250YWluZXIgcmVmIGlzIHNldCcpO1xuXHRcdH1cblx0fVxuXG5cdHNob3dDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VNb2RhbENvbXBvbmVudD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+KSB7XG5cdFx0aWYgKCF0aGlzLnZpZXdDb250YWluZXJSZWYpIHtcblx0XHRcdHRocm93IEVycm9yKCdubyB2aWV3Y29udGFpbmVyIHJlZiBpcyBzZXQnKTtcblx0XHR9XG5cblx0XHRjb25zdCBwb3J0YWxIb3N0ID0gbmV3IERvbVBvcnRhbE91dGxldChkb2N1bWVudC5ib2R5KTtcblxuXHRcdGNvbnN0IGNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG5cdFx0XHRjb21wb25lbnQsXG5cdFx0XHR0aGlzLnZpZXdDb250YWluZXJSZWYsXG5cdFx0XHRudWxsLFxuXHRcdFx0dGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG5cdFx0KTtcblxuXHRcdGNvbnN0IGNvbXBvbmVudFJlZiA9IHBvcnRhbEhvc3QuYXR0YWNoQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudFBvcnRhbCk7XG5cdFx0Y29tcG9uZW50UmVmLmluc3RhbmNlLnBvcnRhbEhvc3QgPSBwb3J0YWxIb3N0O1xuXHRcdHJldHVybiBjb21wb25lbnRSZWY7XG5cdH1cblxuXHRoaWRlKCkge1xuXHRcdHRoaXMucG9ydGFsSG9zdC5kZXRhY2goKTtcblx0fVxufVxuIl19
|
package/fesm2022/ngx-gccb.mjs
CHANGED
|
@@ -305,7 +305,7 @@ class FormInputComponent {
|
|
|
305
305
|
this.onEnter = new EventEmitter();
|
|
306
306
|
}
|
|
307
307
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
308
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: FormInputComponent, isStandalone: true, selector: "app-form-input", inputs: { control: "control", inputType: "inputType", inputLabel: "inputLabel", inputPlaceholder: "inputPlaceholder", inputId: "inputId", inputName: "inputName", inputTabIndex: "inputTabIndex", isSubmitted: "isSubmitted", selectOptions: "selectOptions" }, outputs: { onEnter: "onEnter" }, ngImport: i0, template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\"\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 === \"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>\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\">\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", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormErrors, selector: "app-form-errors", inputs: ["errors"] }, { kind: "directive", type: FormLabelDirective, selector: "label[app-form-label]" }, { kind: "directive", type: FormInputDirective, selector: "input,textarea[app-form-input]", inputs: ["formInputInvalid"] }, { kind: "directive", type: FormSelectDirective, selector: "select[app-form-select]", inputs: ["formInputInvalid"] }] }); }
|
|
308
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: FormInputComponent, isStandalone: true, selector: "app-form-input", inputs: { control: "control", inputType: "inputType", inputLabel: "inputLabel", inputPlaceholder: "inputPlaceholder", inputId: "inputId", inputName: "inputName", inputTabIndex: "inputTabIndex", isSubmitted: "isSubmitted", selectOptions: "selectOptions" }, outputs: { onEnter: "onEnter" }, ngImport: i0, template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"password\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\"\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 === \"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>\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\">\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", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: FormErrors, selector: "app-form-errors", inputs: ["errors"] }, { kind: "directive", type: FormLabelDirective, selector: "label[app-form-label]" }, { kind: "directive", type: FormInputDirective, selector: "input,textarea[app-form-input]", inputs: ["formInputInvalid"] }, { kind: "directive", type: FormSelectDirective, selector: "select[app-form-select]", inputs: ["formInputInvalid"] }] }); }
|
|
309
309
|
}
|
|
310
310
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FormInputComponent, decorators: [{
|
|
311
311
|
type: Component,
|
|
@@ -315,7 +315,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
315
315
|
FormLabelDirective,
|
|
316
316
|
FormInputDirective,
|
|
317
317
|
FormSelectDirective,
|
|
318
|
-
], template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\"\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 === \"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>\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\">\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" }]
|
|
318
|
+
], template: "<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"password\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\"\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 === \"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>\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\">\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" }]
|
|
319
319
|
}], propDecorators: { control: [{
|
|
320
320
|
type: Input,
|
|
321
321
|
args: [{ required: true }]
|
|
@@ -353,21 +353,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
353
353
|
args: [{ selector: 'app-loading-indicator', standalone: true, imports: [FontAwesomeModule], template: "<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n", styles: [":host{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:#495057}\n"] }]
|
|
354
354
|
}] });
|
|
355
355
|
|
|
356
|
+
class BaseModalComponent {
|
|
357
|
+
hide() {
|
|
358
|
+
this.portalHost.detach();
|
|
359
|
+
}
|
|
360
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BaseModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
361
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: BaseModalComponent, isStandalone: true, selector: "app-base-modal", ngImport: i0, template: ``, isInline: true }); }
|
|
362
|
+
}
|
|
363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BaseModalComponent, decorators: [{
|
|
364
|
+
type: Component,
|
|
365
|
+
args: [{
|
|
366
|
+
selector: 'app-base-modal',
|
|
367
|
+
template: ``,
|
|
368
|
+
standalone: true,
|
|
369
|
+
}]
|
|
370
|
+
}] });
|
|
371
|
+
|
|
356
372
|
class ModalComponent {
|
|
357
373
|
constructor() {
|
|
358
374
|
this.title = '';
|
|
359
375
|
this.showClose = true;
|
|
360
376
|
this.onClose = new EventEmitter();
|
|
377
|
+
this.faTimes = faTimes;
|
|
361
378
|
}
|
|
362
379
|
handleClickClose() {
|
|
363
380
|
this.onClose.next();
|
|
364
381
|
}
|
|
365
382
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
366
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { title: "title", showClose: "showClose" }, 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\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t<button type=\"button\"
|
|
383
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: ModalComponent, isStandalone: true, selector: "app-modal", inputs: { title: "title", showClose: "showClose" }, 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\">\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 type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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: "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", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] }); }
|
|
367
384
|
}
|
|
368
385
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ModalComponent, decorators: [{
|
|
369
386
|
type: Component,
|
|
370
|
-
args: [{ selector: 'app-modal', standalone: true, template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t<button type=\"button\"
|
|
387
|
+
args: [{ selector: 'app-modal', standalone: true, imports: [IconButtonDirective, FontAwesomeModule], template: "<div class=\"modal d-flex justify-content-center align-items-center\" tabindex=\"-1\">\n\t<div class=\"modal-dialog\">\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 type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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" }]
|
|
371
388
|
}], propDecorators: { title: [{
|
|
372
389
|
type: Input
|
|
373
390
|
}], showClose: [{
|
|
@@ -386,11 +403,11 @@ class OffCanvasComponent {
|
|
|
386
403
|
this.onClose.next();
|
|
387
404
|
}
|
|
388
405
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: OffCanvasComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
389
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", 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\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "shadow"] }] }); }
|
|
406
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", 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 class=\"ml-auto\" type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "directive", type: IconButtonDirective, selector: "button[app-icon-button]", inputs: ["app-icon-button", "shadow"] }] }); }
|
|
390
407
|
}
|
|
391
408
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: OffCanvasComponent, decorators: [{
|
|
392
409
|
type: Component,
|
|
393
|
-
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\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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"] }]
|
|
410
|
+
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 class=\"ml-auto\" type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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"] }]
|
|
394
411
|
}], propDecorators: { title: [{
|
|
395
412
|
type: Input
|
|
396
413
|
}], onClose: [{
|
|
@@ -523,6 +540,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
523
540
|
}] });
|
|
524
541
|
|
|
525
542
|
class ModalService {
|
|
543
|
+
constructor() {
|
|
544
|
+
this.componentFactoryResolver = inject(ComponentFactoryResolver);
|
|
545
|
+
}
|
|
526
546
|
init(viewContainerRef) {
|
|
527
547
|
this.portalHost = new DomPortalOutlet(document.body);
|
|
528
548
|
this.viewContainerRef = viewContainerRef;
|
|
@@ -536,6 +556,16 @@ class ModalService {
|
|
|
536
556
|
throw Error('no viewcontainer ref is set');
|
|
537
557
|
}
|
|
538
558
|
}
|
|
559
|
+
showComponent(component) {
|
|
560
|
+
if (!this.viewContainerRef) {
|
|
561
|
+
throw Error('no viewcontainer ref is set');
|
|
562
|
+
}
|
|
563
|
+
const portalHost = new DomPortalOutlet(document.body);
|
|
564
|
+
const componentPortal = new ComponentPortal(component, this.viewContainerRef, null, this.componentFactoryResolver);
|
|
565
|
+
const componentRef = portalHost.attachComponentPortal(componentPortal);
|
|
566
|
+
componentRef.instance.portalHost = portalHost;
|
|
567
|
+
return componentRef;
|
|
568
|
+
}
|
|
539
569
|
hide() {
|
|
540
570
|
this.portalHost.detach();
|
|
541
571
|
}
|
|
@@ -676,5 +706,5 @@ String.prototype.capitalize = function () {
|
|
|
676
706
|
* Generated bundle index. Do not edit.
|
|
677
707
|
*/
|
|
678
708
|
|
|
679
|
-
export { ButtonDirective, ButtonOutlineDirective, FadeAnimation, FadeRightAnimation, FormControlPipe, FormErrors, FormInputComponent, FormInputDirective, FormLabelDirective, FormSelectDirective, IconButtonDirective, ListGroupDirective, ListGroupItemDirective, LoadingIndicatorComponent, LoadingIndicatorService, LocalService, ModalComponent, ModalService, OffCanvasComponent, ToastComponent, ToastService, TokenService, sortHelper };
|
|
709
|
+
export { BaseModalComponent, ButtonDirective, ButtonOutlineDirective, FadeAnimation, FadeRightAnimation, FormControlPipe, FormErrors, FormInputComponent, FormInputDirective, FormLabelDirective, FormSelectDirective, IconButtonDirective, ListGroupDirective, ListGroupItemDirective, LoadingIndicatorComponent, LoadingIndicatorService, LocalService, ModalComponent, ModalService, OffCanvasComponent, ToastComponent, ToastService, TokenService, sortHelper };
|
|
680
710
|
//# sourceMappingURL=ngx-gccb.mjs.map
|
|
@@ -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/form-errors/form-errors.component.ts","../../../projects/ngx-gccb/src/lib/directives/button-outline.directive.ts","../../../projects/ngx-gccb/src/lib/directives/button.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.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/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/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, style, transition, trigger } from '@angular/animations';\n\nexport const FadeRightAnimation = trigger('fadeRightAnimation', [\n\ttransition(':enter', [\n\t\tstyle({ transform: 'translateX(-100%)', zIndex: 9999 }),\n\t\tanimate('200ms ease-in', style({ transform: 'translateX(0%)' })),\n\t]),\n\ttransition(':leave', [animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))]),\n]);\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const FadeAnimation = trigger('fadeAnimation', [\n\ttransition(':enter', [\n\t\tstyle({ opacity: 0, transform: 'translateY(10px)' }),\n\t\tanimate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),\n\t]),\n\ttransition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),\n]);\n","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\t<div>Feld wird benötigt</div>\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n\t`,\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class FormErrors {\n\t@Input() errors: ValidationErrors | null = null;\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-button-outline]',\n\tstandalone: true,\n})\nexport class ButtonOutlineDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\n\t@Input('app-button-outline') set appButton(val: string) {\n\t\tthis.elementRef.nativeElement.classList.add(`btn-outline-${val || 'secondary'}`);\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\tthis.elementRef.nativeElement.classList.add('shadow-sm');\n\t}\n}\n","import {\n\tDirective,\n\tElementRef,\n\tHostListener,\n\tInput,\n\tOnInit,\n\tRenderer2,\n\tinject,\n} from '@angular/core';\n\n// extends from autofocus?\n\n@Directive({\n\tselector: 'button[app-button]',\n\tstandalone: true,\n})\nexport class ButtonDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tcolor!: string;\n\n\t@HostListener('focus', ['$event']) onFocus() {\n\t\tthis.isFocused = true;\n\t}\n\n\t@HostListener('blur', ['$event']) onblur() {\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 || 'secondary';\n\t\tthis.elementRef.nativeElement.classList.add(`btn-${this.color}`);\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}\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'input,textarea[app-form-input]',\n\tstandalone: true,\n})\nexport class FormInputDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: 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 = 'form-label';\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'select[app-form-select]',\n\tstandalone: true,\n})\nexport class FormSelectDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: 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, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-icon-button]',\n\tstandalone: true,\n})\nexport class IconButtonDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\n\t@Input('app-icon-button') set appButton(val: string) {\n\t\tthis.elementRef.nativeElement.classList.add(`btn-${val || 'light'}`);\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, OnInit, 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\trenderer = inject(Renderer2);\n\telementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\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(\n\t\t\t'd-flex',\n\t\t\t'flex-row',\n\t\t\t'justify-content-between'\n\t\t);\n\t}\n}\n","import { Directive, ElementRef, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'ul[app-list-group]',\n\tstandalone: true,\n})\nexport class ListGroupDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: 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 { FormErrors } from '../form-errors';\n\nexport interface ISelectOptions {\n\tlabel: string;\n\tvalue: string;\n}\n\n@Component({\n\tselector: 'app-form-input',\n\ttemplateUrl: './form-input.component.html',\n\tstandalone: true,\n\timports: [\n\t\tReactiveFormsModule,\n\t\tFormErrors,\n\t\tFormLabelDirective,\n\t\tFormInputDirective,\n\t\tFormSelectDirective,\n\t],\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}\n","<div class=\"form-floating mb-3\">\n\t@if (\n\t\tinputType === \"text\" ||\n\t\tinputType === \"number\" ||\n\t\tinputType === \"date\" ||\n\t\tinputType === \"datetime-local\"\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 === \"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>\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\">\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 } 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 = faSpinner;\n}\n","<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n\tselector: 'app-modal',\n\ttemplateUrl: './modal.component.html',\n\tstandalone: true,\n})\nexport class ModalComponent {\n\t@Input() title: string = '';\n\t@Input() showClose: boolean = true;\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\thandleClickClose() {\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\">\n\t\t<div class=\"modal-content\">\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h5 class=\"modal-title\">{{ title }}</h5>\n\t\t\t\t@if (showClose) {\n\t\t\t\t<button type=\"button\" class=\"btn-close\" (click)=\"handleClickClose()\"></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 } 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 = faTimes;\n\n\thandleClickClose() {\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\">\n\t\t<h5 class=\"offcanvas-title\" id=\"offcanvasLabel\">{{ title }}</h5>\n\t\t<button app-icon-button type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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';\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({\n\tprovidedIn: 'root',\n})\nexport class LocalService {\n\tget<T>(key: string): T | null {\n\t\tlet result: T | null = null;\n\t\tlet 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 { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n\tviewContainerRef?: ViewContainerRef;\n\tportalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef) {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshowTemplate(templateRef: TemplateRef<unknown>) {\n\t\tif (this.viewContainerRef) {\n\t\t\tconst newPortal = 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\thide() {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, Injectable, ViewContainerRef, inject } from '@angular/core';\nimport { ToastComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n\tcomponentFactoryResolver = inject(ComponentFactoryResolver);\n\tviewContainerRef?: ViewContainerRef;\n\tportalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef) {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshow(message: string) {\n\t\tif (this.viewContainerRef) {\n\t\t\tconst componentPortal = 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 = 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}, 3500);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\thide() {\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\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.orderBy = function <T, G>(\n\tvalueGetter: (a: T) => G,\n\tascending: boolean = true,\n): 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>(\n\tcomparator?: (obj1: unknown, obj2: unknown) => boolean,\n): T[] {\n\tconst thisAsArray: T[] = this as T[];\n\tconst result: T[] = comparator\n\t\t? thisAsArray.filter(\n\t\t\t\t(value, index, array) => array.findIndex((o) => comparator(o, value)) === index,\n\t\t\t)\n\t\t: thisAsArray.filter((value, index, array) => array.indexOf(value) === index);\n\treturn result;\n};\n","import type { ConfigType, ManipulateType, OpUnitType } 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}\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","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","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/form-errors/form-errors.component.ts","../../../projects/ngx-gccb/src/lib/directives/button-outline.directive.ts","../../../projects/ngx-gccb/src/lib/directives/button.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.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/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, style, transition, trigger } from '@angular/animations';\n\nexport const FadeRightAnimation = trigger('fadeRightAnimation', [\n\ttransition(':enter', [\n\t\tstyle({ transform: 'translateX(-100%)', zIndex: 9999 }),\n\t\tanimate('200ms ease-in', style({ transform: 'translateX(0%)' })),\n\t]),\n\ttransition(':leave', [animate('200ms ease-in', style({ transform: 'translateX(-100%)' }))]),\n]);\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const FadeAnimation = trigger('fadeAnimation', [\n\ttransition(':enter', [\n\t\tstyle({ opacity: 0, transform: 'translateY(10px)' }),\n\t\tanimate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),\n\t]),\n\ttransition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' }))]),\n]);\n","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\t<div>Feld wird benötigt</div>\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n\t`,\n\tstandalone: true,\n\timports: [CommonModule],\n})\nexport class FormErrors {\n\t@Input() errors: ValidationErrors | null = null;\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-button-outline]',\n\tstandalone: true,\n})\nexport class ButtonOutlineDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\n\t@Input('app-button-outline') set appButton(val: string) {\n\t\tthis.elementRef.nativeElement.classList.add(`btn-outline-${val || 'secondary'}`);\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\tthis.elementRef.nativeElement.classList.add('shadow-sm');\n\t}\n}\n","import {\n\tDirective,\n\tElementRef,\n\tHostListener,\n\tInput,\n\tOnInit,\n\tRenderer2,\n\tinject,\n} from '@angular/core';\n\n// extends from autofocus?\n\n@Directive({\n\tselector: 'button[app-button]',\n\tstandalone: true,\n})\nexport class ButtonDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\tcolor!: string;\n\n\t@HostListener('focus', ['$event']) onFocus() {\n\t\tthis.isFocused = true;\n\t}\n\n\t@HostListener('blur', ['$event']) onblur() {\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 || 'secondary';\n\t\tthis.elementRef.nativeElement.classList.add(`btn-${this.color}`);\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}\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'input,textarea[app-form-input]',\n\tstandalone: true,\n})\nexport class FormInputDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: 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 = 'form-label';\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'select[app-form-select]',\n\tstandalone: true,\n})\nexport class FormSelectDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: 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, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'button[app-icon-button]',\n\tstandalone: true,\n})\nexport class IconButtonDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: ElementRef<HTMLButtonElement> = inject(ElementRef<HTMLButtonElement>);\n\n\t@Input('app-icon-button') set appButton(val: string) {\n\t\tthis.elementRef.nativeElement.classList.add(`btn-${val || 'light'}`);\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, OnInit, 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\trenderer = inject(Renderer2);\n\telementRef: ElementRef<HTMLUListElement> = inject(ElementRef<HTMLUListElement>);\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(\n\t\t\t'd-flex',\n\t\t\t'flex-row',\n\t\t\t'justify-content-between'\n\t\t);\n\t}\n}\n","import { Directive, ElementRef, OnInit, Renderer2, inject } from '@angular/core';\n\n@Directive({\n\tselector: 'ul[app-list-group]',\n\tstandalone: true,\n})\nexport class ListGroupDirective implements OnInit {\n\trenderer = inject(Renderer2);\n\telementRef: 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 { FormErrors } from '../form-errors';\n\nexport interface ISelectOptions {\n\tlabel: string;\n\tvalue: string;\n}\n\n@Component({\n\tselector: 'app-form-input',\n\ttemplateUrl: './form-input.component.html',\n\tstandalone: true,\n\timports: [\n\t\tReactiveFormsModule,\n\t\tFormErrors,\n\t\tFormLabelDirective,\n\t\tFormInputDirective,\n\t\tFormSelectDirective,\n\t],\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}\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 === \"date\" ||\n\t\tinputType === \"datetime-local\"\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 === \"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>\n\t\t\t@for (option of selectOptions; track option.value) {\n\t\t\t\t<option [value]=\"option.value\">\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 } 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 = faSpinner;\n}\n","<fa-icon animation=\"spin\" size=\"2x\" [icon]=\"faSpinner\"></fa-icon>\n","import { DomPortalOutlet } from '@angular/cdk/portal';\nimport { Component } from '@angular/core';\n\n@Component({\n\tselector: 'app-base-modal',\n\ttemplate: ``,\n\tstandalone: true,\n})\nexport class BaseModalComponent {\n\tportalHost!: DomPortalOutlet;\n\n\thide() {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { faTimes } 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: [IconButtonDirective, FontAwesomeModule],\n})\nexport class ModalComponent {\n\t@Input() title: string = '';\n\t@Input() showClose: boolean = true;\n\n\t@Output() onClose: EventEmitter<void> = new EventEmitter();\n\n\tfaTimes = faTimes;\n\n\thandleClickClose() {\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\">\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 type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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 } 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 = faTimes;\n\n\thandleClickClose() {\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 class=\"ml-auto\" type=\"button\" (click)=\"handleClickClose()\">\n\t\t\t<fa-icon [icon]=\"faTimes\"></fa-icon>\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';\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({\n\tprovidedIn: 'root',\n})\nexport class LocalService {\n\tget<T>(key: string): T | null {\n\t\tlet result: T | null = null;\n\t\tlet 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 {\n\tComponentPortal,\n\tComponentType,\n\tDomPortalOutlet,\n\tTemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n\tComponentFactoryResolver,\n\tInjectable,\n\tTemplateRef,\n\tViewContainerRef,\n\tinject,\n} from '@angular/core';\nimport { BaseModalComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ModalService {\n\tcomponentFactoryResolver = inject(ComponentFactoryResolver);\n\tviewContainerRef?: ViewContainerRef;\n\tportalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef) {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshowTemplate(templateRef: TemplateRef<unknown>) {\n\t\tif (this.viewContainerRef) {\n\t\t\tconst newPortal = 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>) {\n\t\tif (!this.viewContainerRef) {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\n\t\tconst portalHost = new DomPortalOutlet(document.body);\n\n\t\tconst componentPortal = new ComponentPortal(\n\t\t\tcomponent,\n\t\t\tthis.viewContainerRef,\n\t\t\tnull,\n\t\t\tthis.componentFactoryResolver,\n\t\t);\n\n\t\tconst componentRef = portalHost.attachComponentPortal(componentPortal);\n\t\tcomponentRef.instance.portalHost = portalHost;\n\t\treturn componentRef;\n\t}\n\n\thide() {\n\t\tthis.portalHost.detach();\n\t}\n}\n","import { ComponentPortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { ComponentFactoryResolver, Injectable, ViewContainerRef, inject } from '@angular/core';\nimport { ToastComponent } from '../components';\n\n@Injectable({ providedIn: 'root' })\nexport class ToastService {\n\tcomponentFactoryResolver = inject(ComponentFactoryResolver);\n\tviewContainerRef?: ViewContainerRef;\n\tportalHost!: DomPortalOutlet;\n\n\tinit(viewContainerRef: ViewContainerRef) {\n\t\tthis.portalHost = new DomPortalOutlet(document.body);\n\t\tthis.viewContainerRef = viewContainerRef;\n\t}\n\n\tshow(message: string) {\n\t\tif (this.viewContainerRef) {\n\t\t\tconst componentPortal = 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 = 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}, 3500);\n\t\t} else {\n\t\t\tthrow Error('no viewcontainer ref is set');\n\t\t}\n\t}\n\n\thide() {\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\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.orderBy = function <T, G>(\n\tvalueGetter: (a: T) => G,\n\tascending: boolean = true,\n): 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>(\n\tcomparator?: (obj1: unknown, obj2: unknown) => boolean,\n): T[] {\n\tconst thisAsArray: T[] = this as T[];\n\tconst result: T[] = comparator\n\t\t? thisAsArray.filter(\n\t\t\t\t(value, index, array) => array.findIndex((o) => comparator(o, value)) === index,\n\t\t\t)\n\t\t: thisAsArray.filter((value, index, array) => array.indexOf(value) === index);\n\treturn result;\n};\n","import type { ConfigType, ManipulateType, OpUnitType } 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}\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","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","i1.LocalService"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DomPortalOutlet } from '@angular/cdk/portal';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class BaseModalComponent {
|
|
4
|
+
portalHost: DomPortalOutlet;
|
|
5
|
+
hide(): void;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseModalComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BaseModalComponent, "app-base-modal", never, {}, {}, never, never, true, never>;
|
|
8
|
+
}
|
|
@@ -4,6 +4,7 @@ export declare class ModalComponent {
|
|
|
4
4
|
title: string;
|
|
5
5
|
showClose: boolean;
|
|
6
6
|
onClose: EventEmitter<void>;
|
|
7
|
+
faTimes: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
|
7
8
|
handleClickClose(): void;
|
|
8
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
|
|
9
10
|
static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "app-modal", never, { "title": { "alias": "title"; "required": false; }; "showClose": { "alias": "showClose"; "required": false; }; }, { "onClose": "onClose"; }, never, ["*", "[footer]"], true, never>;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { DomPortalOutlet } from '@angular/cdk/portal';
|
|
2
|
-
import { TemplateRef, ViewContainerRef } from '@angular/core';
|
|
1
|
+
import { ComponentType, DomPortalOutlet } from '@angular/cdk/portal';
|
|
2
|
+
import { ComponentFactoryResolver, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
3
|
+
import { BaseModalComponent } from '../components';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class ModalService {
|
|
6
|
+
componentFactoryResolver: ComponentFactoryResolver;
|
|
5
7
|
viewContainerRef?: ViewContainerRef;
|
|
6
8
|
portalHost: DomPortalOutlet;
|
|
7
9
|
init(viewContainerRef: ViewContainerRef): void;
|
|
8
10
|
showTemplate(templateRef: TemplateRef<unknown>): void;
|
|
11
|
+
showComponent<T extends BaseModalComponent>(component: ComponentType<T>): import("@angular/core").ComponentRef<T>;
|
|
9
12
|
hide(): void;
|
|
10
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModalService, never>;
|
|
11
14
|
static ɵprov: i0.ɵɵInjectableDeclaration<ModalService>;
|