@osovitny/anatoly 2.0.8 → 2.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/osovitny-anatoly.umd.js +549 -144
- package/bundles/osovitny-anatoly.umd.js.map +1 -1
- package/bundles/osovitny-anatoly.umd.min.js +2 -2
- package/bundles/osovitny-anatoly.umd.min.js.map +1 -1
- package/esm2015/lib/core/alerts.js +5 -1
- package/esm2015/lib/core/core.module.js +21 -5
- package/esm2015/lib/core/guards/once-import.guard.js +24 -0
- package/esm2015/lib/core/guid.js +25 -0
- package/esm2015/lib/core/index.js +23 -1
- package/esm2015/lib/core/logging/globalErrorHandler.js +42 -0
- package/esm2015/lib/core/logging/logging.service.js +38 -0
- package/esm2015/lib/core/services/appcontext.service.js +5 -1
- package/esm2015/lib/core/services/base-go.service.js +5 -1
- package/esm2015/lib/core/subs.js +34 -0
- package/esm2015/lib/core/utils.js +29 -5
- package/esm2015/lib/data/base/base-api.service.js +22 -16
- package/esm2015/lib/data/base/grid/base-grid-edit.service.js +15 -13
- package/esm2015/lib/data/base/grid/base-grid-read.service.js +16 -9
- package/esm2015/lib/data/data.module.js +11 -18
- package/esm2015/lib/data/index.js +24 -6
- package/esm2015/lib/data/services/billing-api.service.js +32 -17
- package/esm2015/lib/ui/components/base-edit.component.js +11 -7
- package/esm2015/lib/ui/components/base.component.js +12 -8
- package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +12 -9
- package/esm2015/lib/ui/components/billing/subscribe-plan-button.component.js +10 -6
- package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +11 -7
- package/esm2015/lib/ui/components/content-header/content-header.component.js +8 -4
- package/esm2015/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.js +45 -0
- package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +13 -8
- package/esm2015/lib/ui/components/html-editor/forms-html-editor.component.js +9 -6
- package/esm2015/lib/ui/components/html-editor/html-editor.component.js +10 -7
- package/esm2015/lib/ui/components/html-editor/html-editor.defaultoptions.js +75 -18
- package/esm2015/lib/ui/components/identity/signin-button.component.js +8 -4
- package/esm2015/lib/ui/components/identity/signout-button.component.js +8 -4
- package/esm2015/lib/ui/components/identity/signup-button.component.js +6 -2
- package/esm2015/lib/ui/components/validation/form-validation-summary.component.js +5 -1
- package/esm2015/lib/ui/components/validation/item-validation-summary.component.js +5 -1
- package/esm2015/lib/ui/components/validation/validation-summary.component.js +5 -1
- package/esm2015/lib/ui/index.js +20 -1
- package/esm2015/lib/ui/ui.module.js +12 -4
- package/fesm2015/osovitny-anatoly.js +555 -115
- package/fesm2015/osovitny-anatoly.js.map +1 -1
- package/lib/core/core.module.d.ts +4 -0
- package/lib/core/guards/once-import.guard.d.ts +1 -0
- package/lib/core/guid.d.ts +3 -0
- package/lib/core/index.d.ts +4 -0
- package/lib/core/logging/globalErrorHandler.d.ts +6 -0
- package/lib/core/logging/logging.service.d.ts +5 -0
- package/lib/core/subs.d.ts +8 -0
- package/lib/core/utils.d.ts +4 -2
- package/lib/data/base/base-api.service.d.ts +2 -2
- package/lib/data/base/grid/base-grid-edit.service.d.ts +3 -3
- package/lib/data/base/grid/base-grid-read.service.d.ts +2 -2
- package/lib/data/index.d.ts +5 -5
- package/lib/data/services/billing-api.service.d.ts +2 -2
- package/lib/ui/components/base-edit.component.d.ts +2 -2
- package/lib/ui/components/billing/buyaccess-button.component.d.ts +3 -3
- package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +2 -2
- package/lib/ui/components/billing/upgrade-plan-button.component.d.ts +1 -1
- package/lib/ui/components/content-header/content-header.component.d.ts +1 -1
- package/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.d.ts +5 -0
- package/lib/ui/components/html-editor/base-html-editor.component.d.ts +2 -2
- package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +1 -1
- package/lib/ui/components/html-editor/html-editor.component.d.ts +1 -1
- package/lib/ui/ui.module.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,30 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
1
|
+
import { NgModule, Optional, SkipSelf, Injector, } from "@angular/core";
|
|
2
2
|
import { CommonModule } from "@angular/common";
|
|
3
|
-
//
|
|
3
|
+
// App
|
|
4
4
|
import { AppContextService } from "./services/appcontext.service";
|
|
5
|
+
import { LoggingService } from "./logging/logging.service";
|
|
6
|
+
// Guards
|
|
7
|
+
import { throwIfAlreadyLoaded } from "./guards/once-import.guard";
|
|
8
|
+
const providers = [
|
|
9
|
+
LoggingService,
|
|
10
|
+
AppContextService,
|
|
11
|
+
];
|
|
12
|
+
export let InjectorInstance;
|
|
5
13
|
export class AnatolyCoreModule {
|
|
14
|
+
constructor(injector, parentModule) {
|
|
15
|
+
this.injector = injector;
|
|
16
|
+
throwIfAlreadyLoaded(parentModule, "AnatolyCoreModule");
|
|
17
|
+
InjectorInstance = this.injector;
|
|
18
|
+
}
|
|
6
19
|
}
|
|
7
20
|
AnatolyCoreModule.decorators = [
|
|
8
21
|
{ type: NgModule, args: [{
|
|
9
|
-
declarations: [],
|
|
10
22
|
imports: [CommonModule],
|
|
11
|
-
providers: [
|
|
23
|
+
providers: [...providers],
|
|
12
24
|
},] }
|
|
13
25
|
];
|
|
14
|
-
|
|
26
|
+
AnatolyCoreModule.ctorParameters = () => [
|
|
27
|
+
{ type: Injector },
|
|
28
|
+
{ type: AnatolyCoreModule, decorators: [{ type: Optional }, { type: SkipSelf }] }
|
|
29
|
+
];
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFFBQVEsRUFDUixRQUFRLEVBRVIsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxNQUFNO0FBQ04sT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELFNBQVM7QUFDVCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVsRSxNQUFNLFNBQVMsR0FBVTtJQUN2QixjQUFjO0lBQ2QsaUJBQWlCO0NBQ2xCLENBQUM7QUFFRixNQUFNLENBQUMsSUFBSSxnQkFBMEIsQ0FBQztBQU10QyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFlBQW9CLFFBQWtCLEVBQTBCLFlBQStCO1FBQTNFLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFeEQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUNuQyxDQUFDOzs7WUFURixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQzthQUMxQjs7O1lBckJDLFFBQVE7WUF1QnNFLGlCQUFpQix1QkFBdEQsUUFBUSxZQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIE5nTW9kdWxlLFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNraXBTZWxmLFxyXG4gIEVycm9ySGFuZGxlcixcclxuICBJbmplY3RvcixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG4vLyBBcHBcclxuaW1wb3J0IHsgQXBwQ29udGV4dFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9hcHBjb250ZXh0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTG9nZ2luZ1NlcnZpY2UgfSBmcm9tIFwiLi9sb2dnaW5nL2xvZ2dpbmcuc2VydmljZVwiO1xyXG5cclxuLy8gR3VhcmRzXHJcbmltcG9ydCB7IHRocm93SWZBbHJlYWR5TG9hZGVkIH0gZnJvbSBcIi4vZ3VhcmRzL29uY2UtaW1wb3J0Lmd1YXJkXCI7XHJcblxyXG5jb25zdCBwcm92aWRlcnM6IGFueVtdID0gW1xyXG4gIExvZ2dpbmdTZXJ2aWNlLFxyXG4gIEFwcENvbnRleHRTZXJ2aWNlLFxyXG5dO1xyXG5cclxuZXhwb3J0IGxldCBJbmplY3Rvckluc3RhbmNlOiBJbmplY3RvcjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgcHJvdmlkZXJzOiBbLi4ucHJvdmlkZXJzXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFuYXRvbHlDb3JlTW9kdWxlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcGFyZW50TW9kdWxlOiBBbmF0b2x5Q29yZU1vZHVsZSkge1xyXG4gICAgdGhyb3dJZkFscmVhZHlMb2FkZWQocGFyZW50TW9kdWxlLCBcIkFuYXRvbHlDb3JlTW9kdWxlXCIpO1xyXG5cclxuICAgIEluamVjdG9ySW5zdGFuY2UgPSB0aGlzLmluamVjdG9yO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
export function throwIfAlreadyLoaded(parentModule, moduleName) {
|
|
20
|
+
if (parentModule) {
|
|
21
|
+
throw new Error(`${moduleName} has already been loaded. Import ${moduleName} modules in the AppModule only.`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25jZS1pbXBvcnQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9ndWFyZHMvb25jZS1pbXBvcnQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFlBQWlCLEVBQUUsVUFBa0I7SUFDeEUsSUFBSSxZQUFZLEVBQUU7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLFVBQVUsb0NBQW9DLFVBQVUsaUNBQWlDLENBQzdGLENBQUM7S0FDSDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNiBKdW4gMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIwIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRocm93SWZBbHJlYWR5TG9hZGVkKHBhcmVudE1vZHVsZTogYW55LCBtb2R1bGVOYW1lOiBzdHJpbmcpIHtcclxuICBpZiAocGFyZW50TW9kdWxlKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgIGAke21vZHVsZU5hbWV9IGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkLiBJbXBvcnQgJHttb2R1bGVOYW1lfSBtb2R1bGVzIGluIHRoZSBBcHBNb2R1bGUgb25seS5gXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
import { v4 as uuidv4 } from "uuid";
|
|
20
|
+
export class Guid {
|
|
21
|
+
static newGuid() {
|
|
22
|
+
return uuidv4();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2d1aWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsTUFBTSxPQUFPLElBQUk7SUFDUixNQUFNLENBQUMsT0FBTztRQUNuQixPQUFPLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjAgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tIFwidXVpZFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEd1aWQge1xyXG4gIHB1YmxpYyBzdGF0aWMgbmV3R3VpZCgpIHtcclxuICAgIHJldHVybiB1dWlkdjQoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,8 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
1
19
|
export * from "./alerts";
|
|
2
20
|
export * from "./utils";
|
|
21
|
+
export * from "./subs";
|
|
22
|
+
export * from "./guid";
|
|
3
23
|
// Services
|
|
4
24
|
export * from "./services/base-go.service";
|
|
5
25
|
export * from "./services/appcontext.service";
|
|
26
|
+
export * from "./logging/logging.service";
|
|
27
|
+
export * from "./logging/globalErrorHandler";
|
|
6
28
|
// Module
|
|
7
29
|
export { AnatolyCoreModule } from "./core.module";
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFFBQVEsQ0FBQztBQUV2QixXQUFXO0FBQ1gsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxTQUFTO0FBQ1QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMjYgSnVuIDIwMjBcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gXCIuL2FsZXJ0c1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi91dGlsc1wiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9zdWJzXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2d1aWRcIjtcclxuXHJcbi8vIFNlcnZpY2VzXHJcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2VzL2Jhc2UtZ28uc2VydmljZVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9zZXJ2aWNlcy9hcHBjb250ZXh0LnNlcnZpY2VcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbG9nZ2luZy9sb2dnaW5nLnNlcnZpY2VcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbG9nZ2luZy9nbG9iYWxFcnJvckhhbmRsZXJcIjtcclxuXHJcbi8vIE1vZHVsZVxyXG5leHBvcnQgeyBBbmF0b2x5Q29yZU1vZHVsZSB9IGZyb20gXCIuL2NvcmUubW9kdWxlXCI7XHJcbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
/// https://medium.com/@amcdnl/global-error-handling-with-angular2-6b992bdfb59c
|
|
20
|
+
/// https://medium.com/angular-in-depth/expecting-the-unexpected-best-practices-for-error-handling-in-angular-21c3662ef9e4
|
|
21
|
+
// Node
|
|
22
|
+
import { Injectable, Injector } from "@angular/core";
|
|
23
|
+
// App
|
|
24
|
+
import { LoggingService } from "./logging.service";
|
|
25
|
+
export class GlobalErrorHandler {
|
|
26
|
+
constructor(injector) {
|
|
27
|
+
this.injector = injector;
|
|
28
|
+
}
|
|
29
|
+
handleError(error) {
|
|
30
|
+
const loggingService = this.injector.get(LoggingService);
|
|
31
|
+
loggingService.logError(error);
|
|
32
|
+
// IMPORTANT: Rethrow the error otherwise it gets swallowed
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
GlobalErrorHandler.decorators = [
|
|
37
|
+
{ type: Injectable }
|
|
38
|
+
];
|
|
39
|
+
GlobalErrorHandler.ctorParameters = () => [
|
|
40
|
+
{ type: Injector }
|
|
41
|
+
];
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsRXJyb3JIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbG9nZ2luZy9nbG9iYWxFcnJvckhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsK0VBQStFO0FBQy9FLDBIQUEwSDtBQUUxSCxPQUFPO0FBQ1AsT0FBTyxFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5FLE1BQU07QUFDTixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbkQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUUxQyxXQUFXLENBQUMsS0FBSztRQUNmLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0IsMkRBQTJEO1FBQzNELE1BQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQzs7O1lBVkYsVUFBVTs7O1lBTHdCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNiBKdW4gMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIwIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8vIGh0dHBzOi8vbWVkaXVtLmNvbS9AYW1jZG5sL2dsb2JhbC1lcnJvci1oYW5kbGluZy13aXRoLWFuZ3VsYXIyLTZiOTkyYmRmYjU5Y1xyXG4vLy8gaHR0cHM6Ly9tZWRpdW0uY29tL2FuZ3VsYXItaW4tZGVwdGgvZXhwZWN0aW5nLXRoZS11bmV4cGVjdGVkLWJlc3QtcHJhY3RpY2VzLWZvci1lcnJvci1oYW5kbGluZy1pbi1hbmd1bGFyLTIxYzM2NjJlZjllNFxyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBFcnJvckhhbmRsZXIsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIEFwcFxyXG5pbXBvcnQgeyBMb2dnaW5nU2VydmljZSB9IGZyb20gXCIuL2xvZ2dpbmcuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsRXJyb3JIYW5kbGVyIGltcGxlbWVudHMgRXJyb3JIYW5kbGVyIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cclxuXHJcbiAgaGFuZGxlRXJyb3IoZXJyb3IpIHtcclxuICAgIGNvbnN0IGxvZ2dpbmdTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoTG9nZ2luZ1NlcnZpY2UpO1xyXG4gICAgbG9nZ2luZ1NlcnZpY2UubG9nRXJyb3IoZXJyb3IpO1xyXG5cclxuICAgIC8vIElNUE9SVEFOVDogUmV0aHJvdyB0aGUgZXJyb3Igb3RoZXJ3aXNlIGl0IGdldHMgc3dhbGxvd2VkXHJcbiAgICB0aHJvdyBlcnJvcjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
// Node
|
|
20
|
+
import { Injectable } from "@angular/core";
|
|
21
|
+
import * as i0 from "@angular/core";
|
|
22
|
+
export class LoggingService {
|
|
23
|
+
constructor() { }
|
|
24
|
+
logError(error) {
|
|
25
|
+
console.error(error);
|
|
26
|
+
}
|
|
27
|
+
logInformation(info) {
|
|
28
|
+
console.info(info);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
LoggingService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LoggingService_Factory() { return new LoggingService(); }, token: LoggingService, providedIn: "root" });
|
|
32
|
+
LoggingService.decorators = [
|
|
33
|
+
{ type: Injectable, args: [{
|
|
34
|
+
providedIn: "root",
|
|
35
|
+
},] }
|
|
36
|
+
];
|
|
37
|
+
LoggingService.ctorParameters = () => [];
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvbG9nZ2luZy9sb2dnaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLGdCQUFlLENBQUM7SUFFaEIsUUFBUSxDQUFDLEtBQUs7UUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBSTtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JCLENBQUM7Ozs7WUFaRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNiBKdW4gMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIwIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2dpbmdTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGxvZ0Vycm9yKGVycm9yKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICB9XHJcblxyXG4gIGxvZ0luZm9ybWF0aW9uKGluZm8pIHtcclxuICAgIGNvbnNvbGUuaW5mbyhpbmZvKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
2
|
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
3
6
|
Authors:
|
|
4
7
|
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
5
9
|
|
|
6
10
|
Created:
|
|
7
11
|
13 Nov 2017
|
|
@@ -66,4 +70,4 @@ AppContextService.decorators = [
|
|
|
66
70
|
AppContextService.ctorParameters = () => [
|
|
67
71
|
{ type: HttpClient }
|
|
68
72
|
];
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvYXBwY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxLQUFLO0FBQ0wsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR2xFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxjQUFjO0lBS25ELFlBQXNCLElBQWdCO1FBQ3BDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURRLFNBQUksR0FBSixJQUFJLENBQVk7UUFKOUIsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixpQkFBWSxHQUFpQixJQUFJLENBQUM7UUFJeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWlCO1FBQzFCLElBQUksT0FBTyxPQUFPLElBQUksV0FBVyxFQUFFO1lBQ2pDLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQy9ELENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUMsRUFDRCxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUNWLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQUk7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDZjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFhLE1BQU8sQ0FBQyx3QkFBd0IsQ0FBQztJQUNoRCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQWEsTUFBTyxDQUFDLHFCQUFxQixDQUFDO0lBQzdDLENBQUM7OztZQXZERixVQUFVOzs7WUFORixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTMgTm92IDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgQmFzZUFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vZGF0YS9iYXNlL2Jhc2UtYXBpLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEFwcENvbnRleHRTZXJ2aWNlIGV4dGVuZHMgQmFzZUFwaVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY3VycmVudCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBzdWNjZXNzZXMgPSBbXTtcclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIHN1cGVyKGh0dHApO1xyXG4gICAgdGhpcy5iYXNlVXJsID0gXCIvYXBpL2FwcENvbnRleHRcIjtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnQoc3VjY2VzczogRnVuY3Rpb24pIHtcclxuICAgIGlmICh0eXBlb2Ygc3VjY2VzcyA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jdXJyZW50ICE9IG51bGwpIHtcclxuICAgICAgc3VjY2Vzcyh0aGlzLmN1cnJlbnQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWNjZXNzZXMucHVzaChzdWNjZXNzKTtcclxuXHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24gIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmdldChcIkdldEN1cnJlbnRDb250ZXh0XCIsIG51bGwpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLmRhdGFSZWNlaXZlZChkYXRhKTtcclxuICAgICAgfSxcclxuICAgICAgKGUpID0+IHt9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGF0YVJlY2VpdmVkKGRhdGEpIHtcclxuICAgIHRoaXMuY3VycmVudCA9IGRhdGE7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnN1Y2Nlc3Nlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgc3VjY2VzcyA9IHRoaXMuc3VjY2Vzc2VzW2ldO1xyXG4gICAgICBzdWNjZXNzKGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3VjY2Vzc2VzID0gW107XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgdGhpcy5jdXJyZW50ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIGlzVXNlclNpZ25lZEluKCkge1xyXG4gICAgcmV0dXJuICg8YW55PndpbmRvdykuX19jb250ZXh0X2lzVXNlclNpZ25lZEluO1xyXG4gIH1cclxuXHJcbiAgaXNVc2VyQWRtaW4oKSB7XHJcbiAgICByZXR1cm4gKDxhbnk+d2luZG93KS5fX2NvbnRleHRfaXNVc2VyQWRtaW47XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
2
|
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
3
6
|
Authors:
|
|
4
7
|
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
5
9
|
|
|
6
10
|
Created:
|
|
7
11
|
17 Jun 2018
|
|
@@ -31,4 +35,4 @@ BaseGoService.ctorParameters = () => [
|
|
|
31
35
|
{ type: ActivatedRoute },
|
|
32
36
|
{ type: Router }
|
|
33
37
|
];
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1nby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvc2VydmljZXMvYmFzZS1nby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUFZLEtBQXFCLEVBQUUsTUFBYztRQUMvQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYztRQUNaLHlDQUF5QztRQUNuQyxNQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLENBQUM7OztZQWJGLFVBQVU7OztZQURGLGNBQWM7WUFBRSxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgMTcgSnVuIDIwMThcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMCBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCYXNlR29TZXJ2aWNlIHtcclxuICBwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlO1xyXG4gIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcjtcclxuXHJcbiAgY29uc3RydWN0b3Iocm91dGU6IEFjdGl2YXRlZFJvdXRlLCByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgdGhpcy5yb3V0ZSA9IHJvdXRlO1xyXG4gICAgdGhpcy5yb3V0ZXIgPSByb3V0ZXI7XHJcbiAgfVxyXG5cclxuICBsb2NhdGlvblJlbG9hZCgpIHtcclxuICAgIC8vdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucm91dGUudXJsXSk7XHJcbiAgICAoPGFueT53aW5kb3cpLmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
6
|
+
Authors:
|
|
7
|
+
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
9
|
+
|
|
10
|
+
Created:
|
|
11
|
+
26 Jun 2020
|
|
12
|
+
|
|
13
|
+
Version:
|
|
14
|
+
1.0
|
|
15
|
+
|
|
16
|
+
Copyright (c) 2016-2020 Osovitny Inc. All rights reserved.
|
|
17
|
+
</file>
|
|
18
|
+
*/
|
|
19
|
+
export class Subs {
|
|
20
|
+
constructor() {
|
|
21
|
+
this.subs = [];
|
|
22
|
+
}
|
|
23
|
+
add(...subscriptions) {
|
|
24
|
+
this.subs = this.subs.concat(subscriptions);
|
|
25
|
+
}
|
|
26
|
+
set sink(subscription) {
|
|
27
|
+
this.subs.push(subscription);
|
|
28
|
+
}
|
|
29
|
+
unsubscribe() {
|
|
30
|
+
this.subs.forEach((sub) => sub && sub.unsubscribe());
|
|
31
|
+
this.subs = [];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL3N1YnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBR0YsTUFBTSxPQUFPLElBQUk7SUFHZjtRQUZRLFNBQUksR0FBbUIsRUFBRSxDQUFDO0lBRW5CLENBQUM7SUFFaEIsR0FBRyxDQUFDLEdBQUcsYUFBNkI7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsWUFBMEI7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjAgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5leHBvcnQgY2xhc3MgU3VicyB7XHJcbiAgcHJpdmF0ZSBzdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGFkZCguLi5zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSkge1xyXG4gICAgdGhpcy5zdWJzID0gdGhpcy5zdWJzLmNvbmNhdChzdWJzY3JpcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHNldCBzaW5rKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uKSB7XHJcbiAgICB0aGlzLnN1YnMucHVzaChzdWJzY3JpcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmUoKSB7XHJcbiAgICB0aGlzLnN1YnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIgJiYgc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy5zdWJzID0gW107XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/*
|
|
2
2
|
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
3
6
|
Authors:
|
|
4
7
|
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
5
9
|
|
|
6
10
|
Created:
|
|
7
|
-
|
|
11
|
+
26 Jun 2020
|
|
8
12
|
|
|
9
13
|
Version:
|
|
10
14
|
1.0
|
|
@@ -13,15 +17,35 @@
|
|
|
13
17
|
</file>
|
|
14
18
|
*/
|
|
15
19
|
export class Utils {
|
|
16
|
-
static
|
|
17
|
-
return Utils.
|
|
20
|
+
static getValueByNameInQS(name) {
|
|
21
|
+
return Utils.getValueByName(location.search, name);
|
|
18
22
|
}
|
|
19
|
-
static
|
|
23
|
+
static getValueByName(url, name) {
|
|
20
24
|
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
|
|
21
25
|
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(url);
|
|
22
26
|
return results === null
|
|
23
27
|
? ""
|
|
24
28
|
: decodeURIComponent(results[1].replace(/\+/g, " "));
|
|
25
29
|
}
|
|
30
|
+
static copyToClipBoard(event, val) {
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
let selBox = document.createElement("textarea");
|
|
33
|
+
selBox.style.position = "fixed";
|
|
34
|
+
selBox.style.left = "0";
|
|
35
|
+
selBox.style.top = "0";
|
|
36
|
+
selBox.style.opacity = "0";
|
|
37
|
+
selBox.value = val;
|
|
38
|
+
document.body.appendChild(selBox);
|
|
39
|
+
selBox.focus();
|
|
40
|
+
selBox.select();
|
|
41
|
+
document.execCommand("copy");
|
|
42
|
+
document.body.removeChild(selBox);
|
|
43
|
+
}
|
|
44
|
+
static downloadFile(name, url) {
|
|
45
|
+
var link = document.createElement("a");
|
|
46
|
+
link.download = name;
|
|
47
|
+
link.href = url;
|
|
48
|
+
link.click();
|
|
49
|
+
}
|
|
26
50
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFJRixNQUFNLE9BQU8sS0FBSztJQUNULE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJO1FBQ25DLE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJO1FBQ3BDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFELElBQUksS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsV0FBVyxDQUFDLEVBQ25ELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE9BQU8sT0FBTyxLQUFLLElBQUk7WUFDckIsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFVLEVBQUUsR0FBVztRQUNuRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdkIsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUN2QixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDM0IsTUFBTSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDbkIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDbEQsSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNiBKdW4gMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIwIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gQXBwXHJcbmltcG9ydCB7IEluamVjdG9ySW5zdGFuY2UgfSBmcm9tIFwiLi9jb3JlLm1vZHVsZVwiO1xyXG5leHBvcnQgY2xhc3MgVXRpbHMge1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VmFsdWVCeU5hbWVJblFTKG5hbWUpIHtcclxuICAgIHJldHVybiBVdGlscy5nZXRWYWx1ZUJ5TmFtZShsb2NhdGlvbi5zZWFyY2gsIG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRWYWx1ZUJ5TmFtZSh1cmwsIG5hbWUpIHtcclxuICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoL1tcXFtdLywgXCJcXFxcW1wiKS5yZXBsYWNlKC9bXFxdXS8sIFwiXFxcXF1cIik7XHJcbiAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKFwiW1xcXFw/Jl1cIiArIG5hbWUgKyBcIj0oW14mI10qKVwiKSxcclxuICAgICAgcmVzdWx0cyA9IHJlZ2V4LmV4ZWModXJsKTtcclxuICAgIHJldHVybiByZXN1bHRzID09PSBudWxsXHJcbiAgICAgID8gXCJcIlxyXG4gICAgICA6IGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzFdLnJlcGxhY2UoL1xcKy9nLCBcIiBcIikpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb3B5VG9DbGlwQm9hcmQoZXZlbnQ6IGFueSwgdmFsOiBzdHJpbmcpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgbGV0IHNlbEJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZXh0YXJlYVwiKTtcclxuICAgIHNlbEJveC5zdHlsZS5wb3NpdGlvbiA9IFwiZml4ZWRcIjtcclxuICAgIHNlbEJveC5zdHlsZS5sZWZ0ID0gXCIwXCI7XHJcbiAgICBzZWxCb3guc3R5bGUudG9wID0gXCIwXCI7XHJcbiAgICBzZWxCb3guc3R5bGUub3BhY2l0eSA9IFwiMFwiO1xyXG4gICAgc2VsQm94LnZhbHVlID0gdmFsO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzZWxCb3gpO1xyXG4gICAgc2VsQm94LmZvY3VzKCk7XHJcbiAgICBzZWxCb3guc2VsZWN0KCk7XHJcbiAgICBkb2N1bWVudC5leGVjQ29tbWFuZChcImNvcHlcIik7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNlbEJveCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGRvd25sb2FkRmlsZShuYW1lOiBzdHJpbmcsIHVybDogc3RyaW5nKSB7XHJcbiAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgbGluay5kb3dubG9hZCA9IG5hbWU7XHJcbiAgICBsaW5rLmhyZWYgPSB1cmw7XHJcbiAgICBsaW5rLmNsaWNrKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/*
|
|
2
2
|
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
3
6
|
Authors:
|
|
4
7
|
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
5
9
|
|
|
6
10
|
Created:
|
|
7
|
-
|
|
11
|
+
13 Nov 2017
|
|
8
12
|
|
|
9
13
|
Version:
|
|
10
14
|
1.0
|
|
@@ -13,52 +17,54 @@
|
|
|
13
17
|
</file>
|
|
14
18
|
*/
|
|
15
19
|
//Node
|
|
16
|
-
import { Injectable } from
|
|
17
|
-
import { HttpClient } from
|
|
18
|
-
import { map } from
|
|
20
|
+
import { Injectable } from "@angular/core";
|
|
21
|
+
import { HttpClient } from "@angular/common/http";
|
|
22
|
+
import { map } from "rxjs/operators";
|
|
19
23
|
export class BaseApiService {
|
|
20
24
|
constructor(http) {
|
|
21
25
|
this.http = http;
|
|
22
26
|
this.baseUrl = "";
|
|
23
27
|
}
|
|
24
28
|
serializeParams(data) {
|
|
25
|
-
return data ?
|
|
29
|
+
return data ? "?" + $.param(data) : "";
|
|
26
30
|
}
|
|
27
31
|
//api
|
|
28
32
|
get(action, data, responseType) {
|
|
29
33
|
if (!responseType) {
|
|
30
|
-
responseType =
|
|
34
|
+
responseType = "json";
|
|
31
35
|
}
|
|
32
36
|
var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;
|
|
33
|
-
return this.http
|
|
37
|
+
return this.http
|
|
38
|
+
.get(url, { responseType: responseType })
|
|
39
|
+
.pipe(map((res) => res));
|
|
34
40
|
}
|
|
35
41
|
post(action, data, responseType) {
|
|
36
42
|
if (!responseType) {
|
|
37
|
-
responseType =
|
|
43
|
+
responseType = "text";
|
|
38
44
|
}
|
|
39
45
|
var url = `${this.baseUrl}/${action}`;
|
|
40
46
|
return this.http.post(url, data, { responseType: responseType });
|
|
41
47
|
}
|
|
42
48
|
postQS(action, data, responseType) {
|
|
43
49
|
if (!responseType) {
|
|
44
|
-
responseType =
|
|
50
|
+
responseType = "text";
|
|
45
51
|
}
|
|
46
52
|
var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;
|
|
47
53
|
return this.http.post(url, null, { responseType: responseType });
|
|
48
54
|
}
|
|
49
55
|
delete(action, data, responseType) {
|
|
50
56
|
if (!responseType) {
|
|
51
|
-
responseType =
|
|
57
|
+
responseType = "text";
|
|
52
58
|
}
|
|
53
59
|
var url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;
|
|
54
60
|
return this.http.delete(url, { responseType: responseType });
|
|
55
61
|
}
|
|
56
62
|
//gets
|
|
57
63
|
getById(id) {
|
|
58
|
-
return this.get(
|
|
64
|
+
return this.get("getById", { id: id });
|
|
59
65
|
}
|
|
60
66
|
getAll(data) {
|
|
61
|
-
return this.get(
|
|
67
|
+
return this.get("getall", data).pipe(map((res) => res));
|
|
62
68
|
}
|
|
63
69
|
getJsonFile(fileName, jsonUrl, jsonVersion) {
|
|
64
70
|
if (!jsonUrl) {
|
|
@@ -67,12 +73,12 @@ export class BaseApiService {
|
|
|
67
73
|
if (!jsonVersion) {
|
|
68
74
|
jsonVersion = "1.0";
|
|
69
75
|
}
|
|
70
|
-
var url = jsonUrl + "/" + fileName +
|
|
71
|
-
return this.http.get(url).pipe(map(res => res));
|
|
76
|
+
var url = jsonUrl + "/" + fileName + "?" + jsonVersion;
|
|
77
|
+
return this.http.get(url).pipe(map((res) => res));
|
|
72
78
|
}
|
|
73
79
|
getNewGuid() {
|
|
74
80
|
var url = `${this.baseUrl}/getNewGuid`;
|
|
75
|
-
return this.http.get(url, { responseType:
|
|
81
|
+
return this.http.get(url, { responseType: "text" });
|
|
76
82
|
}
|
|
77
83
|
}
|
|
78
84
|
BaseApiService.decorators = [
|
|
@@ -81,4 +87,4 @@ BaseApiService.decorators = [
|
|
|
81
87
|
BaseApiService.ctorParameters = () => [
|
|
82
88
|
{ type: HttpClient }
|
|
83
89
|
];
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9kYXRhL2Jhc2UvYmFzZS1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3JDLE1BQU0sT0FBTyxjQUFjO0lBR3pCLFlBQXNCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFGNUIsWUFBTyxHQUFXLEVBQUUsQ0FBQztJQUVVLENBQUM7SUFFbEMsZUFBZSxDQUFDLElBQVU7UUFDaEMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELEtBQUs7SUFDTCxHQUFHLENBQUksTUFBYyxFQUFFLElBQVUsRUFBRSxZQUFhO1FBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsWUFBWSxHQUFHLE1BQU0sQ0FBQztTQUN2QjtRQUVELElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxDQUFDO2FBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFjLEVBQUUsSUFBVSxFQUFFLFlBQWE7UUFDNUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixZQUFZLEdBQUcsTUFBTSxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBYyxFQUFFLElBQVUsRUFBRSxZQUFhO1FBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsWUFBWSxHQUFHLE1BQU0sQ0FBQztTQUN2QjtRQUVELElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBYyxFQUFFLElBQVUsRUFBRSxZQUFhO1FBQzlDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsWUFBWSxHQUFHLE1BQU0sQ0FBQztTQUN2QjtRQUVELElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELE1BQU07SUFDTixPQUFPLENBQUksRUFBTztRQUNoQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUksU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBSSxJQUFVO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsV0FBVyxDQUNULFFBQWdCLEVBQ2hCLE9BQWdCLEVBQ2hCLFdBQW9CO1FBRXBCLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEdBQUcsYUFBYSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxHQUFHLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxRQUFRLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLGFBQWEsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7OztZQTlFRixVQUFVOzs7WUFSRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgIDEzIE5vdiAyMDE3XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjAgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbi8vUnhKc1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCYXNlQXBpU2VydmljZSB7XHJcbiAgcHJvdGVjdGVkIGJhc2VVcmw6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuICBwcml2YXRlIHNlcmlhbGl6ZVBhcmFtcyhkYXRhPzogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBkYXRhID8gXCI/XCIgKyAkLnBhcmFtKGRhdGEpIDogXCJcIjtcclxuICB9XHJcblxyXG4gIC8vYXBpXHJcbiAgZ2V0PFQ+KGFjdGlvbjogc3RyaW5nLCBkYXRhPzogYW55LCByZXNwb25zZVR5cGU/KTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICBpZiAoIXJlc3BvbnNlVHlwZSkge1xyXG4gICAgICByZXNwb25zZVR5cGUgPSBcImpzb25cIjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS8ke2FjdGlvbn0ke3RoaXMuc2VyaWFsaXplUGFyYW1zKGRhdGEpfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8VD4odXJsLCB7IHJlc3BvbnNlVHlwZTogcmVzcG9uc2VUeXBlIH0pXHJcbiAgICAgIC5waXBlKG1hcCgocmVzKSA9PiA8VD5yZXMpKTtcclxuICB9XHJcblxyXG4gIHBvc3QoYWN0aW9uOiBzdHJpbmcsIGRhdGE/OiBhbnksIHJlc3BvbnNlVHlwZT8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKCFyZXNwb25zZVR5cGUpIHtcclxuICAgICAgcmVzcG9uc2VUeXBlID0gXCJ0ZXh0XCI7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHVybCA9IGAke3RoaXMuYmFzZVVybH0vJHthY3Rpb259YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGRhdGEsIHsgcmVzcG9uc2VUeXBlOiByZXNwb25zZVR5cGUgfSk7XHJcbiAgfVxyXG5cclxuICBwb3N0UVMoYWN0aW9uOiBzdHJpbmcsIGRhdGE/OiBhbnksIHJlc3BvbnNlVHlwZT8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKCFyZXNwb25zZVR5cGUpIHtcclxuICAgICAgcmVzcG9uc2VUeXBlID0gXCJ0ZXh0XCI7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHVybCA9IGAke3RoaXMuYmFzZVVybH0vJHthY3Rpb259JHt0aGlzLnNlcmlhbGl6ZVBhcmFtcyhkYXRhKX1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgbnVsbCwgeyByZXNwb25zZVR5cGU6IHJlc3BvbnNlVHlwZSB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShhY3Rpb246IHN0cmluZywgZGF0YT86IGFueSwgcmVzcG9uc2VUeXBlPyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAoIXJlc3BvbnNlVHlwZSkge1xyXG4gICAgICByZXNwb25zZVR5cGUgPSBcInRleHRcIjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS8ke2FjdGlvbn0ke3RoaXMuc2VyaWFsaXplUGFyYW1zKGRhdGEpfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh1cmwsIHsgcmVzcG9uc2VUeXBlOiByZXNwb25zZVR5cGUgfSk7XHJcbiAgfVxyXG5cclxuICAvL2dldHNcclxuICBnZXRCeUlkPFQ+KGlkOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmdldDxUPihcImdldEJ5SWRcIiwgeyBpZDogaWQgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGw8VD4oZGF0YT86IGFueSk6IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXQoXCJnZXRhbGxcIiwgZGF0YSkucGlwZShtYXAoKHJlcykgPT4gPFRbXT5yZXMpKTtcclxuICB9XHJcblxyXG4gIGdldEpzb25GaWxlKFxyXG4gICAgZmlsZU5hbWU6IHN0cmluZyxcclxuICAgIGpzb25Vcmw/OiBzdHJpbmcsXHJcbiAgICBqc29uVmVyc2lvbj86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGlmICghanNvblVybCkge1xyXG4gICAgICBqc29uVXJsID0gXCIvZGlzdC9qc29uc1wiO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghanNvblZlcnNpb24pIHtcclxuICAgICAganNvblZlcnNpb24gPSBcIjEuMFwiO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciB1cmwgPSBqc29uVXJsICsgXCIvXCIgKyBmaWxlTmFtZSArIFwiP1wiICsganNvblZlcnNpb247XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUobWFwKChyZXMpID0+IDxhbnlbXT5yZXMpKTtcclxuICB9XHJcblxyXG4gIGdldE5ld0d1aWQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHZhciB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L2dldE5ld0d1aWRgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7IHJlc3BvbnNlVHlwZTogXCJ0ZXh0XCIgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
2
|
<file>
|
|
3
|
+
Project:
|
|
4
|
+
@osovitny/anatoly
|
|
5
|
+
|
|
3
6
|
Authors:
|
|
4
7
|
Vadim Osovitny
|
|
8
|
+
Anatoly Osovitny
|
|
5
9
|
|
|
6
10
|
Created:
|
|
7
11
|
29 Apr 2018
|
|
@@ -13,11 +17,11 @@
|
|
|
13
17
|
</file>
|
|
14
18
|
*/
|
|
15
19
|
//Node
|
|
16
|
-
import { Injectable } from
|
|
17
|
-
import { HttpClient } from
|
|
18
|
-
import { map } from
|
|
19
|
-
//App
|
|
20
|
-
import { BaseGridReadService } from
|
|
20
|
+
import { Injectable } from "@angular/core";
|
|
21
|
+
import { HttpClient } from "@angular/common/http";
|
|
22
|
+
import { map } from "rxjs/operators";
|
|
23
|
+
//App
|
|
24
|
+
import { BaseGridReadService } from "./base-grid-read.service";
|
|
21
25
|
export class BaseGridEditService extends BaseGridReadService {
|
|
22
26
|
constructor(http) {
|
|
23
27
|
super(http);
|
|
@@ -32,16 +36,15 @@ export class BaseGridEditService extends BaseGridReadService {
|
|
|
32
36
|
return;
|
|
33
37
|
}
|
|
34
38
|
//find orignal data item
|
|
35
|
-
const originalDataItem = this.data.find(item => item.Id === dataItem.Id);
|
|
39
|
+
const originalDataItem = this.data.find((item) => item.Id === dataItem.Id);
|
|
36
40
|
//revert changes
|
|
37
41
|
Object.assign(originalDataItem, dataItem);
|
|
38
42
|
super.next(this.data);
|
|
39
43
|
}
|
|
40
44
|
save(data, isNew, sucess) {
|
|
41
|
-
const action = isNew ?
|
|
45
|
+
const action = isNew ? "add" : "update";
|
|
42
46
|
this.reset();
|
|
43
|
-
this.post(action, data).subscribe(() => {
|
|
44
|
-
}, () => {
|
|
47
|
+
this.post(action, data).subscribe(() => { }, () => {
|
|
45
48
|
this.read();
|
|
46
49
|
}, () => {
|
|
47
50
|
this.read();
|
|
@@ -51,8 +54,7 @@ export class BaseGridEditService extends BaseGridReadService {
|
|
|
51
54
|
}
|
|
52
55
|
remove(data, sucess) {
|
|
53
56
|
this.reset();
|
|
54
|
-
this.post(
|
|
55
|
-
}, () => {
|
|
57
|
+
this.post("remove", data).subscribe(() => { }, () => {
|
|
56
58
|
this.read();
|
|
57
59
|
}, () => {
|
|
58
60
|
this.read();
|
|
@@ -62,7 +64,7 @@ export class BaseGridEditService extends BaseGridReadService {
|
|
|
62
64
|
}
|
|
63
65
|
post(action, data) {
|
|
64
66
|
var url = this.baseUrl + `${action}${this.serializeParams(data)}`;
|
|
65
|
-
return this.http.post(url, data).pipe(map(res => res));
|
|
67
|
+
return this.http.post(url, data).pipe(map((res) => res));
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
BaseGridEditService.decorators = [
|
|
@@ -71,4 +73,4 @@ BaseGridEditService.decorators = [
|
|
|
71
73
|
BaseGridEditService.ctorParameters = () => [
|
|
72
74
|
{ type: HttpClient }
|
|
73
75
|
];
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ncmlkLWVkaXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9kYXRhL2Jhc2UvZ3JpZC9iYXNlLWdyaWQtZWRpdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUlsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsS0FBSztBQUNMLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRy9ELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxtQkFBbUI7SUFHMUQsWUFBc0IsSUFBZ0I7UUFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRFEsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUY1QixZQUFPLEdBQVcsRUFBRSxDQUFDO0lBSS9CLENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFhO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixPQUFPO1NBQ1I7UUFFRCx3QkFBd0I7UUFDeEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFM0UsZ0JBQWdCO1FBQ2hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDMUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFTLEVBQUUsS0FBYyxFQUFFLE1BQWlCO1FBQy9DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFeEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUMvQixHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQ1IsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQyxFQUNELEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksTUFBTTtnQkFBRSxNQUFNLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBUyxFQUFFLE1BQWlCO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FDakMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUNSLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUMsRUFDRCxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLE1BQU07Z0JBQUUsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQzFCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7O1lBMURGLFVBQVU7OztZQVRGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyOSBBcHIgMjAxOFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIwIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcblxyXG4vL1J4SnNcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgQmFzZUdyaWRSZWFkU2VydmljZSB9IGZyb20gXCIuL2Jhc2UtZ3JpZC1yZWFkLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJhc2VHcmlkRWRpdFNlcnZpY2UgZXh0ZW5kcyBCYXNlR3JpZFJlYWRTZXJ2aWNlIHtcclxuICBwcm90ZWN0ZWQgYmFzZVVybDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIHN1cGVyKGh0dHApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldCgpIHtcclxuICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRJdGVtKGRhdGFJdGVtOiBhbnkpIHtcclxuICAgIGlmICghZGF0YUl0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vZmluZCBvcmlnbmFsIGRhdGEgaXRlbVxyXG4gICAgY29uc3Qgb3JpZ2luYWxEYXRhSXRlbSA9IHRoaXMuZGF0YS5maW5kKChpdGVtKSA9PiBpdGVtLklkID09PSBkYXRhSXRlbS5JZCk7XHJcblxyXG4gICAgLy9yZXZlcnQgY2hhbmdlc1xyXG4gICAgT2JqZWN0LmFzc2lnbihvcmlnaW5hbERhdGFJdGVtLCBkYXRhSXRlbSk7XHJcbiAgICBzdXBlci5uZXh0KHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICBzYXZlKGRhdGE6IGFueSwgaXNOZXc6IGJvb2xlYW4sIHN1Y2Vzcz86IEZ1bmN0aW9uKSB7XHJcbiAgICBjb25zdCBhY3Rpb24gPSBpc05ldyA/IFwiYWRkXCIgOiBcInVwZGF0ZVwiO1xyXG5cclxuICAgIHRoaXMucmVzZXQoKTtcclxuICAgIHRoaXMucG9zdChhY3Rpb24sIGRhdGEpLnN1YnNjcmliZShcclxuICAgICAgKCkgPT4ge30sXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlYWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVhZCgpO1xyXG4gICAgICAgIGlmIChzdWNlc3MpIHN1Y2VzcygpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGRhdGE6IGFueSwgc3VjZXNzPzogRnVuY3Rpb24pIHtcclxuICAgIHRoaXMucmVzZXQoKTtcclxuICAgIHRoaXMucG9zdChcInJlbW92ZVwiLCBkYXRhKS5zdWJzY3JpYmUoXHJcbiAgICAgICgpID0+IHt9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWFkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLnJlYWQoKTtcclxuICAgICAgICBpZiAoc3VjZXNzKSBzdWNlc3MoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHBvc3QoYWN0aW9uOiBhbnksIGRhdGE/OiBhbnkpOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICB2YXIgdXJsID0gdGhpcy5iYXNlVXJsICsgYCR7YWN0aW9ufSR7dGhpcy5zZXJpYWxpemVQYXJhbXMoZGF0YSl9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGRhdGEpLnBpcGUobWFwKChyZXMpID0+IDxhbnlbXT5yZXMpKTtcclxuICB9XHJcbn1cclxuIl19
|