@acorex/connectivity 20.2.4-next.2 → 20.2.4-next.5
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/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-BrHaSAxo.mjs +24263 -0
- package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-BrHaSAxo.mjs.map +1 -0
- package/fesm2022/{acorex-connectivity-mock-category-with-items.query-BNWqkuZp.mjs → acorex-connectivity-mock-category-with-items.query-72bKFWcj.mjs} +1 -2
- package/fesm2022/acorex-connectivity-mock-category-with-items.query-72bKFWcj.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock-employee-skills.queries-Bg44X62k.mjs +194 -0
- package/fesm2022/acorex-connectivity-mock-employee-skills.queries-Bg44X62k.mjs.map +1 -0
- package/fesm2022/acorex-connectivity-mock.mjs +1 -19887
- package/fesm2022/acorex-connectivity-mock.mjs.map +1 -1
- package/mock/index.d.ts +159 -318
- package/package.json +3 -3
- package/fesm2022/acorex-connectivity-mock-category-with-items.query-BNWqkuZp.mjs.map +0 -1
|
@@ -10,7 +10,6 @@ class AXCQueryCategoryWithItemsQuery {
|
|
|
10
10
|
this.metaDataService = inject(AXMMetaDataDefinitionService);
|
|
11
11
|
}
|
|
12
12
|
fetch() {
|
|
13
|
-
debugger;
|
|
14
13
|
return this.getAllWithItems();
|
|
15
14
|
}
|
|
16
15
|
async getAllWithItems() {
|
|
@@ -84,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
|
|
|
84
83
|
}] });
|
|
85
84
|
|
|
86
85
|
export { AXCQueryCategoryWithItemsQuery };
|
|
87
|
-
//# sourceMappingURL=acorex-connectivity-mock-category-with-items.query-
|
|
86
|
+
//# sourceMappingURL=acorex-connectivity-mock-category-with-items.query-72bKFWcj.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-category-with-items.query-72bKFWcj.mjs","sources":["../tmp-esm2022/mock/lib/data-management/metadata/category-with-items.query.js"],"sourcesContent":["import { AXMMetaDataDefinitionService, RootConfig } from '@acorex/modules/data-management';\nimport { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { inject, Injectable, Injector, runInInjectionContext } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXCQueryCategoryWithItemsQuery {\n constructor() {\n this.injector = inject(Injector);\n this.categoryEntityService = runInInjectionContext(this.injector, () => new AXMEntityCrudServiceImpl(`${RootConfig.module.name}.${RootConfig.entities.metaDataDefinition.name}Category`));\n this.metaDataService = inject(AXMMetaDataDefinitionService);\n }\n fetch() {\n return this.getAllWithItems();\n }\n async getAllWithItems() {\n const rootCategories = await this.categoryEntityService.query({\n take: 1000,\n skip: 0,\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'parentId',\n operator: {\n type: 'isNull',\n },\n },\n ],\n },\n });\n const categories = await Promise.all(rootCategories.items.map((category) => this.buildCategoryTree(category)));\n return categories;\n }\n async buildCategoryTree(category) {\n const itemsResult = await this.metaDataService.query({\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'categoryIds',\n operator: {\n type: 'contains',\n },\n value: category.id,\n },\n ],\n },\n take: 1000,\n skip: 0,\n });\n const childCategoriesResult = await this.categoryEntityService.query({\n filter: {\n logic: 'and',\n filters: [\n {\n field: 'parentId',\n operator: {\n type: 'equal',\n },\n value: category.id,\n },\n ],\n },\n take: 1000,\n skip: 0,\n });\n const children = await Promise.all(childCategoriesResult.items.map((child) => this.buildCategoryTree(child)));\n return {\n ...category,\n items: itemsResult.items,\n categories: children,\n children: children,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXCQueryCategoryWithItemsQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXCQueryCategoryWithItemsQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXCQueryCategoryWithItemsQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktd2l0aC1pdGVtcy5xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29ubmVjdGl2aXR5L21vY2svc3JjL2xpYi9kYXRhLW1hbmFnZW1lbnQvbWV0YWRhdGEvY2F0ZWdvcnktd2l0aC1pdGVtcy5xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLDRCQUE0QixFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLcEYsTUFBTSxPQUFPLDhCQUE4QjtJQUgzQztRQUtZLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsMEJBQXFCLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLHdCQUF3QixDQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDL0wsb0JBQWUsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQTJFbEU7SUF4RUcsS0FBSztRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZTtRQUN6QixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7WUFDMUQsSUFBSSxFQUFFLElBQUk7WUFDVixJQUFJLEVBQUUsQ0FBQztZQUNQLE1BQU0sRUFBRTtnQkFDSixLQUFLLEVBQUUsS0FBSztnQkFDWixPQUFPLEVBQUU7b0JBQ0w7d0JBQ0ksS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLFFBQVEsRUFBRTs0QkFDTixJQUFJLEVBQUUsUUFBUTt5QkFDakI7cUJBQ0o7aUJBQ0o7YUFDSjtTQUNKLENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRyxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBRU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDLFFBQWE7UUFDekMsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztZQUNqRCxNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFO29CQUNMO3dCQUNJLEtBQUssRUFBRSxhQUFhO3dCQUNwQixRQUFRLEVBQUU7NEJBQ04sSUFBSSxFQUFFLFVBQVU7eUJBQ25CO3dCQUNELEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtxQkFDckI7aUJBQ0o7YUFDSjtZQUNELElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLENBQUM7U0FDVixDQUFDLENBQUM7UUFFSCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQztZQUNqRSxNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFO29CQUNMO3dCQUNJLEtBQUssRUFBRSxVQUFVO3dCQUNqQixRQUFRLEVBQUU7NEJBQ04sSUFBSSxFQUFFLE9BQU87eUJBQ2hCO3dCQUNELEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtxQkFDckI7aUJBQ0o7YUFDSjtZQUNELElBQUksRUFBRSxJQUFJO1lBQ1YsSUFBSSxFQUFFLENBQUM7U0FDVixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU5RyxPQUFPO1lBQ0gsR0FBRyxRQUFRO1lBQ1gsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO1lBQ3hCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFFBQVEsRUFBRSxRQUFRO1NBQ3JCLENBQUM7SUFDTixDQUFDOzhHQTNFUSw4QkFBOEI7a0hBQTlCLDhCQUE4QixjQUYzQixNQUFNOzsyRkFFVCw4QkFBOEI7a0JBSDFDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNTWV0YURhdGFEZWZpbml0aW9uRW50aXR5TW9kZWwsIEFYTU1ldGFEYXRhRGVmaW5pdGlvblNlcnZpY2UsIFJvb3RDb25maWcgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvZGF0YS1tYW5hZ2VtZW50JztcbmltcG9ydCB7IEFYUENhdGVnb3J5RW50aXR5V2l0aEl0ZW1zIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYTUVudGl0eUNydWRTZXJ2aWNlSW1wbCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBBWFBRdWVyeSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBWENRdWVyeUNhdGVnb3J5V2l0aEl0ZW1zUXVlcnkgaW1wbGVtZW50cyBBWFBRdWVyeTx2b2lkLCBBWFBDYXRlZ29yeUVudGl0eVdpdGhJdGVtczxBWE1NZXRhRGF0YURlZmluaXRpb25FbnRpdHlNb2RlbD5bXT4ge1xuXG4gICAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcHJpdmF0ZSBjYXRlZ29yeUVudGl0eVNlcnZpY2UgPSBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gbmV3IEFYTUVudGl0eUNydWRTZXJ2aWNlSW1wbDxhbnksIGFueT4oYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLm1ldGFEYXRhRGVmaW5pdGlvbi5uYW1lfUNhdGVnb3J5YCkpO1xuICAgIHByaXZhdGUgbWV0YURhdGFTZXJ2aWNlID0gaW5qZWN0KEFYTU1ldGFEYXRhRGVmaW5pdGlvblNlcnZpY2UpO1xuXG5cbiAgICBmZXRjaCgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGxXaXRoSXRlbXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldEFsbFdpdGhJdGVtcygpOiBQcm9taXNlPEFYUENhdGVnb3J5RW50aXR5V2l0aEl0ZW1zPEFYTU1ldGFEYXRhRGVmaW5pdGlvbkVudGl0eU1vZGVsPltdPiB7XG4gICAgICAgIGNvbnN0IHJvb3RDYXRlZ29yaWVzID0gYXdhaXQgdGhpcy5jYXRlZ29yeUVudGl0eVNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgdGFrZTogMTAwMCxcbiAgICAgICAgICAgIHNraXA6IDAsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ3BhcmVudElkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2lzTnVsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gYXdhaXQgUHJvbWlzZS5hbGwocm9vdENhdGVnb3JpZXMuaXRlbXMubWFwKChjYXRlZ29yeSkgPT4gdGhpcy5idWlsZENhdGVnb3J5VHJlZShjYXRlZ29yeSkpKTtcbiAgICAgICAgcmV0dXJuIGNhdGVnb3JpZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBidWlsZENhdGVnb3J5VHJlZShjYXRlZ29yeTogYW55KTogUHJvbWlzZTxBWFBDYXRlZ29yeUVudGl0eVdpdGhJdGVtczxBWE1NZXRhRGF0YURlZmluaXRpb25FbnRpdHlNb2RlbD4+IHtcbiAgICAgICAgY29uc3QgaXRlbXNSZXN1bHQgPSBhd2FpdCB0aGlzLm1ldGFEYXRhU2VydmljZS5xdWVyeSh7XG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ2NhdGVnb3J5SWRzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbnRhaW5zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY2F0ZWdvcnkuaWQsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0YWtlOiAxMDAwLFxuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgY2hpbGRDYXRlZ29yaWVzUmVzdWx0ID0gYXdhaXQgdGhpcy5jYXRlZ29yeUVudGl0eVNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICAgICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdwYXJlbnRJZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNhdGVnb3J5LmlkLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGFrZTogMTAwMCxcbiAgICAgICAgICAgIHNraXA6IDAsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gYXdhaXQgUHJvbWlzZS5hbGwoY2hpbGRDYXRlZ29yaWVzUmVzdWx0Lml0ZW1zLm1hcCgoY2hpbGQpID0+IHRoaXMuYnVpbGRDYXRlZ29yeVRyZWUoY2hpbGQpKSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmNhdGVnb3J5LFxuICAgICAgICAgICAgaXRlbXM6IGl0ZW1zUmVzdWx0Lml0ZW1zLFxuICAgICAgICAgICAgY2F0ZWdvcmllczogY2hpbGRyZW4sXG4gICAgICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgICAgIH07XG4gICAgfVxuXG5cblxufSJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { E as EMPLOYEE_SKILLS_MOCK, S as SKILL_LEVELS_MOCK } from './acorex-connectivity-mock-acorex-connectivity-mock-BrHaSAxo.mjs';
|
|
4
|
+
|
|
5
|
+
class AXQEmployeeSkillsListQuery {
|
|
6
|
+
async fetch(input) {
|
|
7
|
+
const { skillId, levelId, minYears, startDate, endDate, skip = 0, take = 10 } = input ?? {};
|
|
8
|
+
const sDate = startDate ? new Date(startDate) : undefined;
|
|
9
|
+
const eDate = endDate ? new Date(endDate) : undefined;
|
|
10
|
+
let data = EMPLOYEE_SKILLS_MOCK.map((r) => ({
|
|
11
|
+
id: r.id,
|
|
12
|
+
employeeId: r.employeeId,
|
|
13
|
+
employeeName: r.employee?.contact?.displayName,
|
|
14
|
+
skillId: r.skillId,
|
|
15
|
+
skillTitle: r.skill?.title ?? r.skillId,
|
|
16
|
+
level: r.level?.title ?? r.levelId,
|
|
17
|
+
yearsOfExperience: r.yearsOfExperience ?? 0,
|
|
18
|
+
lastUsedDate: r.lastUsedDate,
|
|
19
|
+
}));
|
|
20
|
+
if (skillId)
|
|
21
|
+
data = data.filter((x) => x.skillId === skillId);
|
|
22
|
+
if (levelId)
|
|
23
|
+
data = data.filter((x) => x.level === (SKILL_LEVELS_MOCK.find(l => l.id === levelId)?.title ?? levelId));
|
|
24
|
+
if (minYears != null)
|
|
25
|
+
data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));
|
|
26
|
+
if (sDate)
|
|
27
|
+
data = data.filter((x) => x.lastUsedDate && new Date(x.lastUsedDate) >= sDate);
|
|
28
|
+
if (eDate)
|
|
29
|
+
data = data.filter((x) => x.lastUsedDate && new Date(x.lastUsedDate) <= eDate);
|
|
30
|
+
const total = data.length;
|
|
31
|
+
const items = data.slice(skip, skip + take);
|
|
32
|
+
return { items, total };
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsListQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsListQuery, providedIn: 'root' }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsListQuery, decorators: [{
|
|
38
|
+
type: Injectable,
|
|
39
|
+
args: [{
|
|
40
|
+
providedIn: 'root'
|
|
41
|
+
}]
|
|
42
|
+
}] });
|
|
43
|
+
class AXQEmployeeSkillsStatsQuery {
|
|
44
|
+
async fetch(input) {
|
|
45
|
+
const { skillId, levelId, minYears } = input ?? {};
|
|
46
|
+
let data = EMPLOYEE_SKILLS_MOCK;
|
|
47
|
+
if (skillId)
|
|
48
|
+
data = data.filter((x) => x.skillId === skillId);
|
|
49
|
+
if (levelId)
|
|
50
|
+
data = data.filter((x) => x.levelId === levelId);
|
|
51
|
+
if (minYears != null)
|
|
52
|
+
data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));
|
|
53
|
+
const grouped = data.reduce((acc, cur) => {
|
|
54
|
+
const key = cur.skill?.title ?? cur.skillId;
|
|
55
|
+
acc[key] = (acc[key] ?? 0) + 1;
|
|
56
|
+
return acc;
|
|
57
|
+
}, {});
|
|
58
|
+
return grouped;
|
|
59
|
+
}
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsStatsQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
61
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsStatsQuery, providedIn: 'root' }); }
|
|
62
|
+
}
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsStatsQuery, decorators: [{
|
|
64
|
+
type: Injectable,
|
|
65
|
+
args: [{
|
|
66
|
+
providedIn: 'root'
|
|
67
|
+
}]
|
|
68
|
+
}] });
|
|
69
|
+
class AXQEmployeeSkillsLevelsQuery {
|
|
70
|
+
async fetch(input) {
|
|
71
|
+
const { skillId, minYears } = input ?? {};
|
|
72
|
+
let data = EMPLOYEE_SKILLS_MOCK;
|
|
73
|
+
if (skillId)
|
|
74
|
+
data = data.filter((x) => x.skillId === skillId);
|
|
75
|
+
if (minYears != null)
|
|
76
|
+
data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));
|
|
77
|
+
const levels = SKILL_LEVELS_MOCK.map(l => ({ id: l.id, title: l.title }));
|
|
78
|
+
const grouped = data.reduce((acc, cur) => {
|
|
79
|
+
const key = cur.levelId && levels.find((x) => x.id === cur.levelId)?.title || 'Unknown';
|
|
80
|
+
acc[key] = (acc[key] ?? 0) + 1;
|
|
81
|
+
return acc;
|
|
82
|
+
}, {});
|
|
83
|
+
// Ensure all known levels exist (0 if missing)
|
|
84
|
+
levels.forEach((lvl) => (grouped[lvl.title] = grouped[lvl.title] ?? 0));
|
|
85
|
+
return grouped;
|
|
86
|
+
}
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsLevelsQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
88
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsLevelsQuery, providedIn: 'root' }); }
|
|
89
|
+
}
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsLevelsQuery, decorators: [{
|
|
91
|
+
type: Injectable,
|
|
92
|
+
args: [{
|
|
93
|
+
providedIn: 'root'
|
|
94
|
+
}]
|
|
95
|
+
}] });
|
|
96
|
+
class AXQEmployeeSkillsTrendQuery {
|
|
97
|
+
async fetch(input) {
|
|
98
|
+
const { startDate, endDate, skillId, levelId } = input ?? {};
|
|
99
|
+
const sDate = startDate ? new Date(startDate) : undefined;
|
|
100
|
+
const eDate = endDate ? new Date(endDate) : undefined;
|
|
101
|
+
let data = EMPLOYEE_SKILLS_MOCK
|
|
102
|
+
.filter((x) => (skillId ? x.skillId === skillId : true))
|
|
103
|
+
.filter((x) => (levelId ? x.levelId === levelId : true))
|
|
104
|
+
.filter((x) => (sDate ? (x.lastUsedDate && new Date(x.lastUsedDate) >= sDate) : true))
|
|
105
|
+
.filter((x) => (eDate ? (x.lastUsedDate && new Date(x.lastUsedDate) <= eDate) : true));
|
|
106
|
+
// Group by YYYY-MM from lastUsedDate and count occurrences
|
|
107
|
+
const counts = data.reduce((acc, cur) => {
|
|
108
|
+
const d = cur.lastUsedDate ? new Date(cur.lastUsedDate) : undefined;
|
|
109
|
+
const key = d ? `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}` : 'Unknown';
|
|
110
|
+
acc[key] = (acc[key] ?? 0) + 1;
|
|
111
|
+
return acc;
|
|
112
|
+
}, {});
|
|
113
|
+
// Convert to sorted array, ignoring 'Unknown'
|
|
114
|
+
return Object.entries(counts)
|
|
115
|
+
.filter(([k]) => k !== 'Unknown')
|
|
116
|
+
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
|
|
117
|
+
.map(([month, value]) => ({ month, value }));
|
|
118
|
+
}
|
|
119
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsTrendQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
120
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsTrendQuery, providedIn: 'root' }); }
|
|
121
|
+
}
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsTrendQuery, decorators: [{
|
|
123
|
+
type: Injectable,
|
|
124
|
+
args: [{
|
|
125
|
+
providedIn: 'root'
|
|
126
|
+
}]
|
|
127
|
+
}] });
|
|
128
|
+
//#region ---- Percentage Queries ----
|
|
129
|
+
class AXQEmployeeSkillsSkillPercentagesQuery {
|
|
130
|
+
async fetch(input) {
|
|
131
|
+
const { skillId, levelId, minYears } = input ?? {};
|
|
132
|
+
let data = EMPLOYEE_SKILLS_MOCK;
|
|
133
|
+
if (skillId)
|
|
134
|
+
data = data.filter((x) => x.skillId === skillId);
|
|
135
|
+
if (levelId)
|
|
136
|
+
data = data.filter((x) => x.levelId === levelId);
|
|
137
|
+
if (minYears != null)
|
|
138
|
+
data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));
|
|
139
|
+
const counts = data.reduce((acc, cur) => {
|
|
140
|
+
const key = cur.skill?.title ?? cur.skillId;
|
|
141
|
+
acc[key] = (acc[key] ?? 0) + 1;
|
|
142
|
+
return acc;
|
|
143
|
+
}, {});
|
|
144
|
+
const total = Object.values(counts).reduce((a, b) => a + b, 0) || 1;
|
|
145
|
+
const percentages = {};
|
|
146
|
+
Object.entries(counts).forEach(([k, v]) => {
|
|
147
|
+
percentages[k] = Math.round((v / total) * 100);
|
|
148
|
+
});
|
|
149
|
+
return percentages;
|
|
150
|
+
}
|
|
151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsSkillPercentagesQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
152
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsSkillPercentagesQuery, providedIn: 'root' }); }
|
|
153
|
+
}
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsSkillPercentagesQuery, decorators: [{
|
|
155
|
+
type: Injectable,
|
|
156
|
+
args: [{
|
|
157
|
+
providedIn: 'root'
|
|
158
|
+
}]
|
|
159
|
+
}] });
|
|
160
|
+
class AXQEmployeeSkillsLevelPercentagesQuery {
|
|
161
|
+
async fetch(input) {
|
|
162
|
+
const { skillId, minYears } = input ?? {};
|
|
163
|
+
let data = EMPLOYEE_SKILLS_MOCK;
|
|
164
|
+
if (skillId)
|
|
165
|
+
data = data.filter((x) => x.skillId === skillId);
|
|
166
|
+
if (minYears != null)
|
|
167
|
+
data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));
|
|
168
|
+
const levels = SKILL_LEVELS_MOCK.map(l => ({ id: l.id, title: l.title }));
|
|
169
|
+
const counts = data.reduce((acc, cur) => {
|
|
170
|
+
const key = cur.levelId && levels.find((x) => x.id === cur.levelId)?.title || 'Unknown';
|
|
171
|
+
acc[key] = (acc[key] ?? 0) + 1;
|
|
172
|
+
return acc;
|
|
173
|
+
}, {});
|
|
174
|
+
// Ensure fixed level keys exist
|
|
175
|
+
levels.forEach((lvl) => (counts[lvl.title] = counts[lvl.title] ?? 0));
|
|
176
|
+
const total = levels.reduce((sum, lvl) => sum + (counts[lvl.title] ?? 0), 0) || 1;
|
|
177
|
+
const percentages = {};
|
|
178
|
+
levels.forEach((lvl) => {
|
|
179
|
+
percentages[lvl.title] = Math.round(((counts[lvl.title] ?? 0) / total) * 100);
|
|
180
|
+
});
|
|
181
|
+
return percentages;
|
|
182
|
+
}
|
|
183
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsLevelPercentagesQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
184
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsLevelPercentagesQuery, providedIn: 'root' }); }
|
|
185
|
+
}
|
|
186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXQEmployeeSkillsLevelPercentagesQuery, decorators: [{
|
|
187
|
+
type: Injectable,
|
|
188
|
+
args: [{
|
|
189
|
+
providedIn: 'root'
|
|
190
|
+
}]
|
|
191
|
+
}] });
|
|
192
|
+
|
|
193
|
+
export { AXQEmployeeSkillsLevelPercentagesQuery, AXQEmployeeSkillsLevelsQuery, AXQEmployeeSkillsListQuery, AXQEmployeeSkillsSkillPercentagesQuery, AXQEmployeeSkillsStatsQuery, AXQEmployeeSkillsTrendQuery };
|
|
194
|
+
//# sourceMappingURL=acorex-connectivity-mock-employee-skills.queries-Bg44X62k.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-employee-skills.queries-Bg44X62k.mjs","sources":["../tmp-esm2022/mock/lib/human-capital-management/reports/employee-skills.queries.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { EMPLOYEE_SKILLS_MOCK } from '../../human-capital-management/employee-skill/employee-skill.mock';\nimport { SKILL_LEVELS_MOCK } from '../../human-capital-management/skill-level/skill-level.mock';\nimport * as i0 from \"@angular/core\";\nexport class AXQEmployeeSkillsListQuery {\n async fetch(input) {\n const { skillId, levelId, minYears, startDate, endDate, skip = 0, take = 10 } = input ?? {};\n const sDate = startDate ? new Date(startDate) : undefined;\n const eDate = endDate ? new Date(endDate) : undefined;\n let data = EMPLOYEE_SKILLS_MOCK.map((r) => ({\n id: r.id,\n employeeId: r.employeeId,\n employeeName: r.employee?.contact?.displayName,\n skillId: r.skillId,\n skillTitle: r.skill?.title ?? r.skillId,\n level: r.level?.title ?? r.levelId,\n yearsOfExperience: r.yearsOfExperience ?? 0,\n lastUsedDate: r.lastUsedDate,\n }));\n if (skillId)\n data = data.filter((x) => x.skillId === skillId);\n if (levelId)\n data = data.filter((x) => x.level === (SKILL_LEVELS_MOCK.find(l => l.id === levelId)?.title ?? levelId));\n if (minYears != null)\n data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));\n if (sDate)\n data = data.filter((x) => x.lastUsedDate && new Date(x.lastUsedDate) >= sDate);\n if (eDate)\n data = data.filter((x) => x.lastUsedDate && new Date(x.lastUsedDate) <= eDate);\n const total = data.length;\n const items = data.slice(skip, skip + take);\n return { items, total };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsListQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsListQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsListQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\nexport class AXQEmployeeSkillsStatsQuery {\n async fetch(input) {\n const { skillId, levelId, minYears } = input ?? {};\n let data = EMPLOYEE_SKILLS_MOCK;\n if (skillId)\n data = data.filter((x) => x.skillId === skillId);\n if (levelId)\n data = data.filter((x) => x.levelId === levelId);\n if (minYears != null)\n data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));\n const grouped = data.reduce((acc, cur) => {\n const key = cur.skill?.title ?? cur.skillId;\n acc[key] = (acc[key] ?? 0) + 1;\n return acc;\n }, {});\n return grouped;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsStatsQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsStatsQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsStatsQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\nexport class AXQEmployeeSkillsLevelsQuery {\n async fetch(input) {\n const { skillId, minYears } = input ?? {};\n let data = EMPLOYEE_SKILLS_MOCK;\n if (skillId)\n data = data.filter((x) => x.skillId === skillId);\n if (minYears != null)\n data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));\n const levels = SKILL_LEVELS_MOCK.map(l => ({ id: l.id, title: l.title }));\n const grouped = data.reduce((acc, cur) => {\n const key = cur.levelId && levels.find((x) => x.id === cur.levelId)?.title || 'Unknown';\n acc[key] = (acc[key] ?? 0) + 1;\n return acc;\n }, {});\n // Ensure all known levels exist (0 if missing)\n levels.forEach((lvl) => (grouped[lvl.title] = grouped[lvl.title] ?? 0));\n return grouped;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelsQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelsQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelsQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\nexport class AXQEmployeeSkillsTrendQuery {\n async fetch(input) {\n const { startDate, endDate, skillId, levelId } = input ?? {};\n const sDate = startDate ? new Date(startDate) : undefined;\n const eDate = endDate ? new Date(endDate) : undefined;\n let data = EMPLOYEE_SKILLS_MOCK\n .filter((x) => (skillId ? x.skillId === skillId : true))\n .filter((x) => (levelId ? x.levelId === levelId : true))\n .filter((x) => (sDate ? (x.lastUsedDate && new Date(x.lastUsedDate) >= sDate) : true))\n .filter((x) => (eDate ? (x.lastUsedDate && new Date(x.lastUsedDate) <= eDate) : true));\n // Group by YYYY-MM from lastUsedDate and count occurrences\n const counts = data.reduce((acc, cur) => {\n const d = cur.lastUsedDate ? new Date(cur.lastUsedDate) : undefined;\n const key = d ? `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}` : 'Unknown';\n acc[key] = (acc[key] ?? 0) + 1;\n return acc;\n }, {});\n // Convert to sorted array, ignoring 'Unknown'\n return Object.entries(counts)\n .filter(([k]) => k !== 'Unknown')\n .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))\n .map(([month, value]) => ({ month, value }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsTrendQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsTrendQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsTrendQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//#region ---- Percentage Queries ----\nexport class AXQEmployeeSkillsSkillPercentagesQuery {\n async fetch(input) {\n const { skillId, levelId, minYears } = input ?? {};\n let data = EMPLOYEE_SKILLS_MOCK;\n if (skillId)\n data = data.filter((x) => x.skillId === skillId);\n if (levelId)\n data = data.filter((x) => x.levelId === levelId);\n if (minYears != null)\n data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));\n const counts = data.reduce((acc, cur) => {\n const key = cur.skill?.title ?? cur.skillId;\n acc[key] = (acc[key] ?? 0) + 1;\n return acc;\n }, {});\n const total = Object.values(counts).reduce((a, b) => a + b, 0) || 1;\n const percentages = {};\n Object.entries(counts).forEach(([k, v]) => {\n percentages[k] = Math.round((v / total) * 100);\n });\n return percentages;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsSkillPercentagesQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsSkillPercentagesQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsSkillPercentagesQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\nexport class AXQEmployeeSkillsLevelPercentagesQuery {\n async fetch(input) {\n const { skillId, minYears } = input ?? {};\n let data = EMPLOYEE_SKILLS_MOCK;\n if (skillId)\n data = data.filter((x) => x.skillId === skillId);\n if (minYears != null)\n data = data.filter((x) => (x.yearsOfExperience ?? 0) >= Number(minYears));\n const levels = SKILL_LEVELS_MOCK.map(l => ({ id: l.id, title: l.title }));\n const counts = data.reduce((acc, cur) => {\n const key = cur.levelId && levels.find((x) => x.id === cur.levelId)?.title || 'Unknown';\n acc[key] = (acc[key] ?? 0) + 1;\n return acc;\n }, {});\n // Ensure fixed level keys exist\n levels.forEach((lvl) => (counts[lvl.title] = counts[lvl.title] ?? 0));\n const total = levels.reduce((sum, lvl) => sum + (counts[lvl.title] ?? 0), 0) || 1;\n const percentages = {};\n levels.forEach((lvl) => {\n percentages[lvl.title] = Math.round(((counts[lvl.title] ?? 0) / total) * 100);\n });\n return percentages;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelPercentagesQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelPercentagesQuery, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXQEmployeeSkillsLevelPercentagesQuery, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtc2tpbGxzLnF1ZXJpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nvbm5lY3Rpdml0eS9tb2NrL3NyYy9saWIvaHVtYW4tY2FwaXRhbC1tYW5hZ2VtZW50L3JlcG9ydHMvZW1wbG95ZWUtc2tpbGxzLnF1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQzs7QUFpQmhHLE1BQU0sT0FBTywwQkFBMEI7SUFDbkMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFnQjtRQUN4QixNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLElBQUksRUFBUyxDQUFDO1FBRW5HLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMxRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdEQsSUFBSSxJQUFJLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNSLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVTtZQUN4QixZQUFZLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FB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QUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQzs4R0F4QlEsc0NBQXNDO2tIQUF0QyxzQ0FBc0MsY0FGbkMsTUFBTTs7MkZBRVQsc0NBQXNDO2tCQUhsRCxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQUXVlcnkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgRU1QTE9ZRUVfU0tJTExTX01PQ0sgfSBmcm9tICcuLi8uLi9odW1hbi1jYXBpdGFsLW1hbmFnZW1lbnQvZW1wbG95ZWUtc2tpbGwvZW1wbG95ZWUtc2tpbGwubW9jayc7XG5pbXBvcnQgeyBTS0lMTF9MRVZFTFNfTU9DSyB9IGZyb20gJy4uLy4uL2h1bWFuLWNhcGl0YWwtbWFuYWdlbWVudC9za2lsbC1sZXZlbC9za2lsbC1sZXZlbC5tb2NrJztcblxuLy8jcmVnaW9uIC0tLS0gICBRdWVyaWVzICAgLS0tLVxuXG50eXBlIExpc3RJbnB1dCA9IHtcbiAgICBza2lsbElkPzogc3RyaW5nO1xuICAgIGxldmVsSWQ/OiBzdHJpbmc7XG4gICAgbWluWWVhcnM/OiBudW1iZXI7XG4gICAgc3RhcnREYXRlPzogRGF0ZSB8IHN0cmluZztcbiAgICBlbmREYXRlPzogRGF0ZSB8IHN0cmluZztcbiAgICBza2lwPzogbnVtYmVyO1xuICAgIHRha2U/OiBudW1iZXI7XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUUVtcGxveWVlU2tpbGxzTGlzdFF1ZXJ5IGltcGxlbWVudHMgQVhQUXVlcnk8TGlzdElucHV0LCB7IGl0ZW1zOiBhbnlbXTsgdG90YWw6IG51bWJlciB9PiB7XG4gICAgYXN5bmMgZmV0Y2goaW5wdXQ6IExpc3RJbnB1dCk6IFByb21pc2U8eyBpdGVtczogYW55W107IHRvdGFsOiBudW1iZXIgfT4ge1xuICAgICAgICBjb25zdCB7IHNraWxsSWQsIGxldmVsSWQsIG1pblllYXJzLCBzdGFydERhdGUsIGVuZERhdGUsIHNraXAgPSAwLCB0YWtlID0gMTAgfSA9IGlucHV0ID8/IHt9IGFzIGFueTtcblxuICAgICAgICBjb25zdCBzRGF0ZSA9IHN0YXJ0RGF0ZSA/IG5ldyBEYXRlKHN0YXJ0RGF0ZSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGVEYXRlID0gZW5kRGF0ZSA/IG5ldyBEYXRlKGVuZERhdGUpIDogdW5kZWZpbmVkO1xuICAgICAgICBsZXQgZGF0YSA9IEVNUExPWUVFX1NLSUxMU19NT0NLLm1hcCgocikgPT4gKHtcbiAgICAgICAgICAgIGlkOiByLmlkLFxuICAgICAgICAgICAgZW1wbG95ZWVJZDogci5lbXBsb3llZUlkLFxuICAgICAgICAgICAgZW1wbG95ZWVOYW1lOiByLmVtcGxveWVlPy5jb250YWN0Py5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIHNraWxsSWQ6IHIuc2tpbGxJZCxcbiAgICAgICAgICAgIHNraWxsVGl0bGU6IHIuc2tpbGw/LnRpdGxlID8/IHIuc2tpbGxJZCxcbiAgICAgICAgICAgIGxldmVsOiByLmxldmVsPy50aXRsZSA/PyByLmxldmVsSWQsXG4gICAgICAgICAgICB5ZWFyc09mRXhwZXJpZW5jZTogci55ZWFyc09mRXhwZXJpZW5jZSA/PyAwLFxuICAgICAgICAgICAgbGFzdFVzZWREYXRlOiByLmxhc3RVc2VkRGF0ZSxcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGlmIChza2lsbElkKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+IHguc2tpbGxJZCA9PT0gc2tpbGxJZCk7XG4gICAgICAgIGlmIChsZXZlbElkKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+IHgubGV2ZWwgPT09IChTS0lMTF9MRVZFTFNfTU9DSy5maW5kKGwgPT4gbC5pZCA9PT0gbGV2ZWxJZCk/LnRpdGxlID8/IGxldmVsSWQpKTtcbiAgICAgICAgaWYgKG1pblllYXJzICE9IG51bGwpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4gKHgueWVhcnNPZkV4cGVyaWVuY2UgPz8gMCkgPj0gTnVtYmVyKG1pblllYXJzKSk7XG4gICAgICAgIGlmIChzRGF0ZSkgZGF0YSA9IGRhdGEuZmlsdGVyKCh4KSA9PiB4Lmxhc3RVc2VkRGF0ZSAmJiBuZXcgRGF0ZSh4Lmxhc3RVc2VkRGF0ZSkgPj0gc0RhdGUpO1xuICAgICAgICBpZiAoZURhdGUpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4geC5sYXN0VXNlZERhdGUgJiYgbmV3IERhdGUoeC5sYXN0VXNlZERhdGUpIDw9IGVEYXRlKTtcblxuICAgICAgICBjb25zdCB0b3RhbCA9IGRhdGEubGVuZ3RoO1xuICAgICAgICBjb25zdCBpdGVtcyA9IGRhdGEuc2xpY2Uoc2tpcCwgc2tpcCArIHRha2UpO1xuICAgICAgICByZXR1cm4geyBpdGVtcywgdG90YWwgfTtcbiAgICB9XG59XG5cbnR5cGUgU3RhdHNJbnB1dCA9IHtcbiAgICBza2lsbElkPzogc3RyaW5nO1xuICAgIGxldmVsSWQ/OiBzdHJpbmc7XG4gICAgbWluWWVhcnM/OiBudW1iZXI7XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUUVtcGxveWVlU2tpbGxzU3RhdHNRdWVyeSBpbXBsZW1lbnRzIEFYUFF1ZXJ5PFN0YXRzSW5wdXQsIFJlY29yZDxzdHJpbmcsIG51bWJlcj4+IHtcbiAgICBhc3luYyBmZXRjaChpbnB1dDogU3RhdHNJbnB1dCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuICAgICAgICBjb25zdCB7IHNraWxsSWQsIGxldmVsSWQsIG1pblllYXJzIH0gPSBpbnB1dCA/PyB7fSBhcyBhbnk7XG4gICAgICAgIGxldCBkYXRhID0gRU1QTE9ZRUVfU0tJTExTX01PQ0s7XG5cbiAgICAgICAgaWYgKHNraWxsSWQpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4geC5za2lsbElkID09PSBza2lsbElkKTtcbiAgICAgICAgaWYgKGxldmVsSWQpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4geC5sZXZlbElkID09PSBsZXZlbElkKTtcbiAgICAgICAgaWYgKG1pblllYXJzICE9IG51bGwpIGRhdGEgPSBkYXRhLmZpbHRlcigoeCkgPT4gKHgueWVhcnNPZkV4cGVyaWVuY2UgPz8gMCkgPj0gTnVtYmVyKG1pblllYXJzKSk7XG5cbiAgICAgICAgY29uc3QgZ3JvdXBlZCA9IGRhdGEucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4sIGN1cikgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gY3VyLnNraWxsPy50aXRsZSA/PyBjdXIuc2tpbGxJZDtcbiAgICAgICAgICAgIGFjY1trZXldID0gKGFjY1trZXldID8/IDApICsgMTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICByZXR1cm4gZ3JvdXBlZDtcbiAgICB9XG59XG5cbnR5cGUgTGV2ZWxzSW5wdXQgPSB7XG4gICAgc2tpbGxJZD86IHN0cmluZztcbiAgICBtaW5ZZWFycz86IG51bWJlcjtcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQVhRRW1wbG95ZWVTa2lsbHNMZXZlbHNRdWVyeSBpbXBsZW1lbnRzIEFYUFF1ZXJ5PExldmVsc0lucHV0LCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PiB7XG4gICAgYXN5bmMgZmV0Y2goaW5wdXQ6IExldmVsc0lucHV0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PiB7XG4gICAgICAgIGNvbnN0IHsgc2tpbGxJZCwgbWluWWVhcnMgfSA9IGlucHV0ID8/IHt9IGFzIGFueTtcbiAgICAgICAgbGV0IGRhdGEgPSBFTVBMT1lFRV9TS0lMTFNfTU9DSztcblxuICAgICAgICBpZiAoc2tpbGxJZCkgZGF0YSA9IGRhdGEuZmlsdGVyKCh4KSA9PiB4LnNraWxsSWQgPT09IHNraWxsSWQpO1xuICAgICAgICBpZiAobWluWWVhcnMgIT0gbnVsbCkgZGF0YSA9IGRhdGEuZmlsdGVyKCh4KSA9PiAoeC55ZWFyc09mRXhwZXJpZW5jZSA/PyAwKSA+PSBOdW1iZXIobWluWWVhcnMpKTtcblxuICAgICAgICBjb25zdCBsZXZlbHMgPSBTS0lMTF9MRVZFTFNfTU9DSy5tYXAobCA9PiAoeyBpZDogbC5pZCwgdGl0bGU6IGwudGl0bGUgfSkpO1xuICAgICAgICBjb25zdCBncm91cGVkID0gZGF0YS5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgbnVtYmVyPiwgY3VyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBjdXIubGV2ZWxJZCAmJiBsZXZlbHMuZmluZCgoeCkgPT4geC5pZCA9PT0gY3VyLmxldmVsSWQpPy50aXRsZSB8fCAnVW5rbm93bic7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IChhY2Nba2V5XSA/PyAwKSArIDE7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSk7XG4gICAgICAgIC8vIEVuc3VyZSBhbGwga25vd24gbGV2ZWxzIGV4aXN0ICgwIGlmIG1pc3NpbmcpXG4gICAgICAgIGxldmVscy5mb3JFYWNoKChsdmwpID0+IChncm91cGVkW2x2bC50aXRsZV0gPSBncm91cGVkW2x2bC50aXRsZV0gPz8gMCkpO1xuICAgICAgICByZXR1cm4gZ3JvdXBlZDtcbiAgICB9XG59XG5cbnR5cGUgVHJlbmRJbnB1dCA9IHtcbiAgICBzdGFydERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICAgIGVuZERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICAgIHNraWxsSWQ/OiBzdHJpbmc7XG4gICAgbGV2ZWxJZD86IHN0cmluZztcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQVhRRW1wbG95ZWVTa2lsbHNUcmVuZFF1ZXJ5IGltcGxlbWVudHMgQVhQUXVlcnk8VHJlbmRJbnB1dCwgeyBtb250aDogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH1bXT4ge1xuICAgIGFzeW5jIGZldGNoKGlucHV0OiBUcmVuZElucHV0KTogUHJvbWlzZTx7IG1vbnRoOiBzdHJpbmc7IHZhbHVlOiBudW1iZXIgfVtdPiB7XG4gICAgICAgIGNvbnN0IHsgc3RhcnREYXRlLCBlbmREYXRlLCBza2lsbElkLCBsZXZlbElkIH0gPSBpbnB1dCA/PyB7fSBhcyBhbnk7XG4gICAgICAgIGNvbnN0IHNEYXRlID0gc3RhcnREYXRlID8gbmV3IERhdGUoc3RhcnREYXRlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZURhdGUgPSBlbmREYXRlID8gbmV3IERhdGUoZW5kRGF0ZSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgICAgbGV0IGRhdGEgPSBFTVBMT1lFRV9TS0lMTFNfTU9DS1xuICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4gKHNraWxsSWQgPyB4LnNraWxsSWQgPT09IHNraWxsSWQgOiB0cnVlKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKHgpID0+IChsZXZlbElkID8geC5sZXZlbElkID09PSBsZXZlbElkIDogdHJ1ZSkpXG4gICAgICAgICAgICAuZmlsdGVyKCh4KSA9PiAoc0RhdGUgPyAoeC5sYXN0VXNlZERhdGUgJiYgbmV3IERhdGUoeC5sYXN0VXNlZERhdGUpID49IHNEYXRlKSA6IHRydWUpKVxuICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4gKGVEYXRlID8gKHgubGFzdFVzZWREYXRlICYmIG5ldyBEYXRlKHgubGFzdFVzZWREYXRlKSA8PSBlRGF0ZSkgOiB0cnVlKSk7XG5cbiAgICAgICAgLy8gR3JvdXAgYnkgWVlZWS1NTSBmcm9tIGxhc3RVc2VkRGF0ZSBhbmQgY291bnQgb2NjdXJyZW5jZXNcbiAgICAgICAgY29uc3QgY291bnRzID0gZGF0YS5yZWR1Y2UoKGFjYzogUmVjb3JkPHN0cmluZywgbnVtYmVyPiwgY3VyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkID0gY3VyLmxhc3RVc2VkRGF0ZSA/IG5ldyBEYXRlKGN1ci5sYXN0VXNlZERhdGUpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gZCA/IGAke2QuZ2V0RnVsbFllYXIoKX0tJHtTdHJpbmcoZC5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKX1gIDogJ1Vua25vd24nO1xuICAgICAgICAgICAgYWNjW2tleV0gPSAoYWNjW2tleV0gPz8gMCkgKyAxO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPik7XG5cbiAgICAgICAgLy8gQ29udmVydCB0byBzb3J0ZWQgYXJyYXksIGlnbm9yaW5nICdVbmtub3duJ1xuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoY291bnRzKVxuICAgICAgICAgICAgLmZpbHRlcigoW2tdKSA9PiBrICE9PSAnVW5rbm93bicpXG4gICAgICAgICAgICAuc29ydCgoW2FdLCBbYl0pID0+IChhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogMCkpXG4gICAgICAgICAgICAubWFwKChbbW9udGgsIHZhbHVlXSkgPT4gKHsgbW9udGgsIHZhbHVlIH0pKTtcbiAgICB9XG59XG5cbi8vI3JlZ2lvbiAtLS0tICAgUGVyY2VudGFnZSBRdWVyaWVzICAgLS0tLVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUUVtcGxveWVlU2tpbGxzU2tpbGxQZXJjZW50YWdlc1F1ZXJ5IGltcGxlbWVudHMgQVhQUXVlcnk8U3RhdHNJbnB1dCwgUmVjb3JkPHN0cmluZywgbnVtYmVyPj4ge1xuICAgIGFzeW5jIGZldGNoKGlucHV0OiBTdGF0c0lucHV0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PiB7XG4gICAgICAgIGNvbnN0IHsgc2tpbGxJZCwgbGV2ZWxJZCwgbWluWWVhcnMgfSA9IGlucHV0ID8/ICh7fSBhcyBhbnkpO1xuICAgICAgICBsZXQgZGF0YSA9IEVNUExPWUVFX1NLSUxMU19NT0NLO1xuXG4gICAgICAgIGlmIChza2lsbElkKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+IHguc2tpbGxJZCA9PT0gc2tpbGxJZCk7XG4gICAgICAgIGlmIChsZXZlbElkKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+IHgubGV2ZWxJZCA9PT0gbGV2ZWxJZCk7XG4gICAgICAgIGlmIChtaW5ZZWFycyAhPSBudWxsKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+ICh4LnllYXJzT2ZFeHBlcmllbmNlID8/IDApID49IE51bWJlcihtaW5ZZWFycykpO1xuXG4gICAgICAgIGNvbnN0IGNvdW50cyA9IGRhdGEucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4sIGN1cikgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gY3VyLnNraWxsPy50aXRsZSA/PyBjdXIuc2tpbGxJZDtcbiAgICAgICAgICAgIGFjY1trZXldID0gKGFjY1trZXldID8/IDApICsgMTtcbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4pO1xuXG4gICAgICAgIGNvbnN0IHRvdGFsID0gT2JqZWN0LnZhbHVlcyhjb3VudHMpLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApIHx8IDE7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2VzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvdW50cykuZm9yRWFjaCgoW2ssIHZdKSA9PiB7XG4gICAgICAgICAgICBwZXJjZW50YWdlc1trXSA9IE1hdGgucm91bmQoKHYgLyB0b3RhbCkgKiAxMDApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBlcmNlbnRhZ2VzO1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBWFFFbXBsb3llZVNraWxsc0xldmVsUGVyY2VudGFnZXNRdWVyeSBpbXBsZW1lbnRzIEFYUFF1ZXJ5PExldmVsc0lucHV0LCBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PiB7XG4gICAgYXN5bmMgZmV0Y2goaW5wdXQ6IExldmVsc0lucHV0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBudW1iZXI+PiB7XG4gICAgICAgIGNvbnN0IHsgc2tpbGxJZCwgbWluWWVhcnMgfSA9IGlucHV0ID8/ICh7fSBhcyBhbnkpO1xuICAgICAgICBsZXQgZGF0YSA9IEVNUExPWUVFX1NLSUxMU19NT0NLO1xuXG4gICAgICAgIGlmIChza2lsbElkKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+IHguc2tpbGxJZCA9PT0gc2tpbGxJZCk7XG4gICAgICAgIGlmIChtaW5ZZWFycyAhPSBudWxsKSBkYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+ICh4LnllYXJzT2ZFeHBlcmllbmNlID8/IDApID49IE51bWJlcihtaW5ZZWFycykpO1xuXG4gICAgICAgIGNvbnN0IGxldmVscyA9IFNLSUxMX0xFVkVMU19NT0NLLm1hcChsID0+ICh7IGlkOiBsLmlkLCB0aXRsZTogbC50aXRsZSB9KSk7XG4gICAgICAgIGNvbnN0IGNvdW50cyA9IGRhdGEucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4sIGN1cikgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gY3VyLmxldmVsSWQgJiYgbGV2ZWxzLmZpbmQoKHgpID0+IHguaWQgPT09IGN1ci5sZXZlbElkKT8udGl0bGUgfHwgJ1Vua25vd24nO1xuICAgICAgICAgICAgYWNjW2tleV0gPSAoYWNjW2tleV0gPz8gMCkgKyAxO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPik7XG5cbiAgICAgICAgLy8gRW5zdXJlIGZpeGVkIGxldmVsIGtleXMgZXhpc3RcbiAgICAgICAgbGV2ZWxzLmZvckVhY2goKGx2bCkgPT4gKGNvdW50c1tsdmwudGl0bGVdID0gY291bnRzW2x2bC50aXRsZV0gPz8gMCkpO1xuXG4gICAgICAgIGNvbnN0IHRvdGFsID0gbGV2ZWxzLnJlZHVjZSgoc3VtLCBsdmwpID0+IHN1bSArIChjb3VudHNbbHZsLnRpdGxlXSA/PyAwKSwgMCkgfHwgMTtcbiAgICAgICAgY29uc3QgcGVyY2VudGFnZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fTtcbiAgICAgICAgbGV2ZWxzLmZvckVhY2goKGx2bCkgPT4ge1xuICAgICAgICAgICAgcGVyY2VudGFnZXNbbHZsLnRpdGxlXSA9IE1hdGgucm91bmQoKChjb3VudHNbbHZsLnRpdGxlXSA/PyAwKSAvIHRvdGFsKSAqIDEwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGVyY2VudGFnZXM7XG4gICAgfVxufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jZW5kcmVnaW9uXG5cblxuIl19"],"names":[],"mappings":"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"}
|