@koalarx/ui 13.2.3 → 13.2.4

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEubGlzdC1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC9zcmMvbGliL2tvYWxhLmxpc3QtY29uZmlnLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RJdGVtTWVudU9wdGlvbkludGVyZmFjZSB9IGZyb20gXCIuL2tvYWxhLWxpc3QtaXRlbS1tZW51LW9wdGlvbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEtvYWxhTGlzdEl0ZW1JbnRlcmZhY2UgfSBmcm9tIFwiLi9rb2FsYS1saXN0LWl0ZW0uaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgS29hbGFMaXN0RmlsdGVySW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEtbGlzdC1maWx0ZXIuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RGb3JtRmlsdGVySW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEtbGlzdC1mb3JtLWZpbHRlci5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEtvYWxhRHluYW1pY0NvbXBvbmVudCB9IGZyb20gXCJAa29hbGFyeC91aS9keW5hbWljLWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgS29hbGFMaXN0UGFnZVNpemUgfSBmcm9tIFwiLi9saXN0LmFic3RyYWN0XCI7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7IEtvYWxhTGlzdEJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZ0ludGVyZmFjZSB9IGZyb20gXCIuL2tvYWxhLWxpc3QtYnRuLWNvbGxhcHNlLXN1Yi1saXN0LWNvbmZpZy5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGludGVyZmFjZSBLb2FsYUxpc3RDb25maWdJbnRlcmZhY2Uge1xuICBjb2x1bW5zVG9TaG93SW5MaXN0OiBzdHJpbmdbXTtcbiAgY29sdW1uU29ydD86IHN0cmluZztcbiAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb247XG4gIGl0ZW1zTWVudUxpc3RPcHRpb25zPzogS29hbGFMaXN0SXRlbU1lbnVPcHRpb25JbnRlcmZhY2U8YW55PltdO1xuICBpdGVtc0xpc3Q6IEtvYWxhTGlzdEl0ZW1JbnRlcmZhY2U8YW55PltdO1xuICByZXF1ZXN0OiBPYnNlcnZhYmxlPGFueT47XG4gIHJlc3BvbnNlSW5kZXhOYW1lPzogc3RyaW5nO1xuICByZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZTogKHJlc3BvbnNlOiBhbnkpID0+IG51bWJlcjtcbiAgdHlwZVJlcXVlc3Q/OiAnYWxsJyB8ICdvbkRlbWFuZCc7XG4gIGZpbHRlckZvcm1Db25maWc6IEtvYWxhTGlzdEZpbHRlckludGVyZmFjZTtcbiAgcmVsb2FkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gIHNob3dBZHZhbmNlZEZpbHRlcjogYm9vbGVhbjtcbiAgZmlsdGVyUGFyYW1zPzogQmVoYXZpb3JTdWJqZWN0PEtvYWxhTGlzdEZvcm1GaWx0ZXJJbnRlcmZhY2U+O1xuICBlbXB0eUxpc3RDb21wb25lbnQ/OiBLb2FsYUR5bmFtaWNDb21wb25lbnQ7XG4gIGVycm9yTGlzdENvbXBvbmVudD86IEtvYWxhRHluYW1pY0NvbXBvbmVudDtcbiAgcXRkTGlzdFJlc3VsdD86IG51bWJlcjtcbiAgZ2V0U2VsZWN0aW9uTGlzdDogKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55PikgPT4gdm9pZDtcbiAgZ2V0RGF0YVNvdXJjZTogKGRhdGFTb3VyY2U6IGFueVtdKSA9PiB2b2lkO1xuICBwYWdlU2l6ZT86IEtvYWxhTGlzdFBhZ2VTaXplO1xuICBkaXNhYmxlZENoZWNrYm94SXRlbUxpc3Q/OiAoaXRlbTogYW55KSA9PiBib29sZWFuO1xuICBzdWJMaXN0Q29uZmlnPzogKGl0ZW06IGFueSkgPT4gS29hbGFMaXN0Q29uZmlnSW50ZXJmYWNlO1xuICBidG5Db2xsYXBzZVN1Ykxpc3RDb25maWc/OiBLb2FsYUxpc3RCdG5Db2xsYXBzZVN1Ykxpc3RDb25maWdJbnRlcmZhY2U8YW55PjtcbiAgaGlkZVBhZ2luYXRvcj86IGJvb2xlYW47XG4gIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29hbGEubGlzdC1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC9zcmMvbGliL2tvYWxhLmxpc3QtY29uZmlnLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RJdGVtTWVudU9wdGlvbkludGVyZmFjZSB9IGZyb20gXCIuL2tvYWxhLWxpc3QtaXRlbS1tZW51LW9wdGlvbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEtvYWxhTGlzdEl0ZW1JbnRlcmZhY2UgfSBmcm9tIFwiLi9rb2FsYS1saXN0LWl0ZW0uaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgS29hbGFMaXN0RmlsdGVySW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEtbGlzdC1maWx0ZXIuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RGb3JtRmlsdGVySW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEtbGlzdC1mb3JtLWZpbHRlci5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEtvYWxhRHluYW1pY0NvbXBvbmVudCB9IGZyb20gXCJAa29hbGFyeC91aS9keW5hbWljLWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgS29hbGFMaXN0UGFnZVNpemUgfSBmcm9tIFwiLi9saXN0LmFic3RyYWN0XCI7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcbmltcG9ydCB7IEtvYWxhTGlzdEJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZ0ludGVyZmFjZSB9IGZyb20gXCIuL2tvYWxhLWxpc3QtYnRuLWNvbGxhcHNlLXN1Yi1saXN0LWNvbmZpZy5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGludGVyZmFjZSBLb2FsYUxpc3RDb25maWdJbnRlcmZhY2Uge1xuICBjb2x1bW5zVG9TaG93SW5MaXN0OiBzdHJpbmdbXTtcbiAgY29sdW1uU29ydD86IHN0cmluZztcbiAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb247XG4gIGl0ZW1zTWVudUxpc3RPcHRpb25zPzogS29hbGFMaXN0SXRlbU1lbnVPcHRpb25JbnRlcmZhY2U8YW55PltdO1xuICBpdGVtc0xpc3Q6IEtvYWxhTGlzdEl0ZW1JbnRlcmZhY2U8YW55PltdO1xuICByZXF1ZXN0OiBPYnNlcnZhYmxlPGFueT47XG4gIHJlc3BvbnNlSW5kZXhOYW1lPzogc3RyaW5nO1xuICByZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZTogKHJlc3BvbnNlOiBhbnkpID0+IG51bWJlcjtcbiAgdHlwZVJlcXVlc3Q/OiAnYWxsJyB8ICdvbkRlbWFuZCc7XG4gIGZpbHRlckZvcm1Db25maWc6IEtvYWxhTGlzdEZpbHRlckludGVyZmFjZTtcbiAgcmVsb2FkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gIHNob3dBZHZhbmNlZEZpbHRlcjogYm9vbGVhbjtcbiAgZmlsdGVyUGFyYW1zPzogQmVoYXZpb3JTdWJqZWN0PEtvYWxhTGlzdEZvcm1GaWx0ZXJJbnRlcmZhY2U+O1xuICBlbXB0eUxpc3RDb21wb25lbnQ/OiBLb2FsYUR5bmFtaWNDb21wb25lbnQ7XG4gIGVycm9yTGlzdENvbXBvbmVudD86IEtvYWxhRHluYW1pY0NvbXBvbmVudDtcbiAgcXRkTGlzdFJlc3VsdD86IG51bWJlcjtcbiAgZ2V0U2VsZWN0aW9uTGlzdDogKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8YW55PikgPT4gdm9pZDtcbiAgZ2V0RGF0YVNvdXJjZTogKGRhdGFTb3VyY2U6IGFueVtdKSA9PiB2b2lkO1xuICBwYWdlU2l6ZT86IEtvYWxhTGlzdFBhZ2VTaXplO1xuICBkaXNhYmxlZENoZWNrYm94SXRlbUxpc3Q/OiAoaXRlbTogYW55KSA9PiBib29sZWFuO1xuICBzdWJMaXN0Q29uZmlnPzogKGl0ZW06IGFueSkgPT4gS29hbGFMaXN0Q29uZmlnSW50ZXJmYWNlO1xuICBidG5Db2xsYXBzZVN1Ykxpc3RDb25maWc/OiBLb2FsYUxpc3RCdG5Db2xsYXBzZVN1Ykxpc3RDb25maWdJbnRlcmZhY2U8YW55PjtcbiAgaGlkZVBhZ2luYXRvcj86IGJvb2xlYW47XG4gIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBsaW1pdE9wdGlvbnM/OiBudW1iZXJbXTtcbn1cbiJdfQ==
@@ -93,5 +93,13 @@ export class ListBuilder {
93
93
  this.config.reload = new BehaviorSubject(false);
94
94
  return this.config;
95
95
  }
96
+ setLimitOptions(options) {
97
+ this.config.limitOptions = options;
98
+ }
99
+ addLimitOption(limit) {
100
+ if (!this.config.limitOptions)
101
+ this.config.limitOptions = [10, 20, 30, 50, 100];
102
+ this.config.limitOptions.push(limit);
103
+ }
96
104
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC9zcmMvbGliL2xpc3QtYnVpbGRlci9saXN0LmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE1BQU0sT0FBTyxXQUFXO0lBQXhCO1FBQ1UsV0FBTSxHQUFHLEVBQThCLENBQUM7SUFtSGxELENBQUM7SUFqSFEsT0FBTyxDQUNaLE9BQWtHLEVBQ2xHLE9BQTJCLEtBQUssRUFDaEMsZUFBd0IsRUFDeEIsa0JBQTJCO1FBRTNCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixHQUFHLGVBQWUsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLDBCQUEwQixHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5RixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUVsRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUM7UUFFM0QsSUFB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SUFBSSxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsU0FBb0IsRUFBRSxJQUFVO1FBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sdUJBQXVCLENBQUMsRUFBK0I7UUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQW9EO1FBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSw4QkFBOEIsQ0FBQyxNQUE0RDtRQUNoRyxJQUFJLENBQUMsTUFBTSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBZ0IsSUFBSTtRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sY0FBYyxDQUFDLFNBQWlCO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtvYWxhTGlzdENvbmZpZ0ludGVyZmFjZSB9IGZyb20gXCIuLi9rb2FsYS5saXN0LWNvbmZpZy5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEtvYWxhTGlzdEl0ZW1JbnRlcmZhY2UgfSBmcm9tIFwiLi4va29hbGEtbGlzdC1pdGVtLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBLb2FsYUR5bmFtaWNDb21wb25lbnQgfSBmcm9tIFwiQGtvYWxhcngvdWkvZHluYW1pYy1jb21wb25lbnRcIjtcbmltcG9ydCB7IEtvYWxhTGlzdEZpbHRlckludGVyZmFjZSB9IGZyb20gXCIuLi9rb2FsYS1saXN0LWZpbHRlci5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RGb3JtRmlsdGVySW50ZXJmYWNlIH0gZnJvbSBcIi4uL2tvYWxhLWxpc3QtZm9ybS1maWx0ZXIuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RJdGVtTWVudU9wdGlvbkludGVyZmFjZSB9IGZyb20gXCIuLi9rb2FsYS1saXN0LWl0ZW0tbWVudS1vcHRpb24uaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcbmltcG9ydCB7IEtvYWxhTGlzdFBhZ2VTaXplIH0gZnJvbSBcIi4uL2xpc3QuYWJzdHJhY3RcIjtcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RCdG5Db2xsYXBzZVN1Ykxpc3RDb25maWdJbnRlcmZhY2UgfSBmcm9tIFwiLi4va29hbGEtbGlzdC1idG4tY29sbGFwc2Utc3ViLWxpc3QtY29uZmlnLmludGVyZmFjZVwiO1xuXG5leHBvcnQgY2xhc3MgTGlzdEJ1aWxkZXI8RGF0YVR5cGU+IHtcbiAgcHJpdmF0ZSBjb25maWcgPSB7fSBhcyBLb2FsYUxpc3RDb25maWdJbnRlcmZhY2U7XG5cbiAgcHVibGljIHNlcnZpY2UoXG4gICAgc2VydmljZTogKGZpbHRlcjogQmVoYXZpb3JTdWJqZWN0PEtvYWxhTGlzdEZvcm1GaWx0ZXJJbnRlcmZhY2U+KSA9PiBPYnNlcnZhYmxlPGFueT4gfCBQcm9taXNlPGFueT4sXG4gICAgdHlwZTogJ2FsbCcgfCAnb25EZW1hbmQnID0gXCJhbGxcIixcbiAgICByZXN1bHRJbmRleE5hbWU/OiBzdHJpbmcsXG4gICAgcXRkUmVzdWx0SW5kZXhOYW1lPzogc3RyaW5nXG4gICkge1xuICAgIHRoaXMuY29uZmlnLnR5cGVSZXF1ZXN0ID0gdHlwZTtcbiAgICB0aGlzLmNvbmZpZy5yZXNwb25zZUluZGV4TmFtZSA9IHJlc3VsdEluZGV4TmFtZTtcbiAgICB0aGlzLmNvbmZpZy5yZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZSA9IHJlc3BvbnNlID0+IHJlc3BvbnNlW3F0ZFJlc3VsdEluZGV4TmFtZSA/PyAnJ10gPz8gW107XG4gICAgdGhpcy5jb25maWcuY29sdW1uU29ydCA9IHRoaXMuY29uZmlnPy5maWx0ZXJQYXJhbXM/LmdldFZhbHVlKCk/LnNvcnQ7XG4gICAgdGhpcy5jb25maWcuc29ydERpcmVjdGlvbiA9IHRoaXMuY29uZmlnPy5maWx0ZXJQYXJhbXM/LmdldFZhbHVlKCk/Lm9yZGVyID8/ICdhc2MnO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBzZXJ2aWNlKHRoaXMuY29uZmlnLmZpbHRlclBhcmFtcyA/PyBudWxsKTtcblxuICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIHRoaXMuY29uZmlnLnJlcXVlc3QgPSBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xuICAgICAgICByZXNwb25zZS50aGVuKHJlc3BvbnNlID0+IG9ic2VydmUubmV4dChyZXNwb25zZSkpXG4gICAgICAgICAgICAgICAgLmNhdGNoKGVycm9yID0+IG9ic2VydmUuZXJyb3IoZXJyb3IpKTtcbiAgICAgIH0pLnBpcGUoZmlyc3QoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZmlnLnJlcXVlc3QgPSBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xuICAgICAgICAoc2VydmljZSh0aGlzLmNvbmZpZy5maWx0ZXJQYXJhbXMgPz8gbnVsbCkgYXMgT2JzZXJ2YWJsZTxhbnk+KS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZShvYnNlcnZlKTtcbiAgICAgIH0pLnBpcGUoZmlyc3QoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyQ29uZmlnKGNvbmZpZzogS29hbGFMaXN0RmlsdGVySW50ZXJmYWNlKSB7XG4gICAgdGhpcy5jb25maWcuZmlsdGVyRm9ybUNvbmZpZyA9IGNvbmZpZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBkZWZhdWx0RmlsdGVyKGNvbmZpZzogS29hbGFMaXN0Rm9ybUZpbHRlckludGVyZmFjZSkge1xuICAgIHRoaXMuY29uZmlnLmZpbHRlclBhcmFtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8S29hbGFMaXN0Rm9ybUZpbHRlckludGVyZmFjZT4oY29uZmlnKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBwYWdlU2l6ZShzaXplOiBLb2FsYUxpc3RQYWdlU2l6ZSkge1xuICAgIHRoaXMuY29uZmlnLnBhZ2VTaXplID0gc2l6ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBjb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5jb25maWcuY29sdW1uc1RvU2hvd0luTGlzdCA9IGNvbHVtbnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgaXRlbUNvbHVtbihpdGVtOiBLb2FsYUxpc3RJdGVtSW50ZXJmYWNlPERhdGFUeXBlPikge1xuICAgICh0aGlzLmNvbmZpZy5pdGVtc0xpc3Q/Lmxlbmd0aCA+IDApID9cbiAgICAgIHRoaXMuY29uZmlnLml0ZW1zTGlzdC5wdXNoKGl0ZW0pIDpcbiAgICAgIHRoaXMuY29uZmlnLml0ZW1zTGlzdCA9IFtpdGVtXTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGFjdGlvbkxpc3QoaXRlbTogS29hbGFMaXN0SXRlbU1lbnVPcHRpb25JbnRlcmZhY2U8RGF0YVR5cGU+KSB7XG4gICAgKHRoaXMuY29uZmlnLml0ZW1zTWVudUxpc3RPcHRpb25zPy5sZW5ndGggPz8gMCA+IDApID9cbiAgICAgIHRoaXMuY29uZmlnLml0ZW1zTWVudUxpc3RPcHRpb25zPy5wdXNoKGl0ZW0pIDpcbiAgICAgIHRoaXMuY29uZmlnLml0ZW1zTWVudUxpc3RPcHRpb25zID0gW2l0ZW1dO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF0YVNvdXJjZShmbjogKGRhdGFTb3VyY2U6IERhdGFUeXBlW10pID0+IHZvaWQpIHtcbiAgICB0aGlzLmNvbmZpZy5nZXREYXRhU291cmNlID0gZm47XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0aW9uTGlzdChmbjogKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8RGF0YVR5cGU+KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jb25maWcuZ2V0U2VsZWN0aW9uTGlzdCA9IGZuO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGVtcHR5TGlzdENvbXBvbmVudChjb21wb25lbnQ6IFR5cGU8YW55PiwgZGF0YT86IGFueSkge1xuICAgIHRoaXMuY29uZmlnLmVtcHR5TGlzdENvbXBvbmVudCA9IG5ldyBLb2FsYUR5bmFtaWNDb21wb25lbnQoY29tcG9uZW50LCBkYXRhKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBlcnJvckxpc3RDb21wb25lbnQoY29tcG9uZW50OiBUeXBlPGFueT4sIGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmNvbmZpZy5lcnJvckxpc3RDb21wb25lbnQgPSBuZXcgS29hbGFEeW5hbWljQ29tcG9uZW50KGNvbXBvbmVudCwgZGF0YSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZUNoZWNrYm94SXRlbUxpc3QoZm46IChpdGVtOiBEYXRhVHlwZSkgPT4gYm9vbGVhbikge1xuICAgIHRoaXMuY29uZmlnLmRpc2FibGVkQ2hlY2tib3hJdGVtTGlzdCA9IGZuO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNldFN1Ykxpc3QoY29uZmlnOiAoaXRlbTogRGF0YVR5cGUpID0+IEtvYWxhTGlzdENvbmZpZ0ludGVyZmFjZSkge1xuICAgIHRoaXMuY29uZmlnLnN1Ykxpc3RDb25maWcgPSBjb25maWc7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZGVmaW5lQnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnKGNvbmZpZzogS29hbGFMaXN0QnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnSW50ZXJmYWNlPERhdGFUeXBlPikge1xuICAgIHRoaXMuY29uZmlnLmJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZyA9IGNvbmZpZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBoaWRlUGFnaW5hdG9yKGhpZGU6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgdGhpcy5jb25maWcuaGlkZVBhZ2luYXRvciA9IGhpZGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgc2V0Q3VzdG9tQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpZy5jdXN0b21DbGFzcyA9IGNsYXNzTmFtZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWcoKTogS29hbGFMaXN0Q29uZmlnSW50ZXJmYWNlIHtcbiAgICB0aGlzLmNvbmZpZy5yZWxvYWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICByZXR1cm4gdGhpcy5jb25maWc7XG4gIH1cbn1cbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGlzdC9zcmMvbGliL2xpc3QtYnVpbGRlci9saXN0LmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE1BQU0sT0FBTyxXQUFXO0lBQXhCO1FBQ1UsV0FBTSxHQUFHLEVBQThCLENBQUM7SUE2SGxELENBQUM7SUEzSFEsT0FBTyxDQUNaLE9BQWtHLEVBQ2xHLE9BQTJCLEtBQUssRUFDaEMsZUFBd0IsRUFDeEIsa0JBQTJCO1FBRTNCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixHQUFHLGVBQWUsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLDBCQUEwQixHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM5RixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUVsRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUM7UUFFM0QsSUFB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QUMsS0FBYTtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFaEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtvYWxhTGlzdENvbmZpZ0ludGVyZmFjZSB9IGZyb20gXCIuLi9rb2FsYS5saXN0LWNvbmZpZy5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEtvYWxhTGlzdEl0ZW1JbnRlcmZhY2UgfSBmcm9tIFwiLi4va29hbGEtbGlzdC1pdGVtLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBLb2FsYUR5bmFtaWNDb21wb25lbnQgfSBmcm9tIFwiQGtvYWxhcngvdWkvZHluYW1pYy1jb21wb25lbnRcIjtcbmltcG9ydCB7IEtvYWxhTGlzdEZpbHRlckludGVyZmFjZSB9IGZyb20gXCIuLi9rb2FsYS1saXN0LWZpbHRlci5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RGb3JtRmlsdGVySW50ZXJmYWNlIH0gZnJvbSBcIi4uL2tvYWxhLWxpc3QtZm9ybS1maWx0ZXIuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RJdGVtTWVudU9wdGlvbkludGVyZmFjZSB9IGZyb20gXCIuLi9rb2FsYS1saXN0LWl0ZW0tbWVudS1vcHRpb24uaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcbmltcG9ydCB7IEtvYWxhTGlzdFBhZ2VTaXplIH0gZnJvbSBcIi4uL2xpc3QuYWJzdHJhY3RcIjtcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RCdG5Db2xsYXBzZVN1Ykxpc3RDb25maWdJbnRlcmZhY2UgfSBmcm9tIFwiLi4va29hbGEtbGlzdC1idG4tY29sbGFwc2Utc3ViLWxpc3QtY29uZmlnLmludGVyZmFjZVwiO1xuXG5leHBvcnQgY2xhc3MgTGlzdEJ1aWxkZXI8RGF0YVR5cGU+IHtcbiAgcHJpdmF0ZSBjb25maWcgPSB7fSBhcyBLb2FsYUxpc3RDb25maWdJbnRlcmZhY2U7XG5cbiAgcHVibGljIHNlcnZpY2UoXG4gICAgc2VydmljZTogKGZpbHRlcjogQmVoYXZpb3JTdWJqZWN0PEtvYWxhTGlzdEZvcm1GaWx0ZXJJbnRlcmZhY2U+KSA9PiBPYnNlcnZhYmxlPGFueT4gfCBQcm9taXNlPGFueT4sXG4gICAgdHlwZTogJ2FsbCcgfCAnb25EZW1hbmQnID0gXCJhbGxcIixcbiAgICByZXN1bHRJbmRleE5hbWU/OiBzdHJpbmcsXG4gICAgcXRkUmVzdWx0SW5kZXhOYW1lPzogc3RyaW5nXG4gICkge1xuICAgIHRoaXMuY29uZmlnLnR5cGVSZXF1ZXN0ID0gdHlwZTtcbiAgICB0aGlzLmNvbmZpZy5yZXNwb25zZUluZGV4TmFtZSA9IHJlc3VsdEluZGV4TmFtZTtcbiAgICB0aGlzLmNvbmZpZy5yZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZSA9IHJlc3BvbnNlID0+IHJlc3BvbnNlW3F0ZFJlc3VsdEluZGV4TmFtZSA/PyAnJ10gPz8gW107XG4gICAgdGhpcy5jb25maWcuY29sdW1uU29ydCA9IHRoaXMuY29uZmlnPy5maWx0ZXJQYXJhbXM/LmdldFZhbHVlKCk/LnNvcnQ7XG4gICAgdGhpcy5jb25maWcuc29ydERpcmVjdGlvbiA9IHRoaXMuY29uZmlnPy5maWx0ZXJQYXJhbXM/LmdldFZhbHVlKCk/Lm9yZGVyID8/ICdhc2MnO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBzZXJ2aWNlKHRoaXMuY29uZmlnLmZpbHRlclBhcmFtcyA/PyBudWxsKTtcblxuICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIHRoaXMuY29uZmlnLnJlcXVlc3QgPSBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xuICAgICAgICByZXNwb25zZS50aGVuKHJlc3BvbnNlID0+IG9ic2VydmUubmV4dChyZXNwb25zZSkpXG4gICAgICAgICAgICAgICAgLmNhdGNoKGVycm9yID0+IG9ic2VydmUuZXJyb3IoZXJyb3IpKTtcbiAgICAgIH0pLnBpcGUoZmlyc3QoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZmlnLnJlcXVlc3QgPSBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xuICAgICAgICAoc2VydmljZSh0aGlzLmNvbmZpZy5maWx0ZXJQYXJhbXMgPz8gbnVsbCkgYXMgT2JzZXJ2YWJsZTxhbnk+KS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZShvYnNlcnZlKTtcbiAgICAgIH0pLnBpcGUoZmlyc3QoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyQ29uZmlnKGNvbmZpZzogS29hbGFMaXN0RmlsdGVySW50ZXJmYWNlKSB7XG4gICAgdGhpcy5jb25maWcuZmlsdGVyRm9ybUNvbmZpZyA9IGNvbmZpZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBkZWZhdWx0RmlsdGVyKGNvbmZpZzogS29hbGFMaXN0Rm9ybUZpbHRlckludGVyZmFjZSkge1xuICAgIHRoaXMuY29uZmlnLmZpbHRlclBhcmFtcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8S29hbGFMaXN0Rm9ybUZpbHRlckludGVyZmFjZT4oY29uZmlnKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBwYWdlU2l6ZShzaXplOiBLb2FsYUxpc3RQYWdlU2l6ZSkge1xuICAgIHRoaXMuY29uZmlnLnBhZ2VTaXplID0gc2l6ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBjb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5jb25maWcuY29sdW1uc1RvU2hvd0luTGlzdCA9IGNvbHVtbnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgaXRlbUNvbHVtbihpdGVtOiBLb2FsYUxpc3RJdGVtSW50ZXJmYWNlPERhdGFUeXBlPikge1xuICAgICh0aGlzLmNvbmZpZy5pdGVtc0xpc3Q/Lmxlbmd0aCA+IDApID9cbiAgICAgIHRoaXMuY29uZmlnLml0ZW1zTGlzdC5wdXNoKGl0ZW0pIDpcbiAgICAgIHRoaXMuY29uZmlnLml0ZW1zTGlzdCA9IFtpdGVtXTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGFjdGlvbkxpc3QoaXRlbTogS29hbGFMaXN0SXRlbU1lbnVPcHRpb25JbnRlcmZhY2U8RGF0YVR5cGU+KSB7XG4gICAgKHRoaXMuY29uZmlnLml0ZW1zTWVudUxpc3RPcHRpb25zPy5sZW5ndGggPz8gMCA+IDApID9cbiAgICAgIHRoaXMuY29uZmlnLml0ZW1zTWVudUxpc3RPcHRpb25zPy5wdXNoKGl0ZW0pIDpcbiAgICAgIHRoaXMuY29uZmlnLml0ZW1zTWVudUxpc3RPcHRpb25zID0gW2l0ZW1dO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0RGF0YVNvdXJjZShmbjogKGRhdGFTb3VyY2U6IERhdGFUeXBlW10pID0+IHZvaWQpIHtcbiAgICB0aGlzLmNvbmZpZy5nZXREYXRhU291cmNlID0gZm47XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0aW9uTGlzdChmbjogKHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8RGF0YVR5cGU+KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jb25maWcuZ2V0U2VsZWN0aW9uTGlzdCA9IGZuO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGVtcHR5TGlzdENvbXBvbmVudChjb21wb25lbnQ6IFR5cGU8YW55PiwgZGF0YT86IGFueSkge1xuICAgIHRoaXMuY29uZmlnLmVtcHR5TGlzdENvbXBvbmVudCA9IG5ldyBLb2FsYUR5bmFtaWNDb21wb25lbnQoY29tcG9uZW50LCBkYXRhKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBlcnJvckxpc3RDb21wb25lbnQoY29tcG9uZW50OiBUeXBlPGFueT4sIGRhdGE/OiBhbnkpIHtcbiAgICB0aGlzLmNvbmZpZy5lcnJvckxpc3RDb21wb25lbnQgPSBuZXcgS29hbGFEeW5hbWljQ29tcG9uZW50KGNvbXBvbmVudCwgZGF0YSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZUNoZWNrYm94SXRlbUxpc3QoZm46IChpdGVtOiBEYXRhVHlwZSkgPT4gYm9vbGVhbikge1xuICAgIHRoaXMuY29uZmlnLmRpc2FibGVkQ2hlY2tib3hJdGVtTGlzdCA9IGZuO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNldFN1Ykxpc3QoY29uZmlnOiAoaXRlbTogRGF0YVR5cGUpID0+IEtvYWxhTGlzdENvbmZpZ0ludGVyZmFjZSkge1xuICAgIHRoaXMuY29uZmlnLnN1Ykxpc3RDb25maWcgPSBjb25maWc7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZGVmaW5lQnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnKGNvbmZpZzogS29hbGFMaXN0QnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnSW50ZXJmYWNlPERhdGFUeXBlPikge1xuICAgIHRoaXMuY29uZmlnLmJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZyA9IGNvbmZpZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBoaWRlUGFnaW5hdG9yKGhpZGU6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgdGhpcy5jb25maWcuaGlkZVBhZ2luYXRvciA9IGhpZGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgc2V0Q3VzdG9tQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpZy5jdXN0b21DbGFzcyA9IGNsYXNzTmFtZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWcoKTogS29hbGFMaXN0Q29uZmlnSW50ZXJmYWNlIHtcbiAgICB0aGlzLmNvbmZpZy5yZWxvYWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICByZXR1cm4gdGhpcy5jb25maWc7XG4gIH1cblxuICBwdWJsaWMgc2V0TGltaXRPcHRpb25zKG9wdGlvbnM6IG51bWJlcltdKSB7XG4gICAgdGhpcy5jb25maWcubGltaXRPcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBhZGRMaW1pdE9wdGlvbihsaW1pdDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5saW1pdE9wdGlvbnMpIHRoaXMuY29uZmlnLmxpbWl0T3B0aW9ucyA9IFsxMCwgMjAsIDMwLCA1MCwgMTAwXTtcblxuICAgIHRoaXMuY29uZmlnLmxpbWl0T3B0aW9ucy5wdXNoKGxpbWl0KTtcbiAgfVxufVxuIl19
@@ -140,6 +140,7 @@ export class ListComponent extends ListAbstract {
140
140
  this.btnCollapseSubListConfig = this.config.btnCollapseSubListConfig;
141
141
  this.hidePaginator = this.config.hidePaginator;
142
142
  this.customClass = this.config.customClass;
143
+ this.limitOptions = this.config.limitOptions ?? this.limitOptions;
143
144
  }
