ngx-cho-common 1.0.10 → 1.0.12

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 CHANGED
@@ -1,24 +1,78 @@
1
1
  # NgxChoCommon
2
2
 
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.0.
3
+ This library provides common utilities, models, services, and directives shared across CHO Angular applications.
4
4
 
5
- ## Code scaffolding
5
+ Generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.0.
6
6
 
7
- Run `ng generate component component-name --project ngx-cho-common` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-cho-common`.
8
- > Note: Don't forget to add `--project ngx-cho-common` or else it will be added to the default project in your `angular.json` file.
7
+ ## Overview
8
+
9
+ NgxChoCommon is a foundational library that contains:
10
+ - Common models and interfaces
11
+ - Utility services (error handling, session storage, etc.)
12
+ - Reusable directives
13
+ - Configuration interfaces
14
+ - Shared pipes and guards
15
+
16
+ ## Dependencies
17
+
18
+ This library has **no dependencies** on other workspace libraries and should be built first.
19
+
20
+ ## Installation
21
+
22
+ ```bash
23
+ npm install ngx-cho-common
24
+ ```
9
25
 
10
26
  ## Build
11
27
 
12
- Run `ng build ngx-cho-common` to build the project. The build artifacts will be stored in the `dist/` directory.
28
+ **Important**: This library should be built before any other libraries in the workspace that depend on it.
29
+
30
+ ```bash
31
+ ng build ngx-cho-common
32
+ ```
33
+
34
+ Build artifacts will be stored in the `dist/ngx-cho-common` directory.
35
+
36
+ ## Development
37
+
38
+ ### Code Scaffolding
39
+
40
+ ```bash
41
+ ng generate component component-name --project ngx-cho-common
42
+ ng generate service service-name --project ngx-cho-common
43
+ ng generate directive directive-name --project ngx-cho-common
44
+ ```
45
+
46
+ > Note: Always include `--project ngx-cho-common` or the component will be added to the default project.
47
+
48
+ ### Running Tests
49
+
50
+ ```bash
51
+ ng test ngx-cho-common
52
+ ```
13
53
 
14
54
  ## Publishing
15
55
 
16
- After building your library with `ng build ngx-cho-common`, go to the dist folder `cd dist/ngx-cho-common` and run `npm publish`.
56
+ 1. **Update version** in `projects/ngx-cho-common/package.json`
57
+ 2. **Build the library**:
58
+ ```bash
59
+ ng build ngx-cho-common --configuration production
60
+ ```
61
+ 3. **Publish to npm**:
62
+ ```bash
63
+ cd dist/ngx-cho-common
64
+ npm publish
65
+ ```
66
+
67
+ ## Usage in Other Libraries
17
68
 
18
- ## Running unit tests
69
+ Other libraries in this workspace depend on ngx-cho-common:
70
+ - ngx-cho-security
71
+ - ngx-cho-components
19
72
 
20
- Run `ng test ngx-cho-common` to execute the unit tests via [Karma](https://karma-runner.github.io).
73
+ Make sure to build ngx-cho-common first before building dependent libraries.
21
74
 
22
- ## Further help
75
+ ## Further Help
23
76
 
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
77
+ - [Angular CLI Overview and Command Reference](https://angular.io/cli)
78
+ - [Angular Library Development Guide](https://angular.io/guide/creating-libraries)
@@ -16,7 +16,7 @@ export class ChoTextFilterPipe {
16
16
  ? this.objectService.getNestedPropertyValue(item, property)
17
17
  : item[property];
18
18
  if (propertyValue &&
19
- propertyValue.toLowerCase().includes(filterString)) {
19
+ propertyValue.toString().toLowerCase().includes(filterString)) {
20
20
  return true;
21
21
  }
22
22
  }
@@ -33,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
33
33
  standalone: true,
34
34
  }]
35
35
  }], ctorParameters: () => [{ type: i1.ChoObjectService }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLXRleHQtZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL3BpcGVzL2Noby10ZXh0LWZpbHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFPcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUE2QixhQUErQjtRQUEvQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFBRyxDQUFDO0lBRWhFLFNBQVMsQ0FBQyxLQUFZLEVBQUUsWUFBdUMsRUFBRSxVQUFvQjtRQUNqRixJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzlELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTFDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QixLQUFLLE1BQU0sUUFBUSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztvQkFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztvQkFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFckIsSUFDSSxhQUFhO29CQUNiLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQ3BELENBQUM7b0JBQ0MsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUM7WUFDTCxDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTFCUSxpQkFBaUI7NkdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaG9PYmplY3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY2hvLW9iamVjdC5zZXJ2aWNlJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdjaG9UZXh0RmlsdGVyJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaG9UZXh0RmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvYmplY3RTZXJ2aWNlOiBDaG9PYmplY3RTZXJ2aWNlKSB7fVxyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55W10sIGZpbHRlclN0cmluZzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgcHJvcGVydGllczogc3RyaW5nW10pOiBhbnlbXSB7XHJcbiAgICAgICAgaWYgKHZhbHVlPy5sZW5ndGggPT09IDAgfHwgIWZpbHRlclN0cmluZyB8fCAhcHJvcGVydGllcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZpbHRlclN0cmluZyA9IGZpbHRlclN0cmluZy50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWUuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5VmFsdWUgPSBwcm9wZXJ0eS5pbmNsdWRlcygnLicpXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLm9iamVjdFNlcnZpY2UuZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZShpdGVtLCBwcm9wZXJ0eSlcclxuICAgICAgICAgICAgICAgICAgICA6IGl0ZW1bcHJvcGVydHldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVZhbHVlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlWYWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclN0cmluZylcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLXRleHQtZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL3BpcGVzL2Noby10ZXh0LWZpbHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFPcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUE2QixhQUErQjtRQUEvQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFBRyxDQUFDO0lBRWhFLFNBQVMsQ0FBQyxLQUFZLEVBQUUsWUFBdUMsRUFBRSxVQUFvQjtRQUNqRixJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzlELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTFDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QixLQUFLLE1BQU0sUUFBUSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztvQkFDeEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztvQkFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFckIsSUFDSSxhQUFhO29CQUNiLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQy9ELENBQUM7b0JBQ0MsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUM7WUFDTCxDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQTFCUSxpQkFBaUI7NkdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaG9PYmplY3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY2hvLW9iamVjdC5zZXJ2aWNlJztcclxuXHJcbkBQaXBlKHtcclxuICAgIG5hbWU6ICdjaG9UZXh0RmlsdGVyJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaG9UZXh0RmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvYmplY3RTZXJ2aWNlOiBDaG9PYmplY3RTZXJ2aWNlKSB7fVxyXG5cclxuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55W10sIGZpbHRlclN0cmluZzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgcHJvcGVydGllczogc3RyaW5nW10pOiBhbnlbXSB7XHJcbiAgICAgICAgaWYgKHZhbHVlPy5sZW5ndGggPT09IDAgfHwgIWZpbHRlclN0cmluZyB8fCAhcHJvcGVydGllcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZpbHRlclN0cmluZyA9IGZpbHRlclN0cmluZy50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWUuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5VmFsdWUgPSBwcm9wZXJ0eS5pbmNsdWRlcygnLicpXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLm9iamVjdFNlcnZpY2UuZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZShpdGVtLCBwcm9wZXJ0eSlcclxuICAgICAgICAgICAgICAgICAgICA6IGl0ZW1bcHJvcGVydHldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVZhbHVlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyU3RyaW5nKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -620,7 +620,7 @@ class ChoTextFilterPipe {
620
620
  ? this.objectService.getNestedPropertyValue(item, property)
621
621
  : item[property];
622
622
  if (propertyValue &&
623
- propertyValue.toLowerCase().includes(filterString)) {
623
+ propertyValue.toString().toLowerCase().includes(filterString)) {
624
624
  return true;
625
625
  }
626
626
  }
@@ -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 * 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
+ {"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.toString().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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-cho-common",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.0",
6
6
  "@angular/core": "^17.3.0",