@stemy/ngx-utils 17.2.0 → 17.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/ngx-utils/common-types.mjs +1 -1
- package/esm2022/ngx-utils/components/dropdown-box/dropdown-box.component.mjs +59 -0
- package/esm2022/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +88 -35
- package/esm2022/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +7 -28
- package/esm2022/ngx-utils/directives/dropdown-content.directive.mjs +152 -0
- package/esm2022/ngx-utils/directives/dropdown-toggle.directive.mjs +46 -0
- package/esm2022/ngx-utils/directives/dropdown.directive.mjs +157 -0
- package/esm2022/ngx-utils/ngx-utils.imports.mjs +11 -1
- package/esm2022/ngx-utils/ngx-utils.module.mjs +42 -37
- package/esm2022/ngx-utils/pipes/includes.pipe.mjs +21 -0
- package/esm2022/ngx-utils/utils/file-system.mjs +19 -5
- package/esm2022/ngx-utils/utils/misc.mjs +21 -0
- package/esm2022/public_api.mjs +7 -1
- package/fesm2022/stemy-ngx-utils.mjs +543 -63
- package/fesm2022/stemy-ngx-utils.mjs.map +1 -1
- package/ngx-utils/common-types.d.ts +1 -1
- package/ngx-utils/components/dropdown-box/dropdown-box.component.d.ts +55 -0
- package/ngx-utils/components/dynamic-table/dynamic-table.component.d.ts +31 -12
- package/ngx-utils/components/pagination-menu/pagination-menu.component.d.ts +1 -8
- package/ngx-utils/directives/dropdown-content.directive.d.ts +22 -0
- package/ngx-utils/directives/dropdown-toggle.directive.d.ts +16 -0
- package/ngx-utils/directives/dropdown.directive.d.ts +56 -0
- package/ngx-utils/ngx-utils.imports.d.ts +9 -4
- package/ngx-utils/ngx-utils.module.d.ts +42 -37
- package/ngx-utils/pipes/includes.pipe.d.ts +8 -0
- package/ngx-utils/utils/file-system.d.ts +1 -1
- package/ngx-utils/utils/misc.d.ts +1 -0
- package/package.json +2 -1
- package/public_api.d.ts +6 -0
|
@@ -119,4 +119,4 @@ export const ERROR_HANDLER = new InjectionToken("error-handler-callback");
|
|
|
119
119
|
// --- Valued promise ---
|
|
120
120
|
export class ValuedPromise extends Promise {
|
|
121
121
|
}
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25neC11dGlscy9jb21tb24tdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGNBQWMsRUFBZ0QsTUFBTSxlQUFlLENBQUM7QUFJMUcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQWdCakQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFReEUsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFBbUIsQ0FBUyxFQUFTLENBQVMsRUFBUyxDQUFTLEVBQVMsSUFBWSxHQUFHO1FBQXJFLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQWM7SUFFeEYsQ0FBQztDQUNKO0FBU0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFpQyxJQUFJLGNBQWMsQ0FBZSxjQUFjLENBQUMsQ0FBQztBQXlDM0csTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXFDLElBQUksY0FBYyxDQUFtQixrQkFBa0IsQ0FBQyxDQUFDO0FBb0IzSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWlDLElBQUksY0FBYyxDQUFlLGNBQWMsQ0FBQyxDQUFDO0FBbUIzRywwQkFBMEI7QUFDMUIsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNuQiwrQ0FBSyxDQUFBO0lBQ0wsbURBQU8sQ0FBQTtBQUNYLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QjtBQVVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBb0MsSUFBSSxjQUFjLENBQWtCLGlCQUFpQixDQUFDLENBQUM7QUFjdkgsTUFB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QyxNQUFNLFdBQVcsR0FBZ0MsSUFBSSxjQUFjLENBQWMsYUFBYSxDQUFDLENBQUM7QUFnRXZHLHNCQUFzQjtBQUN0QixNQUFNLE9BQU8saUJBQWlCO0NBRzdCO0FBRUQsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBUyxjQUFjLENBQUMsQ0FBQztBQUV2RSxNQUFNLE9BQU8sY0FBYztDQU0xQjtBQWFELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsZ0JBQWdCLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQWlCLGFBQWEsQ0FBQyxDQUFDO0FBRTdFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBTSxlQUFlLENBQUMsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWMsa0JBQWtCLENBQUMsQ0FBQztBQUVoRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUk3RSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQXNCLHVCQUF1QixDQUFDLENBQUM7QUFLaEcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUF1Qix3QkFBd0IsQ0FBQyxDQUFDO0FBd0JoRyx5QkFBeUI7QUFDekIsTUFBTSxPQUFPLGFBQWlCLFNBQVEsT0FBVTtDQUUvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE5nWm9uZSwgUHJvdmlkZXIsIFRlbXBsYXRlUmVmLCBUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBEYXRhLCBSb3V0ZSwgVXJsVHJlZX0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtSZXF1ZXN0fSBmcm9tIFwiZXhwcmVzc1wiO1xuaW1wb3J0IHtSZWZsZWN0VXRpbHN9IGZyb20gXCIuL3V0aWxzL3JlZmxlY3QudXRpbHNcIjtcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuL3V0aWxzL29iamVjdC51dGlsc1wiO1xuXG4vLyAtLS0gVXRpbFxuZXhwb3J0IGludGVyZmFjZSBUeXBlZEZhY3RvcnlQcm92aWRlcjxUPiB7XG4gICAgdXNlRmFjdG9yeTogKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuICAgIGRlcHM6IGFueVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVkVmFsdWVQcm92aWRlcjxUPiB7XG4gICAgdXNlVmFsdWU6IFQ7XG59XG5cbmV4cG9ydCB0eXBlIENhY2hlZFByb3ZpZGVyPFQ+ID0gVHlwZTxUPiB8IFR5cGVkRmFjdG9yeVByb3ZpZGVyPFQ+IHwgVHlwZWRWYWx1ZVByb3ZpZGVyPFQ+O1xuXG5leHBvcnQgdHlwZSBDYWNoZWRGYWN0b3J5PFQ+ID0gKGluamVjdG9yOiBJbmplY3RvcikgPT4gUmVhZG9ubHlBcnJheTxUPjtcblxuZXhwb3J0IGNvbnN0IE9QVElPTlNfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oXCJjdXN0b20tb3B0aW9ucy10b2tlblwiKTtcblxuZXhwb3J0IGludGVyZmFjZSBJUmVzb2x2ZUZhY3Rvcnkge1xuICAgIGZ1bmM6IEZ1bmN0aW9uO1xuICAgIHR5cGU/OiBhbnk7XG4gICAgcGFyYW1zPzogYW55W107XG59XG5cbmV4cG9ydCBjbGFzcyBDYW52YXNDb2xvciB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHI6IG51bWJlciwgcHVibGljIGc6IG51bWJlciwgcHVibGljIGI6IG51bWJlciwgcHVibGljIGE6IG51bWJlciA9IDI1NSkge1xuXG4gICAgfVxufVxuXG4vLyAtLS0gSWNvbiBzZXJ2aWNlIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJSWNvblNlcnZpY2Uge1xuICAgIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgaWNvbnNMb2FkZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGdldEljb24oaWNvbjogc3RyaW5nLCBhY3RpdmVJY29uOiBzdHJpbmcsIGFjdGl2ZTogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGNvbnN0IElDT05fU0VSVklDRTogSW5qZWN0aW9uVG9rZW48SUljb25TZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJSWNvblNlcnZpY2U+KFwiaWNvbi1zZXJ2aWNlXCIpO1xuXG4vLyAtLS0gTGFuZ3VhZ2Ugc2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbGF0aW9uIHtcbiAgICBsYW5nOiBzdHJpbmc7XG4gICAgdHJhbnNsYXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNsYXRpb25zIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxhbmd1YWdlU2V0dGluZyB7XG4gICAgdW5hdmFpbGFibGU/OiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFuZ3VhZ2VTZXR0aW5ncyB7XG4gICAgbGFuZ3VhZ2VzOiBzdHJpbmdbXTtcbiAgICBkZXZMYW5ndWFnZXM6IHN0cmluZ1tdO1xuICAgIGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nO1xuICAgIHNldHRpbmdzPzoge1tsYW5nOiBzdHJpbmddOiBJTGFuZ3VhZ2VTZXR0aW5nfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFuZ3VhZ2VTZXJ2aWNlIHtcbiAgICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZztcbiAgICBlZGl0TGFuZ3VhZ2U6IHN0cmluZztcbiAgICBkaXNhYmxlVHJhbnNsYXRpb25zOiBib29sZWFuO1xuICAgIGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nO1xuICAgIGRpY3Rpb25hcnk6IElUcmFuc2xhdGlvbnM7XG4gICAgcmVhZG9ubHkgbGFuZ3VhZ2VzOiBSZWFkb25seUFycmF5PHN0cmluZz47XG4gICAgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudDtcbiAgICByZXBsYWNlTGFuZ3VhZ2VzKGxhbmd1YWdlczogc3RyaW5nW10pOiB2b2lkO1xuICAgIGFkZExhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZDtcbiAgICBnZXRUcmFuc2xhdGlvblN5bmMoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IHN0cmluZztcbiAgICBnZXRUcmFuc2xhdGlvbihrZXk6IHN0cmluZywgcGFyYW1zPzogYW55KTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIGdldFRyYW5zbGF0aW9ucyguLi5rZXlzOiBzdHJpbmdbXSk6IFByb21pc2U8SVRyYW5zbGF0aW9ucz47XG4gICAgZ2V0VHJhbnNsYXRpb25Gcm9tT2JqZWN0KHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9ucywgcGFyYW1zPzogYW55LCBsYW5nPzogc3RyaW5nKTogc3RyaW5nO1xuICAgIGdldFRyYW5zbGF0aW9uRnJvbUFycmF5KHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9uW10sIHBhcmFtcz86IGFueSwgbGFuZz86IHN0cmluZyk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IExBTkdVQUdFX1NFUlZJQ0U6IEluamVjdGlvblRva2VuPElMYW5ndWFnZVNlcnZpY2U+ID0gbmV3IEluamVjdGlvblRva2VuPElMYW5ndWFnZVNlcnZpY2U+KFwibGFuZ3VhZ2Utc2VydmljZVwiKTtcblxuLy8gLS0tIEF1dGggU2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSUF1dGhTZXJ2aWNlIHtcbiAgICBpc0F1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG4gICAgdXNlckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGNoZWNrQXV0aGVudGljYXRlZCgpOiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgdHlwZSBSb3V0ZVZhbGlkYXRvciA9IChhdXRoOiBJQXV0aFNlcnZpY2UsIHJvdXRlPzogSVJvdXRlLCBuZXh0PzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkgPT4gUHJvbWlzZTxib29sZWFuPjtcblxuZXhwb3J0IGludGVyZmFjZSBJUm91dGVEYXRhIGV4dGVuZHMgRGF0YSB7XG4gICAgcmV0dXJuU3RhdGU/OiBzdHJpbmdbXTtcbiAgICBndWFyZHM/OiBBcnJheTxJUmVzb2x2ZUZhY3RvcnkgfCBSb3V0ZVZhbGlkYXRvcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlIGV4dGVuZHMgUm91dGUge1xuICAgIGRhdGE/OiBJUm91dGVEYXRhO1xufVxuXG5leHBvcnQgY29uc3QgQVVUSF9TRVJWSUNFOiBJbmplY3Rpb25Ub2tlbjxJQXV0aFNlcnZpY2U+ID0gbmV3IEluamVjdGlvblRva2VuPElBdXRoU2VydmljZT4oXCJhdXRoLXNlcnZpY2VcIik7XG5cbi8vIC0tLSBBY2wgU2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSUFjbENvbXBvbmVudCB7XG4gICAgb25Vc2VySW5pdGlhbGl6ZWQoKTogdm9pZDtcbiAgICBvblVzZXJDaGFuZ2VkKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlU3RhdGVJbmZvIHtcbiAgICByb3V0ZTogSVJvdXRlO1xuICAgIGd1YXJkOiBhbnk7XG4gICAgZGlydHk6IGJvb2xlYW47XG4gICAgZmlyc3Q6IGJvb2xlYW47XG4gICAgY29tcG9uZW50PzogYW55O1xufVxuXG4vLyAtLS0gU3RhdGUgU2VydmljZSAtLS1cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25VcmxQYXJhbSA9IGFueVtdIHwgc3RyaW5nIHwgVXJsVHJlZTtcblxuLy8gLS0tIFN0b3JhZ2UgU2VydmljZSAtLS1cbmV4cG9ydCBlbnVtIFN0b3JhZ2VNb2RlIHtcbiAgICBMb2NhbCxcbiAgICBTZXNzaW9uXG59XG5cbi8vIC0tLSBUb2FzdGVyIFNlcnZpY2UgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElUb2FzdGVyU2VydmljZSB7XG4gICAgZXJyb3IobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHRpdGxlPzogc3RyaW5nKTogdm9pZDtcbiAgICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogYW55LCB0aXRsZT86IHN0cmluZyk6IHZvaWQ7XG4gICAgc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgdGl0bGU/OiBzdHJpbmcpOiB2b2lkO1xuICAgIHdhcm5pbmcobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHRpdGxlPzogc3RyaW5nKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFRPQVNURVJfU0VSVklDRTogSW5qZWN0aW9uVG9rZW48SVRvYXN0ZXJTZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJVG9hc3RlclNlcnZpY2U+KFwidG9hc3Rlci1zZXJ2aWNlXCIpO1xuXG4vLyAtLS0gUHJvbWlzZSBTZXJ2aWNlIC0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9taXNlU2VydmljZSB7XG4gICAgem9uZTogTmdab25lO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPjtcbiAgICBjcmVhdGU8VD4oZXhlY3V0b3I6IChyZXNvbHZlOiAodmFsdWU/OiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQsIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZCkgPT4gdm9pZCk6IFByb21pc2U8VD47XG4gICAgYWxsKHByb21pc2VzOiBQcm9taXNlPGFueT5bXSk6IFByb21pc2U8YW55PjtcbiAgICByZXNvbHZlPFQ+KHZhbHVlOiBUIHwgUHJvbWlzZUxpa2U8VD4pOiBQcm9taXNlPFQ+O1xuICAgIHJlamVjdDxUPih2YWx1ZTogVCB8IFByb21pc2VMaWtlPFQ+KTogUHJvbWlzZTxUPjtcbn1cblxuZXhwb3J0IGNvbnN0IFBST01JU0VfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUHJvbWlzZVNlcnZpY2U+KFwicHJvbWlzZS1zZXJ2aWNlXCIpO1xuXG4vLyAtLS0gV2FzbSBzZXJ2aWNlIC0tLVxuZXhwb3J0IHR5cGUgVHlwZWRBcnJheSA9XG4gICAgfCBJbnQ4QXJyYXlcbiAgICB8IEludDE2QXJyYXlcbiAgICB8IEludDMyQXJyYXlcbiAgICB8IFVpbnQ4QXJyYXlcbiAgICB8IFVpbnQ4Q2xhbXBlZEFycmF5XG4gICAgfCBVaW50MTZBcnJheVxuICAgIHwgVWludDMyQXJyYXlcbiAgICB8IEZsb2F0MzJBcnJheVxuICAgIHwgRmxvYXQ2NEFycmF5O1xuXG5leHBvcnQgaW50ZXJmYWNlIElXYXNtRXhwb3J0cyB7XG4gICAgSEVBUDg6IEludDhBcnJheTtcbiAgICBIRUFQMTY6IEludDE2QXJyYXksXG4gICAgSEVBUDMyOiBJbnQzMkFycmF5LFxuICAgIEhFQVBVODogVWludDhBcnJheTtcbiAgICBIRUFQVTE2OiBVaW50MTZBcnJheSxcbiAgICBIRUFQVTMyOiBVaW50MzJBcnJheSxcbiAgICBIRUFQRjMyOiBGbG9hdDMyQXJyYXksXG4gICAgSEVBUEY2NDogRmxvYXQ2NEFycmF5LFxuICAgIG1lbW9yeTogV2ViQXNzZW1ibHkuTWVtb3J5O1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJV2FzaSB7XG4gICAgaW5zdGFudGlhdGUoYnl0ZXM6IEFycmF5QnVmZmVyKTogUHJvbWlzZTxJV2FzbUV4cG9ydHM+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElXYXNtIHtcbiAgICB3cml0ZUFycmF5VG9NZW1vcnkoYXJyYXk6IFR5cGVkQXJyYXkpOiBQcm9taXNlPG51bWJlcj4gfCBudW1iZXI7XG4gICAgcmVhZEFycmF5RnJvbU1lbW9yeTxUID0gVHlwZWRBcnJheT4ocG9pbnRlcjogbnVtYmVyLCBhcnJheTogVCk6IFByb21pc2U8VD4gfCBUO1xuICAgIFtrZXk6IHN0cmluZ106ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElXYXNtQXN5bmMge1xuICAgIHdyaXRlQXJyYXlUb01lbW9yeShhcnJheTogVHlwZWRBcnJheSk6IFByb21pc2U8bnVtYmVyPjtcbiAgICByZWFkQXJyYXlGcm9tTWVtb3J5PFQgPSBUeXBlZEFycmF5Pihwb2ludGVyOiBudW1iZXIsIGFycmF5OiBUKTogVDtcbiAgICBba2V5OiBzdHJpbmddOiAoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGNvbnN0IFdBU0lfSU1QTEVNRU5UQVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48VHlwZTxJV2FzaT4+KFwid2FzaS1pbXBsZW1lbnRhdGlvblwiKTtcblxuLy8gLS0tIEFzeW5jIG1ldGhvZCAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSUFzeW5jTWVzc2FnZSB7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGNvbnRleHQ/OiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIEFzeW5jTWV0aG9kID0gKGNvbnRleHQ/OiBhbnkpID0+IFByb21pc2U8SUFzeW5jTWVzc2FnZT47XG5cbi8vIC0tLSBVbm9yZGVyZWQgbGlzdCAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgVW5vcmRlcmVkTGlzdFRlbXBsYXRlIHtcbiAgICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2VsZWN0b3I6IHN0cmluZztcbiAgICByZWFkb25seSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVub3JkZXJlZExpc3RUZW1wbGF0ZXMge1xuICAgIFt0eXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBVbm9yZGVyZWRMaXN0U3R5bGUgPSBcInRhYmxlXCIgfCBcImxpc3RcIjtcblxuLy8gLS0tIEFqYXggcmVxdWVzdCAgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElBamF4UmVxdWVzdERldGFpbHMge1xuICAgIHJlcXVlc3Q6IFhNTEh0dHBSZXF1ZXN0LFxuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBamF4UmVxdWVzdENhbGxiYWNrID0gKGRldGFpbHM6IElBamF4UmVxdWVzdERldGFpbHMsIHBhcmFtczogYW55KSA9PiB2b2lkO1xuXG4vLyAtLS0gTG9hZGVyIHV0aWxzIC0tLVxuZXhwb3J0IHR5cGUgU2NyaXB0VHlwZSA9IFwidGV4dC9qYXZhc2NyaXB0XCIgfCBcIm1vZHVsZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTY3JpcHRQcm9taXNlcyB7XG4gICAgW3NyYzogc3RyaW5nXTogUHJvbWlzZTxIVE1MU2NyaXB0RWxlbWVudD47XG59XG5leHBvcnQgaW50ZXJmYWNlIElTdHlsZVByb21pc2VzIHtcbiAgICBbc3JjOiBzdHJpbmddOiBQcm9taXNlPEhUTUxMaW5rRWxlbWVudD47XG59XG5cbi8vIC0tLSBPYnNlcnZhYmxlIHV0aWxzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoT2JzZXJ2YWJsZSB7XG4gICAgc2VhcmNoOiBzdHJpbmc7XG4gICAgZ2V0U2VhcmNoUmVzdWx0cyh0b2tlbjogc3RyaW5nKTogUHJvbWlzZTxhbnlbXT47XG59XG5cbi8vIC0tLSBSZWZsZWN0IHV0aWxzIC0tLVxuZXhwb3J0IGZ1bmN0aW9uIEZhY3RvcnlEZXBlbmRlbmNpZXMoLi4uZGVwZW5kZW5jaWVzOiBBcnJheTxJbmplY3Rpb25Ub2tlbjxhbnk+IHwgUHJvdmlkZXI+KTogTWV0aG9kRGVjb3JhdG9yIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBtZXRob2Q6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBSZWZsZWN0VXRpbHMuZGVmaW5lTWV0YWRhdGEoXCJmYWN0b3J5RGVwZW5kZW5jaWVzXCIsIGRlcGVuZGVuY2llcywgdGFyZ2V0LCBtZXRob2QpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBPYmplY3RUeXBlKHR5cGU6IHN0cmluZyk6IENsYXNzRGVjb3JhdG9yIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55KTogdm9pZCB7XG4gICAgICAgIFJlZmxlY3RVdGlscy5kZWZpbmVNZXRhZGF0YShcIm9iamVjdFR5cGVcIiwgdHlwZSwgdGFyZ2V0KTtcbiAgICB9O1xufVxuXG4vLyAtLS0gVGltZXIgdXRpbHMgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElUaW1lciB7XG4gICAgaWQ/OiBhbnk7XG4gICAgZnVuYz86IEZ1bmN0aW9uO1xuICAgIHRpbWU/OiBudW1iZXI7XG4gICAgcnVuPzogKCkgPT4gdm9pZDtcbiAgICBzZXQ/OiAoZnVuYzogRnVuY3Rpb24sIHRpbWU6IG51bWJlcikgPT4gdm9pZDtcbiAgICBjbGVhcj86ICgpID0+IHZvaWQ7XG59XG5cbi8vIC0tLSBFeHRyYUl0ZW1Qcm9wZXJ0aWVzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJRXh0cmFQcm9wZXJ0aWVzIHtcbiAgICBbcHJvcDogc3RyaW5nXTogYW55O1xufVxuXG4vLyAtLS0gR3JvdXAgYnkgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cE1hcCB7XG4gICAgW2NvbHVtbjogc3RyaW5nXTogYW55O1xufVxuXG4vLyAtLS0gVHJhbnNsYXRlIC0tLVxuZXhwb3J0IHR5cGUgVHJhbnNsYXRpb25RdWVyeSA9IHN0cmluZyB8IElUcmFuc2xhdGlvbnMgfCBJVHJhbnNsYXRpb25bXTtcblxuLy8gLS0tIFBhZ2luYXRpb24gLS0tXG5leHBvcnQgaW50ZXJmYWNlIElQYWdlSW5mbyB7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIG51bWJlcjogbnVtYmVyO1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGFnaW5hdGlvbkRhdGEge1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgaXRlbXM6IGFueVtdO1xuICAgIG1ldGE/OiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25EYXRhTG9hZGVyID0gKHBhZ2U6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIpID0+IFByb21pc2U8SVBhZ2luYXRpb25EYXRhPjtcblxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25JdGVtQ29udGV4dCB7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaXRlbTogYW55LCBwdWJsaWMgcGFyYWxsZWxJdGVtOiBhbnksIHB1YmxpYyBjb3VudDogbnVtYmVyLCBwdWJsaWMgaW5kZXg6IG51bWJlciwgcHVibGljIGRhdGFJbmRleDogbnVtYmVyKSB7XG4gICAgfVxuXG4gICAgZ2V0IGZpcnN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCA9PT0gMDtcbiAgICB9XG5cbiAgICBnZXQgbGFzdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggPT09IHRoaXMuY291bnQgLSAxO1xuICAgIH1cblxuICAgIGdldCBldmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCAlIDIgPT09IDA7XG4gICAgfVxuXG4gICAgZ2V0IG9kZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmV2ZW47XG4gICAgfVxuXG4gICAgLy8gU3VwcG9ydCBmb3Igb2xkIGR5bmFtaWMgdGFibGUgaW1wbGVtZW50YXRpb25cbiAgICBnZXQgcm93KCk6IGFueSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRHluYW1pY1RhYmxlIHJvdyBpcyBkZXByZWNhdGVkIHVzZSBpdGVtIGluc3RlYWRcIik7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW07XG4gICAgfVxuXG4gICAgLy8gU3VwcG9ydCBmb3Igb2xkIGR5bmFtaWMgdGFibGUgaW1wbGVtZW50YXRpb25cbiAgICBnZXQgcGFyYWxsZWxSb3coKTogYW55IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJEeW5hbWljVGFibGUgcGFyYWxsZWxSb3cgaXMgZGVwcmVjYXRlZCB1c2UgcGFyYWxsZWxJdGVtIGluc3RlYWRcIik7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmFsbGVsSXRlbTtcbiAgICB9XG5cbiAgICBmaWx0ZXIoZmlsdGVyUng6IFJlZ0V4cCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5pdGVtKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLml0ZW1ba2V5XTtcbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZCh2YWx1ZSkgfHwgT2JqZWN0VXRpbHMuaXNPYmplY3QodmFsdWUpKSBjb250aW51ZTtcbiAgICAgICAgICAgIGNvbnN0IHRlc3RWYWx1ZSA9IE9iamVjdFV0aWxzLmlzU3RyaW5nKHZhbHVlKSA/IHZhbHVlIDogdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmICh0ZXN0VmFsdWUubWF0Y2goZmlsdGVyUngpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vLyAtLS0gSHR0cCBzZXJ2aWNlIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJSHR0cEhlYWRlcnMge1xuICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIdHRwUGFyYW1zIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlcXVlc3RPcHRpb25zIHtcbiAgICBtZXRob2Q/OiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBoZWFkZXJzPzogSUh0dHBIZWFkZXJzIHwgSHR0cEhlYWRlcnM7XG4gICAgb3JpZ2luYWxIZWFkZXJzPzogSUh0dHBIZWFkZXJzO1xuICAgIHBhcmFtcz86IElIdHRwUGFyYW1zO1xuICAgIG9ic2VydmU/OiBcImJvZHlcIiB8IFwicmVzcG9uc2VcIjtcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gICAgcmVzcG9uc2VUeXBlPzogXCJhcnJheWJ1ZmZlclwiIHwgXCJibG9iXCIgfCBcImpzb25cIiB8IFwidGV4dFwiO1xuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gICAgdGltZW91dD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSXNzdWVDb250ZXh0IHtcbiAgICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUHJvZ3Jlc3Mge1xuICAgIHBlcmNlbnRhZ2U/OiBudW1iZXI7XG4gICAgbG9hZGVkPzogbnVtYmVyO1xuICAgIHRvdGFsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBQcm9ncmVzc0xpc3RlbmVyID0gKHByb2dyZXNzOiBJUHJvZ3Jlc3MpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFByb21pc2VFeGVjdXRvciA9IChyZXNvbHZlOiAodmFsdWU/OiBhbnkgfCBQcm9taXNlTGlrZTxhbnk+KSA9PiB2b2lkLCByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQpID0+IHZvaWQ7XG5cbmV4cG9ydCBjbGFzcyBIdHRwUHJvbWlzZSBleHRlbmRzIFByb21pc2U8YW55PiB7XG5cbiAgICBwcm90ZWN0ZWQgcmVqZWN0SGFuZGxlcjogKHJlYXNvbj86IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkO1xuICAgIHByb3RlY3RlZCBoYXNSZWplY3RIYW5kbGVyOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBhdHRhY2hDb3VudDogbnVtYmVyO1xuICAgIHByb3RlY3RlZCBydW5Db3VudDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocmVqZWN0SGFuZGxlcjogKHJlYXNvbj86IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkLCBleGVjdXRvcjogUHJvbWlzZUV4ZWN1dG9yKSB7XG4gICAgICAgIHN1cGVyKGV4ZWN1dG9yKTtcbiAgICAgICAgdGhpcy5yZWplY3RIYW5kbGVyID0gcmVqZWN0SGFuZGxlcjtcbiAgICAgICAgdGhpcy5hdHRhY2hDb3VudCA9IDA7XG4gICAgICAgIHRoaXMucnVuQ291bnQgPSAwO1xuICAgIH1cblxuICAgIHRoZW48VFJlc3VsdDEsIFRSZXN1bHQyPihvbkZ1bGZpbGxlZD86ICgodmFsdWU6IGFueSkgPT4gKFByb21pc2VMaWtlPFRSZXN1bHQxPiB8IFRSZXN1bHQxKSkgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlamVjdGVkPzogKChyZWFzb246IEh0dHBFcnJvclJlc3BvbnNlKSA9PiAoUHJvbWlzZUxpa2U8VFJlc3VsdDI+IHwgVFJlc3VsdDIpKSB8IG51bGwgfCB1bmRlZmluZWQpOiBQcm9taXNlPFRSZXN1bHQxIHwgVFJlc3VsdDI+IHtcbiAgICAgICAgdGhpcy5hdHRhY2hDb3VudCsrO1xuICAgICAgICByZXR1cm4gc3VwZXIudGhlbih2YWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJ1bkNvdW50Kys7XG4gICAgICAgICAgICByZXR1cm4gb25GdWxmaWxsZWQgPyBvbkZ1bGZpbGxlZCh2YWx1ZSkgOiBudWxsO1xuICAgICAgICB9LCAocmVhc29uOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSBvblJlamVjdGVkID8gb25SZWplY3RlZChyZWFzb24pIDogbnVsbDtcbiAgICAgICAgICAgIHRoaXMuaGFzUmVqZWN0SGFuZGxlciA9IHRoaXMuaGFzUmVqZWN0SGFuZGxlciB8fCAob25SZWplY3RlZCAmJiByZXN1bHQgIT09IGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMucnVuQ291bnQrKztcbiAgICAgICAgICAgIHRoaXMucmVqZWN0SGFuZGxlcih0aGlzLnJ1bkNvdW50ID09IHRoaXMuYXR0YWNoQ291bnQgJiYgIXRoaXMuaGFzUmVqZWN0SGFuZGxlciA/IHJlYXNvbiA6IG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2F0Y2g8VFJlc3VsdCA9IG5ldmVyPihvblJlamVjdGVkPzogKChyZWFzb246IEh0dHBFcnJvclJlc3BvbnNlKSA9PiAoUHJvbWlzZUxpa2U8VFJlc3VsdD4gfCBUUmVzdWx0KSkgfCBudWxsIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxhbnkgfCBUUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoZW4obnVsbCwgb25SZWplY3RlZCk7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIdHRwU2VydmljZSB7XG4gICAgbGFuZ3VhZ2U6IElMYW5ndWFnZVNlcnZpY2U7XG4gICAgdXJsKHVybDogc3RyaW5nKTogc3RyaW5nO1xuICAgIG1ha2VMaXN0UGFyYW1zKHBhZ2U6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIsIG9yZGVyQnk/OiBzdHJpbmcsIG9yZGVyRGVzY2VuZGluZz86IGJvb2xlYW4sIGZpbHRlcj86IHN0cmluZyk6IElIdHRwUGFyYW1zO1xufVxuXG5leHBvcnQgY29uc3QgRVhQUkVTU19SRVFVRVNUID0gbmV3IEluamVjdGlvblRva2VuPFJlcXVlc3Q+KFwiZXhwcmVzcy1yZXF1ZXN0XCIpO1xuXG4vLyAtLS0gQXBpIHNlcnZpY2UgLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFwaVNlcnZpY2UgZXh0ZW5kcyBJSHR0cFNlcnZpY2Uge1xuICAgIGNhY2hlOiBhbnk7XG4gICAgY2xpZW50OiBIdHRwQ2xpZW50O1xuICAgIGdldCh1cmw6IHN0cmluZywgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgICBkZWxldGUodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gICAgcG9zdCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgICBwdXQodXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gICAgcGF0Y2godXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gICAgdXBsb2FkKHVybDogc3RyaW5nLCBib2R5OiBhbnksIGxpc3RlbmVyPzogUHJvZ3Jlc3NMaXN0ZW5lciwgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgICBsaXN0KHVybDogc3RyaW5nLCBwYXJhbXM6IElIdHRwUGFyYW1zKTogUHJvbWlzZTxJUGFnaW5hdGlvbkRhdGE+O1xufVxuXG5leHBvcnQgY29uc3QgQVBJX1NFUlZJQ0U6IEluamVjdGlvblRva2VuPElBcGlTZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQXBpU2VydmljZT4oXCJhcGktc2VydmljZVwiKTtcblxuLy8gLS0tIE9wZW5BcGkgc2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgICBjb2x1bW4/OiBib29sZWFuO1xuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzPzogYW55O1xuICAgICRyZWY/OiBzdHJpbmc7XG4gICAgYWxsT2Y/OiBSZWFkb25seUFycmF5PHskcmVmPzogc3RyaW5nfT5cbiAgICBpdGVtcz86IElPcGVuQXBpU2NoZW1hUHJvcGVydHk7XG4gICAgZW51bT86IHN0cmluZ1tdO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3BlbkFwaVNjaGVtYSB7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgICBbbmFtZTogc3RyaW5nXTogSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eTtcbiAgICB9O1xuICAgIHJlcXVpcmVkOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3BlbkFwaVNjaGVtYXMge1xuICAgIFtuYW1lOiBzdHJpbmddOiBJT3BlbkFwaVNjaGVtYTtcbn1cblxuLy8gLS0tIER5bmFtaWMgdGFibGUgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZU9yZGVycyB7XG4gICAgW2NvbHVtbjogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUNvbHVtbiB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgc29ydD86IHN0cmluZztcbiAgICBmaWx0ZXI/OiBib29sZWFuO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVDb2x1bW5zIHtcbiAgICBbY29sdW1uOiBzdHJpbmddOiBJVGFibGVDb2x1bW47XG59XG5cbmV4cG9ydCB0eXBlIFRhYmxlQ29sdW1ucyA9IElUYWJsZU9yZGVycyB8IElUYWJsZUNvbHVtbnMgfCBzdHJpbmdbXTtcblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVUZW1wbGF0ZSB7XG4gICAgY29sdW1uOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICBwdXJlOiBib29sZWFuO1xuICAgIHJlZjogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVUZW1wbGF0ZXMge1xuICAgIFtjb2x1bW46IHN0cmluZ106IElUYWJsZVRlbXBsYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZURhdGFRdWVyeSB7XG4gICAgW2NvbHVtbjogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUYWJsZURhdGFMb2FkZXIgPSAoXG4gICAgcGFnZTogbnVtYmVyLCByb3dzUGVyUGFnZTogbnVtYmVyLCBvcmRlckJ5OiBzdHJpbmcsIG9yZGVyRGVzY2VuZGluZzogYm9vbGVhbixcbiAgICBmaWx0ZXI6IHN0cmluZywgcXVlcnk6IElUYWJsZURhdGFRdWVyeVxuKSA9PiBQcm9taXNlPElQYWdpbmF0aW9uRGF0YT47XG5cbi8vIC0tLSBSZXNvdXJjZSBpZiAtLS1cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZUlmQ29udGV4dCB7XG4gICAgcmVzb3VyY2U6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbn1cblxuLy8gLS0tIENvbmZpZ1NlcnZpY2UgLS0tXG5leHBvcnQgY29uc3QgQVBQX0JBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXCJhcHAtYmFzZS11cmxcIik7XG5cbmV4cG9ydCBjbGFzcyBJQ29uZmlndXJhdGlvbiB7XG4gICAgY2RuVXJsPzogc3RyaW5nO1xuICAgIGJhc2VVcmw/OiBzdHJpbmc7XG4gICAgYmFzZURvbWFpbj86IHN0cmluZztcbiAgICB0cmFuc2xhdGlvblVybD86IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbmZpZ1NlcnZpY2Uge1xuICAgIHJlYWRvbmx5IGNvbmZpZzogSUNvbmZpZ3VyYXRpb247XG4gICAgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yO1xuICAgIHJlYWRvbmx5IGxvYWQ6ICgpID0+IFByb21pc2U8SUNvbmZpZ3VyYXRpb24+O1xuICAgIHJlYWRvbmx5IHJvb3RFbGVtZW50OiBhbnk7XG4gICAgY2xvbmVSb290RWxlbSgpOiBhbnk7XG4gICAgcHJlcGFyZVVybCh1cmw6IHN0cmluZywgZW5kaW5nOiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgZ2V0Q29uZmlnVmFsdWUoa2V5OiBzdHJpbmcpOiBhbnk7XG4gICAgZ2V0UXVlcnlQYXJhbWV0ZXIobmFtZTogc3RyaW5nLCB1cmw/OiBzdHJpbmcpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBDT05GSUdfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQ29uZmlnU2VydmljZT4oXCJjb25maWctc2VydmljZVwiKTtcblxuZXhwb3J0IGNvbnN0IEJBU0VfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPElDb25maWd1cmF0aW9uPihcImJhc2UtY29uZmlnXCIpO1xuXG5leHBvcnQgY29uc3QgU0NSSVBUX1BBUkFNUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KFwic2NyaXB0LXBhcmFtc1wiKTtcblxuZXhwb3J0IGNvbnN0IFJPT1RfRUxFTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxIVE1MRWxlbWVudD4oXCJhcHAtcm9vdC1lbGVtZW50XCIpO1xuXG5leHBvcnQgY29uc3QgUkVTSVpFX0RFTEFZID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oXCJyZXNpemUtZXZlbnQtZGVsYXlcIik7XG5cbmV4cG9ydCB0eXBlIFJlc2l6ZUV2ZW50U3RyYXRlZ3kgPSBcInNjcm9sbFwiIHwgXCJvYmplY3RcIjtcblxuZXhwb3J0IGNvbnN0IFJFU0laRV9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZXNpemVFdmVudFN0cmF0ZWd5PihcInJlc2l6ZS1ldmVudC1zdHJhdGVneVwiKTtcblxuLy8gLS0tIEVycm9yIGhhbmRsZXIgc2VydmljZSAtLS1cbmV4cG9ydCB0eXBlIEVycm9ySGFuZGxlckNhbGxiYWNrID0gKGVycm9yOiBzdHJpbmcpID0+IGFueTtcblxuZXhwb3J0IGNvbnN0IEVSUk9SX0hBTkRMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48RXJyb3JIYW5kbGVyQ2FsbGJhY2s+KFwiZXJyb3ItaGFuZGxlci1jYWxsYmFja1wiKTtcblxuLy8gLS0tIEdsb2JhbCB0ZW1wbGF0ZXMgc2VydmljZVxuXG5leHBvcnQgdHlwZSBHbG9iYWxDb21wb25lbnRNb2RpZmllciA9IChjb21wb25lbnQ6IGFueSkgPT4gYW55O1xuXG4vLyAtLS0gTW9kdWxlIC0tLVxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbGl6ZXJGdW5jID0gKCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZHVsZUNvbmZpZyB7XG4gICAgYXBpU2VydmljZT86IFR5cGU8SUFwaVNlcnZpY2U+XG4gICAgYXV0aFNlcnZpY2U/OiBUeXBlPElBdXRoU2VydmljZT47XG4gICAgaWNvblNlcnZpY2U/OiBUeXBlPElJY29uU2VydmljZT47XG4gICAgbGFuZ3VhZ2VTZXJ2aWNlPzogVHlwZTxJTGFuZ3VhZ2VTZXJ2aWNlPjtcbiAgICB0b2FzdGVyU2VydmljZT86IFR5cGU8SVRvYXN0ZXJTZXJ2aWNlPjtcbiAgICBwcm9taXNlU2VydmljZT86IFR5cGU8SVByb21pc2VTZXJ2aWNlPjtcbiAgICBjb25maWdTZXJ2aWNlPzogVHlwZTxJQ29uZmlnU2VydmljZT47XG4gICAgd2FzaUltcGxlbWVudGF0aW9uPzogVHlwZTxJV2FzaT47XG4gICAgaW5pdGlhbGl6ZUFwcD86IChpbmplY3RvcjogSW5qZWN0b3IpID0+IEFwcEluaXRpYWxpemVyRnVuYztcbiAgICBiYXNlVXJsPzogKGluamVjdG9yOiBJbmplY3RvcikgPT4gc3RyaW5nO1xuICAgIHJlc2l6ZURlbGF5PzogbnVtYmVyO1xuICAgIHJlc2l6ZVN0cmF0ZWd5PzogUmVzaXplRXZlbnRTdHJhdGVneTtcbn1cblxuLy8gLS0tIFZhbHVlZCBwcm9taXNlIC0tLVxuZXhwb3J0IGNsYXNzIFZhbHVlZFByb21pc2U8VD4gZXh0ZW5kcyBQcm9taXNlPFQ+IHtcbiAgICB2YWx1ZTogVDtcbn1cbiJdfQ==
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25neC11dGlscy9jb21tb24tdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGNBQWMsRUFBZ0QsTUFBTSxlQUFlLENBQUM7QUFJMUcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQWdCakQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFReEUsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFBbUIsQ0FBUyxFQUFTLENBQVMsRUFBUyxDQUFTLEVBQVMsSUFBWSxHQUFHO1FBQXJFLE1BQUMsR0FBRCxDQUFDLENBQVE7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQWM7SUFFeEYsQ0FBQztDQUNKO0FBU0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFpQyxJQUFJLGNBQWMsQ0FBZSxjQUFjLENBQUMsQ0FBQztBQXlDM0csTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXFDLElBQUksY0FBYyxDQUFtQixrQkFBa0IsQ0FBQyxDQUFDO0FBb0IzSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWlDLElBQUksY0FBYyxDQUFlLGNBQWMsQ0FBQyxDQUFDO0FBbUIzRywwQkFBMEI7QUFDMUIsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNuQiwrQ0FBSyxDQUFBO0lBQ0wsbURBQU8sQ0FBQTtBQUNYLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QjtBQVVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBb0MsSUFBSSxjQUFjLENBQWtCLGlCQUFpQixDQUFDLENBQUM7QUFjdkgsTUFB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QyxNQUFNLFdBQVcsR0FBZ0MsSUFBSSxjQUFjLENBQWMsYUFBYSxDQUFDLENBQUM7QUFnRXZHLHNCQUFzQjtBQUN0QixNQUFNLE9BQU8saUJBQWlCO0NBRzdCO0FBRUQsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBUyxjQUFjLENBQUMsQ0FBQztBQUV2RSxNQUFNLE9BQU8sY0FBYztDQU0xQjtBQWFELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsZ0JBQWdCLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQWlCLGFBQWEsQ0FBQyxDQUFDO0FBRTdFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBTSxlQUFlLENBQUMsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWMsa0JBQWtCLENBQUMsQ0FBQztBQUVoRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUk3RSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQXNCLHVCQUF1QixDQUFDLENBQUM7QUFLaEcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUF1Qix3QkFBd0IsQ0FBQyxDQUFDO0FBd0JoRyx5QkFBeUI7QUFDekIsTUFBTSxPQUFPLGFBQWlCLFNBQVEsT0FBVTtDQUUvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE5nWm9uZSwgUHJvdmlkZXIsIFRlbXBsYXRlUmVmLCBUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBEYXRhLCBSb3V0ZSwgVXJsVHJlZX0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtSZXF1ZXN0fSBmcm9tIFwiZXhwcmVzc1wiO1xuaW1wb3J0IHtSZWZsZWN0VXRpbHN9IGZyb20gXCIuL3V0aWxzL3JlZmxlY3QudXRpbHNcIjtcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuL3V0aWxzL29iamVjdC51dGlsc1wiO1xuXG4vLyAtLS0gVXRpbFxuZXhwb3J0IGludGVyZmFjZSBUeXBlZEZhY3RvcnlQcm92aWRlcjxUPiB7XG4gICAgdXNlRmFjdG9yeTogKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuICAgIGRlcHM6IGFueVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVkVmFsdWVQcm92aWRlcjxUPiB7XG4gICAgdXNlVmFsdWU6IFQ7XG59XG5cbmV4cG9ydCB0eXBlIENhY2hlZFByb3ZpZGVyPFQ+ID0gVHlwZTxUPiB8IFR5cGVkRmFjdG9yeVByb3ZpZGVyPFQ+IHwgVHlwZWRWYWx1ZVByb3ZpZGVyPFQ+O1xuXG5leHBvcnQgdHlwZSBDYWNoZWRGYWN0b3J5PFQ+ID0gKGluamVjdG9yOiBJbmplY3RvcikgPT4gUmVhZG9ubHlBcnJheTxUPjtcblxuZXhwb3J0IGNvbnN0IE9QVElPTlNfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oXCJjdXN0b20tb3B0aW9ucy10b2tlblwiKTtcblxuZXhwb3J0IGludGVyZmFjZSBJUmVzb2x2ZUZhY3Rvcnkge1xuICAgIGZ1bmM6IEZ1bmN0aW9uO1xuICAgIHR5cGU/OiBhbnk7XG4gICAgcGFyYW1zPzogYW55W107XG59XG5cbmV4cG9ydCBjbGFzcyBDYW52YXNDb2xvciB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHI6IG51bWJlciwgcHVibGljIGc6IG51bWJlciwgcHVibGljIGI6IG51bWJlciwgcHVibGljIGE6IG51bWJlciA9IDI1NSkge1xuXG4gICAgfVxufVxuXG4vLyAtLS0gSWNvbiBzZXJ2aWNlIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJSWNvblNlcnZpY2Uge1xuICAgIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgaWNvbnNMb2FkZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGdldEljb24oaWNvbjogc3RyaW5nLCBhY3RpdmVJY29uOiBzdHJpbmcsIGFjdGl2ZTogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGNvbnN0IElDT05fU0VSVklDRTogSW5qZWN0aW9uVG9rZW48SUljb25TZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJSWNvblNlcnZpY2U+KFwiaWNvbi1zZXJ2aWNlXCIpO1xuXG4vLyAtLS0gTGFuZ3VhZ2Ugc2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbGF0aW9uIHtcbiAgICBsYW5nOiBzdHJpbmc7XG4gICAgdHJhbnNsYXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNsYXRpb25zIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxhbmd1YWdlU2V0dGluZyB7XG4gICAgdW5hdmFpbGFibGU/OiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFuZ3VhZ2VTZXR0aW5ncyB7XG4gICAgbGFuZ3VhZ2VzOiBzdHJpbmdbXTtcbiAgICBkZXZMYW5ndWFnZXM6IHN0cmluZ1tdO1xuICAgIGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nO1xuICAgIHNldHRpbmdzPzoge1tsYW5nOiBzdHJpbmddOiBJTGFuZ3VhZ2VTZXR0aW5nfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTGFuZ3VhZ2VTZXJ2aWNlIHtcbiAgICBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZztcbiAgICBlZGl0TGFuZ3VhZ2U6IHN0cmluZztcbiAgICBkaXNhYmxlVHJhbnNsYXRpb25zOiBib29sZWFuO1xuICAgIGRlZmF1bHRMYW5ndWFnZTogc3RyaW5nO1xuICAgIGRpY3Rpb25hcnk6IElUcmFuc2xhdGlvbnM7XG4gICAgcmVhZG9ubHkgbGFuZ3VhZ2VzOiBSZWFkb25seUFycmF5PHN0cmluZz47XG4gICAgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudDtcbiAgICByZXBsYWNlTGFuZ3VhZ2VzKGxhbmd1YWdlczogc3RyaW5nW10pOiB2b2lkO1xuICAgIGFkZExhbmd1YWdlcyhsYW5ndWFnZXM6IHN0cmluZ1tdKTogdm9pZDtcbiAgICBnZXRUcmFuc2xhdGlvblN5bmMoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IHN0cmluZztcbiAgICBnZXRUcmFuc2xhdGlvbihrZXk6IHN0cmluZywgcGFyYW1zPzogYW55KTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIGdldFRyYW5zbGF0aW9ucyguLi5rZXlzOiBzdHJpbmdbXSk6IFByb21pc2U8SVRyYW5zbGF0aW9ucz47XG4gICAgZ2V0VHJhbnNsYXRpb25Gcm9tT2JqZWN0KHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9ucywgcGFyYW1zPzogYW55LCBsYW5nPzogc3RyaW5nKTogc3RyaW5nO1xuICAgIGdldFRyYW5zbGF0aW9uRnJvbUFycmF5KHRyYW5zbGF0aW9uczogSVRyYW5zbGF0aW9uW10sIHBhcmFtcz86IGFueSwgbGFuZz86IHN0cmluZyk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IExBTkdVQUdFX1NFUlZJQ0U6IEluamVjdGlvblRva2VuPElMYW5ndWFnZVNlcnZpY2U+ID0gbmV3IEluamVjdGlvblRva2VuPElMYW5ndWFnZVNlcnZpY2U+KFwibGFuZ3VhZ2Utc2VydmljZVwiKTtcblxuLy8gLS0tIEF1dGggU2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSUF1dGhTZXJ2aWNlIHtcbiAgICBpc0F1dGhlbnRpY2F0ZWQ6IGJvb2xlYW47XG4gICAgdXNlckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGNoZWNrQXV0aGVudGljYXRlZCgpOiBQcm9taXNlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgdHlwZSBSb3V0ZVZhbGlkYXRvciA9IChhdXRoOiBJQXV0aFNlcnZpY2UsIHJvdXRlPzogSVJvdXRlLCBuZXh0PzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkgPT4gUHJvbWlzZTxib29sZWFuPjtcblxuZXhwb3J0IGludGVyZmFjZSBJUm91dGVEYXRhIGV4dGVuZHMgRGF0YSB7XG4gICAgcmV0dXJuU3RhdGU/OiBzdHJpbmdbXTtcbiAgICBndWFyZHM/OiBBcnJheTxJUmVzb2x2ZUZhY3RvcnkgfCBSb3V0ZVZhbGlkYXRvcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlIGV4dGVuZHMgUm91dGUge1xuICAgIGRhdGE/OiBJUm91dGVEYXRhO1xufVxuXG5leHBvcnQgY29uc3QgQVVUSF9TRVJWSUNFOiBJbmplY3Rpb25Ub2tlbjxJQXV0aFNlcnZpY2U+ID0gbmV3IEluamVjdGlvblRva2VuPElBdXRoU2VydmljZT4oXCJhdXRoLXNlcnZpY2VcIik7XG5cbi8vIC0tLSBBY2wgU2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSUFjbENvbXBvbmVudCB7XG4gICAgb25Vc2VySW5pdGlhbGl6ZWQoKTogdm9pZDtcbiAgICBvblVzZXJDaGFuZ2VkKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlU3RhdGVJbmZvIHtcbiAgICByb3V0ZTogSVJvdXRlO1xuICAgIGd1YXJkOiBhbnk7XG4gICAgZGlydHk6IGJvb2xlYW47XG4gICAgZmlyc3Q6IGJvb2xlYW47XG4gICAgY29tcG9uZW50PzogYW55O1xufVxuXG4vLyAtLS0gU3RhdGUgU2VydmljZSAtLS1cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25VcmxQYXJhbSA9IGFueVtdIHwgc3RyaW5nIHwgVXJsVHJlZTtcblxuLy8gLS0tIFN0b3JhZ2UgU2VydmljZSAtLS1cbmV4cG9ydCBlbnVtIFN0b3JhZ2VNb2RlIHtcbiAgICBMb2NhbCxcbiAgICBTZXNzaW9uXG59XG5cbi8vIC0tLSBUb2FzdGVyIFNlcnZpY2UgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElUb2FzdGVyU2VydmljZSB7XG4gICAgZXJyb3IobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHRpdGxlPzogc3RyaW5nKTogdm9pZDtcbiAgICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1zPzogYW55LCB0aXRsZT86IHN0cmluZyk6IHZvaWQ7XG4gICAgc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgdGl0bGU/OiBzdHJpbmcpOiB2b2lkO1xuICAgIHdhcm5pbmcobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHRpdGxlPzogc3RyaW5nKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFRPQVNURVJfU0VSVklDRTogSW5qZWN0aW9uVG9rZW48SVRvYXN0ZXJTZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJVG9hc3RlclNlcnZpY2U+KFwidG9hc3Rlci1zZXJ2aWNlXCIpO1xuXG4vLyAtLS0gUHJvbWlzZSBTZXJ2aWNlIC0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIElQcm9taXNlU2VydmljZSB7XG4gICAgem9uZTogTmdab25lO1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPjtcbiAgICBjcmVhdGU8VD4oZXhlY3V0b3I6IChyZXNvbHZlOiAodmFsdWU/OiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWQsIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZCkgPT4gdm9pZCk6IFByb21pc2U8VD47XG4gICAgYWxsKHByb21pc2VzOiBQcm9taXNlPGFueT5bXSk6IFByb21pc2U8YW55PjtcbiAgICByZXNvbHZlPFQ+KHZhbHVlOiBUIHwgUHJvbWlzZUxpa2U8VD4pOiBQcm9taXNlPFQ+O1xuICAgIHJlamVjdDxUPih2YWx1ZTogVCB8IFByb21pc2VMaWtlPFQ+KTogUHJvbWlzZTxUPjtcbn1cblxuZXhwb3J0IGNvbnN0IFBST01JU0VfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJUHJvbWlzZVNlcnZpY2U+KFwicHJvbWlzZS1zZXJ2aWNlXCIpO1xuXG4vLyAtLS0gV2FzbSBzZXJ2aWNlIC0tLVxuZXhwb3J0IHR5cGUgVHlwZWRBcnJheSA9XG4gICAgfCBJbnQ4QXJyYXlcbiAgICB8IEludDE2QXJyYXlcbiAgICB8IEludDMyQXJyYXlcbiAgICB8IFVpbnQ4QXJyYXlcbiAgICB8IFVpbnQ4Q2xhbXBlZEFycmF5XG4gICAgfCBVaW50MTZBcnJheVxuICAgIHwgVWludDMyQXJyYXlcbiAgICB8IEZsb2F0MzJBcnJheVxuICAgIHwgRmxvYXQ2NEFycmF5O1xuXG5leHBvcnQgaW50ZXJmYWNlIElXYXNtRXhwb3J0cyB7XG4gICAgSEVBUDg6IEludDhBcnJheTtcbiAgICBIRUFQMTY6IEludDE2QXJyYXksXG4gICAgSEVBUDMyOiBJbnQzMkFycmF5LFxuICAgIEhFQVBVODogVWludDhBcnJheTtcbiAgICBIRUFQVTE2OiBVaW50MTZBcnJheSxcbiAgICBIRUFQVTMyOiBVaW50MzJBcnJheSxcbiAgICBIRUFQRjMyOiBGbG9hdDMyQXJyYXksXG4gICAgSEVBUEY2NDogRmxvYXQ2NEFycmF5LFxuICAgIG1lbW9yeTogV2ViQXNzZW1ibHkuTWVtb3J5O1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJV2FzaSB7XG4gICAgaW5zdGFudGlhdGUoYnl0ZXM6IEFycmF5QnVmZmVyKTogUHJvbWlzZTxJV2FzbUV4cG9ydHM+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElXYXNtIHtcbiAgICB3cml0ZUFycmF5VG9NZW1vcnkoYXJyYXk6IFR5cGVkQXJyYXkpOiBQcm9taXNlPG51bWJlcj4gfCBudW1iZXI7XG4gICAgcmVhZEFycmF5RnJvbU1lbW9yeTxUID0gVHlwZWRBcnJheT4ocG9pbnRlcjogbnVtYmVyLCBhcnJheTogVCk6IFByb21pc2U8VD4gfCBUO1xuICAgIFtrZXk6IHN0cmluZ106ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElXYXNtQXN5bmMge1xuICAgIHdyaXRlQXJyYXlUb01lbW9yeShhcnJheTogVHlwZWRBcnJheSk6IFByb21pc2U8bnVtYmVyPjtcbiAgICByZWFkQXJyYXlGcm9tTWVtb3J5PFQgPSBUeXBlZEFycmF5Pihwb2ludGVyOiBudW1iZXIsIGFycmF5OiBUKTogVDtcbiAgICBba2V5OiBzdHJpbmddOiAoLi4uYXJnczogYW55W10pID0+IFByb21pc2U8YW55Pjtcbn1cblxuZXhwb3J0IGNvbnN0IFdBU0lfSU1QTEVNRU5UQVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48VHlwZTxJV2FzaT4+KFwid2FzaS1pbXBsZW1lbnRhdGlvblwiKTtcblxuLy8gLS0tIEFzeW5jIG1ldGhvZCAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSUFzeW5jTWVzc2FnZSB7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGNvbnRleHQ/OiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIEFzeW5jTWV0aG9kID0gKGNvbnRleHQ/OiBhbnkpID0+IFByb21pc2U8SUFzeW5jTWVzc2FnZT47XG5cbi8vIC0tLSBVbm9yZGVyZWQgbGlzdCAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgVW5vcmRlcmVkTGlzdFRlbXBsYXRlIHtcbiAgICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2VsZWN0b3I6IHN0cmluZztcbiAgICByZWFkb25seSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVub3JkZXJlZExpc3RUZW1wbGF0ZXMge1xuICAgIFt0eXBlOiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBVbm9yZGVyZWRMaXN0U3R5bGUgPSBcInRhYmxlXCIgfCBcImxpc3RcIjtcblxuLy8gLS0tIEFqYXggcmVxdWVzdCAgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElBamF4UmVxdWVzdERldGFpbHMge1xuICAgIHJlcXVlc3Q6IFhNTEh0dHBSZXF1ZXN0LFxuICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBamF4UmVxdWVzdENhbGxiYWNrID0gKGRldGFpbHM6IElBamF4UmVxdWVzdERldGFpbHMsIHBhcmFtczogYW55KSA9PiB2b2lkO1xuXG4vLyAtLS0gTG9hZGVyIHV0aWxzIC0tLVxuZXhwb3J0IHR5cGUgU2NyaXB0VHlwZSA9IFwidGV4dC9qYXZhc2NyaXB0XCIgfCBcIm1vZHVsZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTY3JpcHRQcm9taXNlcyB7XG4gICAgW3NyYzogc3RyaW5nXTogUHJvbWlzZTxIVE1MU2NyaXB0RWxlbWVudD47XG59XG5leHBvcnQgaW50ZXJmYWNlIElTdHlsZVByb21pc2VzIHtcbiAgICBbc3JjOiBzdHJpbmddOiBQcm9taXNlPEhUTUxMaW5rRWxlbWVudD47XG59XG5cbi8vIC0tLSBPYnNlcnZhYmxlIHV0aWxzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoT2JzZXJ2YWJsZSB7XG4gICAgc2VhcmNoOiBzdHJpbmc7XG4gICAgZ2V0U2VhcmNoUmVzdWx0cyh0b2tlbjogc3RyaW5nKTogUHJvbWlzZTxhbnlbXT47XG59XG5cbi8vIC0tLSBSZWZsZWN0IHV0aWxzIC0tLVxuZXhwb3J0IGZ1bmN0aW9uIEZhY3RvcnlEZXBlbmRlbmNpZXMoLi4uZGVwZW5kZW5jaWVzOiBBcnJheTxJbmplY3Rpb25Ub2tlbjxhbnk+IHwgUHJvdmlkZXI+KTogTWV0aG9kRGVjb3JhdG9yIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBtZXRob2Q6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBSZWZsZWN0VXRpbHMuZGVmaW5lTWV0YWRhdGEoXCJmYWN0b3J5RGVwZW5kZW5jaWVzXCIsIGRlcGVuZGVuY2llcywgdGFyZ2V0LCBtZXRob2QpO1xuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBPYmplY3RUeXBlKHR5cGU6IHN0cmluZyk6IENsYXNzRGVjb3JhdG9yIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55KTogdm9pZCB7XG4gICAgICAgIFJlZmxlY3RVdGlscy5kZWZpbmVNZXRhZGF0YShcIm9iamVjdFR5cGVcIiwgdHlwZSwgdGFyZ2V0KTtcbiAgICB9O1xufVxuXG4vLyAtLS0gVGltZXIgdXRpbHMgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElUaW1lciB7XG4gICAgaWQ/OiBhbnk7XG4gICAgZnVuYz86IEZ1bmN0aW9uO1xuICAgIHRpbWU/OiBudW1iZXI7XG4gICAgcnVuPzogKCkgPT4gdm9pZDtcbiAgICBzZXQ/OiAoZnVuYzogRnVuY3Rpb24sIHRpbWU6IG51bWJlcikgPT4gdm9pZDtcbiAgICBjbGVhcj86ICgpID0+IHZvaWQ7XG59XG5cbi8vIC0tLSBFeHRyYUl0ZW1Qcm9wZXJ0aWVzIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJRXh0cmFQcm9wZXJ0aWVzIHtcbiAgICBbcHJvcDogc3RyaW5nXTogYW55O1xufVxuXG4vLyAtLS0gR3JvdXAgYnkgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cE1hcCB7XG4gICAgW2NvbHVtbjogc3RyaW5nXTogYW55O1xufVxuXG4vLyAtLS0gVHJhbnNsYXRlIC0tLVxuZXhwb3J0IHR5cGUgVHJhbnNsYXRpb25RdWVyeSA9IHN0cmluZyB8IElUcmFuc2xhdGlvbnMgfCBJVHJhbnNsYXRpb25bXTtcblxuLy8gLS0tIFBhZ2luYXRpb24gLS0tXG5leHBvcnQgaW50ZXJmYWNlIElQYWdlSW5mbyB7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIG51bWJlcjogbnVtYmVyO1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGFnaW5hdGlvbkRhdGEge1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgaXRlbXM6IGFueVtdO1xuICAgIG1ldGE/OiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25EYXRhTG9hZGVyID0gKHBhZ2U6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIpID0+IFByb21pc2U8SVBhZ2luYXRpb25EYXRhPjtcblxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25JdGVtQ29udGV4dCB7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaXRlbTogYW55LCBwdWJsaWMgcGFyYWxsZWxJdGVtOiBhbnksIHB1YmxpYyBjb3VudDogbnVtYmVyLCBwdWJsaWMgaW5kZXg6IG51bWJlciwgcHVibGljIGRhdGFJbmRleDogbnVtYmVyKSB7XG4gICAgfVxuXG4gICAgZ2V0IGZpcnN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCA9PT0gMDtcbiAgICB9XG5cbiAgICBnZXQgbGFzdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZXggPT09IHRoaXMuY291bnQgLSAxO1xuICAgIH1cblxuICAgIGdldCBldmVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCAlIDIgPT09IDA7XG4gICAgfVxuXG4gICAgZ2V0IG9kZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmV2ZW47XG4gICAgfVxuXG4gICAgLy8gU3VwcG9ydCBmb3Igb2xkIGR5bmFtaWMgdGFibGUgaW1wbGVtZW50YXRpb25cbiAgICBnZXQgcm93KCk6IGFueSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRHluYW1pY1RhYmxlIHJvdyBpcyBkZXByZWNhdGVkIHVzZSBpdGVtIGluc3RlYWRcIik7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW07XG4gICAgfVxuXG4gICAgLy8gU3VwcG9ydCBmb3Igb2xkIGR5bmFtaWMgdGFibGUgaW1wbGVtZW50YXRpb25cbiAgICBnZXQgcGFyYWxsZWxSb3coKTogYW55IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJEeW5hbWljVGFibGUgcGFyYWxsZWxSb3cgaXMgZGVwcmVjYXRlZCB1c2UgcGFyYWxsZWxJdGVtIGluc3RlYWRcIik7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmFsbGVsSXRlbTtcbiAgICB9XG5cbiAgICBmaWx0ZXIoZmlsdGVyUng6IFJlZ0V4cCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGhpcy5pdGVtKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLml0ZW1ba2V5XTtcbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZCh2YWx1ZSkgfHwgT2JqZWN0VXRpbHMuaXNPYmplY3QodmFsdWUpKSBjb250aW51ZTtcbiAgICAgICAgICAgIGNvbnN0IHRlc3RWYWx1ZSA9IE9iamVjdFV0aWxzLmlzU3RyaW5nKHZhbHVlKSA/IHZhbHVlIDogdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmICh0ZXN0VmFsdWUubWF0Y2goZmlsdGVyUngpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vLyAtLS0gSHR0cCBzZXJ2aWNlIC0tLVxuZXhwb3J0IGludGVyZmFjZSBJSHR0cEhlYWRlcnMge1xuICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIdHRwUGFyYW1zIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlcXVlc3RPcHRpb25zIHtcbiAgICBtZXRob2Q/OiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBoZWFkZXJzPzogSUh0dHBIZWFkZXJzIHwgSHR0cEhlYWRlcnM7XG4gICAgb3JpZ2luYWxIZWFkZXJzPzogSUh0dHBIZWFkZXJzO1xuICAgIHBhcmFtcz86IElIdHRwUGFyYW1zO1xuICAgIG9ic2VydmU/OiBcImJvZHlcIiB8IFwicmVzcG9uc2VcIjtcbiAgICByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW47XG4gICAgcmVzcG9uc2VUeXBlPzogXCJhcnJheWJ1ZmZlclwiIHwgXCJibG9iXCIgfCBcImpzb25cIiB8IFwidGV4dFwiO1xuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gICAgdGltZW91dD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSXNzdWVDb250ZXh0IHtcbiAgICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUHJvZ3Jlc3Mge1xuICAgIHBlcmNlbnRhZ2U/OiBudW1iZXI7XG4gICAgbG9hZGVkPzogbnVtYmVyO1xuICAgIHRvdGFsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBQcm9ncmVzc0xpc3RlbmVyID0gKHByb2dyZXNzOiBJUHJvZ3Jlc3MpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIFByb21pc2VFeGVjdXRvciA9IChyZXNvbHZlOiAodmFsdWU/OiBhbnkgfCBQcm9taXNlTGlrZTxhbnk+KSA9PiB2b2lkLCByZWplY3Q6IChyZWFzb24/OiBhbnkpID0+IHZvaWQpID0+IHZvaWQ7XG5cbmV4cG9ydCBjbGFzcyBIdHRwUHJvbWlzZSBleHRlbmRzIFByb21pc2U8YW55PiB7XG5cbiAgICBwcm90ZWN0ZWQgcmVqZWN0SGFuZGxlcjogKHJlYXNvbj86IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkO1xuICAgIHByb3RlY3RlZCBoYXNSZWplY3RIYW5kbGVyOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBhdHRhY2hDb3VudDogbnVtYmVyO1xuICAgIHByb3RlY3RlZCBydW5Db3VudDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocmVqZWN0SGFuZGxlcjogKHJlYXNvbj86IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkLCBleGVjdXRvcjogUHJvbWlzZUV4ZWN1dG9yKSB7XG4gICAgICAgIHN1cGVyKGV4ZWN1dG9yKTtcbiAgICAgICAgdGhpcy5yZWplY3RIYW5kbGVyID0gcmVqZWN0SGFuZGxlcjtcbiAgICAgICAgdGhpcy5hdHRhY2hDb3VudCA9IDA7XG4gICAgICAgIHRoaXMucnVuQ291bnQgPSAwO1xuICAgIH1cblxuICAgIHRoZW48VFJlc3VsdDEsIFRSZXN1bHQyPihvbkZ1bGZpbGxlZD86ICgodmFsdWU6IGFueSkgPT4gKFByb21pc2VMaWtlPFRSZXN1bHQxPiB8IFRSZXN1bHQxKSkgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlamVjdGVkPzogKChyZWFzb246IEh0dHBFcnJvclJlc3BvbnNlKSA9PiAoUHJvbWlzZUxpa2U8VFJlc3VsdDI+IHwgVFJlc3VsdDIpKSB8IG51bGwgfCB1bmRlZmluZWQpOiBQcm9taXNlPFRSZXN1bHQxIHwgVFJlc3VsdDI+IHtcbiAgICAgICAgdGhpcy5hdHRhY2hDb3VudCsrO1xuICAgICAgICByZXR1cm4gc3VwZXIudGhlbih2YWx1ZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJ1bkNvdW50Kys7XG4gICAgICAgICAgICByZXR1cm4gb25GdWxmaWxsZWQgPyBvbkZ1bGZpbGxlZCh2YWx1ZSkgOiBudWxsO1xuICAgICAgICB9LCAocmVhc29uOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBhbnkgPSBvblJlamVjdGVkID8gb25SZWplY3RlZChyZWFzb24pIDogbnVsbDtcbiAgICAgICAgICAgIHRoaXMuaGFzUmVqZWN0SGFuZGxlciA9IHRoaXMuaGFzUmVqZWN0SGFuZGxlciB8fCAob25SZWplY3RlZCAmJiByZXN1bHQgIT09IGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMucnVuQ291bnQrKztcbiAgICAgICAgICAgIHRoaXMucmVqZWN0SGFuZGxlcih0aGlzLnJ1bkNvdW50ID09IHRoaXMuYXR0YWNoQ291bnQgJiYgIXRoaXMuaGFzUmVqZWN0SGFuZGxlciA/IHJlYXNvbiA6IG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2F0Y2g8VFJlc3VsdCA9IG5ldmVyPihvblJlamVjdGVkPzogKChyZWFzb246IEh0dHBFcnJvclJlc3BvbnNlKSA9PiAoUHJvbWlzZUxpa2U8VFJlc3VsdD4gfCBUUmVzdWx0KSkgfCBudWxsIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxhbnkgfCBUUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoZW4obnVsbCwgb25SZWplY3RlZCk7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIdHRwU2VydmljZSB7XG4gICAgbGFuZ3VhZ2U6IElMYW5ndWFnZVNlcnZpY2U7XG4gICAgdXJsKHVybDogc3RyaW5nKTogc3RyaW5nO1xuICAgIG1ha2VMaXN0UGFyYW1zKHBhZ2U6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIsIG9yZGVyQnk/OiBzdHJpbmcsIG9yZGVyRGVzY2VuZGluZz86IGJvb2xlYW4sIGZpbHRlcj86IHN0cmluZyk6IElIdHRwUGFyYW1zO1xufVxuXG5leHBvcnQgY29uc3QgRVhQUkVTU19SRVFVRVNUID0gbmV3IEluamVjdGlvblRva2VuPFJlcXVlc3Q+KFwiZXhwcmVzcy1yZXF1ZXN0XCIpO1xuXG4vLyAtLS0gQXBpIHNlcnZpY2UgLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFwaVNlcnZpY2UgZXh0ZW5kcyBJSHR0cFNlcnZpY2Uge1xuICAgIGNhY2hlOiBhbnk7XG4gICAgY2xpZW50OiBIdHRwQ2xpZW50O1xuICAgIGdldCh1cmw6IHN0cmluZywgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgICBkZWxldGUodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gICAgcG9zdCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgICBwdXQodXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gICAgcGF0Y2godXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIG9wdGlvbnM/OiBJUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPGFueT47XG4gICAgdXBsb2FkKHVybDogc3RyaW5nLCBib2R5OiBhbnksIGxpc3RlbmVyPzogUHJvZ3Jlc3NMaXN0ZW5lciwgb3B0aW9ucz86IElSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8YW55PjtcbiAgICBsaXN0KHVybDogc3RyaW5nLCBwYXJhbXM6IElIdHRwUGFyYW1zKTogUHJvbWlzZTxJUGFnaW5hdGlvbkRhdGE+O1xufVxuXG5leHBvcnQgY29uc3QgQVBJX1NFUlZJQ0U6IEluamVjdGlvblRva2VuPElBcGlTZXJ2aWNlPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQXBpU2VydmljZT4oXCJhcGktc2VydmljZVwiKTtcblxuLy8gLS0tIE9wZW5BcGkgc2VydmljZSAtLS1cbmV4cG9ydCBpbnRlcmZhY2UgSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIGZvcm1hdD86IHN0cmluZztcbiAgICBjb2x1bW4/OiBib29sZWFuO1xuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzPzogYW55O1xuICAgICRyZWY/OiBzdHJpbmc7XG4gICAgYWxsT2Y/OiBSZWFkb25seUFycmF5PHskcmVmPzogc3RyaW5nfT5cbiAgICBpdGVtcz86IElPcGVuQXBpU2NoZW1hUHJvcGVydHk7XG4gICAgZW51bT86IHN0cmluZ1tdO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3BlbkFwaVNjaGVtYSB7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgICBbbmFtZTogc3RyaW5nXTogSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eTtcbiAgICB9O1xuICAgIHJlcXVpcmVkOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT3BlbkFwaVNjaGVtYXMge1xuICAgIFtuYW1lOiBzdHJpbmddOiBJT3BlbkFwaVNjaGVtYTtcbn1cblxuLy8gLS0tIER5bmFtaWMgdGFibGUgLS0tXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZU9yZGVycyB7XG4gICAgW2NvbHVtbjogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZUNvbHVtbiB7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgc29ydD86IHN0cmluZztcbiAgICBmaWx0ZXI/OiBib29sZWFuO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVDb2x1bW5zIHtcbiAgICBbY29sdW1uOiBzdHJpbmddOiBJVGFibGVDb2x1bW47XG59XG5cbmV4cG9ydCB0eXBlIFRhYmxlQ29sdW1ucyA9IElUYWJsZU9yZGVycyB8IElUYWJsZUNvbHVtbnMgfCBzdHJpbmdbXTtcblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVUZW1wbGF0ZSB7XG4gICAgY29sdW1uOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICBwdXJlOiBib29sZWFuO1xuICAgIHJlZjogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVGFibGVUZW1wbGF0ZXMge1xuICAgIFtjb2x1bW46IHN0cmluZ106IElUYWJsZVRlbXBsYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUYWJsZURhdGFRdWVyeSB7XG4gICAgW2NvbHVtbjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfCBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBUYWJsZURhdGFMb2FkZXIgPSAoXG4gICAgcGFnZTogbnVtYmVyLCByb3dzUGVyUGFnZTogbnVtYmVyLCBvcmRlckJ5OiBzdHJpbmcsIG9yZGVyRGVzY2VuZGluZzogYm9vbGVhbixcbiAgICBmaWx0ZXI6IHN0cmluZywgcXVlcnk6IElUYWJsZURhdGFRdWVyeVxuKSA9PiBQcm9taXNlPElQYWdpbmF0aW9uRGF0YT47XG5cbi8vIC0tLSBSZXNvdXJjZSBpZiAtLS1cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZUlmQ29udGV4dCB7XG4gICAgcmVzb3VyY2U6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbn1cblxuLy8gLS0tIENvbmZpZ1NlcnZpY2UgLS0tXG5leHBvcnQgY29uc3QgQVBQX0JBU0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXCJhcHAtYmFzZS11cmxcIik7XG5cbmV4cG9ydCBjbGFzcyBJQ29uZmlndXJhdGlvbiB7XG4gICAgY2RuVXJsPzogc3RyaW5nO1xuICAgIGJhc2VVcmw/OiBzdHJpbmc7XG4gICAgYmFzZURvbWFpbj86IHN0cmluZztcbiAgICB0cmFuc2xhdGlvblVybD86IHN0cmluZztcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbmZpZ1NlcnZpY2Uge1xuICAgIHJlYWRvbmx5IGNvbmZpZzogSUNvbmZpZ3VyYXRpb247XG4gICAgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yO1xuICAgIHJlYWRvbmx5IGxvYWQ6ICgpID0+IFByb21pc2U8SUNvbmZpZ3VyYXRpb24+O1xuICAgIHJlYWRvbmx5IHJvb3RFbGVtZW50OiBhbnk7XG4gICAgY2xvbmVSb290RWxlbSgpOiBhbnk7XG4gICAgcHJlcGFyZVVybCh1cmw6IHN0cmluZywgZW5kaW5nOiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgZ2V0Q29uZmlnVmFsdWUoa2V5OiBzdHJpbmcpOiBhbnk7XG4gICAgZ2V0UXVlcnlQYXJhbWV0ZXIobmFtZTogc3RyaW5nLCB1cmw/OiBzdHJpbmcpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBDT05GSUdfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQ29uZmlnU2VydmljZT4oXCJjb25maWctc2VydmljZVwiKTtcblxuZXhwb3J0IGNvbnN0IEJBU0VfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPElDb25maWd1cmF0aW9uPihcImJhc2UtY29uZmlnXCIpO1xuXG5leHBvcnQgY29uc3QgU0NSSVBUX1BBUkFNUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KFwic2NyaXB0LXBhcmFtc1wiKTtcblxuZXhwb3J0IGNvbnN0IFJPT1RfRUxFTUVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxIVE1MRWxlbWVudD4oXCJhcHAtcm9vdC1lbGVtZW50XCIpO1xuXG5leHBvcnQgY29uc3QgUkVTSVpFX0RFTEFZID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oXCJyZXNpemUtZXZlbnQtZGVsYXlcIik7XG5cbmV4cG9ydCB0eXBlIFJlc2l6ZUV2ZW50U3RyYXRlZ3kgPSBcInNjcm9sbFwiIHwgXCJvYmplY3RcIjtcblxuZXhwb3J0IGNvbnN0IFJFU0laRV9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZXNpemVFdmVudFN0cmF0ZWd5PihcInJlc2l6ZS1ldmVudC1zdHJhdGVneVwiKTtcblxuLy8gLS0tIEVycm9yIGhhbmRsZXIgc2VydmljZSAtLS1cbmV4cG9ydCB0eXBlIEVycm9ySGFuZGxlckNhbGxiYWNrID0gKGVycm9yOiBzdHJpbmcpID0+IGFueTtcblxuZXhwb3J0IGNvbnN0IEVSUk9SX0hBTkRMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48RXJyb3JIYW5kbGVyQ2FsbGJhY2s+KFwiZXJyb3ItaGFuZGxlci1jYWxsYmFja1wiKTtcblxuLy8gLS0tIEdsb2JhbCB0ZW1wbGF0ZXMgc2VydmljZVxuXG5leHBvcnQgdHlwZSBHbG9iYWxDb21wb25lbnRNb2RpZmllciA9IChjb21wb25lbnQ6IGFueSkgPT4gYW55O1xuXG4vLyAtLS0gTW9kdWxlIC0tLVxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbGl6ZXJGdW5jID0gKCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZHVsZUNvbmZpZyB7XG4gICAgYXBpU2VydmljZT86IFR5cGU8SUFwaVNlcnZpY2U+XG4gICAgYXV0aFNlcnZpY2U/OiBUeXBlPElBdXRoU2VydmljZT47XG4gICAgaWNvblNlcnZpY2U/OiBUeXBlPElJY29uU2VydmljZT47XG4gICAgbGFuZ3VhZ2VTZXJ2aWNlPzogVHlwZTxJTGFuZ3VhZ2VTZXJ2aWNlPjtcbiAgICB0b2FzdGVyU2VydmljZT86IFR5cGU8SVRvYXN0ZXJTZXJ2aWNlPjtcbiAgICBwcm9taXNlU2VydmljZT86IFR5cGU8SVByb21pc2VTZXJ2aWNlPjtcbiAgICBjb25maWdTZXJ2aWNlPzogVHlwZTxJQ29uZmlnU2VydmljZT47XG4gICAgd2FzaUltcGxlbWVudGF0aW9uPzogVHlwZTxJV2FzaT47XG4gICAgaW5pdGlhbGl6ZUFwcD86IChpbmplY3RvcjogSW5qZWN0b3IpID0+IEFwcEluaXRpYWxpemVyRnVuYztcbiAgICBiYXNlVXJsPzogKGluamVjdG9yOiBJbmplY3RvcikgPT4gc3RyaW5nO1xuICAgIHJlc2l6ZURlbGF5PzogbnVtYmVyO1xuICAgIHJlc2l6ZVN0cmF0ZWd5PzogUmVzaXplRXZlbnRTdHJhdGVneTtcbn1cblxuLy8gLS0tIFZhbHVlZCBwcm9taXNlIC0tLVxuZXhwb3J0IGNsYXNzIFZhbHVlZFByb21pc2U8VD4gZXh0ZW5kcyBQcm9taXNlPFQ+IHtcbiAgICB2YWx1ZTogVDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Component, Input, ViewChild, ViewEncapsulation } from "@angular/core";
|
|
2
|
+
import { DropdownContentDirective } from "../../directives/dropdown-content.directive";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "../../directives/dropdown.directive";
|
|
6
|
+
import * as i3 from "../../directives/dropdown-content.directive";
|
|
7
|
+
import * as i4 from "../../directives/dropdown-toggle.directive";
|
|
8
|
+
export class DropdownBoxComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.closeInside = true;
|
|
11
|
+
this.attachToRoot = true;
|
|
12
|
+
this.placement = "bottom";
|
|
13
|
+
this.crossAxis = false;
|
|
14
|
+
this.autoAlignment = true;
|
|
15
|
+
this.allowedPlacements = ["top", "bottom"];
|
|
16
|
+
this.componentClass = "drop";
|
|
17
|
+
this.makeAutoPlacementOpts();
|
|
18
|
+
}
|
|
19
|
+
makeAutoPlacementOpts() {
|
|
20
|
+
this.autoPlacement = {
|
|
21
|
+
crossAxis: this.crossAxis,
|
|
22
|
+
alignment: this.alignment,
|
|
23
|
+
autoAlignment: this.autoAlignment,
|
|
24
|
+
allowedPlacements: this.allowedPlacements,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
ngAfterViewInit() {
|
|
28
|
+
this.content.initialize();
|
|
29
|
+
}
|
|
30
|
+
ngOnChanges() {
|
|
31
|
+
this.makeAutoPlacementOpts();
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DropdownBoxComponent, selector: "dropdown-box", inputs: { closeInside: "closeInside", attachToRoot: "attachToRoot", placement: "placement", crossAxis: "crossAxis", alignment: "alignment", autoAlignment: "autoAlignment", allowedPlacements: "allowedPlacements", componentClass: "componentClass" }, viewQueries: [{ propertyName: "content", first: true, predicate: DropdownContentDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div dd class=\"dropdown-box\"\n [ngClass]=\"componentClass\"\n [closeInside]=\"closeInside\"\n [attachToRoot]=\"attachToRoot\"\n [placement]=\"placement\"\n [autoPlacement]=\"autoPlacement\">\n <div class=\"dropdown-box-toggle\" dropdownToggle>\n <a class=\"dropdown-box-toggle-link\">\n <ng-content select=\"[toggle-content]\"></ng-content>\n </a>\n </div>\n <div class=\"dropdown-box-content\" [ngClass]=\"componentClass + '-content-wrapper'\" *dropdownContent>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".dropdown-box{--dd-border-size: var(--border-size, 1px);--dd-border-radius: 5px;--dd-top-border-radius: var(--dd-border-radius) var(--dd-border-radius) 0 0;--dd-bottom-border-radius: 0 0 var(--dd-border-radius) var(--dd-border-radius);--dd-bg-color: var(--bg-color, #ffffff);--dd-border-color: var(--border-color, #ced4da);--dd-highlight-color: var(--highlight-color, var(--primary-color, #888888));--dd-highlight-text-color: var(--highlight-text-color, #ffffff);--dd-text-color: var(--text-color, #151515);--dd-arrow-size: var(--arrow-size, 6px);--dd-arrow-space: calc(var(--dd-arrow-size) * .5 + 1px);--dd-arrow-color: currentColor;--dd-arrow-rotation: 90;position:relative;z-index:2;display:inline-block;width:var(--content-width, 0);min-width:fit-content}.dropdown-box *{box-sizing:border-box}.dropdown-box a,.dropdown-box span{white-space:nowrap}.dropdown-box.table-sort-dropdown{display:none}.dropdown-box.table-sort-dropdown .table-toggle:hover,.dropdown-box li:hover,.dropdown-box li.active{background-color:var(--dd-highlight-color);color:var(--dd-highlight-text-color)}.dropdown-box.open{--dd-arrow-rotation: -90}.dropdown-box.open .dropdown-box-toggle{border-radius:var(--dd-top-border-radius)}.dropdown-box-toggle{min-width:fit-content;background:var(--dd-bg-color);color:var(--dd-text-color);cursor:pointer;border:var(--dd-border-size) solid var(--dd-border-color);border-radius:5px;padding:6px 12px;-webkit-user-select:none;user-select:none;font-weight:400;font-size:var(--table-input-font-size, 15px);line-height:var(--table-input-line-height, 18px);outline:none}.dropdown-box-toggle .toggle-placeholder{color:#495057}.dropdown-box-toggle a.dropdown-box-toggle-link{margin-right:calc(2 * var(--dd-arrow-size));padding-right:5px;min-width:fit-content;position:relative;display:block}.dropdown-box-toggle a.dropdown-box-toggle-link:after{content:\"\";position:absolute;left:calc(100% + var(--dd-arrow-size));top:calc(50% - var(--dd-arrow-size));border-top:var(--dd-arrow-size) solid transparent;border-bottom:var(--dd-arrow-size) solid transparent;border-left:var(--dd-arrow-size) solid var(--dd-arrow-color);transform:rotate(calc(var(--dd-arrow-rotation) * 1deg));transition:.2s ease}.dropdown-box-content{position:relative;z-index:1;min-width:var(--toggle-width, 0)}.dropdown-box-content *{box-sizing:border-box}.dropdown-box-content ul{margin:0;padding:0;list-style:none;border:var(--dd-border-size) solid var(--dd-border-color);border-top-width:0;z-index:1;background:var(--dd-bg-color);border-radius:var(--dd-bottom-border-radius);overflow:hidden;min-width:fit-content}.dropdown-box-content li{color:var(--dd-text-color);font-weight:400;text-align:left;min-width:fit-content;cursor:pointer;padding:6px 12px;-webkit-user-select:none;user-select:none}.dropdown-box-content li:hover,.dropdown-box-content li.active{background-color:var(--dd-highlight-color);color:var(--dd-highlight-text-color)}.dropdown-placement-top.open .dropdown-box-toggle{border-radius:var(--dd-bottom-border-radius)}.dropdown-placement-top .dropdown-box-content ul{border-top-width:var(--dd-border-size);border-bottom-width:0;border-radius:var(--dd-top-border-radius)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.DropdownDirective, selector: "[dd],[drop-down]", inputs: ["closeInside", "attachToRoot", "placement", "autoPlacement", "mobileViewUnder", "keyboardHandler", "isDisabled"], outputs: ["onShown", "onHidden", "onKeyboard"], exportAs: ["dropdown"] }, { kind: "directive", type: i3.DropdownContentDirective, selector: "[dropdownContent]", exportAs: ["dropdown-content"] }, { kind: "directive", type: i4.DropdownToggleDirective, selector: "[dropdownToggle]", inputs: ["beforeOpen", "switch"], exportAs: ["dropdown-toggle"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownBoxComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ standalone: false, encapsulation: ViewEncapsulation.None, selector: "dropdown-box", template: "<div dd class=\"dropdown-box\"\n [ngClass]=\"componentClass\"\n [closeInside]=\"closeInside\"\n [attachToRoot]=\"attachToRoot\"\n [placement]=\"placement\"\n [autoPlacement]=\"autoPlacement\">\n <div class=\"dropdown-box-toggle\" dropdownToggle>\n <a class=\"dropdown-box-toggle-link\">\n <ng-content select=\"[toggle-content]\"></ng-content>\n </a>\n </div>\n <div class=\"dropdown-box-content\" [ngClass]=\"componentClass + '-content-wrapper'\" *dropdownContent>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".dropdown-box{--dd-border-size: var(--border-size, 1px);--dd-border-radius: 5px;--dd-top-border-radius: var(--dd-border-radius) var(--dd-border-radius) 0 0;--dd-bottom-border-radius: 0 0 var(--dd-border-radius) var(--dd-border-radius);--dd-bg-color: var(--bg-color, #ffffff);--dd-border-color: var(--border-color, #ced4da);--dd-highlight-color: var(--highlight-color, var(--primary-color, #888888));--dd-highlight-text-color: var(--highlight-text-color, #ffffff);--dd-text-color: var(--text-color, #151515);--dd-arrow-size: var(--arrow-size, 6px);--dd-arrow-space: calc(var(--dd-arrow-size) * .5 + 1px);--dd-arrow-color: currentColor;--dd-arrow-rotation: 90;position:relative;z-index:2;display:inline-block;width:var(--content-width, 0);min-width:fit-content}.dropdown-box *{box-sizing:border-box}.dropdown-box a,.dropdown-box span{white-space:nowrap}.dropdown-box.table-sort-dropdown{display:none}.dropdown-box.table-sort-dropdown .table-toggle:hover,.dropdown-box li:hover,.dropdown-box li.active{background-color:var(--dd-highlight-color);color:var(--dd-highlight-text-color)}.dropdown-box.open{--dd-arrow-rotation: -90}.dropdown-box.open .dropdown-box-toggle{border-radius:var(--dd-top-border-radius)}.dropdown-box-toggle{min-width:fit-content;background:var(--dd-bg-color);color:var(--dd-text-color);cursor:pointer;border:var(--dd-border-size) solid var(--dd-border-color);border-radius:5px;padding:6px 12px;-webkit-user-select:none;user-select:none;font-weight:400;font-size:var(--table-input-font-size, 15px);line-height:var(--table-input-line-height, 18px);outline:none}.dropdown-box-toggle .toggle-placeholder{color:#495057}.dropdown-box-toggle a.dropdown-box-toggle-link{margin-right:calc(2 * var(--dd-arrow-size));padding-right:5px;min-width:fit-content;position:relative;display:block}.dropdown-box-toggle a.dropdown-box-toggle-link:after{content:\"\";position:absolute;left:calc(100% + var(--dd-arrow-size));top:calc(50% - var(--dd-arrow-size));border-top:var(--dd-arrow-size) solid transparent;border-bottom:var(--dd-arrow-size) solid transparent;border-left:var(--dd-arrow-size) solid var(--dd-arrow-color);transform:rotate(calc(var(--dd-arrow-rotation) * 1deg));transition:.2s ease}.dropdown-box-content{position:relative;z-index:1;min-width:var(--toggle-width, 0)}.dropdown-box-content *{box-sizing:border-box}.dropdown-box-content ul{margin:0;padding:0;list-style:none;border:var(--dd-border-size) solid var(--dd-border-color);border-top-width:0;z-index:1;background:var(--dd-bg-color);border-radius:var(--dd-bottom-border-radius);overflow:hidden;min-width:fit-content}.dropdown-box-content li{color:var(--dd-text-color);font-weight:400;text-align:left;min-width:fit-content;cursor:pointer;padding:6px 12px;-webkit-user-select:none;user-select:none}.dropdown-box-content li:hover,.dropdown-box-content li.active{background-color:var(--dd-highlight-color);color:var(--dd-highlight-text-color)}.dropdown-placement-top.open .dropdown-box-toggle{border-radius:var(--dd-bottom-border-radius)}.dropdown-placement-top .dropdown-box-content ul{border-top-width:var(--dd-border-size);border-bottom-width:0;border-radius:var(--dd-top-border-radius)}\n"] }]
|
|
39
|
+
}], ctorParameters: () => [], propDecorators: { closeInside: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], attachToRoot: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], placement: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], crossAxis: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], alignment: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], autoAlignment: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], allowedPlacements: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], componentClass: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], content: [{
|
|
56
|
+
type: ViewChild,
|
|
57
|
+
args: [DropdownContentDirective]
|
|
58
|
+
}] } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9kcm9wZG93bi1ib3gvZHJvcGRvd24tYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9kcm9wZG93bi1ib3gvZHJvcGRvd24tYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLEtBQUssRUFBYSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHdkcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNkNBQTZDLENBQUM7Ozs7OztBQVNyRixNQUFNLE9BQU8sb0JBQW9CO0lBdUQ3QjtRQUNJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRVMscUJBQXFCO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUM1QyxDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0FqRlEsb0JBQW9CO21HQUFwQixvQkFBb0IscVZBb0RsQix3QkFBd0IscUVDaEV2Qyxpa0JBZUE7OzRGREhhLG9CQUFvQjtrQkFQaEMsU0FBUztpQ0FDTSxLQUFLLGlCQUNGLGlCQUFpQixDQUFDLElBQUksWUFDM0IsY0FBYzt3REFTZixXQUFXO3NCQUFuQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFPRyxTQUFTO3NCQUFqQixLQUFLO2dCQU1HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csYUFBYTtzQkFBckIsS0FBSztnQkFPRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBTUcsY0FBYztzQkFBdEIsS0FBSztnQkFLTixPQUFPO3NCQUROLFNBQVM7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1BsYWNlbWVudH0gZnJvbSBcIkBmbG9hdGluZy11aS91dGlsc1wiO1xuaW1wb3J0IHtBbGlnbm1lbnQsIEF1dG9QbGFjZW1lbnRPcHRpb25zfSBmcm9tIFwiQGZsb2F0aW5nLXVpL2RvbVwiO1xuaW1wb3J0IHtEcm9wZG93bkNvbnRlbnREaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL2Ryb3Bkb3duLWNvbnRlbnQuZGlyZWN0aXZlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgc2VsZWN0b3I6IFwiZHJvcGRvd24tYm94XCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2Ryb3Bkb3duLWJveC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3Bkb3duLWJveC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkJveENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBkcm9wZG93biBzaG91bGQgYmUgY2xvc2VkIGV2ZW4gaWYgd2UgY2xpY2sgaW5zaWRlIGl0XG4gICAgICovXG4gICAgQElucHV0KCkgY2xvc2VJbnNpZGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBmbG9hdGluZyBlbGVtZW50IG5lZWRzIHRvIGJlIHBsYWNlZCBpbiB0aGUgcm9vdCBub2RlIG9yIGtlZXAgd2hlcmUgaXQgd2FzIGJlZm9yZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGF0dGFjaFRvUm9vdDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBmbG9hdGluZyBlbGVtZW50IHJlbGF0aXZlIHRvIHRoZSByZWZlcmVuY2UgZWxlbWVudC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwbGFjZW1lbnQ6IFBsYWNlbWVudDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBheGlzIHRoYXQgcnVucyBhbG9uZyB0aGUgYWxpZ25tZW50IG9mIHRoZSBmbG9hdGluZyBlbGVtZW50LiBEZXRlcm1pbmVzXG4gICAgICogd2hldGhlciB0byBjaGVjayBmb3IgbW9zdCBzcGFjZSBhbG9uZyB0aGlzIGF4aXMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjcm9zc0F4aXM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQ2hvb3NlIHBsYWNlbWVudHMgd2l0aCBhIHBhcnRpY3VsYXIgYWxpZ25tZW50LlxuICAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGFsaWdubWVudD86IEFsaWdubWVudCB8IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGNob29zZSBwbGFjZW1lbnRzIHdpdGggdGhlIG9wcG9zaXRlIGFsaWdubWVudCBpZiB0aGUgcHJlZmVycmVkXG4gICAgICogYWxpZ25tZW50IGRvZXMgbm90IGZpdC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KCkgYXV0b0FsaWdubWVudD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGljaCBwbGFjZW1lbnRzIGFyZSBhbGxvd2VkIHRvIGJlIGNob3Nlbi4gUGxhY2VtZW50cyBtdXN0IGJlIHdpdGhpbiB0aGVcbiAgICAgKiBgYWxpZ25tZW50YCBvcHRpb24gaWYgZXhwbGljaXRseSBzZXQuXG4gICAgICogQGRlZmF1bHQgYWxsUGxhY2VtZW50cyAodmFyaWFibGUpXG4gICAgICovXG4gICAgQElucHV0KCkgYWxsb3dlZFBsYWNlbWVudHM/OiBBcnJheTxQbGFjZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIGNsYXNzIHRvIHRoZSBtYWluIGRpdiBlbGVtZW50IGFuZCBhbHNvIHRvIHRoZSBjb250ZW50XG4gICAgICogKCdkcm9wJyBieSBkZWZhdWx0IHdoaWNoIHRyYW5zbGF0ZXMgdG8gJ2Ryb3AtY29udGVudC13cmFwcGVyJyBpbiBjYXNlIG9mIGNvbnRlbnQpXG4gICAgICovXG4gICAgQElucHV0KCkgY29tcG9uZW50Q2xhc3M6IHN0cmluZztcblxuICAgIGF1dG9QbGFjZW1lbnQ6IEF1dG9QbGFjZW1lbnRPcHRpb25zO1xuXG4gICAgQFZpZXdDaGlsZChEcm9wZG93bkNvbnRlbnREaXJlY3RpdmUpXG4gICAgY29udGVudDogRHJvcGRvd25Db250ZW50RGlyZWN0aXZlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuY2xvc2VJbnNpZGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmF0dGFjaFRvUm9vdCA9IHRydWU7XG4gICAgICAgIHRoaXMucGxhY2VtZW50ID0gXCJib3R0b21cIjtcbiAgICAgICAgdGhpcy5jcm9zc0F4aXMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hdXRvQWxpZ25tZW50ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hbGxvd2VkUGxhY2VtZW50cyA9IFtcInRvcFwiLCBcImJvdHRvbVwiXTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRDbGFzcyA9IFwiZHJvcFwiO1xuICAgICAgICB0aGlzLm1ha2VBdXRvUGxhY2VtZW50T3B0cygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBtYWtlQXV0b1BsYWNlbWVudE9wdHMoKSB7XG4gICAgICAgIHRoaXMuYXV0b1BsYWNlbWVudCA9IHtcbiAgICAgICAgICAgIGNyb3NzQXhpczogdGhpcy5jcm9zc0F4aXMsXG4gICAgICAgICAgICBhbGlnbm1lbnQ6IHRoaXMuYWxpZ25tZW50LFxuICAgICAgICAgICAgYXV0b0FsaWdubWVudDogdGhpcy5hdXRvQWxpZ25tZW50LFxuICAgICAgICAgICAgYWxsb3dlZFBsYWNlbWVudHM6IHRoaXMuYWxsb3dlZFBsYWNlbWVudHMsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmNvbnRlbnQuaW5pdGlhbGl6ZSgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLm1ha2VBdXRvUGxhY2VtZW50T3B0cygpO1xuICAgIH1cbn1cbiIsIjxkaXYgZGQgY2xhc3M9XCJkcm9wZG93bi1ib3hcIlxuICAgICBbbmdDbGFzc109XCJjb21wb25lbnRDbGFzc1wiXG4gICAgIFtjbG9zZUluc2lkZV09XCJjbG9zZUluc2lkZVwiXG4gICAgIFthdHRhY2hUb1Jvb3RdPVwiYXR0YWNoVG9Sb290XCJcbiAgICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgICBbYXV0b1BsYWNlbWVudF09XCJhdXRvUGxhY2VtZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWJveC10b2dnbGVcIiBkcm9wZG93blRvZ2dsZT5cbiAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1ib3gtdG9nZ2xlLWxpbmtcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0b2dnbGUtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tYm94LWNvbnRlbnRcIiBbbmdDbGFzc109XCJjb21wb25lbnRDbGFzcyArICctY29udGVudC13cmFwcGVyJ1wiICpkcm9wZG93bkNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|