144
145
  }
145
146
  ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ListComponent, deps: [{ token: i1.FormBuilder }, { token: i2.KoalaDynamicFormService }, { token: i3.DeviceDetectorService }], target: i0.ɵɵFactoryTarget.Component });
@@ -168,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
168
169
  type: ViewChild,
169
170
  args: [MatSort, { static: false }]
170
171
  }] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0L3NyYy9saWIvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0L3NyYy9saWIvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFlLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS25ELE9BQU8sRUFBRSxPQUFPLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlakYsTUFBTSxPQUFPLGFBQWMsU0FBUSxZQUFZO0lBNEI3QyxZQUNVLEVBQWUsRUFDZixrQkFBMkMsRUFDM0MsYUFBb0M7UUFFNUMsS0FBSyxDQUNILEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLElBQUksVUFBVSxFQUFPLEVBQ25ELENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQztZQUNoQyxJ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LENBQUM7NEJBQ3ZDLFVBQVUsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQzt5QkFDdEYsQ0FBQztxQkFDSDs0S0FHZSxNQUFNO3NCQUFyQixLQUFLO2dCQUU2QixTQUFTO3NCQUEzQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ3dCLElBQUk7c0JBQWxELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMaXN0QWJzdHJhY3QgfSBmcm9tICcuL2xpc3QuYWJzdHJhY3QnO1xuaW1wb3J0IHsgS29hbGFMaXN0SXRlbU1lbnVPcHRpb25JbnRlcmZhY2UgfSBmcm9tICcuL2tvYWxhLWxpc3QtaXRlbS1tZW51LW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEtvYWxhTGlzdEZpbHRlckludGVyZmFjZSB9IGZyb20gJy4va29hbGEtbGlzdC1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEtvYWxhRHluYW1pY0Zvcm1TZXJ2aWNlIH0gZnJvbSAnQGtvYWxhcngvdWkvZm9ybSc7XG5pbXBvcnQgeyBLb2FsYUxpc3RJdGVtSW50ZXJmYWNlIH0gZnJvbSAnLi9rb2FsYS1saXN0LWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IEtvYWxhTGlzdEZvcm1GaWx0ZXJJbnRlcmZhY2UgfSBmcm9tIFwiLi9rb2FsYS1saXN0LWZvcm0tZmlsdGVyLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWF0U29ydCwgU29ydERpcmVjdGlvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gXCJAa29hbGFyeC91dGlscy9vcGVyYXRvcnMvZGVsYXlcIjtcbmltcG9ydCB7IGtvYWxhIH0gZnJvbSBcIkBrb2FsYXJ4L3V0aWxzXCI7XG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tIFwibmd4LWRldmljZS1kZXRlY3RvclwiO1xuaW1wb3J0IHsgS29hbGFMaXN0Q29uZmlnSW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEubGlzdC1jb25maWcuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yXCI7XG5pbXBvcnQgeyBLb2FsYUxpc3RCdG5Db2xsYXBzZVN1Ykxpc3RDb25maWdJbnRlcmZhY2UgfSBmcm9tIFwiLi9rb2FsYS1saXN0LWJ0bi1jb2xsYXBzZS1zdWItbGlzdC1jb25maWcuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrb2FsYS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICdsaXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2xpc3QuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2RldGFpbEV4cGFuZCcsIFtcbiAgICAgIHN0YXRlKCdjb2xsYXBzZWQnLCBzdHlsZSh7aGVpZ2h0OiAnMHB4JywgbWluSGVpZ2h0OiAnMCd9KSksXG4gICAgICBzdGF0ZSgnZXhwYW5kZWQnLCBzdHlsZSh7aGVpZ2h0OiAnKid9KSksXG4gICAgICB0cmFuc2l0aW9uKCdleHBhbmRlZCA8PT4gY29sbGFwc2VkJywgYW5pbWF0ZSgnMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpJykpLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Q29tcG9uZW50IGV4dGVuZHMgTGlzdEFic3RyYWN0IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgY29uZmlnPzogS29hbGFMaXN0Q29uZmlnSW50ZXJmYWNlO1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBwcm90ZWN0ZWQgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG4gIEBWaWV3Q2hpbGQoTWF0U29ydCwge3N0YXRpYzogZmFsc2V9KSBwcm90ZWN0ZWQgc29ydDogTWF0U29ydDtcblxuICBwdWJsaWMgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIHB1YmxpYyBjb2x1bW5zVG9TaG93SW5MaXN0Pzogc3RyaW5nW107XG4gIHB1YmxpYyBoaWRlUGFnaW5hdG9yPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY29sdW1uU29ydD86IHN0cmluZztcbiAgcHVibGljIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gPSAnYXNjJztcbiAgcHVibGljIGl0ZW1zTWVudUxpc3RPcHRpb25zPzogS29hbGFMaXN0SXRlbU1lbnVPcHRpb25JbnRlcmZhY2U8YW55PltdO1xuICBwdWJsaWMgaXRlbXNMaXN0PzogS29hbGFMaXN0SXRlbUludGVyZmFjZTxhbnk+W107XG4gIHB1YmxpYyByZXF1ZXN0PzogT2JzZXJ2YWJsZTxhbnk+O1xuICBwdWJsaWMgcmVzcG9uc2VJbmRleE5hbWU/OiBzdHJpbmc7XG4gIHB1YmxpYyByZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZT86IChyZXNwb25zZTogYW55KSA9PiBudW1iZXI7XG4gIHB1YmxpYyByZXNwb25zZVJlcXVlc3Q/OiBhbnk7XG4gIHB1YmxpYyB0eXBlUmVxdWVzdDogJ2FsbCcgfCAnb25EZW1hbmQnID0gJ2FsbCdcbiAgcHVibGljIGZpbHRlckZvcm1Db25maWc/OiBLb2FsYUxpc3RGaWx0ZXJJbnRlcmZhY2U7XG4gIHB1YmxpYyByZWxvYWQ/OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gIHB1YmxpYyBmb3JtRmlsdGVyPzogRm9ybUdyb3VwO1xuICBwdWJsaWMgc2hvd0FkdmFuY2VkRmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBxdGRMaXN0UmVzdWx0ID0gMDtcbiAgcHVibGljIGRpc2FibGVkQ2hlY2tib3hJdGVtTGlzdD86IChpdGVtOiBhbnkpID0+IGJvb2xlYW47XG4gIHB1YmxpYyBleHBhbmRlZEVsZW1lbnQgPSBmYWxzZTtcbiAgcHVibGljIGJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZz86IEtvYWxhTGlzdEJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZ0ludGVyZmFjZTxhbnk+O1xuICBwdWJsaWMgc3ViTGlzdENvbmZpZz86IChpdGVtOiBhbnkpID0+IEtvYWxhTGlzdENvbmZpZ0ludGVyZmFjZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGR5bmFtaWNGb3JtU2VydmljZTogS29hbGFEeW5hbWljRm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICAoKSA9PiB0aGlzLmNvbmZpZz8ucmVxdWVzdCA/PyBuZXcgT2JzZXJ2YWJsZTxhbnk+KCksXG4gICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5yZXNwb25zZVJlcXVlc3QgPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLmNvbmZpZz8ucmVzcG9uc2VJbmRleE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICh0aGlzLmNvbmZpZy5yZXNwb25zZUluZGV4TmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcmVzcG9uc2VbdGhpcy5jb25maWcucmVzcG9uc2VJbmRleE5hbWVdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBbXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlc3BvbnNlO1xuICAgICAgICBpZiAodGhpcy5jb25maWc/LmdldERhdGFTb3VyY2UpIHRoaXMuY29uZmlnPy5nZXREYXRhU291cmNlKHRoaXMuZGF0YVNvdXJjZS5kYXRhKTtcbiAgICAgICAgdGhpcy5xdGRMaXN0UmVzdWx0ID0gdGhpcy5jb25maWc/LnJlc3BvbnNlUXRkUmVzdWx0SW5kZXhOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5jb25maWcucmVzcG9uc2VRdGRSZXN1bHRJbmRleE5hbWUocmVzcG9uc2UpID8/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmRhdGFTb3VyY2UuZGF0YT8ubGVuZ3RoID8/IDA7XG4gICAgICB9LFxuICAgICAgKCkgPT4gdGhpcy5mb3JtRmlsdGVyID8/IGZiLmdyb3VwKHt9KVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRDb25maWcoKTtcbiAgICB0aGlzLmZvcm1GaWx0ZXIgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGZvcm1TZWFyY2g6IHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8ubWFpbj8uZm9ybSA/PyBbJyddLFxuICAgICAgZm9ybUFkdmFuY2VkU2VhcmNoOiB0aGlzLmZpbHRlckZvcm1Db25maWc/LmFkdmFuY2VkPy5mb3JtID8/IFsnJ11cbiAgICB9KTtcbiAgICB0aGlzLmxvYWRpbmcodHJ1ZSk7XG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybUNvbmZpZykge1xuICAgICAgdGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5tYWluPy5mb3JtQ29uZmlnPy5tYXAoaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0uY2xhc3MgKz0gJyBwYWRkaW5nLW5vbmUgdy05OSc7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmZpbHRlckZvcm1Db25maWc/LmFkdmFuY2VkPy5mb3JtQ29uZmlnPy5tYXAoaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0uY2xhc3MgKz0gJyBwYWRkaW5nLW5vbmUnO1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8uY2hlY2tBbmRTZWFyY2gpIHtcbiAgICAgICAgdGhpcy5mb3JtRmlsdGVyLmFkZENvbnRyb2wodGhpcy5maWx0ZXJGb3JtQ29uZmlnLmNoZWNrQW5kU2VhcmNoLmZvcm1Db250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKHRoaXMuZmlsdGVyRm9ybUNvbmZpZy5jaGVja0FuZFNlYXJjaC5pc0NoZWNrZWQgPz8gZmFsc2UpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcuZ2V0U2VsZWN0aW9uTGlzdCkgdGhpcy5jb25maWcuZ2V0U2VsZWN0aW9uTGlzdCh0aGlzLnNlbGVjdGlvbik7XG5cbiAgICBpZiAodGhpcy5yZWxvYWQpIHtcbiAgICAgIHRoaXMucmVsb2FkLnN1YnNjcmliZShhc3luYyByZWxvYWQgPT4ge1xuICAgICAgICBpZiAocmVsb2FkKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5maWx0ZXJTdWJtaXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIub25EZXN0cm95KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIuYWZ0ZXJWaWV3SW5pdCgpLnRoZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBmaWx0ZXJTdWJtaXQoKSB7XG4gICAgdGhpcy5zaG93QWR2YW5jZWRGaWx0ZXIgPSBmYWxzZTtcbiAgICBhd2FpdCBkZWxheSgxKTtcbiAgICBsZXQgZGFkb3MgPSBrb2FsYShcbiAgICAgIHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8ubWFpbj8uZm9ybVxuICAgICAgPyB0aGlzLmR5bmFtaWNGb3JtU2VydmljZS5lbWl0RGF0YSh0aGlzLmZpbHRlckZvcm1Db25maWc/Lm1haW4/LmZvcm0pXG4gICAgICA6IHt9XG4gICAgKVxuICAgICAgLm9iamVjdCgpXG4gICAgICAubWVyZ2UoXG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8uYWR2YW5jZWQ/LmZvcm1cbiAgICAgICAgPyB0aGlzLmR5bmFtaWNGb3JtU2VydmljZS5lbWl0RGF0YSh0aGlzLmZpbHRlckZvcm1Db25maWc/LmFkdmFuY2VkPy5mb3JtKVxuICAgICAgICA6IHt9KVxuICAgICAgLmdldFZhbHVlKCk7XG5cbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5jaGVja0FuZFNlYXJjaCkge1xuICAgICAgY29uc3QgY29udHJvbE5hbWUgPSB0aGlzLmZpbHRlckZvcm1Db25maWcuY2hlY2tBbmRTZWFyY2guZm9ybUNvbnRyb2xOYW1lO1xuICAgICAgZGFkb3NbY29udHJvbE5hbWVdID0gdGhpcy5mb3JtRmlsdGVyLmdldChjb250cm9sTmFtZSkudmFsdWU7XG4gICAgfVxuICAgIGF3YWl0IHN1cGVyLnNlYXJjaChkYWRvcyk7XG4gIH1cblxuICBwdWJsaWMgdG9vZ2xlRmlsdGVyKCkge1xuICAgIHRoaXMuc2hvd0FkdmFuY2VkRmlsdGVyID0gIXRoaXMuc2hvd0FkdmFuY2VkRmlsdGVyO1xuICB9XG5cbiAgcHVibGljIGhhdmVPcHRpb25zT25JdGVtTGluZShpdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc01lbnVMaXN0T3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi5oYXZlUGVybWlzc2lvbiAmJiAoXG4gICAgICAhb3B0aW9uLnNob3dCeUl0ZW1MaXN0IHx8XG4gICAgICBvcHRpb24uc2hvd0J5SXRlbUxpc3QoaXRlbSlcbiAgICApKS5sZW5ndGggPiAwXG4gIH1cblxuICBwdWJsaWMgaGFzRm9vdGVyKCkge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXNMaXN0LmZpbmQoaXRlbSA9PiAhIWl0ZW0uZm9vdGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvbmZpZygpIHtcbiAgICB0aGlzLmNvbHVtblNvcnQgPSB0aGlzLmNvbmZpZy5jb2x1bW5Tb3J0ID8/IG51bGw7XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gdGhpcy5jb25maWcuc29ydERpcmVjdGlvbiA/PyAnYXNjJztcbiAgICB0aGlzLml0ZW1zTWVudUxpc3RPcHRpb25zID0gdGhpcy5jb25maWcuaXRlbXNNZW51TGlzdE9wdGlvbnMgPz8gW107XG4gICAgdGhpcy50eXBlUmVxdWVzdCA9IHRoaXMuY29uZmlnLnR5cGVSZXF1ZXN0ID8/ICdhbGwnO1xuICAgIHRoaXMucXRkTGlzdFJlc3VsdCA9IHRoaXMuY29uZmlnLnF0ZExpc3RSZXN1bHQgPz8gMDtcbiAgICB0aGlzLmNvbHVtbnNUb1Nob3dJbkxpc3QgPSB0aGlzLmNvbmZpZy5jb2x1bW5zVG9TaG93SW5MaXN0O1xuICAgIHRoaXMuaXRlbXNMaXN0ID0gdGhpcy5jb25maWcuaXRlbXNMaXN0Lm1hcChpdGVtID0+IHtcbiAgICAgIGlmICghaXRlbS5kYmxDbGljaykge1xuICAgICAgICBpdGVtLmRibENsaWNrID0gKCkgPT4ge1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfSk7XG4gICAgdGhpcy5zaG93QWR2YW5jZWRGaWx0ZXIgPSB0aGlzLmNvbmZpZy5zaG93QWR2YW5jZWRGaWx0ZXI7XG4gICAgdGhpcy5maWx0ZXJGb3JtQ29uZmlnID0gdGhpcy5jb25maWcuZmlsdGVyRm9ybUNvbmZpZztcbiAgICB0aGlzLnJlcXVlc3QgPSB0aGlzLmNvbmZpZy5yZXF1ZXN0O1xuICAgIHRoaXMucmVsb2FkID0gdGhpcy5jb25maWcucmVsb2FkO1xuICAgIHRoaXMucmVzcG9uc2VJbmRleE5hbWUgPSB0aGlzLmNvbmZpZy5yZXNwb25zZUluZGV4TmFtZTtcbiAgICB0aGlzLnJlc3BvbnNlUXRkUmVzdWx0SW5kZXhOYW1lID0gdGhpcy5jb25maWcucmVzcG9uc2VRdGRSZXN1bHRJbmRleE5hbWU7XG4gICAgdGhpcy5maWx0ZXJQYXJhbXMgPSB0aGlzLmNvbmZpZy5maWx0ZXJQYXJhbXMgPz8gbmV3IEJlaGF2aW9yU3ViamVjdDxLb2FsYUxpc3RGb3JtRmlsdGVySW50ZXJmYWNlPihudWxsKTtcbiAgICB0aGlzLmVtcHR5TGlzdENvbXBvbmVudCA9IHRoaXMuY29uZmlnLmVtcHR5TGlzdENvbXBvbmVudDtcbiAgICB0aGlzLmVycm9yTGlzdENvbXBvbmVudCA9IHRoaXMuY29uZmlnLmVycm9yTGlzdENvbXBvbmVudDtcbiAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5jb25maWcucGFnZVNpemUgPz8gMzA7XG4gICAgdGhpcy5kaXNhYmxlZENoZWNrYm94SXRlbUxpc3QgPSB0aGlzLmNvbmZpZy5kaXNhYmxlZENoZWNrYm94SXRlbUxpc3Q7XG4gICAgdGhpcy5zdWJMaXN0Q29uZmlnID0gdGhpcy5jb25maWcuc3ViTGlzdENvbmZpZztcbiAgICB0aGlzLmJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZyA9IHRoaXMuY29uZmlnLmJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZztcbiAgICB0aGlzLmhpZGVQYWdpbmF0b3IgPSB0aGlzLmNvbmZpZy5oaWRlUGFnaW5hdG9yO1xuICAgIHRoaXMuY3VzdG9tQ2xhc3MgPSB0aGlzLmNvbmZpZy5jdXN0b21DbGFzcztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxpc3QtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiY3VzdG9tQ2xhc3NcIj5cbiAgPGRpdiAqbmdJZj1cImZpbHRlckZvcm1Db25maWdcIiBjbGFzcz1cImxpc3QtZmlsdGVyXCI+XG4gICAgPGZvcm0gKG5nU3VibWl0KT1cImZpbHRlclN1Ym1pdCgpXCIgW2Zvcm1Hcm91cF09XCJmb3JtRmlsdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFpblwiPlxuICAgICAgICA8a29hbGEtZHluYW1pYy1mb3JtXG4gICAgICAgICAgKm5nSWY9XCJmaWx0ZXJGb3JtQ29uZmlnLm1haW5cIlxuICAgICAgICAgIFtmb3JtXT1cImZpbHRlckZvcm1Db25maWcubWFpbi5mb3JtXCJcbiAgICAgICAgICBbZm9ybUNvbmZpZ109XCJmaWx0ZXJGb3JtQ29uZmlnLm1haW4uZm9ybUNvbmZpZ1wiXG4gICAgICAgICAgW3NldFZhbHVlc109XCJmaWx0ZXJGb3JtQ29uZmlnLm1haW4uc2V0VmFsdWVzXCJcbiAgICAgICAgICBbc2hvd0ZpZWxkc109XCJmaWx0ZXJGb3JtQ29uZmlnLm1haW4uc2hvd0ZpZWxkc1wiPlxuICAgICAgICA8L2tvYWxhLWR5bmFtaWMtZm9ybT5cbiAgICAgICAgPHVsPlxuICAgICAgICAgIDxsaSAqbmdJZj1cImZpbHRlckZvcm1Db25maWcuYWR2YW5jZWRcIiBjbGFzcz1cIm9wdGlvblwiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidG9vZ2xlRmlsdGVyKClcIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtaWNvbi1idXR0b24gbWF0VG9vbHRpcD1cIkZpbHRybyBBdmFuw6dhZG9cIlxuICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJiZWxvd1wiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPnR1bmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGkgKm5nSWY9XCJmaWx0ZXJGb3JtQ29uZmlnLmNoZWNrQW5kU2VhcmNoXCIgY2xhc3M9XCJjaGVja2JveC1maWx0ZXJcIj5cbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cImZpbHRlclN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWx0ZXJGb3JtQ29uZmlnLmNoZWNrQW5kU2VhcmNoLmZvcm1Db250cm9sTmFtZVwiPlxuICAgICAgICAgICAgICB7e2ZpbHRlckZvcm1Db25maWcuY2hlY2tBbmRTZWFyY2gubGFiZWx9fVxuICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgICA8bGkgY2xhc3M9XCJvcHRpb25cIj5cbiAgICAgICAgICAgIDxrb2FsYS1zdWJtaXRcbiAgICAgICAgICAgICAgW2J0blN1Ym1pdERpc2FibGVkXT1cImJ0blN1Ym1pdERpc2FibGVkXCJcbiAgICAgICAgICAgICAgW2ZnXT1cImZvcm1GaWx0ZXJcIlxuICAgICAgICAgICAgICBbaWNvbkJ1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2xvYWRlcl09XCJsb2FkZXJcIlxuICAgICAgICAgICAgICBpY29uPVwic2VhcmNoXCI+XG4gICAgICAgICAgICA8L2tvYWxhLXN1Ym1pdD5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZmlsdGVyRm9ybUNvbmZpZy5hZHZhbmNlZFwiIFtuZ0NsYXNzXT1cInsnc2hvdyc6IHNob3dBZHZhbmNlZEZpbHRlcn1cIiBjbGFzcz1cImFkdmFuY2VkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmlsdGVyXCI+XG4gICAgICAgICAgPGtvYWxhLWR5bmFtaWMtZm9ybVxuICAgICAgICAgICAgW2Zvcm1dPVwiZmlsdGVyRm9ybUNvbmZpZy5hZHZhbmNlZC5mb3JtXCJcbiAgICAgICAgICAgIFtmb3JtQ29uZmlnXT1cImZpbHRlckZvcm1Db25maWcuYWR2YW5jZWQuZm9ybUNvbmZpZ1wiXG4gICAgICAgICAgICBbc2V0VmFsdWVzXT1cImZpbHRlckZvcm1Db25maWcuYWR2YW5jZWQuc2V0VmFsdWVzXCJcbiAgICAgICAgICAgIFtzaG93RmllbGRzXT1cImZpbHRlckZvcm1Db25maWcuYWR2YW5jZWQuc2hvd0ZpZWxkc1wiPlxuICAgICAgICAgIDwva29hbGEtZHluYW1pYy1mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG4gIDxuYXYgY2xhc3M9XCJtZW51LWxpc3RcIj5cbiAgICA8dWwgY2xhc3M9XCJtZW51XCI+XG4gICAgICA8bGkgKm5nSWY9XCJzZWxlY3Rpb24uaGFzVmFsdWUoKVwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaXRlbXNTZWxlY3RMaXN0XVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgKm5nSWY9XCJzZWxlY3Rpb24uaGFzVmFsdWUoKVwiIGNsYXNzPVwidGV4dC1jZW50ZXJcIj58PC9saT5cbiAgICAgIDxsaT5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2l0ZW1zTGlzdF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvbmF2PlxuICA8ZGl2ICpuZ0lmPVwibG9hZGVyIHwgYXN5bmNcIiBjbGFzcz1cInNwaW5uZXItY29udGFpbmVyXCIgW25nQ2xhc3NdPVwie1xuICAgICduby1maWx0ZXInOiAhZmlsdGVyRm9ybUNvbmZpZ1xuICB9XCI+XG4gICAgPG1hdC1zcGlubmVyIGNvbG9yPVwicHJpbWFyeVwiIGRpYW1ldGVyPVwiNDBcIj48L21hdC1zcGlubmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxpc3RcIj5cbiAgICA8dGFibGVcbiAgICAgICpuZ0lmPVwiIWVtcHR5TGlzdENvbXBvbmVudCB8fCAoZW1wdHlMaXN0Q29tcG9uZW50ICYmIGRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA+IDApIGVsc2UgZW1wdHlMaXN0XCJcbiAgICAgIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgICAgW21hdFNvcnRBY3RpdmVdPVwiY29sdW1uU29ydFwiXG4gICAgICBbaWRdPVwidGFibGVJZFwiXG4gICAgICBtdWx0aVRlbXBsYXRlRGF0YVJvd3NcbiAgICAgIGNsYXNzPVwidGFibGUtaG92ZXJcIlxuICAgICAgbWF0LXRhYmxlXG4gICAgICBtYXRTb3J0XG4gICAgICBbbWF0U29ydERpcmVjdGlvbl09XCJzb3J0RGlyZWN0aW9uXCIgbWF0U29ydERpc2FibGVDbGVhcj5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XG4gICAgICAgIDx0aCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyLWNlbGw+XG4gICAgICAgICAgPG1hdC1jaGVja2JveCAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdEFsbCgpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiBhbGxTZWxlY3RlZCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiAhKGFsbFNlbGVjdGVkJCB8IGFzeW5jKVwiPlxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGQgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIG1hdC1jZWxsPlxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggKm5nSWY9XCJkaXNhYmxlZENoZWNrYm94SXRlbUxpc3QgPyAhZGlzYWJsZWRDaGVja2JveEl0ZW1MaXN0KGl0ZW0pIDogdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbi50b2dnbGUoaXRlbSkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHNlbGVjdEl0ZW0oKTtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQoaXRlbSlcIj5cbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICptYXRGb290ZXJDZWxsRGVmIG1hdC1mb290ZXItY2VsbD48L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJMaXN0Q29uZmlnICYmIGJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZ1wiIG1hdENvbHVtbkRlZj1cImNvbGxhcHNlQnV0dG9uXCI+XG4gICAgICAgIDx0aCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyLWNlbGw+PC90aD5cbiAgICAgICAgPHRkICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBtYXQtY2VsbD5cbiAgICAgICAgICA8a29hbGEtYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZy5zaG93KGl0ZW0pXCJcbiAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRlZEVsZW1lbnQgPSBleHBhbmRlZEVsZW1lbnQgPT09IGl0ZW0gPyBudWxsIDogaXRlbVwiXG4gICAgICAgICAgICBba29hbGFJY29uXT1cImJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZy5rb2FsYUljb25cIlxuICAgICAgICAgICAgW2ljb25dPVwiYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnLmljb25cIlxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnLnRvb2x0aXBcIlxuICAgICAgICAgICAgW2NvbG9yXT1cImJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZy5pY29uQ29sb3JcIlxuICAgICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCJidG5Db2xsYXBzZVN1Ykxpc3RDb25maWcuYmFja2dyb3VuZENvbG9yXCJcbiAgICAgICAgICAgIFtrb2FsYUljb25TaXplXT1cIjIyXCI+XG4gICAgICAgICAgPC9rb2FsYS1idXR0b24+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbWF0Rm9vdGVyQ2VsbERlZiBtYXQtZm9vdGVyLWNlbGw+PC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtTGlzdCBvZiBpdGVtc0xpc3RcIiBbbWF0Q29sdW1uRGVmXT1cIml0ZW1MaXN0LmNvbHVtbkRlZlwiPlxuICAgICAgICA8dGggKm1hdEhlYWRlckNlbGxEZWYgW21hdC1zb3J0LWhlYWRlcl09XCJpdGVtTGlzdC5zb3J0SGVhZGVyXCIgW2Rpc2FibGVkXT1cIiFpdGVtTGlzdC5zb3J0SGVhZGVyXCIgbWF0LWhlYWRlci1jZWxsPnt7aXRlbUxpc3QubGFiZWx9fTwvdGg+XG4gICAgICAgIDx0ZCAoZGJsY2xpY2spPVwiaXRlbUxpc3QuZGJsQ2xpY2soaXRlbSlcIiAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgbWF0LWNlbGw+XG5cdCAgICAgICAgPGtvYWxhLWR5bmFtaWMtY29tcG9uZW50ICpuZ0lmPVwiaXRlbUxpc3QuaXRlbUNvbXBvbmVudCBlbHNlIGl0ZW1UZXh0XCJcblx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2R5bmFtaWNDb21wb25lbnRdPVwiaXRlbUxpc3QuaXRlbUNvbXBvbmVudChpdGVtKVwiPjwva29hbGEtZHluYW1pYy1jb21wb25lbnQ+XG5cdCAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtVGV4dD5cblx0ICAgICAgICAgIHt7aXRlbUxpc3QuaXRlbU5hbWVQcm9wZXJ0eShpdGVtKX19XG5cdCAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICptYXRGb290ZXJDZWxsRGVmIG1hdC1mb290ZXItY2VsbD5cbiAgICAgICAgICA8a29hbGEtZHluYW1pYy1jb21wb25lbnQgKm5nSWY9XCJpdGVtTGlzdC5mb290ZXI/Lml0ZW1Db21wb25lbnQgZWxzZSBpdGVtRm9vdGVyVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkeW5hbWljQ29tcG9uZW50XT1cIml0ZW1MaXN0LmZvb3Rlcj8uaXRlbUNvbXBvbmVudChyZXNwb25zZVJlcXVlc3QpXCI+PC9rb2FsYS1keW5hbWljLWNvbXBvbmVudD5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2l0ZW1Gb290ZXJUZXh0PlxuICAgICAgICAgICAge3tpdGVtTGlzdC5mb290ZXI/Lml0ZW1OYW1lUHJvcGVydHkocmVzcG9uc2VSZXF1ZXN0KX19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3ViTGlzdENvbmZpZyAmJiBidG5Db2xsYXBzZVN1Ykxpc3RDb25maWdcIiBtYXRDb2x1bW5EZWY9XCJrb2FsYUxpc3REZXRhaWxzXCI+XG4gICAgICAgIDx0aCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtaGVhZGVyLWNlbGw+PC90aD5cbiAgICAgICAgPHRkICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnNUb1Nob3dJbkxpc3QubGVuZ3RoXCIgbWF0LWNlbGw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tZGV0YWlsXCIgW0BkZXRhaWxFeHBhbmRdPVwiaXRlbSA9PSBleHBhbmRlZEVsZW1lbnQgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCdcIj5cbiAgICAgICAgICAgIDxrb2FsYS1saXN0IFtjb25maWddPVwic3ViTGlzdENvbmZpZyhpdGVtKVwiPjwva29hbGEtbGlzdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICptYXRGb290ZXJDZWxsRGVmIG1hdC1mb290ZXItY2VsbD48L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwib3B0aW9uc1wiPlxuICAgICAgICA8dGggKm1hdEhlYWRlckNlbGxEZWYgbWF0LWhlYWRlci1jZWxsPjwvdGg+XG4gICAgICAgIDx0ZCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgbWF0LWNlbGw+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImhhdmVPcHRpb25zT25JdGVtTGluZShpdGVtKVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwib3B0aW9uc1wiIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPSdtYXRlcmlhbC1pY29ucyc+bW9yZV92ZXJ0PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8bWF0LW1lbnUgI29wdGlvbnM9XCJtYXRNZW51XCIgY2xhc3M9XCJtZW51LWxpc3RcIiB5UG9zaXRpb249XCJiZWxvd1wiPlxuXHQgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaXRlbXNNZW51TGlzdE9wdGlvbnNcIj5cblx0ICAgICAgICAgICAgICA8YnV0dG9uXG5cdFx0ICAgICAgICAgICAgICAoY2xpY2spPVwib3B0aW9uLmFjdGlvbihpdGVtKVwiXG5cdFx0ICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi5oYXZlUGVybWlzc2lvbiAmJiAoXG5cdFx0ICAgICAgICAgICAgICAgICFvcHRpb24uc2hvd0J5SXRlbUxpc3QgfHxcblx0XHQgICAgICAgICAgICAgICAgb3B0aW9uLnNob3dCeUl0ZW1MaXN0KGl0ZW0pXG5cdCAgICAgICAgICAgICAgICApXCJcblx0XHQgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW0+XG5cdCAgICAgICAgICAgICAgICA8bWF0LWljb24+e3tvcHRpb24uaWNvbn19PC9tYXQtaWNvbj5cblx0ICAgICAgICAgICAgICAgIDxzcGFuPnt7b3B0aW9uLm5hbWV9fTwvc3Bhbj5cblx0ICAgICAgICAgICAgICA8L2J1dHRvbj5cblx0ICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm1hdEZvb3RlckNlbGxEZWYgbWF0LWZvb3Rlci1jZWxsPjwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyICptYXRIZWFkZXJSb3dEZWY9XCJjb2x1bW5zVG9TaG93SW5MaXN0OyBzdGlja3k6IHRydWVcIiBtYXQtaGVhZGVyLXJvdz48L3RyPlxuICAgICAgPHRyICptYXRSb3dEZWY9XCJsZXQgaXRlbTsgY29sdW1uczogY29sdW1uc1RvU2hvd0luTGlzdDtcIiBtYXQtcm93PjwvdHI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3ViTGlzdENvbmZpZyAmJiBidG5Db2xsYXBzZVN1Ykxpc3RDb25maWdcIj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsna29hbGFMaXN0RGV0YWlscyddXCIgY2xhc3M9XCJpdGVtLWRldGFpbC1yb3dcIj48L3RyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRm9vdGVyKClcIj5cbiAgICAgICAgPHRyICptYXRGb290ZXJSb3dEZWY9XCJjb2x1bW5zVG9TaG93SW5MaXN0OyBzdGlja3k6IHRydWVcIiBtYXQtZm9vdGVyLXJvdz48L3RyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90YWJsZT5cbiAgICA8bmctdGVtcGxhdGUgI2VtcHR5TGlzdD5cbiAgICAgIDxrb2FsYS1keW5hbWljLWNvbXBvbmVudCAqbmdJZj1cIiEoZmlsdGVyRXJyb3IkIHwgYXN5bmMpIGVsc2UgZXJyb3JMaXN0XCIgW2R5bmFtaWNDb21wb25lbnRdPVwiZW1wdHlMaXN0Q29tcG9uZW50XCI+PC9rb2FsYS1keW5hbWljLWNvbXBvbmVudD5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZXJyb3JMaXN0PlxuICAgICAgICA8a29hbGEtZHluYW1pYy1jb21wb25lbnQgW2R5bmFtaWNDb21wb25lbnRdPVwiZXJyb3JMaXN0Q29tcG9uZW50XCI+PC9rb2FsYS1keW5hbWljLWNvbXBvbmVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhaGlkZVBhZ2luYXRvclwiIGNsYXNzPVwiY29udGVudC1wYWdpbmF0b3JcIj5cbiAgICA8bWF0LXBhZ2luYXRvclxuICAgICAgW2xlbmd0aF09XCJxdGRMaXN0UmVzdWx0XCJcbiAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwibGltaXRPcHRpb25zXCJcbiAgICAgIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiXG4gICAgICBzaG93Rmlyc3RMYXN0QnV0dG9ucz5cbiAgICA8L21hdC1wYWdpbmF0b3I+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0L3NyYy9saWIvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9saXN0L3NyYy9saWIvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFlLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS25ELE9BQU8sRUFBRSxPQUFPLEVBQWlCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlakYsTUFBTSxPQUFPLGFBQWMsU0FBUSxZQUFZO0lBNEI3QyxZQUNVLEVBQWUsRUFDZixrQkFBMkMsRUFDM0MsYUFBb0M7UUFFNUMsS0FBSyxDQUNILEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLElBQUksVUFBVSxFQUFPLEVBQ25ELENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQztZQUNoQyxJ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Q0FBQyxDQUFDOzRCQUMxRCxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDOzRCQUN2QyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7eUJBQ3RGLENBQUM7cUJBQ0g7NEtBR2UsTUFBTTtzQkFBckIsS0FBSztnQkFFNkIsU0FBUztzQkFBM0MsU0FBUzt1QkFBQyxZQUFZO2dCQUN3QixJQUFJO3NCQUFsRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdEFic3RyYWN0IH0gZnJvbSAnLi9saXN0LmFic3RyYWN0JztcbmltcG9ydCB7IEtvYWxhTGlzdEl0ZW1NZW51T3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi9rb2FsYS1saXN0LWl0ZW0tbWVudS1vcHRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBLb2FsYUxpc3RGaWx0ZXJJbnRlcmZhY2UgfSBmcm9tICcuL2tvYWxhLWxpc3QtZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLb2FsYUR5bmFtaWNGb3JtU2VydmljZSB9IGZyb20gJ0Brb2FsYXJ4L3VpL2Zvcm0nO1xuaW1wb3J0IHsgS29hbGFMaXN0SXRlbUludGVyZmFjZSB9IGZyb20gJy4va29hbGEtbGlzdC1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLb2FsYUxpc3RGb3JtRmlsdGVySW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEtbGlzdC1mb3JtLWZpbHRlci5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnREaXJlY3Rpb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydFwiO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tIFwiQGtvYWxhcngvdXRpbHMvb3BlcmF0b3JzL2RlbGF5XCI7XG5pbXBvcnQgeyBrb2FsYSB9IGZyb20gXCJAa29hbGFyeC91dGlsc1wiO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSBcIm5neC1kZXZpY2UtZGV0ZWN0b3JcIjtcbmltcG9ydCB7IEtvYWxhTGlzdENvbmZpZ0ludGVyZmFjZSB9IGZyb20gXCIuL2tvYWxhLmxpc3QtY29uZmlnLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvclwiO1xuaW1wb3J0IHsgS29hbGFMaXN0QnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnSW50ZXJmYWNlIH0gZnJvbSBcIi4va29hbGEtbGlzdC1idG4tY29sbGFwc2Utc3ViLWxpc3QtY29uZmlnLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna29hbGEtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydsaXN0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdkZXRhaWxFeHBhbmQnLCBbXG4gICAgICBzdGF0ZSgnY29sbGFwc2VkJywgc3R5bGUoe2hlaWdodDogJzBweCcsIG1pbkhlaWdodDogJzAnfSkpLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoe2hlaWdodDogJyonfSkpLFxuICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPD0+IGNvbGxhcHNlZCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlzdENvbXBvbmVudCBleHRlbmRzIExpc3RBYnN0cmFjdCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHVibGljIGNvbmZpZz86IEtvYWxhTGlzdENvbmZpZ0ludGVyZmFjZTtcblxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcHJvdGVjdGVkIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuICBAVmlld0NoaWxkKE1hdFNvcnQsIHtzdGF0aWM6IGZhbHNlfSkgcHJvdGVjdGVkIHNvcnQ6IE1hdFNvcnQ7XG5cbiAgcHVibGljIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBwdWJsaWMgY29sdW1uc1RvU2hvd0luTGlzdD86IHN0cmluZ1tdO1xuICBwdWJsaWMgaGlkZVBhZ2luYXRvcj86IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGNvbHVtblNvcnQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBzb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uID0gJ2FzYyc7XG4gIHB1YmxpYyBpdGVtc01lbnVMaXN0T3B0aW9ucz86IEtvYWxhTGlzdEl0ZW1NZW51T3B0aW9uSW50ZXJmYWNlPGFueT5bXTtcbiAgcHVibGljIGl0ZW1zTGlzdD86IEtvYWxhTGlzdEl0ZW1JbnRlcmZhY2U8YW55PltdO1xuICBwdWJsaWMgcmVxdWVzdD86IE9ic2VydmFibGU8YW55PjtcbiAgcHVibGljIHJlc3BvbnNlSW5kZXhOYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgcmVzcG9uc2VRdGRSZXN1bHRJbmRleE5hbWU/OiAocmVzcG9uc2U6IGFueSkgPT4gbnVtYmVyO1xuICBwdWJsaWMgcmVzcG9uc2VSZXF1ZXN0PzogYW55O1xuICBwdWJsaWMgdHlwZVJlcXVlc3Q6ICdhbGwnIHwgJ29uRGVtYW5kJyA9ICdhbGwnXG4gIHB1YmxpYyBmaWx0ZXJGb3JtQ29uZmlnPzogS29hbGFMaXN0RmlsdGVySW50ZXJmYWNlO1xuICBwdWJsaWMgcmVsb2FkPzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICBwdWJsaWMgZm9ybUZpbHRlcj86IEZvcm1Hcm91cDtcbiAgcHVibGljIHNob3dBZHZhbmNlZEZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgcXRkTGlzdFJlc3VsdCA9IDA7XG4gIHB1YmxpYyBkaXNhYmxlZENoZWNrYm94SXRlbUxpc3Q/OiAoaXRlbTogYW55KSA9PiBib29sZWFuO1xuICBwdWJsaWMgZXhwYW5kZWRFbGVtZW50ID0gZmFsc2U7XG4gIHB1YmxpYyBidG5Db2xsYXBzZVN1Ykxpc3RDb25maWc/OiBLb2FsYUxpc3RCdG5Db2xsYXBzZVN1Ykxpc3RDb25maWdJbnRlcmZhY2U8YW55PjtcbiAgcHVibGljIHN1Ykxpc3RDb25maWc/OiAoaXRlbTogYW55KSA9PiBLb2FsYUxpc3RDb25maWdJbnRlcmZhY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBkeW5hbWljRm9ybVNlcnZpY2U6IEtvYWxhRHluYW1pY0Zvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgZGV2aWNlU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgKCkgPT4gdGhpcy5jb25maWc/LnJlcXVlc3QgPz8gbmV3IE9ic2VydmFibGU8YW55PigpLFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMucmVzcG9uc2VSZXF1ZXN0ID0gcmVzcG9uc2U7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5jb25maWc/LnJlc3BvbnNlSW5kZXhOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAodGhpcy5jb25maWcucmVzcG9uc2VJbmRleE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHJlc3BvbnNlW3RoaXMuY29uZmlnLnJlc3BvbnNlSW5kZXhOYW1lXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW10pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByZXNwb25zZTtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnPy5nZXREYXRhU291cmNlKSB0aGlzLmNvbmZpZz8uZ2V0RGF0YVNvdXJjZSh0aGlzLmRhdGFTb3VyY2UuZGF0YSk7XG4gICAgICAgIHRoaXMucXRkTGlzdFJlc3VsdCA9IHRoaXMuY29uZmlnPy5yZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuY29uZmlnLnJlc3BvbnNlUXRkUmVzdWx0SW5kZXhOYW1lKHJlc3BvbnNlKSA/PyAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5kYXRhU291cmNlLmRhdGE/Lmxlbmd0aCA/PyAwO1xuICAgICAgfSxcbiAgICAgICgpID0+IHRoaXMuZm9ybUZpbHRlciA/PyBmYi5ncm91cCh7fSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0Q29uZmlnKCk7XG4gICAgdGhpcy5mb3JtRmlsdGVyID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBmb3JtU2VhcmNoOiB0aGlzLmZpbHRlckZvcm1Db25maWc/Lm1haW4/LmZvcm0gPz8gWycnXSxcbiAgICAgIGZvcm1BZHZhbmNlZFNlYXJjaDogdGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5hZHZhbmNlZD8uZm9ybSA/PyBbJyddXG4gICAgfSk7XG4gICAgdGhpcy5sb2FkaW5nKHRydWUpO1xuICAgIGlmICh0aGlzLmZpbHRlckZvcm1Db25maWcpIHtcbiAgICAgIHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8ubWFpbj8uZm9ybUNvbmZpZz8ubWFwKGl0ZW0gPT4ge1xuICAgICAgICBpdGVtLmNsYXNzICs9ICcgcGFkZGluZy1ub25lIHctOTknO1xuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5hZHZhbmNlZD8uZm9ybUNvbmZpZz8ubWFwKGl0ZW0gPT4ge1xuICAgICAgICBpdGVtLmNsYXNzICs9ICcgcGFkZGluZy1ub25lJztcbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLmZpbHRlckZvcm1Db25maWc/LmNoZWNrQW5kU2VhcmNoKSB7XG4gICAgICAgIHRoaXMuZm9ybUZpbHRlci5hZGRDb250cm9sKHRoaXMuZmlsdGVyRm9ybUNvbmZpZy5jaGVja0FuZFNlYXJjaC5mb3JtQ29udHJvbE5hbWUsIG5ldyBGb3JtQ29udHJvbCh0aGlzLmZpbHRlckZvcm1Db25maWcuY2hlY2tBbmRTZWFyY2guaXNDaGVja2VkID8/IGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnLmdldFNlbGVjdGlvbkxpc3QpIHRoaXMuY29uZmlnLmdldFNlbGVjdGlvbkxpc3QodGhpcy5zZWxlY3Rpb24pO1xuXG4gICAgaWYgKHRoaXMucmVsb2FkKSB7XG4gICAgICB0aGlzLnJlbG9hZC5zdWJzY3JpYmUoYXN5bmMgcmVsb2FkID0+IHtcbiAgICAgICAgaWYgKHJlbG9hZCkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZmlsdGVyU3VibWl0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm9uRGVzdHJveSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLmFmdGVyVmlld0luaXQoKS50aGVuKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZmlsdGVyU3VibWl0KCkge1xuICAgIHRoaXMuc2hvd0FkdmFuY2VkRmlsdGVyID0gZmFsc2U7XG4gICAgYXdhaXQgZGVsYXkoMSk7XG4gICAgbGV0IGRhZG9zID0ga29hbGEoXG4gICAgICB0aGlzLmZpbHRlckZvcm1Db25maWc/Lm1haW4/LmZvcm1cbiAgICAgID8gdGhpcy5keW5hbWljRm9ybVNlcnZpY2UuZW1pdERhdGEodGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5tYWluPy5mb3JtKVxuICAgICAgOiB7fVxuICAgIClcbiAgICAgIC5vYmplY3QoKVxuICAgICAgLm1lcmdlKFxuICAgICAgICB0aGlzLmZpbHRlckZvcm1Db25maWc/LmFkdmFuY2VkPy5mb3JtXG4gICAgICAgID8gdGhpcy5keW5hbWljRm9ybVNlcnZpY2UuZW1pdERhdGEodGhpcy5maWx0ZXJGb3JtQ29uZmlnPy5hZHZhbmNlZD8uZm9ybSlcbiAgICAgICAgOiB7fSlcbiAgICAgIC5nZXRWYWx1ZSgpO1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyRm9ybUNvbmZpZz8uY2hlY2tBbmRTZWFyY2gpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xOYW1lID0gdGhpcy5maWx0ZXJGb3JtQ29uZmlnLmNoZWNrQW5kU2VhcmNoLmZvcm1Db250cm9sTmFtZTtcbiAgICAgIGRhZG9zW2NvbnRyb2xOYW1lXSA9IHRoaXMuZm9ybUZpbHRlci5nZXQoY29udHJvbE5hbWUpLnZhbHVlO1xuICAgIH1cbiAgICBhd2FpdCBzdXBlci5zZWFyY2goZGFkb3MpO1xuICB9XG5cbiAgcHVibGljIHRvb2dsZUZpbHRlcigpIHtcbiAgICB0aGlzLnNob3dBZHZhbmNlZEZpbHRlciA9ICF0aGlzLnNob3dBZHZhbmNlZEZpbHRlcjtcbiAgfVxuXG4gIHB1YmxpYyBoYXZlT3B0aW9uc09uSXRlbUxpbmUoaXRlbTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXNNZW51TGlzdE9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24uaGF2ZVBlcm1pc3Npb24gJiYgKFxuICAgICAgIW9wdGlvbi5zaG93QnlJdGVtTGlzdCB8fFxuICAgICAgb3B0aW9uLnNob3dCeUl0ZW1MaXN0KGl0ZW0pXG4gICAgKSkubGVuZ3RoID4gMFxuICB9XG5cbiAgcHVibGljIGhhc0Zvb3RlcigpIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zTGlzdC5maW5kKGl0ZW0gPT4gISFpdGVtLmZvb3Rlcik7XG4gIH1cblxuICBwcml2YXRlIGluaXRDb25maWcoKSB7XG4gICAgdGhpcy5jb2x1bW5Tb3J0ID0gdGhpcy5jb25maWcuY29sdW1uU29ydCA/PyBudWxsO1xuICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IHRoaXMuY29uZmlnLnNvcnREaXJlY3Rpb24gPz8gJ2FzYyc7XG4gICAgdGhpcy5pdGVtc01lbnVMaXN0T3B0aW9ucyA9IHRoaXMuY29uZmlnLml0ZW1zTWVudUxpc3RPcHRpb25zID8/IFtdO1xuICAgIHRoaXMudHlwZVJlcXVlc3QgPSB0aGlzLmNvbmZpZy50eXBlUmVxdWVzdCA/PyAnYWxsJztcbiAgICB0aGlzLnF0ZExpc3RSZXN1bHQgPSB0aGlzLmNvbmZpZy5xdGRMaXN0UmVzdWx0ID8/IDA7XG4gICAgdGhpcy5jb2x1bW5zVG9TaG93SW5MaXN0ID0gdGhpcy5jb25maWcuY29sdW1uc1RvU2hvd0luTGlzdDtcbiAgICB0aGlzLml0ZW1zTGlzdCA9IHRoaXMuY29uZmlnLml0ZW1zTGlzdC5tYXAoaXRlbSA9PiB7XG4gICAgICBpZiAoIWl0ZW0uZGJsQ2xpY2spIHtcbiAgICAgICAgaXRlbS5kYmxDbGljayA9ICgpID0+IHtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH0pO1xuICAgIHRoaXMuc2hvd0FkdmFuY2VkRmlsdGVyID0gdGhpcy5jb25maWcuc2hvd0FkdmFuY2VkRmlsdGVyO1xuICAgIHRoaXMuZmlsdGVyRm9ybUNvbmZpZyA9IHRoaXMuY29uZmlnLmZpbHRlckZvcm1Db25maWc7XG4gICAgdGhpcy5yZXF1ZXN0ID0gdGhpcy5jb25maWcucmVxdWVzdDtcbiAgICB0aGlzLnJlbG9hZCA9IHRoaXMuY29uZmlnLnJlbG9hZDtcbiAgICB0aGlzLnJlc3BvbnNlSW5kZXhOYW1lID0gdGhpcy5jb25maWcucmVzcG9uc2VJbmRleE5hbWU7XG4gICAgdGhpcy5yZXNwb25zZVF0ZFJlc3VsdEluZGV4TmFtZSA9IHRoaXMuY29uZmlnLnJlc3BvbnNlUXRkUmVzdWx0SW5kZXhOYW1lO1xuICAgIHRoaXMuZmlsdGVyUGFyYW1zID0gdGhpcy5jb25maWcuZmlsdGVyUGFyYW1zID8/IG5ldyBCZWhhdmlvclN1YmplY3Q8S29hbGFMaXN0Rm9ybUZpbHRlckludGVyZmFjZT4obnVsbCk7XG4gICAgdGhpcy5lbXB0eUxpc3RDb21wb25lbnQgPSB0aGlzLmNvbmZpZy5lbXB0eUxpc3RDb21wb25lbnQ7XG4gICAgdGhpcy5lcnJvckxpc3RDb21wb25lbnQgPSB0aGlzLmNvbmZpZy5lcnJvckxpc3RDb21wb25lbnQ7XG4gICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuY29uZmlnLnBhZ2VTaXplID8/IDMwO1xuICAgIHRoaXMuZGlzYWJsZWRDaGVja2JveEl0ZW1MaXN0ID0gdGhpcy5jb25maWcuZGlzYWJsZWRDaGVja2JveEl0ZW1MaXN0O1xuICAgIHRoaXMuc3ViTGlzdENvbmZpZyA9IHRoaXMuY29uZmlnLnN1Ykxpc3RDb25maWc7XG4gICAgdGhpcy5idG5Db2xsYXBzZVN1Ykxpc3RDb25maWcgPSB0aGlzLmNvbmZpZy5idG5Db2xsYXBzZVN1Ykxpc3RDb25maWc7XG4gICAgdGhpcy5oaWRlUGFnaW5hdG9yID0gdGhpcy5jb25maWcuaGlkZVBhZ2luYXRvcjtcbiAgICB0aGlzLmN1c3RvbUNsYXNzID0gdGhpcy5jb25maWcuY3VzdG9tQ2xhc3M7XG4gICAgdGhpcy5saW1pdE9wdGlvbnMgPSB0aGlzLmNvbmZpZy5saW1pdE9wdGlvbnMgPz8gdGhpcy5saW1pdE9wdGlvbnM7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsaXN0LWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImN1c3RvbUNsYXNzXCI+XG4gIDxkaXYgKm5nSWY9XCJmaWx0ZXJGb3JtQ29uZmlnXCIgY2xhc3M9XCJsaXN0LWZpbHRlclwiPlxuICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJmaWx0ZXJTdWJtaXQoKVwiIFtmb3JtR3JvdXBdPVwiZm9ybUZpbHRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1haW5cIj5cbiAgICAgICAgPGtvYWxhLWR5bmFtaWMtZm9ybVxuICAgICAgICAgICpuZ0lmPVwiZmlsdGVyRm9ybUNvbmZpZy5tYWluXCJcbiAgICAgICAgICBbZm9ybV09XCJmaWx0ZXJGb3JtQ29uZmlnLm1haW4uZm9ybVwiXG4gICAgICAgICAgW2Zvcm1Db25maWddPVwiZmlsdGVyRm9ybUNvbmZpZy5tYWluLmZvcm1Db25maWdcIlxuICAgICAgICAgIFtzZXRWYWx1ZXNdPVwiZmlsdGVyRm9ybUNvbmZpZy5tYWluLnNldFZhbHVlc1wiXG4gICAgICAgICAgW3Nob3dGaWVsZHNdPVwiZmlsdGVyRm9ybUNvbmZpZy5tYWluLnNob3dGaWVsZHNcIj5cbiAgICAgICAgPC9rb2FsYS1keW5hbWljLWZvcm0+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGkgKm5nSWY9XCJmaWx0ZXJGb3JtQ29uZmlnLmFkdmFuY2VkXCIgY2xhc3M9XCJvcHRpb25cIj5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInRvb2dsZUZpbHRlcigpXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWljb24tYnV0dG9uIG1hdFRvb2x0aXA9XCJGaWx0cm8gQXZhbsOnYWRvXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVsb3dcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj50dW5lPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpICpuZ0lmPVwiZmlsdGVyRm9ybUNvbmZpZy5jaGVja0FuZFNlYXJjaFwiIGNsYXNzPVwiY2hlY2tib3gtZmlsdGVyXCI+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCJmaWx0ZXJTdWJtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmlsdGVyRm9ybUNvbmZpZy5jaGVja0FuZFNlYXJjaC5mb3JtQ29udHJvbE5hbWVcIj5cbiAgICAgICAgICAgICAge3tmaWx0ZXJGb3JtQ29uZmlnLmNoZWNrQW5kU2VhcmNoLmxhYmVsfX1cbiAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPGxpIGNsYXNzPVwib3B0aW9uXCI+XG4gICAgICAgICAgICA8a29hbGEtc3VibWl0XG4gICAgICAgICAgICAgIFtidG5TdWJtaXREaXNhYmxlZF09XCJidG5TdWJtaXREaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFtmZ109XCJmb3JtRmlsdGVyXCJcbiAgICAgICAgICAgICAgW2ljb25CdXR0b25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtsb2FkZXJdPVwibG9hZGVyXCJcbiAgICAgICAgICAgICAgaWNvbj1cInNlYXJjaFwiPlxuICAgICAgICAgICAgPC9rb2FsYS1zdWJtaXQ+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImZpbHRlckZvcm1Db25maWcuYWR2YW5jZWRcIiBbbmdDbGFzc109XCJ7J3Nob3cnOiBzaG93QWR2YW5jZWRGaWx0ZXJ9XCIgY2xhc3M9XCJhZHZhbmNlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZpbHRlclwiPlxuICAgICAgICAgIDxrb2FsYS1keW5hbWljLWZvcm1cbiAgICAgICAgICAgIFtmb3JtXT1cImZpbHRlckZvcm1Db25maWcuYWR2YW5jZWQuZm9ybVwiXG4gICAgICAgICAgICBbZm9ybUNvbmZpZ109XCJmaWx0ZXJGb3JtQ29uZmlnLmFkdmFuY2VkLmZvcm1Db25maWdcIlxuICAgICAgICAgICAgW3NldFZhbHVlc109XCJmaWx0ZXJGb3JtQ29uZmlnLmFkdmFuY2VkLnNldFZhbHVlc1wiXG4gICAgICAgICAgICBbc2hvd0ZpZWxkc109XCJmaWx0ZXJGb3JtQ29uZmlnLmFkdmFuY2VkLnNob3dGaWVsZHNcIj5cbiAgICAgICAgICA8L2tvYWxhLWR5bmFtaWMtZm9ybT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIDwvZGl2PlxuICA8bmF2IGNsYXNzPVwibWVudS1saXN0XCI+XG4gICAgPHVsIGNsYXNzPVwibWVudVwiPlxuICAgICAgPGxpICpuZ0lmPVwic2VsZWN0aW9uLmhhc1ZhbHVlKClcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2l0ZW1zU2VsZWN0TGlzdF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2xpPlxuICAgICAgPGxpICpuZ0lmPVwic2VsZWN0aW9uLmhhc1ZhbHVlKClcIiBjbGFzcz1cInRleHQtY2VudGVyXCI+fDwvbGk+XG4gICAgICA8bGk+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpdGVtc0xpc3RdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25hdj5cbiAgPGRpdiAqbmdJZj1cImxvYWRlciB8IGFzeW5jXCIgY2xhc3M9XCJzcGlubmVyLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cIntcbiAgICAnbm8tZmlsdGVyJzogIWZpbHRlckZvcm1Db25maWdcbiAgfVwiPlxuICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIiBkaWFtZXRlcj1cIjQwXCI+PC9tYXQtc3Bpbm5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJsaXN0XCI+XG4gICAgPHRhYmxlXG4gICAgICAqbmdJZj1cIiFlbXB0eUxpc3RDb21wb25lbnQgfHwgKGVtcHR5TGlzdENvbXBvbmVudCAmJiBkYXRhU291cmNlPy5kYXRhPy5sZW5ndGggPiAwKSBlbHNlIGVtcHR5TGlzdFwiXG4gICAgICBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcbiAgICAgIFttYXRTb3J0QWN0aXZlXT1cImNvbHVtblNvcnRcIlxuICAgICAgW2lkXT1cInRhYmxlSWRcIlxuICAgICAgbXVsdGlUZW1wbGF0ZURhdGFSb3dzXG4gICAgICBjbGFzcz1cInRhYmxlLWhvdmVyXCJcbiAgICAgIG1hdC10YWJsZVxuICAgICAgbWF0U29ydFxuICAgICAgW21hdFNvcnREaXJlY3Rpb25dPVwic29ydERpcmVjdGlvblwiIG1hdFNvcnREaXNhYmxlQ2xlYXI+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNlbGVjdFwiPlxuICAgICAgICA8dGggKm1hdEhlYWRlckNlbGxEZWYgbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3RBbGwoKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgYWxsU2VsZWN0ZWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIShhbGxTZWxlY3RlZCQgfCBhc3luYylcIj5cbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRkICptYXRDZWxsRGVmPVwibGV0IGl0ZW1cIiBtYXQtY2VsbD5cbiAgICAgICAgICA8bWF0LWNoZWNrYm94ICpuZ0lmPVwiZGlzYWJsZWRDaGVja2JveEl0ZW1MaXN0ID8gIWRpc2FibGVkQ2hlY2tib3hJdGVtTGlzdChpdGVtKSA6IHRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24udG9nZ2xlKGl0ZW0pIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBzZWxlY3RJdGVtKCk7XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbi5pc1NlbGVjdGVkKGl0ZW0pXCI+XG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbWF0Rm9vdGVyQ2VsbERlZiBtYXQtZm9vdGVyLWNlbGw+PC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3ViTGlzdENvbmZpZyAmJiBidG5Db2xsYXBzZVN1Ykxpc3RDb25maWdcIiBtYXRDb2x1bW5EZWY9XCJjb2xsYXBzZUJ1dHRvblwiPlxuICAgICAgICA8dGggKm1hdEhlYWRlckNlbGxEZWYgbWF0LWhlYWRlci1jZWxsPjwvdGg+XG4gICAgICAgIDx0ZCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgbWF0LWNlbGw+XG4gICAgICAgICAgPGtvYWxhLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJidG5Db2xsYXBzZVN1Ykxpc3RDb25maWcuc2hvdyhpdGVtKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kZWRFbGVtZW50ID0gZXhwYW5kZWRFbGVtZW50ID09PSBpdGVtID8gbnVsbCA6IGl0ZW1cIlxuICAgICAgICAgICAgW2tvYWxhSWNvbl09XCJidG5Db2xsYXBzZVN1Ykxpc3RDb25maWcua29hbGFJY29uXCJcbiAgICAgICAgICAgIFtpY29uXT1cImJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZy5pY29uXCJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cImJ0bkNvbGxhcHNlU3ViTGlzdENvbmZpZy50b29sdGlwXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJidG5Db2xsYXBzZVN1Ykxpc3RDb25maWcuaWNvbkNvbG9yXCJcbiAgICAgICAgICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnLmJhY2tncm91bmRDb2xvclwiXG4gICAgICAgICAgICBba29hbGFJY29uU2l6ZV09XCIyMlwiPlxuICAgICAgICAgIDwva29hbGEtYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm1hdEZvb3RlckNlbGxEZWYgbWF0LWZvb3Rlci1jZWxsPjwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbUxpc3Qgb2YgaXRlbXNMaXN0XCIgW21hdENvbHVtbkRlZl09XCJpdGVtTGlzdC5jb2x1bW5EZWZcIj5cbiAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIFttYXQtc29ydC1oZWFkZXJdPVwiaXRlbUxpc3Quc29ydEhlYWRlclwiIFtkaXNhYmxlZF09XCIhaXRlbUxpc3Quc29ydEhlYWRlclwiIG1hdC1oZWFkZXItY2VsbD57e2l0ZW1MaXN0LmxhYmVsfX08L3RoPlxuICAgICAgICA8dGQgKGRibGNsaWNrKT1cIml0ZW1MaXN0LmRibENsaWNrKGl0ZW0pXCIgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIG1hdC1jZWxsPlxuXHQgICAgICAgIDxrb2FsYS1keW5hbWljLWNvbXBvbmVudCAqbmdJZj1cIml0ZW1MaXN0Lml0ZW1Db21wb25lbnQgZWxzZSBpdGVtVGV4dFwiXG5cdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkeW5hbWljQ29tcG9uZW50XT1cIml0ZW1MaXN0Lml0ZW1Db21wb25lbnQoaXRlbSlcIj48L2tvYWxhLWR5bmFtaWMtY29tcG9uZW50PlxuXHQgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbVRleHQ+XG5cdCAgICAgICAgICB7e2l0ZW1MaXN0Lml0ZW1OYW1lUHJvcGVydHkoaXRlbSl9fVxuXHQgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbWF0Rm9vdGVyQ2VsbERlZiBtYXQtZm9vdGVyLWNlbGw+XG4gICAgICAgICAgPGtvYWxhLWR5bmFtaWMtY29tcG9uZW50ICpuZ0lmPVwiaXRlbUxpc3QuZm9vdGVyPy5pdGVtQ29tcG9uZW50IGVsc2UgaXRlbUZvb3RlclRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZHluYW1pY0NvbXBvbmVudF09XCJpdGVtTGlzdC5mb290ZXI/Lml0ZW1Db21wb25lbnQocmVzcG9uc2VSZXF1ZXN0KVwiPjwva29hbGEtZHluYW1pYy1jb21wb25lbnQ+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtRm9vdGVyVGV4dD5cbiAgICAgICAgICAgIHt7aXRlbUxpc3QuZm9vdGVyPy5pdGVtTmFtZVByb3BlcnR5KHJlc3BvbnNlUmVxdWVzdCl9fVxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1Ykxpc3RDb25maWcgJiYgYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnXCIgbWF0Q29sdW1uRGVmPVwia29hbGFMaXN0RGV0YWlsc1wiPlxuICAgICAgICA8dGggKm1hdEhlYWRlckNlbGxEZWYgbWF0LWhlYWRlci1jZWxsPjwvdGg+XG4gICAgICAgIDx0ZCAqbWF0Q2VsbERlZj1cImxldCBpdGVtXCIgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5zVG9TaG93SW5MaXN0Lmxlbmd0aFwiIG1hdC1jZWxsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWRldGFpbFwiIFtAZGV0YWlsRXhwYW5kXT1cIml0ZW0gPT0gZXhwYW5kZWRFbGVtZW50ID8gJ2V4cGFuZGVkJyA6ICdjb2xsYXBzZWQnXCI+XG4gICAgICAgICAgICA8a29hbGEtbGlzdCBbY29uZmlnXT1cInN1Ykxpc3RDb25maWcoaXRlbSlcIj48L2tvYWxhLWxpc3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbWF0Rm9vdGVyQ2VsbERlZiBtYXQtZm9vdGVyLWNlbGw+PC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm9wdGlvbnNcIj5cbiAgICAgICAgPHRoICptYXRIZWFkZXJDZWxsRGVmIG1hdC1oZWFkZXItY2VsbD48L3RoPlxuICAgICAgICA8dGQgKm1hdENlbGxEZWY9XCJsZXQgaXRlbVwiIG1hdC1jZWxsPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXZlT3B0aW9uc09uSXRlbUxpbmUoaXRlbSlcIj5cbiAgICAgICAgICAgIDxidXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm9wdGlvbnNcIiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz0nbWF0ZXJpYWwtaWNvbnMnPm1vcmVfdmVydDwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG1hdC1tZW51ICNvcHRpb25zPVwibWF0TWVudVwiIGNsYXNzPVwibWVudS1saXN0XCIgeVBvc2l0aW9uPVwiYmVsb3dcIj5cblx0ICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGl0ZW1zTWVudUxpc3RPcHRpb25zXCI+XG5cdCAgICAgICAgICAgICAgPGJ1dHRvblxuXHRcdCAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbi5hY3Rpb24oaXRlbSlcIlxuXHRcdCAgICAgICAgICAgICAgKm5nSWY9XCJvcHRpb24uaGF2ZVBlcm1pc3Npb24gJiYgKFxuXHRcdCAgICAgICAgICAgICAgICAhb3B0aW9uLnNob3dCeUl0ZW1MaXN0IHx8XG5cdFx0ICAgICAgICAgICAgICAgIG9wdGlvbi5zaG93QnlJdGVtTGlzdChpdGVtKVxuXHQgICAgICAgICAgICAgICAgKVwiXG5cdFx0ICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtPlxuXHQgICAgICAgICAgICAgICAgPG1hdC1pY29uPnt7b3B0aW9uLmljb259fTwvbWF0LWljb24+XG5cdCAgICAgICAgICAgICAgICA8c3Bhbj57e29wdGlvbi5uYW1lfX08L3NwYW4+XG5cdCAgICAgICAgICAgICAgPC9idXR0b24+XG5cdCAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICptYXRGb290ZXJDZWxsRGVmIG1hdC1mb290ZXItY2VsbD48L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDx0ciAqbWF0SGVhZGVyUm93RGVmPVwiY29sdW1uc1RvU2hvd0luTGlzdDsgc3RpY2t5OiB0cnVlXCIgbWF0LWhlYWRlci1yb3c+PC90cj5cbiAgICAgIDx0ciAqbWF0Um93RGVmPVwibGV0IGl0ZW07IGNvbHVtbnM6IGNvbHVtbnNUb1Nob3dJbkxpc3Q7XCIgbWF0LXJvdz48L3RyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1Ykxpc3RDb25maWcgJiYgYnRuQ29sbGFwc2VTdWJMaXN0Q29uZmlnXCI+XG4gICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBbJ2tvYWxhTGlzdERldGFpbHMnXVwiIGNsYXNzPVwiaXRlbS1kZXRhaWwtcm93XCI+PC90cj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0Zvb3RlcigpXCI+XG4gICAgICAgIDx0ciAqbWF0Rm9vdGVyUm93RGVmPVwiY29sdW1uc1RvU2hvd0luTGlzdDsgc3RpY2t5OiB0cnVlXCIgbWF0LWZvb3Rlci1yb3c+PC90cj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdGFibGU+XG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eUxpc3Q+XG4gICAgICA8a29hbGEtZHluYW1pYy1jb21wb25lbnQgKm5nSWY9XCIhKGZpbHRlckVycm9yJCB8IGFzeW5jKSBlbHNlIGVycm9yTGlzdFwiIFtkeW5hbWljQ29tcG9uZW50XT1cImVtcHR5TGlzdENvbXBvbmVudFwiPjwva29hbGEtZHluYW1pYy1jb21wb25lbnQ+XG4gICAgICA8bmctdGVtcGxhdGUgI2Vycm9yTGlzdD5cbiAgICAgICAgPGtvYWxhLWR5bmFtaWMtY29tcG9uZW50IFtkeW5hbWljQ29tcG9uZW50XT1cImVycm9yTGlzdENvbXBvbmVudFwiPjwva29hbGEtZHluYW1pYy1jb21wb25lbnQ+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIWhpZGVQYWdpbmF0b3JcIiBjbGFzcz1cImNvbnRlbnQtcGFnaW5hdG9yXCI+XG4gICAgPG1hdC1wYWdpbmF0b3JcbiAgICAgIFtsZW5ndGhdPVwicXRkTGlzdFJlc3VsdFwiXG4gICAgICBbcGFnZVNpemVPcHRpb25zXT1cImxpbWl0T3B0aW9uc1wiXG4gICAgICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICAgICAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+XG4gICAgPC9tYXQtcGFnaW5hdG9yPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -160,6 +160,14 @@ class ListBuilder {
160
160
  this.config.reload = new BehaviorSubject(false);
161
161
  return this.config;
162
162
  }
