vc-error-handlers 0.1.98 → 0.2.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/configuration.mjs +7 -0
- package/{esm2020 → esm2022}/lib/featureFlag/feature-flag.directive.mjs +27 -27
- package/esm2022/lib/featureFlag/feature-flag.module.mjs +20 -0
- package/esm2022/lib/featureFlag/feature-flag.service.mjs +98 -0
- package/{esm2020 → esm2022}/lib/shared/components/chunk-unavailable/chunk-unavailable.component.mjs +35 -35
- package/esm2022/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +65 -0
- package/{esm2020 → esm2022}/lib/shared/components/error-modal/error-modal.component.mjs +45 -45
- package/esm2022/lib/shared/components/page-not-found/page-not-found.component.mjs +92 -0
- package/esm2022/lib/shared/components/server-error/server-error.component.mjs +83 -0
- package/{esm2020 → esm2022}/lib/shared/components/session-expired/session-expired.component.mjs +35 -35
- package/esm2022/lib/shared/components/unauthorized/unauthorized.component.mjs +103 -0
- package/{esm2020 → esm2022}/lib/shared/constants/api-config.constants.mjs +239 -239
- package/{esm2020 → esm2022}/lib/shared/constants/error-handling.constants.mjs +62 -62
- package/{esm2020 → esm2022}/lib/shared/errorhandler/chunk-error.handler.mjs +18 -18
- package/{esm2020 → esm2022}/lib/shared/errorhandler/sentry-error.handler.mjs +47 -47
- package/{esm2020 → esm2022}/lib/shared/interceptors/http.interceptor.mjs +35 -35
- package/{esm2020 → esm2022}/lib/shared/services/global-error.service.mjs +115 -115
- package/{esm2020 → esm2022}/lib/shared/services/router.service.mjs +19 -19
- package/{esm2020 → esm2022}/lib/shared/services/util.service.mjs +48 -48
- package/{esm2020 → esm2022}/lib/shared/types/global-error.types.mjs +15 -15
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-config.mjs +2 -2
- package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +15 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-ref.mjs +12 -12
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.component.mjs +85 -85
- package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +21 -0
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.service.mjs +52 -52
- package/{esm2020 → esm2022}/lib/ui-kit/dialog/insertion.directive.mjs +16 -16
- package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +50 -50
- package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
- package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.service.mjs +32 -32
- package/{esm2020 → esm2022}/lib/vc-error-handlers.component.mjs +85 -85
- package/esm2022/lib/vc-error-handlers.module.mjs +84 -0
- package/{esm2020 → esm2022}/lib/vc-error-handlers.service.mjs +14 -14
- package/{esm2020 → esm2022}/public-api.mjs +16 -16
- package/{esm2020 → esm2022}/vc-error-handlers.mjs +4 -4
- package/{fesm2020 → fesm2022}/vc-error-handlers.mjs +1286 -1359
- package/fesm2022/vc-error-handlers.mjs.map +1 -0
- package/{vc-error-handlers.d.ts → index.d.ts} +5 -5
- package/lib/configuration.d.ts +5 -4
- package/lib/featureFlag/feature-flag.directive.d.ts +13 -13
- package/lib/featureFlag/feature-flag.module.d.ts +8 -8
- package/lib/featureFlag/feature-flag.service.d.ts +21 -19
- package/lib/shared/components/chunk-unavailable/chunk-unavailable.component.d.ts +20 -20
- package/lib/shared/components/component-level-server-error/component-level-server-error.component.d.ts +19 -19
- package/lib/shared/components/error-modal/error-modal.component.d.ts +21 -21
- package/lib/shared/components/page-not-found/page-not-found.component.d.ts +23 -23
- package/lib/shared/components/server-error/server-error.component.d.ts +19 -19
- package/lib/shared/components/session-expired/session-expired.component.d.ts +20 -20
- package/lib/shared/components/unauthorized/unauthorized.component.d.ts +23 -23
- package/lib/shared/constants/api-config.constants.d.ts +20 -20
- package/lib/shared/constants/error-handling.constants.d.ts +62 -62
- package/lib/shared/errorhandler/chunk-error.handler.d.ts +7 -7
- package/lib/shared/errorhandler/sentry-error.handler.d.ts +14 -14
- package/lib/shared/interceptors/http.interceptor.d.ts +13 -13
- package/lib/shared/services/global-error.service.d.ts +31 -31
- package/lib/shared/services/router.service.d.ts +6 -6
- package/lib/shared/services/util.service.d.ts +15 -15
- package/lib/shared/types/global-error.types.d.ts +27 -27
- package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
- package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
- package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
- package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
- package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
- package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +20 -20
- package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
- package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +11 -11
- package/lib/vc-error-handlers.component.d.ts +26 -26
- package/lib/vc-error-handlers.module.d.ts +26 -26
- package/lib/vc-error-handlers.service.d.ts +6 -6
- package/package.json +7 -13
- package/public-api.d.ts +13 -13
- package/environments/environment.d.ts +0 -39
- package/esm2020/environments/environment.mjs +0 -75
- package/esm2020/lib/configuration.mjs +0 -6
- package/esm2020/lib/featureFlag/feature-flag.module.mjs +0 -22
- package/esm2020/lib/featureFlag/feature-flag.service.mjs +0 -95
- package/esm2020/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +0 -64
- package/esm2020/lib/shared/components/page-not-found/page-not-found.component.mjs +0 -91
- package/esm2020/lib/shared/components/server-error/server-error.component.mjs +0 -82
- package/esm2020/lib/shared/components/unauthorized/unauthorized.component.mjs +0 -102
- package/esm2020/lib/ui-kit/dialog/dialog-injector.mjs +0 -15
- package/esm2020/lib/ui-kit/dialog/dialog.module.mjs +0 -21
- package/esm2020/lib/ui-kit/snack-bar/snack-bar.module.mjs +0 -18
- package/esm2020/lib/vc-error-handlers.module.mjs +0 -84
- package/fesm2015/vc-error-handlers.mjs +0 -1679
- package/fesm2015/vc-error-handlers.mjs.map +0 -1
- package/fesm2020/vc-error-handlers.mjs.map +0 -1
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class UtilsService {
|
|
4
|
-
isJsonSubset(parentJson, subsetJson) {
|
|
5
|
-
for (let key in subsetJson) {
|
|
6
|
-
if (!parentJson.hasOwnProperty(key) ||
|
|
7
|
-
parentJson[key] !== subsetJson[key]) {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
extractQueryParams(params) {
|
|
14
|
-
const query = {};
|
|
15
|
-
params.keys().forEach((key) => {
|
|
16
|
-
query[key] = params.get(key);
|
|
17
|
-
});
|
|
18
|
-
return query;
|
|
19
|
-
}
|
|
20
|
-
isStringEqual(apiMethod, requestMethod) {
|
|
21
|
-
return apiMethod === requestMethod;
|
|
22
|
-
}
|
|
23
|
-
isSubstringInString(apiPath, requestPath) {
|
|
24
|
-
return requestPath.includes(apiPath);
|
|
25
|
-
}
|
|
26
|
-
isSubsetOfObject(apiQuery, requestQuery) {
|
|
27
|
-
if (!apiQuery)
|
|
28
|
-
return true;
|
|
29
|
-
return this.isJsonSubset(requestQuery, apiQuery);
|
|
30
|
-
}
|
|
31
|
-
isSubsetOfArray(apiBody, requestBody) {
|
|
32
|
-
if (!apiBody)
|
|
33
|
-
return true;
|
|
34
|
-
return this.isJsonSubset(apiBody, requestBody);
|
|
35
|
-
}
|
|
36
|
-
isValueInArray(apiPageCodes, pageCode) {
|
|
37
|
-
return apiPageCodes.includes(pageCode);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
43
|
-
type: Injectable,
|
|
44
|
-
args: [{
|
|
45
|
-
providedIn: 'root',
|
|
46
|
-
}]
|
|
47
|
-
}] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class UtilsService {
|
|
4
|
+
isJsonSubset(parentJson, subsetJson) {
|
|
5
|
+
for (let key in subsetJson) {
|
|
6
|
+
if (!parentJson.hasOwnProperty(key) ||
|
|
7
|
+
parentJson[key] !== subsetJson[key]) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
extractQueryParams(params) {
|
|
14
|
+
const query = {};
|
|
15
|
+
params.keys().forEach((key) => {
|
|
16
|
+
query[key] = params.get(key);
|
|
17
|
+
});
|
|
18
|
+
return query;
|
|
19
|
+
}
|
|
20
|
+
isStringEqual(apiMethod, requestMethod) {
|
|
21
|
+
return apiMethod === requestMethod;
|
|
22
|
+
}
|
|
23
|
+
isSubstringInString(apiPath, requestPath) {
|
|
24
|
+
return requestPath.includes(apiPath);
|
|
25
|
+
}
|
|
26
|
+
isSubsetOfObject(apiQuery, requestQuery) {
|
|
27
|
+
if (!apiQuery)
|
|
28
|
+
return true;
|
|
29
|
+
return this.isJsonSubset(requestQuery, apiQuery);
|
|
30
|
+
}
|
|
31
|
+
isSubsetOfArray(apiBody, requestBody) {
|
|
32
|
+
if (!apiBody)
|
|
33
|
+
return true;
|
|
34
|
+
return this.isJsonSubset(apiBody, requestBody);
|
|
35
|
+
}
|
|
36
|
+
isValueInArray(apiPageCodes, pageCode) {
|
|
37
|
+
return apiPageCodes.includes(pageCode);
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
40
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UtilsService, providedIn: 'root' }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UtilsService, decorators: [{
|
|
43
|
+
type: Injectable,
|
|
44
|
+
args: [{
|
|
45
|
+
providedIn: 'root',
|
|
46
|
+
}]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtZXJyb3ItaGFuZGxlcnMvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvdXRpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzNDLE1BQU0sT0FBTyxZQUFZO0lBQ2YsWUFBWSxDQUFDLFVBQWUsRUFBRSxVQUFlO1FBQ25ELEtBQUssSUFBSSxHQUFHLElBQUksVUFBVSxFQUFFO1lBQzFCLElBQ0UsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztnQkFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFDbkM7Z0JBQ0EsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsTUFBa0I7UUFDMUMsTUFBTSxLQUFLLEdBQTJCLEVBQUUsQ0FBQztRQUN6QyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxhQUFhLENBQUMsU0FBaUIsRUFBRSxhQUFxQjtRQUMzRCxPQUFPLFNBQVMsS0FBSyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE9BQWUsRUFBRSxXQUFtQjtRQUM3RCxPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFFBQWEsRUFBRSxZQUFpQjtRQUN0RCxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxPQUFZLEVBQUUsV0FBZ0I7UUFDbkQsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxjQUFjLENBQUMsWUFBc0IsRUFBRSxRQUFnQjtRQUM1RCxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQzsrR0F6Q1UsWUFBWTttSEFBWixZQUFZLGNBRlgsTUFBTTs7NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBSZXF1ZXN0RGV0YWlscyB9IGZyb20gJy4uL3R5cGVzL2dsb2JhbC1lcnJvci50eXBlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIHtcclxuICBwcml2YXRlIGlzSnNvblN1YnNldChwYXJlbnRKc29uOiBhbnksIHN1YnNldEpzb246IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgZm9yIChsZXQga2V5IGluIHN1YnNldEpzb24pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICFwYXJlbnRKc29uLmhhc093blByb3BlcnR5KGtleSkgfHxcclxuICAgICAgICBwYXJlbnRKc29uW2tleV0gIT09IHN1YnNldEpzb25ba2V5XVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4dHJhY3RRdWVyeVBhcmFtcyhwYXJhbXM6IEh0dHBQYXJhbXMpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcclxuICAgIGNvbnN0IHF1ZXJ5OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICBwYXJhbXMua2V5cygpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICBxdWVyeVtrZXldID0gcGFyYW1zLmdldChrZXkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcXVlcnk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTdHJpbmdFcXVhbChhcGlNZXRob2Q6IHN0cmluZywgcmVxdWVzdE1ldGhvZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYXBpTWV0aG9kID09PSByZXF1ZXN0TWV0aG9kO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzU3Vic3RyaW5nSW5TdHJpbmcoYXBpUGF0aDogc3RyaW5nLCByZXF1ZXN0UGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gcmVxdWVzdFBhdGguaW5jbHVkZXMoYXBpUGF0aCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTdWJzZXRPZk9iamVjdChhcGlRdWVyeTogYW55LCByZXF1ZXN0UXVlcnk6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFhcGlRdWVyeSkgcmV0dXJuIHRydWU7XHJcbiAgICByZXR1cm4gdGhpcy5pc0pzb25TdWJzZXQocmVxdWVzdFF1ZXJ5LCBhcGlRdWVyeSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTdWJzZXRPZkFycmF5KGFwaUJvZHk6IGFueSwgcmVxdWVzdEJvZHk6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFhcGlCb2R5KSByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLmlzSnNvblN1YnNldChhcGlCb2R5LCByZXF1ZXN0Qm9keSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNWYWx1ZUluQXJyYXkoYXBpUGFnZUNvZGVzOiBzdHJpbmdbXSwgcGFnZUNvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGFwaVBhZ2VDb2Rlcy5pbmNsdWRlcyhwYWdlQ29kZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export var ErrorStatusCode;
|
|
2
|
-
(function (ErrorStatusCode) {
|
|
3
|
-
ErrorStatusCode[ErrorStatusCode["URLNotFound"] = 404] = "URLNotFound";
|
|
4
|
-
ErrorStatusCode[ErrorStatusCode["UnauthorizedAccess"] = 403] = "UnauthorizedAccess";
|
|
5
|
-
ErrorStatusCode[ErrorStatusCode["Unauthenticated"] = 401] = "Unauthenticated";
|
|
6
|
-
// Server-side errors
|
|
7
|
-
ErrorStatusCode[ErrorStatusCode["InternalServerError"] = 500] = "InternalServerError";
|
|
8
|
-
ErrorStatusCode[ErrorStatusCode["ServiceUnavailable"] = 503] = "ServiceUnavailable";
|
|
9
|
-
ErrorStatusCode[ErrorStatusCode["BadGateway"] = 502] = "BadGateway";
|
|
10
|
-
ErrorStatusCode[ErrorStatusCode["RequestTimeout"] = 504] = "RequestTimeout";
|
|
11
|
-
// Network unavailability/offline case
|
|
12
|
-
ErrorStatusCode[ErrorStatusCode["NetworkUnavailable"] = 0] = "NetworkUnavailable";
|
|
13
|
-
// Application-specific errors
|
|
14
|
-
ErrorStatusCode[ErrorStatusCode["JSChunkUnavailable"] = 600] = "JSChunkUnavailable";
|
|
15
|
-
})(ErrorStatusCode || (ErrorStatusCode = {}));
|
|
1
|
+
export var ErrorStatusCode;
|
|
2
|
+
(function (ErrorStatusCode) {
|
|
3
|
+
ErrorStatusCode[ErrorStatusCode["URLNotFound"] = 404] = "URLNotFound";
|
|
4
|
+
ErrorStatusCode[ErrorStatusCode["UnauthorizedAccess"] = 403] = "UnauthorizedAccess";
|
|
5
|
+
ErrorStatusCode[ErrorStatusCode["Unauthenticated"] = 401] = "Unauthenticated";
|
|
6
|
+
// Server-side errors
|
|
7
|
+
ErrorStatusCode[ErrorStatusCode["InternalServerError"] = 500] = "InternalServerError";
|
|
8
|
+
ErrorStatusCode[ErrorStatusCode["ServiceUnavailable"] = 503] = "ServiceUnavailable";
|
|
9
|
+
ErrorStatusCode[ErrorStatusCode["BadGateway"] = 502] = "BadGateway";
|
|
10
|
+
ErrorStatusCode[ErrorStatusCode["RequestTimeout"] = 504] = "RequestTimeout";
|
|
11
|
+
// Network unavailability/offline case
|
|
12
|
+
ErrorStatusCode[ErrorStatusCode["NetworkUnavailable"] = 0] = "NetworkUnavailable";
|
|
13
|
+
// Application-specific errors
|
|
14
|
+
ErrorStatusCode[ErrorStatusCode["JSChunkUnavailable"] = 600] = "JSChunkUnavailable";
|
|
15
|
+
})(ErrorStatusCode || (ErrorStatusCode = {}));
|
|
16
16
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWVycm9yLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtZXJyb3ItaGFuZGxlcnMvc3JjL2xpYi9zaGFyZWQvdHlwZXMvZ2xvYmFsLWVycm9yLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCQSxNQUFNLENBQU4sSUFBWSxlQWdCWDtBQWhCRCxXQUFZLGVBQWU7SUFDekIscUVBQWlCLENBQUE7SUFDakIsbUZBQXdCLENBQUE7SUFDeEIsNkVBQXFCLENBQUE7SUFFckIscUJBQXFCO0lBQ3JCLHFGQUF5QixDQUFBO0lBQ3pCLG1GQUF3QixDQUFBO0lBQ3hCLG1FQUFnQixDQUFBO0lBQ2hCLDJFQUFvQixDQUFBO0lBRXBCLHNDQUFzQztJQUN0QyxpRkFBc0IsQ0FBQTtJQUV0Qiw4QkFBOEI7SUFDOUIsbUZBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQWhCVyxlQUFlLEtBQWYsZUFBZSxRQWdCMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNT0RBTF9FUlJPUl9UWVBFUyB9IGZyb20gJy4uL2NvbnN0YW50cy9lcnJvci1oYW5kbGluZy5jb25zdGFudHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dEYXRhIHtcclxuICBoZWFkaW5nOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBidXR0b25UZXh0OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdERldGFpbHMge1xyXG4gIG1ldGhvZDogc3RyaW5nO1xyXG4gIHBhdGg6IHN0cmluZztcclxuICBxdWVyeTogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxuICBib2R5OiBhbnk7XHJcbiAgcGFnZUNvZGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEVycm9yU3RhdHVzQ29kZSB7XHJcbiAgVVJMTm90Rm91bmQgPSA0MDQsXHJcbiAgVW5hdXRob3JpemVkQWNjZXNzID0gNDAzLFxyXG4gIFVuYXV0aGVudGljYXRlZCA9IDQwMSxcclxuXHJcbiAgLy8gU2VydmVyLXNpZGUgZXJyb3JzXHJcbiAgSW50ZXJuYWxTZXJ2ZXJFcnJvciA9IDUwMCxcclxuICBTZXJ2aWNlVW5hdmFpbGFibGUgPSA1MDMsXHJcbiAgQmFkR2F0ZXdheSA9IDUwMixcclxuICBSZXF1ZXN0VGltZW91dCA9IDUwNCxcclxuXHJcbiAgLy8gTmV0d29yayB1bmF2YWlsYWJpbGl0eS9vZmZsaW5lIGNhc2VcclxuICBOZXR3b3JrVW5hdmFpbGFibGUgPSAwLFxyXG5cclxuICAvLyBBcHBsaWNhdGlvbi1zcGVjaWZpYyBlcnJvcnNcclxuICBKU0NodW5rVW5hdmFpbGFibGUgPSA2MDAsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE1vZGFsRXJyb3JUeXBlID0ga2V5b2YgdHlwZW9mIE1PREFMX0VSUk9SX1RZUEVTO1xyXG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export class DialogConfig {
|
|
2
|
-
}
|
|
1
|
+
export class DialogConfig {
|
|
2
|
+
}
|
|
3
3
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvdWkta2l0L2RpYWxvZy9kaWFsb2ctY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxZQUFZO0NBS3hCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERpYWxvZ0NvbmZpZzxEID0gYW55PiB7XHJcbiAgZGF0YT86IEQ7XHJcbiAgcG9zaXRpb24/OiBhbnk7XHJcbiAgYmFja2dyb3VuZD86IGFueTtcclxuICBwb2ludGVyPzogYW55O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class DialogInjector {
|
|
2
|
+
constructor(parentDialogInjector, dialogAdditionalTokens) {
|
|
3
|
+
this.parentDialogInjector = parentDialogInjector;
|
|
4
|
+
this.dialogAdditionalTokens = dialogAdditionalTokens;
|
|
5
|
+
}
|
|
6
|
+
// get(token: any, notFoundValue?: any){return; }
|
|
7
|
+
get(token, notFoundValue) {
|
|
8
|
+
const value = this.dialogAdditionalTokens.get(token);
|
|
9
|
+
if (value) {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
return this.parentDialogInjector.get(token, notFoundValue);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWluamVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtZXJyb3ItaGFuZGxlcnMvc3JjL2xpYi91aS1raXQvZGlhbG9nL2RpYWxvZy1pbmplY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFvQixvQkFBOEIsRUFBVSxzQkFBeUM7UUFBakYseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFVO1FBQVUsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFtQjtJQUFHLENBQUM7SUFHekcsaURBQWlEO0lBQ2pELEdBQUcsQ0FBQyxLQUFVLEVBQUUsYUFBbUI7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQU0sS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBUeXBlLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0RmxhZ3MgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dJbmplY3RvciBpbXBsZW1lbnRzIEluamVjdG9yIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudERpYWxvZ0luamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBkaWFsb2dBZGRpdGlvbmFsVG9rZW5zOiBXZWFrTWFwPGFueSwgYW55Pikge31cclxuXHJcbiAgZ2V0PFQ+KHRva2VuOiBUeXBlPFQ+IHwgSW5qZWN0aW9uVG9rZW48VD4sIG5vdEZvdW5kVmFsdWU/OiBUKTogVDtcclxuICAvLyBnZXQodG9rZW46IGFueSwgbm90Rm91bmRWYWx1ZT86IGFueSl7cmV0dXJuOyB9XHJcbiAgZ2V0KHRva2VuOiBhbnksIG5vdEZvdW5kVmFsdWU/OiBhbnkpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5kaWFsb2dBZGRpdGlvbmFsVG9rZW5zLmdldCh0b2tlbik7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucGFyZW50RGlhbG9nSW5qZWN0b3IuZ2V0PGFueT4odG9rZW4sIG5vdEZvdW5kVmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Subject } from 'rxjs';
|
|
2
|
-
export class DialogRef {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.afterDialogClosed = new Subject();
|
|
5
|
-
this.afterClosed = this.afterDialogClosed.asObservable();
|
|
6
|
-
}
|
|
7
|
-
close(result) {
|
|
8
|
-
// debugger
|
|
9
|
-
this.afterDialogClosed.next(result);
|
|
10
|
-
document.body.style.overflow = 'auto';
|
|
11
|
-
}
|
|
12
|
-
}
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
export class DialogRef {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.afterDialogClosed = new Subject();
|
|
5
|
+
this.afterClosed = this.afterDialogClosed.asObservable();
|
|
6
|
+
}
|
|
7
|
+
close(result) {
|
|
8
|
+
// debugger
|
|
9
|
+
this.afterDialogClosed.next(result);
|
|
10
|
+
document.body.style.overflow = 'auto';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
13
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvdWkta2l0L2RpYWxvZy9kaWFsb2ctcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0MsTUFBTSxPQUFPLFNBQVM7SUFHcEI7UUFGaUIsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUN4RCxnQkFBVyxHQUFvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVoQixLQUFLLENBQUMsTUFBWTtRQUNoQixXQUFXO1FBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dSZWYge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYWZ0ZXJEaWFsb2dDbG9zZWQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgYWZ0ZXJDbG9zZWQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuYWZ0ZXJEaWFsb2dDbG9zZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBjbG9zZShyZXN1bHQ/OiBhbnkpIHtcclxuICAgIC8vIGRlYnVnZ2VyXHJcbiAgICB0aGlzLmFmdGVyRGlhbG9nQ2xvc2VkLm5leHQocmVzdWx0KTtcclxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { InsertionDirective } from './insertion.directive';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { NavigationEnd, NavigationError, NavigationStart } from '@angular/router';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./dialog-ref";
|
|
7
|
-
import * as i2 from "./dialog-config";
|
|
8
|
-
import * as i3 from "@angular/router";
|
|
9
|
-
import * as i4 from "@angular/common";
|
|
10
|
-
import * as i5 from "./insertion.directive";
|
|
11
|
-
export class DialogComponent {
|
|
12
|
-
constructor(componentFactoryResolver, cd, dialogRef, config, router) {
|
|
13
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
14
|
-
this.cd = cd;
|
|
15
|
-
this.dialogRef = dialogRef;
|
|
16
|
-
this.config = config;
|
|
17
|
-
this.router = router;
|
|
18
|
-
this.animation = true;
|
|
19
|
-
this.onDialogClose = new Subject();
|
|
20
|
-
this.onClose = this.onDialogClose.asObservable();
|
|
21
|
-
// this.componentRef = this.componentRef;
|
|
22
|
-
// this.animate = this.animate;
|
|
23
|
-
// this.insertionPoint = this.insertionPoint;
|
|
24
|
-
// this.childComponentType = this.childComponentType;
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
this.position = this.config.position;
|
|
28
|
-
this.background = this.config.background;
|
|
29
|
-
document.body.style.overflow = 'hidden';
|
|
30
|
-
setTimeout(() => {
|
|
31
|
-
this.animation = false;
|
|
32
|
-
}, 200);
|
|
33
|
-
this.routeAction();
|
|
34
|
-
}
|
|
35
|
-
routeAction() {
|
|
36
|
-
this.router.events.subscribe((event) => {
|
|
37
|
-
if (event instanceof NavigationStart) {
|
|
38
|
-
// Show loading indicator
|
|
39
|
-
}
|
|
40
|
-
if (event instanceof NavigationEnd) {
|
|
41
|
-
// Hide loading indicator
|
|
42
|
-
this.dialogRef.close();
|
|
43
|
-
}
|
|
44
|
-
if (event instanceof NavigationError) {
|
|
45
|
-
// Hide loading indicator
|
|
46
|
-
// Present error to user
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
ngAfterViewInit() {
|
|
51
|
-
this.loadChildComponent(this.childComponentType);
|
|
52
|
-
this.cd.detectChanges();
|
|
53
|
-
}
|
|
54
|
-
onOverlayClicked(evt) {
|
|
55
|
-
// this.dialogRef.close();
|
|
56
|
-
}
|
|
57
|
-
onDialogClicked(evt) {
|
|
58
|
-
evt.stopPropagation();
|
|
59
|
-
}
|
|
60
|
-
loadChildComponent(componentType) {
|
|
61
|
-
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);
|
|
62
|
-
const viewContainerRef = this.insertionPoint.viewContainerRef;
|
|
63
|
-
viewContainerRef.clear();
|
|
64
|
-
this.componentRef = viewContainerRef.createComponent(componentFactory);
|
|
65
|
-
}
|
|
66
|
-
ngOnDestroy() {
|
|
67
|
-
if (this.componentRef) {
|
|
68
|
-
this.componentRef.destroy();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
close(data) {
|
|
72
|
-
this.onDialogClose.next(data);
|
|
73
|
-
document.body.style.overflow = 'auto';
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
79
|
-
type: Component,
|
|
80
|
-
args: [{ selector: 'app-dialog', template: "<div\r\n class=\"overlay\"\r\n (click)=\"onOverlayClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER',\r\n black: background === 'black',\r\n whiteBlur: background === 'whiteBlur'\r\n }\" [class.pointer-none]=\"pointer === 'none'\"\r\n>\r\n <div\r\n class=\"dialog\"\r\n [class.animate]=\"animation\"\r\n (click)=\"onDialogClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER'\r\n }\"\r\n >\r\n <ng-template appInsertion></ng-template>\r\n </div>\r\n</div>\r\n", styles: [".overlay{display:flex;position:fixed;
|
|
81
|
-
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i1.DialogRef }, { type: i2.DialogConfig }, { type: i3.Router }]; }, propDecorators: { insertionPoint: [{
|
|
82
|
-
type: ViewChild,
|
|
83
|
-
args: [InsertionDirective, { static: true }]
|
|
84
|
-
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { InsertionDirective } from './insertion.directive';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { NavigationEnd, NavigationError, NavigationStart } from '@angular/router';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./dialog-ref";
|
|
7
|
+
import * as i2 from "./dialog-config";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "./insertion.directive";
|
|
11
|
+
export class DialogComponent {
|
|
12
|
+
constructor(componentFactoryResolver, cd, dialogRef, config, router) {
|
|
13
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
14
|
+
this.cd = cd;
|
|
15
|
+
this.dialogRef = dialogRef;
|
|
16
|
+
this.config = config;
|
|
17
|
+
this.router = router;
|
|
18
|
+
this.animation = true;
|
|
19
|
+
this.onDialogClose = new Subject();
|
|
20
|
+
this.onClose = this.onDialogClose.asObservable();
|
|
21
|
+
// this.componentRef = this.componentRef;
|
|
22
|
+
// this.animate = this.animate;
|
|
23
|
+
// this.insertionPoint = this.insertionPoint;
|
|
24
|
+
// this.childComponentType = this.childComponentType;
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
this.position = this.config.position;
|
|
28
|
+
this.background = this.config.background;
|
|
29
|
+
document.body.style.overflow = 'hidden';
|
|
30
|
+
setTimeout(() => {
|
|
31
|
+
this.animation = false;
|
|
32
|
+
}, 200);
|
|
33
|
+
this.routeAction();
|
|
34
|
+
}
|
|
35
|
+
routeAction() {
|
|
36
|
+
this.router.events.subscribe((event) => {
|
|
37
|
+
if (event instanceof NavigationStart) {
|
|
38
|
+
// Show loading indicator
|
|
39
|
+
}
|
|
40
|
+
if (event instanceof NavigationEnd) {
|
|
41
|
+
// Hide loading indicator
|
|
42
|
+
this.dialogRef.close();
|
|
43
|
+
}
|
|
44
|
+
if (event instanceof NavigationError) {
|
|
45
|
+
// Hide loading indicator
|
|
46
|
+
// Present error to user
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
ngAfterViewInit() {
|
|
51
|
+
this.loadChildComponent(this.childComponentType);
|
|
52
|
+
this.cd.detectChanges();
|
|
53
|
+
}
|
|
54
|
+
onOverlayClicked(evt) {
|
|
55
|
+
// this.dialogRef.close();
|
|
56
|
+
}
|
|
57
|
+
onDialogClicked(evt) {
|
|
58
|
+
evt.stopPropagation();
|
|
59
|
+
}
|
|
60
|
+
loadChildComponent(componentType) {
|
|
61
|
+
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);
|
|
62
|
+
const viewContainerRef = this.insertionPoint.viewContainerRef;
|
|
63
|
+
viewContainerRef.clear();
|
|
64
|
+
this.componentRef = viewContainerRef.createComponent(componentFactory);
|
|
65
|
+
}
|
|
66
|
+
ngOnDestroy() {
|
|
67
|
+
if (this.componentRef) {
|
|
68
|
+
this.componentRef.destroy();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
close(data) {
|
|
72
|
+
this.onDialogClose.next(data);
|
|
73
|
+
document.body.style.overflow = 'auto';
|
|
74
|
+
}
|
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }, { token: i1.DialogRef }, { token: i2.DialogConfig }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogComponent, selector: "app-dialog", viewQueries: [{ propertyName: "insertionPoint", first: true, predicate: InsertionDirective, descendants: true, static: true }], ngImport: i0, template: "<div\r\n class=\"overlay\"\r\n (click)=\"onOverlayClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER',\r\n black: background === 'black',\r\n whiteBlur: background === 'whiteBlur'\r\n }\" [class.pointer-none]=\"pointer === 'none'\"\r\n>\r\n <div\r\n class=\"dialog\"\r\n [class.animate]=\"animation\"\r\n (click)=\"onDialogClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER'\r\n }\"\r\n >\r\n <ng-template appInsertion></ng-template>\r\n </div>\r\n</div>\r\n", styles: [".overlay{display:flex;position:fixed;inset:0;align-items:center;justify-content:center;z-index:2147483009!important}.overlay.low{z-index:1}.overlay.black{background:#161b2fcc}.overlay.whiteBlur{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay.top{align-items:flex-start}.overlay.right{justify-content:flex-end}.overlay.bottom{align-items:flex-end}.overlay.left{justify-content:flex-start}.dialog{position:relative}.dialog.animate.top{animation:animate-top .2s cubic-bezier(.25,.46,.45,.94) both}@keyframes animate-top{0%{transform:translateY(-100px)}to{transform:translateY(0)}}.dialog.animate.right{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}.pointer-none{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.InsertionDirective, selector: "[appInsertion]" }] }); }
|
|
77
|
+
}
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogComponent, decorators: [{
|
|
79
|
+
type: Component,
|
|
80
|
+
args: [{ selector: 'app-dialog', template: "<div\r\n class=\"overlay\"\r\n (click)=\"onOverlayClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER',\r\n black: background === 'black',\r\n whiteBlur: background === 'whiteBlur'\r\n }\" [class.pointer-none]=\"pointer === 'none'\"\r\n>\r\n <div\r\n class=\"dialog\"\r\n [class.animate]=\"animation\"\r\n (click)=\"onDialogClicked($event)\"\r\n [ngClass]=\"{\r\n top: position === 'TOP',\r\n right: position === 'RIGHT',\r\n bottom: position === 'BOTTOM',\r\n left: position === 'LEFT',\r\n center: position === 'CENTER'\r\n }\"\r\n >\r\n <ng-template appInsertion></ng-template>\r\n </div>\r\n</div>\r\n", styles: [".overlay{display:flex;position:fixed;inset:0;align-items:center;justify-content:center;z-index:2147483009!important}.overlay.low{z-index:1}.overlay.black{background:#161b2fcc}.overlay.whiteBlur{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay.top{align-items:flex-start}.overlay.right{justify-content:flex-end}.overlay.bottom{align-items:flex-end}.overlay.left{justify-content:flex-start}.dialog{position:relative}.dialog.animate.top{animation:animate-top .2s cubic-bezier(.25,.46,.45,.94) both}@keyframes animate-top{0%{transform:translateY(-100px)}to{transform:translateY(0)}}.dialog.animate.right{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}.pointer-none{pointer-events:none}\n"] }]
|
|
81
|
+
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i1.DialogRef }, { type: i2.DialogConfig }, { type: i3.Router }]; }, propDecorators: { insertionPoint: [{
|
|
82
|
+
type: ViewChild,
|
|
83
|
+
args: [InsertionDirective, { static: true }]
|
|
84
|
+
}] } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvdWkta2l0L2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmMtZXJyb3ItaGFuZGxlcnMvc3JjL2xpYi91aS1raXQvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFrQyxTQUFTLEVBQXFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFnQyxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7O0FBT2hILE1BQU0sT0FBTyxlQUFlO0lBYzFCLFlBQ1Usd0JBQWtELEVBQ2xELEVBQXFCLEVBQ3JCLFNBQW9CLEVBQ3JCLE1BQW9CLEVBQ25CLE1BQWM7UUFKZCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWnhCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFQSxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDN0MsWUFBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFXakQseUNBQXlDO1FBQ3pDLGlDQUFpQztRQUNqQyw4Q0FBOEM7UUFDOUMsc0RBQXNEO0lBQ3hELENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDeEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNSLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzFDLElBQUksS0FBSyxZQUFZLGVBQWUsRUFBRTtnQkFDcEMseUJBQXlCO2FBQzFCO1lBQ0QsSUFBSSxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUNsQyx5QkFBeUI7Z0JBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDeEI7WUFDRCxJQUFJLEtBQUssWUFBWSxlQUFlLEVBQUU7Z0JBQ3BDLHlCQUF5QjtnQkFDekIsd0JBQXdCO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsZUFBZTtRQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFlO1FBQzlCLDBCQUEwQjtJQUM1QixDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQWU7UUFDN0IsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxhQUF3QjtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU5RixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7UUFDOUQsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFVO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztJQUN4QyxDQUFDOytHQWxGVSxlQUFlO21HQUFmLGVBQWUsa0dBS2Ysa0JBQWtCLDhEQ2pCL0IsdXpCQTRCQTs7NEZEaEJhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTt1TkFVdEIsY0FBYztzQkFEYixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVHlwZSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgQ29tcG9uZW50UmVmLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluc2VydGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vaW5zZXJ0aW9uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRGlhbG9nUmVmIH0gZnJvbSAnLi9kaWFsb2ctcmVmJztcclxuaW1wb3J0IHsgRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9kaWFsb2ctY29uZmlnJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciwgUk9VVEVSX0NPTkZJR1VSQVRJT04gfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2cuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xyXG4gIGNvbXBvbmVudFJlZiE6IENvbXBvbmVudFJlZjxhbnk+O1xyXG4gIHBvc2l0aW9uOiBhbnk7XHJcbiAgYmFja2dyb3VuZDogYW55O1xyXG4gIHBvaW50ZXI6IGFueTtcclxuICBAVmlld0NoaWxkKEluc2VydGlvbkRpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBpbnNlcnRpb25Qb2ludCE6IEluc2VydGlvbkRpcmVjdGl2ZTtcclxuICBhbmltYXRpb24gPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IG9uRGlhbG9nQ2xvc2UgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHVibGljIG9uQ2xvc2UgPSB0aGlzLm9uRGlhbG9nQ2xvc2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIGNoaWxkQ29tcG9uZW50VHlwZSE6IFR5cGU8YW55PjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogRGlhbG9nUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZzogRGlhbG9nQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge1xyXG4gICAgLy8gdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudFJlZjtcclxuICAgIC8vIHRoaXMuYW5pbWF0ZSA9ICAgdGhpcy5hbmltYXRlO1xyXG4gICAgLy8gdGhpcy5pbnNlcnRpb25Qb2ludCA9ICB0aGlzLmluc2VydGlvblBvaW50O1xyXG4gICAgLy8gdGhpcy5jaGlsZENvbXBvbmVudFR5cGUgPSAgdGhpcy5jaGlsZENvbXBvbmVudFR5cGU7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5wb3NpdGlvbiA9IHRoaXMuY29uZmlnLnBvc2l0aW9uO1xyXG4gICAgdGhpcy5iYWNrZ3JvdW5kID0gdGhpcy5jb25maWcuYmFja2dyb3VuZDtcclxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMjAwKTtcclxuICAgIHRoaXMucm91dGVBY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIHJvdXRlQWN0aW9uKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcclxuICAgICAgICAvLyBTaG93IGxvYWRpbmcgaW5kaWNhdG9yXHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xyXG4gICAgICAgIC8vIEhpZGUgbG9hZGluZyBpbmRpY2F0b3JcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcikge1xyXG4gICAgICAgIC8vIEhpZGUgbG9hZGluZyBpbmRpY2F0b3JcclxuICAgICAgICAvLyBQcmVzZW50IGVycm9yIHRvIHVzZXJcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMubG9hZENoaWxkQ29tcG9uZW50KHRoaXMuY2hpbGRDb21wb25lbnRUeXBlKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25PdmVybGF5Q2xpY2tlZChldnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIC8vIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBvbkRpYWxvZ0NsaWNrZWQoZXZ0OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBsb2FkQ2hpbGRDb21wb25lbnQoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KSB7XHJcbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50VHlwZSk7XHJcblxyXG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IHRoaXMuaW5zZXJ0aW9uUG9pbnQudmlld0NvbnRhaW5lclJlZjtcclxuICAgIHZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuXHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2UoZGF0YT86IGFueSkge1xyXG4gICAgdGhpcy5vbkRpYWxvZ0Nsb3NlLm5leHQoZGF0YSk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJvdmVybGF5XCJcclxuICAoY2xpY2spPVwib25PdmVybGF5Q2xpY2tlZCgkZXZlbnQpXCJcclxuICBbbmdDbGFzc109XCJ7XHJcbiAgICB0b3A6IHBvc2l0aW9uID09PSAnVE9QJyxcclxuICAgIHJpZ2h0OiBwb3NpdGlvbiA9PT0gJ1JJR0hUJyxcclxuICAgIGJvdHRvbTogcG9zaXRpb24gPT09ICdCT1RUT00nLFxyXG4gICAgbGVmdDogcG9zaXRpb24gPT09ICdMRUZUJyxcclxuICAgIGNlbnRlcjogcG9zaXRpb24gPT09ICdDRU5URVInLFxyXG4gICAgYmxhY2s6IGJhY2tncm91bmQgPT09ICdibGFjaycsXHJcbiAgICB3aGl0ZUJsdXI6IGJhY2tncm91bmQgPT09ICd3aGl0ZUJsdXInXHJcbiAgfVwiIFtjbGFzcy5wb2ludGVyLW5vbmVdPVwicG9pbnRlciA9PT0gJ25vbmUnXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZGlhbG9nXCJcclxuICAgIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiXHJcbiAgICAoY2xpY2spPVwib25EaWFsb2dDbGlja2VkKCRldmVudClcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICB0b3A6IHBvc2l0aW9uID09PSAnVE9QJyxcclxuICAgICAgcmlnaHQ6IHBvc2l0aW9uID09PSAnUklHSFQnLFxyXG4gICAgICBib3R0b206IHBvc2l0aW9uID09PSAnQk9UVE9NJyxcclxuICAgICAgbGVmdDogcG9zaXRpb24gPT09ICdMRUZUJyxcclxuICAgICAgY2VudGVyOiBwb3NpdGlvbiA9PT0gJ0NFTlRFUidcclxuICAgIH1cIlxyXG4gID5cclxuICAgIDxuZy10ZW1wbGF0ZSBhcHBJbnNlcnRpb24+PC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DialogComponent } from './dialog.component';
|
|
4
|
+
import { InsertionDirective } from './insertion.directive';
|
|
5
|
+
import { DialogRef } from './dialog-ref';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class DialogModule {
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DialogModule, declarations: [DialogComponent, InsertionDirective], imports: [CommonModule], exports: [DialogComponent] }); }
|
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogModule, providers: [DialogRef], imports: [CommonModule] }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
imports: [CommonModule],
|
|
16
|
+
declarations: [DialogComponent, InsertionDirective],
|
|
17
|
+
providers: [DialogRef],
|
|
18
|
+
exports: [DialogComponent]
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvdWkta2l0L2RpYWxvZy9kaWFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU96QyxNQUFNLE9BQU8sWUFBWTsrR0FBWixZQUFZO2dIQUFaLFlBQVksaUJBSlIsZUFBZSxFQUFFLGtCQUFrQixhQUR4QyxZQUFZLGFBR2IsZUFBZTtnSEFFYixZQUFZLGFBSFosQ0FBQyxTQUFTLENBQUMsWUFGWixZQUFZOzs0RkFLWCxZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDO29CQUNuRCxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQ3RCLE9BQU8sRUFBQyxDQUFDLGVBQWUsQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2RpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnNlcnRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2luc2VydGlvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYnO1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW0RpYWxvZ0NvbXBvbmVudCwgSW5zZXJ0aW9uRGlyZWN0aXZlXSxcclxuICBwcm92aWRlcnM6IFtEaWFsb2dSZWZdLFxyXG4gIGV4cG9ydHM6W0RpYWxvZ0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ01vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { DialogModule } from './dialog.module';
|
|
3
|
-
import { DialogComponent } from './dialog.component';
|
|
4
|
-
import { DialogInjector } from './dialog-injector';
|
|
5
|
-
import { DialogConfig } from './dialog-config';
|
|
6
|
-
import { DialogRef } from './dialog-ref';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class DialogService {
|
|
9
|
-
constructor(componentFactoryResolver, appRef, injector) {
|
|
10
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
11
|
-
this.appRef = appRef;
|
|
12
|
-
this.injector = injector;
|
|
13
|
-
}
|
|
14
|
-
open(componentType, config) {
|
|
15
|
-
const dialogRef = this.appendDialogComponentToBody(config);
|
|
16
|
-
this.dialogComponentRef.instance.childComponentType = componentType;
|
|
17
|
-
return dialogRef;
|
|
18
|
-
}
|
|
19
|
-
appendDialogComponentToBody(config) {
|
|
20
|
-
const map = new WeakMap();
|
|
21
|
-
map.set(DialogConfig, config);
|
|
22
|
-
const dialogRef = new DialogRef();
|
|
23
|
-
map.set(DialogRef, dialogRef);
|
|
24
|
-
const sub = dialogRef.afterClosed.subscribe(() => {
|
|
25
|
-
this.removeDialogComponentFromBody();
|
|
26
|
-
sub.unsubscribe();
|
|
27
|
-
});
|
|
28
|
-
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DialogComponent);
|
|
29
|
-
const componentRef = componentFactory.create(new DialogInjector(this.injector, map));
|
|
30
|
-
this.appRef.attachView(componentRef.hostView);
|
|
31
|
-
const domElem = componentRef.hostView.rootNodes[0];
|
|
32
|
-
document.body.appendChild(domElem);
|
|
33
|
-
this.dialogComponentRef = componentRef;
|
|
34
|
-
this.dialogComponentRef.instance.onClose.subscribe(() => {
|
|
35
|
-
this.removeDialogComponentFromBody();
|
|
36
|
-
});
|
|
37
|
-
return dialogRef;
|
|
38
|
-
}
|
|
39
|
-
removeDialogComponentFromBody() {
|
|
40
|
-
this.appRef.detachView(this.dialogComponentRef.hostView);
|
|
41
|
-
this.dialogComponentRef.destroy();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
47
|
-
type: Injectable,
|
|
48
|
-
args: [{
|
|
49
|
-
providedIn: DialogModule,
|
|
50
|
-
}]
|
|
51
|
-
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }]; } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DialogModule } from './dialog.module';
|
|
3
|
+
import { DialogComponent } from './dialog.component';
|
|
4
|
+
import { DialogInjector } from './dialog-injector';
|
|
5
|
+
import { DialogConfig } from './dialog-config';
|
|
6
|
+
import { DialogRef } from './dialog-ref';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class DialogService {
|
|
9
|
+
constructor(componentFactoryResolver, appRef, injector) {
|
|
10
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
11
|
+
this.appRef = appRef;
|
|
12
|
+
this.injector = injector;
|
|
13
|
+
}
|
|
14
|
+
open(componentType, config) {
|
|
15
|
+
const dialogRef = this.appendDialogComponentToBody(config);
|
|
16
|
+
this.dialogComponentRef.instance.childComponentType = componentType;
|
|
17
|
+
return dialogRef;
|
|
18
|
+
}
|
|
19
|
+
appendDialogComponentToBody(config) {
|
|
20
|
+
const map = new WeakMap();
|
|
21
|
+
map.set(DialogConfig, config);
|
|
22
|
+
const dialogRef = new DialogRef();
|
|
23
|
+
map.set(DialogRef, dialogRef);
|
|
24
|
+
const sub = dialogRef.afterClosed.subscribe(() => {
|
|
25
|
+
this.removeDialogComponentFromBody();
|
|
26
|
+
sub.unsubscribe();
|
|
27
|
+
});
|
|
28
|
+
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DialogComponent);
|
|
29
|
+
const componentRef = componentFactory.create(new DialogInjector(this.injector, map));
|
|
30
|
+
this.appRef.attachView(componentRef.hostView);
|
|
31
|
+
const domElem = componentRef.hostView.rootNodes[0];
|
|
32
|
+
document.body.appendChild(domElem);
|
|
33
|
+
this.dialogComponentRef = componentRef;
|
|
34
|
+
this.dialogComponentRef.instance.onClose.subscribe(() => {
|
|
35
|
+
this.removeDialogComponentFromBody();
|
|
36
|
+
});
|
|
37
|
+
return dialogRef;
|
|
38
|
+
}
|
|
39
|
+
removeDialogComponentFromBody() {
|
|
40
|
+
this.appRef.detachView(this.dialogComponentRef.hostView);
|
|
41
|
+
this.dialogComponentRef.destroy();
|
|
42
|
+
}
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
44
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogService, providedIn: DialogModule }); }
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogService, decorators: [{
|
|
47
|
+
type: Injectable,
|
|
48
|
+
args: [{
|
|
49
|
+
providedIn: DialogModule,
|
|
50
|
+
}]
|
|
51
|
+
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }]; } });
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92Yy1lcnJvci1oYW5kbGVycy9zcmMvbGliL3VpLWtpdC9kaWFsb2cvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBMkYsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBS3pDLE1BQU0sT0FBTyxhQUFhO0lBR3hCLFlBQW9CLHdCQUFrRCxFQUFVLE1BQXNCLEVBQVUsUUFBa0I7UUFBOUcsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFFL0gsSUFBSSxDQUFDLGFBQXdCLEVBQUUsTUFBb0I7UUFDeEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEdBQUcsYUFBYSxDQUFDO1FBRXBFLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxNQUFvQjtRQUN0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzFCLEdBQUcsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTlCLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFDbEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFOUIsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9DLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1lBQ3JDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFckYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFDNUYsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFlBQVksQ0FBQztRQUV2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RELElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLDZCQUE2QjtRQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLENBQUM7K0dBN0NVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLFlBQVk7OzRGQUViLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLFlBQVk7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBBcHBsaWNhdGlvblJlZiwgSW5qZWN0b3IsIFR5cGUsIEVtYmVkZGVkVmlld1JlZiwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJy4vZGlhbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7IERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0luamVjdG9yIH0gZnJvbSAnLi9kaWFsb2ctaW5qZWN0b3InO1xyXG5pbXBvcnQgeyBEaWFsb2dDb25maWcgfSBmcm9tICcuL2RpYWxvZy1jb25maWcnO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IERpYWxvZ01vZHVsZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ1NlcnZpY2Uge1xyXG4gIGRpYWxvZ0NvbXBvbmVudFJlZiE6IENvbXBvbmVudFJlZjxEaWFsb2dDb21wb25lbnQ+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxyXG5cclxuICBwdWJsaWMgb3Blbihjb21wb25lbnRUeXBlOiBUeXBlPGFueT4sIGNvbmZpZzogRGlhbG9nQ29uZmlnKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmFwcGVuZERpYWxvZ0NvbXBvbmVudFRvQm9keShjb25maWcpO1xyXG5cclxuICAgIHRoaXMuZGlhbG9nQ29tcG9uZW50UmVmLmluc3RhbmNlLmNoaWxkQ29tcG9uZW50VHlwZSA9IGNvbXBvbmVudFR5cGU7XHJcblxyXG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwZW5kRGlhbG9nQ29tcG9uZW50VG9Cb2R5KGNvbmZpZzogRGlhbG9nQ29uZmlnKSB7XHJcbiAgICBjb25zdCBtYXAgPSBuZXcgV2Vha01hcCgpO1xyXG4gICAgbWFwLnNldChEaWFsb2dDb25maWcsIGNvbmZpZyk7XHJcblxyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gbmV3IERpYWxvZ1JlZigpO1xyXG4gICAgbWFwLnNldChEaWFsb2dSZWYsIGRpYWxvZ1JlZik7XHJcblxyXG4gICAgY29uc3Qgc3ViID0gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRGlhbG9nQ29tcG9uZW50RnJvbUJvZHkoKTtcclxuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRGlhbG9nQ29tcG9uZW50KTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKG5ldyBEaWFsb2dJbmplY3Rvcih0aGlzLmluamVjdG9yLCBtYXApKTtcclxuXHJcbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcblxyXG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XHJcblxyXG4gICAgdGhpcy5kaWFsb2dDb21wb25lbnRSZWYgPSBjb21wb25lbnRSZWY7XHJcblxyXG4gICAgdGhpcy5kaWFsb2dDb21wb25lbnRSZWYuaW5zdGFuY2Uub25DbG9zZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbW92ZURpYWxvZ0NvbXBvbmVudEZyb21Cb2R5KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZGlhbG9nUmVmO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVEaWFsb2dDb21wb25lbnRGcm9tQm9keSgpIHtcclxuICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5kaWFsb2dDb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG4gICAgdGhpcy5kaWFsb2dDb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|