codefoxcore 0.0.17 → 0.0.18
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/helpers.mjs +5 -1
- package/esm2022/lib/interfaces.mjs +1 -1
- package/esm2022/lib/pipes/index.mjs +2 -1
- package/esm2022/lib/pipes/microdata.pipe.mjs +21 -0
- package/esm2022/lib/services/index.mjs +2 -1
- package/esm2022/lib/services/message.service.mjs +16 -3
- package/esm2022/lib/services/microdata.service.mjs +19 -0
- package/esm2022/lib/tokens/message.token.mjs +6 -1
- package/fesm2022/codefoxcore.mjs +79 -24
- package/fesm2022/codefoxcore.mjs.map +1 -1
- package/lib/helpers.d.ts +2 -0
- package/lib/interfaces.d.ts +6 -0
- package/lib/pipes/index.d.ts +1 -0
- package/lib/pipes/microdata.pipe.d.ts +9 -0
- package/lib/services/index.d.ts +1 -0
- package/lib/services/message.service.d.ts +6 -0
- package/lib/services/microdata.service.d.ts +9 -0
- package/lib/tokens/message.token.d.ts +1 -0
- package/package.json +1 -1
package/esm2022/lib/helpers.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DOCUMENT, isPlatformBrowser } from "@angular/common";
|
|
2
|
+
import { HttpErrorResponse } from "@angular/common/http";
|
|
2
3
|
import { inject, PLATFORM_ID } from "@angular/core";
|
|
3
4
|
export function isBrowser() {
|
|
4
5
|
const platformId = inject(PLATFORM_ID);
|
|
@@ -18,4 +19,7 @@ export function sessionStorage() {
|
|
|
18
19
|
}
|
|
19
20
|
return null;
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
+
export function isServerError(error) {
|
|
23
|
+
return error instanceof HttpErrorResponse && typeof error.error === 'object' && error.error['message'] !== undefined && typeof error.error['message'] === 'string';
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZGVmb3hjb3JlL3NyYy9saWIvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEQsTUFBTSxVQUFVLFNBQVM7SUFDeEIsTUFBTSxVQUFVLEdBQVcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLE9BQU8saUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZO0lBQzNCLE1BQU0sUUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxJQUFJLFFBQVEsQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFO1FBQ2xDLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0tBQ2hEO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWM7SUFDN0IsTUFBTSxRQUFRLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLElBQUksUUFBUSxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUU7UUFDbEMsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7S0FDbEQ7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNiLENBQUM7QUFHRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQVU7SUFDdkMsT0FBTyxLQUFLLFlBQVksaUJBQWlCLElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssUUFBUSxDQUFDO0FBQ3BLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IGluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTZXJ2ZXJFcnJvciB9IGZyb20gXCIuL2ludGVyZmFjZXNcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0Jyb3dzZXIoKTogYm9vbGVhbiB7XHJcblx0Y29uc3QgcGxhdGZvcm1JZDogT2JqZWN0ID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcclxuXHRyZXR1cm4gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2NhbFN0b3JhZ2UoKTogU3RvcmFnZSB8IG51bGwge1xyXG5cdGNvbnN0IGRvY3VtZW50OiBEb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XHJcblx0aWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3ICE9PSBudWxsKSB7XHJcblx0XHRyZXR1cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXcud2luZG93LmxvY2FsU3RvcmFnZTtcclxuXHR9XHJcblx0cmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXNzaW9uU3RvcmFnZSgpOiBTdG9yYWdlIHwgbnVsbCB7XHJcblx0Y29uc3QgZG9jdW1lbnQ6IERvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHRpZiAoZG9jdW1lbnQuZGVmYXVsdFZpZXcgIT09IG51bGwpIHtcclxuXHRcdHJldHVybiBkb2N1bWVudC5kZWZhdWx0Vmlldy53aW5kb3cuc2Vzc2lvblN0b3JhZ2U7XHJcblx0fVxyXG5cdHJldHVybiBudWxsO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VydmVyRXJyb3IoZXJyb3I6IGFueSk6IGVycm9yIGlzIFNlcnZlckVycm9yIHtcclxuXHRyZXR1cm4gZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSAmJiB0eXBlb2YgZXJyb3IuZXJyb3IgPT09ICdvYmplY3QnICYmIGVycm9yLmVycm9yWydtZXNzYWdlJ10gIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZXJyb3IuZXJyb3JbJ21lc3NhZ2UnXSA9PT0gJ3N0cmluZyc7XHJcbn0iXX0=
|
|
@@ -47,4 +47,4 @@ export var Precheck;
|
|
|
47
47
|
Precheck["ERROR"] = "ERROR";
|
|
48
48
|
Precheck["WARNING"] = "WARNING";
|
|
49
49
|
})(Precheck || (Precheck = {}));
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZGVmb3hjb3JlL3NyYy9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3REEsTUFBTSxDQUFOLElBQVksb0JBR1g7QUFIRCxXQUFZLG9CQUFvQjtJQUM1QiwyQ0FBbUIsQ0FBQTtJQUNuQixxQ0FBYSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBRy9CO0FBMEJELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDdkIsOEJBQVcsQ0FBQTtJQUNYLG9DQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBS1g7QUFMRCxXQUFZLGVBQWU7SUFDdkIsc0NBQW1CLENBQUE7SUFDbkIsc0NBQW1CLENBQUE7SUFDbkIsb0NBQWlCLENBQUE7SUFDakIsZ0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsZUFBZSxLQUFmLGVBQWUsUUFLMUI7QUErQkQsTUFBTSxDQUFOLElBQVksUUFRWDtBQVJELFdBQVksUUFBUTtJQUNoQixxQ0FBTyxDQUFBO0lBQ1AseUNBQVMsQ0FBQTtJQUNULHVDQUFRLENBQUE7SUFDUix1Q0FBUSxDQUFBO0lBQ1IseUNBQVMsQ0FBQTtJQUNULHlDQUFTLENBQUE7SUFDVCxxQ0FBTyxDQUFBO0FBQ1gsQ0FBQyxFQVJXLFFBQVEsS0FBUixRQUFRLFFBUW5CO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBSVg7QUFKRCxXQUFZLGdCQUFnQjtJQUN4Qix1RUFBZ0IsQ0FBQTtJQUNoQiwyRUFBa0IsQ0FBQTtJQUNsQiwyREFBVSxDQUFBO0FBQ2QsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxlQVNYO0FBVEQsV0FBWSxlQUFlO0lBQ3ZCLDhCQUFXLENBQUE7SUFDWCxrQ0FBZSxDQUFBO0lBQ2Ysb0NBQWlCLENBQUE7SUFDakIsZ0NBQWEsQ0FBQTtJQUNiLGtDQUFlLENBQUE7SUFDZix3Q0FBcUIsQ0FBQTtJQUNyQixnQ0FBYSxDQUFBO0lBQ2hCLDBDQUF1QixDQUFBO0FBQ3hCLENBQUMsRUFUVyxlQUFlLEtBQWYsZUFBZSxRQVMxQjtBQUVELE1BQU0sQ0FBTixJQUFZLFFBR1g7QUFIRCxXQUFZLFFBQVE7SUFDaEIsMkJBQWUsQ0FBQTtJQUNmLCtCQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxRQUFRLEtBQVIsUUFBUSxRQUduQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tIFwiLi9jbGFzc2VzL2RpYWxvZy5yZWYuY2xhc3NcIjtcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGFiZWxWYWx1ZTxUID0gc3RyaW5nPiB7XHJcblx0bGFiZWw6IHN0cmluZztcclxuXHR2YWx1ZTogVDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dDb21wb25lbnRSZWZDb250YWluZXIge1xyXG4gICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuICAgIGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQ7XHJcblx0b3BlbkluZGV4OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWRlZmluZWREaWFsb2dzID0ge1trZXk6IHN0cmluZ106ICgoKSA9PiBQcm9taXNlPFR5cGU8YW55Pj4pIHwge2NvbXBvbmVudDogKCkgPT4gUHJvbWlzZTxUeXBlPGFueT4+LCBjb25maWd1cmF0aW9uOiBEaWFsb2dDb25maWd1cmF0aW9ufX07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0NvbmZpZ3VyYXRpb24ge1xyXG4gICAgc2hvd0Nsb3NlSWNvbj86IGJvb2xlYW47XHJcblx0YmVmb3JlQ2xvc2U/OiBDZkRpYWxvZ0NvbmZpZ3VyYXRpb25CZWZvcmVDbG9zZTtcclxuXHRpZ25vcmVLZXlVcD86IGJvb2xlYW47XHJcbiAgICBkYXRhPzogYW55O1xyXG4gICAgbm9QYWRkaW5nPzogYm9vbGVhbjtcclxuXHRrZWVwQWN0aXZlRWxlbWVudD86IGJvb2xlYW47XHJcblx0Y29udGFpbmVyQ2xhc3Nlcz86IHN0cmluZ1tdO1xyXG5cdGRpYWxvZ0NsYXNzZXM/OiBzdHJpbmdbXTtcclxuXHR0aXRsZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBjb250ZW50RWxlbWVudD86IEVsZW1lbnQgfCBudWxsO1xyXG4gICAgc2luZ2xlPzogYm9vbGVhbjtcclxuICAgIHdpZHRoPzogc3RyaW5nIHwgbnVsbDtcclxuXHRoZWlnaHQ/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDZkRpYWxvZ0NvbmZpZ3VyYXRpb25CZWZvcmVDbG9zZSA9IG51bGwgfCAoKCkgPT4gYm9vbGVhbiB8IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+KSB8IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtQ29uZmlndXJhdGlvbiB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gICAgYWNjZXB0VGV4dDogc3RyaW5nO1xyXG4gICAgZGVjbGluZVRleHQ6IHN0cmluZztcclxuXHRoaWRlRGVjbGluZUJ1dHRvbj86IGJvb2xlYW47XHJcbiAgICBzd2l0Y2hCdXR0b25Db2xvcnM/OiBib29sZWFuO1xyXG4gICAgYWNjZXB0VGltZW91dD86IG51bWJlcjtcclxuICAgIGFjY2VwdFZhbGlkYXRpb25UZXh0Pzogc3RyaW5nO1xyXG4gICAgYWNjZXB0VmFsaWRhdGlvbk1vZGU/OiBBY2NlcHRWYWxpZGF0aW9uTW9kZTtcclxuICAgIGFjY2VwdFZhbGlkYXRpb25MYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBbGVydENvbmZpZ3VyYXRpb24ge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHRleHQ6IHN0cmluZztcclxuXHRzaG93Q2xvc2VJY29uPzogYm9vbGVhbjtcclxuXHRidXR0b24/OiBQYXJ0aWFsPEFsZXJ0QnV0dG9uQ29uZmlndXJhdGlvbj47XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFjY2VwdFZhbGlkYXRpb25Nb2RlIHtcclxuICAgIFBBVFRFUk4gPSAnUEFUVEVSTicsXHJcbiAgICBURVhUID0gJ1RFWFQnXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWxlcnRCdXR0b25Db25maWd1cmF0aW9uIHtcclxuXHRsYWJlbDogc3RyaW5nO1xyXG5cdHNldmVyaXR5OiBzdHJpbmc7XHJcblx0Y2FsbGJhY2s6IChwYXJhbXM6IHtkaWFsb2dSZWY6IERpYWxvZ1JlZn0pID0+IHZvaWQ7XHJcblx0dHJhbnNsYXRlTGFiZWw6IGJvb2xlYW47XHJcblx0Zm9jdXM6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2ZEaWFsb2dDbG9zZVBhcmFtcyB7XHJcbiAgICBtZXNzYWdlPzogTWVzc2FnZVBhcnRpYWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZVBhcnRpYWwgZXh0ZW5kcyBQYXJ0aWFsPE1lc3NhZ2VDb25maWd1cmF0aW9uPiB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgbWVzc2FnZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VDb25maWd1cmF0aW9uIHtcclxuICAgIGNsb3NlYWJsZTogYm9vbGVhbjtcclxuICAgIHBvc2l0aW9uOiBNZXNzYWdlUG9zaXRpb247XHJcbiAgICBsaWZldGltZTogbnVtYmVyIHwgbnVsbDtcclxuICAgIHNldmVyaXR5OiBNZXNzYWdlU2V2ZXJpdHk7XHJcblx0a2VlcE9uSG92ZXI6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGVudW0gTWVzc2FnZVBvc2l0aW9uIHtcclxuICAgIFRPUCA9ICd0b3AnLFxyXG4gICAgQk9UVE9NID0gJ2JvdHRvbSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTWVzc2FnZVNldmVyaXR5IHtcclxuICAgIFNVQ0NFU1MgPSAnc3VjY2VzcycsXHJcbiAgICBXQVJOSU5HID0gJ3dhcm5pbmcnLFxyXG4gICAgREFOR0VSID0gJ2RhbmdlcicsXHJcbiAgICBJTkZPID0gJ2luZm8nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9hZGluZ0NvbmZpZ3VyYXRpb24ge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHRleHQ6IHN0cmluZztcclxuXHRsb2FkaW5nSWNvbj86IHN0cmluZztcclxuICAgIGljb25TaXplPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsV2l0aEJ1dHRvbnNDb25maWd1cmF0aW9uIHtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcblx0c2hvd0Nsb3NlSWNvbj86IGJvb2xlYW47XHJcblx0YnV0dG9uczogQnV0dG9uQ29uZmlndXJhdGlvbltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJ1dHRvbkNvbmZpZ3VyYXRpb24ge1xyXG5cdGxhYmVsOiBzdHJpbmc7XHJcblx0c2V2ZXJpdHk6IHN0cmluZztcclxuXHRjYWxsYmFjaz86IChwYXJhbXM6IHtkaWFsb2dSZWY6IERpYWxvZ1JlZn0pID0+IHZvaWQ7XHJcblx0cm91dGVyTGluaz86IGFueTtcclxuXHRmb2N1cz86IGJvb2xlYW47XHJcblx0cGVybWlzc2lvbj86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG5cdHRyYW5zbGF0ZUxhYmVsPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZUNvbmZpZ3VyYXRpb24ge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIG1lc3NhZ2U6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTG9nTGV2ZWwge1xyXG4gICAgQWxsID0gMCxcclxuICAgIERlYnVnID0gMSxcclxuICAgIEluZm8gPSAyLFxyXG4gICAgV2FybiA9IDMsXHJcbiAgICBFcnJvciA9IDQsXHJcbiAgICBGYXRhbCA9IDUsXHJcbiAgICBPZmYgPSA2XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFRva2VuU2VydmljZU1vZGUge1xyXG4gICAgTE9DQUxTVE9SQUdFID0gMCxcclxuICAgIFNFU1NJT05TVE9SQUdFID0gMSxcclxuICAgIENPT0tJRSA9IDJcclxufVxyXG5cclxuZXhwb3J0IGVudW0gSW50ZXJjZXB0b3JUeXBlIHtcclxuICAgIEFMTCA9ICdBTEwnLFxyXG4gICAgRVJST1IgPSAnRVJST1InLFxyXG4gICAgTE9BREVSID0gJ0xPQURFUicsXHJcbiAgICBNT0NLID0gJ01PQ0snLFxyXG4gICAgVE9LRU4gPSAnVE9LRU4nLFxyXG4gICAgUFJFQ0hFQ0sgPSAnUFJFQ0hFQ0snLFxyXG4gICAgTE9DSyA9ICdMT0NLJyxcclxuXHRSRVFVRVNUSUQgPSAnUkVRVUVTVElEJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBQcmVjaGVjayB7XHJcbiAgICBFUlJPUiA9IFwiRVJST1JcIixcclxuICAgIFdBUk5JTkcgPSBcIldBUk5JTkdcIlxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVjaGVja051bGxhYmxlID0gUHJlY2hlY2sgfCBudWxsO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJFcnJvciBleHRlbmRzIEh0dHBFcnJvclJlc3BvbnNlIHtcclxuXHRlcnJvcjoge1xyXG5cdFx0bWVzc2FnZTogc3RyaW5nO1xyXG5cdH1cclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './translate.pipe';
|
|
2
|
-
|
|
2
|
+
export * from './microdata.pipe';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlZm94Y29yZS9zcmMvbGliL3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL21pY3JvZGF0YS5waXBlJztcclxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { inject, Pipe } from "@angular/core";
|
|
2
|
+
import { MicroDataService } from "../services/microdata.service";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class MicroDataPipe {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.microDataService = inject(MicroDataService);
|
|
7
|
+
}
|
|
8
|
+
transform(key, defaultOnUndefined = '') {
|
|
9
|
+
return this.microDataService.getMicroData(key, defaultOnUndefined);
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MicroDataPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MicroDataPipe, isStandalone: true, name: "microdata" }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MicroDataPipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{
|
|
17
|
+
standalone: true,
|
|
18
|
+
name: 'microdata'
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9kYXRhLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlZm94Y29yZS9zcmMvbGliL3BpcGVzL21pY3JvZGF0YS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFNakUsTUFBTSxPQUFPLGFBQWE7SUFKMUI7UUFNQyxxQkFBZ0IsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FNOUQ7SUFKQSxTQUFTLENBQUMsR0FBVyxFQUFFLHFCQUE2QixFQUFFO1FBQ3JELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUNwRSxDQUFDOytHQU5XLGFBQWE7NkdBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFKekIsSUFBSTttQkFBQztvQkFDTCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFLFdBQVc7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWljcm9EYXRhU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy9taWNyb2RhdGEuc2VydmljZVwiO1xyXG5cclxuQFBpcGUoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0bmFtZTogJ21pY3JvZGF0YSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1pY3JvRGF0YVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcblx0bWljcm9EYXRhU2VydmljZTogTWljcm9EYXRhU2VydmljZSA9IGluamVjdChNaWNyb0RhdGFTZXJ2aWNlKTtcclxuXHJcblx0dHJhbnNmb3JtKGtleTogc3RyaW5nLCBkZWZhdWx0T25VbmRlZmluZWQ6IHN0cmluZyA9ICcnKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5taWNyb0RhdGFTZXJ2aWNlLmdldE1pY3JvRGF0YShrZXksIGRlZmF1bHRPblVuZGVmaW5lZCk7XHJcblx0fVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -6,4 +6,5 @@ export * from './cookie.service';
|
|
|
6
6
|
export * from './token.service';
|
|
7
7
|
export * from './google.maps.service';
|
|
8
8
|
export * from './translate.service';
|
|
9
|
-
|
|
9
|
+
export * from './microdata.service';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlZm94Y29yZS9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlhbG9nLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb29raWUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZ29vZ2xlLm1hcHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL21pY3JvZGF0YS5zZXJ2aWNlJztcclxuIl19
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Subject, timer } from 'rxjs';
|
|
2
|
+
import { catchError, EMPTY, Subject, timer } from 'rxjs';
|
|
3
3
|
import { MessageSeverity } from '../interfaces';
|
|
4
|
-
import { MESSAGE_DEFAULT_CONFIGURATION } from '../tokens';
|
|
4
|
+
import { MESSAGE_DEFAULT_CONFIGURATION, MESSAGE_DEFAULT_ERROR_TITLE } from '../tokens';
|
|
5
|
+
import { isServerError } from '../helpers';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class MessageService {
|
|
7
8
|
/**
|
|
@@ -147,6 +148,14 @@ export class MessageService {
|
|
|
147
148
|
messageElement.remove();
|
|
148
149
|
});
|
|
149
150
|
}
|
|
151
|
+
handleApiError(title = undefined) {
|
|
152
|
+
return source$ => source$.pipe(catchError((error) => {
|
|
153
|
+
if (isServerError(error)) {
|
|
154
|
+
this.showDangerMessage(title || this.defaultErrorTitle, error.error.message);
|
|
155
|
+
}
|
|
156
|
+
return EMPTY;
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
150
159
|
constructor() {
|
|
151
160
|
/**
|
|
152
161
|
* Default configuration
|
|
@@ -154,6 +163,10 @@ export class MessageService {
|
|
|
154
163
|
* Can be changed if you overwrite it or use the `MESSAGE_DEFAULT_CONFIGURATION` InjectionToken
|
|
155
164
|
*/
|
|
156
165
|
this.defaultConfiguration = inject(MESSAGE_DEFAULT_CONFIGURATION);
|
|
166
|
+
/**
|
|
167
|
+
* Default error title
|
|
168
|
+
*/
|
|
169
|
+
this.defaultErrorTitle = inject(MESSAGE_DEFAULT_ERROR_TITLE);
|
|
157
170
|
/**
|
|
158
171
|
* Message subject
|
|
159
172
|
*/
|
|
@@ -171,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
171
184
|
providedIn: 'root'
|
|
172
185
|
}]
|
|
173
186
|
}], ctorParameters: function () { return []; } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZWZveGNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBaUMsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFLMUQsTUFBTSxPQUFPLGNBQWM7SUFjdkI7Ozs7OztPQU1HO0lBQ0ksSUFBSSxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsYUFBNkM7UUFDckYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDOUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CO1lBQ25CLEdBQUcsYUFBYTtZQUN6QixLQUFLO1lBQ0wsT0FBTztTQUNELENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0Msa0JBQWtCLENBQ3hCLEtBQWEsRUFDYixPQUFlLEVBQ2YsYUFBK0Q7UUFFL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQ3pCLEdBQUcsYUFBYTtZQUNoQixRQUFRLEVBQUUsZUFBZSxDQUFDLE9BQU87U0FDakMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVFOzs7Ozs7Ozs7O09BVUc7SUFDQyxpQkFBaUIsQ0FDdkIsS0FBYSxFQUNiLE9BQWUsRUFDZixhQUErRDtRQUUvRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDekIsR0FBRyxhQUFhO1lBQ2hCLFFBQVEsRUFBRSxlQUFlLENBQUMsTUFBTTtZQUNo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QUMsNkJBQTZCLENBQUMsQ0FBQztRQUUxRjs7V0FFRztRQUNLLG1CQUFjLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7UUFpTHJELElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQWhNUSxjQUFjO21IQUFkLGNBQWMsY0FGZCxNQUFNOzs0RkFFTixjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VDb25maWd1cmF0aW9uLCBNZXNzYWdlU2V2ZXJpdHkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgTUVTU0FHRV9ERUZBVUxUX0NPTkZJR1VSQVRJT04gfSBmcm9tICcuLi90b2tlbnMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVzc2FnZVNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBcclxuICAgICAqIENhbiBiZSBjaGFuZ2VkIGlmIHlvdSBvdmVyd3JpdGUgaXQgb3IgdXNlIHRoZSBgTUVTU0FHRV9ERUZBVUxUX0NPTkZJR1VSQVRJT05gIEluamVjdGlvblRva2VuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWZhdWx0Q29uZmlndXJhdGlvbjogTWVzc2FnZUNvbmZpZ3VyYXRpb24gPSBpbmplY3QoTUVTU0FHRV9ERUZBVUxUX0NPTkZJR1VSQVRJT04pO1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIE1lc3NhZ2Ugc3ViamVjdFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTdWJqZWN0OiBTdWJqZWN0PE1lc3NhZ2U+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3dcclxuICAgICAqIFxyXG4gICAgICogRGlzcGxheXMgbWVzc2FnZSB3aXRoIHRoZSBnaXZlbiBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBtZXNzYWdlQ29uZmlndXJhdGlvbiBgUGFydGlhbDxNZXNzYWdlQ29uZmlndXJhdGlvbj5gXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzaG93KHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgY29uZmlndXJhdGlvbj86IFBhcnRpYWw8TWVzc2FnZUNvbmZpZ3VyYXRpb24+KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU3ViamVjdC5uZXh0KHtcclxuXHRcdFx0Li4udGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbixcclxuICAgICAgICAgICAgLi4uY29uZmlndXJhdGlvbixcclxuXHRcdFx0dGl0bGUsXHJcblx0XHRcdG1lc3NhZ2VcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgc3VjY2VzcyBtZXNzYWdlXHJcbiAgICAgKiBcclxuICAgICAqIERpc3BsYXkgYSBtZXNzYWdlIHdpdGggZGVmYXVsdCBzdWNjZXNzIHNldmVyaXR5XHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB0aXRsZSBgc3RyaW5nYCwgcmVxdWlyZWRcclxuICAgICAqIEBwYXJhbSBtZXNzYWdlIGBzdHJpbmdgLCByZXF1aXJlZFxyXG4gICAgICogQHBhcmFtIGxpZmV0aW1lIGBudW1iZXJgLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBgdGhpcy5kZWZhdWx0TGlmZXRpbWVgXHJcbiAgICAgKiBAcGFyYW0gcG9zaXRpb24gYE1lc3NhZ2VQb3NpdGlvbmAsIG9wdGlvbmFsLCBkZWZhdWx0IGlzIGB0aGlzLmRlZmF1bHRQb3NpdGlvbmBcclxuICAgICAqIEBwYXJhbSBjbG9zZWFibGUgYGJvb2xlYW5gLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBgdGhpcy5kZWZhdWx0Q2xvc2FibGVgXHJcbiAgICAgKi9cclxuXHRwdWJsaWMgc2hvd1N1Y2Nlc3NNZXNzYWdlKFxyXG5cdFx0dGl0bGU6IHN0cmluZyxcclxuXHRcdG1lc3NhZ2U6IHN0cmluZyxcclxuXHRcdGNvbmZpZ3VyYXRpb24/OiBQYXJ0aWFsPE9taXQ8TWVzc2FnZUNvbmZpZ3VyYXRpb24sICdzZXZlcml0eSc+PlxyXG5cdCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zaG93KHRpdGxlLCBtZXNzYWdlLCB7XHJcblx0XHRcdC4uLmNvbmZpZ3VyYXRpb24sXHJcblx0XHRcdHNldmVyaXR5OiBNZXNzYWdlU2V2ZXJpdHkuU1VDQ0VTU1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdyBkYW5nZXIgbWVzc2FnZVxyXG4gICAgICogXHJcbiAgICAgKiBEaXNwbGF5IGEgbWVzc2FnZSB3aXRoIGRlZmF1bHQgZGFuZ2VyIHNldmVyaXR5XHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB0aXRsZSBgc3RyaW5nYCwgcmVxdWlyZWRcclxuICAgICAqIEBwYXJhbSBtZXNzYWdlIGBzdHJpbmdgLCByZXF1aXJlZFxyXG4gICAgICogQHBhcmFtIGxpZmV0aW1lIGBudW1iZXJgLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBgdGhpcy5kZWZhdWx0TGlmZXRpbWVgXHJcbiAgICAgKiBAcGFyYW0gcG9zaXRpb24gYE1lc3NhZ2VQb3NpdGlvbmAsIG9wdGlvbmFsLCBkZWZhdWx0IGlzIGB0aGlzLmRlZmF1bHRQb3NpdGlvbmBcclxuICAgICAqIEBwYXJhbSBjbG9zZWFibGUgYGJvb2xlYW5gLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBgdGhpcy5kZWZhdWx0Q2xvc2FibGVgXHJcbiAgICAgKi9cclxuXHRwdWJsaWMgc2hvd0Rhbmdlck1lc3NhZ2UoXHJcblx0XHR0aXRsZTogc3RyaW5nLFxyXG5cdFx0bWVzc2FnZTogc3RyaW5nLFxyXG5cdFx0Y29uZmlndXJhdGlvbj86IFBhcnRpYWw8T21pdDxNZXNzYWdlQ29uZmlndXJhdGlvbiwgJ3NldmVyaXR5Jz4+XHJcblx0KTogdm9pZCB7XHJcblx0XHR0aGlzLnNob3codGl0bGUsIG1lc3NhZ2UsIHtcclxuXHRcdFx0Li4uY29uZmlndXJhdGlvbixcclxuXHRcdFx0c2V2ZXJpdHk6IE1lc3NhZ2VTZXZlcml0eS5EQU5HRVIsXHJcblx0XHRcdGtlZXBPbkhvdmVyOiB0cnVlXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IHdhcm5pbmcgbWVzc2FnZVxyXG4gICAgICogXHJcbiAgICAgKiBEaXNwbGF5IGEgbWVzc2FnZSB3aXRoIGRlZmF1bHQgd2FybmluZyBzZXZlcml0eVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdGl0bGUgYHN0cmluZ2AsIHJlcXVpcmVkXHJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBgc3RyaW5nYCwgcmVxdWlyZWRcclxuICAgICAqIEBwYXJhbSBsaWZldGltZSBgbnVtYmVyYCwgb3B0aW9uYWwsIGRlZmF1bHQgaXMgYHRoaXMuZGVmYXVsdExpZmV0aW1lYFxyXG4gICAgICogQHBhcmFtIHBvc2l0aW9uIGBNZXNzYWdlUG9zaXRpb25gLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBgdGhpcy5kZWZhdWx0UG9zaXRpb25gXHJcbiAgICAgKiBAcGFyYW0gY2xvc2VhYmxlIGBib29sZWFuYCwgb3B0aW9uYWwsIGRlZmF1bHQgaXMgYHRoaXMuZGVmYXVsdENsb3NhYmxlYFxyXG4gICAgICovXHJcblx0cHVibGljIHNob3dXYXJuaW5nTWVzc2FnZShcclxuXHRcdHRpdGxlOiBzdHJpbmcsXHJcblx0XHRtZXNzYWdlOiBzdHJpbmcsXHJcblx0XHRjb25maWd1cmF0aW9uPzogUGFydGlhbDxPbWl0PE1lc3NhZ2VDb25maWd1cmF0aW9uLCAnc2V2ZXJpdHknPj5cclxuXHQpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2hvdyh0aXRsZSwgbWVzc2FnZSwge1xyXG5cdFx0XHQuLi5jb25maWd1cmF0aW9uLFxyXG5cdFx0XHRzZXZlcml0eTogTWVzc2FnZVNldmVyaXR5LldBUk5JTkdcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgaW5mbyBtZXNzYWdlXHJcbiAgICAgKiBcclxuICAgICAqIERpc3BsYXkgYSBtZXNzYWdlIHdpdGggZGVmYXVsdCBpbmZvIHNldmVyaXR5XHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB0aXRsZSBgc3RyaW5nYCwgcmVxdWlyZWRcclxuICAgICAqIEBwYXJhbSBtZXNzYWdlIGBzdHJpbmdgLCByZXF1aXJlZFxyXG4gICAgICogQHBhcmFtIGxpZmV0aW1lIGBudW1iZXJgLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBgdGhpcy5kZWZhdWx0TGlmZXRpbWVgXHJcbiAgICAgKiBAcGFyYW0gcG9zaXRpb24gYE1lc3NhZ2VQb3NpdGlvbmAsIG9wdGlvbmFsLCBkZWZhdWx0IGlzIGB0aGlzLmRlZmF1bHRQb3NpdGlvbmBcclxuICAgICAqIEBwYXJhbSBjbG9zZWFibGUgYGJvb2xlYW5gLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBgdGhpcy5kZWZhdWx0Q2xvc2FibGVgXHJcbiAgICAgKi9cclxuXHRwdWJsaWMgc2hvd0luZm9NZXNzYWdlKFxyXG5cdFx0dGl0bGU6IHN0cmluZyxcclxuXHRcdG1lc3NhZ2U6IHN0cmluZyxcclxuXHRcdGNvbmZpZ3VyYXRpb24/OiBQYXJ0aWFsPE9taXQ8TWVzc2FnZUNvbmZpZ3VyYXRpb24sICdzZXZlcml0eSc+PlxyXG5cdCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zaG93KHRpdGxlLCBtZXNzYWdlLCB7XHJcblx0XHRcdC4uLmNvbmZpZ3VyYXRpb24sXHJcblx0XHRcdHNldmVyaXR5OiBNZXNzYWdlU2V2ZXJpdHkuSU5GT1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuICAgIHByaXZhdGUgc2hvd01lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSk6IHZvaWQge1xyXG4gICAgICAgIGxldCBjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjZi10b2FzdHMtJyArIG1lc3NhZ2UucG9zaXRpb24gKyAnLWNvbnRhaW5lcicpO1xyXG4gICAgICAgIGlmIChjb250YWluZXIgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5pZCA9ICdjZi10b2FzdHMtJyArIG1lc3NhZ2UucG9zaXRpb24gKyAnLWNvbnRhaW5lcic7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRpdjogSFRNTEVsZW1lbnQgPSB0aGlzLmNyZWF0ZU1lc3NhZ2VIdG1sRWxlbWVudChtZXNzYWdlKTtcclxuXHJcbiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7XHJcblxyXG4gICAgICAgIGlmIChtZXNzYWdlLmxpZmV0aW1lICE9PSBudWxsKSB7XHJcblxyXG5cdFx0XHRsZXQgZGlzcG9zZVRpbWVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gdGltZXIobWVzc2FnZS5saWZldGltZSArIDUwMCkuc3Vic2NyaWJlKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmhpZGVNZXNzYWdlKGRpdik7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0aWYgKG1lc3NhZ2Uua2VlcE9uSG92ZXIpIHtcclxuXHRcdFx0XHRkaXYuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHtcclxuXHRcdFx0XHRcdGlmIChkaXNwb3NlVGltZXJTdWJzY3JpcHRpb24gIT09IG51bGwpIHtcclxuXHRcdFx0XHRcdFx0ZGlzcG9zZVRpbWVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcblx0XHRcdFx0XHRcdGRpc3Bvc2VUaW1lclN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVNZXNzYWdlSHRtbEVsZW1lbnQobWVzc2FnZTogTWVzc2FnZSk6IEhUTUxFbGVtZW50IHtcclxuICAgICAgICBjb25zdCBkaXY6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgZGl2LmNsYXNzTGlzdC5hZGQoJ2NmLXRvYXN0JywgJ2NmLScgKyBtZXNzYWdlLnNldmVyaXR5ICsgJy10b2FzdCcpO1xyXG4gICAgICAgIGNvbnN0IHRpdGxlRGl2OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIHRpdGxlRGl2LmNsYXNzTGlzdC5hZGQoJ2NmLXRvYXN0LXRpdGxlJyk7XHJcbiAgICAgICAgdGl0bGVEaXYuaW5uZXJUZXh0ID0gbWVzc2FnZS50aXRsZTtcclxuICAgICAgICBjb25zdCBtZXNzYWdlRGl2OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIG1lc3NhZ2VEaXYuY2xhc3NMaXN0LmFkZCgnY2YtdG9hc3QtbWVzc2FnZScpO1xyXG4gICAgICAgIG1lc3NhZ2VEaXYuaW5uZXJUZXh0ID0gbWVzc2FnZS5tZXNzYWdlO1xyXG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZCh0aXRsZURpdik7XHJcbiAgICAgICAgZGl2LmFwcGVuZENoaWxkKG1lc3NhZ2VEaXYpO1xyXG4gICAgICAgIGlmIChtZXNzYWdlLmNsb3NlYWJsZSkge1xyXG4gICAgICAgICAgICBjb25zdCBjbG9zZUljb246IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaScpO1xyXG4gICAgICAgICAgICBjbG9zZUljb24uY2xhc3NMaXN0LmFkZCgnY2xvc2UtaWNvbicsICdyZW1peGljb24nLCAnY2xvc2UtbGluZScpO1xyXG4gICAgICAgICAgICBjbG9zZUljb24ub25jbGljayA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZU1lc3NhZ2UoZGl2LCB0cnVlKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgZGl2LmFwcGVuZENoaWxkKGNsb3NlSWNvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkaXY7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoaWRlTWVzc2FnZShtZXNzYWdlRWxlbWVudDogSFRNTEVsZW1lbnQsIGZvcmNlQ2xvc2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIG1lc3NhZ2VFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2hpZGRlbi10b2FzdCcpO1xyXG5cclxuICAgICAgICBsZXQgcmVtYWluT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIG1lc3NhZ2VFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKCkgPT4ge1xyXG4gICAgICAgICAgICByZW1haW5PcGVuID0gdHJ1ZTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHRpbWVyKDUwMCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlbWFpbk9wZW4gJiYgIWZvcmNlQ2xvc2UpIHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2VFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbi10b2FzdCcpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG1lc3NhZ2VFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKCkgPT4ge30pKTtcclxuICAgICAgICAgICAgbWVzc2FnZUVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU3ViamVjdC5zdWJzY3JpYmUoKG1lc3NhZ2U6IE1lc3NhZ2UpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaG93TWVzc2FnZShtZXNzYWdlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZWZveGNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9CLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pGLE9BQU8sRUFBaUMsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUszQyxNQUFNLE9BQU8sY0FBYztJQW1CdkI7Ozs7OztPQU1HO0lBQ0ksSUFBSSxDQUFDLEtBQWEsRUFBRSxPQUFlLEVBQUUsYUFBNkM7UUFDckYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDOUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CO1lBQ25CLEdBQUcsYUFBYTtZQUN6QixLQUFLO1lBQ0wsT0FBTztTQUNELENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0Msa0JBQWtCLENBQ3hCLEtBQWEsRUFDYixPQUFlLEVBQ2YsYUFBK0Q7UUFFL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQ3pCLEdBQUcsYUFBYTtZQUNoQixRQUFRLEVBQUUsZUFBZSxDQUFDLE9BQU87U0FDakMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVFOzs7Ozs7Ozs7O09BVUc7SUFDQyxpQkFBaUIsQ0FDdkIsS0FBYSxFQUNiLE9BQWUsRUFDZixhQUErRDtRQUUvRCxJQUFJLENBQUMsSUFBSSxD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UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUosY0FBYyxDQUFDLFFBQTRCLFNBQVM7UUFDbkQsT0FBTyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzNCLFVBQVUsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzNCLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzdFO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0gsQ0FBQztJQUVFO1FBMU1BOzs7O1dBSUc7UUFDSSx5QkFBb0IsR0FBeUIsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFFN0Y7O1dBRUc7UUFDSSxzQkFBaUIsR0FBVyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUVwRTs7V0FFRztRQUNLLG1CQUFjLEdBQXFCLElBQUksT0FBTyxFQUFFLENBQUM7UUE0THJELElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQWhOUSxjQUFjO21IQUFkLGNBQWMsY0FGZCxNQUFNOzs0RkFFTixjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBFTVBUWSwgT3BlcmF0b3JGdW5jdGlvbiwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlQ29uZmlndXJhdGlvbiwgTWVzc2FnZVNldmVyaXR5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IE1FU1NBR0VfREVGQVVMVF9DT05GSUdVUkFUSU9OLCBNRVNTQUdFX0RFRkFVTFRfRVJST1JfVElUTEUgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgaXNTZXJ2ZXJFcnJvciB9IGZyb20gJy4uL2hlbHBlcnMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVzc2FnZVNlcnZpY2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBcclxuICAgICAqIENhbiBiZSBjaGFuZ2VkIGlmIHlvdSBvdmVyd3JpdGUgaXQgb3IgdXNlIHRoZSBgTUVTU0FHRV9ERUZBVUxUX0NPTkZJR1VSQVRJT05gIEluamVjdGlvblRva2VuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWZhdWx0Q29uZmlndXJhdGlvbjogTWVzc2FnZUNvbmZpZ3VyYXRpb24gPSBpbmplY3QoTUVTU0FHRV9ERUZBVUxUX0NPTkZJR1VSQVRJT04pO1xyXG5cclxuXHQvKipcclxuXHQgKiBEZWZhdWx0IGVycm9yIHRpdGxlXHJcblx0ICovXHJcblx0cHVibGljIGRlZmF1bHRFcnJvclRpdGxlOiBzdHJpbmcgPSBpbmplY3QoTUVTU0FHRV9ERUZBVUxUX0VSUk9SX1RJVExFKTtcclxuICAgIFxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXNzYWdlIHN1YmplY3RcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU3ViamVjdDogU3ViamVjdDxNZXNzYWdlPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93XHJcbiAgICAgKiBcclxuICAgICAqIERpc3BsYXlzIG1lc3NhZ2Ugd2l0aCB0aGUgZ2l2ZW4gY29uZmlndXJhdGlvblxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZUNvbmZpZ3VyYXRpb24gYFBhcnRpYWw8TWVzc2FnZUNvbmZpZ3VyYXRpb24+YFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2hvdyh0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGNvbmZpZ3VyYXRpb24/OiBQYXJ0aWFsPE1lc3NhZ2VDb25maWd1cmF0aW9uPik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVN1YmplY3QubmV4dCh7XHJcblx0XHRcdC4uLnRoaXMuZGVmYXVsdENvbmZpZ3VyYXRpb24sXHJcbiAgICAgICAgICAgIC4uLmNvbmZpZ3VyYXRpb24sXHJcblx0XHRcdHRpdGxlLFxyXG5cdFx0XHRtZXNzYWdlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IHN1Y2Nlc3MgbWVzc2FnZVxyXG4gICAgICogXHJcbiAgICAgKiBEaXNwbGF5IGEgbWVzc2FnZSB3aXRoIGRlZmF1bHQgc3VjY2VzcyBzZXZlcml0eVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdGl0bGUgYHN0cmluZ2AsIHJlcXVpcmVkXHJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBgc3RyaW5nYCwgcmVxdWlyZWRcclxuICAgICAqIEBwYXJhbSBsaWZldGltZSBgbnVtYmVyYCwgb3B0aW9uYWwsIGRlZmF1bHQgaXMgYHRoaXMuZGVmYXVsdExpZmV0aW1lYFxyXG4gICAgICogQHBhcmFtIHBvc2l0aW9uIGBNZXNzYWdlUG9zaXRpb25gLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBgdGhpcy5kZWZhdWx0UG9zaXRpb25gXHJcbiAgICAgKiBAcGFyYW0gY2xvc2VhYmxlIGBib29sZWFuYCwgb3B0aW9uYWwsIGRlZmF1bHQgaXMgYHRoaXMuZGVmYXVsdENsb3NhYmxlYFxyXG4gICAgICovXHJcblx0cHVibGljIHNob3dTdWNjZXNzTWVzc2FnZShcclxuXHRcdHRpdGxlOiBzdHJpbmcsXHJcblx0XHRtZXNzYWdlOiBzdHJpbmcsXHJcblx0XHRjb25maWd1cmF0aW9uPzogUGFydGlhbDxPbWl0PE1lc3NhZ2VDb25maWd1cmF0aW9uLCAnc2V2ZXJpdHknPj5cclxuXHQpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2hvdyh0aXRsZSwgbWVzc2FnZSwge1xyXG5cdFx0XHQuLi5jb25maWd1cmF0aW9uLFxyXG5cdFx0XHRzZXZlcml0eTogTWVzc2FnZVNldmVyaXR5LlNVQ0NFU1NcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3cgZGFuZ2VyIG1lc3NhZ2VcclxuICAgICAqIFxyXG4gICAgICogRGlzcGxheSBhIG1lc3NhZ2Ugd2l0aCBkZWZhdWx0IGRhbmdlciBzZXZlcml0eVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdGl0bGUgYHN0cmluZ2AsIHJlcXVpcmVkXHJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBgc3RyaW5nYCwgcmVxdWlyZWRcclxuICAgICAqIEBwYXJhbSBsaWZldGltZSBgbnVtYmVyYCwgb3B0aW9uYWwsIGRlZmF1bHQgaXMgYHRoaXMuZGVmYXVsdExpZmV0aW1lYFxyXG4gICAgICogQHBhcmFtIHBvc2l0aW9uIGBNZXNzYWdlUG9zaXRpb25gLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBgdGhpcy5kZWZhdWx0UG9zaXRpb25gXHJcbiAgICAgKiBAcGFyYW0gY2xvc2VhYmxlIGBib29sZWFuYCwgb3B0aW9uYWwsIGRlZmF1bHQgaXMgYHRoaXMuZGVmYXVsdENsb3NhYmxlYFxyXG4gICAgICovXHJcblx0cHVibGljIHNob3dEYW5nZXJNZXNzYWdlKFxyXG5cdFx0dGl0bGU6IHN0cmluZyxcclxuXHRcdG1lc3NhZ2U6IHN0cmluZyxcclxuXHRcdGNvbmZpZ3VyYXRpb24/OiBQYXJ0aWFsPE9taXQ8TWVzc2FnZUNvbmZpZ3VyYXRpb24sICdzZXZlcml0eSc+PlxyXG5cdCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zaG93KHRpdGxlLCBtZXNzYWdlLCB7XHJcblx0XHRcdC4uLmNvbmZpZ3VyYXRpb24sXHJcblx0XHRcdHNldmVyaXR5OiBNZXNzYWdlU2V2ZXJpdHkuREFOR0VSLFxyXG5cdFx0XHRrZWVwT25Ib3ZlcjogdHJ1ZVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdyB3YXJuaW5nIG1lc3NhZ2VcclxuICAgICAqIFxyXG4gICAgICogRGlzcGxheSBhIG1lc3NhZ2Ugd2l0aCBkZWZhdWx0IHdhcm5pbmcgc2V2ZXJpdHlcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHRpdGxlIGBzdHJpbmdgLCByZXF1aXJlZFxyXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgYHN0cmluZ2AsIHJlcXVpcmVkXHJcbiAgICAgKiBAcGFyYW0gbGlmZXRpbWUgYG51bWJlcmAsIG9wdGlvbmFsLCBkZWZhdWx0IGlzIGB0aGlzLmRlZmF1bHRMaWZldGltZWBcclxuICAgICAqIEBwYXJhbSBwb3NpdGlvbiBgTWVzc2FnZVBvc2l0aW9uYCwgb3B0aW9uYWwsIGRlZmF1bHQgaXMgYHRoaXMuZGVmYXVsdFBvc2l0aW9uYFxyXG4gICAgICogQHBhcmFtIGNsb3NlYWJsZSBgYm9vbGVhbmAsIG9wdGlvbmFsLCBkZWZhdWx0IGlzIGB0aGlzLmRlZmF1bHRDbG9zYWJsZWBcclxuICAgICAqL1xyXG5cdHB1YmxpYyBzaG93V2FybmluZ01lc3NhZ2UoXHJcblx0XHR0aXRsZTogc3RyaW5nLFxyXG5cdFx0bWVzc2FnZTogc3RyaW5nLFxyXG5cdFx0Y29uZmlndXJhdGlvbj86IFBhcnRpYWw8T21pdDxNZXNzYWdlQ29uZmlndXJhdGlvbiwgJ3NldmVyaXR5Jz4+XHJcblx0KTogdm9pZCB7XHJcblx0XHR0aGlzLnNob3codGl0bGUsIG1lc3NhZ2UsIHtcclxuXHRcdFx0Li4uY29uZmlndXJhdGlvbixcclxuXHRcdFx0c2V2ZXJpdHk6IE1lc3NhZ2VTZXZlcml0eS5XQVJOSU5HXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93IGluZm8gbWVzc2FnZVxyXG4gICAgICogXHJcbiAgICAgKiBEaXNwbGF5IGEgbWVzc2FnZSB3aXRoIGRlZmF1bHQgaW5mbyBzZXZlcml0eVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gdGl0bGUgYHN0cmluZ2AsIHJlcXVpcmVkXHJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSBgc3RyaW5nYCwgcmVxdWlyZWRcclxuICAgICAqIEBwYXJhbSBsaWZldGltZSBgbnVtYmVyYCwgb3B0aW9uYWwsIGRlZmF1bHQgaXMgYHRoaXMuZGVmYXVsdExpZmV0aW1lYFxyXG4gICAgICogQHBhcmFtIHBvc2l0aW9uIGBNZXNzYWdlUG9zaXRpb25gLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBgdGhpcy5kZWZhdWx0UG9zaXRpb25gXHJcbiAgICAgKiBAcGFyYW0gY2xvc2VhYmxlIGBib29sZWFuYCwgb3B0aW9uYWwsIGRlZmF1bHQgaXMgYHRoaXMuZGVmYXVsdENsb3NhYmxlYFxyXG4gICAgICovXHJcblx0cHVibGljIHNob3dJbmZvTWVzc2FnZShcclxuXHRcdHRpdGxlOiBzdHJpbmcsXHJcblx0XHRtZXNzYWdlOiBzdHJpbmcsXHJcblx0XHRjb25maWd1cmF0aW9uPzogUGFydGlhbDxPbWl0PE1lc3NhZ2VDb25maWd1cmF0aW9uLCAnc2V2ZXJpdHknPj5cclxuXHQpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2hvdyh0aXRsZSwgbWVzc2FnZSwge1xyXG5cdFx0XHQuLi5jb25maWd1cmF0aW9uLFxyXG5cdFx0XHRzZXZlcml0eTogTWVzc2FnZVNldmVyaXR5LklORk9cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcbiAgICBwcml2YXRlIHNob3dNZXNzYWdlKG1lc3NhZ2U6IE1lc3NhZ2UpOiB2b2lkIHtcclxuICAgICAgICBsZXQgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2YtdG9hc3RzLScgKyBtZXNzYWdlLnBvc2l0aW9uICsgJy1jb250YWluZXInKTtcclxuICAgICAgICBpZiAoY29udGFpbmVyID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgICAgICBjb250YWluZXIuaWQgPSAnY2YtdG9hc3RzLScgKyBtZXNzYWdlLnBvc2l0aW9uICsgJy1jb250YWluZXInO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkaXY6IEhUTUxFbGVtZW50ID0gdGhpcy5jcmVhdGVNZXNzYWdlSHRtbEVsZW1lbnQobWVzc2FnZSk7XHJcblxyXG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkaXYpO1xyXG5cclxuICAgICAgICBpZiAobWVzc2FnZS5saWZldGltZSAhPT0gbnVsbCkge1xyXG5cclxuXHRcdFx0bGV0IGRpc3Bvc2VUaW1lclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IHRpbWVyKG1lc3NhZ2UubGlmZXRpbWUgKyA1MDApLnN1YnNjcmliZSgoKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5oaWRlTWVzc2FnZShkaXYpO1xyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRcdGlmIChtZXNzYWdlLmtlZXBPbkhvdmVyKSB7XHJcblx0XHRcdFx0ZGl2LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoZGlzcG9zZVRpbWVyU3Vic2NyaXB0aW9uICE9PSBudWxsKSB7XHJcblx0XHRcdFx0XHRcdGRpc3Bvc2VUaW1lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG5cdFx0XHRcdFx0XHRkaXNwb3NlVGltZXJTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlTWVzc2FnZUh0bWxFbGVtZW50KG1lc3NhZ2U6IE1lc3NhZ2UpOiBIVE1MRWxlbWVudCB7XHJcbiAgICAgICAgY29uc3QgZGl2OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIGRpdi5jbGFzc0xpc3QuYWRkKCdjZi10b2FzdCcsICdjZi0nICsgbWVzc2FnZS5zZXZlcml0eSArICctdG9hc3QnKTtcclxuICAgICAgICBjb25zdCB0aXRsZURpdjogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICB0aXRsZURpdi5jbGFzc0xpc3QuYWRkKCdjZi10b2FzdC10aXRsZScpO1xyXG4gICAgICAgIHRpdGxlRGl2LmlubmVyVGV4dCA9IG1lc3NhZ2UudGl0bGU7XHJcbiAgICAgICAgY29uc3QgbWVzc2FnZURpdjogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBtZXNzYWdlRGl2LmNsYXNzTGlzdC5hZGQoJ2NmLXRvYXN0LW1lc3NhZ2UnKTtcclxuICAgICAgICBtZXNzYWdlRGl2LmlubmVyVGV4dCA9IG1lc3NhZ2UubWVzc2FnZTtcclxuICAgICAgICBkaXYuYXBwZW5kQ2hpbGQodGl0bGVEaXYpO1xyXG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZChtZXNzYWdlRGl2KTtcclxuICAgICAgICBpZiAobWVzc2FnZS5jbG9zZWFibGUpIHtcclxuICAgICAgICAgICAgY29uc3QgY2xvc2VJY29uOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKTtcclxuICAgICAgICAgICAgY2xvc2VJY29uLmNsYXNzTGlzdC5hZGQoJ2Nsb3NlLWljb24nLCAncmVtaXhpY29uJywgJ2Nsb3NlLWxpbmUnKTtcclxuICAgICAgICAgICAgY2xvc2VJY29uLm9uY2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGVNZXNzYWdlKGRpdiwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGRpdi5hcHBlbmRDaGlsZChjbG9zZUljb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGl2O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGlkZU1lc3NhZ2UobWVzc2FnZUVsZW1lbnQ6IEhUTUxFbGVtZW50LCBmb3JjZUNsb3NlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgICAgICBtZXNzYWdlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4tdG9hc3QnKTtcclxuXHJcbiAgICAgICAgbGV0IHJlbWFpbk9wZW4gPSBmYWxzZTtcclxuICAgICAgICBtZXNzYWdlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCgpID0+IHtcclxuICAgICAgICAgICAgcmVtYWluT3BlbiA9IHRydWU7XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICB0aW1lcig1MDApLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZW1haW5PcGVuICYmICFmb3JjZUNsb3NlKSB7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4tdG9hc3QnKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBtZXNzYWdlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCgpID0+IHt9KSk7XHJcbiAgICAgICAgICAgIG1lc3NhZ2VFbGVtZW50LnJlbW92ZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cdFxyXG5cdGhhbmRsZUFwaUVycm9yKHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQpOiBPcGVyYXRvckZ1bmN0aW9uPGFueSwgYW55PiB7XHJcblx0XHRyZXR1cm4gc291cmNlJCA9PiBzb3VyY2UkLnBpcGUoXHJcblx0XHQgIFx0Y2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChpc1NlcnZlckVycm9yKGVycm9yKSkge1xyXG5cdFx0XHRcdFx0dGhpcy5zaG93RGFuZ2VyTWVzc2FnZSh0aXRsZSB8fCB0aGlzLmRlZmF1bHRFcnJvclRpdGxlLCBlcnJvci5lcnJvci5tZXNzYWdlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIEVNUFRZO1xyXG5cdFx0ICBcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTdWJqZWN0LnN1YnNjcmliZSgobWVzc2FnZTogTWVzc2FnZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dNZXNzYWdlKG1lc3NhZ2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class MicroDataService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.microData = {};
|
|
6
|
+
}
|
|
7
|
+
getMicroData(key, defaultOnUndefined = '') {
|
|
8
|
+
return this.microData[key] || defaultOnUndefined;
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MicroDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MicroDataService, providedIn: 'root' }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MicroDataService, decorators: [{
|
|
14
|
+
type: Injectable,
|
|
15
|
+
args: [{
|
|
16
|
+
providedIn: 'root'
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlZm94Y29yZS9zcmMvbGliL3NlcnZpY2VzL21pY3JvZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFLQyxjQUFTLEdBQTRCLEVBQUUsQ0FBQztLQU14QztJQUpBLFlBQVksQ0FBQyxHQUFXLEVBQUUscUJBQTZCLEVBQUU7UUFDeEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLGtCQUFrQixDQUFDO0lBQ2xELENBQUM7K0dBTlcsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGYixNQUFNOzs0RkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1pY3JvRGF0YVNlcnZpY2Uge1xyXG5cclxuXHRtaWNyb0RhdGE6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge307XHJcblxyXG5cdGdldE1pY3JvRGF0YShrZXk6IHN0cmluZywgZGVmYXVsdE9uVW5kZWZpbmVkOiBzdHJpbmcgPSAnJyk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5taWNyb0RhdGFba2V5XSB8fCBkZWZhdWx0T25VbmRlZmluZWQ7XHJcblx0fVxyXG5cclxufSJdfQ==
|
|
@@ -11,4 +11,9 @@ export const MESSAGE_DEFAULT_CONFIGURATION = new InjectionToken('Message default
|
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
|
-
|
|
14
|
+
export const MESSAGE_DEFAULT_ERROR_TITLE = new InjectionToken('Message default error title', {
|
|
15
|
+
factory: () => {
|
|
16
|
+
return 'Hiba';
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZGVmb3hjb3JlL3NyYy9saWIvdG9rZW5zL21lc3NhZ2UudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQXlDLElBQUksY0FBYyxDQUFDLCtCQUErQixFQUFFO0lBQ3RJLE9BQU8sRUFBRSxHQUF5QixFQUFFO1FBQ25DLE9BQU87WUFDTixTQUFTLEVBQUUsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLGVBQWUsQ0FBQyxHQUFHO1lBQzdCLFFBQVEsRUFBRSxlQUFlLENBQUMsT0FBTztZQUNqQyxXQUFXLEVBQUUsS0FBSztTQUNsQixDQUFDO0lBQ0gsQ0FBQztDQUNELENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUEyQixJQUFJLGNBQWMsQ0FBQyw2QkFBNkIsRUFBRTtJQUNwSCxPQUFPLEVBQUUsR0FBVyxFQUFFO1FBQ3JCLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztDQUNELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWVzc2FnZUNvbmZpZ3VyYXRpb24sIE1lc3NhZ2VQb3NpdGlvbiwgTWVzc2FnZVNldmVyaXR5IH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBNRVNTQUdFX0RFRkFVTFRfQ09ORklHVVJBVElPTjogSW5qZWN0aW9uVG9rZW48TWVzc2FnZUNvbmZpZ3VyYXRpb24+ID0gbmV3IEluamVjdGlvblRva2VuKCdNZXNzYWdlIGRlZmF1bHQgY29uZmlndXJhdGlvbicsIHtcclxuXHRmYWN0b3J5OiAoKTogTWVzc2FnZUNvbmZpZ3VyYXRpb24gPT4ge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0Y2xvc2VhYmxlOiB0cnVlLFxyXG5cdFx0XHRsaWZldGltZTogMzAwMCxcclxuXHRcdFx0cG9zaXRpb246IE1lc3NhZ2VQb3NpdGlvbi5UT1AsXHJcblx0XHRcdHNldmVyaXR5OiBNZXNzYWdlU2V2ZXJpdHkuU1VDQ0VTUyxcclxuXHRcdFx0a2VlcE9uSG92ZXI6IGZhbHNlXHJcblx0XHR9O1xyXG5cdH1cclxufSk7XHJcblxyXG5leHBvcnQgY29uc3QgTUVTU0FHRV9ERUZBVUxUX0VSUk9SX1RJVExFOiBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+ID0gbmV3IEluamVjdGlvblRva2VuKCdNZXNzYWdlIGRlZmF1bHQgZXJyb3IgdGl0bGUnLCB7XHJcblx0ZmFjdG9yeTogKCk6IHN0cmluZyA9PiB7XHJcblx0XHRyZXR1cm4gJ0hpYmEnO1xyXG5cdH1cclxufSk7XHJcbiJdfQ==
|
package/fesm2022/codefoxcore.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Subject, filter, Observable, takeUntil, timer, of, tap, map, throwError } from 'rxjs';
|
|
1
|
+
import { Subject, filter, Observable, takeUntil, timer, catchError, EMPTY, of, tap, map, throwError } from 'rxjs';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { InjectionToken, inject, Injector, PLATFORM_ID, ApplicationRef, createComponent, Injectable, ChangeDetectorRef, DestroyRef, makeEnvironmentProviders, Pipe } from '@angular/core';
|
|
4
4
|
import { isPlatformBrowser, DOCUMENT } from '@angular/common';
|
|
5
5
|
import { Title } from '@angular/platform-browser';
|
|
6
|
-
import { HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
7
|
-
import { catchError } from 'rxjs/operators';
|
|
6
|
+
import { HttpErrorResponse, HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
7
|
+
import { catchError as catchError$1 } from 'rxjs/operators';
|
|
8
8
|
|
|
9
9
|
class DialogRef {
|
|
10
10
|
constructor() {
|
|
@@ -220,6 +220,11 @@ const MESSAGE_DEFAULT_CONFIGURATION = new InjectionToken('Message default config
|
|
|
220
220
|
};
|
|
221
221
|
}
|
|
222
222
|
});
|
|
223
|
+
const MESSAGE_DEFAULT_ERROR_TITLE = new InjectionToken('Message default error title', {
|
|
224
|
+
factory: () => {
|
|
225
|
+
return 'Hiba';
|
|
226
|
+
}
|
|
227
|
+
});
|
|
223
228
|
|
|
224
229
|
const LOG_LEVEL = new InjectionToken('Log level', {
|
|
225
230
|
factory: () => {
|
|
@@ -588,6 +593,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
588
593
|
}]
|
|
589
594
|
}], ctorParameters: function () { return []; } });
|
|
590
595
|
|
|
596
|
+
function isBrowser() {
|
|
597
|
+
const platformId = inject(PLATFORM_ID);
|
|
598
|
+
return isPlatformBrowser(platformId);
|
|
599
|
+
}
|
|
600
|
+
function localStorage() {
|
|
601
|
+
const document = inject(DOCUMENT);
|
|
602
|
+
if (document.defaultView !== null) {
|
|
603
|
+
return document.defaultView.window.localStorage;
|
|
604
|
+
}
|
|
605
|
+
return null;
|
|
606
|
+
}
|
|
607
|
+
function sessionStorage() {
|
|
608
|
+
const document = inject(DOCUMENT);
|
|
609
|
+
if (document.defaultView !== null) {
|
|
610
|
+
return document.defaultView.window.sessionStorage;
|
|
611
|
+
}
|
|
612
|
+
return null;
|
|
613
|
+
}
|
|
614
|
+
function isServerError(error) {
|
|
615
|
+
return error instanceof HttpErrorResponse && typeof error.error === 'object' && error.error['message'] !== undefined && typeof error.error['message'] === 'string';
|
|
616
|
+
}
|
|
617
|
+
|
|
591
618
|
class MessageService {
|
|
592
619
|
/**
|
|
593
620
|
* Show
|
|
@@ -732,6 +759,14 @@ class MessageService {
|
|
|
732
759
|
messageElement.remove();
|
|
733
760
|
});
|
|
734
761
|
}
|
|
762
|
+
handleApiError(title = undefined) {
|
|
763
|
+
return source$ => source$.pipe(catchError((error) => {
|
|
764
|
+
if (isServerError(error)) {
|
|
765
|
+
this.showDangerMessage(title || this.defaultErrorTitle, error.error.message);
|
|
766
|
+
}
|
|
767
|
+
return EMPTY;
|
|
768
|
+
}));
|
|
769
|
+
}
|
|
735
770
|
constructor() {
|
|
736
771
|
/**
|
|
737
772
|
* Default configuration
|
|
@@ -739,6 +774,10 @@ class MessageService {
|
|
|
739
774
|
* Can be changed if you overwrite it or use the `MESSAGE_DEFAULT_CONFIGURATION` InjectionToken
|
|
740
775
|
*/
|
|
741
776
|
this.defaultConfiguration = inject(MESSAGE_DEFAULT_CONFIGURATION);
|
|
777
|
+
/**
|
|
778
|
+
* Default error title
|
|
779
|
+
*/
|
|
780
|
+
this.defaultErrorTitle = inject(MESSAGE_DEFAULT_ERROR_TITLE);
|
|
742
781
|
/**
|
|
743
782
|
* Message subject
|
|
744
783
|
*/
|
|
@@ -895,25 +934,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
895
934
|
}]
|
|
896
935
|
}] });
|
|
897
936
|
|
|
898
|
-
function isBrowser() {
|
|
899
|
-
const platformId = inject(PLATFORM_ID);
|
|
900
|
-
return isPlatformBrowser(platformId);
|
|
901
|
-
}
|
|
902
|
-
function localStorage() {
|
|
903
|
-
const document = inject(DOCUMENT);
|
|
904
|
-
if (document.defaultView !== null) {
|
|
905
|
-
return document.defaultView.window.localStorage;
|
|
906
|
-
}
|
|
907
|
-
return null;
|
|
908
|
-
}
|
|
909
|
-
function sessionStorage() {
|
|
910
|
-
const document = inject(DOCUMENT);
|
|
911
|
-
if (document.defaultView !== null) {
|
|
912
|
-
return document.defaultView.window.sessionStorage;
|
|
913
|
-
}
|
|
914
|
-
return null;
|
|
915
|
-
}
|
|
916
|
-
|
|
917
937
|
class CookieService {
|
|
918
938
|
constructor() {
|
|
919
939
|
this.browser = isBrowser();
|
|
@@ -1320,6 +1340,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1320
1340
|
}]
|
|
1321
1341
|
}] });
|
|
1322
1342
|
|
|
1343
|
+
class MicroDataService {
|
|
1344
|
+
constructor() {
|
|
1345
|
+
this.microData = {};
|
|
1346
|
+
}
|
|
1347
|
+
getMicroData(key, defaultOnUndefined = '') {
|
|
1348
|
+
return this.microData[key] || defaultOnUndefined;
|
|
1349
|
+
}
|
|
1350
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MicroDataService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1351
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MicroDataService, providedIn: 'root' }); }
|
|
1352
|
+
}
|
|
1353
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MicroDataService, decorators: [{
|
|
1354
|
+
type: Injectable,
|
|
1355
|
+
args: [{
|
|
1356
|
+
providedIn: 'root'
|
|
1357
|
+
}]
|
|
1358
|
+
}] });
|
|
1359
|
+
|
|
1323
1360
|
class Dialog {
|
|
1324
1361
|
constructor() {
|
|
1325
1362
|
this.ref = inject(DialogRef);
|
|
@@ -1430,7 +1467,7 @@ class ErrorInterceptor extends BaseInterceptor {
|
|
|
1430
1467
|
if (this.skipInterceptor()) {
|
|
1431
1468
|
return next.handle(request);
|
|
1432
1469
|
}
|
|
1433
|
-
return next.handle(request).pipe(catchError((httpErrorResponse) => {
|
|
1470
|
+
return next.handle(request).pipe(catchError$1((httpErrorResponse) => {
|
|
1434
1471
|
if (this.interceptorsService.errorCallbackfunction !== null && !this.interceptorsService.errorSkipStatusCodes.includes(httpErrorResponse.status)) {
|
|
1435
1472
|
this.loggerService.info('Error Interceptor Callback Function Called');
|
|
1436
1473
|
this.interceptorsService.errorCallbackfunction(httpErrorResponse);
|
|
@@ -1513,9 +1550,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1513
1550
|
}]
|
|
1514
1551
|
}] });
|
|
1515
1552
|
|
|
1553
|
+
class MicroDataPipe {
|
|
1554
|
+
constructor() {
|
|
1555
|
+
this.microDataService = inject(MicroDataService);
|
|
1556
|
+
}
|
|
1557
|
+
transform(key, defaultOnUndefined = '') {
|
|
1558
|
+
return this.microDataService.getMicroData(key, defaultOnUndefined);
|
|
1559
|
+
}
|
|
1560
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MicroDataPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
1561
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MicroDataPipe, isStandalone: true, name: "microdata" }); }
|
|
1562
|
+
}
|
|
1563
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MicroDataPipe, decorators: [{
|
|
1564
|
+
type: Pipe,
|
|
1565
|
+
args: [{
|
|
1566
|
+
standalone: true,
|
|
1567
|
+
name: 'microdata'
|
|
1568
|
+
}]
|
|
1569
|
+
}] });
|
|
1570
|
+
|
|
1516
1571
|
/**
|
|
1517
1572
|
* Generated bundle index. Do not edit.
|
|
1518
1573
|
*/
|
|
1519
1574
|
|
|
1520
|
-
export { ALERT_CONFIGURATIONS, ALERT_DEFAULT_BUTTON_CONFIGURATION, AcceptValidationMode, ApiService, CONFIRM_CONFIGURATIONS, ConfirmDialog, CookieService, DIALOG_ALERT_COMPONENT, DIALOG_CONFIRM_COMPONENT, Dialog, DialogConfig, DialogInjector, DialogRef, DialogService, ErrorInterceptor, GOOGLE_MAPS_API_KEY, GoogleMapsService, InterceptorType, LOG_LEVEL, LogLevel, LoggerService, MESSAGE_DEFAULT_CONFIGURATION, MessagePosition, MessageService, MessageSeverity, OPENED_DIALOG_BODY_CLASS, PREDEFINED_DIALOGS, Precheck, PrecheckInterceptor, TokenInterceptor, TokenService, TokenServiceMode, TranslatePipe, TranslateService, isBrowser, localStorage, provideConfirmConfigurations, provideDialogAlertComponent, provideDialogConfirmComponent, provideGoogleMapsApiKey, provideOpenedDialogBodyClass, providePredefinedDialogs, provideTokenInterceptor, sessionStorage };
|
|
1575
|
+
export { ALERT_CONFIGURATIONS, ALERT_DEFAULT_BUTTON_CONFIGURATION, AcceptValidationMode, ApiService, CONFIRM_CONFIGURATIONS, ConfirmDialog, CookieService, DIALOG_ALERT_COMPONENT, DIALOG_CONFIRM_COMPONENT, Dialog, DialogConfig, DialogInjector, DialogRef, DialogService, ErrorInterceptor, GOOGLE_MAPS_API_KEY, GoogleMapsService, InterceptorType, LOG_LEVEL, LogLevel, LoggerService, MESSAGE_DEFAULT_CONFIGURATION, MESSAGE_DEFAULT_ERROR_TITLE, MessagePosition, MessageService, MessageSeverity, MicroDataPipe, MicroDataService, OPENED_DIALOG_BODY_CLASS, PREDEFINED_DIALOGS, Precheck, PrecheckInterceptor, TokenInterceptor, TokenService, TokenServiceMode, TranslatePipe, TranslateService, isBrowser, isServerError, localStorage, provideConfirmConfigurations, provideDialogAlertComponent, provideDialogConfirmComponent, provideGoogleMapsApiKey, provideOpenedDialogBodyClass, providePredefinedDialogs, provideTokenInterceptor, sessionStorage };
|
|
1521
1576
|
//# sourceMappingURL=codefoxcore.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codefoxcore.mjs","sources":["../../../projects/codefoxcore/src/lib/classes/dialog.ref.class.ts","../../../projects/codefoxcore/src/lib/classes/dialog.config.class.ts","../../../projects/codefoxcore/src/lib/classes/dialog.injector.class.ts","../../../projects/codefoxcore/src/lib/tokens/alert.token.ts","../../../projects/codefoxcore/src/lib/tokens/dialog.token.ts","../../../projects/codefoxcore/src/lib/tokens/confirm.token.ts","../../../projects/codefoxcore/src/lib/interfaces.ts","../../../projects/codefoxcore/src/lib/tokens/message.token.ts","../../../projects/codefoxcore/src/lib/tokens/loglevel.token.ts","../../../projects/codefoxcore/src/lib/tokens/google.maps.token.ts","../../../projects/codefoxcore/src/lib/services/dialog.service.ts","../../../projects/codefoxcore/src/lib/services/message.service.ts","../../../projects/codefoxcore/src/lib/services/logger.service.ts","../../../projects/codefoxcore/src/lib/services/api.service.ts","../../../projects/codefoxcore/src/lib/helpers.ts","../../../projects/codefoxcore/src/lib/services/cookie.service.ts","../../../projects/codefoxcore/src/lib/services/token.service.ts","../../../projects/codefoxcore/src/lib/services/interceptors.service.ts","../../../projects/codefoxcore/src/lib/services/google.maps.service.ts","../../../projects/codefoxcore/src/lib/services/translate.service.ts","../../../projects/codefoxcore/src/lib/classes/dialog.class.ts","../../../projects/codefoxcore/src/lib/classes/confirm.dialog.class.ts","../../../projects/codefoxcore/src/lib/interceptors/base.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/token.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/precheck.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/error.interceptor.ts","../../../projects/codefoxcore/src/lib/providers.ts","../../../projects/codefoxcore/src/lib/pipes/translate.pipe.ts","../../../projects/codefoxcore/src/codefoxcore.ts"],"sourcesContent":["import { filter, Observable, Subject, takeUntil } from \"rxjs\";\r\nimport { CfDialogCloseParams } from \"../interfaces\";\r\nimport { MessageService } from \"../services\";\r\nimport { DialogConfig } from \"../classes\";\r\n\r\nexport class DialogRef<T = any> {\r\n\tmessageService: MessageService | null = null;\r\n dialogConfig: DialogConfig | null = null;\r\n\tprivate readonly _onClose: Subject<any> = new Subject<any>();\r\n onClose: Observable<T | undefined> = this._onClose.asObservable();\r\n onCloseValue: Observable<T> = this._onClose.pipe(filter(result => result !== undefined && result !== null));\r\n onCloseOnValue: (value: any) => Observable<any> = (value: any) => this._onClose.pipe(filter(result => result === value));\r\n private readonly _onMessage: Subject<any> = new Subject<any>();\r\n\tonMessage: Observable<any> = this._onMessage.asObservable();\r\n private readonly _onDestroy = new Subject<any>();\r\n onDestroy: Observable<any> = this._onDestroy.asObservable();\r\n\tsavedTitle: string = '';\r\n\ttitle: string | null = null;\r\n\topened: Date = new Date();\r\n\tprivate doClose(result?: any, params: CfDialogCloseParams = {}): void {\r\n\t\tif (params.message !== undefined && this.messageService !== null) {\r\n\t\t\tthis.messageService.show(params.message.title, params.message.message, params.message);\r\n\t\t}\r\n\t\tthis._onClose.next(result); \r\n\t}\r\n close(result?: any, params: CfDialogCloseParams = {}): void { \r\n\t\tif (this.dialogConfig === null || this.dialogConfig.beforeClose === null) {\r\n\t\t\tthis.doClose(result, params);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tif (this.dialogConfig.beforeClose instanceof Promise) {\r\n\t\t\tthis.dialogConfig.beforeClose.then((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t}).catch(() => {});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.dialogConfig.beforeClose instanceof Observable) {\r\n\t\t\tthis.dialogConfig.beforeClose.pipe(takeUntil(this._onClose)).subscribe((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tconst beforeCloseResult: boolean | Observable<boolean> | Promise<boolean> = this.dialogConfig.beforeClose();\r\n\r\n\t\tif (beforeCloseResult instanceof Promise) {\r\n\t\t\tbeforeCloseResult.then((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t}).catch(() => {});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (beforeCloseResult instanceof Observable) {\r\n\t\t\tbeforeCloseResult.pipe(takeUntil(this._onClose)).subscribe((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (beforeCloseResult) {\r\n\t\t\tthis.doClose(result, params);\r\n\t\t}\r\n\t}\r\n forceClose(result?: any): void {\r\n this.doClose(result);\r\n }\r\n\tmessage(message: any): void { this._onMessage.next(message); }\r\n destroy(): void { this._onDestroy.next(undefined); }\r\n}\r\n","import { ResolveData } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DialogConfiguration } from \"../interfaces\";\r\n\r\nexport class DialogConfig implements DialogConfiguration {\r\n showCloseIcon: boolean = true;\r\n\tbeforeClose: null | (() => boolean | Observable<boolean> | Promise<boolean>) | Observable<boolean> | Promise<boolean> = null;\r\n\tignoreKeyUp: boolean = false;\r\n data: {[key: (string | number)]: any} = {};\r\n noPadding: boolean = false;\r\n\tkeepActiveElement: boolean = false;\r\n\tcontainerClasses: string[] = [];\r\n\tdialogClasses: string[] = [];\r\n resolve: ResolveData = {};\r\n\ttitle: string | null = null;\r\n contentElement: Element | null = null;\r\n single: boolean = false;\r\n width: string | null = null;\r\n\theight: string | null = null;\r\n getData(key: string | number, defaultOnUndefined: any = null): any {\r\n return this.data[key] !== undefined ? this.data[key] : defaultOnUndefined;\r\n }\r\n}\r\n","import { InjectionToken, Injector, Type } from \"@angular/core\";\r\n\r\nexport class DialogInjector implements Injector {\r\n constructor(private _parentInjector: Injector, private _additionalTokens: WeakMap<any, any>) { }\r\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: {}): T;\r\n get(token: any, notFoundValue?: any): any;\r\n get(token: any, notFoundValue?: any, _?: any): any {\r\n const value = this._additionalTokens.get(token);\r\n if (value) { return value; }\r\n return this._parentInjector.get<any>(token, notFoundValue);\r\n }\r\n}","import { InjectionToken } from \"@angular/core\";\r\nimport { AlertButtonConfiguration, AlertConfiguration } from \"../interfaces\";\r\n\r\nexport const ALERT_DEFAULT_BUTTON_CONFIGURATION: InjectionToken<AlertButtonConfiguration> = new InjectionToken('Alert default button', {\r\n\tfactory: (): AlertButtonConfiguration => {\r\n\t\treturn {\r\n\t\t\tlabel: 'alert.ok',\r\n\t\t\tseverity: 'success',\r\n\t\t\tcallback: ({ dialogRef }) => {\r\n\t\t\t\tdialogRef.close();\r\n\t\t\t},\r\n\t\t\tfocus: true,\r\n\t\t\ttranslateLabel: true\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const ALERT_CONFIGURATIONS: InjectionToken<{[key: string]: AlertConfiguration}> = new InjectionToken('Alert configurations predefined', {\r\n factory: (): {[key: string]: AlertConfiguration} => {\r\n return {};\r\n }\r\n});\r\n","import { InjectionToken, Type } from \"@angular/core\";\r\nimport { PredefinedDialogs } from \"../interfaces\";\r\n\r\nexport const PREDEFINED_DIALOGS: InjectionToken<PredefinedDialogs> = new InjectionToken('Predefined dialogs', {\r\n factory: (): PredefinedDialogs => {\r\n return {};\r\n }\r\n});\r\n\r\nexport const OPENED_DIALOG_BODY_CLASS: InjectionToken<string | null> = new InjectionToken('Opened dialog body class', {\r\n factory: (): string | null => {\r\n return null;\r\n }\r\n});\r\n\r\nexport const DIALOG_CONFIRM_COMPONENT: InjectionToken<Type<any> | null> = new InjectionToken('Dialog confirm component', {\r\n\tfactory: (): Type<any> | null => {\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\nexport const DIALOG_ALERT_COMPONENT: InjectionToken<Type<any> | null> = new InjectionToken('Dialog alert component', {\r\n\tfactory: (): Type<any> | null => {\r\n\t\treturn null;\r\n\t}\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { ConfirmConfiguration } from \"../interfaces\";\r\n\r\nexport const CONFIRM_CONFIGURATIONS: InjectionToken<{[key: string]: ConfirmConfiguration}> = new InjectionToken('Confirm configurations predefined', {\r\n factory: (): {[key: string]: ConfirmConfiguration} => {\r\n return {};\r\n }\r\n});\r\n","import { ComponentRef, Type } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DialogRef } from \"./classes/dialog.ref.class\";\r\n\r\nexport interface LabelValue<T = string> {\r\n\tlabel: string;\r\n\tvalue: T;\r\n}\r\n\r\nexport interface DialogComponentRefContainer {\r\n componentRef: ComponentRef<any>;\r\n container: HTMLDivElement;\r\n\topenIndex: number;\r\n}\r\n\r\nexport type PredefinedDialogs = {[key: string]: (() => Promise<Type<any>>) | {component: () => Promise<Type<any>>, configuration: DialogConfiguration}};\r\n\r\nexport interface DialogConfiguration {\r\n showCloseIcon?: boolean;\r\n\tbeforeClose?: CfDialogConfigurationBeforeClose;\r\n\tignoreKeyUp?: boolean;\r\n data?: any;\r\n noPadding?: boolean;\r\n\tkeepActiveElement?: boolean;\r\n\tcontainerClasses?: string[];\r\n\tdialogClasses?: string[];\r\n\ttitle?: string | null;\r\n contentElement?: Element | null;\r\n single?: boolean;\r\n width?: string | null;\r\n\theight?: string | null;\r\n}\r\n\r\nexport type CfDialogConfigurationBeforeClose = null | (() => boolean | Observable<boolean> | Promise<boolean>) | Observable<boolean> | Promise<boolean>;\r\n\r\nexport interface ConfirmConfiguration {\r\n title: string;\r\n text: string;\r\n acceptText: string;\r\n declineText: string;\r\n\thideDeclineButton?: boolean;\r\n switchButtonColors?: boolean;\r\n acceptTimeout?: number;\r\n acceptValidationText?: string;\r\n acceptValidationMode?: AcceptValidationMode;\r\n acceptValidationLabel?: string;\r\n}\r\n\r\nexport interface AlertConfiguration {\r\n title: string;\r\n text: string;\r\n\tshowCloseIcon?: boolean;\r\n\tbutton?: Partial<AlertButtonConfiguration>;\r\n}\r\n\r\nexport enum AcceptValidationMode {\r\n PATTERN = 'PATTERN',\r\n TEXT = 'TEXT'\r\n}\r\n\r\nexport interface AlertButtonConfiguration {\r\n\tlabel: string;\r\n\tseverity: string;\r\n\tcallback: (params: {dialogRef: DialogRef}) => void;\r\n\ttranslateLabel: boolean;\r\n\tfocus: boolean;\r\n}\r\n\r\nexport interface CfDialogCloseParams {\r\n message?: MessagePartial;\r\n}\r\n\r\nexport interface MessagePartial extends Partial<MessageConfiguration> {\r\n title: string;\r\n message: string;\r\n}\r\n\r\nexport interface MessageConfiguration {\r\n closeable: boolean;\r\n position: MessagePosition;\r\n lifetime: number | null;\r\n severity: MessageSeverity;\r\n\tkeepOnHover: boolean;\r\n}\r\nexport enum MessagePosition {\r\n TOP = 'top',\r\n BOTTOM = 'bottom'\r\n}\r\n\r\nexport enum MessageSeverity {\r\n SUCCESS = 'success',\r\n WARNING = 'warning',\r\n DANGER = 'danger',\r\n INFO = 'info'\r\n}\r\n\r\nexport interface LoadingConfiguration {\r\n title: string;\r\n text: string;\r\n\tloadingIcon?: string;\r\n iconSize?: number;\r\n}\r\n\r\nexport interface ModalWithButtonsConfiguration {\r\n title: string;\r\n text: string;\r\n\tshowCloseIcon?: boolean;\r\n\tbuttons: ButtonConfiguration[];\r\n}\r\n\r\nexport interface ButtonConfiguration {\r\n\tlabel: string;\r\n\tseverity: string;\r\n\tcallback?: (params: {dialogRef: DialogRef}) => void;\r\n\trouterLink?: any;\r\n\tfocus?: boolean;\r\n\tpermission?: string | string[];\r\n\ttranslateLabel?: boolean;\r\n}\r\n\r\nexport interface Message extends MessageConfiguration {\r\n title: string;\r\n message: string;\r\n}\r\n\r\nexport enum LogLevel {\r\n All = 0,\r\n Debug = 1,\r\n Info = 2,\r\n Warn = 3,\r\n Error = 4,\r\n Fatal = 5,\r\n Off = 6\r\n}\r\n\r\nexport enum TokenServiceMode {\r\n LOCALSTORAGE = 0,\r\n SESSIONSTORAGE = 1,\r\n COOKIE = 2\r\n}\r\n\r\nexport enum InterceptorType {\r\n ALL = 'ALL',\r\n ERROR = 'ERROR',\r\n LOADER = 'LOADER',\r\n MOCK = 'MOCK',\r\n TOKEN = 'TOKEN',\r\n PRECHECK = 'PRECHECK',\r\n LOCK = 'LOCK',\r\n\tREQUESTID = 'REQUESTID'\r\n}\r\n\r\nexport enum Precheck {\r\n ERROR = \"ERROR\",\r\n WARNING = \"WARNING\"\r\n}\r\n\r\nexport type PrecheckNullable = Precheck | null;\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { MessageConfiguration, MessagePosition, MessageSeverity } from \"../interfaces\";\r\n\r\nexport const MESSAGE_DEFAULT_CONFIGURATION: InjectionToken<MessageConfiguration> = new InjectionToken('Message default configuration', {\r\n\tfactory: (): MessageConfiguration => {\r\n\t\treturn {\r\n\t\t\tcloseable: true,\r\n\t\t\tlifetime: 3000,\r\n\t\t\tposition: MessagePosition.TOP,\r\n\t\t\tseverity: MessageSeverity.SUCCESS,\r\n\t\t\tkeepOnHover: false\r\n\t\t};\r\n\t}\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { LogLevel } from \"../interfaces\";\r\n\r\nexport const LOG_LEVEL: InjectionToken<LogLevel> = new InjectionToken('Log level', {\r\n factory: (): LogLevel => {\r\n return LogLevel.All;\r\n }\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const GOOGLE_MAPS_API_KEY: InjectionToken<string | null> = new InjectionToken('Google Maps Api Key', {\r\n factory: (): string | null => {\r\n return null;\r\n }\r\n});\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport {\r\n ApplicationRef,\r\n ComponentRef,\r\n createComponent,\r\n EmbeddedViewRef,\r\n inject,\r\n Injectable,\r\n Injector,\r\n PLATFORM_ID,\r\n Type\r\n} from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { filter, Subject, Subscription, throwError } from 'rxjs';\r\nimport { AlertConfiguration, DialogConfiguration, ConfirmConfiguration, LoadingConfiguration, ModalWithButtonsConfiguration, PredefinedDialogs, DialogComponentRefContainer } from '../interfaces';\r\nimport { DialogConfig, DialogInjector, DialogRef } from '../classes';\r\nimport { ALERT_CONFIGURATIONS, PREDEFINED_DIALOGS, CONFIRM_CONFIGURATIONS, OPENED_DIALOG_BODY_CLASS, DIALOG_CONFIRM_COMPONENT, DIALOG_ALERT_COMPONENT } from '../tokens';\r\nimport { MessageService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogService {\r\n\r\n\tprivate injector: Injector = inject(Injector);\r\n\tprivate predefinedConfirmConfigurations: {[key: string]: ConfirmConfiguration} = inject(CONFIRM_CONFIGURATIONS);\r\n\tprivate predefinedAlertConfigurations: {[key: string]: AlertConfiguration} = inject(ALERT_CONFIGURATIONS);\r\n\tprivate predefinedDialogs: PredefinedDialogs = inject(PREDEFINED_DIALOGS);\r\n\tprivate openedDialogBodyClass: string | null = inject(OPENED_DIALOG_BODY_CLASS);\r\n\tprivate dialogConfirmComponent: Type<any> | null = inject(DIALOG_CONFIRM_COMPONENT);\r\n\tprivate dialogAlertComponent: Type<any> | null = inject(DIALOG_ALERT_COMPONENT);\r\n\r\n\ttitle: Title = inject(Title);\r\n\tmessageService: MessageService = inject(MessageService);\r\n\r\n\tdialogs: Map<DialogRef, DialogComponentRefContainer> = new Map();\r\n\tdialogCountChanged: Subject<number> = new Subject();\r\n\topenIndex: number = 1;\r\n\tplatformId: Object = inject(PLATFORM_ID);\r\n\r\n constructor() {\r\n\t\tif (isPlatformBrowser(this.platformId)) {\r\n\t\t\tdocument.addEventListener(\"keyup\", (keyboardEvent: KeyboardEvent) => {\r\n\t\t\t\tif (keyboardEvent.key.toLowerCase() === 'escape') {\r\n\t\t\t\t\tlet lastOpenIndex: number = 0;\r\n\t\t\t\t\tlet lastOpenedDialogRef: DialogRef | null = null;\r\n\t\t\t\t\tfor (const [dialogRef, cfDialogComponentRefContainer] of this.dialogs.entries()) {\r\n\t\t\t\t\t\tif (cfDialogComponentRefContainer.openIndex > lastOpenIndex) {\r\n\t\t\t\t\t\t\tlastOpenIndex = cfDialogComponentRefContainer.openIndex;\r\n\t\t\t\t\t\t\tlastOpenedDialogRef = dialogRef;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tif (lastOpenedDialogRef !== null && lastOpenedDialogRef.dialogConfig !== null) {\r\n\t\t\t\t\t\tif (lastOpenedDialogRef.dialogConfig.ignoreKeyUp || document.activeElement instanceof HTMLInputElement || document.activeElement instanceof HTMLTextAreaElement) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tlastOpenedDialogRef.close();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.dialogCountChanged.subscribe((size: number) => {\r\n\t\t\tif (isPlatformBrowser(this.platformId) && this.openedDialogBodyClass !== null) {\r\n\t\t\t\tif (size === 0) {\r\n\t\t\t\t\tdocument.body.classList.remove(this.openedDialogBodyClass);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdocument.body.classList.add(this.openedDialogBodyClass);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t} \r\n\r\n\tasync openPredefined<T = any>(name: string, dialogConfiguration: DialogConfiguration = {}): Promise<DialogRef<T>> {\r\n\t\tif (this.predefinedDialogs[name] === undefined) {\r\n\t\t\tthrow Error('Dialog with name \"' + name + '\" not found!');\r\n\t\t}\r\n\t\tconst predefinedDialog = this.predefinedDialogs[name];\r\n\t\tif (typeof predefinedDialog === 'function') {\r\n\t\t\treturn this.openImport(predefinedDialog, dialogConfiguration);\r\n\t\t}\r\n\t\treturn this.openImport(predefinedDialog.component, {...predefinedDialog.configuration, ...dialogConfiguration});\r\n\t}\r\n\r\n\tasync openImport<T = any>(component: () => Promise<Type<any>>, dialogConfiguration: DialogConfiguration = {}): Promise<DialogRef<T>> {\r\n\t\treturn new Promise(async (resolve) => {\r\n\t\t\tresolve(this.open<T>(await component(), dialogConfiguration));\r\n\t\t});\r\n\t}\r\n\r\n open<T = any>(component: Type<any>, dialogConfiguration: DialogConfiguration = {}): DialogRef<T> {\r\n\r\n\t\tfor (let dialog of this.dialogs.entries()) {\r\n\t\t\tif (\r\n\t\t\t\t(dialogConfiguration.single && dialog[1].componentRef.componentType.name === component.name) ||\r\n\t\t\t\t(dialog[0].dialogConfig !== null && dialog[0].dialogConfig.single && dialog[1].componentRef.componentType.name === component.name)\r\n\t\t\t) {\r\n\t\t\t\treturn dialog[0];\r\n\t\t\t}\r\n\t\t}\r\n\r\n const dialogConfig: DialogConfig = this.createDialogConfig(dialogConfiguration);\r\n\r\n\t\tif (!dialogConfig.keepActiveElement) {\r\n\t\t\tif (document.activeElement instanceof HTMLElement) {\r\n\t\t\t\tdocument.activeElement.blur();\r\n\t\t\t}\r\n\t\t}\r\n\r\n const dialogRef: DialogRef<T> = this.appendToBody(component, dialogConfig);\r\n\t\tdialogRef.messageService = this.messageService;\r\n\t\tdialogRef.dialogConfig = dialogConfig;\r\n\r\n\t\tthis.changeAndStoreTitle(dialogRef);\r\n\r\n return dialogRef;\r\n }\r\n\r\n\tchangeAndStoreTitle(dialogRef: DialogRef): void {\r\n\t\tdialogRef.savedTitle = this.title.getTitle();\r\n\t\tif (dialogRef.dialogConfig !== null && dialogRef.dialogConfig.title !== null) {\r\n\t\t\tthis.title.setTitle(dialogRef.dialogConfig.title);\r\n\t\t}\r\n\t}\r\n\r\n createDialogConfig(dialogConfiguration: DialogConfiguration): DialogConfig {\r\n const dialogConfig: DialogConfig = new DialogConfig();\r\n if (dialogConfiguration.showCloseIcon !== undefined) {\r\n dialogConfig.showCloseIcon = dialogConfiguration.showCloseIcon;\r\n }\r\n\t\tif (dialogConfiguration.beforeClose !== undefined) {\r\n dialogConfig.beforeClose = dialogConfiguration.beforeClose;\r\n }\r\n\t\tif (dialogConfiguration.ignoreKeyUp !== undefined) {\r\n dialogConfig.ignoreKeyUp = dialogConfiguration.ignoreKeyUp;\r\n }\r\n if (dialogConfiguration.data !== undefined) {\r\n dialogConfig.data = dialogConfiguration.data;\r\n }\r\n if (dialogConfiguration.noPadding !== undefined) {\r\n dialogConfig.noPadding = dialogConfiguration.noPadding;\r\n }\r\n\t\tif (dialogConfiguration.keepActiveElement !== undefined) {\r\n\t\t\tdialogConfig.keepActiveElement = dialogConfiguration.keepActiveElement;\r\n\t\t}\r\n\t\tif (dialogConfiguration.containerClasses !== undefined) {\r\n\t\t\tdialogConfig.containerClasses = dialogConfiguration.containerClasses;\r\n\t\t}\r\n\t\tif (dialogConfiguration.dialogClasses !== undefined) {\r\n\t\t\tdialogConfig.dialogClasses = dialogConfiguration.dialogClasses;\r\n\t\t}\r\n\t\tif (dialogConfiguration.title !== undefined) {\r\n\t\t\tdialogConfig.title = dialogConfiguration.title;\r\n\t\t}\r\n\t\tif (dialogConfiguration.contentElement !== undefined) {\r\n\t\t\tdialogConfig.contentElement = dialogConfiguration.contentElement;\r\n\t\t}\r\n\t\tif (dialogConfiguration.single !== undefined) {\r\n\t\t\tdialogConfig.single = dialogConfiguration.single;\r\n\t\t}\r\n\t\tif (dialogConfiguration.width !== undefined) {\r\n\t\t\tdialogConfig.width = dialogConfiguration.width;\r\n\t\t}\r\n\t\tif (dialogConfiguration.height !== undefined) {\r\n\t\t\tdialogConfig.height = dialogConfiguration.height;\r\n\t\t}\r\n return dialogConfig;\r\n }\r\n\r\n appendToBody(component: Type<any>, dialogConfig: DialogConfig): DialogRef {\r\n\r\n\t\tconst appRef: ApplicationRef = this.injector.get(ApplicationRef);\r\n\r\n // CREATE INJECTION TOKENS\r\n const tokens: WeakMap<any, any> = new WeakMap();\r\n\r\n // CREATE DIALOG CONFIGURATION CLASS\r\n tokens.set(DialogConfig, dialogConfig);\r\n\r\n // CREATE DIALOG REFERENCE CLASS\r\n const dialogRef: DialogRef = new DialogRef();\r\n tokens.set(DialogRef, dialogRef);\r\n\r\n // LISTEN ON DIALOG CLOSE\r\n const closeSub: Subscription = dialogRef.onClose.subscribe(() => {\r\n this.removeFromBody(dialogRef);\r\n closeSub.unsubscribe();\r\n });\r\n\r\n // CREATE COMPONENT REF\r\n const componentRef: ComponentRef<any> = createComponent(component, {\r\n\t\t\tenvironmentInjector: appRef.injector,\r\n\t\t\telementInjector: new DialogInjector(this.injector, tokens)\r\n\t\t});\r\n\r\n // ATTACH VIEW TO ANGULAR\r\n appRef.attachView(componentRef.hostView);\r\n\r\n // CREATE DIALOG CONTAINER ELEMENT\r\n const dialogContainer: HTMLDivElement = document.createElement('div');\r\n dialogContainer.classList.add('cf-dialog-container');\r\n\t\tif (dialogConfig.containerClasses.length > 0) {\r\n\t\t\tdialogContainer.classList.add(...dialogConfig.containerClasses);\r\n\t\t}\r\n\r\n\t\t// APPEND DOM ELEMENT TO DIALOG\r\n\t\tconst childDomElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n\t\tchildDomElem.classList.add('cf-dialog');\r\n\t\t\r\n\t\tif (dialogConfig.width !== null) {\r\n\t\t\tchildDomElem.style.width = dialogConfig.width;\r\n\t\t}\r\n\t\tif (dialogConfig.height !== null) {\r\n\t\t\tchildDomElem.style.height = dialogConfig.height;\r\n\t\t}\r\n\t\tif (dialogConfig.noPadding) {\r\n childDomElem.classList.add('no-padding');\r\n }\r\n\t\tif (dialogConfig.dialogClasses.length > 0) {\r\n\t\t\tchildDomElem.classList.add(...dialogConfig.dialogClasses);\r\n\t\t}\r\n\r\n\t\tif (dialogConfig.contentElement !== null) {\r\n\t\t\tchildDomElem.appendChild(dialogConfig.contentElement);\r\n\t\t}\r\n\r\n\t\tdialogContainer.appendChild(childDomElem);\r\n\r\n // CLOSEABLE? APPEND BUTTON\r\n if (dialogConfig.showCloseIcon) {\r\n const closeElement: HTMLDivElement = document.createElement('div');\r\n closeElement.classList.add(...['cf-dialog-close', 'remixicon', 'close-line']);\r\n closeElement.onclick = () => {\r\n dialogRef.close();\r\n };\r\n childDomElem.appendChild(closeElement);\r\n }\r\n\r\n // APPEND DIALOG CONTAINER TO BODY\r\n document.body.appendChild(dialogContainer);\r\n\r\n this.dialogs.set(dialogRef, {\r\n componentRef,\r\n container: dialogContainer,\r\n\t\t\topenIndex: this.openIndex \r\n });\r\n\t\tthis.dialogCountChanged.next(this.dialogs.size);\r\n\r\n\t\tthis.openIndex++;\r\n\r\n return dialogRef;\r\n }\r\n\r\n removeFromBody(dialogRef: DialogRef): void {\r\n\r\n\t\tconst appRef: ApplicationRef = this.injector.get(ApplicationRef);\r\n\r\n if (!dialogRef || !this.dialogs.has(dialogRef)) {\r\n return;\r\n }\r\n const dialogComponentRefContainer: DialogComponentRefContainer | undefined = this.dialogs.get(dialogRef);\r\n if (dialogComponentRefContainer == undefined) {\r\n return;\r\n }\r\n\t\t\r\n appRef.detachView(dialogComponentRefContainer.componentRef.hostView);\r\n\r\n if (dialogComponentRefContainer.container !== null) {\r\n dialogComponentRefContainer.container.remove();\r\n }\r\n dialogComponentRefContainer.componentRef.destroy();\r\n this.dialogs.delete(dialogRef);\r\n\t\tthis.dialogCountChanged.next(this.dialogs.size);\r\n\r\n\t\tif (this.dialogs.size === 0) {\r\n\t\t\tthis.openIndex = 1;\r\n\t\t}\r\n\r\n\t\t// Restore title\r\n\t\tif (this.dialogs.size === 0) {\r\n\t\t\tthis.title.setTitle(dialogRef.savedTitle);\r\n\t\t} else {\r\n\t\t\tlet latestOpenedDialogRef: DialogRef | null = null;\r\n\t\t\tthis.dialogs.forEach((_, dialogRef: DialogRef) => {\r\n\t\t\t\tif (latestOpenedDialogRef === null) {\r\n\t\t\t\t\tlatestOpenedDialogRef = dialogRef;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (latestOpenedDialogRef.opened < dialogRef.opened) {\r\n\t\t\t\t\t\tlatestOpenedDialogRef = dialogRef;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (latestOpenedDialogRef !== null) {\r\n\t\t\t\t//this.title.setTitle(latestOpenedDialogRef.savedTitle);\r\n\t\t\t} else {\r\n\t\t\t\tthis.title.setTitle(dialogRef.savedTitle);\r\n\t\t\t}\r\n\t\t}\r\n }\r\n\r\n\tconfirm(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): Promise<boolean> {\r\n\t\tif (typeof configuration === 'string') {\r\n\t\t\tif (configuration.startsWith('translate:')) {\r\n\t\t\t\tconfiguration = configuration.substr(10);\r\n\t\t\t\tconfiguration = {\r\n\t\t\t\t\ttitle: configuration + '.title',\r\n\t\t\t\t\ttext: configuration + '.text',\r\n\t\t\t\t\tacceptText: configuration + '.accepttext',\r\n\t\t\t\t\tdeclineText: configuration + '.declinetext',\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst predefinedConfirmConfiguration: ConfirmConfiguration | undefined = this.predefinedConfirmConfigurations[configuration];\r\n\t\t\t\tif (predefinedConfirmConfiguration === undefined) {\r\n\t\t\t\t\tthrow new Error('Predefined confirm configuration not found for: ' + configuration);\r\n\t\t\t\t}\r\n\t\t\t\tconfiguration = predefinedConfirmConfiguration;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.open(component, {\r\n\t\t\t\t...dialogConfiguration,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tconfiguration\r\n\t\t\t\t},\r\n\t\t\t\tignoreKeyUp: true,\r\n\t\t\t\tshowCloseIcon: false\r\n\t\t\t}).onClose.pipe(filter(value => value !== undefined)).subscribe((accepted: boolean) => {\r\n\t\t\t\tif (accepted) {\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treject(true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n async confirmAsync(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n return await new Promise((resolve) => {\r\n this.confirm(configuration, dialogConfiguration, component).then(() => {\r\n resolve(true);\r\n }).catch(() => {\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\t\r\n\tconfirmAccept(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.confirm(configuration, dialogConfiguration, component).then(() => resolve(true)).catch(() => {});\r\n\t\t});\r\n\t}\r\n\t\r\n\tconfirmDecline(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.confirm(configuration, dialogConfiguration, component).then(() => {}).catch(() => resolve(true));\r\n\t\t});\r\n\t}\r\n\r\n\tshowLoading(\r\n\t\tconfiguration: LoadingConfiguration,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): DialogRef {\r\n\t\treturn this.open(component, {\r\n\t\t\t...dialogConfiguration,\r\n\t\t\tshowCloseIcon: false,\r\n\t\t\tignoreKeyUp: true,\r\n\t\t\tdata: {\r\n\t\t\t\tconfiguration\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tshowAlert(\r\n\t\tconfiguration: AlertConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogAlertComponent\r\n\t): Promise<void> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for alert dialog!');\r\n\t\t}\r\n\t\tif (typeof configuration === 'string') {\r\n\t\t\tconst predefinedAlertConfiguration: AlertConfiguration | undefined = this.predefinedAlertConfigurations[configuration];\r\n\t\t\tif (predefinedAlertConfiguration === undefined) {\r\n\t\t\t\tthrow new Error('Predefined alert configuration not found for: ' + configuration);\r\n\t\t\t}\r\n\t\t\tconfiguration = predefinedAlertConfiguration;\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\treturn this.open(component, {\r\n\t\t\t\t...dialogConfiguration,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tconfiguration\r\n\t\t\t\t},\r\n\t\t\t\tignoreKeyUp: true,\r\n\t\t\t\tshowCloseIcon: false\r\n\t\t\t}).onClose.subscribe(() => {\r\n\t\t\t\tresolve();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tshowModalWithButtons(\r\n\t\tconfiguration: ModalWithButtonsConfiguration,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): DialogRef {\r\n\t\treturn this.open(component, {\r\n\t\t\t...dialogConfiguration,\r\n\t\t\tdata: {\r\n\t\t\t\tconfiguration\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Subject, Subscription, timer } from 'rxjs';\r\nimport { Message, MessageConfiguration, MessageSeverity } from '../interfaces';\r\nimport { MESSAGE_DEFAULT_CONFIGURATION } from '../tokens';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class MessageService {\r\n\r\n /**\r\n * Default configuration\r\n * \r\n * Can be changed if you overwrite it or use the `MESSAGE_DEFAULT_CONFIGURATION` InjectionToken\r\n */\r\n public defaultConfiguration: MessageConfiguration = inject(MESSAGE_DEFAULT_CONFIGURATION);\r\n \r\n /**\r\n * Message subject\r\n */\r\n private messageSubject: Subject<Message> = new Subject();\r\n\r\n /**\r\n * Show\r\n * \r\n * Displays message with the given configuration\r\n * \r\n * @param messageConfiguration `Partial<MessageConfiguration>`\r\n */\r\n public show(title: string, message: string, configuration?: Partial<MessageConfiguration>): void {\r\n this.messageSubject.next({\r\n\t\t\t...this.defaultConfiguration,\r\n ...configuration,\r\n\t\t\ttitle,\r\n\t\t\tmessage\r\n });\r\n }\r\n\r\n /**\r\n * Show success message\r\n * \r\n * Display a message with default success severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showSuccessMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.SUCCESS\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show danger message\r\n * \r\n * Display a message with default danger severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showDangerMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.DANGER,\r\n\t\t\tkeepOnHover: true\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show warning message\r\n * \r\n * Display a message with default warning severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showWarningMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.WARNING\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show info message\r\n * \r\n * Display a message with default info severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showInfoMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.INFO\r\n\t\t});\r\n\t}\r\n\r\n private showMessage(message: Message): void {\r\n let container: HTMLElement | null = document.getElementById('cf-toasts-' + message.position + '-container');\r\n if (container === null) {\r\n container = document.createElement('div');\r\n container.id = 'cf-toasts-' + message.position + '-container';\r\n document.body.appendChild(container);\r\n }\r\n\r\n const div: HTMLElement = this.createMessageHtmlElement(message);\r\n\r\n container.appendChild(div);\r\n\r\n if (message.lifetime !== null) {\r\n\r\n\t\t\tlet disposeTimerSubscription: Subscription | null = timer(message.lifetime + 500).subscribe(() => {\r\n\t\t\t\tthis.hideMessage(div);\r\n\t\t\t});\r\n\r\n\t\t\tif (message.keepOnHover) {\r\n\t\t\t\tdiv.addEventListener('mouseenter', () => {\r\n\t\t\t\t\tif (disposeTimerSubscription !== null) {\r\n\t\t\t\t\t\tdisposeTimerSubscription.unsubscribe();\r\n\t\t\t\t\t\tdisposeTimerSubscription = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n }\r\n }\r\n\r\n private createMessageHtmlElement(message: Message): HTMLElement {\r\n const div: HTMLElement = document.createElement('div');\r\n div.classList.add('cf-toast', 'cf-' + message.severity + '-toast');\r\n const titleDiv: HTMLElement = document.createElement('div');\r\n titleDiv.classList.add('cf-toast-title');\r\n titleDiv.innerText = message.title;\r\n const messageDiv: HTMLElement = document.createElement('div');\r\n messageDiv.classList.add('cf-toast-message');\r\n messageDiv.innerText = message.message;\r\n div.appendChild(titleDiv);\r\n div.appendChild(messageDiv);\r\n if (message.closeable) {\r\n const closeIcon: HTMLElement = document.createElement('i');\r\n closeIcon.classList.add('close-icon', 'remixicon', 'close-line');\r\n closeIcon.onclick = () => {\r\n this.hideMessage(div, true);\r\n };\r\n div.appendChild(closeIcon);\r\n }\r\n return div;\r\n }\r\n\r\n private hideMessage(messageElement: HTMLElement, forceClose: boolean = false): void {\r\n messageElement.classList.add('hidden-toast');\r\n\r\n let remainOpen = false;\r\n messageElement.addEventListener('mouseenter', (() => {\r\n remainOpen = true;\r\n }));\r\n\r\n timer(500).subscribe(() => {\r\n if (remainOpen && !forceClose) {\r\n messageElement.classList.remove('hidden-toast');\r\n return;\r\n }\r\n messageElement.removeEventListener('mouseenter', (() => {}));\r\n messageElement.remove();\r\n });\r\n }\r\n\r\n constructor() {\r\n this.messageSubject.subscribe((message: Message) => {\r\n this.showMessage(message);\r\n });\r\n }\r\n\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { LogLevel } from '../interfaces';\r\nimport { LOG_LEVEL } from '../tokens';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class LoggerService {\r\n\r\n\tprivate _logLevel: LogLevel | null = inject(LOG_LEVEL);\r\n\r\n\tprivate logLevelColors: string[] = [\r\n\t\t'',\r\n\t\t'background-color: #D2BDF3; padding: 5px 10px;',\r\n\t\t'background-color: #A2DDFF; padding: 5px 10px;',\r\n\t\t'background-color: #FFD5C5; padding: 5px 10px;',\r\n\t\t'background-color: #EA4331; color: #FFFFFF; padding: 5px 10px;',\r\n\t\t'background-color: #F71900; color: #FFFFFF; padding: 5px 10px;',\r\n\t\t''\r\n\t];\r\n\r\n\tpublic debug(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Debug, group });\r\n\t}\r\n\r\n\tpublic info(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Info, group });\r\n\t}\r\n\r\n\tpublic warn(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Warn, group });\r\n\t}\r\n\r\n\tpublic error(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Error, group });\r\n\t}\r\n\r\n\tpublic fatal(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Fatal, group });\r\n\t}\r\n\r\n\tpublic groupEnd(): void {\r\n\t\tconsole.groupEnd();\r\n\t}\r\n\r\n\tprivate log(configuration: {\r\n\t\tlog: any,\r\n\t\tlogLevel: LogLevel,\r\n\t\tgroup: boolean\r\n\t}): void {\r\n\t\tif (this._logLevel === null || this._logLevel === LogLevel.Off || this._logLevel > configuration.logLevel) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (configuration.group) {\r\n\t\t\tconsole.group(configuration.log);\r\n\t\t} else {\r\n\t\t\tconsole.log('%c' + configuration.log, this.logLevelColors[configuration.logLevel]);\r\n\t\t}\r\n\t}\r\n\r\n\tset logLevel(logLevel: LogLevel | null) {\r\n\t\tthis._logLevel = logLevel;\r\n\t}\r\n\r\n\tget logLevel(): LogLevel | null {\r\n\t\treturn this._logLevel;\r\n\t}\r\n}\r\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { LoggerService } from \"./logger.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ApiService {\r\n\r\n\thttpClient: HttpClient = inject(HttpClient);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\tprivate _apiBaseUrl: string | null = null;\r\n\r\n\tpublic post<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.post<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic get<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.get<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic getFileArrayBuffer(endPoint: (string|number)[]): Observable<ArrayBuffer> {\r\n\t\treturn this.httpClient.get(this.generateUrl(endPoint), {\r\n\t\t\tresponseType: 'arraybuffer'\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getFileText(endPoint: (string|number)[]): Observable<string> {\r\n\t\treturn this.httpClient.get(this.generateUrl(endPoint), {\r\n\t\t\tresponseType: 'text'\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getWithHttpParams<T>(endPoint: (string|number)[], params: HttpParams | null = null): Observable<any> {\r\n\t\tif (params === null) {\r\n\t\t\treturn this.get(endPoint);\r\n\t\t} else {\r\n\t\t\treturn this.httpClient.get<T>(this.generateUrl(endPoint), {\r\n\t\t\t\tparams\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic delete<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.delete<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic patch<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.patch<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic head<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.head<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic options<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.options<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic put<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.put<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic generateUrl(endPoint: (string|number)[]): string {\r\n\t\tif (this._apiBaseUrl === null) {\r\n\t\t\tthrow new Error('No API base url set in generateUrl call!');\r\n\t\t}\r\n if (endPoint.length === 0) {\r\n return this._apiBaseUrl;\r\n }\r\n\t\tif (typeof endPoint[0] === 'string' && endPoint[0].startsWith('#')) {\r\n endPoint[0] = endPoint[0].slice(1);\r\n\t\t\treturn endPoint.map((v, i) => i === 0 ? v : encodeURIComponent(v)).join('/');\r\n\t\t}\r\n\t\treturn [this._apiBaseUrl, ...endPoint.map((v) => encodeURIComponent(v))].join('/');\r\n\t}\r\n\r\n\tset apiBaseUrl(apiBaseUrl: string) {\r\n\t\tthis.loggerService.info('Api Service base url set to: ' + apiBaseUrl);\r\n\t\tif (apiBaseUrl[apiBaseUrl.length - 1] === '/') {\r\n\t\t\tapiBaseUrl = apiBaseUrl.slice(0, apiBaseUrl.length - 1);\r\n\t\t}\r\n\t\tthis._apiBaseUrl = apiBaseUrl;\r\n\t}\r\n\r\n\tget apiBaseUrl(): string | null {\r\n\t\treturn this._apiBaseUrl;\r\n\t}\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\r\nimport { inject, PLATFORM_ID } from \"@angular/core\";\r\n\r\nexport function isBrowser(): boolean {\r\n\tconst platformId: Object = inject(PLATFORM_ID);\r\n\treturn isPlatformBrowser(platformId);\r\n}\r\n\r\nexport function localStorage(): Storage | null {\r\n\tconst document: Document = inject(DOCUMENT);\r\n\tif (document.defaultView !== null) {\r\n\t\treturn document.defaultView.window.localStorage;\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nexport function sessionStorage(): Storage | null {\r\n\tconst document: Document = inject(DOCUMENT);\r\n\tif (document.defaultView !== null) {\r\n\t\treturn document.defaultView.window.sessionStorage;\r\n\t}\r\n\treturn null;\r\n}","import { DOCUMENT } from \"@angular/common\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { isBrowser } from \"../helpers\";\r\nimport { LoggerService } from \"./logger.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class CookieService {\r\n\r\n\tbrowser: boolean = isBrowser();\r\n\tdocument: Document = inject(DOCUMENT);\r\n\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\t/**\r\n\t * Get the value of a cookie by name, returns `null` if the cookie is not set\r\n\t * \r\n\t * @param name name of the cookie\r\n\t * @returns value of the cookie\r\n\t */\r\n\tget(name: string): string | null {\r\n\t\tif (!this.browser) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tconst cookies: {[key: string]: string} = this.cookies;\r\n\t\treturn cookies[name] || null;\r\n\t}\r\n\r\n\t/**\r\n\t * Set the value of a cookie with the given name\r\n\t * \r\n\t * @param name name of the cookie\r\n\t * @param value value of the cookie\r\n\t * @param expire expire of the cookie in seconds, if null, it will never expire\r\n\t * @param path path of the cookie, default is '/'\r\n\t * @param config optional configuration values (expire in seconds, path of cookie)\r\n\t */\r\n\tset(name: string, value: string, expire: number | null = null, path: string | null = '/'): void {\r\n\r\n\t\tif (!this.browser) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (path === null) {\r\n\t\t\tpath = '/';\r\n\t\t}\r\n\r\n\t\t// Default cookie informations\r\n\t\tlet cookie: string = `${name}=${value};`;\r\n\r\n\t\t// If we have an expire date, we need to set\r\n\t\tif (expire !== null) {\r\n\t\t\tlet d: Date = new Date();\r\n\t\t\td.setTime(d.getTime() + (expire * 1000));\r\n\t\t\tcookie += `expires=${d.toUTCString()};`;\r\n\t\t}\r\n\r\n\t\t// Set path\r\n\t\tcookie += `path=${path};`;\r\n\r\n\t\t// Log\r\n\t\tthis.loggerService.info('Cookie data to set: ' + cookie);\r\n\r\n\t\t// Set the cookie\r\n\t\tthis.document.cookie = cookie;\r\n\t}\r\n\r\n\t/**\r\n\t * Delete a cookie by its name\r\n\t * \r\n\t * @param name name of the cookie\r\n\t */\r\n\tdelete(name: string): void {\r\n\t\tif (!this.browser) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.set(name, '', -1);\r\n\t}\r\n\r\n\tget cookies(): {[key: string]: string} {\r\n\r\n\t\tif (!this.browser) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\r\n\t\tconst cookies: string = this.document.cookie;\r\n\t\tif (cookies.length === 0) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\tconst cookiesArray: string[] = cookies.split(';');\r\n\t\tconst cookiesObject: {[key: string]: string} = {};\r\n\t\tcookiesArray.forEach((cookiesArrayItem: string) => {\r\n\t\t\tconst cookiesArrayItemSplit: string[] = cookiesArrayItem.split('=');\r\n\t\t\tcookiesObject[cookiesArrayItemSplit[0].trim()] = cookiesArrayItemSplit[1];\r\n\t\t})\r\n\t\treturn cookiesObject;\r\n\t}\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { TokenServiceMode } from '../interfaces';\r\nimport { isBrowser, localStorage, sessionStorage } from '../helpers';\r\nimport { CookieService } from './cookie.service';\r\nimport { LoggerService } from './logger.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n\r\n\tcookieService: CookieService = inject(CookieService);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\tlocalStorage: Storage | null = localStorage();\r\n\tsessionStorage: Storage | null = sessionStorage();\r\n\tisBrowser: boolean = isBrowser();\r\n\r\n\tcookiePath: string | null = null;\r\n\taccessToken: string | null = null;\r\n\taccessTokenKey = 'acccessToken';\r\n\taccessTokenCookieExpireDays = 30;\r\n\tmode: TokenServiceMode = TokenServiceMode.LOCALSTORAGE;\r\n\r\n\tpublic init(accessTokenKey: string, mode: TokenServiceMode | null = null, readAndStore: boolean = true): void {\r\n\t\tthis.accessTokenKey = accessTokenKey;\r\n\t\tif (mode !== null) {\r\n\t\t\tthis.mode = mode;\r\n\t\t}\r\n\t\tif (readAndStore) {\r\n\t\t\tthis.accessToken = this.read();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic write(accessToken: string, mode: TokenServiceMode | null = null): void {\r\n\t\tthis.accessToken = accessToken;\r\n\t\tif (mode === null) {\r\n\t\t\tmode = this.mode;\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.localStorage !== null) {\r\n\t\t\t\t\tthis.localStorage.setItem(this.accessTokenKey, this.accessToken);\r\n\t\t\t\t\tthis.loggerService.debug('Token set to local storage: ' + this.accessToken);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to set localStorage on not a browser platform!');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.sessionStorage.setItem(this.accessTokenKey, this.accessToken);\r\n\t\t\t\t\tthis.loggerService.debug('Token set to session storage: ' + this.accessToken);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to set sessionStorage on not a browser platform!');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.COOKIE:\r\n\t\t\t\tthis.cookieService.set(this.accessTokenKey, this.accessToken, this.accessTokenCookieExpireDays * 24 * 60 * 60, this.cookiePath);\r\n\t\t\t\tthis.loggerService.debug('Token set to cookie: ' + this.accessToken);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t}\r\n\r\n\tpublic read(mode: TokenServiceMode | null = null): string | null {\r\n\t\tif (mode === null) {\r\n\t\t\tmode = this.mode;\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tthis.loggerService.debug('Trying to read token from local storage');\r\n\t\t\t\tif (this.isBrowser && this.localStorage !== null) {\r\n\t\t\t\t\tconst tokenLocalStorage: string | null = this.localStorage.getItem(this.accessTokenKey);\r\n\t\t\t\t\tif (tokenLocalStorage !== null) {\r\n\t\t\t\t\t\tthis.loggerService.debug('Token read from local storage: ' + tokenLocalStorage);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn tokenLocalStorage;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to read from localStorage on not a browser platform!');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Trying to read token from session storage');\r\n\t\t\t\t\tconst tokenSessionStorage: string | null = this.sessionStorage.getItem(this.accessTokenKey);\r\n\t\t\t\t\tif (tokenSessionStorage !== null) {\r\n\t\t\t\t\t\tthis.loggerService.debug('Token read from session storage: ' + tokenSessionStorage);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn tokenSessionStorage;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to read from sessionStorage on not a browser platform!');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\tcase TokenServiceMode.COOKIE: {\r\n\t\t\t\tthis.loggerService.debug('Trying to read token from session cookie');\r\n\t\t\t\tconst cookieAccessToken: string | null = this.cookieService.get(this.accessTokenKey);\r\n\t\t\t\tif (cookieAccessToken !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token read from cookie: ' + cookieAccessToken);\r\n\t\t\t\t}\r\n\t\t\t\treturn cookieAccessToken;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic readAndStore(): void {\r\n\r\n\t}\r\n\r\n\tpublic delete(mode: TokenServiceMode | null): void {\r\n\t\tif (mode === null) {\r\n\t\t\tthis.loggerService.error('Invalid mode for token delete!');\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tif (this.localStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token deleted from local storage');\r\n\t\t\t\t\tthis.localStorage.removeItem(this.accessTokenKey);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token deleted from session storage');\r\n\t\t\t\t\tthis.sessionStorage.removeItem(this.accessTokenKey);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.COOKIE: {\r\n\t\t\t\tthis.loggerService.debug('Token deleted from cookie');\r\n\t\t\t\tthis.cookieService.delete(this.accessTokenKey);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.accessToken = null;\r\n\t}\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpRequest } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { InterceptorType, PrecheckNullable } from \"../interfaces\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InterceptorsService {\r\n\r\n /**\r\n * Skip\r\n * \r\n * Skip interceptors from next http requests\r\n */\r\n\tskip: InterceptorType[] = [];\r\n\r\n /**\r\n * ResetSkip\r\n * \r\n * Resets to `skip` to empty array after first http request\r\n */\r\n resetSkip: boolean = true;\r\n\r\n\r\n /**\r\n * Precheck\r\n * \r\n * Tells the `PrecheckInterceptor` to set a header with the given value\r\n */\r\n precheck: PrecheckNullable = null;\r\n\r\n /**\r\n * ResetPrecheck\r\n * \r\n * Clear `precheck` after first http request \r\n */\r\n resetPrecheck: boolean = true;\r\n\r\n /**\r\n * Error callback function\r\n * \r\n * Function to call after every http error\r\n */\r\n\terrorCallbackfunction: ((httpErrorResponse: HttpErrorResponse) => void) | null = null;\r\n\r\n /**\r\n * Error skip status codes\r\n * \r\n * Skips the given status codes from `errorCallbackfunction`\r\n */\r\n\terrorSkipStatusCodes: number[] = [];\r\n\r\n /**\r\n * Mock callback function\r\n * \r\n * Function to call to mock an http request\r\n */\r\n\tmockCallbackFunction: ((request: HttpRequest<any>, requestUrl: URL, next: HttpHandler) => Observable<HttpEvent<any>>) | null = null;\r\n\r\n /**\r\n * RequestId HTTP Header name\r\n */\r\n\trequestIdHttpHeaderName: string = 'Request-Id';\r\n\r\n /**\r\n * RequestId repeat\r\n */\r\n\trequestIdRepeat: boolean = false;\r\n\r\n /**\r\n * RequestId repeat delay\r\n */\r\n\trequestIdRepeatDelay: number = 0;\r\n\r\n /**\r\n * RequestId repeat statuscodes\r\n */\r\n\trequestIdRepeatStatusCodes: number[] = [];\r\n}","import { inject, Injectable } from \"@angular/core\";\r\nimport { Observable, of, tap, throwError } from \"rxjs\";\r\nimport { InterceptorsService } from \"./interceptors.service\";\r\nimport { InterceptorType } from \"../interfaces\";\r\nimport { ApiService } from \"./api.service\";\r\nimport { GOOGLE_MAPS_API_KEY } from \"../tokens\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class GoogleMapsService {\r\n\r\n\tapiService: ApiService = inject(ApiService);\r\n\tinterceptorsService: InterceptorsService = inject(InterceptorsService);\r\n\tgoogleMapsApiKey: string | null = inject(GOOGLE_MAPS_API_KEY);\r\n\r\n\tmapsJsLoaded: boolean = false;\r\n\r\n\tload(): Observable<any> {\r\n\t\tif (this.googleMapsApiKey === null) {\r\n\t\t\tthrow new Error('Google maps api key is not set!');\r\n\t\t}\r\n\t\tif (this.mapsJsLoaded) {\r\n\t\t\treturn of(true);\r\n\t\t}\r\n\t\tthis.interceptorsService.skip = [InterceptorType.TOKEN];\r\n\t\treturn this.apiService.httpClient.jsonp(`https://maps.googleapis.com/maps/api/js?key=${this.googleMapsApiKey}`, 'callback').pipe(tap(() => {\r\n\t\t\tthis.interceptorsService.skip = [];\r\n\t\t\tthis.mapsJsLoaded = true;\r\n\t\t}));\r\n\t}\r\n\r\n\tcreateMaps(element: Element | null = null, config: any = {}): Observable<any> {\r\n\t\treturn this.load().pipe(tap(() => {\r\n\t\t\tnew (window as any).google.maps.Map(element, config);\r\n\t\t}));\r\n\t}\r\n\r\n}","import { inject, Injectable, PLATFORM_ID } from \"@angular/core\";\r\nimport { ApiService } from \"./api.service\";\r\nimport { map, Observable, Subject, tap } from \"rxjs\";\r\nimport { LabelValue } from \"../interfaces\";\r\nimport { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class TranslateService {\r\n\r\n\tprivate document: Document = inject(DOCUMENT);\r\n\tprivate platformId: object = inject(PLATFORM_ID);\r\n\r\n\tprivate apiService: ApiService = inject(ApiService);\r\n\r\n\tpublic rawLanguageData: any = null;\r\n\tpublic processedLanguageData: {[key: string]: string} = {};\r\n\r\n\tpublic languageId: string = 'hu';\r\n\tpublic languages: string[] | LabelValue[] = [];\r\n\tpublic languageChanged: Subject<void> = new Subject();\r\n\r\n\tpublic get processedLanguages(): LabelValue[] {\r\n\t\tconst processedLanguages: LabelValue[] = [];\r\n\t\tfor (let language of this.languages) {\r\n\t\t\tif (typeof language === 'string') {\r\n\t\t\t\tprocessedLanguages.push({\r\n\t\t\t\t\tlabel: language,\r\n\t\t\t\t\tvalue: language\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tprocessedLanguages.push({...language});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn processedLanguages;\r\n\t}\r\n\r\n\tpublic get processedLanguagesIds(): string[] {\r\n\t\treturn this.processedLanguages.map(({ value }) => value);\r\n\t}\r\n\r\n\tpublic changeLanguage(languageId: string, reload: boolean = false): void {\r\n\t\tif (this.languageId === languageId && this.processedLanguagesIds.includes(languageId)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.languageId = languageId;\r\n\t\tif (reload && isPlatformBrowser(this.platformId)) {\r\n\t\t\tthis.document.location.reload();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic loadLanguages(endPoint: (string | number)[] = ['assets', 'languages.json'], process: boolean = true): Observable<boolean> {\r\n\t\treturn this.apiService.getFileText(endPoint).pipe(\r\n\t\t\ttap((rawLanguageData: string) => {\r\n\t\t\t\tthis.rawLanguageData = JSON.parse(rawLanguageData);\r\n\t\t\t\tif (process) {\r\n\t\t\t\t\tthis.processLanguageData();\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tmap(() => true)\r\n\t\t);\r\n\t}\r\n\r\n\tpublic processLanguageData(): void {\r\n\t\tif (this.rawLanguageData === null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.processedLanguageData = {};\r\n\t\tthis.processRawLanguageData(this.rawLanguageData);\r\n\t}\r\n\r\n\tprivate processRawLanguageData(rawLanguageData: any, path: string[] = []): void {\r\n\t\tif (typeof rawLanguageData === 'string') {\r\n\t\t\tthis.processedLanguageData[path.join('.')] = rawLanguageData;\r\n\t\t} else if (typeof rawLanguageData === 'object') {\r\n\t\t\tObject.keys(rawLanguageData).forEach((key: string) => {\r\n\t\t\t\tthis.processRawLanguageData(rawLanguageData[key], [...path, key]);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\ttranslate(key: string, args: {[key: string]: any} = {}): string {\r\n\t\tkey = key + '.' + this.languageId;\r\n\t\tif (this.processedLanguageData[key] !== undefined && Object.keys(args).length > 0) {\r\n\t\t\tObject.keys(args).forEach((argKey: string) => {\r\n\t\t\t\tthis.processedLanguageData[key] = this.processedLanguageData[key].replace('{{' + argKey + '}}', args[argKey]);\r\n\t\t\t});\r\n\t\t\treturn this.processedLanguageData[key];\r\n\t\t}\r\n\t\treturn this.processedLanguageData[key] || key;\r\n\t}\r\n\r\n}\r\n","import { ChangeDetectorRef, DestroyRef, inject } from \"@angular/core\";\r\nimport { DialogRef } from \"./dialog.ref.class\";\r\nimport { DialogConfig } from \"./dialog.config.class\";\r\nimport { DialogService } from \"../services\";\r\n\r\nexport class Dialog {\r\n\tref: DialogRef = inject(DialogRef);\r\n\tconfig: DialogConfig = inject(DialogConfig);\r\n\tcdr: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\tdestroyRef: DestroyRef = inject(DestroyRef);\r\n\tdialogService: DialogService = inject(DialogService);\r\n}","import { ConfirmConfiguration } from \"../interfaces\";\r\nimport { Dialog } from \"./dialog.class\";\r\n\r\nexport class ConfirmDialog extends Dialog {\r\n\tconfiguration: ConfirmConfiguration = this.config.getData('configuration');\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { LoggerService } from \"../services\";\r\nimport { InterceptorsService } from \"../services/interceptors.service\";\r\nimport { InterceptorType } from \"../interfaces\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class BaseInterceptor {\r\n\r\n\ttype: InterceptorType | null = null;\r\n\r\n\tinterceptorsService: InterceptorsService = inject(InterceptorsService);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\tskipInterceptor(): boolean {\r\n\t\tif (this.type !== null && this.interceptorsService.skip.indexOf(InterceptorType.ALL) !== -1) {\r\n\t\t\tthis.loggerService.warn('Interceptor skipped, reason is ALL skipped: ' + this.type);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst skip: boolean = this.type !== null && this.interceptorsService.skip.indexOf(this.type) !== -1;\r\n\t\tif (skip) {\r\n\t\t\tthis.loggerService.warn('Interceptor skipped, reason is [' + this.interceptorsService.skip.join(', ') + '] skipped');\r\n\t\t}\r\n\t\treturn skip;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\ttype: InterceptorType\r\n\t) {\r\n\t\tthis.type = type;\r\n\t\tthis.loggerService.info('Interceptor initialized: ' + this.type);\r\n\t}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { TokenService } from '../services';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class TokenInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\r\n\tprivate tokenService: TokenService = inject(TokenService);\r\n\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\tif (this.skipInterceptor()) {\r\n\t\t\treturn next.handle(request);\r\n\t\t}\r\n\t\tconst accessToken: string | null = this.tokenService.accessToken;\r\n\t\tif (accessToken !== null) {\r\n\t\t\trequest = request.clone({\r\n\t\t\t\tsetHeaders: {\r\n\t\t\t\t\tToken: accessToken\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn next.handle(request);\r\n\t}\r\n\r\n\tconstructor() {\r\n\t\tsuper(InterceptorType.TOKEN);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class PrecheckInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\tif (this.skipInterceptor()) {\r\n\t\t\treturn next.handle(request);\r\n\t\t}\r\n\t\tif (this.interceptorsService.precheck !== null) {\r\n\t\t\trequest = request.clone({\r\n\t\t\t\tsetHeaders: {\r\n\t\t\t\t\tPrecheck: this.interceptorsService.precheck\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (this.interceptorsService.resetPrecheck) {\r\n\t\t\t\tthis.interceptorsService.precheck = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn next.handle(request);\r\n\t}\r\n\r\n\tconstructor() {\r\n\t\tsuper(InterceptorType.PRECHECK);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.skipInterceptor()) {\r\n return next.handle(request);\r\n }\r\n return next.handle(request).pipe(\r\n catchError((httpErrorResponse: HttpErrorResponse) => {\r\n if (this.interceptorsService.errorCallbackfunction !== null && !this.interceptorsService.errorSkipStatusCodes.includes(httpErrorResponse.status)) {\r\n this.loggerService.info('Error Interceptor Callback Function Called');\r\n this.interceptorsService.errorCallbackfunction(httpErrorResponse);\r\n }\r\n return throwError(() => httpErrorResponse);\r\n })\r\n );\r\n }\r\n\r\n constructor() {\r\n \tsuper(InterceptorType.ERROR);\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { EnvironmentProviders, makeEnvironmentProviders, Type } from \"@angular/core\";\r\nimport { TokenInterceptor } from \"./interceptors/token.interceptor\";\r\nimport { CONFIRM_CONFIGURATIONS, DIALOG_ALERT_COMPONENT, DIALOG_CONFIRM_COMPONENT, GOOGLE_MAPS_API_KEY, OPENED_DIALOG_BODY_CLASS, PREDEFINED_DIALOGS } from \"./tokens\";\r\nimport { ConfirmConfiguration, PredefinedDialogs } from \"./interfaces\";\r\n\r\nexport function provideTokenInterceptor(): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TokenInterceptor,\r\n multi: true\r\n }]);\r\n}\r\n\r\nexport function providePredefinedDialogs(predefinedDialogs: PredefinedDialogs): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: PREDEFINED_DIALOGS,\r\n useValue: predefinedDialogs\r\n }]);\r\n}\r\n\r\nexport function provideConfirmConfigurations(confirmConfigurations: {[key: string]: ConfirmConfiguration}): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: CONFIRM_CONFIGURATIONS,\r\n\t\tuseValue: confirmConfigurations\r\n\t}]);\r\n}\r\n\r\nexport function provideOpenedDialogBodyClass(openedDialogBodyClass: string | null): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: OPENED_DIALOG_BODY_CLASS,\r\n useValue: openedDialogBodyClass\r\n }]);\r\n}\r\n\r\nexport function provideGoogleMapsApiKey(googleMapsApiKey: string | null): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: GOOGLE_MAPS_API_KEY,\r\n\t\tuseValue: googleMapsApiKey\r\n\t}]);\r\n}\r\n\r\nexport function provideDialogConfirmComponent(component: Type<any>): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: DIALOG_CONFIRM_COMPONENT,\r\n\t\tuseValue: component\r\n\t}]);\r\n}\r\n\r\nexport function provideDialogAlertComponent(component: Type<any>): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: DIALOG_ALERT_COMPONENT,\r\n\t\tuseValue: component\r\n\t}]);\r\n}\r\n","import { inject, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { TranslateService } from \"../services\";\r\n\r\n@Pipe({\r\n\tstandalone: true,\r\n\tname: 'translate'\r\n})\r\nexport class TranslatePipe implements PipeTransform {\r\n\r\n\ttranslateService: TranslateService = inject(TranslateService);\r\n\r\n\ttransform(key: string, args: {[key: string]: any} = {}) {\r\n\t\treturn this.translateService.translate(key, args);\r\n\t}\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.InterceptorType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codefoxcore.mjs","sources":["../../../projects/codefoxcore/src/lib/classes/dialog.ref.class.ts","../../../projects/codefoxcore/src/lib/classes/dialog.config.class.ts","../../../projects/codefoxcore/src/lib/classes/dialog.injector.class.ts","../../../projects/codefoxcore/src/lib/tokens/alert.token.ts","../../../projects/codefoxcore/src/lib/tokens/dialog.token.ts","../../../projects/codefoxcore/src/lib/tokens/confirm.token.ts","../../../projects/codefoxcore/src/lib/interfaces.ts","../../../projects/codefoxcore/src/lib/tokens/message.token.ts","../../../projects/codefoxcore/src/lib/tokens/loglevel.token.ts","../../../projects/codefoxcore/src/lib/tokens/google.maps.token.ts","../../../projects/codefoxcore/src/lib/services/dialog.service.ts","../../../projects/codefoxcore/src/lib/helpers.ts","../../../projects/codefoxcore/src/lib/services/message.service.ts","../../../projects/codefoxcore/src/lib/services/logger.service.ts","../../../projects/codefoxcore/src/lib/services/api.service.ts","../../../projects/codefoxcore/src/lib/services/cookie.service.ts","../../../projects/codefoxcore/src/lib/services/token.service.ts","../../../projects/codefoxcore/src/lib/services/interceptors.service.ts","../../../projects/codefoxcore/src/lib/services/google.maps.service.ts","../../../projects/codefoxcore/src/lib/services/translate.service.ts","../../../projects/codefoxcore/src/lib/services/microdata.service.ts","../../../projects/codefoxcore/src/lib/classes/dialog.class.ts","../../../projects/codefoxcore/src/lib/classes/confirm.dialog.class.ts","../../../projects/codefoxcore/src/lib/interceptors/base.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/token.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/precheck.interceptor.ts","../../../projects/codefoxcore/src/lib/interceptors/error.interceptor.ts","../../../projects/codefoxcore/src/lib/providers.ts","../../../projects/codefoxcore/src/lib/pipes/translate.pipe.ts","../../../projects/codefoxcore/src/lib/pipes/microdata.pipe.ts","../../../projects/codefoxcore/src/codefoxcore.ts"],"sourcesContent":["import { filter, Observable, Subject, takeUntil } from \"rxjs\";\r\nimport { CfDialogCloseParams } from \"../interfaces\";\r\nimport { MessageService } from \"../services\";\r\nimport { DialogConfig } from \"../classes\";\r\n\r\nexport class DialogRef<T = any> {\r\n\tmessageService: MessageService | null = null;\r\n dialogConfig: DialogConfig | null = null;\r\n\tprivate readonly _onClose: Subject<any> = new Subject<any>();\r\n onClose: Observable<T | undefined> = this._onClose.asObservable();\r\n onCloseValue: Observable<T> = this._onClose.pipe(filter(result => result !== undefined && result !== null));\r\n onCloseOnValue: (value: any) => Observable<any> = (value: any) => this._onClose.pipe(filter(result => result === value));\r\n private readonly _onMessage: Subject<any> = new Subject<any>();\r\n\tonMessage: Observable<any> = this._onMessage.asObservable();\r\n private readonly _onDestroy = new Subject<any>();\r\n onDestroy: Observable<any> = this._onDestroy.asObservable();\r\n\tsavedTitle: string = '';\r\n\ttitle: string | null = null;\r\n\topened: Date = new Date();\r\n\tprivate doClose(result?: any, params: CfDialogCloseParams = {}): void {\r\n\t\tif (params.message !== undefined && this.messageService !== null) {\r\n\t\t\tthis.messageService.show(params.message.title, params.message.message, params.message);\r\n\t\t}\r\n\t\tthis._onClose.next(result); \r\n\t}\r\n close(result?: any, params: CfDialogCloseParams = {}): void { \r\n\t\tif (this.dialogConfig === null || this.dialogConfig.beforeClose === null) {\r\n\t\t\tthis.doClose(result, params);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tif (this.dialogConfig.beforeClose instanceof Promise) {\r\n\t\t\tthis.dialogConfig.beforeClose.then((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t}).catch(() => {});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.dialogConfig.beforeClose instanceof Observable) {\r\n\t\t\tthis.dialogConfig.beforeClose.pipe(takeUntil(this._onClose)).subscribe((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tconst beforeCloseResult: boolean | Observable<boolean> | Promise<boolean> = this.dialogConfig.beforeClose();\r\n\r\n\t\tif (beforeCloseResult instanceof Promise) {\r\n\t\t\tbeforeCloseResult.then((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t}).catch(() => {});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (beforeCloseResult instanceof Observable) {\r\n\t\t\tbeforeCloseResult.pipe(takeUntil(this._onClose)).subscribe((value: boolean) => {\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.doClose(result, params);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (beforeCloseResult) {\r\n\t\t\tthis.doClose(result, params);\r\n\t\t}\r\n\t}\r\n forceClose(result?: any): void {\r\n this.doClose(result);\r\n }\r\n\tmessage(message: any): void { this._onMessage.next(message); }\r\n destroy(): void { this._onDestroy.next(undefined); }\r\n}\r\n","import { ResolveData } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DialogConfiguration } from \"../interfaces\";\r\n\r\nexport class DialogConfig implements DialogConfiguration {\r\n showCloseIcon: boolean = true;\r\n\tbeforeClose: null | (() => boolean | Observable<boolean> | Promise<boolean>) | Observable<boolean> | Promise<boolean> = null;\r\n\tignoreKeyUp: boolean = false;\r\n data: {[key: (string | number)]: any} = {};\r\n noPadding: boolean = false;\r\n\tkeepActiveElement: boolean = false;\r\n\tcontainerClasses: string[] = [];\r\n\tdialogClasses: string[] = [];\r\n resolve: ResolveData = {};\r\n\ttitle: string | null = null;\r\n contentElement: Element | null = null;\r\n single: boolean = false;\r\n width: string | null = null;\r\n\theight: string | null = null;\r\n getData(key: string | number, defaultOnUndefined: any = null): any {\r\n return this.data[key] !== undefined ? this.data[key] : defaultOnUndefined;\r\n }\r\n}\r\n","import { InjectionToken, Injector, Type } from \"@angular/core\";\r\n\r\nexport class DialogInjector implements Injector {\r\n constructor(private _parentInjector: Injector, private _additionalTokens: WeakMap<any, any>) { }\r\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: {}): T;\r\n get(token: any, notFoundValue?: any): any;\r\n get(token: any, notFoundValue?: any, _?: any): any {\r\n const value = this._additionalTokens.get(token);\r\n if (value) { return value; }\r\n return this._parentInjector.get<any>(token, notFoundValue);\r\n }\r\n}","import { InjectionToken } from \"@angular/core\";\r\nimport { AlertButtonConfiguration, AlertConfiguration } from \"../interfaces\";\r\n\r\nexport const ALERT_DEFAULT_BUTTON_CONFIGURATION: InjectionToken<AlertButtonConfiguration> = new InjectionToken('Alert default button', {\r\n\tfactory: (): AlertButtonConfiguration => {\r\n\t\treturn {\r\n\t\t\tlabel: 'alert.ok',\r\n\t\t\tseverity: 'success',\r\n\t\t\tcallback: ({ dialogRef }) => {\r\n\t\t\t\tdialogRef.close();\r\n\t\t\t},\r\n\t\t\tfocus: true,\r\n\t\t\ttranslateLabel: true\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport const ALERT_CONFIGURATIONS: InjectionToken<{[key: string]: AlertConfiguration}> = new InjectionToken('Alert configurations predefined', {\r\n factory: (): {[key: string]: AlertConfiguration} => {\r\n return {};\r\n }\r\n});\r\n","import { InjectionToken, Type } from \"@angular/core\";\r\nimport { PredefinedDialogs } from \"../interfaces\";\r\n\r\nexport const PREDEFINED_DIALOGS: InjectionToken<PredefinedDialogs> = new InjectionToken('Predefined dialogs', {\r\n factory: (): PredefinedDialogs => {\r\n return {};\r\n }\r\n});\r\n\r\nexport const OPENED_DIALOG_BODY_CLASS: InjectionToken<string | null> = new InjectionToken('Opened dialog body class', {\r\n factory: (): string | null => {\r\n return null;\r\n }\r\n});\r\n\r\nexport const DIALOG_CONFIRM_COMPONENT: InjectionToken<Type<any> | null> = new InjectionToken('Dialog confirm component', {\r\n\tfactory: (): Type<any> | null => {\r\n\t\treturn null;\r\n\t}\r\n});\r\n\r\nexport const DIALOG_ALERT_COMPONENT: InjectionToken<Type<any> | null> = new InjectionToken('Dialog alert component', {\r\n\tfactory: (): Type<any> | null => {\r\n\t\treturn null;\r\n\t}\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { ConfirmConfiguration } from \"../interfaces\";\r\n\r\nexport const CONFIRM_CONFIGURATIONS: InjectionToken<{[key: string]: ConfirmConfiguration}> = new InjectionToken('Confirm configurations predefined', {\r\n factory: (): {[key: string]: ConfirmConfiguration} => {\r\n return {};\r\n }\r\n});\r\n","import { ComponentRef, Type } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DialogRef } from \"./classes/dialog.ref.class\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\n\r\nexport interface LabelValue<T = string> {\r\n\tlabel: string;\r\n\tvalue: T;\r\n}\r\n\r\nexport interface DialogComponentRefContainer {\r\n componentRef: ComponentRef<any>;\r\n container: HTMLDivElement;\r\n\topenIndex: number;\r\n}\r\n\r\nexport type PredefinedDialogs = {[key: string]: (() => Promise<Type<any>>) | {component: () => Promise<Type<any>>, configuration: DialogConfiguration}};\r\n\r\nexport interface DialogConfiguration {\r\n showCloseIcon?: boolean;\r\n\tbeforeClose?: CfDialogConfigurationBeforeClose;\r\n\tignoreKeyUp?: boolean;\r\n data?: any;\r\n noPadding?: boolean;\r\n\tkeepActiveElement?: boolean;\r\n\tcontainerClasses?: string[];\r\n\tdialogClasses?: string[];\r\n\ttitle?: string | null;\r\n contentElement?: Element | null;\r\n single?: boolean;\r\n width?: string | null;\r\n\theight?: string | null;\r\n}\r\n\r\nexport type CfDialogConfigurationBeforeClose = null | (() => boolean | Observable<boolean> | Promise<boolean>) | Observable<boolean> | Promise<boolean>;\r\n\r\nexport interface ConfirmConfiguration {\r\n title: string;\r\n text: string;\r\n acceptText: string;\r\n declineText: string;\r\n\thideDeclineButton?: boolean;\r\n switchButtonColors?: boolean;\r\n acceptTimeout?: number;\r\n acceptValidationText?: string;\r\n acceptValidationMode?: AcceptValidationMode;\r\n acceptValidationLabel?: string;\r\n}\r\n\r\nexport interface AlertConfiguration {\r\n title: string;\r\n text: string;\r\n\tshowCloseIcon?: boolean;\r\n\tbutton?: Partial<AlertButtonConfiguration>;\r\n}\r\n\r\nexport enum AcceptValidationMode {\r\n PATTERN = 'PATTERN',\r\n TEXT = 'TEXT'\r\n}\r\n\r\nexport interface AlertButtonConfiguration {\r\n\tlabel: string;\r\n\tseverity: string;\r\n\tcallback: (params: {dialogRef: DialogRef}) => void;\r\n\ttranslateLabel: boolean;\r\n\tfocus: boolean;\r\n}\r\n\r\nexport interface CfDialogCloseParams {\r\n message?: MessagePartial;\r\n}\r\n\r\nexport interface MessagePartial extends Partial<MessageConfiguration> {\r\n title: string;\r\n message: string;\r\n}\r\n\r\nexport interface MessageConfiguration {\r\n closeable: boolean;\r\n position: MessagePosition;\r\n lifetime: number | null;\r\n severity: MessageSeverity;\r\n\tkeepOnHover: boolean;\r\n}\r\nexport enum MessagePosition {\r\n TOP = 'top',\r\n BOTTOM = 'bottom'\r\n}\r\n\r\nexport enum MessageSeverity {\r\n SUCCESS = 'success',\r\n WARNING = 'warning',\r\n DANGER = 'danger',\r\n INFO = 'info'\r\n}\r\n\r\nexport interface LoadingConfiguration {\r\n title: string;\r\n text: string;\r\n\tloadingIcon?: string;\r\n iconSize?: number;\r\n}\r\n\r\nexport interface ModalWithButtonsConfiguration {\r\n title: string;\r\n text: string;\r\n\tshowCloseIcon?: boolean;\r\n\tbuttons: ButtonConfiguration[];\r\n}\r\n\r\nexport interface ButtonConfiguration {\r\n\tlabel: string;\r\n\tseverity: string;\r\n\tcallback?: (params: {dialogRef: DialogRef}) => void;\r\n\trouterLink?: any;\r\n\tfocus?: boolean;\r\n\tpermission?: string | string[];\r\n\ttranslateLabel?: boolean;\r\n}\r\n\r\nexport interface Message extends MessageConfiguration {\r\n title: string;\r\n message: string;\r\n}\r\n\r\nexport enum LogLevel {\r\n All = 0,\r\n Debug = 1,\r\n Info = 2,\r\n Warn = 3,\r\n Error = 4,\r\n Fatal = 5,\r\n Off = 6\r\n}\r\n\r\nexport enum TokenServiceMode {\r\n LOCALSTORAGE = 0,\r\n SESSIONSTORAGE = 1,\r\n COOKIE = 2\r\n}\r\n\r\nexport enum InterceptorType {\r\n ALL = 'ALL',\r\n ERROR = 'ERROR',\r\n LOADER = 'LOADER',\r\n MOCK = 'MOCK',\r\n TOKEN = 'TOKEN',\r\n PRECHECK = 'PRECHECK',\r\n LOCK = 'LOCK',\r\n\tREQUESTID = 'REQUESTID'\r\n}\r\n\r\nexport enum Precheck {\r\n ERROR = \"ERROR\",\r\n WARNING = \"WARNING\"\r\n}\r\n\r\nexport type PrecheckNullable = Precheck | null;\r\n\r\nexport interface ServerError extends HttpErrorResponse {\r\n\terror: {\r\n\t\tmessage: string;\r\n\t}\r\n}\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { MessageConfiguration, MessagePosition, MessageSeverity } from \"../interfaces\";\r\n\r\nexport const MESSAGE_DEFAULT_CONFIGURATION: InjectionToken<MessageConfiguration> = new InjectionToken('Message default configuration', {\r\n\tfactory: (): MessageConfiguration => {\r\n\t\treturn {\r\n\t\t\tcloseable: true,\r\n\t\t\tlifetime: 3000,\r\n\t\t\tposition: MessagePosition.TOP,\r\n\t\t\tseverity: MessageSeverity.SUCCESS,\r\n\t\t\tkeepOnHover: false\r\n\t\t};\r\n\t}\r\n});\r\n\r\nexport const MESSAGE_DEFAULT_ERROR_TITLE: InjectionToken<string> = new InjectionToken('Message default error title', {\r\n\tfactory: (): string => {\r\n\t\treturn 'Hiba';\r\n\t}\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\nimport { LogLevel } from \"../interfaces\";\r\n\r\nexport const LOG_LEVEL: InjectionToken<LogLevel> = new InjectionToken('Log level', {\r\n factory: (): LogLevel => {\r\n return LogLevel.All;\r\n }\r\n});\r\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const GOOGLE_MAPS_API_KEY: InjectionToken<string | null> = new InjectionToken('Google Maps Api Key', {\r\n factory: (): string | null => {\r\n return null;\r\n }\r\n});\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport {\r\n ApplicationRef,\r\n ComponentRef,\r\n createComponent,\r\n EmbeddedViewRef,\r\n inject,\r\n Injectable,\r\n Injector,\r\n PLATFORM_ID,\r\n Type\r\n} from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { filter, Subject, Subscription, throwError } from 'rxjs';\r\nimport { AlertConfiguration, DialogConfiguration, ConfirmConfiguration, LoadingConfiguration, ModalWithButtonsConfiguration, PredefinedDialogs, DialogComponentRefContainer } from '../interfaces';\r\nimport { DialogConfig, DialogInjector, DialogRef } from '../classes';\r\nimport { ALERT_CONFIGURATIONS, PREDEFINED_DIALOGS, CONFIRM_CONFIGURATIONS, OPENED_DIALOG_BODY_CLASS, DIALOG_CONFIRM_COMPONENT, DIALOG_ALERT_COMPONENT } from '../tokens';\r\nimport { MessageService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DialogService {\r\n\r\n\tprivate injector: Injector = inject(Injector);\r\n\tprivate predefinedConfirmConfigurations: {[key: string]: ConfirmConfiguration} = inject(CONFIRM_CONFIGURATIONS);\r\n\tprivate predefinedAlertConfigurations: {[key: string]: AlertConfiguration} = inject(ALERT_CONFIGURATIONS);\r\n\tprivate predefinedDialogs: PredefinedDialogs = inject(PREDEFINED_DIALOGS);\r\n\tprivate openedDialogBodyClass: string | null = inject(OPENED_DIALOG_BODY_CLASS);\r\n\tprivate dialogConfirmComponent: Type<any> | null = inject(DIALOG_CONFIRM_COMPONENT);\r\n\tprivate dialogAlertComponent: Type<any> | null = inject(DIALOG_ALERT_COMPONENT);\r\n\r\n\ttitle: Title = inject(Title);\r\n\tmessageService: MessageService = inject(MessageService);\r\n\r\n\tdialogs: Map<DialogRef, DialogComponentRefContainer> = new Map();\r\n\tdialogCountChanged: Subject<number> = new Subject();\r\n\topenIndex: number = 1;\r\n\tplatformId: Object = inject(PLATFORM_ID);\r\n\r\n constructor() {\r\n\t\tif (isPlatformBrowser(this.platformId)) {\r\n\t\t\tdocument.addEventListener(\"keyup\", (keyboardEvent: KeyboardEvent) => {\r\n\t\t\t\tif (keyboardEvent.key.toLowerCase() === 'escape') {\r\n\t\t\t\t\tlet lastOpenIndex: number = 0;\r\n\t\t\t\t\tlet lastOpenedDialogRef: DialogRef | null = null;\r\n\t\t\t\t\tfor (const [dialogRef, cfDialogComponentRefContainer] of this.dialogs.entries()) {\r\n\t\t\t\t\t\tif (cfDialogComponentRefContainer.openIndex > lastOpenIndex) {\r\n\t\t\t\t\t\t\tlastOpenIndex = cfDialogComponentRefContainer.openIndex;\r\n\t\t\t\t\t\t\tlastOpenedDialogRef = dialogRef;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\tif (lastOpenedDialogRef !== null && lastOpenedDialogRef.dialogConfig !== null) {\r\n\t\t\t\t\t\tif (lastOpenedDialogRef.dialogConfig.ignoreKeyUp || document.activeElement instanceof HTMLInputElement || document.activeElement instanceof HTMLTextAreaElement) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\r\n\t\t\t\t\t\tlastOpenedDialogRef.close();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.dialogCountChanged.subscribe((size: number) => {\r\n\t\t\tif (isPlatformBrowser(this.platformId) && this.openedDialogBodyClass !== null) {\r\n\t\t\t\tif (size === 0) {\r\n\t\t\t\t\tdocument.body.classList.remove(this.openedDialogBodyClass);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdocument.body.classList.add(this.openedDialogBodyClass);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t} \r\n\r\n\tasync openPredefined<T = any>(name: string, dialogConfiguration: DialogConfiguration = {}): Promise<DialogRef<T>> {\r\n\t\tif (this.predefinedDialogs[name] === undefined) {\r\n\t\t\tthrow Error('Dialog with name \"' + name + '\" not found!');\r\n\t\t}\r\n\t\tconst predefinedDialog = this.predefinedDialogs[name];\r\n\t\tif (typeof predefinedDialog === 'function') {\r\n\t\t\treturn this.openImport(predefinedDialog, dialogConfiguration);\r\n\t\t}\r\n\t\treturn this.openImport(predefinedDialog.component, {...predefinedDialog.configuration, ...dialogConfiguration});\r\n\t}\r\n\r\n\tasync openImport<T = any>(component: () => Promise<Type<any>>, dialogConfiguration: DialogConfiguration = {}): Promise<DialogRef<T>> {\r\n\t\treturn new Promise(async (resolve) => {\r\n\t\t\tresolve(this.open<T>(await component(), dialogConfiguration));\r\n\t\t});\r\n\t}\r\n\r\n open<T = any>(component: Type<any>, dialogConfiguration: DialogConfiguration = {}): DialogRef<T> {\r\n\r\n\t\tfor (let dialog of this.dialogs.entries()) {\r\n\t\t\tif (\r\n\t\t\t\t(dialogConfiguration.single && dialog[1].componentRef.componentType.name === component.name) ||\r\n\t\t\t\t(dialog[0].dialogConfig !== null && dialog[0].dialogConfig.single && dialog[1].componentRef.componentType.name === component.name)\r\n\t\t\t) {\r\n\t\t\t\treturn dialog[0];\r\n\t\t\t}\r\n\t\t}\r\n\r\n const dialogConfig: DialogConfig = this.createDialogConfig(dialogConfiguration);\r\n\r\n\t\tif (!dialogConfig.keepActiveElement) {\r\n\t\t\tif (document.activeElement instanceof HTMLElement) {\r\n\t\t\t\tdocument.activeElement.blur();\r\n\t\t\t}\r\n\t\t}\r\n\r\n const dialogRef: DialogRef<T> = this.appendToBody(component, dialogConfig);\r\n\t\tdialogRef.messageService = this.messageService;\r\n\t\tdialogRef.dialogConfig = dialogConfig;\r\n\r\n\t\tthis.changeAndStoreTitle(dialogRef);\r\n\r\n return dialogRef;\r\n }\r\n\r\n\tchangeAndStoreTitle(dialogRef: DialogRef): void {\r\n\t\tdialogRef.savedTitle = this.title.getTitle();\r\n\t\tif (dialogRef.dialogConfig !== null && dialogRef.dialogConfig.title !== null) {\r\n\t\t\tthis.title.setTitle(dialogRef.dialogConfig.title);\r\n\t\t}\r\n\t}\r\n\r\n createDialogConfig(dialogConfiguration: DialogConfiguration): DialogConfig {\r\n const dialogConfig: DialogConfig = new DialogConfig();\r\n if (dialogConfiguration.showCloseIcon !== undefined) {\r\n dialogConfig.showCloseIcon = dialogConfiguration.showCloseIcon;\r\n }\r\n\t\tif (dialogConfiguration.beforeClose !== undefined) {\r\n dialogConfig.beforeClose = dialogConfiguration.beforeClose;\r\n }\r\n\t\tif (dialogConfiguration.ignoreKeyUp !== undefined) {\r\n dialogConfig.ignoreKeyUp = dialogConfiguration.ignoreKeyUp;\r\n }\r\n if (dialogConfiguration.data !== undefined) {\r\n dialogConfig.data = dialogConfiguration.data;\r\n }\r\n if (dialogConfiguration.noPadding !== undefined) {\r\n dialogConfig.noPadding = dialogConfiguration.noPadding;\r\n }\r\n\t\tif (dialogConfiguration.keepActiveElement !== undefined) {\r\n\t\t\tdialogConfig.keepActiveElement = dialogConfiguration.keepActiveElement;\r\n\t\t}\r\n\t\tif (dialogConfiguration.containerClasses !== undefined) {\r\n\t\t\tdialogConfig.containerClasses = dialogConfiguration.containerClasses;\r\n\t\t}\r\n\t\tif (dialogConfiguration.dialogClasses !== undefined) {\r\n\t\t\tdialogConfig.dialogClasses = dialogConfiguration.dialogClasses;\r\n\t\t}\r\n\t\tif (dialogConfiguration.title !== undefined) {\r\n\t\t\tdialogConfig.title = dialogConfiguration.title;\r\n\t\t}\r\n\t\tif (dialogConfiguration.contentElement !== undefined) {\r\n\t\t\tdialogConfig.contentElement = dialogConfiguration.contentElement;\r\n\t\t}\r\n\t\tif (dialogConfiguration.single !== undefined) {\r\n\t\t\tdialogConfig.single = dialogConfiguration.single;\r\n\t\t}\r\n\t\tif (dialogConfiguration.width !== undefined) {\r\n\t\t\tdialogConfig.width = dialogConfiguration.width;\r\n\t\t}\r\n\t\tif (dialogConfiguration.height !== undefined) {\r\n\t\t\tdialogConfig.height = dialogConfiguration.height;\r\n\t\t}\r\n return dialogConfig;\r\n }\r\n\r\n appendToBody(component: Type<any>, dialogConfig: DialogConfig): DialogRef {\r\n\r\n\t\tconst appRef: ApplicationRef = this.injector.get(ApplicationRef);\r\n\r\n // CREATE INJECTION TOKENS\r\n const tokens: WeakMap<any, any> = new WeakMap();\r\n\r\n // CREATE DIALOG CONFIGURATION CLASS\r\n tokens.set(DialogConfig, dialogConfig);\r\n\r\n // CREATE DIALOG REFERENCE CLASS\r\n const dialogRef: DialogRef = new DialogRef();\r\n tokens.set(DialogRef, dialogRef);\r\n\r\n // LISTEN ON DIALOG CLOSE\r\n const closeSub: Subscription = dialogRef.onClose.subscribe(() => {\r\n this.removeFromBody(dialogRef);\r\n closeSub.unsubscribe();\r\n });\r\n\r\n // CREATE COMPONENT REF\r\n const componentRef: ComponentRef<any> = createComponent(component, {\r\n\t\t\tenvironmentInjector: appRef.injector,\r\n\t\t\telementInjector: new DialogInjector(this.injector, tokens)\r\n\t\t});\r\n\r\n // ATTACH VIEW TO ANGULAR\r\n appRef.attachView(componentRef.hostView);\r\n\r\n // CREATE DIALOG CONTAINER ELEMENT\r\n const dialogContainer: HTMLDivElement = document.createElement('div');\r\n dialogContainer.classList.add('cf-dialog-container');\r\n\t\tif (dialogConfig.containerClasses.length > 0) {\r\n\t\t\tdialogContainer.classList.add(...dialogConfig.containerClasses);\r\n\t\t}\r\n\r\n\t\t// APPEND DOM ELEMENT TO DIALOG\r\n\t\tconst childDomElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n\t\tchildDomElem.classList.add('cf-dialog');\r\n\t\t\r\n\t\tif (dialogConfig.width !== null) {\r\n\t\t\tchildDomElem.style.width = dialogConfig.width;\r\n\t\t}\r\n\t\tif (dialogConfig.height !== null) {\r\n\t\t\tchildDomElem.style.height = dialogConfig.height;\r\n\t\t}\r\n\t\tif (dialogConfig.noPadding) {\r\n childDomElem.classList.add('no-padding');\r\n }\r\n\t\tif (dialogConfig.dialogClasses.length > 0) {\r\n\t\t\tchildDomElem.classList.add(...dialogConfig.dialogClasses);\r\n\t\t}\r\n\r\n\t\tif (dialogConfig.contentElement !== null) {\r\n\t\t\tchildDomElem.appendChild(dialogConfig.contentElement);\r\n\t\t}\r\n\r\n\t\tdialogContainer.appendChild(childDomElem);\r\n\r\n // CLOSEABLE? APPEND BUTTON\r\n if (dialogConfig.showCloseIcon) {\r\n const closeElement: HTMLDivElement = document.createElement('div');\r\n closeElement.classList.add(...['cf-dialog-close', 'remixicon', 'close-line']);\r\n closeElement.onclick = () => {\r\n dialogRef.close();\r\n };\r\n childDomElem.appendChild(closeElement);\r\n }\r\n\r\n // APPEND DIALOG CONTAINER TO BODY\r\n document.body.appendChild(dialogContainer);\r\n\r\n this.dialogs.set(dialogRef, {\r\n componentRef,\r\n container: dialogContainer,\r\n\t\t\topenIndex: this.openIndex \r\n });\r\n\t\tthis.dialogCountChanged.next(this.dialogs.size);\r\n\r\n\t\tthis.openIndex++;\r\n\r\n return dialogRef;\r\n }\r\n\r\n removeFromBody(dialogRef: DialogRef): void {\r\n\r\n\t\tconst appRef: ApplicationRef = this.injector.get(ApplicationRef);\r\n\r\n if (!dialogRef || !this.dialogs.has(dialogRef)) {\r\n return;\r\n }\r\n const dialogComponentRefContainer: DialogComponentRefContainer | undefined = this.dialogs.get(dialogRef);\r\n if (dialogComponentRefContainer == undefined) {\r\n return;\r\n }\r\n\t\t\r\n appRef.detachView(dialogComponentRefContainer.componentRef.hostView);\r\n\r\n if (dialogComponentRefContainer.container !== null) {\r\n dialogComponentRefContainer.container.remove();\r\n }\r\n dialogComponentRefContainer.componentRef.destroy();\r\n this.dialogs.delete(dialogRef);\r\n\t\tthis.dialogCountChanged.next(this.dialogs.size);\r\n\r\n\t\tif (this.dialogs.size === 0) {\r\n\t\t\tthis.openIndex = 1;\r\n\t\t}\r\n\r\n\t\t// Restore title\r\n\t\tif (this.dialogs.size === 0) {\r\n\t\t\tthis.title.setTitle(dialogRef.savedTitle);\r\n\t\t} else {\r\n\t\t\tlet latestOpenedDialogRef: DialogRef | null = null;\r\n\t\t\tthis.dialogs.forEach((_, dialogRef: DialogRef) => {\r\n\t\t\t\tif (latestOpenedDialogRef === null) {\r\n\t\t\t\t\tlatestOpenedDialogRef = dialogRef;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (latestOpenedDialogRef.opened < dialogRef.opened) {\r\n\t\t\t\t\t\tlatestOpenedDialogRef = dialogRef;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (latestOpenedDialogRef !== null) {\r\n\t\t\t\t//this.title.setTitle(latestOpenedDialogRef.savedTitle);\r\n\t\t\t} else {\r\n\t\t\t\tthis.title.setTitle(dialogRef.savedTitle);\r\n\t\t\t}\r\n\t\t}\r\n }\r\n\r\n\tconfirm(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): Promise<boolean> {\r\n\t\tif (typeof configuration === 'string') {\r\n\t\t\tif (configuration.startsWith('translate:')) {\r\n\t\t\t\tconfiguration = configuration.substr(10);\r\n\t\t\t\tconfiguration = {\r\n\t\t\t\t\ttitle: configuration + '.title',\r\n\t\t\t\t\ttext: configuration + '.text',\r\n\t\t\t\t\tacceptText: configuration + '.accepttext',\r\n\t\t\t\t\tdeclineText: configuration + '.declinetext',\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst predefinedConfirmConfiguration: ConfirmConfiguration | undefined = this.predefinedConfirmConfigurations[configuration];\r\n\t\t\t\tif (predefinedConfirmConfiguration === undefined) {\r\n\t\t\t\t\tthrow new Error('Predefined confirm configuration not found for: ' + configuration);\r\n\t\t\t\t}\r\n\t\t\t\tconfiguration = predefinedConfirmConfiguration;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.open(component, {\r\n\t\t\t\t...dialogConfiguration,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tconfiguration\r\n\t\t\t\t},\r\n\t\t\t\tignoreKeyUp: true,\r\n\t\t\t\tshowCloseIcon: false\r\n\t\t\t}).onClose.pipe(filter(value => value !== undefined)).subscribe((accepted: boolean) => {\r\n\t\t\t\tif (accepted) {\r\n\t\t\t\t\tresolve(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treject(true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n async confirmAsync(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n return await new Promise((resolve) => {\r\n this.confirm(configuration, dialogConfiguration, component).then(() => {\r\n resolve(true);\r\n }).catch(() => {\r\n resolve(false);\r\n });\r\n });\r\n }\r\n\t\r\n\tconfirmAccept(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.confirm(configuration, dialogConfiguration, component).then(() => resolve(true)).catch(() => {});\r\n\t\t});\r\n\t}\r\n\t\r\n\tconfirmDecline(\r\n\t\tconfiguration: ConfirmConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogConfirmComponent\r\n\t): Promise<boolean> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for confirm dialog!');\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tthis.confirm(configuration, dialogConfiguration, component).then(() => {}).catch(() => resolve(true));\r\n\t\t});\r\n\t}\r\n\r\n\tshowLoading(\r\n\t\tconfiguration: LoadingConfiguration,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): DialogRef {\r\n\t\treturn this.open(component, {\r\n\t\t\t...dialogConfiguration,\r\n\t\t\tshowCloseIcon: false,\r\n\t\t\tignoreKeyUp: true,\r\n\t\t\tdata: {\r\n\t\t\t\tconfiguration\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tshowAlert(\r\n\t\tconfiguration: AlertConfiguration | string,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any> | null = this.dialogAlertComponent\r\n\t): Promise<void> {\r\n\t\tif (component === null) {\r\n\t\t\tthrow new Error('No component provided for alert dialog!');\r\n\t\t}\r\n\t\tif (typeof configuration === 'string') {\r\n\t\t\tconst predefinedAlertConfiguration: AlertConfiguration | undefined = this.predefinedAlertConfigurations[configuration];\r\n\t\t\tif (predefinedAlertConfiguration === undefined) {\r\n\t\t\t\tthrow new Error('Predefined alert configuration not found for: ' + configuration);\r\n\t\t\t}\r\n\t\t\tconfiguration = predefinedAlertConfiguration;\r\n\t\t}\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\treturn this.open(component, {\r\n\t\t\t\t...dialogConfiguration,\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tconfiguration\r\n\t\t\t\t},\r\n\t\t\t\tignoreKeyUp: true,\r\n\t\t\t\tshowCloseIcon: false\r\n\t\t\t}).onClose.subscribe(() => {\r\n\t\t\t\tresolve();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tshowModalWithButtons(\r\n\t\tconfiguration: ModalWithButtonsConfiguration,\r\n\t\tdialogConfiguration: DialogConfiguration = {},\r\n\t\tcomponent: Type<any>\r\n\t): DialogRef {\r\n\t\treturn this.open(component, {\r\n\t\t\t...dialogConfiguration,\r\n\t\t\tdata: {\r\n\t\t\t\tconfiguration\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","import { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\nimport { inject, PLATFORM_ID } from \"@angular/core\";\r\nimport { ServerError } from \"./interfaces\";\r\n\r\nexport function isBrowser(): boolean {\r\n\tconst platformId: Object = inject(PLATFORM_ID);\r\n\treturn isPlatformBrowser(platformId);\r\n}\r\n\r\nexport function localStorage(): Storage | null {\r\n\tconst document: Document = inject(DOCUMENT);\r\n\tif (document.defaultView !== null) {\r\n\t\treturn document.defaultView.window.localStorage;\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nexport function sessionStorage(): Storage | null {\r\n\tconst document: Document = inject(DOCUMENT);\r\n\tif (document.defaultView !== null) {\r\n\t\treturn document.defaultView.window.sessionStorage;\r\n\t}\r\n\treturn null;\r\n}\r\n\r\n\r\nexport function isServerError(error: any): error is ServerError {\r\n\treturn error instanceof HttpErrorResponse && typeof error.error === 'object' && error.error['message'] !== undefined && typeof error.error['message'] === 'string';\r\n}","import { inject, Injectable } from '@angular/core';\r\nimport { catchError, EMPTY, OperatorFunction, Subject, Subscription, timer } from 'rxjs';\r\nimport { Message, MessageConfiguration, MessageSeverity } from '../interfaces';\r\nimport { MESSAGE_DEFAULT_CONFIGURATION, MESSAGE_DEFAULT_ERROR_TITLE } from '../tokens';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { isServerError } from '../helpers';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class MessageService {\r\n\r\n /**\r\n * Default configuration\r\n * \r\n * Can be changed if you overwrite it or use the `MESSAGE_DEFAULT_CONFIGURATION` InjectionToken\r\n */\r\n public defaultConfiguration: MessageConfiguration = inject(MESSAGE_DEFAULT_CONFIGURATION);\r\n\r\n\t/**\r\n\t * Default error title\r\n\t */\r\n\tpublic defaultErrorTitle: string = inject(MESSAGE_DEFAULT_ERROR_TITLE);\r\n \r\n /**\r\n * Message subject\r\n */\r\n private messageSubject: Subject<Message> = new Subject();\r\n\r\n /**\r\n * Show\r\n * \r\n * Displays message with the given configuration\r\n * \r\n * @param messageConfiguration `Partial<MessageConfiguration>`\r\n */\r\n public show(title: string, message: string, configuration?: Partial<MessageConfiguration>): void {\r\n this.messageSubject.next({\r\n\t\t\t...this.defaultConfiguration,\r\n ...configuration,\r\n\t\t\ttitle,\r\n\t\t\tmessage\r\n });\r\n }\r\n\r\n /**\r\n * Show success message\r\n * \r\n * Display a message with default success severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showSuccessMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.SUCCESS\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show danger message\r\n * \r\n * Display a message with default danger severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showDangerMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.DANGER,\r\n\t\t\tkeepOnHover: true\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show warning message\r\n * \r\n * Display a message with default warning severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showWarningMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.WARNING\r\n\t\t});\r\n\t}\r\n\r\n /**\r\n * Show info message\r\n * \r\n * Display a message with default info severity\r\n * \r\n * @param title `string`, required\r\n * @param message `string`, required\r\n * @param lifetime `number`, optional, default is `this.defaultLifetime`\r\n * @param position `MessagePosition`, optional, default is `this.defaultPosition`\r\n * @param closeable `boolean`, optional, default is `this.defaultClosable`\r\n */\r\n\tpublic showInfoMessage(\r\n\t\ttitle: string,\r\n\t\tmessage: string,\r\n\t\tconfiguration?: Partial<Omit<MessageConfiguration, 'severity'>>\r\n\t): void {\r\n\t\tthis.show(title, message, {\r\n\t\t\t...configuration,\r\n\t\t\tseverity: MessageSeverity.INFO\r\n\t\t});\r\n\t}\r\n\r\n private showMessage(message: Message): void {\r\n let container: HTMLElement | null = document.getElementById('cf-toasts-' + message.position + '-container');\r\n if (container === null) {\r\n container = document.createElement('div');\r\n container.id = 'cf-toasts-' + message.position + '-container';\r\n document.body.appendChild(container);\r\n }\r\n\r\n const div: HTMLElement = this.createMessageHtmlElement(message);\r\n\r\n container.appendChild(div);\r\n\r\n if (message.lifetime !== null) {\r\n\r\n\t\t\tlet disposeTimerSubscription: Subscription | null = timer(message.lifetime + 500).subscribe(() => {\r\n\t\t\t\tthis.hideMessage(div);\r\n\t\t\t});\r\n\r\n\t\t\tif (message.keepOnHover) {\r\n\t\t\t\tdiv.addEventListener('mouseenter', () => {\r\n\t\t\t\t\tif (disposeTimerSubscription !== null) {\r\n\t\t\t\t\t\tdisposeTimerSubscription.unsubscribe();\r\n\t\t\t\t\t\tdisposeTimerSubscription = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n }\r\n }\r\n\r\n private createMessageHtmlElement(message: Message): HTMLElement {\r\n const div: HTMLElement = document.createElement('div');\r\n div.classList.add('cf-toast', 'cf-' + message.severity + '-toast');\r\n const titleDiv: HTMLElement = document.createElement('div');\r\n titleDiv.classList.add('cf-toast-title');\r\n titleDiv.innerText = message.title;\r\n const messageDiv: HTMLElement = document.createElement('div');\r\n messageDiv.classList.add('cf-toast-message');\r\n messageDiv.innerText = message.message;\r\n div.appendChild(titleDiv);\r\n div.appendChild(messageDiv);\r\n if (message.closeable) {\r\n const closeIcon: HTMLElement = document.createElement('i');\r\n closeIcon.classList.add('close-icon', 'remixicon', 'close-line');\r\n closeIcon.onclick = () => {\r\n this.hideMessage(div, true);\r\n };\r\n div.appendChild(closeIcon);\r\n }\r\n return div;\r\n }\r\n\r\n private hideMessage(messageElement: HTMLElement, forceClose: boolean = false): void {\r\n messageElement.classList.add('hidden-toast');\r\n\r\n let remainOpen = false;\r\n messageElement.addEventListener('mouseenter', (() => {\r\n remainOpen = true;\r\n }));\r\n\r\n timer(500).subscribe(() => {\r\n if (remainOpen && !forceClose) {\r\n messageElement.classList.remove('hidden-toast');\r\n return;\r\n }\r\n messageElement.removeEventListener('mouseenter', (() => {}));\r\n messageElement.remove();\r\n });\r\n }\r\n\t\r\n\thandleApiError(title: string | undefined = undefined): OperatorFunction<any, any> {\r\n\t\treturn source$ => source$.pipe(\r\n\t\t \tcatchError((error: any) => {\r\n\t\t\t\tif (isServerError(error)) {\r\n\t\t\t\t\tthis.showDangerMessage(title || this.defaultErrorTitle, error.error.message);\r\n\t\t\t\t}\r\n\t\t\t\treturn EMPTY;\r\n\t\t \t})\r\n\t\t);\r\n\t}\r\n\r\n constructor() {\r\n this.messageSubject.subscribe((message: Message) => {\r\n this.showMessage(message);\r\n });\r\n }\r\n\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { LogLevel } from '../interfaces';\r\nimport { LOG_LEVEL } from '../tokens';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class LoggerService {\r\n\r\n\tprivate _logLevel: LogLevel | null = inject(LOG_LEVEL);\r\n\r\n\tprivate logLevelColors: string[] = [\r\n\t\t'',\r\n\t\t'background-color: #D2BDF3; padding: 5px 10px;',\r\n\t\t'background-color: #A2DDFF; padding: 5px 10px;',\r\n\t\t'background-color: #FFD5C5; padding: 5px 10px;',\r\n\t\t'background-color: #EA4331; color: #FFFFFF; padding: 5px 10px;',\r\n\t\t'background-color: #F71900; color: #FFFFFF; padding: 5px 10px;',\r\n\t\t''\r\n\t];\r\n\r\n\tpublic debug(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Debug, group });\r\n\t}\r\n\r\n\tpublic info(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Info, group });\r\n\t}\r\n\r\n\tpublic warn(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Warn, group });\r\n\t}\r\n\r\n\tpublic error(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Error, group });\r\n\t}\r\n\r\n\tpublic fatal(log: any, group: boolean = false): void {\r\n\t\tthis.log({ log, logLevel: LogLevel.Fatal, group });\r\n\t}\r\n\r\n\tpublic groupEnd(): void {\r\n\t\tconsole.groupEnd();\r\n\t}\r\n\r\n\tprivate log(configuration: {\r\n\t\tlog: any,\r\n\t\tlogLevel: LogLevel,\r\n\t\tgroup: boolean\r\n\t}): void {\r\n\t\tif (this._logLevel === null || this._logLevel === LogLevel.Off || this._logLevel > configuration.logLevel) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (configuration.group) {\r\n\t\t\tconsole.group(configuration.log);\r\n\t\t} else {\r\n\t\t\tconsole.log('%c' + configuration.log, this.logLevelColors[configuration.logLevel]);\r\n\t\t}\r\n\t}\r\n\r\n\tset logLevel(logLevel: LogLevel | null) {\r\n\t\tthis._logLevel = logLevel;\r\n\t}\r\n\r\n\tget logLevel(): LogLevel | null {\r\n\t\treturn this._logLevel;\r\n\t}\r\n}\r\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { inject, Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { LoggerService } from \"./logger.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ApiService {\r\n\r\n\thttpClient: HttpClient = inject(HttpClient);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\tprivate _apiBaseUrl: string | null = null;\r\n\r\n\tpublic post<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.post<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic get<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.get<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic getFileArrayBuffer(endPoint: (string|number)[]): Observable<ArrayBuffer> {\r\n\t\treturn this.httpClient.get(this.generateUrl(endPoint), {\r\n\t\t\tresponseType: 'arraybuffer'\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getFileText(endPoint: (string|number)[]): Observable<string> {\r\n\t\treturn this.httpClient.get(this.generateUrl(endPoint), {\r\n\t\t\tresponseType: 'text'\r\n\t\t});\r\n\t}\r\n\r\n\tpublic getWithHttpParams<T>(endPoint: (string|number)[], params: HttpParams | null = null): Observable<any> {\r\n\t\tif (params === null) {\r\n\t\t\treturn this.get(endPoint);\r\n\t\t} else {\r\n\t\t\treturn this.httpClient.get<T>(this.generateUrl(endPoint), {\r\n\t\t\t\tparams\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic delete<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.delete<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic patch<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.patch<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic head<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.head<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic options<T>(endPoint: (string|number)[]): Observable<any> {\r\n\t\treturn this.httpClient.options<T>(this.generateUrl(endPoint));\r\n\t}\r\n\r\n\tpublic put<T>(endPoint: (string|number)[], body: any): Observable<any> {\r\n\t\treturn this.httpClient.put<T>(this.generateUrl(endPoint), body);\r\n\t}\r\n\r\n\tpublic generateUrl(endPoint: (string|number)[]): string {\r\n\t\tif (this._apiBaseUrl === null) {\r\n\t\t\tthrow new Error('No API base url set in generateUrl call!');\r\n\t\t}\r\n if (endPoint.length === 0) {\r\n return this._apiBaseUrl;\r\n }\r\n\t\tif (typeof endPoint[0] === 'string' && endPoint[0].startsWith('#')) {\r\n endPoint[0] = endPoint[0].slice(1);\r\n\t\t\treturn endPoint.map((v, i) => i === 0 ? v : encodeURIComponent(v)).join('/');\r\n\t\t}\r\n\t\treturn [this._apiBaseUrl, ...endPoint.map((v) => encodeURIComponent(v))].join('/');\r\n\t}\r\n\r\n\tset apiBaseUrl(apiBaseUrl: string) {\r\n\t\tthis.loggerService.info('Api Service base url set to: ' + apiBaseUrl);\r\n\t\tif (apiBaseUrl[apiBaseUrl.length - 1] === '/') {\r\n\t\t\tapiBaseUrl = apiBaseUrl.slice(0, apiBaseUrl.length - 1);\r\n\t\t}\r\n\t\tthis._apiBaseUrl = apiBaseUrl;\r\n\t}\r\n\r\n\tget apiBaseUrl(): string | null {\r\n\t\treturn this._apiBaseUrl;\r\n\t}\r\n}\r\n","import { DOCUMENT } from \"@angular/common\";\r\nimport { Injectable, inject } from \"@angular/core\";\r\nimport { isBrowser } from \"../helpers\";\r\nimport { LoggerService } from \"./logger.service\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class CookieService {\r\n\r\n\tbrowser: boolean = isBrowser();\r\n\tdocument: Document = inject(DOCUMENT);\r\n\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\t/**\r\n\t * Get the value of a cookie by name, returns `null` if the cookie is not set\r\n\t * \r\n\t * @param name name of the cookie\r\n\t * @returns value of the cookie\r\n\t */\r\n\tget(name: string): string | null {\r\n\t\tif (!this.browser) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tconst cookies: {[key: string]: string} = this.cookies;\r\n\t\treturn cookies[name] || null;\r\n\t}\r\n\r\n\t/**\r\n\t * Set the value of a cookie with the given name\r\n\t * \r\n\t * @param name name of the cookie\r\n\t * @param value value of the cookie\r\n\t * @param expire expire of the cookie in seconds, if null, it will never expire\r\n\t * @param path path of the cookie, default is '/'\r\n\t * @param config optional configuration values (expire in seconds, path of cookie)\r\n\t */\r\n\tset(name: string, value: string, expire: number | null = null, path: string | null = '/'): void {\r\n\r\n\t\tif (!this.browser) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (path === null) {\r\n\t\t\tpath = '/';\r\n\t\t}\r\n\r\n\t\t// Default cookie informations\r\n\t\tlet cookie: string = `${name}=${value};`;\r\n\r\n\t\t// If we have an expire date, we need to set\r\n\t\tif (expire !== null) {\r\n\t\t\tlet d: Date = new Date();\r\n\t\t\td.setTime(d.getTime() + (expire * 1000));\r\n\t\t\tcookie += `expires=${d.toUTCString()};`;\r\n\t\t}\r\n\r\n\t\t// Set path\r\n\t\tcookie += `path=${path};`;\r\n\r\n\t\t// Log\r\n\t\tthis.loggerService.info('Cookie data to set: ' + cookie);\r\n\r\n\t\t// Set the cookie\r\n\t\tthis.document.cookie = cookie;\r\n\t}\r\n\r\n\t/**\r\n\t * Delete a cookie by its name\r\n\t * \r\n\t * @param name name of the cookie\r\n\t */\r\n\tdelete(name: string): void {\r\n\t\tif (!this.browser) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.set(name, '', -1);\r\n\t}\r\n\r\n\tget cookies(): {[key: string]: string} {\r\n\r\n\t\tif (!this.browser) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\r\n\t\tconst cookies: string = this.document.cookie;\r\n\t\tif (cookies.length === 0) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\tconst cookiesArray: string[] = cookies.split(';');\r\n\t\tconst cookiesObject: {[key: string]: string} = {};\r\n\t\tcookiesArray.forEach((cookiesArrayItem: string) => {\r\n\t\t\tconst cookiesArrayItemSplit: string[] = cookiesArrayItem.split('=');\r\n\t\t\tcookiesObject[cookiesArrayItemSplit[0].trim()] = cookiesArrayItemSplit[1];\r\n\t\t})\r\n\t\treturn cookiesObject;\r\n\t}\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { TokenServiceMode } from '../interfaces';\r\nimport { isBrowser, localStorage, sessionStorage } from '../helpers';\r\nimport { CookieService } from './cookie.service';\r\nimport { LoggerService } from './logger.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n\r\n\tcookieService: CookieService = inject(CookieService);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\tlocalStorage: Storage | null = localStorage();\r\n\tsessionStorage: Storage | null = sessionStorage();\r\n\tisBrowser: boolean = isBrowser();\r\n\r\n\tcookiePath: string | null = null;\r\n\taccessToken: string | null = null;\r\n\taccessTokenKey = 'acccessToken';\r\n\taccessTokenCookieExpireDays = 30;\r\n\tmode: TokenServiceMode = TokenServiceMode.LOCALSTORAGE;\r\n\r\n\tpublic init(accessTokenKey: string, mode: TokenServiceMode | null = null, readAndStore: boolean = true): void {\r\n\t\tthis.accessTokenKey = accessTokenKey;\r\n\t\tif (mode !== null) {\r\n\t\t\tthis.mode = mode;\r\n\t\t}\r\n\t\tif (readAndStore) {\r\n\t\t\tthis.accessToken = this.read();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic write(accessToken: string, mode: TokenServiceMode | null = null): void {\r\n\t\tthis.accessToken = accessToken;\r\n\t\tif (mode === null) {\r\n\t\t\tmode = this.mode;\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.localStorage !== null) {\r\n\t\t\t\t\tthis.localStorage.setItem(this.accessTokenKey, this.accessToken);\r\n\t\t\t\t\tthis.loggerService.debug('Token set to local storage: ' + this.accessToken);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to set localStorage on not a browser platform!');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.sessionStorage.setItem(this.accessTokenKey, this.accessToken);\r\n\t\t\t\t\tthis.loggerService.debug('Token set to session storage: ' + this.accessToken);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to set sessionStorage on not a browser platform!');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.COOKIE:\r\n\t\t\t\tthis.cookieService.set(this.accessTokenKey, this.accessToken, this.accessTokenCookieExpireDays * 24 * 60 * 60, this.cookiePath);\r\n\t\t\t\tthis.loggerService.debug('Token set to cookie: ' + this.accessToken);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t}\r\n\r\n\tpublic read(mode: TokenServiceMode | null = null): string | null {\r\n\t\tif (mode === null) {\r\n\t\t\tmode = this.mode;\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tthis.loggerService.debug('Trying to read token from local storage');\r\n\t\t\t\tif (this.isBrowser && this.localStorage !== null) {\r\n\t\t\t\t\tconst tokenLocalStorage: string | null = this.localStorage.getItem(this.accessTokenKey);\r\n\t\t\t\t\tif (tokenLocalStorage !== null) {\r\n\t\t\t\t\t\tthis.loggerService.debug('Token read from local storage: ' + tokenLocalStorage);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn tokenLocalStorage;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to read from localStorage on not a browser platform!');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.isBrowser && this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Trying to read token from session storage');\r\n\t\t\t\t\tconst tokenSessionStorage: string | null = this.sessionStorage.getItem(this.accessTokenKey);\r\n\t\t\t\t\tif (tokenSessionStorage !== null) {\r\n\t\t\t\t\t\tthis.loggerService.debug('Token read from session storage: ' + tokenSessionStorage);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn tokenSessionStorage;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loggerService.error('Trying to read from sessionStorage on not a browser platform!');\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\tcase TokenServiceMode.COOKIE: {\r\n\t\t\t\tthis.loggerService.debug('Trying to read token from session cookie');\r\n\t\t\t\tconst cookieAccessToken: string | null = this.cookieService.get(this.accessTokenKey);\r\n\t\t\t\tif (cookieAccessToken !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token read from cookie: ' + cookieAccessToken);\r\n\t\t\t\t}\r\n\t\t\t\treturn cookieAccessToken;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic readAndStore(): void {\r\n\r\n\t}\r\n\r\n\tpublic delete(mode: TokenServiceMode | null): void {\r\n\t\tif (mode === null) {\r\n\t\t\tthis.loggerService.error('Invalid mode for token delete!');\r\n\t\t}\r\n\t\tswitch (mode) {\r\n\t\t\tcase TokenServiceMode.LOCALSTORAGE:\r\n\t\t\t\tif (this.localStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token deleted from local storage');\r\n\t\t\t\t\tthis.localStorage.removeItem(this.accessTokenKey);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.SESSIONSTORAGE:\r\n\t\t\t\tif (this.sessionStorage !== null) {\r\n\t\t\t\t\tthis.loggerService.debug('Token deleted from session storage');\r\n\t\t\t\t\tthis.sessionStorage.removeItem(this.accessTokenKey);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase TokenServiceMode.COOKIE: {\r\n\t\t\t\tthis.loggerService.debug('Token deleted from cookie');\r\n\t\t\t\tthis.cookieService.delete(this.accessTokenKey);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.accessToken = null;\r\n\t}\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpRequest } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { InterceptorType, PrecheckNullable } from \"../interfaces\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InterceptorsService {\r\n\r\n /**\r\n * Skip\r\n * \r\n * Skip interceptors from next http requests\r\n */\r\n\tskip: InterceptorType[] = [];\r\n\r\n /**\r\n * ResetSkip\r\n * \r\n * Resets to `skip` to empty array after first http request\r\n */\r\n resetSkip: boolean = true;\r\n\r\n\r\n /**\r\n * Precheck\r\n * \r\n * Tells the `PrecheckInterceptor` to set a header with the given value\r\n */\r\n precheck: PrecheckNullable = null;\r\n\r\n /**\r\n * ResetPrecheck\r\n * \r\n * Clear `precheck` after first http request \r\n */\r\n resetPrecheck: boolean = true;\r\n\r\n /**\r\n * Error callback function\r\n * \r\n * Function to call after every http error\r\n */\r\n\terrorCallbackfunction: ((httpErrorResponse: HttpErrorResponse) => void) | null = null;\r\n\r\n /**\r\n * Error skip status codes\r\n * \r\n * Skips the given status codes from `errorCallbackfunction`\r\n */\r\n\terrorSkipStatusCodes: number[] = [];\r\n\r\n /**\r\n * Mock callback function\r\n * \r\n * Function to call to mock an http request\r\n */\r\n\tmockCallbackFunction: ((request: HttpRequest<any>, requestUrl: URL, next: HttpHandler) => Observable<HttpEvent<any>>) | null = null;\r\n\r\n /**\r\n * RequestId HTTP Header name\r\n */\r\n\trequestIdHttpHeaderName: string = 'Request-Id';\r\n\r\n /**\r\n * RequestId repeat\r\n */\r\n\trequestIdRepeat: boolean = false;\r\n\r\n /**\r\n * RequestId repeat delay\r\n */\r\n\trequestIdRepeatDelay: number = 0;\r\n\r\n /**\r\n * RequestId repeat statuscodes\r\n */\r\n\trequestIdRepeatStatusCodes: number[] = [];\r\n}","import { inject, Injectable } from \"@angular/core\";\r\nimport { Observable, of, tap, throwError } from \"rxjs\";\r\nimport { InterceptorsService } from \"./interceptors.service\";\r\nimport { InterceptorType } from \"../interfaces\";\r\nimport { ApiService } from \"./api.service\";\r\nimport { GOOGLE_MAPS_API_KEY } from \"../tokens\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class GoogleMapsService {\r\n\r\n\tapiService: ApiService = inject(ApiService);\r\n\tinterceptorsService: InterceptorsService = inject(InterceptorsService);\r\n\tgoogleMapsApiKey: string | null = inject(GOOGLE_MAPS_API_KEY);\r\n\r\n\tmapsJsLoaded: boolean = false;\r\n\r\n\tload(): Observable<any> {\r\n\t\tif (this.googleMapsApiKey === null) {\r\n\t\t\tthrow new Error('Google maps api key is not set!');\r\n\t\t}\r\n\t\tif (this.mapsJsLoaded) {\r\n\t\t\treturn of(true);\r\n\t\t}\r\n\t\tthis.interceptorsService.skip = [InterceptorType.TOKEN];\r\n\t\treturn this.apiService.httpClient.jsonp(`https://maps.googleapis.com/maps/api/js?key=${this.googleMapsApiKey}`, 'callback').pipe(tap(() => {\r\n\t\t\tthis.interceptorsService.skip = [];\r\n\t\t\tthis.mapsJsLoaded = true;\r\n\t\t}));\r\n\t}\r\n\r\n\tcreateMaps(element: Element | null = null, config: any = {}): Observable<any> {\r\n\t\treturn this.load().pipe(tap(() => {\r\n\t\t\tnew (window as any).google.maps.Map(element, config);\r\n\t\t}));\r\n\t}\r\n\r\n}","import { inject, Injectable, PLATFORM_ID } from \"@angular/core\";\r\nimport { ApiService } from \"./api.service\";\r\nimport { map, Observable, Subject, tap } from \"rxjs\";\r\nimport { LabelValue } from \"../interfaces\";\r\nimport { DOCUMENT, isPlatformBrowser } from \"@angular/common\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class TranslateService {\r\n\r\n\tprivate document: Document = inject(DOCUMENT);\r\n\tprivate platformId: object = inject(PLATFORM_ID);\r\n\r\n\tprivate apiService: ApiService = inject(ApiService);\r\n\r\n\tpublic rawLanguageData: any = null;\r\n\tpublic processedLanguageData: {[key: string]: string} = {};\r\n\r\n\tpublic languageId: string = 'hu';\r\n\tpublic languages: string[] | LabelValue[] = [];\r\n\tpublic languageChanged: Subject<void> = new Subject();\r\n\r\n\tpublic get processedLanguages(): LabelValue[] {\r\n\t\tconst processedLanguages: LabelValue[] = [];\r\n\t\tfor (let language of this.languages) {\r\n\t\t\tif (typeof language === 'string') {\r\n\t\t\t\tprocessedLanguages.push({\r\n\t\t\t\t\tlabel: language,\r\n\t\t\t\t\tvalue: language\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tprocessedLanguages.push({...language});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn processedLanguages;\r\n\t}\r\n\r\n\tpublic get processedLanguagesIds(): string[] {\r\n\t\treturn this.processedLanguages.map(({ value }) => value);\r\n\t}\r\n\r\n\tpublic changeLanguage(languageId: string, reload: boolean = false): void {\r\n\t\tif (this.languageId === languageId && this.processedLanguagesIds.includes(languageId)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.languageId = languageId;\r\n\t\tif (reload && isPlatformBrowser(this.platformId)) {\r\n\t\t\tthis.document.location.reload();\r\n\t\t}\r\n\t}\r\n\r\n\tpublic loadLanguages(endPoint: (string | number)[] = ['assets', 'languages.json'], process: boolean = true): Observable<boolean> {\r\n\t\treturn this.apiService.getFileText(endPoint).pipe(\r\n\t\t\ttap((rawLanguageData: string) => {\r\n\t\t\t\tthis.rawLanguageData = JSON.parse(rawLanguageData);\r\n\t\t\t\tif (process) {\r\n\t\t\t\t\tthis.processLanguageData();\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\tmap(() => true)\r\n\t\t);\r\n\t}\r\n\r\n\tpublic processLanguageData(): void {\r\n\t\tif (this.rawLanguageData === null) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.processedLanguageData = {};\r\n\t\tthis.processRawLanguageData(this.rawLanguageData);\r\n\t}\r\n\r\n\tprivate processRawLanguageData(rawLanguageData: any, path: string[] = []): void {\r\n\t\tif (typeof rawLanguageData === 'string') {\r\n\t\t\tthis.processedLanguageData[path.join('.')] = rawLanguageData;\r\n\t\t} else if (typeof rawLanguageData === 'object') {\r\n\t\t\tObject.keys(rawLanguageData).forEach((key: string) => {\r\n\t\t\t\tthis.processRawLanguageData(rawLanguageData[key], [...path, key]);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\ttranslate(key: string, args: {[key: string]: any} = {}): string {\r\n\t\tkey = key + '.' + this.languageId;\r\n\t\tif (this.processedLanguageData[key] !== undefined && Object.keys(args).length > 0) {\r\n\t\t\tObject.keys(args).forEach((argKey: string) => {\r\n\t\t\t\tthis.processedLanguageData[key] = this.processedLanguageData[key].replace('{{' + argKey + '}}', args[argKey]);\r\n\t\t\t});\r\n\t\t\treturn this.processedLanguageData[key];\r\n\t\t}\r\n\t\treturn this.processedLanguageData[key] || key;\r\n\t}\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MicroDataService {\r\n\r\n\tmicroData: {[key: string]: string} = {};\r\n\r\n\tgetMicroData(key: string, defaultOnUndefined: string = ''): string {\r\n\t\treturn this.microData[key] || defaultOnUndefined;\r\n\t}\r\n\r\n}","import { ChangeDetectorRef, DestroyRef, inject } from \"@angular/core\";\r\nimport { DialogRef } from \"./dialog.ref.class\";\r\nimport { DialogConfig } from \"./dialog.config.class\";\r\nimport { DialogService } from \"../services\";\r\n\r\nexport class Dialog {\r\n\tref: DialogRef = inject(DialogRef);\r\n\tconfig: DialogConfig = inject(DialogConfig);\r\n\tcdr: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\tdestroyRef: DestroyRef = inject(DestroyRef);\r\n\tdialogService: DialogService = inject(DialogService);\r\n}","import { ConfirmConfiguration } from \"../interfaces\";\r\nimport { Dialog } from \"./dialog.class\";\r\n\r\nexport class ConfirmDialog extends Dialog {\r\n\tconfiguration: ConfirmConfiguration = this.config.getData('configuration');\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { LoggerService } from \"../services\";\r\nimport { InterceptorsService } from \"../services/interceptors.service\";\r\nimport { InterceptorType } from \"../interfaces\";\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class BaseInterceptor {\r\n\r\n\ttype: InterceptorType | null = null;\r\n\r\n\tinterceptorsService: InterceptorsService = inject(InterceptorsService);\r\n\tloggerService: LoggerService = inject(LoggerService);\r\n\r\n\tskipInterceptor(): boolean {\r\n\t\tif (this.type !== null && this.interceptorsService.skip.indexOf(InterceptorType.ALL) !== -1) {\r\n\t\t\tthis.loggerService.warn('Interceptor skipped, reason is ALL skipped: ' + this.type);\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tconst skip: boolean = this.type !== null && this.interceptorsService.skip.indexOf(this.type) !== -1;\r\n\t\tif (skip) {\r\n\t\t\tthis.loggerService.warn('Interceptor skipped, reason is [' + this.interceptorsService.skip.join(', ') + '] skipped');\r\n\t\t}\r\n\t\treturn skip;\r\n\t}\r\n\r\n\tconstructor(\r\n\t\ttype: InterceptorType\r\n\t) {\r\n\t\tthis.type = type;\r\n\t\tthis.loggerService.info('Interceptor initialized: ' + this.type);\r\n\t}\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { TokenService } from '../services';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class TokenInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\r\n\tprivate tokenService: TokenService = inject(TokenService);\r\n\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\tif (this.skipInterceptor()) {\r\n\t\t\treturn next.handle(request);\r\n\t\t}\r\n\t\tconst accessToken: string | null = this.tokenService.accessToken;\r\n\t\tif (accessToken !== null) {\r\n\t\t\trequest = request.clone({\r\n\t\t\t\tsetHeaders: {\r\n\t\t\t\t\tToken: accessToken\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn next.handle(request);\r\n\t}\r\n\r\n\tconstructor() {\r\n\t\tsuper(InterceptorType.TOKEN);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class PrecheckInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\t\tif (this.skipInterceptor()) {\r\n\t\t\treturn next.handle(request);\r\n\t\t}\r\n\t\tif (this.interceptorsService.precheck !== null) {\r\n\t\t\trequest = request.clone({\r\n\t\t\t\tsetHeaders: {\r\n\t\t\t\t\tPrecheck: this.interceptorsService.precheck\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (this.interceptorsService.resetPrecheck) {\r\n\t\t\t\tthis.interceptorsService.precheck = null;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn next.handle(request);\r\n\t}\r\n\r\n\tconstructor() {\r\n\t\tsuper(InterceptorType.PRECHECK);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { BaseInterceptor } from './base.interceptor';\r\nimport { InterceptorType } from '../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorInterceptor extends BaseInterceptor implements HttpInterceptor {\r\n\tintercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.skipInterceptor()) {\r\n return next.handle(request);\r\n }\r\n return next.handle(request).pipe(\r\n catchError((httpErrorResponse: HttpErrorResponse) => {\r\n if (this.interceptorsService.errorCallbackfunction !== null && !this.interceptorsService.errorSkipStatusCodes.includes(httpErrorResponse.status)) {\r\n this.loggerService.info('Error Interceptor Callback Function Called');\r\n this.interceptorsService.errorCallbackfunction(httpErrorResponse);\r\n }\r\n return throwError(() => httpErrorResponse);\r\n })\r\n );\r\n }\r\n\r\n constructor() {\r\n \tsuper(InterceptorType.ERROR);\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { EnvironmentProviders, makeEnvironmentProviders, Type } from \"@angular/core\";\r\nimport { TokenInterceptor } from \"./interceptors/token.interceptor\";\r\nimport { CONFIRM_CONFIGURATIONS, DIALOG_ALERT_COMPONENT, DIALOG_CONFIRM_COMPONENT, GOOGLE_MAPS_API_KEY, OPENED_DIALOG_BODY_CLASS, PREDEFINED_DIALOGS } from \"./tokens\";\r\nimport { ConfirmConfiguration, PredefinedDialogs } from \"./interfaces\";\r\n\r\nexport function provideTokenInterceptor(): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TokenInterceptor,\r\n multi: true\r\n }]);\r\n}\r\n\r\nexport function providePredefinedDialogs(predefinedDialogs: PredefinedDialogs): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: PREDEFINED_DIALOGS,\r\n useValue: predefinedDialogs\r\n }]);\r\n}\r\n\r\nexport function provideConfirmConfigurations(confirmConfigurations: {[key: string]: ConfirmConfiguration}): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: CONFIRM_CONFIGURATIONS,\r\n\t\tuseValue: confirmConfigurations\r\n\t}]);\r\n}\r\n\r\nexport function provideOpenedDialogBodyClass(openedDialogBodyClass: string | null): EnvironmentProviders {\r\n return makeEnvironmentProviders([{\r\n provide: OPENED_DIALOG_BODY_CLASS,\r\n useValue: openedDialogBodyClass\r\n }]);\r\n}\r\n\r\nexport function provideGoogleMapsApiKey(googleMapsApiKey: string | null): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: GOOGLE_MAPS_API_KEY,\r\n\t\tuseValue: googleMapsApiKey\r\n\t}]);\r\n}\r\n\r\nexport function provideDialogConfirmComponent(component: Type<any>): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: DIALOG_CONFIRM_COMPONENT,\r\n\t\tuseValue: component\r\n\t}]);\r\n}\r\n\r\nexport function provideDialogAlertComponent(component: Type<any>): EnvironmentProviders {\r\n\treturn makeEnvironmentProviders([{\r\n\t\tprovide: DIALOG_ALERT_COMPONENT,\r\n\t\tuseValue: component\r\n\t}]);\r\n}\r\n","import { inject, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { TranslateService } from \"../services\";\r\n\r\n@Pipe({\r\n\tstandalone: true,\r\n\tname: 'translate'\r\n})\r\nexport class TranslatePipe implements PipeTransform {\r\n\r\n\ttranslateService: TranslateService = inject(TranslateService);\r\n\r\n\ttransform(key: string, args: {[key: string]: any} = {}) {\r\n\t\treturn this.translateService.translate(key, args);\r\n\t}\r\n\r\n}\r\n","import { inject, Pipe, PipeTransform } from \"@angular/core\";\r\nimport { MicroDataService } from \"../services/microdata.service\";\r\n\r\n@Pipe({\r\n\tstandalone: true,\r\n\tname: 'microdata'\r\n})\r\nexport class MicroDataPipe implements PipeTransform {\r\n\r\n\tmicroDataService: MicroDataService = inject(MicroDataService);\r\n\r\n\ttransform(key: string, defaultOnUndefined: string = '') {\r\n\t\treturn this.microDataService.getMicroData(key, defaultOnUndefined);\r\n\t}\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.InterceptorType","catchError"],"mappings":";;;;;;;;MAKa,SAAS,CAAA;AAAtB,IAAA,WAAA,GAAA;QACC,IAAc,CAAA,cAAA,GAA0B,IAAI,CAAC;QAC1C,IAAY,CAAA,YAAA,GAAwB,IAAI,CAAC;AAC3B,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAI,OAAO,EAAO,CAAC;AAC1D,QAAA,IAAA,CAAA,OAAO,GAA8B,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAClE,IAAY,CAAA,YAAA,GAAkB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC;QAC5G,IAAc,CAAA,cAAA,GAAoC,CAAC,KAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC;AACxG,QAAA,IAAA,CAAA,UAAU,GAAiB,IAAI,OAAO,EAAO,CAAC;AAClE,QAAA,IAAA,CAAA,SAAS,GAAoB,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;AACxC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAO,CAAC;AACjD,QAAA,IAAA,CAAA,SAAS,GAAoB,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAC/D,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;QACxB,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;AAC5B,QAAA,IAAA,CAAA,MAAM,GAAS,IAAI,IAAI,EAAE,CAAC;KA4D1B;AA3DQ,IAAA,OAAO,CAAC,MAAY,EAAE,MAAA,GAA8B,EAAE,EAAA;QAC7D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;YACjE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AACvF,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;AACE,IAAA,KAAK,CAAC,MAAY,EAAE,MAAA,GAA8B,EAAE,EAAA;AACtD,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,KAAK,IAAI,EAAE;AACzE,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7B,OAAO;AACP,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,YAAY,OAAO,EAAE;YACrD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAc,KAAI;AACrD,gBAAA,IAAI,KAAK,EAAE;AACV,oBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7B,iBAAA;aACD,CAAC,CAAC,KAAK,CAAC,MAAK,GAAG,CAAC,CAAC;YACnB,OAAO;AACP,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,YAAY,UAAU,EAAE;YACxD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAc,KAAI;AACzF,gBAAA,IAAI,KAAK,EAAE;AACV,oBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7B,iBAAA;AACF,aAAC,CAAC,CAAA;YACF,OAAO;AACP,SAAA;QAED,MAAM,iBAAiB,GAAqD,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAE5G,IAAI,iBAAiB,YAAY,OAAO,EAAE;AACzC,YAAA,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAc,KAAI;AACzC,gBAAA,IAAI,KAAK,EAAE;AACV,oBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7B,iBAAA;aACD,CAAC,CAAC,KAAK,CAAC,MAAK,GAAG,CAAC,CAAC;YACnB,OAAO;AACP,SAAA;QAED,IAAI,iBAAiB,YAAY,UAAU,EAAE;AAC5C,YAAA,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAc,KAAI;AAC7E,gBAAA,IAAI,KAAK,EAAE;AACV,oBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7B,iBAAA;AACF,aAAC,CAAC,CAAC;YACH,OAAO;AACP,SAAA;AAED,QAAA,IAAI,iBAAiB,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7B,SAAA;KACD;AACE,IAAA,UAAU,CAAC,MAAY,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACxB;AACJ,IAAA,OAAO,CAAC,OAAY,EAAU,EAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;IAC3D,OAAO,GAAA,EAAW,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE;AACvD;;MC1EY,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;QACI,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;QACjC,IAAW,CAAA,WAAA,GAA6G,IAAI,CAAC;QAC7H,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC1B,IAAI,CAAA,IAAA,GAAoC,EAAE,CAAC;QAC3C,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC9B,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;QAChC,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;QAC1B,IAAO,CAAA,OAAA,GAAgB,EAAE,CAAC;QAC7B,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QACzB,IAAc,CAAA,cAAA,GAAmB,IAAI,CAAC;QACtC,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QAC/B,IAAM,CAAA,MAAA,GAAkB,IAAI,CAAC;KAI7B;AAHG,IAAA,OAAO,CAAC,GAAoB,EAAE,kBAAA,GAA0B,IAAI,EAAA;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC;KAC7E;AACJ;;MCpBY,cAAc,CAAA;IACvB,WAAoB,CAAA,eAAyB,EAAU,iBAAoC,EAAA;QAAvE,IAAe,CAAA,eAAA,GAAf,eAAe,CAAU;QAAU,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAAK;AAGhG,IAAA,GAAG,CAAC,KAAU,EAAE,aAAmB,EAAE,CAAO,EAAA;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChD,QAAA,IAAI,KAAK,EAAE;AAAE,YAAA,OAAO,KAAK,CAAC;AAAE,SAAA;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAM,KAAK,EAAE,aAAa,CAAC,CAAC;KAC9D;AACJ;;MCRY,kCAAkC,GAA6C,IAAI,cAAc,CAAC,sBAAsB,EAAE;IACtI,OAAO,EAAE,MAA+B;QACvC,OAAO;AACN,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAI;gBAC3B,SAAS,CAAC,KAAK,EAAE,CAAC;aAClB;AACD,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,cAAc,EAAE,IAAI;SACpB,CAAA;KACD;AACD,CAAA,EAAE;MAEU,oBAAoB,GAAwD,IAAI,cAAc,CAAC,iCAAiC,EAAE;IAC3I,OAAO,EAAE,MAA0C;AAC/C,QAAA,OAAO,EAAE,CAAC;KACb;AACJ,CAAA;;MClBY,kBAAkB,GAAsC,IAAI,cAAc,CAAC,oBAAoB,EAAE;IAC1G,OAAO,EAAE,MAAwB;AAC7B,QAAA,OAAO,EAAE,CAAC;KACb;AACJ,CAAA,EAAE;MAEU,wBAAwB,GAAkC,IAAI,cAAc,CAAC,0BAA0B,EAAE;IAClH,OAAO,EAAE,MAAoB;AACzB,QAAA,OAAO,IAAI,CAAC;KACf;AACJ,CAAA,EAAE;MAEU,wBAAwB,GAAqC,IAAI,cAAc,CAAC,0BAA0B,EAAE;IACxH,OAAO,EAAE,MAAuB;AAC/B,QAAA,OAAO,IAAI,CAAC;KACZ;AACD,CAAA,EAAE;MAEU,sBAAsB,GAAqC,IAAI,cAAc,CAAC,wBAAwB,EAAE;IACpH,OAAO,EAAE,MAAuB;AAC/B,QAAA,OAAO,IAAI,CAAC;KACZ;AACD,CAAA;;MCtBY,sBAAsB,GAA0D,IAAI,cAAc,CAAC,mCAAmC,EAAE;IACjJ,OAAO,EAAE,MAA4C;AACjD,QAAA,OAAO,EAAE,CAAC;KACb;AACJ,CAAA;;ICiDW,qBAGX;AAHD,CAAA,UAAY,oBAAoB,EAAA;AAC5B,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,GAG/B,EAAA,CAAA,CAAA,CAAA;IA0BW,gBAGX;AAHD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EAHW,eAAe,KAAf,eAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;IAEW,gBAKX;AALD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA,CAAA;IA+BW,SAQX;AARD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACP,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACX,CAAC,EARW,QAAQ,KAAR,QAAQ,GAQnB,EAAA,CAAA,CAAA,CAAA;IAEW,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;AAChB,IAAA,gBAAA,CAAA,gBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB,CAAA;AAClB,IAAA,gBAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACd,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;IAEW,gBASX;AATD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AAChB,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACxB,CAAC,EATW,eAAe,KAAf,eAAe,GAS1B,EAAA,CAAA,CAAA,CAAA;IAEW,SAGX;AAHD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA;;MCzJY,6BAA6B,GAAyC,IAAI,cAAc,CAAC,+BAA+B,EAAE;IACtI,OAAO,EAAE,MAA2B;QACnC,OAAO;AACN,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,eAAe,CAAC,GAAG;YAC7B,QAAQ,EAAE,eAAe,CAAC,OAAO;AACjC,YAAA,WAAW,EAAE,KAAK;SAClB,CAAC;KACF;AACD,CAAA,EAAE;MAEU,2BAA2B,GAA2B,IAAI,cAAc,CAAC,6BAA6B,EAAE;IACpH,OAAO,EAAE,MAAa;AACrB,QAAA,OAAO,MAAM,CAAC;KACd;AACD,CAAA;;MChBY,SAAS,GAA6B,IAAI,cAAc,CAAC,WAAW,EAAE;IAC/E,OAAO,EAAE,MAAe;QACpB,OAAO,QAAQ,CAAC,GAAG,CAAC;KACvB;AACJ,CAAA;;MCLY,mBAAmB,GAAkC,IAAI,cAAc,CAAC,qBAAqB,EAAE;IACxG,OAAO,EAAE,MAAoB;AACzB,QAAA,OAAO,IAAI,CAAC;KACf;AACJ,CAAA;;MCgBY,aAAa,CAAA;AAkBtB,IAAA,WAAA,GAAA;AAhBK,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,+BAA+B,GAA0C,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACxG,QAAA,IAAA,CAAA,6BAA6B,GAAwC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAClG,QAAA,IAAA,CAAA,iBAAiB,GAAsB,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,qBAAqB,GAAkB,MAAM,CAAC,wBAAwB,CAAC,CAAC;AACxE,QAAA,IAAA,CAAA,sBAAsB,GAAqB,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC5E,QAAA,IAAA,CAAA,oBAAoB,GAAqB,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAEhF,QAAA,IAAA,CAAA,KAAK,GAAU,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAA,CAAA,cAAc,GAAmB,MAAM,CAAC,cAAc,CAAC,CAAC;AAExD,QAAA,IAAA,CAAA,OAAO,GAAgD,IAAI,GAAG,EAAE,CAAC;AACjE,QAAA,IAAA,CAAA,kBAAkB,GAAoB,IAAI,OAAO,EAAE,CAAC;QACpD,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;AACtB,QAAA,IAAA,CAAA,UAAU,GAAW,MAAM,CAAC,WAAW,CAAC,CAAC;AAGxC,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACvC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,aAA4B,KAAI;gBACnE,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;oBACjD,IAAI,aAAa,GAAW,CAAC,CAAC;oBAC9B,IAAI,mBAAmB,GAAqB,IAAI,CAAC;AACjD,oBAAA,KAAK,MAAM,CAAC,SAAS,EAAE,6BAA6B,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;AAChF,wBAAA,IAAI,6BAA6B,CAAC,SAAS,GAAG,aAAa,EAAE;AAC5D,4BAAA,aAAa,GAAG,6BAA6B,CAAC,SAAS,CAAC;4BACxD,mBAAmB,GAAG,SAAS,CAAC;AAChC,yBAAA;AACD,qBAAA;oBAED,IAAI,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,CAAC,YAAY,KAAK,IAAI,EAAE;AAC9E,wBAAA,IAAI,mBAAmB,CAAC,YAAY,CAAC,WAAW,IAAI,QAAQ,CAAC,aAAa,YAAY,gBAAgB,IAAI,QAAQ,CAAC,aAAa,YAAY,mBAAmB,EAAE;4BAChK,OAAO;AACP,yBAAA;wBAED,mBAAmB,CAAC,KAAK,EAAE,CAAC;AAC5B,qBAAA;AACD,iBAAA;AACF,aAAC,CAAC,CAAC;AACH,SAAA;QACD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,IAAY,KAAI;AAClD,YAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE;gBAC9E,IAAI,IAAI,KAAK,CAAC,EAAE;oBACf,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC3D,iBAAA;AAAM,qBAAA;oBACN,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACxD,iBAAA;AACD,aAAA;AACF,SAAC,CAAC,CAAC;KACH;AAED,IAAA,MAAM,cAAc,CAAU,IAAY,EAAE,sBAA2C,EAAE,EAAA;QACxF,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;YAC/C,MAAM,KAAK,CAAC,oBAAoB,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC;AAC1D,SAAA;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACtD,QAAA,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;YAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;AAC9D,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAC,GAAG,gBAAgB,CAAC,aAAa,EAAE,GAAG,mBAAmB,EAAC,CAAC,CAAC;KAChH;AAED,IAAA,MAAM,UAAU,CAAU,SAAmC,EAAE,sBAA2C,EAAE,EAAA;AAC3G,QAAA,OAAO,IAAI,OAAO,CAAC,OAAO,OAAO,KAAI;AACpC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAI,MAAM,SAAS,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAC/D,SAAC,CAAC,CAAC;KACH;AAEE,IAAA,IAAI,CAAU,SAAoB,EAAE,mBAAA,GAA2C,EAAE,EAAA;QAEnF,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;AAC1C,YAAA,IACC,CAAC,mBAAmB,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;AAC3F,iBAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,EACjI;AACD,gBAAA,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACjB,aAAA;AACD,SAAA;QAEK,MAAM,YAAY,GAAiB,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;AAEtF,QAAA,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE;AACpC,YAAA,IAAI,QAAQ,CAAC,aAAa,YAAY,WAAW,EAAE;AAClD,gBAAA,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC9B,aAAA;AACD,SAAA;QAEK,MAAM,SAAS,GAAiB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACjF,QAAA,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AAC/C,QAAA,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;AAEtC,QAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAE9B,QAAA,OAAO,SAAS,CAAC;KACpB;AAEJ,IAAA,mBAAmB,CAAC,SAAoB,EAAA;QACvC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC7C,QAAA,IAAI,SAAS,CAAC,YAAY,KAAK,IAAI,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE;YAC7E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAClD,SAAA;KACD;AAEE,IAAA,kBAAkB,CAAC,mBAAwC,EAAA;AACvD,QAAA,MAAM,YAAY,GAAiB,IAAI,YAAY,EAAE,CAAC;AACtD,QAAA,IAAI,mBAAmB,CAAC,aAAa,KAAK,SAAS,EAAE;AACjD,YAAA,YAAY,CAAC,aAAa,GAAG,mBAAmB,CAAC,aAAa,CAAC;AAClE,SAAA;AACP,QAAA,IAAI,mBAAmB,CAAC,WAAW,KAAK,SAAS,EAAE;AACzC,YAAA,YAAY,CAAC,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC;AAC9D,SAAA;AACP,QAAA,IAAI,mBAAmB,CAAC,WAAW,KAAK,SAAS,EAAE;AACzC,YAAA,YAAY,CAAC,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC;AAC9D,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,IAAI,KAAK,SAAS,EAAE;AACxC,YAAA,YAAY,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;AAChD,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,SAAS,KAAK,SAAS,EAAE;AAC7C,YAAA,YAAY,CAAC,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC;AAC1D,SAAA;AACP,QAAA,IAAI,mBAAmB,CAAC,iBAAiB,KAAK,SAAS,EAAE;AACxD,YAAA,YAAY,CAAC,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;AACvE,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACvD,YAAA,YAAY,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;AACrE,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,aAAa,KAAK,SAAS,EAAE;AACpD,YAAA,YAAY,CAAC,aAAa,GAAG,mBAAmB,CAAC,aAAa,CAAC;AAC/D,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,KAAK,KAAK,SAAS,EAAE;AAC5C,YAAA,YAAY,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAC/C,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,cAAc,KAAK,SAAS,EAAE;AACrD,YAAA,YAAY,CAAC,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC;AACjE,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,MAAM,KAAK,SAAS,EAAE;AAC7C,YAAA,YAAY,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACjD,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,KAAK,KAAK,SAAS,EAAE;AAC5C,YAAA,YAAY,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAC/C,SAAA;AACD,QAAA,IAAI,mBAAmB,CAAC,MAAM,KAAK,SAAS,EAAE;AAC7C,YAAA,YAAY,CAAC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC;AACjD,SAAA;AACK,QAAA,OAAO,YAAY,CAAC;KACvB;IAED,YAAY,CAAC,SAAoB,EAAE,YAA0B,EAAA;QAE/D,MAAM,MAAM,GAAmB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;;AAG3D,QAAA,MAAM,MAAM,GAAsB,IAAI,OAAO,EAAE,CAAC;;AAGhD,QAAA,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;;AAGvC,QAAA,MAAM,SAAS,GAAc,IAAI,SAAS,EAAE,CAAC;AAC7C,QAAA,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;QAGjC,MAAM,QAAQ,GAAiB,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;AAC5D,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YAC/B,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;;AAGH,QAAA,MAAM,YAAY,GAAsB,eAAe,CAAC,SAAS,EAAE;YACxE,mBAAmB,EAAE,MAAM,CAAC,QAAQ;YACpC,eAAe,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC1D,SAAA,CAAC,CAAC;;AAGG,QAAA,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;;QAGzC,MAAM,eAAe,GAAmB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACtE,QAAA,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAC3D,QAAA,IAAI,YAAY,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,gBAAgB,CAAC,CAAC;AAChE,SAAA;;QAGD,MAAM,YAAY,GAAI,YAAY,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAC;AACjG,QAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAExC,QAAA,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE;YAChC,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,EAAE;YACjC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;AAChD,SAAA;QACD,IAAI,YAAY,CAAC,SAAS,EAAE;AAClB,YAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC5C,SAAA;AACP,QAAA,IAAI,YAAY,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAC1D,SAAA;AAED,QAAA,IAAI,YAAY,CAAC,cAAc,KAAK,IAAI,EAAE;AACzC,YAAA,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;AACtD,SAAA;AAED,QAAA,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;;QAGpC,IAAI,YAAY,CAAC,aAAa,EAAE;YAC5B,MAAM,YAAY,GAAmB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnE,YAAA,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAC9E,YAAA,YAAY,CAAC,OAAO,GAAG,MAAK;gBACxB,SAAS,CAAC,KAAK,EAAE,CAAC;AACtB,aAAC,CAAC;AACF,YAAA,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC1C,SAAA;;AAGD,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AAE3C,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YACxB,YAAY;AACZ,YAAA,SAAS,EAAE,eAAe;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;AACnB,SAAA,CAAC,CAAC;QACT,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;AAEX,QAAA,OAAO,SAAS,CAAC;KACpB;AAED,IAAA,cAAc,CAAC,SAAoB,EAAA;QAErC,MAAM,MAAM,GAAmB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAE3D,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;YAC5C,OAAO;AACV,SAAA;QACD,MAAM,2BAA2B,GAA4C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzG,IAAI,2BAA2B,IAAI,SAAS,EAAE;YAC1C,OAAO;AACV,SAAA;QAED,MAAM,CAAC,UAAU,CAAC,2BAA2B,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAErE,QAAA,IAAI,2BAA2B,CAAC,SAAS,KAAK,IAAI,EAAE;AAChD,YAAA,2BAA2B,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;AAClD,SAAA;AACD,QAAA,2BAA2B,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AACnD,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC1C,SAAA;AAAM,aAAA;YACN,IAAI,qBAAqB,GAAqB,IAAI,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAoB,KAAI;gBAChD,IAAI,qBAAqB,KAAK,IAAI,EAAE;oBACnC,qBAAqB,GAAG,SAAS,CAAC;AAClC,iBAAA;AAAM,qBAAA;AACN,oBAAA,IAAI,qBAAqB,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE;wBACpD,qBAAqB,GAAG,SAAS,CAAC;AAClC,qBAAA;AACD,iBAAA;AACF,aAAC,CAAC,CAAC;YACH,IAAI,qBAAqB,KAAK,IAAI,EAAE;;AAEnC,aAAA;AAAM,iBAAA;gBACN,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC1C,aAAA;AACD,SAAA;KACE;AAEJ,IAAA,OAAO,CACN,aAA4C,EAC5C,mBAA2C,GAAA,EAAE,EAC7C,SAAoB,EAAA;AAEpB,QAAA,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;AACtC,YAAA,IAAI,aAAa,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;AAC3C,gBAAA,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACzC,gBAAA,aAAa,GAAG;oBACf,KAAK,EAAE,aAAa,GAAG,QAAQ;oBAC/B,IAAI,EAAE,aAAa,GAAG,OAAO;oBAC7B,UAAU,EAAE,aAAa,GAAG,aAAa;oBACzC,WAAW,EAAE,aAAa,GAAG,cAAc;iBAC3C,CAAA;AACD,aAAA;AAAM,iBAAA;gBACN,MAAM,8BAA8B,GAAqC,IAAI,CAAC,+BAA+B,CAAC,aAAa,CAAC,CAAC;gBAC7H,IAAI,8BAA8B,KAAK,SAAS,EAAE;AACjD,oBAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,aAAa,CAAC,CAAC;AACpF,iBAAA;gBACD,aAAa,GAAG,8BAA8B,CAAC;AAC/C,aAAA;AACD,SAAA;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACtC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACpB,gBAAA,GAAG,mBAAmB;AACtB,gBAAA,IAAI,EAAE;oBACL,aAAa;AACb,iBAAA;AACD,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,aAAa,EAAE,KAAK;aACpB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAiB,KAAI;AACrF,gBAAA,IAAI,QAAQ,EAAE;oBACb,OAAO,CAAC,IAAI,CAAC,CAAC;AACd,iBAAA;AAAM,qBAAA;oBACN,MAAM,CAAC,IAAI,CAAC,CAAC;AACb,iBAAA;AACF,aAAC,CAAC,CAAC;AACJ,SAAC,CAAC,CAAC;KACH;IAEE,MAAM,YAAY,CACpB,aAA4C,EAC5C,mBAA2C,GAAA,EAAE,EAC7C,SAAA,GAA8B,IAAI,CAAC,sBAAsB,EAAA;QAEzD,IAAI,SAAS,KAAK,IAAI,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC7D,SAAA;AACK,QAAA,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAK;gBAClE,OAAO,CAAC,IAAI,CAAC,CAAC;AAClB,aAAC,CAAC,CAAC,KAAK,CAAC,MAAK;gBACV,OAAO,CAAC,KAAK,CAAC,CAAC;AACnB,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;IAEJ,aAAa,CACZ,aAA4C,EAC5C,mBAAA,GAA2C,EAAE,EAC7C,SAAA,GAA8B,IAAI,CAAC,sBAAsB,EAAA;QAEzD,IAAI,SAAS,KAAK,IAAI,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC7D,SAAA;AACD,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAK,GAAG,CAAC,CAAC;AACvG,SAAC,CAAC,CAAC;KACH;IAED,cAAc,CACb,aAA4C,EAC5C,mBAAA,GAA2C,EAAE,EAC7C,SAAA,GAA8B,IAAI,CAAC,sBAAsB,EAAA;QAEzD,IAAI,SAAS,KAAK,IAAI,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC7D,SAAA;AACD,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC9B,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAO,GAAC,CAAC,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACvG,SAAC,CAAC,CAAC;KACH;AAED,IAAA,WAAW,CACV,aAAmC,EACnC,mBAA2C,GAAA,EAAE,EAC7C,SAAoB,EAAA;AAEpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,GAAG,mBAAmB;AACtB,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,IAAI,EAAE;gBACL,aAAa;AACb,aAAA;AACD,SAAA,CAAC,CAAC;KACH;IAED,SAAS,CACR,aAA0C,EAC1C,mBAAA,GAA2C,EAAE,EAC7C,SAAA,GAA8B,IAAI,CAAC,oBAAoB,EAAA;QAEvD,IAAI,SAAS,KAAK,IAAI,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;AAC3D,SAAA;AACD,QAAA,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACtC,MAAM,4BAA4B,GAAmC,IAAI,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC;YACvH,IAAI,4BAA4B,KAAK,SAAS,EAAE;AAC/C,gBAAA,MAAM,IAAI,KAAK,CAAC,gDAAgD,GAAG,aAAa,CAAC,CAAC;AAClF,aAAA;YACD,aAAa,GAAG,4BAA4B,CAAC;AAC7C,SAAA;AACD,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC9B,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,gBAAA,GAAG,mBAAmB;AACtB,gBAAA,IAAI,EAAE;oBACL,aAAa;AACb,iBAAA;AACD,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,aAAa,EAAE,KAAK;AACpB,aAAA,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;AACzB,gBAAA,OAAO,EAAE,CAAC;AACX,aAAC,CAAC,CAAC;AACJ,SAAC,CAAC,CAAC;KACH;AAED,IAAA,oBAAoB,CACnB,aAA4C,EAC5C,mBAA2C,GAAA,EAAE,EAC7C,SAAoB,EAAA;AAEpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,GAAG,mBAAmB;AACtB,YAAA,IAAI,EAAE;gBACL,aAAa;AACb,aAAA;AACD,SAAA,CAAC,CAAC;KACH;+GAjaW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;SChBe,SAAS,GAAA;AACxB,IAAA,MAAM,UAAU,GAAW,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/C,IAAA,OAAO,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;SAEe,YAAY,GAAA;AAC3B,IAAA,MAAM,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5C,IAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,EAAE;AAClC,QAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;AAChD,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACb,CAAC;SAEe,cAAc,GAAA;AAC7B,IAAA,MAAM,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5C,IAAA,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,EAAE;AAClC,QAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;AAClD,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AACb,CAAC;AAGK,SAAU,aAAa,CAAC,KAAU,EAAA;AACvC,IAAA,OAAO,KAAK,YAAY,iBAAiB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC;AACpK;;MCnBa,cAAc,CAAA;AAmBvB;;;;;;AAMG;AACI,IAAA,IAAI,CAAC,KAAa,EAAE,OAAe,EAAE,aAA6C,EAAA;AACrF,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC9B,GAAG,IAAI,CAAC,oBAAoB;AACnB,YAAA,GAAG,aAAa;YACzB,KAAK;YACL,OAAO;AACD,SAAA,CAAC,CAAC;KACN;AAED;;;;;;;;;;AAUG;AACC,IAAA,kBAAkB,CACxB,KAAa,EACb,OAAe,EACf,aAA+D,EAAA;AAE/D,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;AACzB,YAAA,GAAG,aAAa;YAChB,QAAQ,EAAE,eAAe,CAAC,OAAO;AACjC,SAAA,CAAC,CAAC;KACH;AAEE;;;;;;;;;;AAUG;AACC,IAAA,iBAAiB,CACvB,KAAa,EACb,OAAe,EACf,aAA+D,EAAA;AAE/D,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;AACzB,YAAA,GAAG,aAAa;YAChB,QAAQ,EAAE,eAAe,CAAC,MAAM;AAChC,YAAA,WAAW,EAAE,IAAI;AACjB,SAAA,CAAC,CAAC;KACH;AAEE;;;;;;;;;;AAUG;AACC,IAAA,kBAAkB,CACxB,KAAa,EACb,OAAe,EACf,aAA+D,EAAA;AAE/D,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;AACzB,YAAA,GAAG,aAAa;YAChB,QAAQ,EAAE,eAAe,CAAC,OAAO;AACjC,SAAA,CAAC,CAAC;KACH;AAEE;;;;;;;;;;AAUG;AACC,IAAA,eAAe,CACrB,KAAa,EACb,OAAe,EACf,aAA+D,EAAA;AAE/D,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;AACzB,YAAA,GAAG,aAAa;YAChB,QAAQ,EAAE,eAAe,CAAC,IAAI;AAC9B,SAAA,CAAC,CAAC;KACH;AAEU,IAAA,WAAW,CAAC,OAAgB,EAAA;AAChC,QAAA,IAAI,SAAS,GAAuB,QAAQ,CAAC,cAAc,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC;QAC5G,IAAI,SAAS,KAAK,IAAI,EAAE;AACpB,YAAA,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,SAAS,CAAC,EAAE,GAAG,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC;AAC9D,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACxC,SAAA;QAED,MAAM,GAAG,GAAgB,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAEhE,QAAA,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAE3B,QAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE;AAEpC,YAAA,IAAI,wBAAwB,GAAwB,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,MAAK;AAChG,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACvB,aAAC,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,WAAW,EAAE;AACxB,gBAAA,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAK;oBACvC,IAAI,wBAAwB,KAAK,IAAI,EAAE;wBACtC,wBAAwB,CAAC,WAAW,EAAE,CAAC;wBACvC,wBAAwB,GAAG,IAAI,CAAC;AAChC,qBAAA;AACF,iBAAC,CAAC,CAAC;AACH,aAAA;AACK,SAAA;KACJ;AAEO,IAAA,wBAAwB,CAAC,OAAgB,EAAA;QAC7C,MAAM,GAAG,GAAgB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvD,QAAA,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAgB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5D,QAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACzC,QAAA,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;QACnC,MAAM,UAAU,GAAgB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9D,QAAA,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC7C,QAAA,UAAU,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;AACvC,QAAA,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC1B,QAAA,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC5B,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,MAAM,SAAS,GAAgB,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3D,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AACjE,YAAA,SAAS,CAAC,OAAO,GAAG,MAAK;AACrB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAChC,aAAC,CAAC;AACF,YAAA,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC9B,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACd;AAEO,IAAA,WAAW,CAAC,cAA2B,EAAE,UAAA,GAAsB,KAAK,EAAA;AACxE,QAAA,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE7C,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,QAAA,cAAc,CAAC,gBAAgB,CAAC,YAAY,GAAG,MAAK;YAChD,UAAU,GAAG,IAAI,CAAC;SACrB,EAAE,CAAC;AAEJ,QAAA,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,MAAK;AACtB,YAAA,IAAI,UAAU,IAAI,CAAC,UAAU,EAAE;AAC3B,gBAAA,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAChD,OAAO;AACV,aAAA;AACD,YAAA,cAAc,CAAC,mBAAmB,CAAC,YAAY,GAAG,MAAO,GAAC,EAAE,CAAC;YAC7D,cAAc,CAAC,MAAM,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;KACN;IAEJ,cAAc,CAAC,QAA4B,SAAS,EAAA;AACnD,QAAA,OAAO,OAAO,IAAI,OAAO,CAAC,IAAI,CAC3B,UAAU,CAAC,CAAC,KAAU,KAAI;AAC3B,YAAA,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7E,aAAA;AACD,YAAA,OAAO,KAAK,CAAC;SACX,CAAC,CACJ,CAAC;KACF;AAEE,IAAA,WAAA,GAAA;AA1MA;;;;AAIG;AACI,QAAA,IAAA,CAAA,oBAAoB,GAAyB,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAE7F;;AAEG;AACI,QAAA,IAAA,CAAA,iBAAiB,GAAW,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAEpE;;AAEG;AACK,QAAA,IAAA,CAAA,cAAc,GAAqB,IAAI,OAAO,EAAE,CAAC;QA4LrD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAgB,KAAI;AAC/C,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;KACN;+GAhNQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;MCFY,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;AAKS,QAAA,IAAA,CAAA,SAAS,GAAoB,MAAM,CAAC,SAAS,CAAC,CAAC;AAE/C,QAAA,IAAA,CAAA,cAAc,GAAa;YAClC,EAAE;YACF,+CAA+C;YAC/C,+CAA+C;YAC/C,+CAA+C;YAC/C,+DAA+D;YAC/D,+DAA+D;YAC/D,EAAE;SACF,CAAC;AAgDF,KAAA;AA9CO,IAAA,KAAK,CAAC,GAAQ,EAAE,KAAA,GAAiB,KAAK,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;KACnD;AAEM,IAAA,IAAI,CAAC,GAAQ,EAAE,KAAA,GAAiB,KAAK,EAAA;AAC3C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;KAClD;AAEM,IAAA,IAAI,CAAC,GAAQ,EAAE,KAAA,GAAiB,KAAK,EAAA;AAC3C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;KAClD;AAEM,IAAA,KAAK,CAAC,GAAQ,EAAE,KAAA,GAAiB,KAAK,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;KACnD;AAEM,IAAA,KAAK,CAAC,GAAQ,EAAE,KAAA,GAAiB,KAAK,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;KACnD;IAEM,QAAQ,GAAA;QACd,OAAO,CAAC,QAAQ,EAAE,CAAC;KACnB;AAEO,IAAA,GAAG,CAAC,aAIX,EAAA;QACA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,QAAQ,EAAE;YAC1G,OAAO;AACP,SAAA;QACD,IAAI,aAAa,CAAC,KAAK,EAAE;AACxB,YAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACjC,SAAA;AAAM,aAAA;AACN,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnF,SAAA;KACD;IAED,IAAI,QAAQ,CAAC,QAAyB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC1B;AAED,IAAA,IAAI,QAAQ,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;KACtB;+GA3DW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;MCEY,UAAU,CAAA;AAHvB,IAAA,WAAA,GAAA;AAKC,QAAA,IAAA,CAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;AA6E1C,KAAA;IA3EO,IAAI,CAAI,QAA2B,EAAE,IAAS,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;KACjE;AAEM,IAAA,GAAG,CAAI,QAA2B,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC1D;AAEM,IAAA,kBAAkB,CAAC,QAA2B,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AACtD,YAAA,YAAY,EAAE,aAAa;AAC3B,SAAA,CAAC,CAAC;KACH;AAEM,IAAA,WAAW,CAAC,QAA2B,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AACtD,YAAA,YAAY,EAAE,MAAM;AACpB,SAAA,CAAC,CAAC;KACH;AAEM,IAAA,iBAAiB,CAAI,QAA2B,EAAE,MAAA,GAA4B,IAAI,EAAA;QACxF,IAAI,MAAM,KAAK,IAAI,EAAE;AACpB,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC1B,SAAA;AAAM,aAAA;AACN,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;gBACzD,MAAM;AACN,aAAA,CAAC,CAAC;AACH,SAAA;KACD;AAEM,IAAA,MAAM,CAAI,QAA2B,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC7D;IAEM,KAAK,CAAI,QAA2B,EAAE,IAAS,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;KAClE;AAEM,IAAA,IAAI,CAAI,QAA2B,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC3D;AAEM,IAAA,OAAO,CAAI,QAA2B,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC9D;IAEM,GAAG,CAAI,QAA2B,EAAE,IAAS,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;KAChE;AAEM,IAAA,WAAW,CAAC,QAA2B,EAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC5D,SAAA;AACK,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,WAAW,CAAC;AAC3B,SAAA;AACP,QAAA,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC1D,YAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7E,SAAA;QACD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACnF;IAED,IAAI,UAAU,CAAC,UAAkB,EAAA;QAChC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,+BAA+B,GAAG,UAAU,CAAC,CAAC;QACtE,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;AAC9C,YAAA,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxD,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;KAC9B;AAED,IAAA,IAAI,UAAU,GAAA;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;KACxB;+GAjFW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;MCCY,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;QAKC,IAAO,CAAA,OAAA,GAAY,SAAS,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEtC,QAAA,IAAA,CAAA,aAAa,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;AAqFrD,KAAA;AAnFA;;;;;AAKG;AACH,IAAA,GAAG,CAAC,IAAY,EAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC;AACZ,SAAA;AACD,QAAA,MAAM,OAAO,GAA4B,IAAI,CAAC,OAAO,CAAC;AACtD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;KAC7B;AAED;;;;;;;;AAQG;IACH,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,MAAwB,GAAA,IAAI,EAAE,IAAA,GAAsB,GAAG,EAAA;AAEvF,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAClB,OAAO;AACP,SAAA;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YAClB,IAAI,GAAG,GAAG,CAAC;AACX,SAAA;;AAGD,QAAA,IAAI,MAAM,GAAW,CAAA,EAAG,IAAI,CAAI,CAAA,EAAA,KAAK,GAAG,CAAC;;QAGzC,IAAI,MAAM,KAAK,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,GAAS,IAAI,IAAI,EAAE,CAAC;AACzB,YAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AACzC,YAAA,MAAM,IAAI,CAAW,QAAA,EAAA,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC;AACxC,SAAA;;AAGD,QAAA,MAAM,IAAI,CAAA,KAAA,EAAQ,IAAI,CAAA,CAAA,CAAG,CAAC;;QAG1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC;;AAGzD,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;KAC9B;AAED;;;;AAIG;AACH,IAAA,MAAM,CAAC,IAAY,EAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAClB,OAAO;AACP,SAAA;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;KACvB;AAED,IAAA,IAAI,OAAO,GAAA;AAEV,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAClB,YAAA,OAAO,EAAE,CAAC;AACV,SAAA;AAED,QAAA,MAAM,OAAO,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC7C,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,EAAE,CAAC;AACV,SAAA;QACD,MAAM,YAAY,GAAa,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,aAAa,GAA4B,EAAE,CAAC;AAClD,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,gBAAwB,KAAI;YACjD,MAAM,qBAAqB,GAAa,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpE,YAAA,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC3E,SAAC,CAAC,CAAA;AACF,QAAA,OAAO,aAAa,CAAC;KACrB;+GAzFW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;MCEY,YAAY,CAAA;AAHzB,IAAA,WAAA,GAAA;AAKC,QAAA,IAAA,CAAA,aAAa,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,aAAa,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;QACrD,IAAY,CAAA,YAAA,GAAmB,YAAY,EAAE,CAAC;QAC9C,IAAc,CAAA,cAAA,GAAmB,cAAc,EAAE,CAAC;QAClD,IAAS,CAAA,SAAA,GAAY,SAAS,EAAE,CAAC;QAEjC,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;QACjC,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;QAClC,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;QAChC,IAA2B,CAAA,2BAAA,GAAG,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,IAAI,GAAqB,gBAAgB,CAAC,YAAY,CAAC;AA8GvD,KAAA;AA5GO,IAAA,IAAI,CAAC,cAAsB,EAAE,OAAgC,IAAI,EAAE,eAAwB,IAAI,EAAA;AACrG,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,IAAI,KAAK,IAAI,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,SAAA;AACD,QAAA,IAAI,YAAY,EAAE;AACjB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AAC/B,SAAA;KACD;AAEM,IAAA,KAAK,CAAC,WAAmB,EAAE,IAAA,GAAgC,IAAI,EAAA;AACrE,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,IAAI,KAAK,IAAI,EAAE;AAClB,YAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACjB,SAAA;AACD,QAAA,QAAQ,IAAI;YACX,KAAK,gBAAgB,CAAC,YAAY;gBACjC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;AACjD,oBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBACjE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,8BAA8B,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5E,iBAAA;AAAM,qBAAA;AACN,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AAClF,iBAAA;gBACD,MAAM;YACP,KAAK,gBAAgB,CAAC,cAAc;gBACnC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;AACnD,oBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBACnE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,gCAAgC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9E,iBAAA;AAAM,qBAAA;AACN,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;AACpF,iBAAA;gBACD,MAAM;YACP,KAAK,gBAAgB,CAAC,MAAM;gBAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,2BAA2B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBACrE,MAAM;AACN,SAAA;KACF;IAEM,IAAI,CAAC,OAAgC,IAAI,EAAA;QAC/C,IAAI,IAAI,KAAK,IAAI,EAAE;AAClB,YAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACjB,SAAA;AACD,QAAA,QAAQ,IAAI;YACX,KAAK,gBAAgB,CAAC,YAAY;AACjC,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACpE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;AACjD,oBAAA,MAAM,iBAAiB,GAAkB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACxF,IAAI,iBAAiB,KAAK,IAAI,EAAE;wBAC/B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,iCAAiC,GAAG,iBAAiB,CAAC,CAAC;AAChF,qBAAA;AACD,oBAAA,OAAO,iBAAiB,CAAC;AACzB,iBAAA;AAAM,qBAAA;AACN,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;AACxF,oBAAA,OAAO,IAAI,CAAC;AACZ,iBAAA;YACF,KAAK,gBAAgB,CAAC,cAAc;gBACnC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;AACnD,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;AACtE,oBAAA,MAAM,mBAAmB,GAAkB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC5F,IAAI,mBAAmB,KAAK,IAAI,EAAE;wBACjC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,mCAAmC,GAAG,mBAAmB,CAAC,CAAC;AACpF,qBAAA;AACD,oBAAA,OAAO,mBAAmB,CAAC;AAC3B,iBAAA;AAAM,qBAAA;AACN,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;AAC1F,oBAAA,OAAO,IAAI,CAAC;AACZ,iBAAA;AACF,YAAA,KAAK,gBAAgB,CAAC,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACrE,gBAAA,MAAM,iBAAiB,GAAkB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACrF,IAAI,iBAAiB,KAAK,IAAI,EAAE;oBAC/B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,0BAA0B,GAAG,iBAAiB,CAAC,CAAC;AACzE,iBAAA;AACD,gBAAA,OAAO,iBAAiB,CAAC;AACzB,aAAA;AACD,SAAA;KACD;IAEM,YAAY,GAAA;KAElB;AAEM,IAAA,MAAM,CAAC,IAA6B,EAAA;QAC1C,IAAI,IAAI,KAAK,IAAI,EAAE;AAClB,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;AAC3D,SAAA;AACD,QAAA,QAAQ,IAAI;YACX,KAAK,gBAAgB,CAAC,YAAY;AACjC,gBAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;AAC/B,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;oBAC7D,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAClD,iBAAA;gBACD,MAAM;YACP,KAAK,gBAAgB,CAAC,cAAc;AACnC,gBAAA,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;AACjC,oBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;oBAC/D,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACpD,iBAAA;gBACD,MAAM;AACP,YAAA,KAAK,gBAAgB,CAAC,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACtD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC/C,MAAM;AACN,aAAA;AACD,SAAA;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACxB;+GAzHW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCAY,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAKI;;;;AAIG;QACN,IAAI,CAAA,IAAA,GAAsB,EAAE,CAAC;AAE1B;;;;AAIG;QACH,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAG1B;;;;AAIG;QACH,IAAQ,CAAA,QAAA,GAAqB,IAAI,CAAC;AAElC;;;;AAIG;QACH,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;AAE9B;;;;AAIG;QACN,IAAqB,CAAA,qBAAA,GAA4D,IAAI,CAAC;AAEnF;;;;AAIG;QACN,IAAoB,CAAA,oBAAA,GAAa,EAAE,CAAC;AAEjC;;;;AAIG;QACN,IAAoB,CAAA,oBAAA,GAA2G,IAAI,CAAC;AAEjI;;AAEG;QACN,IAAuB,CAAA,uBAAA,GAAW,YAAY,CAAC;AAE5C;;AAEG;QACN,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AAE9B;;AAEG;QACN,IAAoB,CAAA,oBAAA,GAAW,CAAC,CAAC;AAE9B;;AAEG;QACN,IAA0B,CAAA,0BAAA,GAAa,EAAE,CAAC;AAC1C,KAAA;+GAvEY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCGY,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;AAKC,QAAA,IAAA,CAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,mBAAmB,GAAwB,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACvE,QAAA,IAAA,CAAA,gBAAgB,GAAkB,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAE9D,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAsB9B,KAAA;IApBA,IAAI,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,EAAE;AACnC,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACnD,SAAA;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;AAChB,SAAA;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA,4CAAA,EAA+C,IAAI,CAAC,gBAAgB,CAAE,CAAA,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACzI,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC;AACnC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SACzB,CAAC,CAAC,CAAC;KACJ;AAED,IAAA,UAAU,CAAC,OAAA,GAA0B,IAAI,EAAE,SAAc,EAAE,EAAA;QAC1D,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AAChC,YAAA,IAAK,MAAc,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACrD,CAAC,CAAC,CAAC;KACJ;+GA1BW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;MCAY,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;AAKS,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,UAAU,GAAW,MAAM,CAAC,WAAW,CAAC,CAAC;AAEzC,QAAA,IAAA,CAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC,CAAC;QAE7C,IAAe,CAAA,eAAA,GAAQ,IAAI,CAAC;QAC5B,IAAqB,CAAA,qBAAA,GAA4B,EAAE,CAAC;QAEpD,IAAU,CAAA,UAAA,GAAW,IAAI,CAAC;QAC1B,IAAS,CAAA,SAAA,GAA4B,EAAE,CAAC;AACxC,QAAA,IAAA,CAAA,eAAe,GAAkB,IAAI,OAAO,EAAE,CAAC;AAwEtD,KAAA;AAtEA,IAAA,IAAW,kBAAkB,GAAA;QAC5B,MAAM,kBAAkB,GAAiB,EAAE,CAAC;AAC5C,QAAA,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACpC,YAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gBACjC,kBAAkB,CAAC,IAAI,CAAC;AACvB,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,KAAK,EAAE,QAAQ;AACf,iBAAA,CAAC,CAAC;AACH,aAAA;AAAM,iBAAA;gBACN,kBAAkB,CAAC,IAAI,CAAC,EAAC,GAAG,QAAQ,EAAC,CAAC,CAAC;AACvC,aAAA;AACD,SAAA;AACD,QAAA,OAAO,kBAAkB,CAAC;KAC1B;AAED,IAAA,IAAW,qBAAqB,GAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC;KACzD;AAEM,IAAA,cAAc,CAAC,UAAkB,EAAE,MAAA,GAAkB,KAAK,EAAA;AAChE,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YACtF,OAAO;AACP,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACjD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AAChC,SAAA;KACD;IAEM,aAAa,CAAC,WAAgC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,OAAA,GAAmB,IAAI,EAAA;AACzG,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAChD,GAAG,CAAC,CAAC,eAAuB,KAAI;YAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACnD,YAAA,IAAI,OAAO,EAAE;gBACZ,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,aAAA;SACD,CAAC,EACF,GAAG,CAAC,MAAM,IAAI,CAAC,CACf,CAAC;KACF;IAEM,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;YAClC,OAAO;AACP,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAClD;AAEO,IAAA,sBAAsB,CAAC,eAAoB,EAAE,IAAA,GAAiB,EAAE,EAAA;AACvE,QAAA,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;AACxC,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;AAC7D,SAAA;AAAM,aAAA,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;YAC/C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AACpD,gBAAA,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,aAAC,CAAC,CAAC;AACH,SAAA;KACD;AAED,IAAA,SAAS,CAAC,GAAW,EAAE,IAAA,GAA6B,EAAE,EAAA;QACrD,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;AAClC,QAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAClF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,MAAc,KAAI;gBAC5C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/G,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACvC,SAAA;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;KAC9C;+GAlFW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;MCHY,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;QAKC,IAAS,CAAA,SAAA,GAA4B,EAAE,CAAC;AAMxC,KAAA;AAJA,IAAA,YAAY,CAAC,GAAW,EAAE,kBAAA,GAA6B,EAAE,EAAA;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC;KACjD;+GANW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCCY,MAAM,CAAA;AAAnB,IAAA,WAAA,GAAA;AACC,QAAA,IAAA,CAAA,GAAG,GAAc,MAAM,CAAC,SAAS,CAAC,CAAC;AACnC,QAAA,IAAA,CAAA,MAAM,GAAiB,MAAM,CAAC,YAAY,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,GAAG,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC,CAAC;AAC5C,QAAA,IAAA,CAAA,aAAa,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;KACrD;AAAA;;ACRK,MAAO,aAAc,SAAQ,MAAM,CAAA;AAAzC,IAAA,WAAA,GAAA;;QACC,IAAa,CAAA,aAAA,GAAyB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;KAC3E;AAAA;;MCGY,eAAe,CAAA;IAO3B,eAAe,GAAA;QACd,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC5F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,8CAA8C,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AACpF,YAAA,OAAO,IAAI,CAAC;AACZ,SAAA;QAED,MAAM,IAAI,GAAY,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpG,QAAA,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;AACrH,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACZ;AAED,IAAA,WAAA,CACC,IAAqB,EAAA;QAnBtB,IAAI,CAAA,IAAA,GAA2B,IAAI,CAAC;AAEpC,QAAA,IAAA,CAAA,mBAAmB,GAAwB,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACvE,QAAA,IAAA,CAAA,aAAa,GAAkB,MAAM,CAAC,aAAa,CAAC,CAAC;AAkBpD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;KACjE;+GAzBW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;ACGK,MAAO,gBAAiB,SAAQ,eAAe,CAAA;IAIpD,SAAS,CAAC,OAAyB,EAAE,IAAiB,EAAA;AACrD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AAC3B,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC5B,SAAA;AACD,QAAA,MAAM,WAAW,GAAkB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QACjE,IAAI,WAAW,KAAK,IAAI,EAAE;AACzB,YAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;AACvB,gBAAA,UAAU,EAAE;AACX,oBAAA,KAAK,EAAE,WAAW;AAClB,iBAAA;AACD,aAAA,CAAC,CAAC;AACH,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC5B;AAED,IAAA,WAAA,GAAA;AACC,QAAA,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAlBtB,QAAA,IAAA,CAAA,YAAY,GAAiB,MAAM,CAAC,YAAY,CAAC,CAAC;KAmBzD;+GArBW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;ACAK,MAAO,mBAAoB,SAAQ,eAAe,CAAA;IAEvD,SAAS,CAAC,OAAyB,EAAE,IAAiB,EAAA;AACrD,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AAC3B,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC/C,YAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;AACvB,gBAAA,UAAU,EAAE;AACX,oBAAA,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ;AAC3C,iBAAA;AACD,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;AAC3C,gBAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzC,aAAA;AACD,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC5B;AAED,IAAA,WAAA,GAAA;AACC,QAAA,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KAChC;+GArBW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEN,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;ACEK,MAAO,gBAAiB,SAAQ,eAAe,CAAA;IACpD,SAAS,CAAC,OAAyB,EAAE,IAAiB,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5BC,YAAU,CAAC,CAAC,iBAAoC,KAAI;YAChD,IAAI,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE;AAC9I,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;AACtE,gBAAA,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;AACrE,aAAA;AACD,YAAA,OAAO,UAAU,CAAC,MAAM,iBAAiB,CAAC,CAAC;SAC9C,CAAC,CACL,CAAC;KACL;AAED,IAAA,WAAA,GAAA;AACC,QAAA,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KAC7B;+GAlBQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;SCHe,uBAAuB,GAAA;IACnC,OAAO,wBAAwB,CAAC,CAAC;AAC7B,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,KAAK,EAAE,IAAI;AACd,SAAA,CAAC,CAAC,CAAC;AACR,CAAC;AAEK,SAAU,wBAAwB,CAAC,iBAAoC,EAAA;IACzE,OAAO,wBAAwB,CAAC,CAAC;AAC7B,YAAA,OAAO,EAAE,kBAAkB;AAC3B,YAAA,QAAQ,EAAE,iBAAiB;AAC9B,SAAA,CAAC,CAAC,CAAC;AACR,CAAC;AAEK,SAAU,4BAA4B,CAAC,qBAA4D,EAAA;IACxG,OAAO,wBAAwB,CAAC,CAAC;AAChC,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,QAAQ,EAAE,qBAAqB;AAC/B,SAAA,CAAC,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,4BAA4B,CAAC,qBAAoC,EAAA;IAC7E,OAAO,wBAAwB,CAAC,CAAC;AAC7B,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,QAAQ,EAAE,qBAAqB;AAClC,SAAA,CAAC,CAAC,CAAC;AACR,CAAC;AAEK,SAAU,uBAAuB,CAAC,gBAA+B,EAAA;IACtE,OAAO,wBAAwB,CAAC,CAAC;AAChC,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,SAAA,CAAC,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,6BAA6B,CAAC,SAAoB,EAAA;IACjE,OAAO,wBAAwB,CAAC,CAAC;AAChC,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,QAAQ,EAAE,SAAS;AACnB,SAAA,CAAC,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,2BAA2B,CAAC,SAAoB,EAAA;IAC/D,OAAO,wBAAwB,CAAC,CAAC;AAChC,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,QAAQ,EAAE,SAAS;AACnB,SAAA,CAAC,CAAC,CAAC;AACL;;MC/Ca,aAAa,CAAA;AAJ1B,IAAA,WAAA,GAAA;AAMC,QAAA,IAAA,CAAA,gBAAgB,GAAqB,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAM9D,KAAA;AAJA,IAAA,SAAS,CAAC,GAAW,EAAE,IAAA,GAA6B,EAAE,EAAA;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAClD;+GANW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,WAAW;AACjB,iBAAA,CAAA;;;MCCY,aAAa,CAAA;AAJ1B,IAAA,WAAA,GAAA;AAMC,QAAA,IAAA,CAAA,gBAAgB,GAAqB,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAM9D,KAAA;AAJA,IAAA,SAAS,CAAC,GAAW,EAAE,kBAAA,GAA6B,EAAE,EAAA;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;KACnE;+GANW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,WAAW;AACjB,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
|
package/lib/helpers.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { ServerError } from "./interfaces";
|
|
1
2
|
export declare function isBrowser(): boolean;
|
|
2
3
|
export declare function localStorage(): Storage | null;
|
|
3
4
|
export declare function sessionStorage(): Storage | null;
|
|
5
|
+
export declare function isServerError(error: any): error is ServerError;
|
package/lib/interfaces.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ComponentRef, Type } from "@angular/core";
|
|
2
2
|
import { Observable } from "rxjs";
|
|
3
3
|
import { DialogRef } from "./classes/dialog.ref.class";
|
|
4
|
+
import { HttpErrorResponse } from "@angular/common/http";
|
|
4
5
|
export interface LabelValue<T = string> {
|
|
5
6
|
label: string;
|
|
6
7
|
value: T;
|
|
@@ -143,3 +144,8 @@ export declare enum Precheck {
|
|
|
143
144
|
WARNING = "WARNING"
|
|
144
145
|
}
|
|
145
146
|
export type PrecheckNullable = Precheck | null;
|
|
147
|
+
export interface ServerError extends HttpErrorResponse {
|
|
148
|
+
error: {
|
|
149
|
+
message: string;
|
|
150
|
+
};
|
|
151
|
+
}
|
package/lib/pipes/index.d.ts
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PipeTransform } from "@angular/core";
|
|
2
|
+
import { MicroDataService } from "../services/microdata.service";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class MicroDataPipe implements PipeTransform {
|
|
5
|
+
microDataService: MicroDataService;
|
|
6
|
+
transform(key: string, defaultOnUndefined?: string): string;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MicroDataPipe, never>;
|
|
8
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<MicroDataPipe, "microdata", true>;
|
|
9
|
+
}
|
package/lib/services/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OperatorFunction } from 'rxjs';
|
|
1
2
|
import { MessageConfiguration } from '../interfaces';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class MessageService {
|
|
@@ -7,6 +8,10 @@ export declare class MessageService {
|
|
|
7
8
|
* Can be changed if you overwrite it or use the `MESSAGE_DEFAULT_CONFIGURATION` InjectionToken
|
|
8
9
|
*/
|
|
9
10
|
defaultConfiguration: MessageConfiguration;
|
|
11
|
+
/**
|
|
12
|
+
* Default error title
|
|
13
|
+
*/
|
|
14
|
+
defaultErrorTitle: string;
|
|
10
15
|
/**
|
|
11
16
|
* Message subject
|
|
12
17
|
*/
|
|
@@ -70,6 +75,7 @@ export declare class MessageService {
|
|
|
70
75
|
private showMessage;
|
|
71
76
|
private createMessageHtmlElement;
|
|
72
77
|
private hideMessage;
|
|
78
|
+
handleApiError(title?: string | undefined): OperatorFunction<any, any>;
|
|
73
79
|
constructor();
|
|
74
80
|
static ɵfac: i0.ɵɵFactoryDeclaration<MessageService, never>;
|
|
75
81
|
static ɵprov: i0.ɵɵInjectableDeclaration<MessageService>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class MicroDataService {
|
|
3
|
+
microData: {
|
|
4
|
+
[key: string]: string;
|
|
5
|
+
};
|
|
6
|
+
getMicroData(key: string, defaultOnUndefined?: string): string;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MicroDataService, never>;
|
|
8
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MicroDataService>;
|
|
9
|
+
}
|