ngx-cho-common 0.0.4 → 1.0.0
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/esm2022/lib/directives/cho-auto-focus.directive.mjs +21 -0
- package/esm2022/lib/directives/cho-form-focus.directive.mjs +40 -0
- package/esm2022/lib/directives/cho-key-press-enter.directive.mjs +28 -0
- package/esm2022/lib/directives/cho-key-press-escape.directive.mjs +28 -0
- package/esm2022/lib/guards/cho-feature.guard.mjs +32 -0
- package/esm2022/lib/guards/cho-unsaved-changes.guard.mjs +13 -0
- package/esm2022/lib/models/address.model.mjs +2 -0
- package/esm2022/lib/models/app-file.model.mjs +2 -0
- package/esm2022/lib/models/basic-search-filter.model.mjs +2 -0
- package/esm2022/lib/models/contact-info.model.mjs +2 -0
- package/esm2022/lib/models/email-info.model.mjs +2 -0
- package/esm2022/lib/models/note-info.model.mjs +2 -0
- package/esm2022/lib/models/note.model.mjs +2 -0
- package/esm2022/lib/models/phone-info.model.mjs +2 -0
- package/esm2022/lib/pipes/cho-active-filter.pipe.mjs +27 -0
- package/esm2022/lib/pipes/cho-boolean.pipe.mjs +17 -0
- package/esm2022/lib/pipes/cho-date.pipe.mjs +29 -0
- package/esm2022/lib/pipes/cho-filter.pipe.mjs +20 -0
- package/esm2022/lib/pipes/cho-format-key.pipe.mjs +23 -0
- package/esm2022/lib/pipes/cho-lower-kebab-case.pipe.mjs +21 -0
- package/esm2022/lib/pipes/cho-sum-by.pipe.mjs +17 -0
- package/esm2022/lib/pipes/cho-text-filter.pipe.mjs +30 -0
- package/esm2022/lib/services/cho-date.service.mjs +40 -0
- package/esm2022/lib/services/cho-download.service.mjs +49 -0
- package/esm2022/lib/services/cho-feature.service.mjs +67 -0
- package/esm2022/lib/services/cho-interval.service.mjs +115 -0
- package/esm2022/lib/services/cho-local-storage.service.mjs +29 -0
- package/esm2022/lib/services/cho-modal.service.mjs +34 -0
- package/esm2022/lib/services/cho-navigation.service.mjs +45 -0
- package/esm2022/lib/services/cho-object.service.mjs +33 -0
- package/esm2022/lib/services/cho-rest-client.service.mjs +136 -0
- package/esm2022/lib/services/cho-route-param.service.mjs +53 -0
- package/esm2022/lib/services/cho-session-storage.service.mjs +29 -0
- package/esm2022/public-api.mjs +26 -28
- package/fesm2022/ngx-cho-common.mjs +575 -807
- package/fesm2022/ngx-cho-common.mjs.map +1 -1
- package/lib/directives/cho-auto-focus.directive.d.ts +9 -0
- package/lib/directives/cho-form-focus.directive.d.ts +11 -0
- package/lib/directives/cho-key-press-enter.directive.d.ts +8 -0
- package/lib/directives/cho-key-press-escape.directive.d.ts +8 -0
- package/lib/guards/cho-feature.guard.d.ts +14 -0
- package/lib/guards/{unsaved-changes.guard.d.ts → cho-unsaved-changes.guard.d.ts} +3 -3
- package/lib/models/address.model.d.ts +9 -0
- package/lib/models/app-file.model.d.ts +8 -0
- package/lib/models/basic-search-filter.model.d.ts +4 -0
- package/lib/models/contact-info.model.d.ts +5 -0
- package/lib/models/email-info.model.d.ts +6 -0
- package/lib/models/note-info.model.d.ts +4 -0
- package/lib/models/note.model.d.ts +6 -0
- package/lib/models/phone-info.model.d.ts +6 -0
- package/lib/pipes/cho-active-filter.pipe.d.ts +7 -0
- package/lib/pipes/cho-boolean.pipe.d.ts +7 -0
- package/lib/pipes/cho-date.pipe.d.ts +10 -0
- package/lib/pipes/cho-filter.pipe.d.ts +7 -0
- package/lib/pipes/cho-format-key.pipe.d.ts +7 -0
- package/lib/pipes/cho-lower-kebab-case.pipe.d.ts +7 -0
- package/lib/pipes/cho-sum-by.pipe.d.ts +7 -0
- package/lib/pipes/cho-text-filter.pipe.d.ts +7 -0
- package/lib/services/{date.service.d.ts → cho-date.service.d.ts} +3 -3
- package/lib/services/{download.service.d.ts → cho-download.service.d.ts} +3 -3
- package/lib/services/{feature.service.d.ts → cho-feature.service.d.ts} +5 -5
- package/lib/services/{interval.service.d.ts → cho-interval.service.d.ts} +3 -3
- package/lib/services/{session-storage.service.d.ts → cho-local-storage.service.d.ts} +3 -3
- package/lib/services/{modal.service.d.ts → cho-modal.service.d.ts} +3 -3
- package/lib/services/{navigation.service.d.ts → cho-navigation.service.d.ts} +3 -3
- package/lib/services/{object.service.d.ts → cho-object.service.d.ts} +3 -3
- package/lib/services/{rest-client.service.d.ts → cho-rest-client.service.d.ts} +3 -3
- package/lib/services/{route-param.service.d.ts → cho-route-param.service.d.ts} +3 -3
- package/lib/services/{local-storage.service.d.ts → cho-session-storage.service.d.ts} +3 -3
- package/package.json +2 -3
- package/public-api.d.ts +33 -30
- package/esm2022/lib/guards/feature-guard.service.mjs +0 -32
- package/esm2022/lib/guards/unsaved-changes.guard.mjs +0 -13
- package/esm2022/lib/logging/console-logger.sink.mjs +0 -27
- package/esm2022/lib/logging/logger-sink-configuration.interface.mjs +0 -2
- package/esm2022/lib/logging/logger-sink.interface.mjs +0 -2
- package/esm2022/lib/logging/logger.model.mjs +0 -3
- package/esm2022/lib/logging/logger.service.mjs +0 -127
- package/esm2022/lib/logging/models/client-log-entry.interface.mjs +0 -2
- package/esm2022/lib/logging/models/severity-level.enum.mjs +0 -9
- package/esm2022/lib/logging/server-logger.sink.mjs +0 -51
- package/esm2022/lib/security/auth-callback/auth-callback.component.mjs +0 -18
- package/esm2022/lib/security/cho-security.config.mjs +0 -3
- package/esm2022/lib/security/models/auth-user.model.mjs +0 -84
- package/esm2022/lib/security/models/authorization-context.model.mjs +0 -6
- package/esm2022/lib/security/models/security-policy.model.mjs +0 -15
- package/esm2022/lib/security/services/auth-guard.service.mjs +0 -32
- package/esm2022/lib/security/services/auth.service.mjs +0 -129
- package/esm2022/lib/security/signin/signin.component.mjs +0 -18
- package/esm2022/lib/security/signout/signout.component.mjs +0 -18
- package/esm2022/lib/services/date.service.mjs +0 -40
- package/esm2022/lib/services/download.service.mjs +0 -49
- package/esm2022/lib/services/feature.service.mjs +0 -67
- package/esm2022/lib/services/interval.service.mjs +0 -115
- package/esm2022/lib/services/local-storage.service.mjs +0 -29
- package/esm2022/lib/services/modal.service.mjs +0 -34
- package/esm2022/lib/services/navigation.service.mjs +0 -45
- package/esm2022/lib/services/object.service.mjs +0 -33
- package/esm2022/lib/services/rest-client.service.mjs +0 -136
- package/esm2022/lib/services/route-param.service.mjs +0 -53
- package/esm2022/lib/services/session-storage.service.mjs +0 -29
- package/esm2022/lib/types/indexable.type.mjs +0 -2
- package/lib/guards/feature-guard.service.d.ts +0 -14
- package/lib/logging/console-logger.sink.d.ts +0 -10
- package/lib/logging/logger-sink-configuration.interface.d.ts +0 -14
- package/lib/logging/logger-sink.interface.d.ts +0 -7
- package/lib/logging/logger.model.d.ts +0 -10
- package/lib/logging/logger.service.d.ts +0 -29
- package/lib/logging/models/client-log-entry.interface.d.ts +0 -10
- package/lib/logging/models/severity-level.enum.d.ts +0 -7
- package/lib/logging/server-logger.sink.d.ts +0 -27
- package/lib/security/auth-callback/auth-callback.component.d.ts +0 -10
- package/lib/security/cho-security.config.d.ts +0 -8
- package/lib/security/models/auth-user.model.d.ts +0 -57
- package/lib/security/models/authorization-context.model.d.ts +0 -5
- package/lib/security/models/security-policy.model.d.ts +0 -9
- package/lib/security/services/auth-guard.service.d.ts +0 -12
- package/lib/security/services/auth.service.d.ts +0 -60
- package/lib/security/signin/signin.component.d.ts +0 -10
- package/lib/security/signout/signout.component.d.ts +0 -10
- package/lib/types/indexable.type.d.ts +0 -6
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// from https://stackblitz.com/edit/angular-inline-edit?file=src%2Fapp%2Fautofocus.directive.ts
|
|
2
|
+
import { Directive } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ChoAutoFocusDirective {
|
|
5
|
+
constructor(elementRef) {
|
|
6
|
+
this.elementRef = elementRef;
|
|
7
|
+
}
|
|
8
|
+
ngOnInit() {
|
|
9
|
+
this.elementRef.nativeElement.focus();
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoAutoFocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ChoAutoFocusDirective, isStandalone: true, selector: "[appChoAutoFocus]", ngImport: i0 }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoAutoFocusDirective, decorators: [{
|
|
15
|
+
type: Directive,
|
|
16
|
+
args: [{
|
|
17
|
+
selector: '[appChoAutoFocus]',
|
|
18
|
+
standalone: true,
|
|
19
|
+
}]
|
|
20
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWF1dG8tZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNoby1jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL2Noby1hdXRvLWZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrRkFBK0Y7QUFDL0YsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7O0FBTTlELE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7SUFFOUMsUUFBUTtRQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFDLENBQUM7K0dBTFEscUJBQXFCO21HQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZnJvbSBodHRwczovL3N0YWNrYmxpdHouY29tL2VkaXQvYW5ndWxhci1pbmxpbmUtZWRpdD9maWxlPXNyYyUyRmFwcCUyRmF1dG9mb2N1cy5kaXJlY3RpdmUudHNcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2FwcENob0F1dG9Gb2N1c10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENob0F1dG9Gb2N1c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// from https://timdeschryver.dev/blog/auto-focus-a-form-control-with-an-angular-directive
|
|
2
|
+
import { Directive, HostListener } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ChoFormFocusDirective {
|
|
5
|
+
constructor(element) {
|
|
6
|
+
this.element = element;
|
|
7
|
+
this.focusables = ['input', 'select', 'textarea'];
|
|
8
|
+
}
|
|
9
|
+
ngAfterViewInit() {
|
|
10
|
+
const input = this.element.nativeElement.querySelector(this.focusables.join(','));
|
|
11
|
+
if (input) {
|
|
12
|
+
input.focus();
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
// focus on first available button if no other focusable element
|
|
16
|
+
const button = this.element.nativeElement.querySelector('button');
|
|
17
|
+
if (button) {
|
|
18
|
+
button.focus();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
submit() {
|
|
22
|
+
const input = this.element.nativeElement.querySelector(this.focusables.map(x => `${x}.ng-invalid`).join(','));
|
|
23
|
+
if (input) {
|
|
24
|
+
input.focus();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoFormFocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
28
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ChoFormFocusDirective, isStandalone: true, selector: "[appChoFormFocus]", host: { listeners: { "submit": "submit()" } }, ngImport: i0 }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoFormFocusDirective, decorators: [{
|
|
31
|
+
type: Directive,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: '[appChoFormFocus]',
|
|
34
|
+
standalone: true,
|
|
35
|
+
}]
|
|
36
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { submit: [{
|
|
37
|
+
type: HostListener,
|
|
38
|
+
args: ['submit']
|
|
39
|
+
}] } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWZvcm0tZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNoby1jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL2Noby1mb3JtLWZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwRkFBMEY7QUFDMUYsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1uRixNQUFNLE9BQU8scUJBQXFCO0lBRzlCLFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFGdkMsZUFBVSxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUVILENBQUM7SUFFM0MsZUFBZTtRQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWxGLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1gsQ0FBQztRQUVELGdFQUFnRTtRQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0wsQ0FBQztJQUdELE1BQU07UUFDRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDeEQsQ0FBQztRQUNGLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNMLENBQUM7K0dBNUJRLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjsrRUFzQkcsTUFBTTtzQkFETCxZQUFZO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmcm9tIGh0dHBzOi8vdGltZGVzY2hyeXZlci5kZXYvYmxvZy9hdXRvLWZvY3VzLWEtZm9ybS1jb250cm9sLXdpdGgtYW4tYW5ndWxhci1kaXJlY3RpdmVcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2FwcENob0Zvcm1Gb2N1c10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENob0Zvcm1Gb2N1c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIGZvY3VzYWJsZXMgPSBbJ2lucHV0JywgJ3NlbGVjdCcsICd0ZXh0YXJlYSddO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5mb2N1c2FibGVzLmpvaW4oJywnKSk7XG5cbiAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZm9jdXMgb24gZmlyc3QgYXZhaWxhYmxlIGJ1dHRvbiBpZiBubyBvdGhlciBmb2N1c2FibGUgZWxlbWVudFxuICAgICAgICBjb25zdCBidXR0b24gPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdidXR0b24nKTtcbiAgICAgICAgaWYgKGJ1dHRvbikge1xuICAgICAgICAgICAgYnV0dG9uLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdzdWJtaXQnKVxuICAgIHN1Ym1pdCgpIHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgdGhpcy5mb2N1c2FibGVzLm1hcCh4ID0+IGAke3h9Lm5nLWludmFsaWRgKS5qb2luKCcsJylcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Directive, HostListener, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ChoKeyPressEnterDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.emitter = new EventEmitter();
|
|
6
|
+
}
|
|
7
|
+
keyEvent(event) {
|
|
8
|
+
if (event.key === 'Enter') {
|
|
9
|
+
this.emitter.emit();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoKeyPressEnterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ChoKeyPressEnterDirective, isStandalone: true, selector: "[appChoKeyPressEnter]", outputs: { emitter: "appKeyPressEnter" }, host: { listeners: { "window:keypress": "keyEvent($event)" } }, ngImport: i0 }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoKeyPressEnterDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{
|
|
18
|
+
selector: '[appChoKeyPressEnter]',
|
|
19
|
+
standalone: true,
|
|
20
|
+
}]
|
|
21
|
+
}], propDecorators: { emitter: [{
|
|
22
|
+
type: Output,
|
|
23
|
+
args: ['appKeyPressEnter']
|
|
24
|
+
}], keyEvent: [{
|
|
25
|
+
type: HostListener,
|
|
26
|
+
args: ['window:keypress', ['$event']]
|
|
27
|
+
}] } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWtleS1wcmVzcy1lbnRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvY2hvLWtleS1wcmVzcy1lbnRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNOUUsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQUtnQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQVE1RDtJQUxHLFFBQVEsQ0FBQyxLQUFvQjtRQUN6QixJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0wsQ0FBQzsrR0FSUSx5QkFBeUI7bUdBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBRStCLE9BQU87c0JBQWxDLE1BQU07dUJBQUMsa0JBQWtCO2dCQUcxQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXBwQ2hvS2V5UHJlc3NFbnRlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENob0tleVByZXNzRW50ZXJEaXJlY3RpdmUge1xuICAgIEBPdXRwdXQoJ2FwcEtleVByZXNzRW50ZXInKSBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleXByZXNzJywgWyckZXZlbnQnXSlcbiAgICBrZXlFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLmVtaXR0ZXIuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ChoKeyPressEscapeDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.emitter = new EventEmitter();
|
|
6
|
+
}
|
|
7
|
+
keyEvent(event) {
|
|
8
|
+
if (event.key === 'Escape') {
|
|
9
|
+
this.emitter.emit();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoKeyPressEscapeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: ChoKeyPressEscapeDirective, isStandalone: true, selector: "[appChoKeyPressEscape]", outputs: { emitter: "appKeyPressEscape" }, host: { listeners: { "window:keydown": "keyEvent($event)" } }, ngImport: i0 }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoKeyPressEscapeDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{
|
|
18
|
+
selector: '[appChoKeyPressEscape]',
|
|
19
|
+
standalone: true,
|
|
20
|
+
}]
|
|
21
|
+
}], propDecorators: { emitter: [{
|
|
22
|
+
type: Output,
|
|
23
|
+
args: ['appKeyPressEscape']
|
|
24
|
+
}], keyEvent: [{
|
|
25
|
+
type: HostListener,
|
|
26
|
+
args: ['window:keydown', ['$event']]
|
|
27
|
+
}] } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWtleS1wcmVzcy1lc2NhcGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNoby1jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL2Noby1rZXktcHJlc3MtZXNjYXBlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU05RSxNQUFNLE9BQU8sMEJBQTBCO0lBSnZDO1FBS2lDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBUTdEO0lBTEcsUUFBUSxDQUFDLEtBQW9CO1FBQ3pCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDTCxDQUFDOytHQVJRLDBCQUEwQjttR0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFFZ0MsT0FBTztzQkFBbkMsTUFBTTt1QkFBQyxtQkFBbUI7Z0JBRzNCLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1thcHBDaG9LZXlQcmVzc0VzY2FwZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENob0tleVByZXNzRXNjYXBlRGlyZWN0aXZlIHtcbiAgICBAT3V0cHV0KCdhcHBLZXlQcmVzc0VzY2FwZScpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAga2V5RXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdHRlci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../services/cho-feature.service";
|
|
4
|
+
import * as i2 from "../services/cho-navigation.service";
|
|
5
|
+
import * as i3 from "ngx-toastr";
|
|
6
|
+
export class ChoFeatureGuard {
|
|
7
|
+
constructor(featureService, navigationService, toastr) {
|
|
8
|
+
this.featureService = featureService;
|
|
9
|
+
this.navigationService = navigationService;
|
|
10
|
+
this.toastr = toastr;
|
|
11
|
+
}
|
|
12
|
+
async canActivate(route) {
|
|
13
|
+
const routeFeature = route.data['feature'];
|
|
14
|
+
if (!routeFeature) {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
await this.featureService.checkEnabledFeatures();
|
|
18
|
+
if (!this.featureService.checkFeatureIsEnabled(routeFeature)) {
|
|
19
|
+
this.toastr.error("Oops! It doesn't look like this feature has been enabled.");
|
|
20
|
+
this.navigationService.goBack();
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoFeatureGuard, deps: [{ token: i1.ChoFeatureService }, { token: i2.ChoNavigationService }, { token: i3.ToastrService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
26
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoFeatureGuard, providedIn: 'root' }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoFeatureGuard, decorators: [{
|
|
29
|
+
type: Injectable,
|
|
30
|
+
args: [{ providedIn: 'root' }]
|
|
31
|
+
}], ctorParameters: () => [{ type: i1.ChoFeatureService }, { type: i2.ChoNavigationService }, { type: i3.ToastrService }] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWZlYXR1cmUuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL2d1YXJkcy9jaG8tZmVhdHVyZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVEzQyxNQUFNLE9BQU8sZUFBZTtJQUN4QixZQUNxQixjQUFpQyxFQUNqQyxpQkFBdUMsRUFDdkMsTUFBcUI7UUFGckIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBc0I7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtJQUN2QyxDQUFDO0lBRUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUE2QjtRQUNsRCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBVyxDQUFDO1FBRXJELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFakQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1lBRS9FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVoQyxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzsrR0F6QlEsZUFBZTttSEFBZixlQUFlLGNBREYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IENob0ZlYXR1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY2hvLWZlYXR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBDaG9OYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Noby1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIENob0ZlYXR1cmVHdWFyZCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmVhdHVyZVNlcnZpY2U6IENob0ZlYXR1cmVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5hdmlnYXRpb25TZXJ2aWNlOiBDaG9OYXZpZ2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdHI6IFRvYXN0clNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgYXN5bmMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3Qgcm91dGVGZWF0dXJlID0gcm91dGUuZGF0YVsnZmVhdHVyZSddIGFzIHN0cmluZztcblxuICAgICAgICBpZiAoIXJvdXRlRmVhdHVyZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCB0aGlzLmZlYXR1cmVTZXJ2aWNlLmNoZWNrRW5hYmxlZEZlYXR1cmVzKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZlYXR1cmVTZXJ2aWNlLmNoZWNrRmVhdHVyZUlzRW5hYmxlZChyb3V0ZUZlYXR1cmUpKSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihcIk9vcHMhIEl0IGRvZXNuJ3QgbG9vayBsaWtlIHRoaXMgZmVhdHVyZSBoYXMgYmVlbiBlbmFibGVkLlwiKTtcblxuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5nb0JhY2soKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ChoUnsavedChangesGuard {
|
|
4
|
+
canDeactivate(component) {
|
|
5
|
+
return component.onDeactivate ? component.onDeactivate() : true;
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoUnsavedChangesGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
8
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoUnsavedChangesGuard }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoUnsavedChangesGuard, decorators: [{
|
|
11
|
+
type: Injectable
|
|
12
|
+
}] });
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLXVuc2F2ZWQtY2hhbmdlcy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvZ3VhcmRzL2Noby11bnNhdmVkLWNoYW5nZXMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLHNCQUFzQjtJQUkvQixhQUFhLENBQUMsU0FBeUI7UUFDbkMsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNwRSxDQUFDOytHQU5RLHNCQUFzQjttSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJRGVhY3RpdmF0YWJsZSB9IGZyb20gJy4uL21vZGVscy9kZWFjdGl2YXRhYmxlLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDaG9VbnNhdmVkQ2hhbmdlc0d1YXJkIHtcbiAgICBjb21wb25lbnQ6IElEZWFjdGl2YXRhYmxlIHwgdW5kZWZpbmVkO1xuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgdW5kZWZpbmVkO1xuXG4gICAgY2FuRGVhY3RpdmF0ZShjb21wb25lbnQ6IElEZWFjdGl2YXRhYmxlKTogT2JzZXJ2YWJsZTxib29sZWFuPiB8IFByb21pc2U8Ym9vbGVhbj4gfCBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudC5vbkRlYWN0aXZhdGUgPyBjb21wb25lbnQub25EZWFjdGl2YXRlKCkgOiB0cnVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvbW9kZWxzL2FkZHJlc3MubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUFkZHJlc3Mge1xuICAgIGFkZHJlc3NJZDogbnVtYmVyO1xuICAgIGFkZHJlc3NMaW5lMTogc3RyaW5nO1xuICAgIGFkZHJlc3NMaW5lMjogc3RyaW5nO1xuICAgIGNpdHk6IHN0cmluZztcbiAgICBzdGF0ZVByb3ZpbmNlQ29kZTogc3RyaW5nO1xuICAgIHBvc3RhbENvZGU6IHN0cmluZztcbiAgICBjb3VudHJ5UmVnaW9uQ29kZTogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWZpbGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL21vZGVscy9hcHAtZmlsZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBcHBGaWxlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIHJvd0d1aWQ6IHN0cmluZztcbiAgICBjcmVhdGVkRGF0ZVRpbWU6IHN0cmluZztcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xuICAgIGZpbGVFeHRlbnNpb246IHN0cmluZztcbiAgICBjYXB0aW9uOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtc2VhcmNoLWZpbHRlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvbW9kZWxzL2Jhc2ljLXNlYXJjaC1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQmFzaWNTZWFyY2hGaWx0ZXIge1xuICAgIHNob3dJbmFjdGl2ZTogYm9vbGVhbjtcbiAgICBzZWFyY2hUZXJtOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1pbmZvLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNoby1jb21tb24vc3JjL2xpYi9tb2RlbHMvY29udGFjdC1pbmZvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElDb250YWN0SW5mbyB7XG4gICAgY29udGFjdElkPzogbnVtYmVyO1xuICAgIGNvbnRhY3RUeXBlQ29kZT86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtaW5mby5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvbW9kZWxzL2VtYWlsLWluZm8ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUVtYWlsSW5mbyB7XG4gICAgZW1haWxUeXBlSWQ/OiBudW1iZXI7XG4gICAgZW1haWxUeXBlQ29kZT86IHN0cmluZztcbiAgICBlbWFpbEFkZHJlc3M/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1pbmZvLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNoby1jb21tb24vc3JjL2xpYi9tb2RlbHMvbm90ZS1pbmZvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElOb3RlSW5mbyB7XG4gICAgbm90ZVRleHQ6IHN0cmluZztcbiAgICBjcmVhdGVkRGF0ZVRpbWU6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvbW9kZWxzL25vdGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSU5vdGUge1xuICAgIG5vdGVUZXh0OiBzdHJpbmc7XG4gICAgbm90ZVR5cGU6IHN0cmluZztcbiAgICBjcmVhdGVkRGF0ZVRpbWU6IHN0cmluZztcbiAgICBjcmVhdGVkQnk6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtaW5mby5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvbW9kZWxzL3Bob25lLWluZm8ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVBob25lSW5mbyB7XG4gICAgcGhvbmVUeXBlSWQ/OiBudW1iZXI7XG4gICAgcGhvbmVUeXBlQ29kZT86IHN0cmluZztcbiAgICBwaG9uZU51bWJlcj86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { Pipe } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ChoActiveFilterPipe {
|
|
5
|
+
transform(value, property) {
|
|
6
|
+
if (value?.length === 0) {
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
const filteredItems = [];
|
|
10
|
+
for (const item of value) {
|
|
11
|
+
if (item[property || 'isActive']) {
|
|
12
|
+
filteredItems.push(item);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return filteredItems;
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoActiveFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
18
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ChoActiveFilterPipe, isStandalone: true, name: "choActiveFilter" }); }
|
|
19
|
+
}
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoActiveFilterPipe, decorators: [{
|
|
21
|
+
type: Pipe,
|
|
22
|
+
args: [{
|
|
23
|
+
name: 'choActiveFilter',
|
|
24
|
+
standalone: true,
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWFjdGl2ZS1maWx0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvcGlwZXMvY2hvLWFjdGl2ZS1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsU0FBUyxDQUFDLEtBQVksRUFBRSxRQUFpQjtRQUNyQyxJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFVLEVBQUUsQ0FBQztRQUVoQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUMvQixhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQzsrR0FmUSxtQkFBbUI7NkdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsaUJBQWlCO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnY2hvQWN0aXZlRmlsdGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDaG9BY3RpdmVGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnlbXSwgcHJvcGVydHk/OiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgICAgIGlmICh2YWx1ZT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKGl0ZW1bcHJvcGVydHkgfHwgJ2lzQWN0aXZlJ10pIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmlsdGVyZWRJdGVtcztcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ChoBooleanPipe {
|
|
4
|
+
transform(value) {
|
|
5
|
+
return value ? 'Yes' : 'No';
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoBooleanPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ChoBooleanPipe, isStandalone: true, name: "choBoolean" }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoBooleanPipe, decorators: [{
|
|
11
|
+
type: Pipe,
|
|
12
|
+
args: [{
|
|
13
|
+
name: 'choBoolean',
|
|
14
|
+
standalone: true,
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWJvb2xlYW4ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvcGlwZXMvY2hvLWJvb2xlYW4ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGNBQWM7SUFDdkIsU0FBUyxDQUFDLEtBQWM7UUFDcEIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7K0dBSFEsY0FBYzs2R0FBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQUoxQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxZQUFZO29CQUNsQixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAnY2hvQm9vbGVhbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hvQm9vbGVhblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHVua25vd24pOiB1bmtub3duIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID8gJ1llcycgOiAnTm8nO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class ChoDatePipe {
|
|
5
|
+
constructor(datePipe) {
|
|
6
|
+
this.datePipe = datePipe;
|
|
7
|
+
}
|
|
8
|
+
transform(value, format, timezone, locale) {
|
|
9
|
+
switch (format) {
|
|
10
|
+
case 'short':
|
|
11
|
+
format = 'MM/dd/yyyy, hh:mm a';
|
|
12
|
+
break;
|
|
13
|
+
case 'shortDate':
|
|
14
|
+
format = 'MM/dd/yyyy';
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
return this.datePipe.transform(value, format, timezone, locale);
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoDatePipe, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
20
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ChoDatePipe, isStandalone: true, name: "choDate" }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoDatePipe, decorators: [{
|
|
23
|
+
type: Pipe,
|
|
24
|
+
args: [{
|
|
25
|
+
name: 'choDate',
|
|
26
|
+
standalone: true,
|
|
27
|
+
}]
|
|
28
|
+
}], ctorParameters: () => [{ type: i1.DatePipe }] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWRhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvcGlwZXMvY2hvLWRhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBTXBELE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQW1CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBQ3pDLFNBQVMsQ0FDTCxLQUE2QixFQUM3QixNQUFlLEVBQ2YsUUFBaUIsRUFDakIsTUFBZTtRQUVmLFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDYixLQUFLLE9BQU87Z0JBQ1IsTUFBTSxHQUFHLHFCQUFxQixDQUFDO2dCQUMvQixNQUFNO1lBRVYsS0FBSyxXQUFXO2dCQUNaLE1BQU0sR0FBRyxZQUFZLENBQUM7Z0JBQ3RCLE1BQU07UUFDZCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRSxDQUFDOytHQW5CUSxXQUFXOzZHQUFYLFdBQVc7OzRGQUFYLFdBQVc7a0JBSnZCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2Nob0RhdGUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENob0RhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGVQaXBlOiBEYXRlUGlwZSkge31cbiAgICB0cmFuc2Zvcm0oXG4gICAgICAgIHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyLFxuICAgICAgICBmb3JtYXQ/OiBzdHJpbmcsXG4gICAgICAgIHRpbWV6b25lPzogc3RyaW5nLFxuICAgICAgICBsb2NhbGU/OiBzdHJpbmdcbiAgICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICAgICAgICAgIGNhc2UgJ3Nob3J0JzpcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSAnTU0vZGQveXl5eSwgaGg6bW0gYSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ3Nob3J0RGF0ZSc6XG4gICAgICAgICAgICAgICAgZm9ybWF0ID0gJ01NL2RkL3l5eXknO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCBmb3JtYXQsIHRpbWV6b25lLCBsb2NhbGUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ChoFilterPipe {
|
|
4
|
+
transform(items, callback) {
|
|
5
|
+
if (!items || !callback) {
|
|
6
|
+
return items;
|
|
7
|
+
}
|
|
8
|
+
return items.filter(item => callback(item));
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
11
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ChoFilterPipe, isStandalone: true, name: "choFilter" }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoFilterPipe, decorators: [{
|
|
14
|
+
type: Pipe,
|
|
15
|
+
args: [{
|
|
16
|
+
name: 'choFilter',
|
|
17
|
+
standalone: true,
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNoby1jb21tb24vc3JjL2xpYi9waXBlcy9jaG8tZmlsdGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFNBQVMsQ0FBQyxLQUFZLEVBQUUsUUFBZ0M7UUFDcEQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDOytHQU5RLGFBQWE7NkdBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFKekIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsV0FBVztvQkFDakIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2Nob0ZpbHRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hvRmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybShpdGVtczogYW55W10sIGNhbGxiYWNrOiAoaXRlbTogYW55KSA9PiBib29sZWFuKTogYW55IHtcbiAgICAgICAgaWYgKCFpdGVtcyB8fCAhY2FsbGJhY2spIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gY2FsbGJhY2soaXRlbSkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ChoFormatKeyPipe {
|
|
4
|
+
transform(key) {
|
|
5
|
+
let result = '';
|
|
6
|
+
const tokenized = key.split(/(?=[A-Z])/);
|
|
7
|
+
tokenized.forEach(item => {
|
|
8
|
+
const uppercase = item.charAt(0).toUpperCase() + item.slice(1);
|
|
9
|
+
result += uppercase + ' ';
|
|
10
|
+
});
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoFormatKeyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
14
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ChoFormatKeyPipe, isStandalone: true, name: "choFormatKey" }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoFormatKeyPipe, decorators: [{
|
|
17
|
+
type: Pipe,
|
|
18
|
+
args: [{
|
|
19
|
+
name: 'choFormatKey',
|
|
20
|
+
standalone: true,
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWZvcm1hdC1rZXkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvcGlwZXMvY2hvLWZvcm1hdC1rZXkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixTQUFTLENBQUMsR0FBVztRQUNqQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV6QyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRCxNQUFNLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7K0dBWFEsZ0JBQWdCOzZHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdjaG9Gb3JtYXRLZXknLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENob0Zvcm1hdEtleVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICB0cmFuc2Zvcm0oa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgICAgIGNvbnN0IHRva2VuaXplZCA9IGtleS5zcGxpdCgvKD89W0EtWl0pLyk7XG5cbiAgICAgICAgdG9rZW5pemVkLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1cHBlcmNhc2UgPSBpdGVtLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgaXRlbS5zbGljZSgxKTtcbiAgICAgICAgICAgIHJlc3VsdCArPSB1cHBlcmNhc2UgKyAnICc7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ChoLowerKebabCasePipe {
|
|
4
|
+
transform(value) {
|
|
5
|
+
//take string and convert to lower kebab case
|
|
6
|
+
return value
|
|
7
|
+
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
|
8
|
+
.replace(/\s+/g, '-')
|
|
9
|
+
.toLowerCase();
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoLowerKebabCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ChoLowerKebabCasePipe, isStandalone: true, name: "choLowerKebabCase" }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoLowerKebabCasePipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{
|
|
17
|
+
name: 'choLowerKebabCase',
|
|
18
|
+
standalone: true,
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWxvd2VyLWtlYmFiLWNhc2UucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvcGlwZXMvY2hvLWxvd2VyLWtlYmFiLWNhc2UucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixTQUFTLENBQUMsS0FBYTtRQUNuQiw2Q0FBNkM7UUFDN0MsT0FBTyxLQUFLO2FBQ1AsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQzthQUNuQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQzthQUNwQixXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDOytHQVBRLHFCQUFxQjs2R0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUpqQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdjaG9Mb3dlcktlYmFiQ2FzZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hvTG93ZXJLZWJhYkNhc2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvL3Rha2Ugc3RyaW5nIGFuZCBjb252ZXJ0IHRvIGxvd2VyIGtlYmFiIGNhc2VcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxLSQyJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXHMrL2csICctJylcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ChoSumByPipe {
|
|
4
|
+
transform(items, attr) {
|
|
5
|
+
return items.reduce((a, b) => a + (b[attr] || 0), 0);
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoSumByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ChoSumByPipe, isStandalone: true, name: "choSumBy" }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoSumByPipe, decorators: [{
|
|
11
|
+
type: Pipe,
|
|
12
|
+
args: [{
|
|
13
|
+
name: 'choSumBy',
|
|
14
|
+
standalone: true,
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLXN1bS1ieS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNoby1jb21tb24vc3JjL2xpYi9waXBlcy9jaG8tc3VtLWJ5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxZQUFZO0lBQ3JCLFNBQVMsQ0FBQyxLQUFZLEVBQUUsSUFBWTtRQUNoQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQzsrR0FIUSxZQUFZOzZHQUFaLFlBQVk7OzRGQUFaLFlBQVk7a0JBSnhCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdjaG9TdW1CeScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hvU3VtQnlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKGl0ZW1zOiBhbnlbXSwgYXR0cjogc3RyaW5nKTogYW55IHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLnJlZHVjZSgoYSwgYikgPT4gYSArIChiW2F0dHJdIHx8IDApLCAwKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ChoTextFilterPipe {
|
|
4
|
+
transform(value, filterString, properties) {
|
|
5
|
+
if (value?.length === 0 || !filterString || !properties?.length) {
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
const filteredItems = [];
|
|
9
|
+
filterString = filterString.toLowerCase();
|
|
10
|
+
for (const item of value) {
|
|
11
|
+
for (const property of properties) {
|
|
12
|
+
if (item[property] && item[property].toLowerCase().includes(filterString)) {
|
|
13
|
+
filteredItems.push(item);
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return filteredItems;
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoTextFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
21
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ChoTextFilterPipe, isStandalone: true, name: "choTextFilter" }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoTextFilterPipe, decorators: [{
|
|
24
|
+
type: Pipe,
|
|
25
|
+
args: [{
|
|
26
|
+
name: 'choTextFilter',
|
|
27
|
+
standalone: true,
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLXRleHQtZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL3BpcGVzL2Noby10ZXh0LWZpbHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFNBQVMsQ0FBQyxLQUFZLEVBQUUsWUFBdUMsRUFBRSxVQUFvQjtRQUNqRixJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzlELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBVSxFQUFFLENBQUM7UUFDaEMsWUFBWSxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUxQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztvQkFDeEUsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDekIsTUFBTTtnQkFDVixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDOytHQW5CUSxpQkFBaUI7NkdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2Nob1RleHRGaWx0ZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENob1RleHRGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBhbnlbXSwgZmlsdGVyU3RyaW5nOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLCBwcm9wZXJ0aWVzOiBzdHJpbmdbXSk6IGFueVtdIHtcbiAgICAgICAgaWYgKHZhbHVlPy5sZW5ndGggPT09IDAgfHwgIWZpbHRlclN0cmluZyB8fCAhcHJvcGVydGllcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICAgICAgICBmaWx0ZXJTdHJpbmcgPSBmaWx0ZXJTdHJpbmcudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtW3Byb3BlcnR5XSAmJiBpdGVtW3Byb3BlcnR5XS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclN0cmluZykpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmlsdGVyZWRJdGVtcztcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import moment from 'moment';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ChoDateService {
|
|
5
|
+
getMonthItems(startMonth = 1, endMonth = 12) {
|
|
6
|
+
const items = [];
|
|
7
|
+
const d = moment().startOf('year');
|
|
8
|
+
let i = startMonth;
|
|
9
|
+
while (i <= endMonth) {
|
|
10
|
+
d.set('month', i - 1);
|
|
11
|
+
items.push({ value: i, name: d.format('MMMM') });
|
|
12
|
+
i++;
|
|
13
|
+
}
|
|
14
|
+
return items;
|
|
15
|
+
}
|
|
16
|
+
getYearItems(startYear, endYear) {
|
|
17
|
+
startYear = startYear || moment().year();
|
|
18
|
+
endYear = endYear || moment().year();
|
|
19
|
+
const items = [];
|
|
20
|
+
let i = startYear;
|
|
21
|
+
while (i <= endYear) {
|
|
22
|
+
items.push({ value: i, name: i.toString() });
|
|
23
|
+
i++;
|
|
24
|
+
}
|
|
25
|
+
return items;
|
|
26
|
+
}
|
|
27
|
+
toDateString(input) {
|
|
28
|
+
return moment(input).format('yyyy-MM-DD');
|
|
29
|
+
}
|
|
30
|
+
toISOString(input) {
|
|
31
|
+
return moment(input).toISOString();
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoDateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoDateService, providedIn: 'root' }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoDateService, decorators: [{
|
|
37
|
+
type: Injectable,
|
|
38
|
+
args: [{ providedIn: 'root' }]
|
|
39
|
+
}] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWRhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jaG8tY29tbW9uL3NyYy9saWIvc2VydmljZXMvY2hvLWRhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQzs7QUFLNUIsTUFBTSxPQUFPLGNBQWM7SUFDaEIsYUFBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLEVBQUU7UUFDOUMsTUFBTSxLQUFLLEdBQTRCLEVBQUUsQ0FBQztRQUMxQyxNQUFNLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBRW5CLE9BQU8sQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakQsQ0FBQyxFQUFFLENBQUM7UUFDUixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFrQixFQUFFLE9BQWdCO1FBQ3BELFNBQVMsR0FBRyxTQUFTLElBQUksTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekMsT0FBTyxHQUFHLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVyQyxNQUFNLEtBQUssR0FBNEIsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUVsQixPQUFPLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxDQUFDLEVBQUUsQ0FBQztRQUNSLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQXlCO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQXlCO1FBQ3hDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7K0dBcENRLGNBQWM7bUhBQWQsY0FBYyxjQURELE1BQU07OzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuaW1wb3J0IHsgTmFtZVZhbHVlSXRlbSB9IGZyb20gJy4uL3R5cGVzL25hbWUtdmFsdWUtaXRlbS50eXBlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDaG9EYXRlU2VydmljZSB7XG4gICAgcHVibGljIGdldE1vbnRoSXRlbXMoc3RhcnRNb250aCA9IDEsIGVuZE1vbnRoID0gMTIpOiBOYW1lVmFsdWVJdGVtPG51bWJlcj5bXSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBOYW1lVmFsdWVJdGVtPG51bWJlcj5bXSA9IFtdO1xuICAgICAgICBjb25zdCBkID0gbW9tZW50KCkuc3RhcnRPZigneWVhcicpO1xuICAgICAgICBsZXQgaSA9IHN0YXJ0TW9udGg7XG5cbiAgICAgICAgd2hpbGUgKGkgPD0gZW5kTW9udGgpIHtcbiAgICAgICAgICAgIGQuc2V0KCdtb250aCcsIGkgLSAxKTtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goeyB2YWx1ZTogaSwgbmFtZTogZC5mb3JtYXQoJ01NTU0nKSB9KTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0WWVhckl0ZW1zKHN0YXJ0WWVhcj86IG51bWJlciwgZW5kWWVhcj86IG51bWJlcik6IE5hbWVWYWx1ZUl0ZW08bnVtYmVyPltdIHtcbiAgICAgICAgc3RhcnRZZWFyID0gc3RhcnRZZWFyIHx8IG1vbWVudCgpLnllYXIoKTtcbiAgICAgICAgZW5kWWVhciA9IGVuZFllYXIgfHwgbW9tZW50KCkueWVhcigpO1xuXG4gICAgICAgIGNvbnN0IGl0ZW1zOiBOYW1lVmFsdWVJdGVtPG51bWJlcj5bXSA9IFtdO1xuICAgICAgICBsZXQgaSA9IHN0YXJ0WWVhcjtcblxuICAgICAgICB3aGlsZSAoaSA8PSBlbmRZZWFyKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHsgdmFsdWU6IGksIG5hbWU6IGkudG9TdHJpbmcoKSB9KTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9EYXRlU3RyaW5nKGlucHV0OiBtb21lbnQuTW9tZW50SW5wdXQpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbW9tZW50KGlucHV0KS5mb3JtYXQoJ3l5eXktTU0tREQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9JU09TdHJpbmcoaW5wdXQ6IG1vbWVudC5Nb21lbnRJbnB1dCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBtb21lbnQoaW5wdXQpLnRvSVNPU3RyaW5nKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { shareReplay } from 'rxjs';
|
|
3
|
+
import { saveAs } from 'file-saver';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class ChoDownloadService {
|
|
7
|
+
constructor(httpClient) {
|
|
8
|
+
this.httpClient = httpClient;
|
|
9
|
+
this.octetStreamMime = 'application/octet-stream';
|
|
10
|
+
}
|
|
11
|
+
downloadFile(url, params) {
|
|
12
|
+
const download$ = this.httpClient
|
|
13
|
+
.get(url, {
|
|
14
|
+
responseType: 'arraybuffer',
|
|
15
|
+
observe: 'response',
|
|
16
|
+
params: params,
|
|
17
|
+
})
|
|
18
|
+
.pipe(shareReplay());
|
|
19
|
+
download$.subscribe(r => this.processDownload(r));
|
|
20
|
+
return download$;
|
|
21
|
+
}
|
|
22
|
+
processDownload(response) {
|
|
23
|
+
const filename = this.getFileNameFromResponse(response);
|
|
24
|
+
const contentType = response.headers.get('content-type') || this.octetStreamMime;
|
|
25
|
+
if (response.body) {
|
|
26
|
+
const blob = new Blob([response.body], { type: contentType });
|
|
27
|
+
saveAs(blob, filename);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
getFileNameFromResponse(response) {
|
|
31
|
+
// attempt to get from response headers
|
|
32
|
+
let fileName = response.headers.get('x-filename') || response.headers.get('filename');
|
|
33
|
+
if (!fileName) {
|
|
34
|
+
// attempt to get from content disposition
|
|
35
|
+
const disposition = response.headers.get('content-disposition');
|
|
36
|
+
if (disposition) {
|
|
37
|
+
fileName = disposition.split(';')[1].split('=')[1].replace(/"/g, '');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return fileName || 'download.bin';
|
|
41
|
+
}
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoDownloadService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
43
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoDownloadService, providedIn: 'any' }); }
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChoDownloadService, decorators: [{
|
|
46
|
+
type: Injectable,
|
|
47
|
+
args: [{ providedIn: 'any' }]
|
|
48
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvLWRvd25sb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY2hvLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Noby1kb3dubG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFHcEMsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRWxDLG9CQUFlLEdBQUcsMEJBQTBCLENBQUM7SUFGUixDQUFDO0lBSXZDLFlBQVksQ0FBQyxHQUFXLEVBQUUsTUFBbUI7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVU7YUFDNUIsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNOLFlBQVksRUFBRSxhQUFhO1lBQzNCLE9BQU8sRUFBRSxVQUFVO1lBQ25CLE1BQU0sRUFBRSxNQUFNO1NBQ2pCLENBQUM7YUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUV6QixTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxlQUFlLENBQUMsUUFBbUM7UUFDdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7UUFFakYsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUM5RCxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsUUFBbUM7UUFDL0QsdUNBQXVDO1FBQ3ZDLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXRGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNaLDBDQUEwQztZQUMxQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBRWhFLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2QsUUFBUSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekUsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLFFBQVEsSUFBSSxjQUFjLENBQUM7SUFDdEMsQ0FBQzsrR0EzQ1Esa0JBQWtCO21IQUFsQixrQkFBa0IsY0FETCxLQUFLOzs0RkFDbEIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAnYW55JyB9KVxuZXhwb3J0IGNsYXNzIENob0Rvd25sb2FkU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7fVxuXG4gICAgcHJpdmF0ZSBvY3RldFN0cmVhbU1pbWUgPSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcblxuICAgIHB1YmxpYyBkb3dubG9hZEZpbGUodXJsOiBzdHJpbmcsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxBcnJheUJ1ZmZlcj4+IHtcbiAgICAgICAgY29uc3QgZG93bmxvYWQkID0gdGhpcy5odHRwQ2xpZW50XG4gICAgICAgICAgICAuZ2V0KHVybCwge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxuICAgICAgICAgICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKHNoYXJlUmVwbGF5KCkpO1xuXG4gICAgICAgIGRvd25sb2FkJC5zdWJzY3JpYmUociA9PiB0aGlzLnByb2Nlc3NEb3dubG9hZChyKSk7XG5cbiAgICAgICAgcmV0dXJuIGRvd25sb2FkJDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEb3dubG9hZChyZXNwb25zZTogSHR0cFJlc3BvbnNlPEFycmF5QnVmZmVyPik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlbmFtZSA9IHRoaXMuZ2V0RmlsZU5hbWVGcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSB8fCB0aGlzLm9jdGV0U3RyZWFtTWltZTtcblxuICAgICAgICBpZiAocmVzcG9uc2UuYm9keSkge1xuICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZS5ib2R5XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcbiAgICAgICAgICAgIHNhdmVBcyhibG9iLCBmaWxlbmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbGVOYW1lRnJvbVJlc3BvbnNlKHJlc3BvbnNlOiBIdHRwUmVzcG9uc2U8QXJyYXlCdWZmZXI+KTogc3RyaW5nIHtcbiAgICAgICAgLy8gYXR0ZW1wdCB0byBnZXQgZnJvbSByZXNwb25zZSBoZWFkZXJzXG4gICAgICAgIGxldCBmaWxlTmFtZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LWZpbGVuYW1lJykgfHwgcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2ZpbGVuYW1lJyk7XG5cbiAgICAgICAgaWYgKCFmaWxlTmFtZSkge1xuICAgICAgICAgICAgLy8gYXR0ZW1wdCB0byBnZXQgZnJvbSBjb250ZW50IGRpc3Bvc2l0aW9uXG4gICAgICAgICAgICBjb25zdCBkaXNwb3NpdGlvbiA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LWRpc3Bvc2l0aW9uJyk7XG5cbiAgICAgICAgICAgIGlmIChkaXNwb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIGZpbGVOYW1lID0gZGlzcG9zaXRpb24uc3BsaXQoJzsnKVsxXS5zcGxpdCgnPScpWzFdLnJlcGxhY2UoL1wiL2csICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWxlTmFtZSB8fCAnZG93bmxvYWQuYmluJztcbiAgICB9XG59XG4iXX0=
|