ngx-cho-common 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -38,6 +38,7 @@ export class ChoNavigationService {
|
|
|
38
38
|
this.router.navigate([], {
|
|
39
39
|
queryParams: params,
|
|
40
40
|
queryParamsHandling: 'merge',
|
|
41
|
+
replaceUrl: true,
|
|
41
42
|
});
|
|
42
43
|
}
|
|
43
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoNavigationService, deps: [{ token: i1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -49,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
49
50
|
providedIn: 'root',
|
|
50
51
|
}]
|
|
51
52
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.Location }] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLW5hdmlnYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvc2VydmljZXMvY2hvLW5hdmlnYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQW9DLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFLbEYsTUFBTSxPQUFPLG9CQUFvQjtJQUc3QixZQUFvQixNQUFjLEVBQVUsUUFBa0I7UUFBMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFGdEQsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUczQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakMsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxFQUFFLENBQUMsUUFBZSxFQUFFLE1BQXlCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsOEVBQThFO0lBQ3ZFLGVBQWUsQ0FBQyxVQUFrQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0dBQWdHO0lBQ3pGLFlBQVksQ0FBQyxHQUFXLEVBQUUsT0FBWSxJQUFJO1FBQzdDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFjO1FBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNyQixXQUFXLEVBQUUsTUFBTTtZQUNuQixtQkFBbUIsRUFBRSxPQUFPO1lBQzVCLFVBQVUsRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBeENRLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07OzRGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkV4dHJhcywgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hvTmF2aWdhdGlvblNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBoaXN0b3J5OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnbyhjb21tYW5kczogYW55W10sIGV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXMpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoY29tbWFuZHMsIGV4dHJhcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdvQmFjaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdvQmFja09yRGVmYXVsdCgnLycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGJhc2VkIG9uIGh0dHBzOi8vbmlscy1tZWhsaG9ybi5kZS9wb3N0cy9hbmd1bGFyLW5hdmlnYXRlLWJhY2stcHJldmlvdXMtcGFnZVxyXG4gICAgcHVibGljIGdvQmFja09yRGVmYXVsdChkZWZhdWx0VXJsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5oaXN0b3J5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5oaXN0b3J5LnBvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGRlZmF1bHRVcmwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBiYXNlZCBvbiBodHRwczovL21lZGl1bS5jb20vYWdpbGl4L2NoYW5nZS10aGUtcm91dGUtd2l0aG91dC1yZWxvYWRpbmctaW4tYW5ndWxhci03YTRhYTgyYThkM2VcclxuICAgIHB1YmxpYyByZXBsYWNlU3RhdGUodXJsOiBzdHJpbmcsIGRhdGE6IGFueSA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoZGF0YSwgJycsIHVybCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFF1ZXJ5UGFyYW1zKHBhcmFtczogUGFyYW1zKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHBhcmFtcyxcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -350,6 +350,7 @@ class ChoNavigationService {
|
|
|
350
350
|
this.router.navigate([], {
|
|
351
351
|
queryParams: params,
|
|
352
352
|
queryParamsHandling: 'merge',
|
|
353
|
+
replaceUrl: true,
|
|
353
354
|
});
|
|
354
355
|
}
|
|
355
356
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoNavigationService, deps: [{ token: i1$1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -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 });\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) {\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) {\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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"}
|