163
+ setLimitOptions(options) {
164
+ this.config.limitOptions = options;
165
+ }
166
+ addLimitOption(limit) {
167
+ if (!this.config.limitOptions)
168
+ this.config.limitOptions = [10, 20, 30, 50, 100];
169
+ this.config.limitOptions.push(limit);
170
+ }
163
171
  }
164
172
 
165
173
  class KoalaListService {
@@ -445,7 +453,7 @@ class ListComponent extends ListAbstract {
445
453
  return !!this.itemsList.find(item => !!item.footer);
446
454
  }
447
455
  initConfig() {
448
- var _a, _b, _c, _d, _e, _f, _g;
456
+ var _a, _b, _c, _d, _e, _f, _g, _h;
449
457
  this.columnSort = (_a = this.config.columnSort) !== null && _a !== void 0 ? _a : null;
450
458
  this.sortDirection = (_b = this.config.sortDirection) !== null && _b !== void 0 ? _b : 'asc';
451
459
  this.itemsMenuListOptions = (_c = this.config.itemsMenuListOptions) !== null && _c !== void 0 ? _c : [];
@@ -474,6 +482,7 @@ class ListComponent extends ListAbstract {
474
482
  this.btnCollapseSubListConfig = this.config.btnCollapseSubListConfig;
475
483
  this.hidePaginator = this.config.hidePaginator;
476
484
  this.customClass = this.config.customClass;
485
+ this.limitOptions = (_h = this.config.limitOptions) !== null && _h !== void 0 ? _h : this.limitOptions;
477
486
  }
478
487
  }
479
488
  ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ListComponent, deps: [{ token: i1.FormBuilder }, { token: i2.KoalaDynamicFormService }, { token: i3.DeviceDetectorService }], target: i0.ɵɵFactoryTarget.Component });
