ngx-cho-common 1.0.8 → 1.0.10
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.
|
@@ -8,7 +8,7 @@ export class ChoDatePipe {
|
|
|
8
8
|
transform(value, format, timezone, locale) {
|
|
9
9
|
switch (format ?? 'shortDate') {
|
|
10
10
|
case 'short':
|
|
11
|
-
format = 'MM/dd/yyyy
|
|
11
|
+
format = 'MM/dd/yyyy hh:mm a';
|
|
12
12
|
break;
|
|
13
13
|
case 'shortDate':
|
|
14
14
|
format = 'MM/dd/yyyy';
|
|
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
26
26
|
standalone: true,
|
|
27
27
|
}]
|
|
28
28
|
}], ctorParameters: () => [{ type: i1.DatePipe }] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWRhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvcGlwZXMvY2hvLWRhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBTXBELE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQW1CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBQ3pDLFNBQVMsQ0FDTCxLQUE2QixFQUM3QixNQUFlLEVBQ2YsUUFBaUIsRUFDakIsTUFBZTtRQUVmLFFBQVEsTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQzVCLEtBQUssT0FBTztnQkFDUixNQUFNLEdBQUcsb0JBQW9CLENBQUM7Z0JBQzlCLE1BQU07WUFFVixLQUFLLFdBQVc7Z0JBQ1osTUFBTSxHQUFHLFlBQVksQ0FBQztnQkFDdEIsTUFBTTtRQUNkLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7K0dBbkJRLFdBQVc7NkdBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFKdkIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsU0FBUztvQkFDZixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdjaG9EYXRlJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaG9EYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGVQaXBlOiBEYXRlUGlwZSkge31cclxuICAgIHRyYW5zZm9ybShcclxuICAgICAgICB2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlcixcclxuICAgICAgICBmb3JtYXQ/OiBzdHJpbmcsXHJcbiAgICAgICAgdGltZXpvbmU/OiBzdHJpbmcsXHJcbiAgICAgICAgbG9jYWxlPzogc3RyaW5nXHJcbiAgICApOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBzd2l0Y2ggKGZvcm1hdCA/PyAnc2hvcnREYXRlJykge1xyXG4gICAgICAgICAgICBjYXNlICdzaG9ydCc6XHJcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSAnTU0vZGQveXl5eSBoaDptbSBhJztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSAnc2hvcnREYXRlJzpcclxuICAgICAgICAgICAgICAgIGZvcm1hdCA9ICdNTS9kZC95eXl5JztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCBmb3JtYXQsIHRpbWV6b25lLCBsb2NhbGUpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class ChoErrorService {
|
|
4
|
+
/**
|
|
5
|
+
* Checks if error message contains a specific string
|
|
6
|
+
*
|
|
7
|
+
* @param error
|
|
8
|
+
* @param searchString
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
contains(error, searchString) {
|
|
12
|
+
const message = this.getErrorMessage(error);
|
|
13
|
+
return message.includes(searchString);
|
|
14
|
+
}
|
|
4
15
|
/**
|
|
5
16
|
* Gets the message from an error object or string
|
|
6
17
|
*
|
|
@@ -8,13 +19,17 @@ export class ChoErrorService {
|
|
|
8
19
|
* @returns
|
|
9
20
|
*/
|
|
10
21
|
getErrorMessage(error) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
22
|
+
if (!error) {
|
|
23
|
+
return 'Unknown error';
|
|
24
|
+
}
|
|
25
|
+
if (error instanceof Error) {
|
|
26
|
+
return error.message;
|
|
27
|
+
}
|
|
28
|
+
if (typeof error === 'string' || error instanceof String) {
|
|
29
|
+
return error;
|
|
16
30
|
}
|
|
17
|
-
|
|
31
|
+
console.log('Unknown error type:', error);
|
|
32
|
+
return 'Unknown error';
|
|
18
33
|
}
|
|
19
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20
35
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoErrorService, providedIn: 'root' }); }
|
|
@@ -23,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
23
38
|
type: Injectable,
|
|
24
39
|
args: [{ providedIn: 'root' }]
|
|
25
40
|
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWVycm9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Noby1lcnJvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxlQUFlO0lBQ3hCOzs7Ozs7T0FNRztJQUNJLFFBQVEsQ0FBQyxLQUFjLEVBQUUsWUFBb0I7UUFDaEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZUFBZSxDQUFDLEtBQWM7UUFDakMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1QsT0FBTyxlQUFlLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRSxDQUFDO1lBQ3ZELE9BQU8sS0FBZSxDQUFDO1FBQzNCLENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTFDLE9BQU8sZUFBZSxDQUFDO0lBQzNCLENBQUM7K0dBbkNRLGVBQWU7bUhBQWYsZUFBZSxjQURGLE1BQU07OzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBDaG9FcnJvclNlcnZpY2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgaWYgZXJyb3IgbWVzc2FnZSBjb250YWlucyBhIHNwZWNpZmljIHN0cmluZ1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBlcnJvclxyXG4gICAgICogQHBhcmFtIHNlYXJjaFN0cmluZ1xyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnRhaW5zKGVycm9yOiB1bmtub3duLCBzZWFyY2hTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmdldEVycm9yTWVzc2FnZShlcnJvcik7XHJcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2UuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIG1lc3NhZ2UgZnJvbSBhbiBlcnJvciBvYmplY3Qgb3Igc3RyaW5nXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGVycm9yXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RXJyb3JNZXNzYWdlKGVycm9yOiB1bmtub3duKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnVW5rbm93biBlcnJvcic7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xyXG4gICAgICAgICAgICByZXR1cm4gZXJyb3IubWVzc2FnZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdzdHJpbmcnIHx8IGVycm9yIGluc3RhbmNlb2YgU3RyaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlcnJvciBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zb2xlLmxvZygnVW5rbm93biBlcnJvciB0eXBlOicsIGVycm9yKTtcclxuXHJcbiAgICAgICAgcmV0dXJuICdVbmtub3duIGVycm9yJztcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -480,7 +480,7 @@ class ChoDatePipe {
|
|
|
480
480
|
transform(value, format, timezone, locale) {
|
|
481
481
|
switch (format ?? 'shortDate') {
|
|
482
482
|
case 'short':
|
|
483
|
-
format = 'MM/dd/yyyy
|
|
483
|
+
format = 'MM/dd/yyyy hh:mm a';
|
|
484
484
|
break;
|
|
485
485
|
case 'shortDate':
|
|
486
486
|
format = 'MM/dd/yyyy';
|
|
@@ -720,6 +720,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
720
720
|
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
721
721
|
|
|
722
722
|
class ChoErrorService {
|
|
723
|
+
/**
|
|
724
|
+
* Checks if error message contains a specific string
|
|
725
|
+
*
|
|
726
|
+
* @param error
|
|
727
|
+
* @param searchString
|
|
728
|
+
* @returns
|
|
729
|
+
*/
|
|
730
|
+
contains(error, searchString) {
|
|
731
|
+
const message = this.getErrorMessage(error);
|
|
732
|
+
return message.includes(searchString);
|
|
733
|
+
}
|
|
723
734
|
/**
|
|
724
735
|
* Gets the message from an error object or string
|
|
725
736
|
*
|
|
@@ -727,13 +738,17 @@ class ChoErrorService {
|
|
|
727
738
|
* @returns
|
|
728
739
|
*/
|
|
729
740
|
getErrorMessage(error) {
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
741
|
+
if (!error) {
|
|
742
|
+
return 'Unknown error';
|
|
743
|
+
}
|
|
744
|
+
if (error instanceof Error) {
|
|
745
|
+
return error.message;
|
|
746
|
+
}
|
|
747
|
+
if (typeof error === 'string' || error instanceof String) {
|
|
748
|
+
return error;
|
|
735
749
|
}
|
|
736
|
-
|
|
750
|
+
console.log('Unknown error type:', error);
|
|
751
|
+
return 'Unknown error';
|
|
737
752
|
}
|
|
738
753
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoErrorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
739
754
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoErrorService, providedIn: 'root' }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-cho-common.mjs","sources":["../../../projects/ngx-cho-common/src/ngx-cho-common.config.ts","../../../projects/ngx-cho-common/src/lib/directives/cho-auto-focus.directive.ts","../../../projects/ngx-cho-common/src/lib/directives/cho-form-focus.directive.ts","../../../projects/ngx-cho-common/src/lib/directives/cho-key-press-enter.directive.ts","../../../projects/ngx-cho-common/src/lib/directives/cho-key-press-escape.directive.ts","../../../projects/ngx-cho-common/src/lib/services/cho-rest-client.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-feature.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-navigation.service.ts","../../../projects/ngx-cho-common/src/lib/guards/cho-feature.guard.ts","../../../projects/ngx-cho-common/src/lib/guards/cho-unsaved-changes.guard.ts","../../../projects/ngx-cho-common/src/lib/models/uuid.model.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-active-filter.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-boolean.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-date.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-filter.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-format-key.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-lower-kebab-case.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-sum-by.pipe.ts","../../../projects/ngx-cho-common/src/lib/services/cho-object.service.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-text-filter.pipe.ts","../../../projects/ngx-cho-common/src/lib/services/cho-date.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-download.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-error.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-interval.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-local-storage.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-modal.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-route-param.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-session-storage.service.ts","../../../projects/ngx-cho-common/src/public-api.ts","../../../projects/ngx-cho-common/src/ngx-cho-common.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport interface ChoCommonConfig {\r\n webAppUrl: string;\r\n webApiUrl: string;\r\n}\r\n\r\nexport const CHO_COMMON_CONFIG = new InjectionToken<ChoCommonConfig>('ChoCommonConfig');\r\n","// from https://stackblitz.com/edit/angular-inline-edit?file=src%2Fapp%2Fautofocus.directive.ts\r\nimport { Directive, ElementRef, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[choAutoFocus]',\r\n standalone: true,\r\n})\r\nexport class ChoAutoFocusDirective implements OnInit {\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n}\r\n","// from https://timdeschryver.dev/blog/auto-focus-a-form-control-with-an-angular-directive\r\nimport { Directive, ElementRef, HostListener, AfterViewInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[choFormFocus]',\r\n standalone: true,\r\n})\r\nexport class ChoFormFocusDirective implements AfterViewInit {\r\n focusables = ['input', 'select', 'textarea'];\r\n\r\n constructor(private element: ElementRef) {}\r\n\r\n ngAfterViewInit() {\r\n const input = this.element.nativeElement.querySelector(this.focusables.join(','));\r\n\r\n if (input) {\r\n input.focus();\r\n return;\r\n }\r\n\r\n // focus on first available button if no other focusable element\r\n const button = this.element.nativeElement.querySelector('button');\r\n if (button) {\r\n button.focus();\r\n }\r\n }\r\n\r\n @HostListener('submit')\r\n submit() {\r\n const input = this.element.nativeElement.querySelector(\r\n this.focusables.map(x => `${x}.ng-invalid`).join(',')\r\n );\r\n if (input) {\r\n input.focus();\r\n }\r\n }\r\n}\r\n","import { Directive, HostListener, Output, EventEmitter } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[choKeyPressEnter]',\r\n standalone: true,\r\n})\r\nexport class ChoKeyPressEnterDirective {\r\n @Output('appKeyPressEnter') emitter = new EventEmitter();\r\n\r\n @HostListener('window:keypress', ['$event'])\r\n keyEvent(event: KeyboardEvent) {\r\n if (event.key === 'Enter') {\r\n this.emitter.emit();\r\n }\r\n }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[choKeyPressEscape]',\r\n standalone: true,\r\n})\r\nexport class ChoKeyPressEscapeDirective {\r\n @Output('appKeyPressEscape') emitter = new EventEmitter();\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n keyEvent(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n this.emitter.emit();\r\n }\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { lastValueFrom, Observable, retry, RetryConfig, take } from 'rxjs';\r\n\r\ntype RequestParameters = {\r\n body?: unknown;\r\n queryParameters?: {};\r\n apiVersion?: {};\r\n headers?: {};\r\n cacheLifetimeSeconds?: number;\r\n retry?: RetryConfig;\r\n showSpinner?: {};\r\n};\r\n\r\ntype DeleteRequestParameters = Omit<RequestParameters, 'body' | 'cacheLifetimeSeconds'>;\r\ntype GetRequestParameters = Omit<RequestParameters, 'body'>;\r\n\r\n@Injectable({ providedIn: 'any' })\r\nexport class ChoRestClientService {\r\n private readonly defaultRetry = { count: 0, delay: 1000 };\r\n\r\n constructor(private readonly httpClient: HttpClient) {}\r\n\r\n /**\r\n * Sends a delete request to the specified REST service\r\n *\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public delete(url: string, options?: DeleteRequestParameters): Promise<void> {\r\n return lastValueFrom(this.request('DELETE', url, options));\r\n }\r\n\r\n /**\r\n * Retrieves data from the specified REST service\r\n *\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public get<T>(url: string, options?: GetRequestParameters): Promise<T> {\r\n return lastValueFrom(this.request('GET', url, options));\r\n }\r\n\r\n /**\r\n * Sends a patch request to the specified REST service\r\n *\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public patch<T>(url: string, options?: RequestParameters): Promise<T> {\r\n return lastValueFrom(this.request('PATCH', url, options));\r\n }\r\n\r\n /**\r\n * Sends a post request to the specified REST service\r\n *\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public post<T>(url: string, options?: RequestParameters): Promise<T> {\r\n return lastValueFrom(this.request('POST', url, options));\r\n }\r\n\r\n /**\r\n * Sends a put request to the specified REST service\r\n *\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public put<T>(url: string, options?: RequestParameters): Promise<T> {\r\n return lastValueFrom(this.request('PUT', url, options));\r\n }\r\n\r\n /**\r\n * Sends a request to the specified REST service\r\n *\r\n * @param method DELETE, GET, POST, PUT, or PATCH\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public request<T>(\r\n method: 'DELETE',\r\n url: string,\r\n options?: DeleteRequestParameters\r\n ): Observable<T>;\r\n public request<T>(method: 'GET', url: string, options?: GetRequestParameters): Observable<T>;\r\n public request<T>(\r\n method: 'POST' | 'PUT' | 'PATCH',\r\n url: string,\r\n options?: RequestParameters\r\n ): Observable<T>;\r\n\r\n public request<T>(\r\n method: 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT',\r\n url: string,\r\n options?: RequestParameters\r\n ): Observable<T> {\r\n return this.httpClient\r\n .request<T>(method, url, {\r\n body: options?.body ? JSON.stringify(options.body) : undefined,\r\n headers: this.createRequestHeaders(options),\r\n params: this.createRequestParams(options?.queryParameters),\r\n })\r\n .pipe(take(1), retry(options?.retry || this.defaultRetry));\r\n }\r\n\r\n /**\r\n *\r\n * @param url\r\n * @param options\r\n * @returns\r\n */\r\n public getResponse<T>(\r\n method: 'GET' | 'PATCH' | 'POST' | 'PUT',\r\n url: string,\r\n options?: RequestParameters\r\n ): Observable<HttpResponse<T>> {\r\n return this.httpClient\r\n .request<T>(method, url, {\r\n observe: 'response',\r\n body: options?.body ? JSON.stringify(options.body) : undefined,\r\n headers: this.createRequestHeaders(options),\r\n params: this.createRequestParams(options?.queryParameters),\r\n })\r\n .pipe(take(1), retry(options?.retry || this.defaultRetry));\r\n }\r\n\r\n /**\r\n * Creates request headers based on the provided options.\r\n *\r\n * @param options\r\n * @returns\r\n */\r\n private createRequestHeaders(options?: RequestParameters): HttpHeaders {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const headers: any = Object.assign(\r\n {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n options?.headers\r\n );\r\n\r\n if (options?.apiVersion) {\r\n const versionString = `; version=${options.apiVersion}`;\r\n\r\n headers.Accept += versionString;\r\n headers['Content-Type'] += versionString;\r\n }\r\n\r\n if (options?.showSpinner === false) {\r\n headers['x-spinner'] = 'false';\r\n }\r\n\r\n if (options?.cacheLifetimeSeconds) {\r\n headers['x-cache-ttl'] = options?.cacheLifetimeSeconds;\r\n }\r\n\r\n return new HttpHeaders(headers);\r\n }\r\n\r\n /**\r\n * Converts one or more objects to an HttpParams object.\r\n *\r\n * @param sources The objects to convert\r\n * @returns\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private createRequestParams(...sources: any[]): HttpParams {\r\n let params = new HttpParams();\r\n\r\n for (const source of sources) {\r\n if (source == null) {\r\n continue;\r\n }\r\n\r\n for (const key of Object.keys(source)) {\r\n const value = source[key];\r\n\r\n if (value != null) {\r\n params = params.set(key, value.toString());\r\n }\r\n }\r\n }\r\n\r\n return params;\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ChoRestClientService } from './cho-rest-client.service';\r\nimport { CHO_COMMON_CONFIG, ChoCommonConfig } from '../../ngx-cho-common.config';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoFeatureService {\r\n public readonly featureStream = new BehaviorSubject<string[]>([]);\r\n\r\n private _enabledFeatures: string[] = [];\r\n private _isInitialized = false;\r\n private readonly routePrefix;\r\n\r\n constructor(\r\n @Inject(CHO_COMMON_CONFIG) private choCommonConfig: ChoCommonConfig,\r\n private readonly restClient: ChoRestClientService\r\n ) {\r\n this.routePrefix = `${this.choCommonConfig.webApiUrl}/common/features`;\r\n this.checkEnabledFeatures();\r\n }\r\n\r\n /**\r\n * Gets the enabled features.\r\n */\r\n get enabledFeatures(): string[] {\r\n return this._enabledFeatures;\r\n }\r\n\r\n /**\r\n * Sets the enabled features.\r\n */\r\n private set enabledFeatures(enabledFeatures: string[]) {\r\n this._enabledFeatures = enabledFeatures;\r\n this._isInitialized = true;\r\n\r\n this.featureStream.next(enabledFeatures);\r\n }\r\n\r\n /**\r\n * Gets whether features have been initialized\r\n */\r\n get isInitialized(): boolean {\r\n return this._isInitialized;\r\n }\r\n\r\n /**\r\n * Checks that the enabled features are set and returns the list.\r\n *\r\n * @param name\r\n * @returns\r\n */\r\n async checkEnabledFeatures(): Promise<string[]> {\r\n if (!this.isInitialized) {\r\n this.enabledFeatures = await this.restClient.get(`${this.routePrefix}/enabled`);\r\n }\r\n\r\n return this.enabledFeatures;\r\n }\r\n\r\n /**\r\n * Checks that the specified feature is enabled.\r\n *\r\n * @param name\r\n * @returns\r\n */\r\n checkFeatureIsEnabled(name: string): boolean {\r\n return this._enabledFeatures?.some(p => p === name);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { NavigationEnd, NavigationExtras, Params, Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChoNavigationService {\r\n private history: string[] = [];\r\n\r\n constructor(private router: Router, private location: Location) {\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n this.history.push(event.urlAfterRedirects);\r\n }\r\n });\r\n }\r\n\r\n public go(commands: any[], extras?: NavigationExtras): Promise<boolean> {\r\n return this.router.navigate(commands, extras);\r\n }\r\n\r\n public goBack(): void {\r\n this.goBackOrDefault('/');\r\n }\r\n\r\n // based on https://nils-mehlhorn.de/posts/angular-navigate-back-previous-page\r\n public goBackOrDefault(defaultUrl: string): void {\r\n if (this.history.length > 0) {\r\n this.history.pop();\r\n this.location.back();\r\n } else {\r\n this.router.navigateByUrl(defaultUrl);\r\n }\r\n }\r\n\r\n // based on https://medium.com/agilix/change-the-route-without-reloading-in-angular-7a4aa82a8d3e\r\n public replaceState(url: string, data: any = null): void {\r\n window.history.replaceState(data, '', url);\r\n }\r\n\r\n public setQueryParams(params: Params): void {\r\n this.router.navigate([], {\r\n queryParams: params,\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true,\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ChoFeatureService } from '../services/cho-feature.service';\r\nimport { ChoNavigationService } from '../services/cho-navigation.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoFeatureGuard {\r\n constructor(\r\n private readonly featureService: ChoFeatureService,\r\n private readonly navigationService: ChoNavigationService,\r\n private readonly toastr: ToastrService\r\n ) {}\r\n\r\n public async canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\r\n const routeFeature = route.data['feature'] as string;\r\n\r\n if (!routeFeature) {\r\n return true;\r\n }\r\n\r\n await this.featureService.checkEnabledFeatures();\r\n\r\n if (!this.featureService.checkFeatureIsEnabled(routeFeature)) {\r\n this.toastr.error(\"Oops! It doesn't look like this feature has been enabled.\");\r\n\r\n this.navigationService.goBack();\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { IDeactivatable } from '../models/deactivatable.interface';\r\n\r\n@Injectable()\r\nexport class ChoUnsavedChangesGuard {\r\n component: IDeactivatable | undefined;\r\n route: ActivatedRouteSnapshot | undefined;\r\n\r\n canDeactivate(component: IDeactivatable): Observable<boolean> | Promise<boolean> | boolean {\r\n return component.onDeactivate ? component.onDeactivate() : true;\r\n }\r\n}\r\n","export class Uuid {\r\n public static create(): string {\r\n const bytes = crypto.getRandomValues(new Uint8Array(16));\r\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\r\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\r\n\r\n let index = 0;\r\n\r\n return (\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n '-' +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n '-' +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n '-' +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n '-' +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++])\r\n );\r\n }\r\n\r\n private static toHex(byte: number): string {\r\n return (0x100 | byte).toString(16).substr(1);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choActiveFilter',\r\n standalone: true,\r\n})\r\nexport class ChoActiveFilterPipe implements PipeTransform {\r\n transform(value: any[], property?: string): any[] {\r\n if (value?.length === 0) {\r\n return value;\r\n }\r\n\r\n const filteredItems: any[] = [];\r\n\r\n for (const item of value) {\r\n if (item[property || 'isActive']) {\r\n filteredItems.push(item);\r\n }\r\n }\r\n\r\n return filteredItems;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choBoolean',\r\n standalone: true,\r\n})\r\nexport class ChoBooleanPipe implements PipeTransform {\r\n transform(value: unknown): unknown {\r\n return value ? 'Yes' : 'No';\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choDate',\r\n standalone: true,\r\n})\r\nexport class ChoDatePipe implements PipeTransform {\r\n constructor(public datePipe: DatePipe) {}\r\n transform(\r\n value: Date | string | number,\r\n format?: string,\r\n timezone?: string,\r\n locale?: string\r\n ): string | null {\r\n switch (format ?? 'shortDate') {\r\n case 'short':\r\n format = 'MM/dd/yyyy, hh:mm a';\r\n break;\r\n\r\n case 'shortDate':\r\n format = 'MM/dd/yyyy';\r\n break;\r\n }\r\n\r\n return this.datePipe.transform(value, format, timezone, locale);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choFilter',\r\n standalone: true,\r\n})\r\nexport class ChoFilterPipe implements PipeTransform {\r\n transform(items: any[], callback: (item: any) => boolean): any {\r\n if (!items || !callback) {\r\n return items;\r\n }\r\n return items.filter(item => callback(item));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choFormatKey',\r\n standalone: true,\r\n})\r\nexport class ChoFormatKeyPipe implements PipeTransform {\r\n transform(key: string): string {\r\n let result = '';\r\n const tokenized = key.split(/(?=[A-Z])/);\r\n\r\n tokenized.forEach(item => {\r\n const uppercase = item.charAt(0).toUpperCase() + item.slice(1);\r\n result += uppercase + ' ';\r\n });\r\n\r\n return result;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choLowerKebabCase',\r\n standalone: true,\r\n})\r\nexport class ChoLowerKebabCasePipe implements PipeTransform {\r\n transform(value: string): string {\r\n //take string and convert to lower kebab case\r\n return value\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/\\s+/g, '-')\r\n .toLowerCase();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choSumBy',\r\n standalone: true,\r\n})\r\nexport class ChoSumByPipe implements PipeTransform {\r\n transform(items: any[], attr: string): any {\r\n return items.reduce((a, b) => a + (b[attr] || 0), 0);\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChoObjectService {\r\n public getNestedPropertyValue(obj: unknown, property: string): unknown {\r\n return property.split('.').reduce((acc, key) => acc && acc[key], obj);\r\n }\r\n\r\n public toValueObject(obj: object): object {\r\n const result = Object.getOwnPropertyNames(obj).reduce((p, key) => {\r\n if (obj[key]) {\r\n p[key] = obj[key];\r\n }\r\n return p;\r\n }, new Object());\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Convert Object to HttpParams\r\n * @param {object} obj\r\n * @returns {HttpParams}\r\n * see: https://stackoverflow.com/questions/45210406/angular-4-3-httpclient-set-params\r\n */\r\n public toHttpParams(obj: object): HttpParams {\r\n const temp = Object.getOwnPropertyNames(obj).reduce(\r\n (p, key) => (obj[key] == null || obj[key].length === 0 ? p : p.set(key, obj[key])),\r\n new HttpParams()\r\n );\r\n\r\n return temp;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ChoObjectService } from '../services/cho-object.service';\r\n\r\n@Pipe({\r\n name: 'choTextFilter',\r\n standalone: true,\r\n})\r\nexport class ChoTextFilterPipe implements PipeTransform {\r\n constructor(private readonly objectService: ChoObjectService) {}\r\n\r\n transform(value: any[], filterString: string | null | undefined, properties: string[]): any[] {\r\n if (value?.length === 0 || !filterString || !properties?.length) {\r\n return value;\r\n }\r\n\r\n filterString = filterString.toLowerCase();\r\n\r\n return value.filter(item => {\r\n for (const property of properties) {\r\n const propertyValue = property.includes('.')\r\n ? this.objectService.getNestedPropertyValue(item, property)\r\n : item[property];\r\n\r\n if (\r\n propertyValue &&\r\n propertyValue.toLowerCase().includes(filterString)\r\n ) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport moment from 'moment';\r\n\r\nimport { NameValueItem } from '../types/name-value-item.type';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoDateService {\r\n public getMonthItems(startMonth = 1, endMonth = 12): NameValueItem<number>[] {\r\n const items: NameValueItem<number>[] = [];\r\n const d = moment().startOf('year');\r\n let i = startMonth;\r\n\r\n while (i <= endMonth) {\r\n d.set('month', i - 1);\r\n items.push({ value: i, name: d.format('MMMM') });\r\n i++;\r\n }\r\n\r\n return items;\r\n }\r\n\r\n public getYearItems(startYear?: number, endYear?: number): NameValueItem<number>[] {\r\n startYear = startYear || moment().year();\r\n endYear = endYear || moment().year();\r\n\r\n const items: NameValueItem<number>[] = [];\r\n let i = startYear;\r\n\r\n while (i <= endYear) {\r\n items.push({ value: i, name: i.toString() });\r\n i++;\r\n }\r\n\r\n return items;\r\n }\r\n\r\n public toDateString(input: moment.MomentInput): string {\r\n return moment(input).format('yyyy-MM-DD');\r\n }\r\n\r\n public toISOString(input: moment.MomentInput): string {\r\n return moment(input).toISOString();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable, shareReplay } from 'rxjs';\r\nimport { saveAs } from 'file-saver';\r\n\r\n@Injectable({ providedIn: 'any' })\r\nexport class ChoDownloadService {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n private octetStreamMime = 'application/octet-stream';\r\n\r\n public downloadFile(url: string, params?: HttpParams): Observable<HttpResponse<ArrayBuffer>> {\r\n const download$ = this.httpClient\r\n .get(url, {\r\n responseType: 'arraybuffer',\r\n observe: 'response',\r\n params: params,\r\n })\r\n .pipe(shareReplay());\r\n\r\n download$.subscribe(r => this.processDownload(r));\r\n\r\n return download$;\r\n }\r\n\r\n private processDownload(response: HttpResponse<ArrayBuffer>): void {\r\n const filename = this.getFileNameFromResponse(response);\r\n const contentType = response.headers.get('content-type') || this.octetStreamMime;\r\n\r\n if (response.body) {\r\n const blob = new Blob([response.body], { type: contentType });\r\n saveAs(blob, filename);\r\n }\r\n }\r\n\r\n private getFileNameFromResponse(response: HttpResponse<ArrayBuffer>): string {\r\n // attempt to get from response headers\r\n let fileName = response.headers.get('x-filename') || response.headers.get('filename');\r\n\r\n if (!fileName) {\r\n // attempt to get from content disposition\r\n const disposition = response.headers.get('content-disposition');\r\n\r\n if (disposition) {\r\n fileName = disposition.split(';')[1].split('=')[1].replace(/\"/g, '');\r\n }\r\n }\r\n\r\n return fileName || 'download.bin';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoErrorService {\r\n /**\r\n * Gets the message from an error object or string\r\n *\r\n * @param error\r\n * @returns\r\n */\r\n public getErrorMessage(error: unknown): string {\r\n let message = error as string;\r\n\r\n if (!message) {\r\n if (Object.prototype.hasOwnProperty.call(error, 'message')) {\r\n message = (error as never)['message'] as string;\r\n }\r\n }\r\n\r\n return message;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport type IntervalOptions = {\r\n fireImmediately: FireImmediately;\r\n blurInterval?: number;\r\n hiddenInterval?: number;\r\n};\r\n\r\ntype Action = () => Promise<unknown>;\r\n\r\nexport enum FireImmediately {\r\n never,\r\n whenShown,\r\n whenFocused,\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoIntervalService {\r\n static readonly defaultOptions: IntervalOptions = { fireImmediately: FireImmediately.never };\r\n\r\n create(\r\n action: Action,\r\n interval: number,\r\n options: IntervalOptions = ChoIntervalService.defaultOptions\r\n ): IntervalTimer {\r\n const timer = new IntervalTimer(action, interval, options);\r\n timer.initialize();\r\n\r\n return timer;\r\n }\r\n}\r\n\r\nexport class IntervalTimer {\r\n $handle?: number;\r\n currentInterval = 0;\r\n isStopped = true;\r\n\r\n constructor(\r\n private readonly action: Action,\r\n private readonly interval: number,\r\n private readonly options: IntervalOptions\r\n ) {}\r\n\r\n initialize(): void {\r\n if (this.options.hiddenInterval != null) {\r\n document.addEventListener('visibilitychange', () => {\r\n if (document.hidden) {\r\n this.onHidden();\r\n } else {\r\n this.onShown();\r\n }\r\n });\r\n }\r\n\r\n if (this.options.blurInterval != null) {\r\n window.addEventListener('blur', () => this.onBlur());\r\n window.addEventListener('focus', () => this.onFocus());\r\n }\r\n }\r\n\r\n start(): void {\r\n if (this.isStopped) {\r\n if (!document.hidden) {\r\n this.isStopped = false;\r\n this.onShown();\r\n } else {\r\n this.setInterval(this.interval);\r\n this.isStopped = false;\r\n }\r\n }\r\n }\r\n\r\n stop(): void {\r\n this.setInterval(0);\r\n this.isStopped = true;\r\n }\r\n\r\n private async callActionAndScheduleNext(nextInterval: number): Promise<void> {\r\n this.setInterval(0); // pause while the action runs\r\n await this.action();\r\n this.setInterval(nextInterval);\r\n }\r\n\r\n private onBlur(): void {\r\n if (this.isStopped) {\r\n return;\r\n }\r\n\r\n this.setInterval(this.options?.blurInterval);\r\n }\r\n\r\n private onFocus(): void {\r\n if (this.isStopped) {\r\n return;\r\n }\r\n\r\n if (this.options?.fireImmediately === FireImmediately.whenFocused) {\r\n this.callActionAndScheduleNext(this.interval);\r\n return;\r\n }\r\n\r\n this.setInterval(this.interval);\r\n }\r\n\r\n private onHidden(): void {\r\n if (this.isStopped) {\r\n return;\r\n }\r\n\r\n this.setInterval(this.options?.hiddenInterval);\r\n }\r\n\r\n private onShown(): void {\r\n if (this.isStopped) {\r\n return;\r\n }\r\n\r\n if (this.options.fireImmediately === FireImmediately.whenShown) {\r\n this.callActionAndScheduleNext(this.interval);\r\n return;\r\n }\r\n\r\n this.setInterval(this.interval);\r\n }\r\n\r\n private setInterval(interval?: number): void {\r\n if (this.$handle) {\r\n if (interval === this.currentInterval) {\r\n return;\r\n }\r\n\r\n window.clearTimeout(this.$handle);\r\n this.$handle = undefined;\r\n }\r\n\r\n if (!interval) {\r\n return;\r\n }\r\n\r\n this.$handle = window.setTimeout(() => this.callActionAndScheduleNext(interval), interval);\r\n this.currentInterval = interval;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoLocalStorageService {\r\n checkIfKeyExists(key: string): boolean {\r\n return globalThis.localStorage.getItem(key) !== null;\r\n }\r\n\r\n getItem<T>(key: string): T | undefined {\r\n const valueString = globalThis.localStorage.getItem(key);\r\n\r\n if (valueString === null) {\r\n return undefined;\r\n }\r\n\r\n const value = JSON.parse(valueString);\r\n return value;\r\n }\r\n\r\n setItem<T>(key: string, value: T): void {\r\n const valueString = JSON.stringify(value);\r\n globalThis.localStorage.setItem(key, valueString);\r\n }\r\n\r\n removeItem(key: string): void {\r\n globalThis.localStorage.removeItem(key);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChoModalService {\r\n constructor(private readonly ngbModal: NgbModal) {}\r\n\r\n public async showModal<T>(\r\n component: unknown,\r\n componentParameters?: unknown,\r\n modalOptions: NgbModalOptions = { backdrop: 'static' }\r\n ): Promise<{ result: T; componentInstance: unknown }> {\r\n const modal = this.ngbModal.open(component, modalOptions);\r\n const componentInstance = modal.componentInstance;\r\n\r\n Object.assign(componentInstance, componentParameters);\r\n\r\n let result: T;\r\n\r\n try {\r\n result = await modal.result;\r\n } catch (error) {\r\n result = null as unknown as T;\r\n if (error === undefined) {\r\n throw 'modal dismiss';\r\n }\r\n throw error;\r\n }\r\n\r\n return { result, componentInstance };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChoRouteParamService {\r\n constructor(private readonly route: ActivatedRoute) {}\r\n\r\n public getParameterBoolean(params: Params, paramKey: string): boolean | null {\r\n const value = this.getParameterValue(params, paramKey);\r\n\r\n if (value) {\r\n return !!value;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getParameterNumber(params: Params, paramKey: string): number | null {\r\n const value = this.getParameterValue(params, paramKey);\r\n\r\n if (value) {\r\n return parseInt(value);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getParameterValue(params: Params, paramKey: string): string | null {\r\n const value = params[paramKey];\r\n return value || null;\r\n }\r\n\r\n public getQueryParameterBoolean(paramKey: string): boolean | null {\r\n return this.getParameterBoolean(this.route.snapshot.queryParams, paramKey);\r\n }\r\n\r\n public getQueryParameterNumber(paramKey: string): number | null {\r\n return this.getParameterNumber(this.route.snapshot.queryParams, paramKey);\r\n }\r\n\r\n public getQueryParameterValue(paramKey: string): string | null {\r\n return this.getParameterValue(this.route.snapshot.queryParams, paramKey);\r\n }\r\n\r\n public getRouteParameterBoolean(route: ActivatedRoute, paramKey: string): boolean | null {\r\n return this.getParameterBoolean(route.snapshot.params, paramKey);\r\n }\r\n\r\n public getRouteParameterNumber(route: ActivatedRoute, paramKey: string): number | null {\r\n return this.getParameterNumber(route.snapshot.params, paramKey);\r\n }\r\n\r\n public getRouteParameterValue(route: ActivatedRoute, paramKey: string): string | null {\r\n return this.getParameterValue(route.snapshot.params, paramKey);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoSessionStorageService {\r\n checkIfKeyExists(key: string): boolean {\r\n return globalThis.sessionStorage.getItem(key) !== null;\r\n }\r\n\r\n getItem<T>(key: string): T | undefined {\r\n const valueString = globalThis.sessionStorage.getItem(key);\r\n\r\n if (valueString === null) {\r\n return undefined;\r\n }\r\n\r\n const value = JSON.parse(valueString);\r\n return value;\r\n }\r\n\r\n setItem<T>(key: string, value: T): void {\r\n const valueString = JSON.stringify(value);\r\n globalThis.sessionStorage.setItem(key, valueString);\r\n }\r\n\r\n removeItem(key: string): void {\r\n globalThis.sessionStorage.removeItem(key);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-cho-common\r\n */\r\nexport { CHO_COMMON_CONFIG, ChoCommonConfig } from './ngx-cho-common.config';\r\n\r\nexport { ChoAutoFocusDirective } from './lib/directives/cho-auto-focus.directive';\r\nexport { ChoFormFocusDirective } from './lib/directives/cho-form-focus.directive';\r\nexport { ChoKeyPressEnterDirective } from './lib/directives/cho-key-press-enter.directive';\r\nexport { ChoKeyPressEscapeDirective } from './lib/directives/cho-key-press-escape.directive';\r\n\r\nexport { ChoFeatureGuard } from './lib/guards/cho-feature.guard';\r\nexport { ChoUnsavedChangesGuard } from './lib/guards/cho-unsaved-changes.guard';\r\n\r\nexport { IDeactivatable } from './lib/models/deactivatable.interface';\r\n\r\nexport { IPhoneInfo } from './lib/models/phone-info.model';\r\nexport { INoteInfo } from './lib/models/note-info.model';\r\nexport { IEmailInfo } from './lib/models/email-info.model';\r\nexport { IContactInfo } from './lib/models/contact-info.model';\r\nexport { BasicSearchFilter } from './lib/models/basic-search-filter.model';\r\nexport { AppFile } from './lib/models/app-file.model';\r\nexport { IAddress } from './lib/models/address.model';\r\nexport { INote } from './lib/models/note.model';\r\nexport { Uuid } from './lib/models/uuid.model';\r\n\r\nexport { ChoActiveFilterPipe } from './lib/pipes/cho-active-filter.pipe';\r\nexport { ChoBooleanPipe } from './lib/pipes/cho-boolean.pipe';\r\nexport { ChoDatePipe } from './lib/pipes/cho-date.pipe';\r\nexport { ChoFilterPipe } from './lib/pipes/cho-filter.pipe';\r\nexport { ChoFormatKeyPipe } from './lib/pipes/cho-format-key.pipe';\r\nexport { ChoLowerKebabCasePipe } from './lib/pipes/cho-lower-kebab-case.pipe';\r\nexport { ChoSumByPipe } from './lib/pipes/cho-sum-by.pipe';\r\nexport { ChoTextFilterPipe } from './lib/pipes/cho-text-filter.pipe';\r\n\r\nexport { ChoDateService } from './lib/services/cho-date.service';\r\nexport { ChoDownloadService } from './lib/services/cho-download.service';\r\nexport { ChoErrorService } from './lib/services/cho-error.service';\r\nexport { ChoFeatureService } from './lib/services/cho-feature.service';\r\nexport {\r\n ChoIntervalService,\r\n IntervalTimer,\r\n FireImmediately,\r\n} from './lib/services/cho-interval.service';\r\nexport { ChoLocalStorageService } from './lib/services/cho-local-storage.service';\r\nexport { ChoModalService } from './lib/services/cho-modal.service';\r\nexport { ChoNavigationService } from './lib/services/cho-navigation.service';\r\nexport { ChoObjectService } from './lib/services/cho-object.service';\r\nexport { ChoRestClientService } from './lib/services/cho-rest-client.service';\r\nexport { ChoRouteParamService } from './lib/services/cho-route-param.service';\r\nexport { ChoSessionStorageService } from './lib/services/cho-session-storage.service';\r\n\r\nexport { Indexable } from './lib/types/indexable.type';\r\nexport { NameValueItem } from './lib/types/name-value-item.type';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ChoRestClientService","i1","i1.ChoFeatureService","i2.ChoNavigationService","i1.ChoObjectService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-cho-common.mjs","sources":["../../../projects/ngx-cho-common/src/ngx-cho-common.config.ts","../../../projects/ngx-cho-common/src/lib/directives/cho-auto-focus.directive.ts","../../../projects/ngx-cho-common/src/lib/directives/cho-form-focus.directive.ts","../../../projects/ngx-cho-common/src/lib/directives/cho-key-press-enter.directive.ts","../../../projects/ngx-cho-common/src/lib/directives/cho-key-press-escape.directive.ts","../../../projects/ngx-cho-common/src/lib/services/cho-rest-client.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-feature.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-navigation.service.ts","../../../projects/ngx-cho-common/src/lib/guards/cho-feature.guard.ts","../../../projects/ngx-cho-common/src/lib/guards/cho-unsaved-changes.guard.ts","../../../projects/ngx-cho-common/src/lib/models/uuid.model.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-active-filter.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-boolean.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-date.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-filter.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-format-key.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-lower-kebab-case.pipe.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-sum-by.pipe.ts","../../../projects/ngx-cho-common/src/lib/services/cho-object.service.ts","../../../projects/ngx-cho-common/src/lib/pipes/cho-text-filter.pipe.ts","../../../projects/ngx-cho-common/src/lib/services/cho-date.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-download.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-error.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-interval.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-local-storage.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-modal.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-route-param.service.ts","../../../projects/ngx-cho-common/src/lib/services/cho-session-storage.service.ts","../../../projects/ngx-cho-common/src/public-api.ts","../../../projects/ngx-cho-common/src/ngx-cho-common.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport interface ChoCommonConfig {\r\n webAppUrl: string;\r\n webApiUrl: string;\r\n}\r\n\r\nexport const CHO_COMMON_CONFIG = new InjectionToken<ChoCommonConfig>('ChoCommonConfig');\r\n","// from https://stackblitz.com/edit/angular-inline-edit?file=src%2Fapp%2Fautofocus.directive.ts\r\nimport { Directive, ElementRef, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[choAutoFocus]',\r\n standalone: true,\r\n})\r\nexport class ChoAutoFocusDirective implements OnInit {\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n}\r\n","// from https://timdeschryver.dev/blog/auto-focus-a-form-control-with-an-angular-directive\r\nimport { Directive, ElementRef, HostListener, AfterViewInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[choFormFocus]',\r\n standalone: true,\r\n})\r\nexport class ChoFormFocusDirective implements AfterViewInit {\r\n focusables = ['input', 'select', 'textarea'];\r\n\r\n constructor(private element: ElementRef) {}\r\n\r\n ngAfterViewInit() {\r\n const input = this.element.nativeElement.querySelector(this.focusables.join(','));\r\n\r\n if (input) {\r\n input.focus();\r\n return;\r\n }\r\n\r\n // focus on first available button if no other focusable element\r\n const button = this.element.nativeElement.querySelector('button');\r\n if (button) {\r\n button.focus();\r\n }\r\n }\r\n\r\n @HostListener('submit')\r\n submit() {\r\n const input = this.element.nativeElement.querySelector(\r\n this.focusables.map(x => `${x}.ng-invalid`).join(',')\r\n );\r\n if (input) {\r\n input.focus();\r\n }\r\n }\r\n}\r\n","import { Directive, HostListener, Output, EventEmitter } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[choKeyPressEnter]',\r\n standalone: true,\r\n})\r\nexport class ChoKeyPressEnterDirective {\r\n @Output('appKeyPressEnter') emitter = new EventEmitter();\r\n\r\n @HostListener('window:keypress', ['$event'])\r\n keyEvent(event: KeyboardEvent) {\r\n if (event.key === 'Enter') {\r\n this.emitter.emit();\r\n }\r\n }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[choKeyPressEscape]',\r\n standalone: true,\r\n})\r\nexport class ChoKeyPressEscapeDirective {\r\n @Output('appKeyPressEscape') emitter = new EventEmitter();\r\n\r\n @HostListener('window:keydown', ['$event'])\r\n keyEvent(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n this.emitter.emit();\r\n }\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { lastValueFrom, Observable, retry, RetryConfig, take } from 'rxjs';\r\n\r\ntype RequestParameters = {\r\n body?: unknown;\r\n queryParameters?: {};\r\n apiVersion?: {};\r\n headers?: {};\r\n cacheLifetimeSeconds?: number;\r\n retry?: RetryConfig;\r\n showSpinner?: {};\r\n};\r\n\r\ntype DeleteRequestParameters = Omit<RequestParameters, 'body' | 'cacheLifetimeSeconds'>;\r\ntype GetRequestParameters = Omit<RequestParameters, 'body'>;\r\n\r\n@Injectable({ providedIn: 'any' })\r\nexport class ChoRestClientService {\r\n private readonly defaultRetry = { count: 0, delay: 1000 };\r\n\r\n constructor(private readonly httpClient: HttpClient) {}\r\n\r\n /**\r\n * Sends a delete request to the specified REST service\r\n *\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public delete(url: string, options?: DeleteRequestParameters): Promise<void> {\r\n return lastValueFrom(this.request('DELETE', url, options));\r\n }\r\n\r\n /**\r\n * Retrieves data from the specified REST service\r\n *\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public get<T>(url: string, options?: GetRequestParameters): Promise<T> {\r\n return lastValueFrom(this.request('GET', url, options));\r\n }\r\n\r\n /**\r\n * Sends a patch request to the specified REST service\r\n *\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public patch<T>(url: string, options?: RequestParameters): Promise<T> {\r\n return lastValueFrom(this.request('PATCH', url, options));\r\n }\r\n\r\n /**\r\n * Sends a post request to the specified REST service\r\n *\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public post<T>(url: string, options?: RequestParameters): Promise<T> {\r\n return lastValueFrom(this.request('POST', url, options));\r\n }\r\n\r\n /**\r\n * Sends a put request to the specified REST service\r\n *\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public put<T>(url: string, options?: RequestParameters): Promise<T> {\r\n return lastValueFrom(this.request('PUT', url, options));\r\n }\r\n\r\n /**\r\n * Sends a request to the specified REST service\r\n *\r\n * @param method DELETE, GET, POST, PUT, or PATCH\r\n * @param url The service endpoint\r\n * @param options Additional options\r\n */\r\n public request<T>(\r\n method: 'DELETE',\r\n url: string,\r\n options?: DeleteRequestParameters\r\n ): Observable<T>;\r\n public request<T>(method: 'GET', url: string, options?: GetRequestParameters): Observable<T>;\r\n public request<T>(\r\n method: 'POST' | 'PUT' | 'PATCH',\r\n url: string,\r\n options?: RequestParameters\r\n ): Observable<T>;\r\n\r\n public request<T>(\r\n method: 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT',\r\n url: string,\r\n options?: RequestParameters\r\n ): Observable<T> {\r\n return this.httpClient\r\n .request<T>(method, url, {\r\n body: options?.body ? JSON.stringify(options.body) : undefined,\r\n headers: this.createRequestHeaders(options),\r\n params: this.createRequestParams(options?.queryParameters),\r\n })\r\n .pipe(take(1), retry(options?.retry || this.defaultRetry));\r\n }\r\n\r\n /**\r\n *\r\n * @param url\r\n * @param options\r\n * @returns\r\n */\r\n public getResponse<T>(\r\n method: 'GET' | 'PATCH' | 'POST' | 'PUT',\r\n url: string,\r\n options?: RequestParameters\r\n ): Observable<HttpResponse<T>> {\r\n return this.httpClient\r\n .request<T>(method, url, {\r\n observe: 'response',\r\n body: options?.body ? JSON.stringify(options.body) : undefined,\r\n headers: this.createRequestHeaders(options),\r\n params: this.createRequestParams(options?.queryParameters),\r\n })\r\n .pipe(take(1), retry(options?.retry || this.defaultRetry));\r\n }\r\n\r\n /**\r\n * Creates request headers based on the provided options.\r\n *\r\n * @param options\r\n * @returns\r\n */\r\n private createRequestHeaders(options?: RequestParameters): HttpHeaders {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const headers: any = Object.assign(\r\n {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n options?.headers\r\n );\r\n\r\n if (options?.apiVersion) {\r\n const versionString = `; version=${options.apiVersion}`;\r\n\r\n headers.Accept += versionString;\r\n headers['Content-Type'] += versionString;\r\n }\r\n\r\n if (options?.showSpinner === false) {\r\n headers['x-spinner'] = 'false';\r\n }\r\n\r\n if (options?.cacheLifetimeSeconds) {\r\n headers['x-cache-ttl'] = options?.cacheLifetimeSeconds;\r\n }\r\n\r\n return new HttpHeaders(headers);\r\n }\r\n\r\n /**\r\n * Converts one or more objects to an HttpParams object.\r\n *\r\n * @param sources The objects to convert\r\n * @returns\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private createRequestParams(...sources: any[]): HttpParams {\r\n let params = new HttpParams();\r\n\r\n for (const source of sources) {\r\n if (source == null) {\r\n continue;\r\n }\r\n\r\n for (const key of Object.keys(source)) {\r\n const value = source[key];\r\n\r\n if (value != null) {\r\n params = params.set(key, value.toString());\r\n }\r\n }\r\n }\r\n\r\n return params;\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ChoRestClientService } from './cho-rest-client.service';\r\nimport { CHO_COMMON_CONFIG, ChoCommonConfig } from '../../ngx-cho-common.config';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoFeatureService {\r\n public readonly featureStream = new BehaviorSubject<string[]>([]);\r\n\r\n private _enabledFeatures: string[] = [];\r\n private _isInitialized = false;\r\n private readonly routePrefix;\r\n\r\n constructor(\r\n @Inject(CHO_COMMON_CONFIG) private choCommonConfig: ChoCommonConfig,\r\n private readonly restClient: ChoRestClientService\r\n ) {\r\n this.routePrefix = `${this.choCommonConfig.webApiUrl}/common/features`;\r\n this.checkEnabledFeatures();\r\n }\r\n\r\n /**\r\n * Gets the enabled features.\r\n */\r\n get enabledFeatures(): string[] {\r\n return this._enabledFeatures;\r\n }\r\n\r\n /**\r\n * Sets the enabled features.\r\n */\r\n private set enabledFeatures(enabledFeatures: string[]) {\r\n this._enabledFeatures = enabledFeatures;\r\n this._isInitialized = true;\r\n\r\n this.featureStream.next(enabledFeatures);\r\n }\r\n\r\n /**\r\n * Gets whether features have been initialized\r\n */\r\n get isInitialized(): boolean {\r\n return this._isInitialized;\r\n }\r\n\r\n /**\r\n * Checks that the enabled features are set and returns the list.\r\n *\r\n * @param name\r\n * @returns\r\n */\r\n async checkEnabledFeatures(): Promise<string[]> {\r\n if (!this.isInitialized) {\r\n this.enabledFeatures = await this.restClient.get(`${this.routePrefix}/enabled`);\r\n }\r\n\r\n return this.enabledFeatures;\r\n }\r\n\r\n /**\r\n * Checks that the specified feature is enabled.\r\n *\r\n * @param name\r\n * @returns\r\n */\r\n checkFeatureIsEnabled(name: string): boolean {\r\n return this._enabledFeatures?.some(p => p === name);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { NavigationEnd, NavigationExtras, Params, Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChoNavigationService {\r\n private history: string[] = [];\r\n\r\n constructor(private router: Router, private location: Location) {\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n this.history.push(event.urlAfterRedirects);\r\n }\r\n });\r\n }\r\n\r\n public go(commands: any[], extras?: NavigationExtras): Promise<boolean> {\r\n return this.router.navigate(commands, extras);\r\n }\r\n\r\n public goBack(): void {\r\n this.goBackOrDefault('/');\r\n }\r\n\r\n // based on https://nils-mehlhorn.de/posts/angular-navigate-back-previous-page\r\n public goBackOrDefault(defaultUrl: string): void {\r\n if (this.history.length > 0) {\r\n this.history.pop();\r\n this.location.back();\r\n } else {\r\n this.router.navigateByUrl(defaultUrl);\r\n }\r\n }\r\n\r\n // based on https://medium.com/agilix/change-the-route-without-reloading-in-angular-7a4aa82a8d3e\r\n public replaceState(url: string, data: any = null): void {\r\n window.history.replaceState(data, '', url);\r\n }\r\n\r\n public setQueryParams(params: Params): void {\r\n this.router.navigate([], {\r\n queryParams: params,\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true,\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ChoFeatureService } from '../services/cho-feature.service';\r\nimport { ChoNavigationService } from '../services/cho-navigation.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoFeatureGuard {\r\n constructor(\r\n private readonly featureService: ChoFeatureService,\r\n private readonly navigationService: ChoNavigationService,\r\n private readonly toastr: ToastrService\r\n ) {}\r\n\r\n public async canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {\r\n const routeFeature = route.data['feature'] as string;\r\n\r\n if (!routeFeature) {\r\n return true;\r\n }\r\n\r\n await this.featureService.checkEnabledFeatures();\r\n\r\n if (!this.featureService.checkFeatureIsEnabled(routeFeature)) {\r\n this.toastr.error(\"Oops! It doesn't look like this feature has been enabled.\");\r\n\r\n this.navigationService.goBack();\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { IDeactivatable } from '../models/deactivatable.interface';\r\n\r\n@Injectable()\r\nexport class ChoUnsavedChangesGuard {\r\n component: IDeactivatable | undefined;\r\n route: ActivatedRouteSnapshot | undefined;\r\n\r\n canDeactivate(component: IDeactivatable): Observable<boolean> | Promise<boolean> | boolean {\r\n return component.onDeactivate ? component.onDeactivate() : true;\r\n }\r\n}\r\n","export class Uuid {\r\n public static create(): string {\r\n const bytes = crypto.getRandomValues(new Uint8Array(16));\r\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\r\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\r\n\r\n let index = 0;\r\n\r\n return (\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n '-' +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n '-' +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n '-' +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n '-' +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++]) +\r\n Uuid.toHex(bytes[index++])\r\n );\r\n }\r\n\r\n private static toHex(byte: number): string {\r\n return (0x100 | byte).toString(16).substr(1);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choActiveFilter',\r\n standalone: true,\r\n})\r\nexport class ChoActiveFilterPipe implements PipeTransform {\r\n transform(value: any[], property?: string): any[] {\r\n if (value?.length === 0) {\r\n return value;\r\n }\r\n\r\n const filteredItems: any[] = [];\r\n\r\n for (const item of value) {\r\n if (item[property || 'isActive']) {\r\n filteredItems.push(item);\r\n }\r\n }\r\n\r\n return filteredItems;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choBoolean',\r\n standalone: true,\r\n})\r\nexport class ChoBooleanPipe implements PipeTransform {\r\n transform(value: unknown): unknown {\r\n return value ? 'Yes' : 'No';\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choDate',\r\n standalone: true,\r\n})\r\nexport class ChoDatePipe implements PipeTransform {\r\n constructor(public datePipe: DatePipe) {}\r\n transform(\r\n value: Date | string | number,\r\n format?: string,\r\n timezone?: string,\r\n locale?: string\r\n ): string | null {\r\n switch (format ?? 'shortDate') {\r\n case 'short':\r\n format = 'MM/dd/yyyy hh:mm a';\r\n break;\r\n\r\n case 'shortDate':\r\n format = 'MM/dd/yyyy';\r\n break;\r\n }\r\n\r\n return this.datePipe.transform(value, format, timezone, locale);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choFilter',\r\n standalone: true,\r\n})\r\nexport class ChoFilterPipe implements PipeTransform {\r\n transform(items: any[], callback: (item: any) => boolean): any {\r\n if (!items || !callback) {\r\n return items;\r\n }\r\n return items.filter(item => callback(item));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choFormatKey',\r\n standalone: true,\r\n})\r\nexport class ChoFormatKeyPipe implements PipeTransform {\r\n transform(key: string): string {\r\n let result = '';\r\n const tokenized = key.split(/(?=[A-Z])/);\r\n\r\n tokenized.forEach(item => {\r\n const uppercase = item.charAt(0).toUpperCase() + item.slice(1);\r\n result += uppercase + ' ';\r\n });\r\n\r\n return result;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choLowerKebabCase',\r\n standalone: true,\r\n})\r\nexport class ChoLowerKebabCasePipe implements PipeTransform {\r\n transform(value: string): string {\r\n //take string and convert to lower kebab case\r\n return value\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/\\s+/g, '-')\r\n .toLowerCase();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'choSumBy',\r\n standalone: true,\r\n})\r\nexport class ChoSumByPipe implements PipeTransform {\r\n transform(items: any[], attr: string): any {\r\n return items.reduce((a, b) => a + (b[attr] || 0), 0);\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChoObjectService {\r\n public getNestedPropertyValue(obj: unknown, property: string): unknown {\r\n return property.split('.').reduce((acc, key) => acc && acc[key], obj);\r\n }\r\n\r\n public toValueObject(obj: object): object {\r\n const result = Object.getOwnPropertyNames(obj).reduce((p, key) => {\r\n if (obj[key]) {\r\n p[key] = obj[key];\r\n }\r\n return p;\r\n }, new Object());\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Convert Object to HttpParams\r\n * @param {object} obj\r\n * @returns {HttpParams}\r\n * see: https://stackoverflow.com/questions/45210406/angular-4-3-httpclient-set-params\r\n */\r\n public toHttpParams(obj: object): HttpParams {\r\n const temp = Object.getOwnPropertyNames(obj).reduce(\r\n (p, key) => (obj[key] == null || obj[key].length === 0 ? p : p.set(key, obj[key])),\r\n new HttpParams()\r\n );\r\n\r\n return temp;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ChoObjectService } from '../services/cho-object.service';\r\n\r\n@Pipe({\r\n name: 'choTextFilter',\r\n standalone: true,\r\n})\r\nexport class ChoTextFilterPipe implements PipeTransform {\r\n constructor(private readonly objectService: ChoObjectService) {}\r\n\r\n transform(value: any[], filterString: string | null | undefined, properties: string[]): any[] {\r\n if (value?.length === 0 || !filterString || !properties?.length) {\r\n return value;\r\n }\r\n\r\n filterString = filterString.toLowerCase();\r\n\r\n return value.filter(item => {\r\n for (const property of properties) {\r\n const propertyValue = property.includes('.')\r\n ? this.objectService.getNestedPropertyValue(item, property)\r\n : item[property];\r\n\r\n if (\r\n propertyValue &&\r\n propertyValue.toLowerCase().includes(filterString)\r\n ) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport moment from 'moment';\r\n\r\nimport { NameValueItem } from '../types/name-value-item.type';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoDateService {\r\n public getMonthItems(startMonth = 1, endMonth = 12): NameValueItem<number>[] {\r\n const items: NameValueItem<number>[] = [];\r\n const d = moment().startOf('year');\r\n let i = startMonth;\r\n\r\n while (i <= endMonth) {\r\n d.set('month', i - 1);\r\n items.push({ value: i, name: d.format('MMMM') });\r\n i++;\r\n }\r\n\r\n return items;\r\n }\r\n\r\n public getYearItems(startYear?: number, endYear?: number): NameValueItem<number>[] {\r\n startYear = startYear || moment().year();\r\n endYear = endYear || moment().year();\r\n\r\n const items: NameValueItem<number>[] = [];\r\n let i = startYear;\r\n\r\n while (i <= endYear) {\r\n items.push({ value: i, name: i.toString() });\r\n i++;\r\n }\r\n\r\n return items;\r\n }\r\n\r\n public toDateString(input: moment.MomentInput): string {\r\n return moment(input).format('yyyy-MM-DD');\r\n }\r\n\r\n public toISOString(input: moment.MomentInput): string {\r\n return moment(input).toISOString();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable, shareReplay } from 'rxjs';\r\nimport { saveAs } from 'file-saver';\r\n\r\n@Injectable({ providedIn: 'any' })\r\nexport class ChoDownloadService {\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n private octetStreamMime = 'application/octet-stream';\r\n\r\n public downloadFile(url: string, params?: HttpParams): Observable<HttpResponse<ArrayBuffer>> {\r\n const download$ = this.httpClient\r\n .get(url, {\r\n responseType: 'arraybuffer',\r\n observe: 'response',\r\n params: params,\r\n })\r\n .pipe(shareReplay());\r\n\r\n download$.subscribe(r => this.processDownload(r));\r\n\r\n return download$;\r\n }\r\n\r\n private processDownload(response: HttpResponse<ArrayBuffer>): void {\r\n const filename = this.getFileNameFromResponse(response);\r\n const contentType = response.headers.get('content-type') || this.octetStreamMime;\r\n\r\n if (response.body) {\r\n const blob = new Blob([response.body], { type: contentType });\r\n saveAs(blob, filename);\r\n }\r\n }\r\n\r\n private getFileNameFromResponse(response: HttpResponse<ArrayBuffer>): string {\r\n // attempt to get from response headers\r\n let fileName = response.headers.get('x-filename') || response.headers.get('filename');\r\n\r\n if (!fileName) {\r\n // attempt to get from content disposition\r\n const disposition = response.headers.get('content-disposition');\r\n\r\n if (disposition) {\r\n fileName = disposition.split(';')[1].split('=')[1].replace(/\"/g, '');\r\n }\r\n }\r\n\r\n return fileName || 'download.bin';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoErrorService {\r\n /**\r\n * Checks if error message contains a specific string\r\n *\r\n * @param error\r\n * @param searchString\r\n * @returns\r\n */\r\n public contains(error: unknown, searchString: string): boolean {\r\n const message = this.getErrorMessage(error);\r\n return message.includes(searchString);\r\n }\r\n\r\n /**\r\n * Gets the message from an error object or string\r\n *\r\n * @param error\r\n * @returns\r\n */\r\n public getErrorMessage(error: unknown): string {\r\n if (!error) {\r\n return 'Unknown error';\r\n }\r\n\r\n if (error instanceof Error) {\r\n return error.message;\r\n }\r\n\r\n if (typeof error === 'string' || error instanceof String) {\r\n return error as string;\r\n }\r\n\r\n console.log('Unknown error type:', error);\r\n\r\n return 'Unknown error';\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport type IntervalOptions = {\r\n fireImmediately: FireImmediately;\r\n blurInterval?: number;\r\n hiddenInterval?: number;\r\n};\r\n\r\ntype Action = () => Promise<unknown>;\r\n\r\nexport enum FireImmediately {\r\n never,\r\n whenShown,\r\n whenFocused,\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoIntervalService {\r\n static readonly defaultOptions: IntervalOptions = { fireImmediately: FireImmediately.never };\r\n\r\n create(\r\n action: Action,\r\n interval: number,\r\n options: IntervalOptions = ChoIntervalService.defaultOptions\r\n ): IntervalTimer {\r\n const timer = new IntervalTimer(action, interval, options);\r\n timer.initialize();\r\n\r\n return timer;\r\n }\r\n}\r\n\r\nexport class IntervalTimer {\r\n $handle?: number;\r\n currentInterval = 0;\r\n isStopped = true;\r\n\r\n constructor(\r\n private readonly action: Action,\r\n private readonly interval: number,\r\n private readonly options: IntervalOptions\r\n ) {}\r\n\r\n initialize(): void {\r\n if (this.options.hiddenInterval != null) {\r\n document.addEventListener('visibilitychange', () => {\r\n if (document.hidden) {\r\n this.onHidden();\r\n } else {\r\n this.onShown();\r\n }\r\n });\r\n }\r\n\r\n if (this.options.blurInterval != null) {\r\n window.addEventListener('blur', () => this.onBlur());\r\n window.addEventListener('focus', () => this.onFocus());\r\n }\r\n }\r\n\r\n start(): void {\r\n if (this.isStopped) {\r\n if (!document.hidden) {\r\n this.isStopped = false;\r\n this.onShown();\r\n } else {\r\n this.setInterval(this.interval);\r\n this.isStopped = false;\r\n }\r\n }\r\n }\r\n\r\n stop(): void {\r\n this.setInterval(0);\r\n this.isStopped = true;\r\n }\r\n\r\n private async callActionAndScheduleNext(nextInterval: number): Promise<void> {\r\n this.setInterval(0); // pause while the action runs\r\n await this.action();\r\n this.setInterval(nextInterval);\r\n }\r\n\r\n private onBlur(): void {\r\n if (this.isStopped) {\r\n return;\r\n }\r\n\r\n this.setInterval(this.options?.blurInterval);\r\n }\r\n\r\n private onFocus(): void {\r\n if (this.isStopped) {\r\n return;\r\n }\r\n\r\n if (this.options?.fireImmediately === FireImmediately.whenFocused) {\r\n this.callActionAndScheduleNext(this.interval);\r\n return;\r\n }\r\n\r\n this.setInterval(this.interval);\r\n }\r\n\r\n private onHidden(): void {\r\n if (this.isStopped) {\r\n return;\r\n }\r\n\r\n this.setInterval(this.options?.hiddenInterval);\r\n }\r\n\r\n private onShown(): void {\r\n if (this.isStopped) {\r\n return;\r\n }\r\n\r\n if (this.options.fireImmediately === FireImmediately.whenShown) {\r\n this.callActionAndScheduleNext(this.interval);\r\n return;\r\n }\r\n\r\n this.setInterval(this.interval);\r\n }\r\n\r\n private setInterval(interval?: number): void {\r\n if (this.$handle) {\r\n if (interval === this.currentInterval) {\r\n return;\r\n }\r\n\r\n window.clearTimeout(this.$handle);\r\n this.$handle = undefined;\r\n }\r\n\r\n if (!interval) {\r\n return;\r\n }\r\n\r\n this.$handle = window.setTimeout(() => this.callActionAndScheduleNext(interval), interval);\r\n this.currentInterval = interval;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoLocalStorageService {\r\n checkIfKeyExists(key: string): boolean {\r\n return globalThis.localStorage.getItem(key) !== null;\r\n }\r\n\r\n getItem<T>(key: string): T | undefined {\r\n const valueString = globalThis.localStorage.getItem(key);\r\n\r\n if (valueString === null) {\r\n return undefined;\r\n }\r\n\r\n const value = JSON.parse(valueString);\r\n return value;\r\n }\r\n\r\n setItem<T>(key: string, value: T): void {\r\n const valueString = JSON.stringify(value);\r\n globalThis.localStorage.setItem(key, valueString);\r\n }\r\n\r\n removeItem(key: string): void {\r\n globalThis.localStorage.removeItem(key);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChoModalService {\r\n constructor(private readonly ngbModal: NgbModal) {}\r\n\r\n public async showModal<T>(\r\n component: unknown,\r\n componentParameters?: unknown,\r\n modalOptions: NgbModalOptions = { backdrop: 'static' }\r\n ): Promise<{ result: T; componentInstance: unknown }> {\r\n const modal = this.ngbModal.open(component, modalOptions);\r\n const componentInstance = modal.componentInstance;\r\n\r\n Object.assign(componentInstance, componentParameters);\r\n\r\n let result: T;\r\n\r\n try {\r\n result = await modal.result;\r\n } catch (error) {\r\n result = null as unknown as T;\r\n if (error === undefined) {\r\n throw 'modal dismiss';\r\n }\r\n throw error;\r\n }\r\n\r\n return { result, componentInstance };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ChoRouteParamService {\r\n constructor(private readonly route: ActivatedRoute) {}\r\n\r\n public getParameterBoolean(params: Params, paramKey: string): boolean | null {\r\n const value = this.getParameterValue(params, paramKey);\r\n\r\n if (value) {\r\n return !!value;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getParameterNumber(params: Params, paramKey: string): number | null {\r\n const value = this.getParameterValue(params, paramKey);\r\n\r\n if (value) {\r\n return parseInt(value);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getParameterValue(params: Params, paramKey: string): string | null {\r\n const value = params[paramKey];\r\n return value || null;\r\n }\r\n\r\n public getQueryParameterBoolean(paramKey: string): boolean | null {\r\n return this.getParameterBoolean(this.route.snapshot.queryParams, paramKey);\r\n }\r\n\r\n public getQueryParameterNumber(paramKey: string): number | null {\r\n return this.getParameterNumber(this.route.snapshot.queryParams, paramKey);\r\n }\r\n\r\n public getQueryParameterValue(paramKey: string): string | null {\r\n return this.getParameterValue(this.route.snapshot.queryParams, paramKey);\r\n }\r\n\r\n public getRouteParameterBoolean(route: ActivatedRoute, paramKey: string): boolean | null {\r\n return this.getParameterBoolean(route.snapshot.params, paramKey);\r\n }\r\n\r\n public getRouteParameterNumber(route: ActivatedRoute, paramKey: string): number | null {\r\n return this.getParameterNumber(route.snapshot.params, paramKey);\r\n }\r\n\r\n public getRouteParameterValue(route: ActivatedRoute, paramKey: string): string | null {\r\n return this.getParameterValue(route.snapshot.params, paramKey);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChoSessionStorageService {\r\n checkIfKeyExists(key: string): boolean {\r\n return globalThis.sessionStorage.getItem(key) !== null;\r\n }\r\n\r\n getItem<T>(key: string): T | undefined {\r\n const valueString = globalThis.sessionStorage.getItem(key);\r\n\r\n if (valueString === null) {\r\n return undefined;\r\n }\r\n\r\n const value = JSON.parse(valueString);\r\n return value;\r\n }\r\n\r\n setItem<T>(key: string, value: T): void {\r\n const valueString = JSON.stringify(value);\r\n globalThis.sessionStorage.setItem(key, valueString);\r\n }\r\n\r\n removeItem(key: string): void {\r\n globalThis.sessionStorage.removeItem(key);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-cho-common\r\n */\r\nexport { CHO_COMMON_CONFIG, ChoCommonConfig } from './ngx-cho-common.config';\r\n\r\nexport { ChoAutoFocusDirective } from './lib/directives/cho-auto-focus.directive';\r\nexport { ChoFormFocusDirective } from './lib/directives/cho-form-focus.directive';\r\nexport { ChoKeyPressEnterDirective } from './lib/directives/cho-key-press-enter.directive';\r\nexport { ChoKeyPressEscapeDirective } from './lib/directives/cho-key-press-escape.directive';\r\n\r\nexport { ChoFeatureGuard } from './lib/guards/cho-feature.guard';\r\nexport { ChoUnsavedChangesGuard } from './lib/guards/cho-unsaved-changes.guard';\r\n\r\nexport { IDeactivatable } from './lib/models/deactivatable.interface';\r\n\r\nexport { IPhoneInfo } from './lib/models/phone-info.model';\r\nexport { INoteInfo } from './lib/models/note-info.model';\r\nexport { IEmailInfo } from './lib/models/email-info.model';\r\nexport { IContactInfo } from './lib/models/contact-info.model';\r\nexport { BasicSearchFilter } from './lib/models/basic-search-filter.model';\r\nexport { AppFile } from './lib/models/app-file.model';\r\nexport { IAddress } from './lib/models/address.model';\r\nexport { INote } from './lib/models/note.model';\r\nexport { Uuid } from './lib/models/uuid.model';\r\n\r\nexport { ChoActiveFilterPipe } from './lib/pipes/cho-active-filter.pipe';\r\nexport { ChoBooleanPipe } from './lib/pipes/cho-boolean.pipe';\r\nexport { ChoDatePipe } from './lib/pipes/cho-date.pipe';\r\nexport { ChoFilterPipe } from './lib/pipes/cho-filter.pipe';\r\nexport { ChoFormatKeyPipe } from './lib/pipes/cho-format-key.pipe';\r\nexport { ChoLowerKebabCasePipe } from './lib/pipes/cho-lower-kebab-case.pipe';\r\nexport { ChoSumByPipe } from './lib/pipes/cho-sum-by.pipe';\r\nexport { ChoTextFilterPipe } from './lib/pipes/cho-text-filter.pipe';\r\n\r\nexport { ChoDateService } from './lib/services/cho-date.service';\r\nexport { ChoDownloadService } from './lib/services/cho-download.service';\r\nexport { ChoErrorService } from './lib/services/cho-error.service';\r\nexport { ChoFeatureService } from './lib/services/cho-feature.service';\r\nexport {\r\n ChoIntervalService,\r\n IntervalTimer,\r\n FireImmediately,\r\n} from './lib/services/cho-interval.service';\r\nexport { ChoLocalStorageService } from './lib/services/cho-local-storage.service';\r\nexport { ChoModalService } from './lib/services/cho-modal.service';\r\nexport { ChoNavigationService } from './lib/services/cho-navigation.service';\r\nexport { ChoObjectService } from './lib/services/cho-object.service';\r\nexport { ChoRestClientService } from './lib/services/cho-rest-client.service';\r\nexport { ChoRouteParamService } from './lib/services/cho-route-param.service';\r\nexport { ChoSessionStorageService } from './lib/services/cho-session-storage.service';\r\n\r\nexport { Indexable } from './lib/types/indexable.type';\r\nexport { NameValueItem } from './lib/types/name-value-item.type';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ChoRestClientService","i1","i1.ChoFeatureService","i2.ChoNavigationService","i1.ChoObjectService"],"mappings":"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"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class ChoErrorService {
|
|
3
|
+
/**
|
|
4
|
+
* Checks if error message contains a specific string
|
|
5
|
+
*
|
|
6
|
+
* @param error
|
|
7
|
+
* @param searchString
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
contains(error: unknown, searchString: string): boolean;
|
|
3
11
|
/**
|
|
4
12
|
* Gets the message from an error object or string
|
|
5
13
|
*
|