@@ -1 +1 @@
1
- {"version":3,"file":"koalarx-ui-list.mjs","sources":["../../../projects/list/src/lib/providers/pagination/pagination.provider.ts","../../../projects/list/src/lib/list-builder/list.builder.ts","../../../projects/list/src/lib/koala.list.service.ts","../../../projects/list/src/lib/list.abstract.ts","../../../projects/list/src/lib/list.component.ts","../../../projects/list/src/lib/list.component.html","../../../projects/list/src/lib/koala.list.module.ts","../../../projects/list/src/koalarx-ui-list.ts"],"sourcesContent":["import { MatPaginatorIntl } from '@angular/material/paginator';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PaginationProvider extends MatPaginatorIntl {\n constructor() {\n super();\n this.getAndInitTranslations();\n }\n\n public getAndInitTranslations() {\n this.itemsPerPageLabel = \"Itens por Página\";\n this.firstPageLabel = \"Primeira Página\";\n this.nextPageLabel = \"Próxima Página\";\n this.previousPageLabel = \"Página Anterior\";\n this.lastPageLabel = \"Última Página\";\n this.changes.next();\n }\n\n public getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 / ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} / ${length}`;\n }\n}\n","import { KoalaListConfigInterface } from \"../koala.list-config.interface\";\nimport { KoalaListItemInterface } from \"../koala-list-item.interface\";\nimport { Type } from \"@angular/core\";\nimport { KoalaDynamicComponent } from \"@koalarx/ui/dynamic-component\";\nimport { KoalaListFilterInterface } from \"../koala-list-filter.interface\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { KoalaListFormFilterInterface } from \"../koala-list-form-filter.interface\";\nimport { KoalaListItemMenuOptionInterface } from \"../koala-list-item-menu-option.interface\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { KoalaListPageSize } from \"../list.abstract\";\nimport { first } from \"rxjs/operators\";\nimport { KoalaListBtnCollapseSubListConfigInterface } from \"../koala-list-btn-collapse-sub-list-config.interface\";\n\nexport class ListBuilder<DataType> {\n private config = {} as KoalaListConfigInterface;\n\n public service(\n service: (filter: BehaviorSubject<KoalaListFormFilterInterface>) => Observable<any> | Promise<any>,\n type: 'all' | 'onDemand' = \"all\",\n resultIndexName?: string,\n qtdResultIndexName?: string\n ) {\n this.config.typeRequest = type;\n this.config.responseIndexName = resultIndexName;\n this.config.responseQtdResultIndexName = response => response[qtdResultIndexName ?? ''] ?? [];\n this.config.columnSort = this.config?.filterParams?.getValue()?.sort;\n this.config.sortDirection = this.config?.filterParams?.getValue()?.order ?? 'asc';\n\n const response = service(this.config.filterParams ?? null);\n\n if (response instanceof Promise) {\n this.config.request = new Observable<any>(observe => {\n response.then(response => observe.next(response))\n .catch(error => observe.error(error));\n }).pipe(first());\n } else {\n this.config.request = new Observable<any>(observe => {\n (service(this.config.filterParams ?? null) as Observable<any>).pipe(first()).subscribe(observe);\n }).pipe(first());\n }\n\n return this;\n }\n\n public filterConfig(config: KoalaListFilterInterface) {\n this.config.filterFormConfig = config;\n return this;\n }\n\n public defaultFilter(config: KoalaListFormFilterInterface) {\n this.config.filterParams = new BehaviorSubject<KoalaListFormFilterInterface>(config);\n return this;\n }\n\n public pageSize(size: KoalaListPageSize) {\n this.config.pageSize = size;\n return this;\n }\n\n public columns(columns: string[]) {\n this.config.columnsToShowInList = columns;\n return this;\n }\n\n public itemColumn(item: KoalaListItemInterface<DataType>) {\n (this.config.itemsList?.length > 0) ?\n this.config.itemsList.push(item) :\n this.config.itemsList = [item];\n\n return this;\n }\n\n public actionList(item: KoalaListItemMenuOptionInterface<DataType>) {\n (this.config.itemsMenuListOptions?.length ?? 0 > 0) ?\n this.config.itemsMenuListOptions?.push(item) :\n this.config.itemsMenuListOptions = [item];\n\n return this;\n }\n\n public getDataSource(fn: (dataSource: DataType[]) => void) {\n this.config.getDataSource = fn;\n return this;\n }\n\n public getSelectionList(fn: (selection: SelectionModel<DataType>) => void) {\n this.config.getSelectionList = fn;\n return this;\n }\n\n public emptyListComponent(component: Type<any>, data?: any) {\n this.config.emptyListComponent = new KoalaDynamicComponent(component, data);\n return this;\n }\n\n public errorListComponent(component: Type<any>, data?: any) {\n this.config.errorListComponent = new KoalaDynamicComponent(component, data);\n return this;\n }\n\n public disableCheckboxItemList(fn: (item: DataType) => boolean) {\n this.config.disabledCheckboxItemList = fn;\n return this;\n }\n\n public setSubList(config: (item: DataType) => KoalaListConfigInterface) {\n this.config.subListConfig = config;\n return this;\n }\n\n public defineBtnCollapseSubListConfig(config: KoalaListBtnCollapseSubListConfigInterface<DataType>) {\n this.config.btnCollapseSubListConfig = config;\n return this;\n }\n\n public hidePaginator(hide: boolean = true) {\n this.config.hidePaginator = hide;\n return this;\n }\n\n public setCustomClass(className: string) {\n this.config.customClass = className;\n return this;\n }\n\n public getConfig(): KoalaListConfigInterface {\n this.config.reload = new BehaviorSubject<boolean>(false);\n return this.config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ListBuilder } from \"./list-builder/list.builder\";\n\n@Injectable({providedIn: \"any\"})\nexport class KoalaListService {\n\n public build<DataType>() {\n return new ListBuilder<DataType>();\n }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { BehaviorSubject, merge, Observable, Subscription } from 'rxjs';\nimport { FormAbstract } from '@koalarx/ui/form';\nimport { FormGroup } from '@angular/forms';\nimport { debounceTime, first, map, startWith, switchMap } from 'rxjs/operators';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { KoalaListFormFilterInterface } from './koala-list-form-filter.interface';\nimport { KoalaDynamicComponent } from \"@koalarx/ui/dynamic-component\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { KoalaListConfigInterface } from \"./koala.list-config.interface\";\nimport { randomString } from \"@koalarx/utils/operators/string\";\n\nexport type KoalaListPageSize = 10 | 20 | 30 | 50 | 100;\n\nexport abstract class ListAbstract extends FormAbstract {\n public selection = new SelectionModel<object>(true, []);\n public limitOptions: number[] = [10, 20, 30, 50, 100];\n public showMenuList: boolean = false;\n public allSelected$ = new BehaviorSubject<boolean>(false);\n public dataSource = new MatTableDataSource<any>([]);\n public typeRequest: 'all' | 'onDemand' = 'onDemand';\n public filterParams = new BehaviorSubject<KoalaListFormFilterInterface|null>(null);\n public filterError$ = new BehaviorSubject<any>(null);\n public emptyListComponent?: KoalaDynamicComponent;\n public errorListComponent?: KoalaDynamicComponent;\n public pageSize: KoalaListPageSize;\n public tableId = randomString(20, {uppercase: true, lowercase: true});\n\n protected config?: KoalaListConfigInterface;\n protected paginator?: MatPaginator;\n protected sort?: MatSort;\n\n private subscriptionList?: Subscription;\n private subscriptionSortList?: Subscription;\n private intervalSortList: any;\n\n protected constructor(\n private requestFunction: () => Observable<any>,\n private requestResponseFunction: <T>(results: T[]) => void,\n formSearch: () => FormGroup\n ) {\n super(formSearch);\n }\n\n public selectAll() {\n this.isAllSelected() ?\n this.selection.clear() :\n this.dataSource.data.forEach(item => {\n if (\n (this.config?.disabledCheckboxItemList && !this.config.disabledCheckboxItemList(item)) ||\n !this.config?.disabledCheckboxItemList\n ) {\n this.selection.select(item);\n }\n });\n\n this.isAllSelected();\n }\n\n public defineStatusSelectAll(status: boolean) {\n this.allSelected$.next(status);\n return this.allSelected$.getValue();\n }\n\n public selectItem() {\n setTimeout(() => {\n this.showMenuList = this.selection.hasValue();\n this.isAllSelected();\n }, 50);\n }\n\n public async search(filter?: any) {\n this.loading(true);\n this.selection.clear();\n if (this.paginator) {\n this.paginator.firstPage();\n }\n this.filterParams.next({\n params: filter,\n sort: this.sort?.active ?? '',\n order: this.sort?.direction ?? 'asc',\n page: this.paginator?.pageIndex ?? 0,\n limit: this.paginator?.pageSize ?? 30\n });\n }\n\n protected onDestroy() {\n this.subscriptionSortList?.unsubscribe();\n this.subscriptionList?.unsubscribe();\n clearInterval(this.intervalSortList);\n }\n\n protected async afterViewInit() {\n let tentativas = 0;\n let stop = false;\n do {\n tentativas++;\n await delay(400);\n if (this.sort || this.emptyListComponent) {\n this.prepareSearch().then();\n if (this.emptyListComponent) stop = true;\n } else if (tentativas > 10) {\n stop = true;\n }\n } while (!this.sort && !stop);\n }\n\n private async prepareSearch() {\n this.intervalSortList = setInterval(() => {\n if (this.sort && !this.subscriptionSortList) {\n this.subscriptionSortList = this.sort.sortChange.subscribe(() => {\n const filter = this.filterParams.value ?? {} as any;\n filter.sort = this.sort?.active ?? '';\n filter.order = this.sort?.direction ?? '';\n this.filterParams.next(filter);\n });\n } else if (!this.sort && this.subscriptionSortList) {\n this.subscriptionSortList.unsubscribe();\n }\n }, 50);\n\n if (this.typeRequest === 'onDemand') {\n this.subscriptionList = merge(this.paginator?.page ?? new Observable(), this.filterParams).pipe(\n startWith({}),\n switchMap(() => new Observable(observe => {\n this.loading(true);\n this.selection.clear();\n if (this.filterParams.value) {\n this.filterParams.value.sort = this.sort?.active ?? this.config?.columnSort ?? '';\n this.filterParams.value.order = this.sort?.direction ?? this.config?.sortDirection ?? '';\n this.filterParams.value.page = this.paginator?.pageIndex ?? 0;\n this.filterParams.value.limit = this.paginator?.pageSize ?? 30;\n }\n observe.next(true);\n })),\n debounceTime(300),\n switchMap(() => this.runRequestFunction()),\n map((response) => {\n this.loading(false);\n this.scrollTableToTop();\n return this.requestResponseFunction(response);\n })\n ).subscribe();\n } else {\n if (this.paginator) this.dataSource.paginator = this.paginator;\n this.subscriptionList = this.filterParams.pipe(\n startWith({}),\n debounceTime(300),\n switchMap(() => this.runRequestFunction()),\n map((response) => {\n this.loading(false);\n this.scrollTableToTop();\n return this.requestResponseFunction(response);\n })\n ).subscribe();\n }\n\n if (this.emptyListComponent) {\n do {\n await delay(301);\n if (this.sort) {\n if (this.typeRequest === \"onDemand\") {\n this.sort.sortChange.subscribe(() => {\n if (this.paginator) this.paginator.pageIndex = 0\n });\n } else {\n this.dataSource.sort = this.sort;\n }\n }\n } while (!this.sort);\n }\n }\n\n private isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = (this.config?.disabledCheckboxItemList ?\n this.dataSource.data.filter(item => !(this.config?.disabledCheckboxItemList\n ? this.config.disabledCheckboxItemList(item)\n : '')) :\n this.dataSource.data).length;\n\n return this.defineStatusSelectAll(numSelected === numRows);\n }\n\n private runRequestFunction() {\n return new Observable<unknown[]>(observe => {\n this.requestFunction().pipe(first()).subscribe({\n next: response => observe.next(response),\n error: err => {\n if (this.errorListComponent) {\n this.filterError$.next(err);\n this.errorListComponent.data = err;\n }\n this.loading(false);\n observe.next([]);\n }\n })\n })\n }\n\n private scrollTableToTop() {\n document.getElementById(this.tableId)?.parentElement?.scrollTo({top: 0});\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ListAbstract } from './list.abstract';\nimport { KoalaListItemMenuOptionInterface } from './koala-list-item-menu-option.interface';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { KoalaListFilterInterface } from './koala-list-filter.interface';\nimport { KoalaDynamicFormService } from '@koalarx/ui/form';\nimport { KoalaListItemInterface } from './koala-list-item.interface';\nimport { KoalaListFormFilterInterface } from \"./koala-list-form-filter.interface\";\nimport { MatSort, SortDirection } from \"@angular/material/sort\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { koala } from \"@koalarx/utils\";\nimport { DeviceDetectorService } from \"ngx-device-detector\";\nimport { KoalaListConfigInterface } from \"./koala.list-config.interface\";\nimport { MatPaginator } from \"@angular/material/paginator\";\nimport { KoalaListBtnCollapseSubListConfigInterface } from \"./koala-list-btn-collapse-sub-list-config.interface\";\nimport { animate, state, style, transition, trigger } from \"@angular/animations\";\n\n@Component({\n selector: 'koala-list',\n templateUrl: 'list.component.html',\n styleUrls: ['list.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({height: '0px', minHeight: '0'})),\n state('expanded', style({height: '*'})),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class ListComponent extends ListAbstract implements OnInit, AfterViewInit, OnDestroy {\n @Input() public config?: KoalaListConfigInterface;\n\n @ViewChild(MatPaginator) protected paginator: MatPaginator;\n @ViewChild(MatSort, {static: false}) protected sort: MatSort;\n\n public customClass?: string;\n public columnsToShowInList?: string[];\n public hidePaginator?: boolean = false;\n public columnSort?: string;\n public sortDirection: SortDirection = 'asc';\n public itemsMenuListOptions?: KoalaListItemMenuOptionInterface<any>[];\n public itemsList?: KoalaListItemInterface<any>[];\n public request?: Observable<any>;\n public responseIndexName?: string;\n public responseQtdResultIndexName?: (response: any) => number;\n public responseRequest?: any;\n public typeRequest: 'all' | 'onDemand' = 'all'\n public filterFormConfig?: KoalaListFilterInterface;\n public reload?: BehaviorSubject<boolean>;\n public formFilter?: FormGroup;\n public showAdvancedFilter: boolean = false;\n public qtdListResult = 0;\n public disabledCheckboxItemList?: (item: any) => boolean;\n public expandedElement = false;\n public btnCollapseSubListConfig?: KoalaListBtnCollapseSubListConfigInterface<any>;\n public subListConfig?: (item: any) => KoalaListConfigInterface;\n\n constructor(\n private fb: FormBuilder,\n private dynamicFormService: KoalaDynamicFormService,\n private deviceService: DeviceDetectorService\n ) {\n super(\n () => this.config?.request ?? new Observable<any>(),\n (response) => {\n this.responseRequest = response;\n this.dataSource.data = this.config?.responseIndexName\n ? (this.config.responseIndexName\n ? response[this.config.responseIndexName]\n : [])\n : response;\n if (this.config?.getDataSource) this.config?.getDataSource(this.dataSource.data);\n this.qtdListResult = this.config?.responseQtdResultIndexName\n ? this.config.responseQtdResultIndexName(response) ?? 0\n : this.dataSource.data?.length ?? 0;\n },\n () => this.formFilter ?? fb.group({})\n );\n }\n\n ngOnInit() {\n this.initConfig();\n this.formFilter = this.fb.group({\n formSearch: this.filterFormConfig?.main?.form ?? [''],\n formAdvancedSearch: this.filterFormConfig?.advanced?.form ?? ['']\n });\n this.loading(true);\n if (this.filterFormConfig) {\n this.filterFormConfig?.main?.formConfig?.map(item => {\n item.class += ' padding-none w-99';\n return item;\n });\n this.filterFormConfig?.advanced?.formConfig?.map(item => {\n item.class += ' padding-none';\n return item;\n });\n if (this.filterFormConfig?.checkAndSearch) {\n this.formFilter.addControl(this.filterFormConfig.checkAndSearch.formControlName, new FormControl(this.filterFormConfig.checkAndSearch.isChecked ?? false));\n }\n }\n\n if (this.config.getSelectionList) this.config.getSelectionList(this.selection);\n\n if (this.reload) {\n this.reload.subscribe(async reload => {\n if (reload) {\n await this.filterSubmit();\n }\n });\n }\n }\n\n ngOnDestroy() {\n super.onDestroy();\n }\n\n ngAfterViewInit() {\n super.afterViewInit().then();\n }\n\n public async filterSubmit() {\n this.showAdvancedFilter = false;\n await delay(1);\n let dados = koala(\n this.filterFormConfig?.main?.form\n ? this.dynamicFormService.emitData(this.filterFormConfig?.main?.form)\n : {}\n )\n .object()\n .merge(\n this.filterFormConfig?.advanced?.form\n ? this.dynamicFormService.emitData(this.filterFormConfig?.advanced?.form)\n : {})\n .getValue();\n\n if (this.filterFormConfig?.checkAndSearch) {\n const controlName = this.filterFormConfig.checkAndSearch.formControlName;\n dados[controlName] = this.formFilter.get(controlName).value;\n }\n await super.search(dados);\n }\n\n public toogleFilter() {\n this.showAdvancedFilter = !this.showAdvancedFilter;\n }\n\n public haveOptionsOnItemLine(item: any) {\n return this.itemsMenuListOptions.filter(option => option.havePermission && (\n !option.showByItemList ||\n option.showByItemList(item)\n )).length > 0\n }\n\n public hasFooter() {\n return !!this.itemsList.find(item => !!item.footer);\n }\n\n private initConfig() {\n this.columnSort = this.config.columnSort ?? null;\n this.sortDirection = this.config.sortDirection ?? 'asc';\n this.itemsMenuListOptions = this.config.itemsMenuListOptions ?? [];\n this.typeRequest = this.config.typeRequest ?? 'all';\n this.qtdListResult = this.config.qtdListResult ?? 0;\n this.columnsToShowInList = this.config.columnsToShowInList;\n this.itemsList = this.config.itemsList.map(item => {\n if (!item.dblClick) {\n item.dblClick = () => {\n };\n }\n return item;\n });\n this.showAdvancedFilter = this.config.showAdvancedFilter;\n this.filterFormConfig = this.config.filterFormConfig;\n this.request = this.config.request;\n this.reload = this.config.reload;\n this.responseIndexName = this.config.responseIndexName;\n this.responseQtdResultIndexName = this.config.responseQtdResultIndexName;\n this.filterParams = this.config.filterParams ?? new BehaviorSubject<KoalaListFormFilterInterface>(null);\n this.emptyListComponent = this.config.emptyListComponent;\n this.errorListComponent = this.config.errorListComponent;\n this.pageSize = this.config.pageSize ?? 30;\n this.disabledCheckboxItemList = this.config.disabledCheckboxItemList;\n this.subListConfig = this.config.subListConfig;\n this.btnCollapseSubListConfig = this.config.btnCollapseSubListConfig;\n this.hidePaginator = this.config.hidePaginator;\n this.customClass = this.config.customClass;\n }\n}\n","<div class=\"list-container\" [ngClass]=\"customClass\">\n <div *ngIf=\"filterFormConfig\" class=\"list-filter\">\n <form (ngSubmit)=\"filterSubmit()\" [formGroup]=\"formFilter\">\n <div class=\"main\">\n <koala-dynamic-form\n *ngIf=\"filterFormConfig.main\"\n [form]=\"filterFormConfig.main.form\"\n [formConfig]=\"filterFormConfig.main.formConfig\"\n [setValues]=\"filterFormConfig.main.setValues\"\n [showFields]=\"filterFormConfig.main.showFields\">\n </koala-dynamic-form>\n <ul>\n <li *ngIf=\"filterFormConfig.advanced\" class=\"option\">\n <button (click)=\"toogleFilter()\" color=\"primary\" mat-icon-button matTooltip=\"Filtro Avançado\"\n matTooltipPosition=\"below\" type=\"button\">\n <mat-icon>tune</mat-icon>\n </button>\n </li>\n <li *ngIf=\"filterFormConfig.checkAndSearch\" class=\"checkbox-filter\">\n <mat-checkbox (click)=\"filterSubmit()\"\n [formControlName]=\"filterFormConfig.checkAndSearch.formControlName\">\n {{filterFormConfig.checkAndSearch.label}}\n </mat-checkbox>\n </li>\n <li class=\"option\">\n <koala-submit\n [btnSubmitDisabled]=\"btnSubmitDisabled\"\n [fg]=\"formFilter\"\n [iconButton]=\"true\"\n [loader]=\"loader\"\n icon=\"search\">\n </koala-submit>\n </li>\n </ul>\n </div>\n <div *ngIf=\"filterFormConfig.advanced\" [ngClass]=\"{'show': showAdvancedFilter}\" class=\"advanced\">\n <div class=\"container-filter\">\n <koala-dynamic-form\n [form]=\"filterFormConfig.advanced.form\"\n [formConfig]=\"filterFormConfig.advanced.formConfig\"\n [setValues]=\"filterFormConfig.advanced.setValues\"\n [showFields]=\"filterFormConfig.advanced.showFields\">\n </koala-dynamic-form>\n </div>\n </div>\n </form>\n </div>\n <nav class=\"menu-list\">\n <ul class=\"menu\">\n <li *ngIf=\"selection.hasValue()\">\n <ng-content select=\"[itemsSelectList]\"></ng-content>\n </li>\n <li *ngIf=\"selection.hasValue()\" class=\"text-center\">|</li>\n <li>\n <ng-content select=\"[itemsList]\"></ng-content>\n </li>\n </ul>\n </nav>\n <div *ngIf=\"loader | async\" class=\"spinner-container\" [ngClass]=\"{\n 'no-filter': !filterFormConfig\n }\">\n <mat-spinner color=\"primary\" diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"list\">\n <table\n *ngIf=\"!emptyListComponent || (emptyListComponent && dataSource?.data?.length > 0) else emptyList\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"columnSort\"\n [id]=\"tableId\"\n multiTemplateDataRows\n class=\"table-hover\"\n mat-table\n matSort\n [matSortDirection]=\"sortDirection\" matSortDisableClear>\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox (change)=\"$event ? selectAll() : null\"\n [checked]=\"selection.hasValue() && allSelected$ | async\"\n [indeterminate]=\"selection.hasValue() && !(allSelected$ | async)\">\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let item\" mat-cell>\n <mat-checkbox *ngIf=\"disabledCheckboxItemList ? !disabledCheckboxItemList(item) : true\"\n (change)=\"$event ? selection.toggle(item) : null\"\n (click)=\"$event.stopPropagation(); selectItem();\"\n [checked]=\"selection.isSelected(item)\">\n </mat-checkbox>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"collapseButton\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <koala-button\n *ngIf=\"btnCollapseSubListConfig.show(item)\"\n (click)=\"expandedElement = expandedElement === item ? null : item\"\n [koalaIcon]=\"btnCollapseSubListConfig.koalaIcon\"\n [icon]=\"btnCollapseSubListConfig.icon\"\n [tooltip]=\"btnCollapseSubListConfig.tooltip\"\n [color]=\"btnCollapseSubListConfig.iconColor\"\n [backgroundColor]=\"btnCollapseSubListConfig.backgroundColor\"\n [koalaIconSize]=\"22\">\n </koala-button>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngFor=\"let itemList of itemsList\" [matColumnDef]=\"itemList.columnDef\">\n <th *matHeaderCellDef [mat-sort-header]=\"itemList.sortHeader\" [disabled]=\"!itemList.sortHeader\" mat-header-cell>{{itemList.label}}</th>\n <td (dblclick)=\"itemList.dblClick(item)\" *matCellDef=\"let item\" mat-cell>\n\t <koala-dynamic-component *ngIf=\"itemList.itemComponent else itemText\"\n\t [dynamicComponent]=\"itemList.itemComponent(item)\"></koala-dynamic-component>\n\t <ng-template #itemText>\n\t {{itemList.itemNameProperty(item)}}\n\t </ng-template>\n </td>\n <td *matFooterCellDef mat-footer-cell>\n <koala-dynamic-component *ngIf=\"itemList.footer?.itemComponent else itemFooterText\"\n [dynamicComponent]=\"itemList.footer?.itemComponent(responseRequest)\"></koala-dynamic-component>\n <ng-template #itemFooterText>\n {{itemList.footer?.itemNameProperty(responseRequest)}}\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"koalaListDetails\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" [attr.colspan]=\"columnsToShowInList.length\" mat-cell>\n <div class=\"item-detail\" [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\">\n <koala-list [config]=\"subListConfig(item)\"></koala-list>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container matColumnDef=\"options\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <div *ngIf=\"haveOptionsOnItemLine(item)\">\n <button [matMenuTriggerFor]=\"options\" mat-icon-button type=\"button\">\n <i class='material-icons'>more_vert</i>\n </button>\n <mat-menu #options=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n\t <div *ngFor=\"let option of itemsMenuListOptions\">\n\t <button\n\t\t (click)=\"option.action(item)\"\n\t\t *ngIf=\"option.havePermission && (\n\t\t !option.showByItemList ||\n\t\t option.showByItemList(item)\n\t )\"\n\t\t mat-menu-item>\n\t <mat-icon>{{option.icon}}</mat-icon>\n\t <span>{{option.name}}</span>\n\t </button>\n\t </div>\n </mat-menu>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"columnsToShowInList; sticky: true\" mat-header-row></tr>\n <tr *matRowDef=\"let item; columns: columnsToShowInList;\" mat-row></tr>\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\">\n <tr mat-row *matRowDef=\"let row; columns: ['koalaListDetails']\" class=\"item-detail-row\"></tr>\n </ng-container>\n <ng-container *ngIf=\"hasFooter()\">\n <tr *matFooterRowDef=\"columnsToShowInList; sticky: true\" mat-footer-row></tr>\n </ng-container>\n </table>\n <ng-template #emptyList>\n <koala-dynamic-component *ngIf=\"!(filterError$ | async) else errorList\" [dynamicComponent]=\"emptyListComponent\"></koala-dynamic-component>\n <ng-template #errorList>\n <koala-dynamic-component [dynamicComponent]=\"errorListComponent\"></koala-dynamic-component>\n </ng-template>\n </ng-template>\n </div>\n <div *ngIf=\"!hidePaginator\" class=\"content-paginator\">\n <mat-paginator\n [length]=\"qtdListResult\"\n [pageSizeOptions]=\"limitOptions\"\n [pageSize]=\"pageSize\"\n showFirstLastButtons>\n </mat-paginator>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ListComponent } from './list.component';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\nimport { CommonModule } from '@angular/common';\nimport { KoalaFormModule } from '@koalarx/ui/form';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { PaginationProvider } from './providers/pagination/pagination.provider';\nimport { KoalaFolderPageModule } from '@koalarx/ui/folder-page';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { KoalaDynamicComponentModule } from '@koalarx/ui/dynamic-component';\nimport { KoalaButtonModule } from \"@koalarx/ui/button\";\n\n@NgModule({\n declarations: [\n ListComponent\n ],\n imports: [\n CommonModule,\n KoalaFolderPageModule,\n KoalaFormModule,\n KoalaDynamicComponentModule,\n KoalaButtonModule,\n MatMenuModule,\n MatTableModule,\n MatSortModule,\n MatTooltipModule,\n MatPaginatorModule\n ],\n exports: [\n ListComponent\n ],\n providers: [{\n provide: MatPaginatorIntl,\n useClass: PaginationProvider\n }]\n})\nexport class KoalaListModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koalarx-ui-list.mjs","sources":["../../../projects/list/src/lib/providers/pagination/pagination.provider.ts","../../../projects/list/src/lib/list-builder/list.builder.ts","../../../projects/list/src/lib/koala.list.service.ts","../../../projects/list/src/lib/list.abstract.ts","../../../projects/list/src/lib/list.component.ts","../../../projects/list/src/lib/list.component.html","../../../projects/list/src/lib/koala.list.module.ts","../../../projects/list/src/koalarx-ui-list.ts"],"sourcesContent":["import { MatPaginatorIntl } from '@angular/material/paginator';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PaginationProvider extends MatPaginatorIntl {\n constructor() {\n super();\n this.getAndInitTranslations();\n }\n\n public getAndInitTranslations() {\n this.itemsPerPageLabel = \"Itens por Página\";\n this.firstPageLabel = \"Primeira Página\";\n this.nextPageLabel = \"Próxima Página\";\n this.previousPageLabel = \"Página Anterior\";\n this.lastPageLabel = \"Última Página\";\n this.changes.next();\n }\n\n public getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 / ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} / ${length}`;\n }\n}\n","import { KoalaListConfigInterface } from \"../koala.list-config.interface\";\nimport { KoalaListItemInterface } from \"../koala-list-item.interface\";\nimport { Type } from \"@angular/core\";\nimport { KoalaDynamicComponent } from \"@koalarx/ui/dynamic-component\";\nimport { KoalaListFilterInterface } from \"../koala-list-filter.interface\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { KoalaListFormFilterInterface } from \"../koala-list-form-filter.interface\";\nimport { KoalaListItemMenuOptionInterface } from \"../koala-list-item-menu-option.interface\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { KoalaListPageSize } from \"../list.abstract\";\nimport { first } from \"rxjs/operators\";\nimport { KoalaListBtnCollapseSubListConfigInterface } from \"../koala-list-btn-collapse-sub-list-config.interface\";\n\nexport class ListBuilder<DataType> {\n private config = {} as KoalaListConfigInterface;\n\n public service(\n service: (filter: BehaviorSubject<KoalaListFormFilterInterface>) => Observable<any> | Promise<any>,\n type: 'all' | 'onDemand' = \"all\",\n resultIndexName?: string,\n qtdResultIndexName?: string\n ) {\n this.config.typeRequest = type;\n this.config.responseIndexName = resultIndexName;\n this.config.responseQtdResultIndexName = response => response[qtdResultIndexName ?? ''] ?? [];\n this.config.columnSort = this.config?.filterParams?.getValue()?.sort;\n this.config.sortDirection = this.config?.filterParams?.getValue()?.order ?? 'asc';\n\n const response = service(this.config.filterParams ?? null);\n\n if (response instanceof Promise) {\n this.config.request = new Observable<any>(observe => {\n response.then(response => observe.next(response))\n .catch(error => observe.error(error));\n }).pipe(first());\n } else {\n this.config.request = new Observable<any>(observe => {\n (service(this.config.filterParams ?? null) as Observable<any>).pipe(first()).subscribe(observe);\n }).pipe(first());\n }\n\n return this;\n }\n\n public filterConfig(config: KoalaListFilterInterface) {\n this.config.filterFormConfig = config;\n return this;\n }\n\n public defaultFilter(config: KoalaListFormFilterInterface) {\n this.config.filterParams = new BehaviorSubject<KoalaListFormFilterInterface>(config);\n return this;\n }\n\n public pageSize(size: KoalaListPageSize) {\n this.config.pageSize = size;\n return this;\n }\n\n public columns(columns: string[]) {\n this.config.columnsToShowInList = columns;\n return this;\n }\n\n public itemColumn(item: KoalaListItemInterface<DataType>) {\n (this.config.itemsList?.length > 0) ?\n this.config.itemsList.push(item) :\n this.config.itemsList = [item];\n\n return this;\n }\n\n public actionList(item: KoalaListItemMenuOptionInterface<DataType>) {\n (this.config.itemsMenuListOptions?.length ?? 0 > 0) ?\n this.config.itemsMenuListOptions?.push(item) :\n this.config.itemsMenuListOptions = [item];\n\n return this;\n }\n\n public getDataSource(fn: (dataSource: DataType[]) => void) {\n this.config.getDataSource = fn;\n return this;\n }\n\n public getSelectionList(fn: (selection: SelectionModel<DataType>) => void) {\n this.config.getSelectionList = fn;\n return this;\n }\n\n public emptyListComponent(component: Type<any>, data?: any) {\n this.config.emptyListComponent = new KoalaDynamicComponent(component, data);\n return this;\n }\n\n public errorListComponent(component: Type<any>, data?: any) {\n this.config.errorListComponent = new KoalaDynamicComponent(component, data);\n return this;\n }\n\n public disableCheckboxItemList(fn: (item: DataType) => boolean) {\n this.config.disabledCheckboxItemList = fn;\n return this;\n }\n\n public setSubList(config: (item: DataType) => KoalaListConfigInterface) {\n this.config.subListConfig = config;\n return this;\n }\n\n public defineBtnCollapseSubListConfig(config: KoalaListBtnCollapseSubListConfigInterface<DataType>) {\n this.config.btnCollapseSubListConfig = config;\n return this;\n }\n\n public hidePaginator(hide: boolean = true) {\n this.config.hidePaginator = hide;\n return this;\n }\n\n public setCustomClass(className: string) {\n this.config.customClass = className;\n return this;\n }\n\n public getConfig(): KoalaListConfigInterface {\n this.config.reload = new BehaviorSubject<boolean>(false);\n return this.config;\n }\n\n public setLimitOptions(options: number[]) {\n this.config.limitOptions = options;\n }\n\n public addLimitOption(limit: number) {\n if (!this.config.limitOptions) this.config.limitOptions = [10, 20, 30, 50, 100];\n\n this.config.limitOptions.push(limit);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ListBuilder } from \"./list-builder/list.builder\";\n\n@Injectable({providedIn: \"any\"})\nexport class KoalaListService {\n\n public build<DataType>() {\n return new ListBuilder<DataType>();\n }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { BehaviorSubject, merge, Observable, Subscription } from 'rxjs';\nimport { FormAbstract } from '@koalarx/ui/form';\nimport { FormGroup } from '@angular/forms';\nimport { debounceTime, first, map, startWith, switchMap } from 'rxjs/operators';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { KoalaListFormFilterInterface } from './koala-list-form-filter.interface';\nimport { KoalaDynamicComponent } from \"@koalarx/ui/dynamic-component\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { KoalaListConfigInterface } from \"./koala.list-config.interface\";\nimport { randomString } from \"@koalarx/utils/operators/string\";\n\nexport type KoalaListPageSize = 10 | 20 | 30 | 50 | 100;\n\nexport abstract class ListAbstract extends FormAbstract {\n public selection = new SelectionModel<object>(true, []);\n public limitOptions: number[] = [10, 20, 30, 50, 100];\n public showMenuList: boolean = false;\n public allSelected$ = new BehaviorSubject<boolean>(false);\n public dataSource = new MatTableDataSource<any>([]);\n public typeRequest: 'all' | 'onDemand' = 'onDemand';\n public filterParams = new BehaviorSubject<KoalaListFormFilterInterface|null>(null);\n public filterError$ = new BehaviorSubject<any>(null);\n public emptyListComponent?: KoalaDynamicComponent;\n public errorListComponent?: KoalaDynamicComponent;\n public pageSize: KoalaListPageSize;\n public tableId = randomString(20, {uppercase: true, lowercase: true});\n\n protected config?: KoalaListConfigInterface;\n protected paginator?: MatPaginator;\n protected sort?: MatSort;\n\n private subscriptionList?: Subscription;\n private subscriptionSortList?: Subscription;\n private intervalSortList: any;\n\n protected constructor(\n private requestFunction: () => Observable<any>,\n private requestResponseFunction: <T>(results: T[]) => void,\n formSearch: () => FormGroup\n ) {\n super(formSearch);\n }\n\n public selectAll() {\n this.isAllSelected() ?\n this.selection.clear() :\n this.dataSource.data.forEach(item => {\n if (\n (this.config?.disabledCheckboxItemList && !this.config.disabledCheckboxItemList(item)) ||\n !this.config?.disabledCheckboxItemList\n ) {\n this.selection.select(item);\n }\n });\n\n this.isAllSelected();\n }\n\n public defineStatusSelectAll(status: boolean) {\n this.allSelected$.next(status);\n return this.allSelected$.getValue();\n }\n\n public selectItem() {\n setTimeout(() => {\n this.showMenuList = this.selection.hasValue();\n this.isAllSelected();\n }, 50);\n }\n\n public async search(filter?: any) {\n this.loading(true);\n this.selection.clear();\n if (this.paginator) {\n this.paginator.firstPage();\n }\n this.filterParams.next({\n params: filter,\n sort: this.sort?.active ?? '',\n order: this.sort?.direction ?? 'asc',\n page: this.paginator?.pageIndex ?? 0,\n limit: this.paginator?.pageSize ?? 30\n });\n }\n\n protected onDestroy() {\n this.subscriptionSortList?.unsubscribe();\n this.subscriptionList?.unsubscribe();\n clearInterval(this.intervalSortList);\n }\n\n protected async afterViewInit() {\n let tentativas = 0;\n let stop = false;\n do {\n tentativas++;\n await delay(400);\n if (this.sort || this.emptyListComponent) {\n this.prepareSearch().then();\n if (this.emptyListComponent) stop = true;\n } else if (tentativas > 10) {\n stop = true;\n }\n } while (!this.sort && !stop);\n }\n\n private async prepareSearch() {\n this.intervalSortList = setInterval(() => {\n if (this.sort && !this.subscriptionSortList) {\n this.subscriptionSortList = this.sort.sortChange.subscribe(() => {\n const filter = this.filterParams.value ?? {} as any;\n filter.sort = this.sort?.active ?? '';\n filter.order = this.sort?.direction ?? '';\n this.filterParams.next(filter);\n });\n } else if (!this.sort && this.subscriptionSortList) {\n this.subscriptionSortList.unsubscribe();\n }\n }, 50);\n\n if (this.typeRequest === 'onDemand') {\n this.subscriptionList = merge(this.paginator?.page ?? new Observable(), this.filterParams).pipe(\n startWith({}),\n switchMap(() => new Observable(observe => {\n this.loading(true);\n this.selection.clear();\n if (this.filterParams.value) {\n this.filterParams.value.sort = this.sort?.active ?? this.config?.columnSort ?? '';\n this.filterParams.value.order = this.sort?.direction ?? this.config?.sortDirection ?? '';\n this.filterParams.value.page = this.paginator?.pageIndex ?? 0;\n this.filterParams.value.limit = this.paginator?.pageSize ?? 30;\n }\n observe.next(true);\n })),\n debounceTime(300),\n switchMap(() => this.runRequestFunction()),\n map((response) => {\n this.loading(false);\n this.scrollTableToTop();\n return this.requestResponseFunction(response);\n })\n ).subscribe();\n } else {\n if (this.paginator) this.dataSource.paginator = this.paginator;\n this.subscriptionList = this.filterParams.pipe(\n startWith({}),\n debounceTime(300),\n switchMap(() => this.runRequestFunction()),\n map((response) => {\n this.loading(false);\n this.scrollTableToTop();\n return this.requestResponseFunction(response);\n })\n ).subscribe();\n }\n\n if (this.emptyListComponent) {\n do {\n await delay(301);\n if (this.sort) {\n if (this.typeRequest === \"onDemand\") {\n this.sort.sortChange.subscribe(() => {\n if (this.paginator) this.paginator.pageIndex = 0\n });\n } else {\n this.dataSource.sort = this.sort;\n }\n }\n } while (!this.sort);\n }\n }\n\n private isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = (this.config?.disabledCheckboxItemList ?\n this.dataSource.data.filter(item => !(this.config?.disabledCheckboxItemList\n ? this.config.disabledCheckboxItemList(item)\n : '')) :\n this.dataSource.data).length;\n\n return this.defineStatusSelectAll(numSelected === numRows);\n }\n\n private runRequestFunction() {\n return new Observable<unknown[]>(observe => {\n this.requestFunction().pipe(first()).subscribe({\n next: response => observe.next(response),\n error: err => {\n if (this.errorListComponent) {\n this.filterError$.next(err);\n this.errorListComponent.data = err;\n }\n this.loading(false);\n observe.next([]);\n }\n })\n })\n }\n\n private scrollTableToTop() {\n document.getElementById(this.tableId)?.parentElement?.scrollTo({top: 0});\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ListAbstract } from './list.abstract';\nimport { KoalaListItemMenuOptionInterface } from './koala-list-item-menu-option.interface';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { KoalaListFilterInterface } from './koala-list-filter.interface';\nimport { KoalaDynamicFormService } from '@koalarx/ui/form';\nimport { KoalaListItemInterface } from './koala-list-item.interface';\nimport { KoalaListFormFilterInterface } from \"./koala-list-form-filter.interface\";\nimport { MatSort, SortDirection } from \"@angular/material/sort\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { koala } from \"@koalarx/utils\";\nimport { DeviceDetectorService } from \"ngx-device-detector\";\nimport { KoalaListConfigInterface } from \"./koala.list-config.interface\";\nimport { MatPaginator } from \"@angular/material/paginator\";\nimport { KoalaListBtnCollapseSubListConfigInterface } from \"./koala-list-btn-collapse-sub-list-config.interface\";\nimport { animate, state, style, transition, trigger } from \"@angular/animations\";\n\n@Component({\n selector: 'koala-list',\n templateUrl: 'list.component.html',\n styleUrls: ['list.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({height: '0px', minHeight: '0'})),\n state('expanded', style({height: '*'})),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class ListComponent extends ListAbstract implements OnInit, AfterViewInit, OnDestroy {\n @Input() public config?: KoalaListConfigInterface;\n\n @ViewChild(MatPaginator) protected paginator: MatPaginator;\n @ViewChild(MatSort, {static: false}) protected sort: MatSort;\n\n public customClass?: string;\n public columnsToShowInList?: string[];\n public hidePaginator?: boolean = false;\n public columnSort?: string;\n public sortDirection: SortDirection = 'asc';\n public itemsMenuListOptions?: KoalaListItemMenuOptionInterface<any>[];\n public itemsList?: KoalaListItemInterface<any>[];\n public request?: Observable<any>;\n public responseIndexName?: string;\n public responseQtdResultIndexName?: (response: any) => number;\n public responseRequest?: any;\n public typeRequest: 'all' | 'onDemand' = 'all'\n public filterFormConfig?: KoalaListFilterInterface;\n public reload?: BehaviorSubject<boolean>;\n public formFilter?: FormGroup;\n public showAdvancedFilter: boolean = false;\n public qtdListResult = 0;\n public disabledCheckboxItemList?: (item: any) => boolean;\n public expandedElement = false;\n public btnCollapseSubListConfig?: KoalaListBtnCollapseSubListConfigInterface<any>;\n public subListConfig?: (item: any) => KoalaListConfigInterface;\n\n constructor(\n private fb: FormBuilder,\n private dynamicFormService: KoalaDynamicFormService,\n private deviceService: DeviceDetectorService\n ) {\n super(\n () => this.config?.request ?? new Observable<any>(),\n (response) => {\n this.responseRequest = response;\n this.dataSource.data = this.config?.responseIndexName\n ? (this.config.responseIndexName\n ? response[this.config.responseIndexName]\n : [])\n : response;\n if (this.config?.getDataSource) this.config?.getDataSource(this.dataSource.data);\n this.qtdListResult = this.config?.responseQtdResultIndexName\n ? this.config.responseQtdResultIndexName(response) ?? 0\n : this.dataSource.data?.length ?? 0;\n },\n () => this.formFilter ?? fb.group({})\n );\n }\n\n ngOnInit() {\n this.initConfig();\n this.formFilter = this.fb.group({\n formSearch: this.filterFormConfig?.main?.form ?? [''],\n formAdvancedSearch: this.filterFormConfig?.advanced?.form ?? ['']\n });\n this.loading(true);\n if (this.filterFormConfig) {\n this.filterFormConfig?.main?.formConfig?.map(item => {\n item.class += ' padding-none w-99';\n return item;\n });\n this.filterFormConfig?.advanced?.formConfig?.map(item => {\n item.class += ' padding-none';\n return item;\n });\n if (this.filterFormConfig?.checkAndSearch) {\n this.formFilter.addControl(this.filterFormConfig.checkAndSearch.formControlName, new FormControl(this.filterFormConfig.checkAndSearch.isChecked ?? false));\n }\n }\n\n if (this.config.getSelectionList) this.config.getSelectionList(this.selection);\n\n if (this.reload) {\n this.reload.subscribe(async reload => {\n if (reload) {\n await this.filterSubmit();\n }\n });\n }\n }\n\n ngOnDestroy() {\n super.onDestroy();\n }\n\n ngAfterViewInit() {\n super.afterViewInit().then();\n }\n\n public async filterSubmit() {\n this.showAdvancedFilter = false;\n await delay(1);\n let dados = koala(\n this.filterFormConfig?.main?.form\n ? this.dynamicFormService.emitData(this.filterFormConfig?.main?.form)\n : {}\n )\n .object()\n .merge(\n this.filterFormConfig?.advanced?.form\n ? this.dynamicFormService.emitData(this.filterFormConfig?.advanced?.form)\n : {})\n .getValue();\n\n if (this.filterFormConfig?.checkAndSearch) {\n const controlName = this.filterFormConfig.checkAndSearch.formControlName;\n dados[controlName] = this.formFilter.get(controlName).value;\n }\n await super.search(dados);\n }\n\n public toogleFilter() {\n this.showAdvancedFilter = !this.showAdvancedFilter;\n }\n\n public haveOptionsOnItemLine(item: any) {\n return this.itemsMenuListOptions.filter(option => option.havePermission && (\n !option.showByItemList ||\n option.showByItemList(item)\n )).length > 0\n }\n\n public hasFooter() {\n return !!this.itemsList.find(item => !!item.footer);\n }\n\n private initConfig() {\n this.columnSort = this.config.columnSort ?? null;\n this.sortDirection = this.config.sortDirection ?? 'asc';\n this.itemsMenuListOptions = this.config.itemsMenuListOptions ?? [];\n this.typeRequest = this.config.typeRequest ?? 'all';\n this.qtdListResult = this.config.qtdListResult ?? 0;\n this.columnsToShowInList = this.config.columnsToShowInList;\n this.itemsList = this.config.itemsList.map(item => {\n if (!item.dblClick) {\n item.dblClick = () => {\n };\n }\n return item;\n });\n this.showAdvancedFilter = this.config.showAdvancedFilter;\n this.filterFormConfig = this.config.filterFormConfig;\n this.request = this.config.request;\n this.reload = this.config.reload;\n this.responseIndexName = this.config.responseIndexName;\n this.responseQtdResultIndexName = this.config.responseQtdResultIndexName;\n this.filterParams = this.config.filterParams ?? new BehaviorSubject<KoalaListFormFilterInterface>(null);\n this.emptyListComponent = this.config.emptyListComponent;\n this.errorListComponent = this.config.errorListComponent;\n this.pageSize = this.config.pageSize ?? 30;\n this.disabledCheckboxItemList = this.config.disabledCheckboxItemList;\n this.subListConfig = this.config.subListConfig;\n this.btnCollapseSubListConfig = this.config.btnCollapseSubListConfig;\n this.hidePaginator = this.config.hidePaginator;\n this.customClass = this.config.customClass;\n this.limitOptions = this.config.limitOptions ?? this.limitOptions;\n }\n}\n","<div class=\"list-container\" [ngClass]=\"customClass\">\n <div *ngIf=\"filterFormConfig\" class=\"list-filter\">\n <form (ngSubmit)=\"filterSubmit()\" [formGroup]=\"formFilter\">\n <div class=\"main\">\n <koala-dynamic-form\n *ngIf=\"filterFormConfig.main\"\n [form]=\"filterFormConfig.main.form\"\n [formConfig]=\"filterFormConfig.main.formConfig\"\n [setValues]=\"filterFormConfig.main.setValues\"\n [showFields]=\"filterFormConfig.main.showFields\">\n </koala-dynamic-form>\n <ul>\n <li *ngIf=\"filterFormConfig.advanced\" class=\"option\">\n <button (click)=\"toogleFilter()\" color=\"primary\" mat-icon-button matTooltip=\"Filtro Avançado\"\n matTooltipPosition=\"below\" type=\"button\">\n <mat-icon>tune</mat-icon>\n </button>\n </li>\n <li *ngIf=\"filterFormConfig.checkAndSearch\" class=\"checkbox-filter\">\n <mat-checkbox (click)=\"filterSubmit()\"\n [formControlName]=\"filterFormConfig.checkAndSearch.formControlName\">\n {{filterFormConfig.checkAndSearch.label}}\n </mat-checkbox>\n </li>\n <li class=\"option\">\n <koala-submit\n [btnSubmitDisabled]=\"btnSubmitDisabled\"\n [fg]=\"formFilter\"\n [iconButton]=\"true\"\n [loader]=\"loader\"\n icon=\"search\">\n </koala-submit>\n </li>\n </ul>\n </div>\n <div *ngIf=\"filterFormConfig.advanced\" [ngClass]=\"{'show': showAdvancedFilter}\" class=\"advanced\">\n <div class=\"container-filter\">\n <koala-dynamic-form\n [form]=\"filterFormConfig.advanced.form\"\n [formConfig]=\"filterFormConfig.advanced.formConfig\"\n [setValues]=\"filterFormConfig.advanced.setValues\"\n [showFields]=\"filterFormConfig.advanced.showFields\">\n </koala-dynamic-form>\n </div>\n </div>\n </form>\n </div>\n <nav class=\"menu-list\">\n <ul class=\"menu\">\n <li *ngIf=\"selection.hasValue()\">\n <ng-content select=\"[itemsSelectList]\"></ng-content>\n </li>\n <li *ngIf=\"selection.hasValue()\" class=\"text-center\">|</li>\n <li>\n <ng-content select=\"[itemsList]\"></ng-content>\n </li>\n </ul>\n </nav>\n <div *ngIf=\"loader | async\" class=\"spinner-container\" [ngClass]=\"{\n 'no-filter': !filterFormConfig\n }\">\n <mat-spinner color=\"primary\" diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"list\">\n <table\n *ngIf=\"!emptyListComponent || (emptyListComponent && dataSource?.data?.length > 0) else emptyList\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"columnSort\"\n [id]=\"tableId\"\n multiTemplateDataRows\n class=\"table-hover\"\n mat-table\n matSort\n [matSortDirection]=\"sortDirection\" matSortDisableClear>\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox (change)=\"$event ? selectAll() : null\"\n [checked]=\"selection.hasValue() && allSelected$ | async\"\n [indeterminate]=\"selection.hasValue() && !(allSelected$ | async)\">\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let item\" mat-cell>\n <mat-checkbox *ngIf=\"disabledCheckboxItemList ? !disabledCheckboxItemList(item) : true\"\n (change)=\"$event ? selection.toggle(item) : null\"\n (click)=\"$event.stopPropagation(); selectItem();\"\n [checked]=\"selection.isSelected(item)\">\n </mat-checkbox>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"collapseButton\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <koala-button\n *ngIf=\"btnCollapseSubListConfig.show(item)\"\n (click)=\"expandedElement = expandedElement === item ? null : item\"\n [koalaIcon]=\"btnCollapseSubListConfig.koalaIcon\"\n [icon]=\"btnCollapseSubListConfig.icon\"\n [tooltip]=\"btnCollapseSubListConfig.tooltip\"\n [color]=\"btnCollapseSubListConfig.iconColor\"\n [backgroundColor]=\"btnCollapseSubListConfig.backgroundColor\"\n [koalaIconSize]=\"22\">\n </koala-button>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngFor=\"let itemList of itemsList\" [matColumnDef]=\"itemList.columnDef\">\n <th *matHeaderCellDef [mat-sort-header]=\"itemList.sortHeader\" [disabled]=\"!itemList.sortHeader\" mat-header-cell>{{itemList.label}}</th>\n <td (dblclick)=\"itemList.dblClick(item)\" *matCellDef=\"let item\" mat-cell>\n\t <koala-dynamic-component *ngIf=\"itemList.itemComponent else itemText\"\n\t [dynamicComponent]=\"itemList.itemComponent(item)\"></koala-dynamic-component>\n\t <ng-template #itemText>\n\t {{itemList.itemNameProperty(item)}}\n\t </ng-template>\n </td>\n <td *matFooterCellDef mat-footer-cell>\n <koala-dynamic-component *ngIf=\"itemList.footer?.itemComponent else itemFooterText\"\n [dynamicComponent]=\"itemList.footer?.itemComponent(responseRequest)\"></koala-dynamic-component>\n <ng-template #itemFooterText>\n {{itemList.footer?.itemNameProperty(responseRequest)}}\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"koalaListDetails\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" [attr.colspan]=\"columnsToShowInList.length\" mat-cell>\n <div class=\"item-detail\" [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\">\n <koala-list [config]=\"subListConfig(item)\"></koala-list>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container matColumnDef=\"options\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <div *ngIf=\"haveOptionsOnItemLine(item)\">\n <button [matMenuTriggerFor]=\"options\" mat-icon-button type=\"button\">\n <i class='material-icons'>more_vert</i>\n </button>\n <mat-menu #options=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n\t <div *ngFor=\"let option of itemsMenuListOptions\">\n\t <button\n\t\t (click)=\"option.action(item)\"\n\t\t *ngIf=\"option.havePermission && (\n\t\t !option.showByItemList ||\n\t\t option.showByItemList(item)\n\t )\"\n\t\t mat-menu-item>\n\t <mat-icon>{{option.icon}}</mat-icon>\n\t <span>{{option.name}}</span>\n\t </button>\n\t </div>\n </mat-menu>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"columnsToShowInList; sticky: true\" mat-header-row></tr>\n <tr *matRowDef=\"let item; columns: columnsToShowInList;\" mat-row></tr>\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\">\n <tr mat-row *matRowDef=\"let row; columns: ['koalaListDetails']\" class=\"item-detail-row\"></tr>\n </ng-container>\n <ng-container *ngIf=\"hasFooter()\">\n <tr *matFooterRowDef=\"columnsToShowInList; sticky: true\" mat-footer-row></tr>\n </ng-container>\n </table>\n <ng-template #emptyList>\n <koala-dynamic-component *ngIf=\"!(filterError$ | async) else errorList\" [dynamicComponent]=\"emptyListComponent\"></koala-dynamic-component>\n <ng-template #errorList>\n <koala-dynamic-component [dynamicComponent]=\"errorListComponent\"></koala-dynamic-component>\n </ng-template>\n </ng-template>\n </div>\n <div *ngIf=\"!hidePaginator\" class=\"content-paginator\">\n <mat-paginator\n [length]=\"qtdListResult\"\n [pageSizeOptions]=\"limitOptions\"\n [pageSize]=\"pageSize\"\n showFirstLastButtons>\n </mat-paginator>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ListComponent } from './list.component';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\nimport { CommonModule } from '@angular/common';\nimport { KoalaFormModule } from '@koalarx/ui/form';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { PaginationProvider } from './providers/pagination/pagination.provider';\nimport { KoalaFolderPageModule } from '@koalarx/ui/folder-page';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { KoalaDynamicComponentModule } from '@koalarx/ui/dynamic-component';\nimport { KoalaButtonModule } from \"@koalarx/ui/button\";\n\n@NgModule({\n declarations: [\n ListComponent\n ],\n imports: [\n CommonModule,\n KoalaFolderPageModule,\n KoalaFormModule,\n KoalaDynamicComponentModule,\n KoalaButtonModule,\n MatMenuModule,\n MatTableModule,\n MatSortModule,\n MatTooltipModule,\n MatPaginatorModule\n ],\n exports: [\n ListComponent\n ],\n providers: [{\n provide: MatPaginatorIntl,\n useClass: PaginationProvider\n }]\n})\nexport class KoalaListModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -155,6 +155,14 @@ class ListBuilder {
155
155
  this.config.reload = new BehaviorSubject(false);
156
156
  return this.config;
157
157
  }
158
+ setLimitOptions(options) {
159
+ this.config.limitOptions = options;
160
+ }
161
+ addLimitOption(limit) {
162
+ if (!this.config.limitOptions)
163
+ this.config.limitOptions = [10, 20, 30, 50, 100];
164
+ this.config.limitOptions.push(limit);
165
+ }
158
166
  }
159
167
 
160
168
  class KoalaListService {
@@ -443,6 +451,7 @@ class ListComponent extends ListAbstract {
443
451
  this.btnCollapseSubListConfig = this.config.btnCollapseSubListConfig;
444
452
  this.hidePaginator = this.config.hidePaginator;
445
453
  this.customClass = this.config.customClass;
454
+ this.limitOptions = this.config.limitOptions ?? this.limitOptions;
446
455
  }
447
456
  }
448
457
  ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ListComponent, deps: [{ token: i1.FormBuilder }, { token: i2.KoalaDynamicFormService }, { token: i3.DeviceDetectorService }], target: i0.ɵɵFactoryTarget.Component });
@@ -1 +1 @@
1
- {"version":3,"file":"koalarx-ui-list.mjs","sources":["../../../projects/list/src/lib/providers/pagination/pagination.provider.ts","../../../projects/list/src/lib/list-builder/list.builder.ts","../../../projects/list/src/lib/koala.list.service.ts","../../../projects/list/src/lib/list.abstract.ts","../../../projects/list/src/lib/list.component.ts","../../../projects/list/src/lib/list.component.html","../../../projects/list/src/lib/koala.list.module.ts","../../../projects/list/src/koalarx-ui-list.ts"],"sourcesContent":["import { MatPaginatorIntl } from '@angular/material/paginator';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PaginationProvider extends MatPaginatorIntl {\n constructor() {\n super();\n this.getAndInitTranslations();\n }\n\n public getAndInitTranslations() {\n this.itemsPerPageLabel = \"Itens por Página\";\n this.firstPageLabel = \"Primeira Página\";\n this.nextPageLabel = \"Próxima Página\";\n this.previousPageLabel = \"Página Anterior\";\n this.lastPageLabel = \"Última Página\";\n this.changes.next();\n }\n\n public getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 / ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} / ${length}`;\n }\n}\n","import { KoalaListConfigInterface } from \"../koala.list-config.interface\";\nimport { KoalaListItemInterface } from \"../koala-list-item.interface\";\nimport { Type } from \"@angular/core\";\nimport { KoalaDynamicComponent } from \"@koalarx/ui/dynamic-component\";\nimport { KoalaListFilterInterface } from \"../koala-list-filter.interface\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { KoalaListFormFilterInterface } from \"../koala-list-form-filter.interface\";\nimport { KoalaListItemMenuOptionInterface } from \"../koala-list-item-menu-option.interface\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { KoalaListPageSize } from \"../list.abstract\";\nimport { first } from \"rxjs/operators\";\nimport { KoalaListBtnCollapseSubListConfigInterface } from \"../koala-list-btn-collapse-sub-list-config.interface\";\n\nexport class ListBuilder<DataType> {\n private config = {} as KoalaListConfigInterface;\n\n public service(\n service: (filter: BehaviorSubject<KoalaListFormFilterInterface>) => Observable<any> | Promise<any>,\n type: 'all' | 'onDemand' = \"all\",\n resultIndexName?: string,\n qtdResultIndexName?: string\n ) {\n this.config.typeRequest = type;\n this.config.responseIndexName = resultIndexName;\n this.config.responseQtdResultIndexName = response => response[qtdResultIndexName ?? ''] ?? [];\n this.config.columnSort = this.config?.filterParams?.getValue()?.sort;\n this.config.sortDirection = this.config?.filterParams?.getValue()?.order ?? 'asc';\n\n const response = service(this.config.filterParams ?? null);\n\n if (response instanceof Promise) {\n this.config.request = new Observable<any>(observe => {\n response.then(response => observe.next(response))\n .catch(error => observe.error(error));\n }).pipe(first());\n } else {\n this.config.request = new Observable<any>(observe => {\n (service(this.config.filterParams ?? null) as Observable<any>).pipe(first()).subscribe(observe);\n }).pipe(first());\n }\n\n return this;\n }\n\n public filterConfig(config: KoalaListFilterInterface) {\n this.config.filterFormConfig = config;\n return this;\n }\n\n public defaultFilter(config: KoalaListFormFilterInterface) {\n this.config.filterParams = new BehaviorSubject<KoalaListFormFilterInterface>(config);\n return this;\n }\n\n public pageSize(size: KoalaListPageSize) {\n this.config.pageSize = size;\n return this;\n }\n\n public columns(columns: string[]) {\n this.config.columnsToShowInList = columns;\n return this;\n }\n\n public itemColumn(item: KoalaListItemInterface<DataType>) {\n (this.config.itemsList?.length > 0) ?\n this.config.itemsList.push(item) :\n this.config.itemsList = [item];\n\n return this;\n }\n\n public actionList(item: KoalaListItemMenuOptionInterface<DataType>) {\n (this.config.itemsMenuListOptions?.length ?? 0 > 0) ?\n this.config.itemsMenuListOptions?.push(item) :\n this.config.itemsMenuListOptions = [item];\n\n return this;\n }\n\n public getDataSource(fn: (dataSource: DataType[]) => void) {\n this.config.getDataSource = fn;\n return this;\n }\n\n public getSelectionList(fn: (selection: SelectionModel<DataType>) => void) {\n this.config.getSelectionList = fn;\n return this;\n }\n\n public emptyListComponent(component: Type<any>, data?: any) {\n this.config.emptyListComponent = new KoalaDynamicComponent(component, data);\n return this;\n }\n\n public errorListComponent(component: Type<any>, data?: any) {\n this.config.errorListComponent = new KoalaDynamicComponent(component, data);\n return this;\n }\n\n public disableCheckboxItemList(fn: (item: DataType) => boolean) {\n this.config.disabledCheckboxItemList = fn;\n return this;\n }\n\n public setSubList(config: (item: DataType) => KoalaListConfigInterface) {\n this.config.subListConfig = config;\n return this;\n }\n\n public defineBtnCollapseSubListConfig(config: KoalaListBtnCollapseSubListConfigInterface<DataType>) {\n this.config.btnCollapseSubListConfig = config;\n return this;\n }\n\n public hidePaginator(hide: boolean = true) {\n this.config.hidePaginator = hide;\n return this;\n }\n\n public setCustomClass(className: string) {\n this.config.customClass = className;\n return this;\n }\n\n public getConfig(): KoalaListConfigInterface {\n this.config.reload = new BehaviorSubject<boolean>(false);\n return this.config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ListBuilder } from \"./list-builder/list.builder\";\n\n@Injectable({providedIn: \"any\"})\nexport class KoalaListService {\n\n public build<DataType>() {\n return new ListBuilder<DataType>();\n }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { BehaviorSubject, merge, Observable, Subscription } from 'rxjs';\nimport { FormAbstract } from '@koalarx/ui/form';\nimport { FormGroup } from '@angular/forms';\nimport { debounceTime, first, map, startWith, switchMap } from 'rxjs/operators';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { KoalaListFormFilterInterface } from './koala-list-form-filter.interface';\nimport { KoalaDynamicComponent } from \"@koalarx/ui/dynamic-component\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { KoalaListConfigInterface } from \"./koala.list-config.interface\";\nimport { randomString } from \"@koalarx/utils/operators/string\";\n\nexport type KoalaListPageSize = 10 | 20 | 30 | 50 | 100;\n\nexport abstract class ListAbstract extends FormAbstract {\n public selection = new SelectionModel<object>(true, []);\n public limitOptions: number[] = [10, 20, 30, 50, 100];\n public showMenuList: boolean = false;\n public allSelected$ = new BehaviorSubject<boolean>(false);\n public dataSource = new MatTableDataSource<any>([]);\n public typeRequest: 'all' | 'onDemand' = 'onDemand';\n public filterParams = new BehaviorSubject<KoalaListFormFilterInterface|null>(null);\n public filterError$ = new BehaviorSubject<any>(null);\n public emptyListComponent?: KoalaDynamicComponent;\n public errorListComponent?: KoalaDynamicComponent;\n public pageSize: KoalaListPageSize;\n public tableId = randomString(20, {uppercase: true, lowercase: true});\n\n protected config?: KoalaListConfigInterface;\n protected paginator?: MatPaginator;\n protected sort?: MatSort;\n\n private subscriptionList?: Subscription;\n private subscriptionSortList?: Subscription;\n private intervalSortList: any;\n\n protected constructor(\n private requestFunction: () => Observable<any>,\n private requestResponseFunction: <T>(results: T[]) => void,\n formSearch: () => FormGroup\n ) {\n super(formSearch);\n }\n\n public selectAll() {\n this.isAllSelected() ?\n this.selection.clear() :\n this.dataSource.data.forEach(item => {\n if (\n (this.config?.disabledCheckboxItemList && !this.config.disabledCheckboxItemList(item)) ||\n !this.config?.disabledCheckboxItemList\n ) {\n this.selection.select(item);\n }\n });\n\n this.isAllSelected();\n }\n\n public defineStatusSelectAll(status: boolean) {\n this.allSelected$.next(status);\n return this.allSelected$.getValue();\n }\n\n public selectItem() {\n setTimeout(() => {\n this.showMenuList = this.selection.hasValue();\n this.isAllSelected();\n }, 50);\n }\n\n public async search(filter?: any) {\n this.loading(true);\n this.selection.clear();\n if (this.paginator) {\n this.paginator.firstPage();\n }\n this.filterParams.next({\n params: filter,\n sort: this.sort?.active ?? '',\n order: this.sort?.direction ?? 'asc',\n page: this.paginator?.pageIndex ?? 0,\n limit: this.paginator?.pageSize ?? 30\n });\n }\n\n protected onDestroy() {\n this.subscriptionSortList?.unsubscribe();\n this.subscriptionList?.unsubscribe();\n clearInterval(this.intervalSortList);\n }\n\n protected async afterViewInit() {\n let tentativas = 0;\n let stop = false;\n do {\n tentativas++;\n await delay(400);\n if (this.sort || this.emptyListComponent) {\n this.prepareSearch().then();\n if (this.emptyListComponent) stop = true;\n } else if (tentativas > 10) {\n stop = true;\n }\n } while (!this.sort && !stop);\n }\n\n private async prepareSearch() {\n this.intervalSortList = setInterval(() => {\n if (this.sort && !this.subscriptionSortList) {\n this.subscriptionSortList = this.sort.sortChange.subscribe(() => {\n const filter = this.filterParams.value ?? {} as any;\n filter.sort = this.sort?.active ?? '';\n filter.order = this.sort?.direction ?? '';\n this.filterParams.next(filter);\n });\n } else if (!this.sort && this.subscriptionSortList) {\n this.subscriptionSortList.unsubscribe();\n }\n }, 50);\n\n if (this.typeRequest === 'onDemand') {\n this.subscriptionList = merge(this.paginator?.page ?? new Observable(), this.filterParams).pipe(\n startWith({}),\n switchMap(() => new Observable(observe => {\n this.loading(true);\n this.selection.clear();\n if (this.filterParams.value) {\n this.filterParams.value.sort = this.sort?.active ?? this.config?.columnSort ?? '';\n this.filterParams.value.order = this.sort?.direction ?? this.config?.sortDirection ?? '';\n this.filterParams.value.page = this.paginator?.pageIndex ?? 0;\n this.filterParams.value.limit = this.paginator?.pageSize ?? 30;\n }\n observe.next(true);\n })),\n debounceTime(300),\n switchMap(() => this.runRequestFunction()),\n map((response) => {\n this.loading(false);\n this.scrollTableToTop();\n return this.requestResponseFunction(response);\n })\n ).subscribe();\n } else {\n if (this.paginator) this.dataSource.paginator = this.paginator;\n this.subscriptionList = this.filterParams.pipe(\n startWith({}),\n debounceTime(300),\n switchMap(() => this.runRequestFunction()),\n map((response) => {\n this.loading(false);\n this.scrollTableToTop();\n return this.requestResponseFunction(response);\n })\n ).subscribe();\n }\n\n if (this.emptyListComponent) {\n do {\n await delay(301);\n if (this.sort) {\n if (this.typeRequest === \"onDemand\") {\n this.sort.sortChange.subscribe(() => {\n if (this.paginator) this.paginator.pageIndex = 0\n });\n } else {\n this.dataSource.sort = this.sort;\n }\n }\n } while (!this.sort);\n }\n }\n\n private isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = (this.config?.disabledCheckboxItemList ?\n this.dataSource.data.filter(item => !(this.config?.disabledCheckboxItemList\n ? this.config.disabledCheckboxItemList(item)\n : '')) :\n this.dataSource.data).length;\n\n return this.defineStatusSelectAll(numSelected === numRows);\n }\n\n private runRequestFunction() {\n return new Observable<unknown[]>(observe => {\n this.requestFunction().pipe(first()).subscribe({\n next: response => observe.next(response),\n error: err => {\n if (this.errorListComponent) {\n this.filterError$.next(err);\n this.errorListComponent.data = err;\n }\n this.loading(false);\n observe.next([]);\n }\n })\n })\n }\n\n private scrollTableToTop() {\n document.getElementById(this.tableId)?.parentElement?.scrollTo({top: 0});\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ListAbstract } from './list.abstract';\nimport { KoalaListItemMenuOptionInterface } from './koala-list-item-menu-option.interface';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { KoalaListFilterInterface } from './koala-list-filter.interface';\nimport { KoalaDynamicFormService } from '@koalarx/ui/form';\nimport { KoalaListItemInterface } from './koala-list-item.interface';\nimport { KoalaListFormFilterInterface } from \"./koala-list-form-filter.interface\";\nimport { MatSort, SortDirection } from \"@angular/material/sort\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { koala } from \"@koalarx/utils\";\nimport { DeviceDetectorService } from \"ngx-device-detector\";\nimport { KoalaListConfigInterface } from \"./koala.list-config.interface\";\nimport { MatPaginator } from \"@angular/material/paginator\";\nimport { KoalaListBtnCollapseSubListConfigInterface } from \"./koala-list-btn-collapse-sub-list-config.interface\";\nimport { animate, state, style, transition, trigger } from \"@angular/animations\";\n\n@Component({\n selector: 'koala-list',\n templateUrl: 'list.component.html',\n styleUrls: ['list.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({height: '0px', minHeight: '0'})),\n state('expanded', style({height: '*'})),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class ListComponent extends ListAbstract implements OnInit, AfterViewInit, OnDestroy {\n @Input() public config?: KoalaListConfigInterface;\n\n @ViewChild(MatPaginator) protected paginator: MatPaginator;\n @ViewChild(MatSort, {static: false}) protected sort: MatSort;\n\n public customClass?: string;\n public columnsToShowInList?: string[];\n public hidePaginator?: boolean = false;\n public columnSort?: string;\n public sortDirection: SortDirection = 'asc';\n public itemsMenuListOptions?: KoalaListItemMenuOptionInterface<any>[];\n public itemsList?: KoalaListItemInterface<any>[];\n public request?: Observable<any>;\n public responseIndexName?: string;\n public responseQtdResultIndexName?: (response: any) => number;\n public responseRequest?: any;\n public typeRequest: 'all' | 'onDemand' = 'all'\n public filterFormConfig?: KoalaListFilterInterface;\n public reload?: BehaviorSubject<boolean>;\n public formFilter?: FormGroup;\n public showAdvancedFilter: boolean = false;\n public qtdListResult = 0;\n public disabledCheckboxItemList?: (item: any) => boolean;\n public expandedElement = false;\n public btnCollapseSubListConfig?: KoalaListBtnCollapseSubListConfigInterface<any>;\n public subListConfig?: (item: any) => KoalaListConfigInterface;\n\n constructor(\n private fb: FormBuilder,\n private dynamicFormService: KoalaDynamicFormService,\n private deviceService: DeviceDetectorService\n ) {\n super(\n () => this.config?.request ?? new Observable<any>(),\n (response) => {\n this.responseRequest = response;\n this.dataSource.data = this.config?.responseIndexName\n ? (this.config.responseIndexName\n ? response[this.config.responseIndexName]\n : [])\n : response;\n if (this.config?.getDataSource) this.config?.getDataSource(this.dataSource.data);\n this.qtdListResult = this.config?.responseQtdResultIndexName\n ? this.config.responseQtdResultIndexName(response) ?? 0\n : this.dataSource.data?.length ?? 0;\n },\n () => this.formFilter ?? fb.group({})\n );\n }\n\n ngOnInit() {\n this.initConfig();\n this.formFilter = this.fb.group({\n formSearch: this.filterFormConfig?.main?.form ?? [''],\n formAdvancedSearch: this.filterFormConfig?.advanced?.form ?? ['']\n });\n this.loading(true);\n if (this.filterFormConfig) {\n this.filterFormConfig?.main?.formConfig?.map(item => {\n item.class += ' padding-none w-99';\n return item;\n });\n this.filterFormConfig?.advanced?.formConfig?.map(item => {\n item.class += ' padding-none';\n return item;\n });\n if (this.filterFormConfig?.checkAndSearch) {\n this.formFilter.addControl(this.filterFormConfig.checkAndSearch.formControlName, new FormControl(this.filterFormConfig.checkAndSearch.isChecked ?? false));\n }\n }\n\n if (this.config.getSelectionList) this.config.getSelectionList(this.selection);\n\n if (this.reload) {\n this.reload.subscribe(async reload => {\n if (reload) {\n await this.filterSubmit();\n }\n });\n }\n }\n\n ngOnDestroy() {\n super.onDestroy();\n }\n\n ngAfterViewInit() {\n super.afterViewInit().then();\n }\n\n public async filterSubmit() {\n this.showAdvancedFilter = false;\n await delay(1);\n let dados = koala(\n this.filterFormConfig?.main?.form\n ? this.dynamicFormService.emitData(this.filterFormConfig?.main?.form)\n : {}\n )\n .object()\n .merge(\n this.filterFormConfig?.advanced?.form\n ? this.dynamicFormService.emitData(this.filterFormConfig?.advanced?.form)\n : {})\n .getValue();\n\n if (this.filterFormConfig?.checkAndSearch) {\n const controlName = this.filterFormConfig.checkAndSearch.formControlName;\n dados[controlName] = this.formFilter.get(controlName).value;\n }\n await super.search(dados);\n }\n\n public toogleFilter() {\n this.showAdvancedFilter = !this.showAdvancedFilter;\n }\n\n public haveOptionsOnItemLine(item: any) {\n return this.itemsMenuListOptions.filter(option => option.havePermission && (\n !option.showByItemList ||\n option.showByItemList(item)\n )).length > 0\n }\n\n public hasFooter() {\n return !!this.itemsList.find(item => !!item.footer);\n }\n\n private initConfig() {\n this.columnSort = this.config.columnSort ?? null;\n this.sortDirection = this.config.sortDirection ?? 'asc';\n this.itemsMenuListOptions = this.config.itemsMenuListOptions ?? [];\n this.typeRequest = this.config.typeRequest ?? 'all';\n this.qtdListResult = this.config.qtdListResult ?? 0;\n this.columnsToShowInList = this.config.columnsToShowInList;\n this.itemsList = this.config.itemsList.map(item => {\n if (!item.dblClick) {\n item.dblClick = () => {\n };\n }\n return item;\n });\n this.showAdvancedFilter = this.config.showAdvancedFilter;\n this.filterFormConfig = this.config.filterFormConfig;\n this.request = this.config.request;\n this.reload = this.config.reload;\n this.responseIndexName = this.config.responseIndexName;\n this.responseQtdResultIndexName = this.config.responseQtdResultIndexName;\n this.filterParams = this.config.filterParams ?? new BehaviorSubject<KoalaListFormFilterInterface>(null);\n this.emptyListComponent = this.config.emptyListComponent;\n this.errorListComponent = this.config.errorListComponent;\n this.pageSize = this.config.pageSize ?? 30;\n this.disabledCheckboxItemList = this.config.disabledCheckboxItemList;\n this.subListConfig = this.config.subListConfig;\n this.btnCollapseSubListConfig = this.config.btnCollapseSubListConfig;\n this.hidePaginator = this.config.hidePaginator;\n this.customClass = this.config.customClass;\n }\n}\n","<div class=\"list-container\" [ngClass]=\"customClass\">\n <div *ngIf=\"filterFormConfig\" class=\"list-filter\">\n <form (ngSubmit)=\"filterSubmit()\" [formGroup]=\"formFilter\">\n <div class=\"main\">\n <koala-dynamic-form\n *ngIf=\"filterFormConfig.main\"\n [form]=\"filterFormConfig.main.form\"\n [formConfig]=\"filterFormConfig.main.formConfig\"\n [setValues]=\"filterFormConfig.main.setValues\"\n [showFields]=\"filterFormConfig.main.showFields\">\n </koala-dynamic-form>\n <ul>\n <li *ngIf=\"filterFormConfig.advanced\" class=\"option\">\n <button (click)=\"toogleFilter()\" color=\"primary\" mat-icon-button matTooltip=\"Filtro Avançado\"\n matTooltipPosition=\"below\" type=\"button\">\n <mat-icon>tune</mat-icon>\n </button>\n </li>\n <li *ngIf=\"filterFormConfig.checkAndSearch\" class=\"checkbox-filter\">\n <mat-checkbox (click)=\"filterSubmit()\"\n [formControlName]=\"filterFormConfig.checkAndSearch.formControlName\">\n {{filterFormConfig.checkAndSearch.label}}\n </mat-checkbox>\n </li>\n <li class=\"option\">\n <koala-submit\n [btnSubmitDisabled]=\"btnSubmitDisabled\"\n [fg]=\"formFilter\"\n [iconButton]=\"true\"\n [loader]=\"loader\"\n icon=\"search\">\n </koala-submit>\n </li>\n </ul>\n </div>\n <div *ngIf=\"filterFormConfig.advanced\" [ngClass]=\"{'show': showAdvancedFilter}\" class=\"advanced\">\n <div class=\"container-filter\">\n <koala-dynamic-form\n [form]=\"filterFormConfig.advanced.form\"\n [formConfig]=\"filterFormConfig.advanced.formConfig\"\n [setValues]=\"filterFormConfig.advanced.setValues\"\n [showFields]=\"filterFormConfig.advanced.showFields\">\n </koala-dynamic-form>\n </div>\n </div>\n </form>\n </div>\n <nav class=\"menu-list\">\n <ul class=\"menu\">\n <li *ngIf=\"selection.hasValue()\">\n <ng-content select=\"[itemsSelectList]\"></ng-content>\n </li>\n <li *ngIf=\"selection.hasValue()\" class=\"text-center\">|</li>\n <li>\n <ng-content select=\"[itemsList]\"></ng-content>\n </li>\n </ul>\n </nav>\n <div *ngIf=\"loader | async\" class=\"spinner-container\" [ngClass]=\"{\n 'no-filter': !filterFormConfig\n }\">\n <mat-spinner color=\"primary\" diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"list\">\n <table\n *ngIf=\"!emptyListComponent || (emptyListComponent && dataSource?.data?.length > 0) else emptyList\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"columnSort\"\n [id]=\"tableId\"\n multiTemplateDataRows\n class=\"table-hover\"\n mat-table\n matSort\n [matSortDirection]=\"sortDirection\" matSortDisableClear>\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox (change)=\"$event ? selectAll() : null\"\n [checked]=\"selection.hasValue() && allSelected$ | async\"\n [indeterminate]=\"selection.hasValue() && !(allSelected$ | async)\">\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let item\" mat-cell>\n <mat-checkbox *ngIf=\"disabledCheckboxItemList ? !disabledCheckboxItemList(item) : true\"\n (change)=\"$event ? selection.toggle(item) : null\"\n (click)=\"$event.stopPropagation(); selectItem();\"\n [checked]=\"selection.isSelected(item)\">\n </mat-checkbox>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"collapseButton\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <koala-button\n *ngIf=\"btnCollapseSubListConfig.show(item)\"\n (click)=\"expandedElement = expandedElement === item ? null : item\"\n [koalaIcon]=\"btnCollapseSubListConfig.koalaIcon\"\n [icon]=\"btnCollapseSubListConfig.icon\"\n [tooltip]=\"btnCollapseSubListConfig.tooltip\"\n [color]=\"btnCollapseSubListConfig.iconColor\"\n [backgroundColor]=\"btnCollapseSubListConfig.backgroundColor\"\n [koalaIconSize]=\"22\">\n </koala-button>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngFor=\"let itemList of itemsList\" [matColumnDef]=\"itemList.columnDef\">\n <th *matHeaderCellDef [mat-sort-header]=\"itemList.sortHeader\" [disabled]=\"!itemList.sortHeader\" mat-header-cell>{{itemList.label}}</th>\n <td (dblclick)=\"itemList.dblClick(item)\" *matCellDef=\"let item\" mat-cell>\n\t <koala-dynamic-component *ngIf=\"itemList.itemComponent else itemText\"\n\t [dynamicComponent]=\"itemList.itemComponent(item)\"></koala-dynamic-component>\n\t <ng-template #itemText>\n\t {{itemList.itemNameProperty(item)}}\n\t </ng-template>\n </td>\n <td *matFooterCellDef mat-footer-cell>\n <koala-dynamic-component *ngIf=\"itemList.footer?.itemComponent else itemFooterText\"\n [dynamicComponent]=\"itemList.footer?.itemComponent(responseRequest)\"></koala-dynamic-component>\n <ng-template #itemFooterText>\n {{itemList.footer?.itemNameProperty(responseRequest)}}\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"koalaListDetails\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" [attr.colspan]=\"columnsToShowInList.length\" mat-cell>\n <div class=\"item-detail\" [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\">\n <koala-list [config]=\"subListConfig(item)\"></koala-list>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container matColumnDef=\"options\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <div *ngIf=\"haveOptionsOnItemLine(item)\">\n <button [matMenuTriggerFor]=\"options\" mat-icon-button type=\"button\">\n <i class='material-icons'>more_vert</i>\n </button>\n <mat-menu #options=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n\t <div *ngFor=\"let option of itemsMenuListOptions\">\n\t <button\n\t\t (click)=\"option.action(item)\"\n\t\t *ngIf=\"option.havePermission && (\n\t\t !option.showByItemList ||\n\t\t option.showByItemList(item)\n\t )\"\n\t\t mat-menu-item>\n\t <mat-icon>{{option.icon}}</mat-icon>\n\t <span>{{option.name}}</span>\n\t </button>\n\t </div>\n </mat-menu>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"columnsToShowInList; sticky: true\" mat-header-row></tr>\n <tr *matRowDef=\"let item; columns: columnsToShowInList;\" mat-row></tr>\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\">\n <tr mat-row *matRowDef=\"let row; columns: ['koalaListDetails']\" class=\"item-detail-row\"></tr>\n </ng-container>\n <ng-container *ngIf=\"hasFooter()\">\n <tr *matFooterRowDef=\"columnsToShowInList; sticky: true\" mat-footer-row></tr>\n </ng-container>\n </table>\n <ng-template #emptyList>\n <koala-dynamic-component *ngIf=\"!(filterError$ | async) else errorList\" [dynamicComponent]=\"emptyListComponent\"></koala-dynamic-component>\n <ng-template #errorList>\n <koala-dynamic-component [dynamicComponent]=\"errorListComponent\"></koala-dynamic-component>\n </ng-template>\n </ng-template>\n </div>\n <div *ngIf=\"!hidePaginator\" class=\"content-paginator\">\n <mat-paginator\n [length]=\"qtdListResult\"\n [pageSizeOptions]=\"limitOptions\"\n [pageSize]=\"pageSize\"\n showFirstLastButtons>\n </mat-paginator>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ListComponent } from './list.component';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\nimport { CommonModule } from '@angular/common';\nimport { KoalaFormModule } from '@koalarx/ui/form';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { PaginationProvider } from './providers/pagination/pagination.provider';\nimport { KoalaFolderPageModule } from '@koalarx/ui/folder-page';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { KoalaDynamicComponentModule } from '@koalarx/ui/dynamic-component';\nimport { KoalaButtonModule } from \"@koalarx/ui/button\";\n\n@NgModule({\n declarations: [\n ListComponent\n ],\n imports: [\n CommonModule,\n KoalaFolderPageModule,\n KoalaFormModule,\n KoalaDynamicComponentModule,\n KoalaButtonModule,\n MatMenuModule,\n MatTableModule,\n MatSortModule,\n MatTooltipModule,\n MatPaginatorModule\n ],\n exports: [\n ListComponent\n ],\n providers: [{\n provide: MatPaginatorIntl,\n useClass: PaginationProvider\n }]\n})\nexport class KoalaListModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koalarx-ui-list.mjs","sources":["../../../projects/list/src/lib/providers/pagination/pagination.provider.ts","../../../projects/list/src/lib/list-builder/list.builder.ts","../../../projects/list/src/lib/koala.list.service.ts","../../../projects/list/src/lib/list.abstract.ts","../../../projects/list/src/lib/list.component.ts","../../../projects/list/src/lib/list.component.html","../../../projects/list/src/lib/koala.list.module.ts","../../../projects/list/src/koalarx-ui-list.ts"],"sourcesContent":["import { MatPaginatorIntl } from '@angular/material/paginator';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PaginationProvider extends MatPaginatorIntl {\n constructor() {\n super();\n this.getAndInitTranslations();\n }\n\n public getAndInitTranslations() {\n this.itemsPerPageLabel = \"Itens por Página\";\n this.firstPageLabel = \"Primeira Página\";\n this.nextPageLabel = \"Próxima Página\";\n this.previousPageLabel = \"Página Anterior\";\n this.lastPageLabel = \"Última Página\";\n this.changes.next();\n }\n\n public getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 / ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} / ${length}`;\n }\n}\n","import { KoalaListConfigInterface } from \"../koala.list-config.interface\";\nimport { KoalaListItemInterface } from \"../koala-list-item.interface\";\nimport { Type } from \"@angular/core\";\nimport { KoalaDynamicComponent } from \"@koalarx/ui/dynamic-component\";\nimport { KoalaListFilterInterface } from \"../koala-list-filter.interface\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { KoalaListFormFilterInterface } from \"../koala-list-form-filter.interface\";\nimport { KoalaListItemMenuOptionInterface } from \"../koala-list-item-menu-option.interface\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { KoalaListPageSize } from \"../list.abstract\";\nimport { first } from \"rxjs/operators\";\nimport { KoalaListBtnCollapseSubListConfigInterface } from \"../koala-list-btn-collapse-sub-list-config.interface\";\n\nexport class ListBuilder<DataType> {\n private config = {} as KoalaListConfigInterface;\n\n public service(\n service: (filter: BehaviorSubject<KoalaListFormFilterInterface>) => Observable<any> | Promise<any>,\n type: 'all' | 'onDemand' = \"all\",\n resultIndexName?: string,\n qtdResultIndexName?: string\n ) {\n this.config.typeRequest = type;\n this.config.responseIndexName = resultIndexName;\n this.config.responseQtdResultIndexName = response => response[qtdResultIndexName ?? ''] ?? [];\n this.config.columnSort = this.config?.filterParams?.getValue()?.sort;\n this.config.sortDirection = this.config?.filterParams?.getValue()?.order ?? 'asc';\n\n const response = service(this.config.filterParams ?? null);\n\n if (response instanceof Promise) {\n this.config.request = new Observable<any>(observe => {\n response.then(response => observe.next(response))\n .catch(error => observe.error(error));\n }).pipe(first());\n } else {\n this.config.request = new Observable<any>(observe => {\n (service(this.config.filterParams ?? null) as Observable<any>).pipe(first()).subscribe(observe);\n }).pipe(first());\n }\n\n return this;\n }\n\n public filterConfig(config: KoalaListFilterInterface) {\n this.config.filterFormConfig = config;\n return this;\n }\n\n public defaultFilter(config: KoalaListFormFilterInterface) {\n this.config.filterParams = new BehaviorSubject<KoalaListFormFilterInterface>(config);\n return this;\n }\n\n public pageSize(size: KoalaListPageSize) {\n this.config.pageSize = size;\n return this;\n }\n\n public columns(columns: string[]) {\n this.config.columnsToShowInList = columns;\n return this;\n }\n\n public itemColumn(item: KoalaListItemInterface<DataType>) {\n (this.config.itemsList?.length > 0) ?\n this.config.itemsList.push(item) :\n this.config.itemsList = [item];\n\n return this;\n }\n\n public actionList(item: KoalaListItemMenuOptionInterface<DataType>) {\n (this.config.itemsMenuListOptions?.length ?? 0 > 0) ?\n this.config.itemsMenuListOptions?.push(item) :\n this.config.itemsMenuListOptions = [item];\n\n return this;\n }\n\n public getDataSource(fn: (dataSource: DataType[]) => void) {\n this.config.getDataSource = fn;\n return this;\n }\n\n public getSelectionList(fn: (selection: SelectionModel<DataType>) => void) {\n this.config.getSelectionList = fn;\n return this;\n }\n\n public emptyListComponent(component: Type<any>, data?: any) {\n this.config.emptyListComponent = new KoalaDynamicComponent(component, data);\n return this;\n }\n\n public errorListComponent(component: Type<any>, data?: any) {\n this.config.errorListComponent = new KoalaDynamicComponent(component, data);\n return this;\n }\n\n public disableCheckboxItemList(fn: (item: DataType) => boolean) {\n this.config.disabledCheckboxItemList = fn;\n return this;\n }\n\n public setSubList(config: (item: DataType) => KoalaListConfigInterface) {\n this.config.subListConfig = config;\n return this;\n }\n\n public defineBtnCollapseSubListConfig(config: KoalaListBtnCollapseSubListConfigInterface<DataType>) {\n this.config.btnCollapseSubListConfig = config;\n return this;\n }\n\n public hidePaginator(hide: boolean = true) {\n this.config.hidePaginator = hide;\n return this;\n }\n\n public setCustomClass(className: string) {\n this.config.customClass = className;\n return this;\n }\n\n public getConfig(): KoalaListConfigInterface {\n this.config.reload = new BehaviorSubject<boolean>(false);\n return this.config;\n }\n\n public setLimitOptions(options: number[]) {\n this.config.limitOptions = options;\n }\n\n public addLimitOption(limit: number) {\n if (!this.config.limitOptions) this.config.limitOptions = [10, 20, 30, 50, 100];\n\n this.config.limitOptions.push(limit);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ListBuilder } from \"./list-builder/list.builder\";\n\n@Injectable({providedIn: \"any\"})\nexport class KoalaListService {\n\n public build<DataType>() {\n return new ListBuilder<DataType>();\n }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { BehaviorSubject, merge, Observable, Subscription } from 'rxjs';\nimport { FormAbstract } from '@koalarx/ui/form';\nimport { FormGroup } from '@angular/forms';\nimport { debounceTime, first, map, startWith, switchMap } from 'rxjs/operators';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { KoalaListFormFilterInterface } from './koala-list-form-filter.interface';\nimport { KoalaDynamicComponent } from \"@koalarx/ui/dynamic-component\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { KoalaListConfigInterface } from \"./koala.list-config.interface\";\nimport { randomString } from \"@koalarx/utils/operators/string\";\n\nexport type KoalaListPageSize = 10 | 20 | 30 | 50 | 100;\n\nexport abstract class ListAbstract extends FormAbstract {\n public selection = new SelectionModel<object>(true, []);\n public limitOptions: number[] = [10, 20, 30, 50, 100];\n public showMenuList: boolean = false;\n public allSelected$ = new BehaviorSubject<boolean>(false);\n public dataSource = new MatTableDataSource<any>([]);\n public typeRequest: 'all' | 'onDemand' = 'onDemand';\n public filterParams = new BehaviorSubject<KoalaListFormFilterInterface|null>(null);\n public filterError$ = new BehaviorSubject<any>(null);\n public emptyListComponent?: KoalaDynamicComponent;\n public errorListComponent?: KoalaDynamicComponent;\n public pageSize: KoalaListPageSize;\n public tableId = randomString(20, {uppercase: true, lowercase: true});\n\n protected config?: KoalaListConfigInterface;\n protected paginator?: MatPaginator;\n protected sort?: MatSort;\n\n private subscriptionList?: Subscription;\n private subscriptionSortList?: Subscription;\n private intervalSortList: any;\n\n protected constructor(\n private requestFunction: () => Observable<any>,\n private requestResponseFunction: <T>(results: T[]) => void,\n formSearch: () => FormGroup\n ) {\n super(formSearch);\n }\n\n public selectAll() {\n this.isAllSelected() ?\n this.selection.clear() :\n this.dataSource.data.forEach(item => {\n if (\n (this.config?.disabledCheckboxItemList && !this.config.disabledCheckboxItemList(item)) ||\n !this.config?.disabledCheckboxItemList\n ) {\n this.selection.select(item);\n }\n });\n\n this.isAllSelected();\n }\n\n public defineStatusSelectAll(status: boolean) {\n this.allSelected$.next(status);\n return this.allSelected$.getValue();\n }\n\n public selectItem() {\n setTimeout(() => {\n this.showMenuList = this.selection.hasValue();\n this.isAllSelected();\n }, 50);\n }\n\n public async search(filter?: any) {\n this.loading(true);\n this.selection.clear();\n if (this.paginator) {\n this.paginator.firstPage();\n }\n this.filterParams.next({\n params: filter,\n sort: this.sort?.active ?? '',\n order: this.sort?.direction ?? 'asc',\n page: this.paginator?.pageIndex ?? 0,\n limit: this.paginator?.pageSize ?? 30\n });\n }\n\n protected onDestroy() {\n this.subscriptionSortList?.unsubscribe();\n this.subscriptionList?.unsubscribe();\n clearInterval(this.intervalSortList);\n }\n\n protected async afterViewInit() {\n let tentativas = 0;\n let stop = false;\n do {\n tentativas++;\n await delay(400);\n if (this.sort || this.emptyListComponent) {\n this.prepareSearch().then();\n if (this.emptyListComponent) stop = true;\n } else if (tentativas > 10) {\n stop = true;\n }\n } while (!this.sort && !stop);\n }\n\n private async prepareSearch() {\n this.intervalSortList = setInterval(() => {\n if (this.sort && !this.subscriptionSortList) {\n this.subscriptionSortList = this.sort.sortChange.subscribe(() => {\n const filter = this.filterParams.value ?? {} as any;\n filter.sort = this.sort?.active ?? '';\n filter.order = this.sort?.direction ?? '';\n this.filterParams.next(filter);\n });\n } else if (!this.sort && this.subscriptionSortList) {\n this.subscriptionSortList.unsubscribe();\n }\n }, 50);\n\n if (this.typeRequest === 'onDemand') {\n this.subscriptionList = merge(this.paginator?.page ?? new Observable(), this.filterParams).pipe(\n startWith({}),\n switchMap(() => new Observable(observe => {\n this.loading(true);\n this.selection.clear();\n if (this.filterParams.value) {\n this.filterParams.value.sort = this.sort?.active ?? this.config?.columnSort ?? '';\n this.filterParams.value.order = this.sort?.direction ?? this.config?.sortDirection ?? '';\n this.filterParams.value.page = this.paginator?.pageIndex ?? 0;\n this.filterParams.value.limit = this.paginator?.pageSize ?? 30;\n }\n observe.next(true);\n })),\n debounceTime(300),\n switchMap(() => this.runRequestFunction()),\n map((response) => {\n this.loading(false);\n this.scrollTableToTop();\n return this.requestResponseFunction(response);\n })\n ).subscribe();\n } else {\n if (this.paginator) this.dataSource.paginator = this.paginator;\n this.subscriptionList = this.filterParams.pipe(\n startWith({}),\n debounceTime(300),\n switchMap(() => this.runRequestFunction()),\n map((response) => {\n this.loading(false);\n this.scrollTableToTop();\n return this.requestResponseFunction(response);\n })\n ).subscribe();\n }\n\n if (this.emptyListComponent) {\n do {\n await delay(301);\n if (this.sort) {\n if (this.typeRequest === \"onDemand\") {\n this.sort.sortChange.subscribe(() => {\n if (this.paginator) this.paginator.pageIndex = 0\n });\n } else {\n this.dataSource.sort = this.sort;\n }\n }\n } while (!this.sort);\n }\n }\n\n private isAllSelected() {\n const numSelected = this.selection.selected.length;\n const numRows = (this.config?.disabledCheckboxItemList ?\n this.dataSource.data.filter(item => !(this.config?.disabledCheckboxItemList\n ? this.config.disabledCheckboxItemList(item)\n : '')) :\n this.dataSource.data).length;\n\n return this.defineStatusSelectAll(numSelected === numRows);\n }\n\n private runRequestFunction() {\n return new Observable<unknown[]>(observe => {\n this.requestFunction().pipe(first()).subscribe({\n next: response => observe.next(response),\n error: err => {\n if (this.errorListComponent) {\n this.filterError$.next(err);\n this.errorListComponent.data = err;\n }\n this.loading(false);\n observe.next([]);\n }\n })\n })\n }\n\n private scrollTableToTop() {\n document.getElementById(this.tableId)?.parentElement?.scrollTo({top: 0});\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ListAbstract } from './list.abstract';\nimport { KoalaListItemMenuOptionInterface } from './koala-list-item-menu-option.interface';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { KoalaListFilterInterface } from './koala-list-filter.interface';\nimport { KoalaDynamicFormService } from '@koalarx/ui/form';\nimport { KoalaListItemInterface } from './koala-list-item.interface';\nimport { KoalaListFormFilterInterface } from \"./koala-list-form-filter.interface\";\nimport { MatSort, SortDirection } from \"@angular/material/sort\";\nimport { delay } from \"@koalarx/utils/operators/delay\";\nimport { koala } from \"@koalarx/utils\";\nimport { DeviceDetectorService } from \"ngx-device-detector\";\nimport { KoalaListConfigInterface } from \"./koala.list-config.interface\";\nimport { MatPaginator } from \"@angular/material/paginator\";\nimport { KoalaListBtnCollapseSubListConfigInterface } from \"./koala-list-btn-collapse-sub-list-config.interface\";\nimport { animate, state, style, transition, trigger } from \"@angular/animations\";\n\n@Component({\n selector: 'koala-list',\n templateUrl: 'list.component.html',\n styleUrls: ['list.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({height: '0px', minHeight: '0'})),\n state('expanded', style({height: '*'})),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class ListComponent extends ListAbstract implements OnInit, AfterViewInit, OnDestroy {\n @Input() public config?: KoalaListConfigInterface;\n\n @ViewChild(MatPaginator) protected paginator: MatPaginator;\n @ViewChild(MatSort, {static: false}) protected sort: MatSort;\n\n public customClass?: string;\n public columnsToShowInList?: string[];\n public hidePaginator?: boolean = false;\n public columnSort?: string;\n public sortDirection: SortDirection = 'asc';\n public itemsMenuListOptions?: KoalaListItemMenuOptionInterface<any>[];\n public itemsList?: KoalaListItemInterface<any>[];\n public request?: Observable<any>;\n public responseIndexName?: string;\n public responseQtdResultIndexName?: (response: any) => number;\n public responseRequest?: any;\n public typeRequest: 'all' | 'onDemand' = 'all'\n public filterFormConfig?: KoalaListFilterInterface;\n public reload?: BehaviorSubject<boolean>;\n public formFilter?: FormGroup;\n public showAdvancedFilter: boolean = false;\n public qtdListResult = 0;\n public disabledCheckboxItemList?: (item: any) => boolean;\n public expandedElement = false;\n public btnCollapseSubListConfig?: KoalaListBtnCollapseSubListConfigInterface<any>;\n public subListConfig?: (item: any) => KoalaListConfigInterface;\n\n constructor(\n private fb: FormBuilder,\n private dynamicFormService: KoalaDynamicFormService,\n private deviceService: DeviceDetectorService\n ) {\n super(\n () => this.config?.request ?? new Observable<any>(),\n (response) => {\n this.responseRequest = response;\n this.dataSource.data = this.config?.responseIndexName\n ? (this.config.responseIndexName\n ? response[this.config.responseIndexName]\n : [])\n : response;\n if (this.config?.getDataSource) this.config?.getDataSource(this.dataSource.data);\n this.qtdListResult = this.config?.responseQtdResultIndexName\n ? this.config.responseQtdResultIndexName(response) ?? 0\n : this.dataSource.data?.length ?? 0;\n },\n () => this.formFilter ?? fb.group({})\n );\n }\n\n ngOnInit() {\n this.initConfig();\n this.formFilter = this.fb.group({\n formSearch: this.filterFormConfig?.main?.form ?? [''],\n formAdvancedSearch: this.filterFormConfig?.advanced?.form ?? ['']\n });\n this.loading(true);\n if (this.filterFormConfig) {\n this.filterFormConfig?.main?.formConfig?.map(item => {\n item.class += ' padding-none w-99';\n return item;\n });\n this.filterFormConfig?.advanced?.formConfig?.map(item => {\n item.class += ' padding-none';\n return item;\n });\n if (this.filterFormConfig?.checkAndSearch) {\n this.formFilter.addControl(this.filterFormConfig.checkAndSearch.formControlName, new FormControl(this.filterFormConfig.checkAndSearch.isChecked ?? false));\n }\n }\n\n if (this.config.getSelectionList) this.config.getSelectionList(this.selection);\n\n if (this.reload) {\n this.reload.subscribe(async reload => {\n if (reload) {\n await this.filterSubmit();\n }\n });\n }\n }\n\n ngOnDestroy() {\n super.onDestroy();\n }\n\n ngAfterViewInit() {\n super.afterViewInit().then();\n }\n\n public async filterSubmit() {\n this.showAdvancedFilter = false;\n await delay(1);\n let dados = koala(\n this.filterFormConfig?.main?.form\n ? this.dynamicFormService.emitData(this.filterFormConfig?.main?.form)\n : {}\n )\n .object()\n .merge(\n this.filterFormConfig?.advanced?.form\n ? this.dynamicFormService.emitData(this.filterFormConfig?.advanced?.form)\n : {})\n .getValue();\n\n if (this.filterFormConfig?.checkAndSearch) {\n const controlName = this.filterFormConfig.checkAndSearch.formControlName;\n dados[controlName] = this.formFilter.get(controlName).value;\n }\n await super.search(dados);\n }\n\n public toogleFilter() {\n this.showAdvancedFilter = !this.showAdvancedFilter;\n }\n\n public haveOptionsOnItemLine(item: any) {\n return this.itemsMenuListOptions.filter(option => option.havePermission && (\n !option.showByItemList ||\n option.showByItemList(item)\n )).length > 0\n }\n\n public hasFooter() {\n return !!this.itemsList.find(item => !!item.footer);\n }\n\n private initConfig() {\n this.columnSort = this.config.columnSort ?? null;\n this.sortDirection = this.config.sortDirection ?? 'asc';\n this.itemsMenuListOptions = this.config.itemsMenuListOptions ?? [];\n this.typeRequest = this.config.typeRequest ?? 'all';\n this.qtdListResult = this.config.qtdListResult ?? 0;\n this.columnsToShowInList = this.config.columnsToShowInList;\n this.itemsList = this.config.itemsList.map(item => {\n if (!item.dblClick) {\n item.dblClick = () => {\n };\n }\n return item;\n });\n this.showAdvancedFilter = this.config.showAdvancedFilter;\n this.filterFormConfig = this.config.filterFormConfig;\n this.request = this.config.request;\n this.reload = this.config.reload;\n this.responseIndexName = this.config.responseIndexName;\n this.responseQtdResultIndexName = this.config.responseQtdResultIndexName;\n this.filterParams = this.config.filterParams ?? new BehaviorSubject<KoalaListFormFilterInterface>(null);\n this.emptyListComponent = this.config.emptyListComponent;\n this.errorListComponent = this.config.errorListComponent;\n this.pageSize = this.config.pageSize ?? 30;\n this.disabledCheckboxItemList = this.config.disabledCheckboxItemList;\n this.subListConfig = this.config.subListConfig;\n this.btnCollapseSubListConfig = this.config.btnCollapseSubListConfig;\n this.hidePaginator = this.config.hidePaginator;\n this.customClass = this.config.customClass;\n this.limitOptions = this.config.limitOptions ?? this.limitOptions;\n }\n}\n","<div class=\"list-container\" [ngClass]=\"customClass\">\n <div *ngIf=\"filterFormConfig\" class=\"list-filter\">\n <form (ngSubmit)=\"filterSubmit()\" [formGroup]=\"formFilter\">\n <div class=\"main\">\n <koala-dynamic-form\n *ngIf=\"filterFormConfig.main\"\n [form]=\"filterFormConfig.main.form\"\n [formConfig]=\"filterFormConfig.main.formConfig\"\n [setValues]=\"filterFormConfig.main.setValues\"\n [showFields]=\"filterFormConfig.main.showFields\">\n </koala-dynamic-form>\n <ul>\n <li *ngIf=\"filterFormConfig.advanced\" class=\"option\">\n <button (click)=\"toogleFilter()\" color=\"primary\" mat-icon-button matTooltip=\"Filtro Avançado\"\n matTooltipPosition=\"below\" type=\"button\">\n <mat-icon>tune</mat-icon>\n </button>\n </li>\n <li *ngIf=\"filterFormConfig.checkAndSearch\" class=\"checkbox-filter\">\n <mat-checkbox (click)=\"filterSubmit()\"\n [formControlName]=\"filterFormConfig.checkAndSearch.formControlName\">\n {{filterFormConfig.checkAndSearch.label}}\n </mat-checkbox>\n </li>\n <li class=\"option\">\n <koala-submit\n [btnSubmitDisabled]=\"btnSubmitDisabled\"\n [fg]=\"formFilter\"\n [iconButton]=\"true\"\n [loader]=\"loader\"\n icon=\"search\">\n </koala-submit>\n </li>\n </ul>\n </div>\n <div *ngIf=\"filterFormConfig.advanced\" [ngClass]=\"{'show': showAdvancedFilter}\" class=\"advanced\">\n <div class=\"container-filter\">\n <koala-dynamic-form\n [form]=\"filterFormConfig.advanced.form\"\n [formConfig]=\"filterFormConfig.advanced.formConfig\"\n [setValues]=\"filterFormConfig.advanced.setValues\"\n [showFields]=\"filterFormConfig.advanced.showFields\">\n </koala-dynamic-form>\n </div>\n </div>\n </form>\n </div>\n <nav class=\"menu-list\">\n <ul class=\"menu\">\n <li *ngIf=\"selection.hasValue()\">\n <ng-content select=\"[itemsSelectList]\"></ng-content>\n </li>\n <li *ngIf=\"selection.hasValue()\" class=\"text-center\">|</li>\n <li>\n <ng-content select=\"[itemsList]\"></ng-content>\n </li>\n </ul>\n </nav>\n <div *ngIf=\"loader | async\" class=\"spinner-container\" [ngClass]=\"{\n 'no-filter': !filterFormConfig\n }\">\n <mat-spinner color=\"primary\" diameter=\"40\"></mat-spinner>\n </div>\n <div class=\"list\">\n <table\n *ngIf=\"!emptyListComponent || (emptyListComponent && dataSource?.data?.length > 0) else emptyList\"\n [dataSource]=\"dataSource\"\n [matSortActive]=\"columnSort\"\n [id]=\"tableId\"\n multiTemplateDataRows\n class=\"table-hover\"\n mat-table\n matSort\n [matSortDirection]=\"sortDirection\" matSortDisableClear>\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox (change)=\"$event ? selectAll() : null\"\n [checked]=\"selection.hasValue() && allSelected$ | async\"\n [indeterminate]=\"selection.hasValue() && !(allSelected$ | async)\">\n </mat-checkbox>\n </th>\n <td *matCellDef=\"let item\" mat-cell>\n <mat-checkbox *ngIf=\"disabledCheckboxItemList ? !disabledCheckboxItemList(item) : true\"\n (change)=\"$event ? selection.toggle(item) : null\"\n (click)=\"$event.stopPropagation(); selectItem();\"\n [checked]=\"selection.isSelected(item)\">\n </mat-checkbox>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"collapseButton\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <koala-button\n *ngIf=\"btnCollapseSubListConfig.show(item)\"\n (click)=\"expandedElement = expandedElement === item ? null : item\"\n [koalaIcon]=\"btnCollapseSubListConfig.koalaIcon\"\n [icon]=\"btnCollapseSubListConfig.icon\"\n [tooltip]=\"btnCollapseSubListConfig.tooltip\"\n [color]=\"btnCollapseSubListConfig.iconColor\"\n [backgroundColor]=\"btnCollapseSubListConfig.backgroundColor\"\n [koalaIconSize]=\"22\">\n </koala-button>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container *ngFor=\"let itemList of itemsList\" [matColumnDef]=\"itemList.columnDef\">\n <th *matHeaderCellDef [mat-sort-header]=\"itemList.sortHeader\" [disabled]=\"!itemList.sortHeader\" mat-header-cell>{{itemList.label}}</th>\n <td (dblclick)=\"itemList.dblClick(item)\" *matCellDef=\"let item\" mat-cell>\n\t <koala-dynamic-component *ngIf=\"itemList.itemComponent else itemText\"\n\t [dynamicComponent]=\"itemList.itemComponent(item)\"></koala-dynamic-component>\n\t <ng-template #itemText>\n\t {{itemList.itemNameProperty(item)}}\n\t </ng-template>\n </td>\n <td *matFooterCellDef mat-footer-cell>\n <koala-dynamic-component *ngIf=\"itemList.footer?.itemComponent else itemFooterText\"\n [dynamicComponent]=\"itemList.footer?.itemComponent(responseRequest)\"></koala-dynamic-component>\n <ng-template #itemFooterText>\n {{itemList.footer?.itemNameProperty(responseRequest)}}\n </ng-template>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\" matColumnDef=\"koalaListDetails\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" [attr.colspan]=\"columnsToShowInList.length\" mat-cell>\n <div class=\"item-detail\" [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\">\n <koala-list [config]=\"subListConfig(item)\"></koala-list>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <ng-container matColumnDef=\"options\">\n <th *matHeaderCellDef mat-header-cell></th>\n <td *matCellDef=\"let item\" mat-cell>\n <div *ngIf=\"haveOptionsOnItemLine(item)\">\n <button [matMenuTriggerFor]=\"options\" mat-icon-button type=\"button\">\n <i class='material-icons'>more_vert</i>\n </button>\n <mat-menu #options=\"matMenu\" class=\"menu-list\" yPosition=\"below\">\n\t <div *ngFor=\"let option of itemsMenuListOptions\">\n\t <button\n\t\t (click)=\"option.action(item)\"\n\t\t *ngIf=\"option.havePermission && (\n\t\t !option.showByItemList ||\n\t\t option.showByItemList(item)\n\t )\"\n\t\t mat-menu-item>\n\t <mat-icon>{{option.icon}}</mat-icon>\n\t <span>{{option.name}}</span>\n\t </button>\n\t </div>\n </mat-menu>\n </div>\n </td>\n <td *matFooterCellDef mat-footer-cell></td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"columnsToShowInList; sticky: true\" mat-header-row></tr>\n <tr *matRowDef=\"let item; columns: columnsToShowInList;\" mat-row></tr>\n <ng-container *ngIf=\"subListConfig && btnCollapseSubListConfig\">\n <tr mat-row *matRowDef=\"let row; columns: ['koalaListDetails']\" class=\"item-detail-row\"></tr>\n </ng-container>\n <ng-container *ngIf=\"hasFooter()\">\n <tr *matFooterRowDef=\"columnsToShowInList; sticky: true\" mat-footer-row></tr>\n </ng-container>\n </table>\n <ng-template #emptyList>\n <koala-dynamic-component *ngIf=\"!(filterError$ | async) else errorList\" [dynamicComponent]=\"emptyListComponent\"></koala-dynamic-component>\n <ng-template #errorList>\n <koala-dynamic-component [dynamicComponent]=\"errorListComponent\"></koala-dynamic-component>\n </ng-template>\n </ng-template>\n </div>\n <div *ngIf=\"!hidePaginator\" class=\"content-paginator\">\n <mat-paginator\n [length]=\"qtdListResult\"\n [pageSizeOptions]=\"limitOptions\"\n [pageSize]=\"pageSize\"\n showFirstLastButtons>\n </mat-paginator>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ListComponent } from './list.component';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';\nimport { CommonModule } from '@angular/common';\nimport { KoalaFormModule } from '@koalarx/ui/form';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { PaginationProvider } from './providers/pagination/pagination.provider';\nimport { KoalaFolderPageModule } from '@koalarx/ui/folder-page';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { KoalaDynamicComponentModule } from '@koalarx/ui/dynamic-component';\nimport { KoalaButtonModule } from \"@koalarx/ui/button\";\n\n@NgModule({\n declarations: [\n ListComponent\n ],\n imports: [\n CommonModule,\n KoalaFolderPageModule,\n KoalaFormModule,\n KoalaDynamicComponentModule,\n KoalaButtonModule,\n MatMenuModule,\n MatTableModule,\n MatSortModule,\n MatTooltipModule,\n MatPaginatorModule\n ],\n exports: [\n ListComponent\n ],\n providers: [{\n provide: MatPaginatorIntl,\n useClass: PaginationProvider\n }]\n})\nexport class KoalaListModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -33,4 +33,5 @@ export interface KoalaListConfigInterface {
33
33
  btnCollapseSubListConfig?: KoalaListBtnCollapseSubListConfigInterface<any>;
34
34
  hidePaginator?: boolean;
35
35
  customClass?: string;
36
+ limitOptions?: number[];
36
37
  }
@@ -27,4 +27,6 @@ export declare class ListBuilder<DataType> {
27
27
  hidePaginator(hide?: boolean): this;
28
28
  setCustomClass(className: string): this;
29
29
  getConfig(): KoalaListConfigInterface;
30
+ setLimitOptions(options: number[]): void;
31
+ addLimitOption(limit: number): void;
30
32
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koalarx/ui",
3
- "version": "13.2.3",
3
+ "version": "13.2.4",
4
4
  "description": "Koala UI is a Design System developed in Angular whose objective is to facilitate and make your development faster and simpler, making this framework your greatest ally.",
5
5
  "repository": {
6
6
  "type": "git",