ngx-st-tables 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -83,12 +83,18 @@ export class LocalTableComponent {
|
|
|
83
83
|
}
|
|
84
84
|
if (this.bindSearchToUrl) {
|
|
85
85
|
const params = new URLSearchParams(location.search);
|
|
86
|
+
this.sort.sortChange.subscribe((res) => {
|
|
87
|
+
this.updateSearchToUrl();
|
|
88
|
+
});
|
|
86
89
|
if (params.get('stLocalTablePageIndex')) {
|
|
87
90
|
this.pageIndex = parseInt(params.get('stLocalTablePageIndex'));
|
|
88
91
|
}
|
|
89
92
|
if (params.get('stLocalTablePageSize')) {
|
|
90
93
|
this.pageSize = parseInt(params.get('stLocalTablePageSize'));
|
|
91
94
|
}
|
|
95
|
+
if (params.get('stLocalTableSortFieldName') && params.get('stLocalTableSortDirection')) {
|
|
96
|
+
this.sort.sort({ id: params.get('stLocalTableSortFieldName') || '', start: params.get('stLocalTableSortDirection') || 'asc', disableClear: false });
|
|
97
|
+
}
|
|
92
98
|
this.searchModel = params.get('stLocalTableSearch') || '';
|
|
93
99
|
if (this.searchModel) {
|
|
94
100
|
this.tableSource.filter = this.searchModel.trim().toLowerCase();
|
|
@@ -145,11 +151,20 @@ export class LocalTableComponent {
|
|
|
145
151
|
}
|
|
146
152
|
updateSearchToUrl() {
|
|
147
153
|
if (this.bindSearchToUrl) {
|
|
148
|
-
|
|
154
|
+
let queryParams = {
|
|
149
155
|
stLocalTableSearch: this.searchModel,
|
|
150
156
|
stLocalTablePageIndex: this.pageIndex,
|
|
151
|
-
stLocalTablePageSize: this.pageSize
|
|
157
|
+
stLocalTablePageSize: this.paginator.pageSize,
|
|
158
|
+
stLocalTableSortFieldName: '',
|
|
159
|
+
stLocalTableSortDirection: ''
|
|
152
160
|
};
|
|
161
|
+
if (this.sort.direction && this.sort.active) {
|
|
162
|
+
queryParams = {
|
|
163
|
+
...queryParams,
|
|
164
|
+
stLocalTableSortFieldName: this.sort.active,
|
|
165
|
+
stLocalTableSortDirection: this.sort.direction
|
|
166
|
+
};
|
|
167
|
+
}
|
|
153
168
|
this.router.navigate(['./'], { queryParams: queryParams, relativeTo: this.activatedRoute });
|
|
154
169
|
}
|
|
155
170
|
}
|
|
@@ -224,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
224
239
|
}], data: [{
|
|
225
240
|
type: Input
|
|
226
241
|
}] } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXRhYmxlcy9zcmMvbGliL2NvbXBvbmVudHMvbG9jYWwtdGFibGUvbG9jYWwtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXRhYmxlcy9zcmMvbGliL2NvbXBvbmVudHMvbG9jYWwtdGFibGUvbG9jYWwtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFNekQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlL0MsTUFBTSxPQUFPLG1CQUFtQjtJQTZENUIsWUFDWSxpQkFBb0MsRUFDcEMsY0FBaUMsRUFDakMsTUFBYyxFQUNkLGNBQThCO1FBSDlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF0RDFDLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFHdEIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBTWxDLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUc5QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQXdCeEIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBS2hDLG1CQUFjLEdBQXVDLEVBQUUsQ0FB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SSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFFLEVBQUUsYUFBYSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxJQUFJLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUU5RixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixNQUFNLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDOztnSEE3T1EsbUJBQW1CO29HQUFuQixtQkFBbUIseVpBQ2pCLFlBQVksdUVBQ1osT0FBTyxnRENqQ3RCLHV1T0E4SEE7MkZEL0ZhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTswTEFHdEIsU0FBUztzQkFBakMsU0FBUzt1QkFBQyxZQUFZO2dCQUNILElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTztnQkFHbEIsYUFBYTtzQkFEWixLQUFLO2dCQUlOLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sc0JBQXNCO3NCQURyQixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJRixPQUFPO3NCQURWLEtBQUs7Z0JBWUYsSUFBSTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHtNYXRQYWdpbmF0b3J9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7U3RMb2NhbFRhYmxlQ29sdW1uc01vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9jYWwtdGFibGUvc3QtbG9jYWwtdGFibGUtY29sdW1ucy5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgICBMb2NhbFRhYmxlQWN0aW9uQ29sdW1uTW9kZWwsXHJcbiAgICBTdExvY2FsVGFibGVDb2x1bW5Nb2RlbFxyXG59IGZyb20gJy4uLy4uL21vZGVscy9sb2NhbC10YWJsZS9zdC1sb2NhbC10YWJsZS1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQge01hdFNvcnR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0XCI7XHJcbmltcG9ydCB7U3RDb25maWd1cmF0aW9uc1NldHRpbmdzTW9kZWx9IGZyb20gXCIuLi8uLi9tb2RlbHMvbG9jYWwtdGFibGUvc3QtY29uZmlndXJhdGlvbnMtc2V0dGluZ3MubW9kZWxcIjtcclxuaW1wb3J0IHtTdEdsb2JhbFNlYXJjaFNldHRpbmdzTW9kZWx9IGZyb20gXCIuLi8uLi9tb2RlbHMvbG9jYWwtdGFibGUvc3QtZ2xvYmFsLXNlYXJjaC1zZXR0aW5ncy5tb2RlbFwiO1xyXG5pbXBvcnQge1N0TG9jYWxTdG9yYWdlQ29uZmlndXJhdGlvbk1vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2xvY2FsLXRhYmxlL3N0LWxvY2FsLXN0b3JhZ2UtY29uZmlndXJhdGlvbi5tb2RlbFwiO1xyXG5pbXBvcnQge0xvY2FsVGFibGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbG9jYWwtdGFibGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zb3J0L3NvcnQtZGlyZWN0aW9uXCI7XHJcbmltcG9ydCB7U3RUYWJsZVNldHRpbmdzTW9kZWx9IGZyb20gXCIuLi8uLi9tb2RlbHMvbG9jYWwtdGFibGUvc3QtdGFibGUtc2V0dGluZ3MubW9kZWxcIjtcclxuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmd4LXN0LWxvY2FsLXRhYmxlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9sb2NhbC10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9sb2NhbC10YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gICAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gICAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICB0YWJsZVNldHRpbmdzOiBTdFRhYmxlU2V0dGluZ3NNb2RlbDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2xvYmFsU2VhcmNoU2V0dGluZ3M6IFN0R2xvYmFsU2VhcmNoU2V0dGluZ3NNb2RlbDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcGFnZVNpemU6IG51bWJlciA9IDEwO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBhbGxvd1BpY2tDb2x1bW5zOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGNvbmZpZ3VyYXRpb25zU2V0dGluZ3M6IFN0Q29uZmlndXJhdGlvbnNTZXR0aW5nc01vZGVsO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBsb2NhbFN0b3JhZ2VOYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgYmluZFNlYXJjaFRvVXJsID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBjb2x1bW5zKGNvbHVtbnM6IFN0TG9jYWxUYWJsZUNvbHVtbnNNb2RlbCkge1xyXG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSBjb2x1bW5zO1xyXG4gICAgICAgIHRoaXMuY29sdW1uc0FycmF5ID0gdGhpcy5nZXRDb2x1bW5zQXJyYXkoKTtcclxuICAgICAgICB0aGlzLnNldERpc3BsYXllZENvbHVtbnMoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29sdW1ucygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IGRhdGEoZGF0YTogYW55W10pIHtcclxuICAgICAgICB0aGlzLl9kYXRhID0gZGF0YSB8fCBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRUYWJsZVNvdXJjZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkYXRhKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHNlYXJjaE1vZGVsID0gJyc7XHJcbiAgICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgdGFibGVTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+O1xyXG5cclxuICAgIGNvbHVtbnNBcnJheTogU3RMb2NhbFRhYmxlQ29sdW1uTW9kZWxbXTtcclxuXHJcbiAgICBjb25maWd1cmF0aW9uczogU3RMb2NhbFN0b3JhZ2VDb25maWd1cmF0aW9uTW9kZWxbXSA9IFtdO1xyXG4gICAgaW5pdENvbmZpZzogU3RMb2NhbFN0b3JhZ2VDb25maWd1cmF0aW9uTW9kZWwgfCBudWxsID0gbnVsbDtcclxuICAgIGFjdGl2ZUNvbmZpZzogU3RMb2NhbFN0b3JhZ2VDb25maWd1cmF0aW9uTW9kZWwgfCBudWxsID0gbnVsbDtcclxuICAgIHBhZ2VJbmRleCA9IDA7XHJcblxyXG4gICAgcHJpdmF0ZSBfZGF0YTogYW55W10gPSBbXTtcclxuICAgIHByaXZhdGUgX2NvbHVtbnM6IFN0TG9jYWxUYWJsZUNvbHVtbnNNb2RlbCA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxUYWJsZVNlcnZpY2U6IExvY2FsVGFibGVTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGVcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmxvY2FsU3RvcmFnZU5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3QgcGFnZVNpemUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZU5hbWUpO1xyXG4gICAgICAgICAgICBpZiAocGFnZVNpemUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFnZVNpemUgPSBwYXJzZUludChwYWdlU2l6ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25zU2V0dGluZ3MpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhbFRhYmxlU2VydmljZS5sb2NhbFN0b3JhZ2VOYW1lID0gdGhpcy5jb25maWd1cmF0aW9uc1NldHRpbmdzPy5sb2NhbFN0b3JhZ2VOYW1lIHx8ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDb25maWdzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uc1NldHRpbmdzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdG9yLnBhZ2Uuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVDb25maWcpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUNvbmZpZy5wYWdlU2l6ZSA9IHJlcy5wYWdlU2l6ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbmZpZ3NUb0xvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc29ydC5zb3J0Q2hhbmdlLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVDb25maWcpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUNvbmZpZy5zb3J0RmllbGROYW1lID0gcmVzLmFjdGl2ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUNvbmZpZy5zb3J0RGlyZWN0aW9uID0gcmVzLmRpcmVjdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbmZpZ3NUb0xvY2FsU3RvcmFnZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmJpbmRTZWFyY2hUb1VybCkge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCk7XHJcblxyXG4gICAgICAgICAgICBpZiAocGFyYW1zLmdldCgnc3RMb2NhbFRhYmxlUGFnZUluZGV4JykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFyc2VJbnQocGFyYW1zLmdldCgnc3RMb2NhbFRhYmxlUGFnZUluZGV4JykhKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHBhcmFtcy5nZXQoJ3N0TG9jYWxUYWJsZVBhZ2VTaXplJykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFnZVNpemUgPSBwYXJzZUludChwYXJhbXMuZ2V0KCdzdExvY2FsVGFibGVQYWdlU2l6ZScpISk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoTW9kZWwgPSBwYXJhbXMuZ2V0KCdzdExvY2FsVGFibGVTZWFyY2gnKSB8fCAnJztcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VhcmNoTW9kZWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTb3VyY2UuZmlsdGVyID0gdGhpcy5zZWFyY2hNb2RlbC50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplO1xyXG4gICAgfVxyXG5cclxuICAgIGFwcGx5U2VhcmNoKCkge1xyXG4gICAgICAgIHRoaXMudGFibGVTb3VyY2UuZmlsdGVyID0gdGhpcy5zZWFyY2hNb2RlbC50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoVG9VcmwoKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclNlYXJjaCgpIHtcclxuICAgICAgICB0aGlzLnNlYXJjaE1vZGVsID0gJyc7XHJcbiAgICAgICAgdGhpcy50YWJsZVNvdXJjZS5maWx0ZXIgPSB0aGlzLnNlYXJjaE1vZGVsO1xyXG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2hUb1VybCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrSWZBY3Rpb25WaXNpYmxlKHJvdzogYW55LCBhY3Rpb246IExvY2FsVGFibGVBY3Rpb25Db2x1bW5Nb2RlbCkge1xyXG4gICAgICAgIGlmIChhY3Rpb24uc2hvdykge1xyXG4gICAgICAgICAgICByZXR1cm4gYWN0aW9uLnNob3cocm93KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29sdW1uVmlzaWJsZUNoYW5nZWQoY29sdW1uOiBTdExvY2FsVGFibGVDb2x1bW5Nb2RlbCkge1xyXG4gICAgICAgIHRoaXMuc2V0RGlzcGxheWVkQ29sdW1ucygpO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUNvbmZpZ3NUb0xvY2FsU3RvcmFnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5ld0NvbmZpZ0NyZWF0ZWQobmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgbmV3Q29uZmlnID0gdGhpcy5nZW5lcmF0ZU5ld0NvbmZpZyhuYW1lKTtcclxuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25zLnB1c2gobmV3Q29uZmlnKTtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDb25maWdzVG9Mb2NhbFN0b3JhZ2UoKTtcclxuICAgICAgICB0aGlzLmluaXRDb25maWcgPSBuZXdDb25maWc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlnUmVtb3ZlZChjb25maWdJZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9ucyA9IHRoaXMuY29uZmlndXJhdGlvbnMuZmlsdGVyKGNvbmZpZyA9PiBjb25maWcuY29uZmlnSWQgIT09IGNvbmZpZ0lkKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUNvbmZpZ3NUb0xvY2FsU3RvcmFnZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbmZpZ0NoYW5nZWQoY29uZmlnSWQ6IHN0cmluZyB8IG51bGwpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZUNvbmZpZyA9IChjb25maWdJZCkgPyB0aGlzLmNvbmZpZ3VyYXRpb25zLmZpbmQoY29uZmlnID0+IGNvbmZpZy5jb25maWdJZCA9PT0gY29uZmlnSWQpISA6IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlQ29uZmlnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VGFibGVDb25maWcodGhpcy5hY3RpdmVDb25maWcucGFnZVNpemUsIHRoaXMuYWN0aXZlQ29uZmlnLmNvbHVtbnNEaXNhYmxlZCwgdGhpcy5hY3RpdmVDb25maWcuc29ydEZpZWxkTmFtZSwgdGhpcy5hY3RpdmVDb25maWcuc29ydERpcmVjdGlvbik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRUYWJsZUNvbmZpZyh0aGlzLnBhZ2VTaXplLCBbXSwgbnVsbCwgbnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTZWFyY2goKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcGFnZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaFRvVXJsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVTZWFyY2hUb1VybCgpIHtcclxuICAgICAgICBpZiAodGhpcy5iaW5kU2VhcmNoVG9VcmwpIHtcclxuICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICBzdExvY2FsVGFibGVTZWFyY2g6IHRoaXMuc2VhcmNoTW9kZWwsXHJcbiAgICAgICAgICAgICAgICBzdExvY2FsVGFibGVQYWdlSW5kZXg6IHRoaXMucGFnZUluZGV4LFxyXG4gICAgICAgICAgICAgICAgc3RMb2NhbFRhYmxlUGFnZVNpemU6IHRoaXMucGFnZVNpemVcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLyddLCB7cXVlcnlQYXJhbXM6IHF1ZXJ5UGFyYW1zLCByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQ29uZmlnc1RvTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgICAgIHRoaXMubG9jYWxUYWJsZVNlcnZpY2Uuc2F2ZUNvbmZpZ3ModGhpcy5jb25maWd1cmF0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRUYWJsZVNvdXJjZSgpIHtcclxuICAgICAgICB0aGlzLnRhYmxlU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+KHRoaXMuX2RhdGEpO1xyXG4gICAgICAgIHRoaXMudGFibGVTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICAgICAgdGhpcy50YWJsZVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG4gICAgICAgIHRoaXMudGFibGVTb3VyY2UuZmlsdGVyID0gdGhpcy5zZWFyY2hNb2RlbDtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0RGlzcGxheWVkQ29sdW1ucygpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBPYmplY3Qua2V5cyh0aGlzLmNvbHVtbnMpLmZpbHRlcigoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5zW2NvbHVtbl0udmlzaWJsZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENvbHVtbnNBcnJheSgpOiBTdExvY2FsVGFibGVDb2x1bW5Nb2RlbFtdIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fY29sdW1ucylcclxuICAgICAgICAgICAgLm1hcCgoY29sdW1uKSA9PiB0aGlzLl9jb2x1bW5zW2NvbHVtbl0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbG9hZENvbmZpZ3MoKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9ucyA9IHRoaXMubG9jYWxUYWJsZVNlcnZpY2UuZ2V0Q29uZmlncygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2VuZXJhdGVOZXdDb25maWcoY29uZmlnTmFtZTogc3RyaW5nKTogU3RMb2NhbFN0b3JhZ2VDb25maWd1cmF0aW9uTW9kZWwge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGNvbmZpZ0lkOiBEYXRlLm5vdygpLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvbmZpZ05hbWU6IGNvbmZpZ05hbWUsXHJcbiAgICAgICAgICAgIGNvbHVtbnNEaXNhYmxlZDogdGhpcy5jb2x1bW5zQXJyYXkuZmlsdGVyKGNvbHVtbiA9PiAhY29sdW1uLnZpc2libGUpLm1hcChjb2x1bW4gPT4gY29sdW1uLnRyYW5zbGF0ZUNvbHVtbk5hbWUpLFxyXG4gICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3IucGFnZVNpemUsXHJcbiAgICAgICAgICAgIHNvcnRGaWVsZE5hbWU6ICh0aGlzLnNvcnQuZGlyZWN0aW9uICYmIHRoaXMuc29ydC5hY3RpdmUpID8gdGhpcy5zb3J0LmFjdGl2ZSA6IG51bGwsXHJcbiAgICAgICAgICAgIHNvcnREaXJlY3Rpb246IHRoaXMuc29ydC5kaXJlY3Rpb24gfHwgbnVsbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFRhYmxlQ29uZmlnKHBhZ2VTaXplOiBudW1iZXIsIGRpc2FibGVkQ29sdW1uczogc3RyaW5nW10sIHNvcnRGaWVsZE5hbWU6IHN0cmluZyB8IG51bGwsIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gfCBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZVNpemUgPSBwYWdlU2l6ZTtcclxuICAgICAgICB0aGlzLnNvcnQuc29ydCh7aWQ6IHNvcnRGaWVsZE5hbWUgfHwgJycsIHN0YXJ0OiBzb3J0RGlyZWN0aW9uIHx8ICdhc2MnLCBkaXNhYmxlQ2xlYXI6IGZhbHNlfSk7XHJcblxyXG4gICAgICAgIHRoaXMuY29sdW1uc0FycmF5LmZvckVhY2goY29sdW1uID0+IHtcclxuICAgICAgICAgICAgY29sdW1uLnZpc2libGUgPSBkaXNhYmxlZENvbHVtbnMuaW5kZXhPZihjb2x1bW4udHJhbnNsYXRlQ29sdW1uTmFtZSkgPT09IC0xO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2V0RGlzcGxheWVkQ29sdW1ucygpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsb2NhbC10YWJsZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cInBhZGRpbmc6IDA7XCIgKm5nSWY9XCJjb25maWd1cmF0aW9uc1NldHRpbmdzIHx8IGFsbG93UGlja0NvbHVtbnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCIgc3R5bGU9XCJwYWRkaW5nOiAwO1wiICpuZ0lmPVwiYWxsb3dQaWNrQ29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJjb2wtYXV0b1wiIFttYXRNZW51VHJpZ2dlckZvcl09XCJjb2x1bW5zTWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld193ZWVrXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI2NvbHVtbnNNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImFmdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNBcnJheVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gKm5nSWY9XCIhY29sdW1uLm5vdFNob3dJbkNvbHVtblBpY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb2x1bW4udmlzaWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNvbHVtblZpc2libGVDaGFuZ2VkKGNvbHVtbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDVweDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbHVtbi50cmFuc2xhdGVDb2x1bW5OYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGFwcC1jb25maWd1cmF0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlndXJhdGlvbnNTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ3VyYXRpb25zU2V0dGluZ3NdPVwiY29uZmlndXJhdGlvbnNTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ3VyYXRpb25zXT1cImNvbmZpZ3VyYXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5pdFNlbGVjdGVkQ29uZmlnXT1cImluaXRDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjcmVhdGVOZXdDb25maWcpPVwibmV3Q29uZmlnQ3JlYXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlQ29uZmlnKT1cImNvbmZpZ1JlbW92ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZUNvbmZpZyk9XCJjb25maWdDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9hcHAtY29uZmlndXJhdGlvbnM+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIiBzdHlsZT1cInBhZGRpbmc6IDA7XCIgKm5nSWY9XCJnbG9iYWxTZWFyY2hTZXR0aW5ncz8uc2hvd1wiPlxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3tnbG9iYWxTZWFyY2hTZXR0aW5ncz8ubGFiZWwgfHwgJ1NlYXJjaCd9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJhcHBseVNlYXJjaCgpXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hNb2RlbFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbGVhclwiIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOiAyMnB4XCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHRhYmxlIFtuZ0NsYXNzXT1cInsnbm8taG92ZXInOiAhdGFibGVTZXR0aW5ncz8ucm93Q2xpY2tBY3Rpb259XCIgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInRhYmxlU291cmNlXCIgbWF0U29ydD5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImNvbHVtblwiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGlzcGxheWVkQ29sdW1uc1wiPlxyXG4gICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICAgICAgICBtYXQtaGVhZGVyLWNlbGxcclxuICAgICAgICAgICAgICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwie3tjb2x1bW5zW2NvbHVtbl0ud2lkdGggPyAoJ3dpZHRoOicgKyBjb2x1bW5zW2NvbHVtbl0ud2lkdGgpIDogJyd9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0LXNvcnQtaGVhZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2x1bW5zW2NvbHVtbl0uc29ydFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7Y29sdW1uc1tjb2x1bW5dLnRyYW5zbGF0ZUNvbHVtbk5hbWUgIH19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHNlYXJjaC1pY29uXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uc1tjb2x1bW5dLnNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaFxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7Y29sdW1uc1tjb2x1bW5dLnNlYXJjaExhYmVsIHx8ICdTZWFyY2gnfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJhcHBseVNlYXJjaCgpXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiAoY2xpY2spPVwic2VhcmNoTW9kZWw9JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInt7Y29sdW1uc1tjb2x1bW5dLndpZHRoID8gKCd3aWR0aDonICsgY29sdW1uc1tjb2x1bW5dLndpZHRoKSA6ICcnfX1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWVuZCc6IGNvbHVtbnNbY29sdW1uXS5mbGV4UmlnaHR9XCJcclxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW5zW2NvbHVtbl0uYWN0aW9ucyAmJiBjb2x1bW5zW2NvbHVtbl0uYWN0aW9ucyEubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb2x1bW5zW2NvbHVtbl0uYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hlY2tJZkFjdGlvblZpc2libGUoZWxlbWVudCwgYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbC1hdXRvXCIgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFhY3Rpb24udXJsICYmIGFjdGlvbi5hY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3soYWN0aW9uLnRvb2x0aXBOYW1lIHx8ICcnKSB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiISEhKGFjdGlvbi50b29sdGlwTmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uLmFjdGlvbihlbGVtZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnt7YWN0aW9uLmljb25OYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cImFjdGlvbi51cmxcIiBbcm91dGVyTGlua109XCJhY3Rpb24udXJsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbC1hdXRvXCIgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyhhY3Rpb24udG9vbHRpcE5hbWUgfHwgJycpIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiISEhKGFjdGlvbi50b29sdGlwTmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnt7YWN0aW9uLmljb25OYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW5zW2NvbHVtbl0uYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5zW2NvbHVtbl0udHJhbnNsYXRlVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjBcIj57e2NvbHVtbnNbY29sdW1uXS50cmFuc2xhdGVWYWx1ZSFbZWxlbWVudFtjb2x1bW5dXSB8fCAnJyB9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW5zW2NvbHVtbl0udHJhbnNsYXRlVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW5zW2NvbHVtbl0udHlwZSB8fCBjb2x1bW5zW2NvbHVtbl0udHlwZSA9PT0gJ3N0cmluZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowXCI+e3tlbGVtZW50W2NvbHVtbl19fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uc1tjb2x1bW5dLnR5cGUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjBcIj57e2VsZW1lbnRbY29sdW1uXSB8IHN0RGF0ZVRpbWVGb3JtYXRQaXBlfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XHJcbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCIgKGNsaWNrKT1cInRhYmxlU2V0dGluZ3M/LnJvd0NsaWNrQWN0aW9uID8gdGFibGVTZXR0aW5ncy5yb3dDbGlja0FjdGlvbihyb3cpIDogbnVsbFwiPjwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG4gICAgPG1hdC1wYWdpbmF0b3IgW3BhZ2VJbmRleF09XCJwYWdlSW5kZXhcIiBbcGFnZVNpemVPcHRpb25zXT1cIls1LCAxMCwgMTUsIDIwLCAyNV1cIiAocGFnZSk9XCJwYWdlQ2hhbmdlZCgkZXZlbnQpXCIgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+PC9tYXQtcGFnaW5hdG9yPlxyXG48L2Rpdj5cclxuIl19
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXRhYmxlcy9zcmMvbGliL2NvbXBvbmVudHMvbG9jYWwtdGFibGUvbG9jYWwtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0LXRhYmxlcy9zcmMvbGliL2NvbXBvbmVudHMvbG9jYWwtdGFibGUvbG9jYWwtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFNekQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFlL0MsTUFBTSxPQUFPLG1CQUFtQjtJQTZENUIsWUFDWSxpQkFBb0MsRUFDcEMsY0FBaUMsRUFDakMsTUFBYyxFQUNkLGNBQThCO1FBSDlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF0RDFDLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFHdEIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBTWxDLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUc5QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQXdCeEIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBS2hDLG1CQUFjLEdBQXVDLEVBQUUsQ0FBQztRQUN4RCxlQUFVLEdBQTRDLElBQUksQ0FBQztRQUMzRCxpQkFBWSxHQUE0QyxJQUFJLENBQUM7UUFDN0QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVOLFVBQUssR0FBVSxFQUFFLENBQUM7UUFDbEIsYUFBUSxHQUE2QixFQUFFLENBQUM7SUFRaEQsQ0FBQztJQTFDRCxJQUNJLE9BQU8sQ0FBQyxPQUFpQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUNJLElBQUksQ0FBQyxJQUFXO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBd0JELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdELElBQUksUUFBUSxFQUFFO2dCQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDO1NBQ0o7UUFFRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztZQUM5RixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO29CQUMxQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztpQkFDdEM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7b0JBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7b0JBQ2hELElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO2lCQUN0QztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXBELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFFLENBQUMsQ0FBQzthQUNuRTtZQUVELElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFFLENBQUMsQ0FBQzthQUNqRTtZQUVELElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsRUFBRTtnQkFDcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQWlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7YUFDcEs7WUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ25FO1NBQ0o7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUVuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFFbkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELG9CQUFvQixDQUFDLEdBQVEsRUFBRSxNQUFtQztRQUM5RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDYixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBK0I7UUFDaEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVk7UUFDekIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhLENBQUMsUUFBZ0I7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzFHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDeEo7YUFBTTtZQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFFakMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLGlCQUFpQjtRQUNyQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsSUFBSSxXQUFXLEdBQUc7Z0JBQ2Qsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQ3BDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUNyQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVE7Z0JBQzdDLHlCQUF5QixFQUFFLEVBQUU7Z0JBQzdCLHlCQUF5QixFQUFFLEVBQUU7YUFDaEMsQ0FBQztZQUVGLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pDLFdBQVcsR0FBRztvQkFDVixHQUFHLFdBQVc7b0JBQ2QseUJBQXlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO29CQUMzQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7aUJBQ2pELENBQUE7YUFDSjtZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFDLENBQUMsQ0FBQztTQUM3RjtJQUNMLENBQUM7SUFFTywyQkFBMkI7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLGNBQWM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGtCQUFrQixDQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2hFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sZUFBZTtRQUNuQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUM1QixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxVQUFrQjtRQUN4QyxPQUFPO1lBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDL0IsVUFBVSxFQUFFLFVBQVU7WUFDdEIsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1lBQzlHLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDakMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbEYsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUk7U0FDN0MsQ0FBQTtJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsUUFBZ0IsRUFBRSxlQUF5QixFQUFFLGFBQTRCLEVBQUUsYUFBbUM7UUFDakksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsRUFBRSxFQUFFLGFBQWEsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGFBQWEsSUFBSSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFFOUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDL0IsQ0FBQzs7Z0hBL1BRLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHlaQUNqQixZQUFZLHVFQUNaLE9BQU8sZ0RDakN0Qix1dU9BOEhBOzJGRC9GYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU07MExBR3RCLFNBQVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWTtnQkFDSCxJQUFJO3NCQUF2QixTQUFTO3VCQUFDLE9BQU87Z0JBR2xCLGFBQWE7c0JBRFosS0FBSztnQkFJTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQVlGLElBQUk7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TWF0VGFibGVEYXRhU291cmNlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7TWF0UGFnaW5hdG9yfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQge1N0TG9jYWxUYWJsZUNvbHVtbnNNb2RlbH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xvY2FsLXRhYmxlL3N0LWxvY2FsLXRhYmxlLWNvbHVtbnMubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gICAgTG9jYWxUYWJsZUFjdGlvbkNvbHVtbk1vZGVsLFxyXG4gICAgU3RMb2NhbFRhYmxlQ29sdW1uTW9kZWxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvbG9jYWwtdGFibGUvc3QtbG9jYWwtdGFibGUtY29sdW1uLm1vZGVsJztcclxuaW1wb3J0IHtNYXRTb3J0fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydFwiO1xyXG5pbXBvcnQge1N0Q29uZmlndXJhdGlvbnNTZXR0aW5nc01vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2xvY2FsLXRhYmxlL3N0LWNvbmZpZ3VyYXRpb25zLXNldHRpbmdzLm1vZGVsXCI7XHJcbmltcG9ydCB7U3RHbG9iYWxTZWFyY2hTZXR0aW5nc01vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2xvY2FsLXRhYmxlL3N0LWdsb2JhbC1zZWFyY2gtc2V0dGluZ3MubW9kZWxcIjtcclxuaW1wb3J0IHtTdExvY2FsU3RvcmFnZUNvbmZpZ3VyYXRpb25Nb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVscy9sb2NhbC10YWJsZS9zdC1sb2NhbC1zdG9yYWdlLWNvbmZpZ3VyYXRpb24ubW9kZWxcIjtcclxuaW1wb3J0IHtMb2NhbFRhYmxlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2xvY2FsLXRhYmxlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTb3J0RGlyZWN0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydC9zb3J0LWRpcmVjdGlvblwiO1xyXG5pbXBvcnQge1N0VGFibGVTZXR0aW5nc01vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2xvY2FsLXRhYmxlL3N0LXRhYmxlLXNldHRpbmdzLm1vZGVsXCI7XHJcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ25neC1zdC1sb2NhbC10YWJsZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbG9jYWwtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbG9jYWwtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcclxuICAgIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydDogTWF0U29ydDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgdGFibGVTZXR0aW5nczogU3RUYWJsZVNldHRpbmdzTW9kZWw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdsb2JhbFNlYXJjaFNldHRpbmdzOiBTdEdsb2JhbFNlYXJjaFNldHRpbmdzTW9kZWw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHBhZ2VTaXplOiBudW1iZXIgPSAxMDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgYWxsb3dQaWNrQ29sdW1uczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBjb25maWd1cmF0aW9uc1NldHRpbmdzOiBTdENvbmZpZ3VyYXRpb25zU2V0dGluZ3NNb2RlbDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgbG9jYWxTdG9yYWdlTmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGJpbmRTZWFyY2hUb1VybCA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgY29sdW1ucyhjb2x1bW5zOiBTdExvY2FsVGFibGVDb2x1bW5zTW9kZWwpIHtcclxuICAgICAgICB0aGlzLl9jb2x1bW5zID0gY29sdW1ucztcclxuICAgICAgICB0aGlzLmNvbHVtbnNBcnJheSA9IHRoaXMuZ2V0Q29sdW1uc0FycmF5KCk7XHJcbiAgICAgICAgdGhpcy5zZXREaXNwbGF5ZWRDb2x1bW5zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbHVtbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHNldCBkYXRhKGRhdGE6IGFueVtdKSB7XHJcbiAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGEgfHwgW107XHJcblxyXG4gICAgICAgIHRoaXMuc2V0VGFibGVTb3VyY2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGF0YSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBzZWFyY2hNb2RlbCA9ICcnO1xyXG4gICAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcclxuICAgIHRhYmxlU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8YW55PjtcclxuXHJcbiAgICBjb2x1bW5zQXJyYXk6IFN0TG9jYWxUYWJsZUNvbHVtbk1vZGVsW107XHJcblxyXG4gICAgY29uZmlndXJhdGlvbnM6IFN0TG9jYWxTdG9yYWdlQ29uZmlndXJhdGlvbk1vZGVsW10gPSBbXTtcclxuICAgIGluaXRDb25maWc6IFN0TG9jYWxTdG9yYWdlQ29uZmlndXJhdGlvbk1vZGVsIHwgbnVsbCA9IG51bGw7XHJcbiAgICBhY3RpdmVDb25maWc6IFN0TG9jYWxTdG9yYWdlQ29uZmlndXJhdGlvbk1vZGVsIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwYWdlSW5kZXggPSAwO1xyXG5cclxuICAgIHByaXZhdGUgX2RhdGE6IGFueVtdID0gW107XHJcbiAgICBwcml2YXRlIF9jb2x1bW5zOiBTdExvY2FsVGFibGVDb2x1bW5zTW9kZWwgPSB7fTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGxvY2FsVGFibGVTZXJ2aWNlOiBMb2NhbFRhYmxlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5sb2NhbFN0b3JhZ2VOYW1lKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VTaXplID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VOYW1lKTtcclxuICAgICAgICAgICAgaWYgKHBhZ2VTaXplKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VTaXplID0gcGFyc2VJbnQocGFnZVNpemUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uc1NldHRpbmdzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxUYWJsZVNlcnZpY2UubG9jYWxTdG9yYWdlTmFtZSA9IHRoaXMuY29uZmlndXJhdGlvbnNTZXR0aW5ncz8ubG9jYWxTdG9yYWdlTmFtZSB8fCAnJztcclxuICAgICAgICAgICAgdGhpcy5sb2FkQ29uZmlncygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbnNTZXR0aW5ncykge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvci5wYWdlLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlQ29uZmlnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVDb25maWcucGFnZVNpemUgPSByZXMucGFnZVNpemU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDb25maWdzVG9Mb2NhbFN0b3JhZ2UoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNvcnQuc29ydENoYW5nZS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlQ29uZmlnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVDb25maWcuc29ydEZpZWxkTmFtZSA9IHJlcy5hY3RpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVDb25maWcuc29ydERpcmVjdGlvbiA9IHJlcy5kaXJlY3Rpb247XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDb25maWdzVG9Mb2NhbFN0b3JhZ2UoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5iaW5kU2VhcmNoVG9VcmwpIHtcclxuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zb3J0LnNvcnRDaGFuZ2Uuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoVG9VcmwoKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBpZiAocGFyYW1zLmdldCgnc3RMb2NhbFRhYmxlUGFnZUluZGV4JykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFyc2VJbnQocGFyYW1zLmdldCgnc3RMb2NhbFRhYmxlUGFnZUluZGV4JykhKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHBhcmFtcy5nZXQoJ3N0TG9jYWxUYWJsZVBhZ2VTaXplJykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFnZVNpemUgPSBwYXJzZUludChwYXJhbXMuZ2V0KCdzdExvY2FsVGFibGVQYWdlU2l6ZScpISk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChwYXJhbXMuZ2V0KCdzdExvY2FsVGFibGVTb3J0RmllbGROYW1lJykgJiYgcGFyYW1zLmdldCgnc3RMb2NhbFRhYmxlU29ydERpcmVjdGlvbicpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNvcnQuc29ydCh7aWQ6IHBhcmFtcy5nZXQoJ3N0TG9jYWxUYWJsZVNvcnRGaWVsZE5hbWUnKSB8fCAnJywgc3RhcnQ6ICA8J2FzYyd8J2Rlc2MnPnBhcmFtcy5nZXQoJ3N0TG9jYWxUYWJsZVNvcnREaXJlY3Rpb24nKSB8fCAnYXNjJywgZGlzYWJsZUNsZWFyOiBmYWxzZX0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaE1vZGVsID0gcGFyYW1zLmdldCgnc3RMb2NhbFRhYmxlU2VhcmNoJykgfHwgJyc7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNlYXJjaE1vZGVsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU291cmNlLmZpbHRlciA9IHRoaXMuc2VhcmNoTW9kZWwudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplID0gdGhpcy5wYWdlU2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICBhcHBseVNlYXJjaCgpIHtcclxuICAgICAgICB0aGlzLnRhYmxlU291cmNlLmZpbHRlciA9IHRoaXMuc2VhcmNoTW9kZWwudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgdGhpcy5wYWdlSW5kZXggPSAwO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaFRvVXJsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJTZWFyY2goKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hNb2RlbCA9ICcnO1xyXG4gICAgICAgIHRoaXMudGFibGVTb3VyY2UuZmlsdGVyID0gdGhpcy5zZWFyY2hNb2RlbDtcclxuICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlU2VhcmNoVG9VcmwoKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja0lmQWN0aW9uVmlzaWJsZShyb3c6IGFueSwgYWN0aW9uOiBMb2NhbFRhYmxlQWN0aW9uQ29sdW1uTW9kZWwpIHtcclxuICAgICAgICBpZiAoYWN0aW9uLnNob3cpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFjdGlvbi5zaG93KHJvdyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbHVtblZpc2libGVDaGFuZ2VkKGNvbHVtbjogU3RMb2NhbFRhYmxlQ29sdW1uTW9kZWwpIHtcclxuICAgICAgICB0aGlzLnNldERpc3BsYXllZENvbHVtbnMoKTtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDb25maWdzVG9Mb2NhbFN0b3JhZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZXdDb25maWdDcmVhdGVkKG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IG5ld0NvbmZpZyA9IHRoaXMuZ2VuZXJhdGVOZXdDb25maWcobmFtZSk7XHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9ucy5wdXNoKG5ld0NvbmZpZyk7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlQ29uZmlnc1RvTG9jYWxTdG9yYWdlKCk7XHJcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnID0gbmV3Q29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbmZpZ1JlbW92ZWQoY29uZmlnSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbnMgPSB0aGlzLmNvbmZpZ3VyYXRpb25zLmZpbHRlcihjb25maWcgPT4gY29uZmlnLmNvbmZpZ0lkICE9PSBjb25maWdJZCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb25maWdzVG9Mb2NhbFN0b3JhZ2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25maWdDaGFuZ2VkKGNvbmZpZ0lkOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVDb25maWcgPSAoY29uZmlnSWQpID8gdGhpcy5jb25maWd1cmF0aW9ucy5maW5kKGNvbmZpZyA9PiBjb25maWcuY29uZmlnSWQgPT09IGNvbmZpZ0lkKSEgOiBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUNvbmZpZykge1xyXG4gICAgICAgICAgICB0aGlzLnNldFRhYmxlQ29uZmlnKHRoaXMuYWN0aXZlQ29uZmlnLnBhZ2VTaXplLCB0aGlzLmFjdGl2ZUNvbmZpZy5jb2x1bW5zRGlzYWJsZWQsIHRoaXMuYWN0aXZlQ29uZmlnLnNvcnRGaWVsZE5hbWUsIHRoaXMuYWN0aXZlQ29uZmlnLnNvcnREaXJlY3Rpb24pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VGFibGVDb25maWcodGhpcy5wYWdlU2l6ZSwgW10sIG51bGwsIG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyU2VhcmNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHBhZ2VDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IGV2ZW50LnBhZ2VJbmRleDtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2hUb1VybCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlU2VhcmNoVG9VcmwoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYmluZFNlYXJjaFRvVXJsKSB7XHJcbiAgICAgICAgICAgIGxldCBxdWVyeVBhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgIHN0TG9jYWxUYWJsZVNlYXJjaDogdGhpcy5zZWFyY2hNb2RlbCxcclxuICAgICAgICAgICAgICAgIHN0TG9jYWxUYWJsZVBhZ2VJbmRleDogdGhpcy5wYWdlSW5kZXgsXHJcbiAgICAgICAgICAgICAgICBzdExvY2FsVGFibGVQYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3IucGFnZVNpemUsXHJcbiAgICAgICAgICAgICAgICBzdExvY2FsVGFibGVTb3J0RmllbGROYW1lOiAnJyxcclxuICAgICAgICAgICAgICAgIHN0TG9jYWxUYWJsZVNvcnREaXJlY3Rpb246ICcnXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5zb3J0LmRpcmVjdGlvbiAmJiB0aGlzLnNvcnQuYWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5xdWVyeVBhcmFtcyxcclxuICAgICAgICAgICAgICAgICAgICBzdExvY2FsVGFibGVTb3J0RmllbGROYW1lOiB0aGlzLnNvcnQuYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0TG9jYWxUYWJsZVNvcnREaXJlY3Rpb246IHRoaXMuc29ydC5kaXJlY3Rpb25cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLyddLCB7cXVlcnlQYXJhbXM6IHF1ZXJ5UGFyYW1zLCByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQ29uZmlnc1RvTG9jYWxTdG9yYWdlKCkge1xyXG4gICAgICAgIHRoaXMubG9jYWxUYWJsZVNlcnZpY2Uuc2F2ZUNvbmZpZ3ModGhpcy5jb25maWd1cmF0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRUYWJsZVNvdXJjZSgpIHtcclxuICAgICAgICB0aGlzLnRhYmxlU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+KHRoaXMuX2RhdGEpO1xyXG4gICAgICAgIHRoaXMudGFibGVTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICAgICAgdGhpcy50YWJsZVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG4gICAgICAgIHRoaXMudGFibGVTb3VyY2UuZmlsdGVyID0gdGhpcy5zZWFyY2hNb2RlbDtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0RGlzcGxheWVkQ29sdW1ucygpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBPYmplY3Qua2V5cyh0aGlzLmNvbHVtbnMpLmZpbHRlcigoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5zW2NvbHVtbl0udmlzaWJsZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENvbHVtbnNBcnJheSgpOiBTdExvY2FsVGFibGVDb2x1bW5Nb2RlbFtdIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fY29sdW1ucylcclxuICAgICAgICAgICAgLm1hcCgoY29sdW1uKSA9PiB0aGlzLl9jb2x1bW5zW2NvbHVtbl0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbG9hZENvbmZpZ3MoKSB7XHJcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9ucyA9IHRoaXMubG9jYWxUYWJsZVNlcnZpY2UuZ2V0Q29uZmlncygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2VuZXJhdGVOZXdDb25maWcoY29uZmlnTmFtZTogc3RyaW5nKTogU3RMb2NhbFN0b3JhZ2VDb25maWd1cmF0aW9uTW9kZWwge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGNvbmZpZ0lkOiBEYXRlLm5vdygpLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvbmZpZ05hbWU6IGNvbmZpZ05hbWUsXHJcbiAgICAgICAgICAgIGNvbHVtbnNEaXNhYmxlZDogdGhpcy5jb2x1bW5zQXJyYXkuZmlsdGVyKGNvbHVtbiA9PiAhY29sdW1uLnZpc2libGUpLm1hcChjb2x1bW4gPT4gY29sdW1uLnRyYW5zbGF0ZUNvbHVtbk5hbWUpLFxyXG4gICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3IucGFnZVNpemUsXHJcbiAgICAgICAgICAgIHNvcnRGaWVsZE5hbWU6ICh0aGlzLnNvcnQuZGlyZWN0aW9uICYmIHRoaXMuc29ydC5hY3RpdmUpID8gdGhpcy5zb3J0LmFjdGl2ZSA6IG51bGwsXHJcbiAgICAgICAgICAgIHNvcnREaXJlY3Rpb246IHRoaXMuc29ydC5kaXJlY3Rpb24gfHwgbnVsbFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFRhYmxlQ29uZmlnKHBhZ2VTaXplOiBudW1iZXIsIGRpc2FibGVkQ29sdW1uczogc3RyaW5nW10sIHNvcnRGaWVsZE5hbWU6IHN0cmluZyB8IG51bGwsIHNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb24gfCBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZVNpemUgPSBwYWdlU2l6ZTtcclxuICAgICAgICB0aGlzLnNvcnQuc29ydCh7aWQ6IHNvcnRGaWVsZE5hbWUgfHwgJycsIHN0YXJ0OiBzb3J0RGlyZWN0aW9uIHx8ICdhc2MnLCBkaXNhYmxlQ2xlYXI6IGZhbHNlfSk7XHJcblxyXG4gICAgICAgIHRoaXMuY29sdW1uc0FycmF5LmZvckVhY2goY29sdW1uID0+IHtcclxuICAgICAgICAgICAgY29sdW1uLnZpc2libGUgPSBkaXNhYmxlZENvbHVtbnMuaW5kZXhPZihjb2x1bW4udHJhbnNsYXRlQ29sdW1uTmFtZSkgPT09IC0xO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2V0RGlzcGxheWVkQ29sdW1ucygpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsb2NhbC10YWJsZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cInBhZGRpbmc6IDA7XCIgKm5nSWY9XCJjb25maWd1cmF0aW9uc1NldHRpbmdzIHx8IGFsbG93UGlja0NvbHVtbnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCIgc3R5bGU9XCJwYWRkaW5nOiAwO1wiICpuZ0lmPVwiYWxsb3dQaWNrQ29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY2xhc3M9XCJjb2wtYXV0b1wiIFttYXRNZW51VHJpZ2dlckZvcl09XCJjb2x1bW5zTWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld193ZWVrXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI2NvbHVtbnNNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImFmdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNBcnJheVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG1hdC1tZW51LWl0ZW0gKm5nSWY9XCIhY29sdW1uLm5vdFNob3dJbkNvbHVtblBpY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb2x1bW4udmlzaWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNvbHVtblZpc2libGVDaGFuZ2VkKGNvbHVtbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDVweDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbHVtbi50cmFuc2xhdGVDb2x1bW5OYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGFwcC1jb25maWd1cmF0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlndXJhdGlvbnNTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ3VyYXRpb25zU2V0dGluZ3NdPVwiY29uZmlndXJhdGlvbnNTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ3VyYXRpb25zXT1cImNvbmZpZ3VyYXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICBbaW5pdFNlbGVjdGVkQ29uZmlnXT1cImluaXRDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjcmVhdGVOZXdDb25maWcpPVwibmV3Q29uZmlnQ3JlYXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlQ29uZmlnKT1cImNvbmZpZ1JlbW92ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZUNvbmZpZyk9XCJjb25maWdDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9hcHAtY29uZmlndXJhdGlvbnM+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIiBzdHlsZT1cInBhZGRpbmc6IDA7XCIgKm5nSWY9XCJnbG9iYWxTZWFyY2hTZXR0aW5ncz8uc2hvd1wiPlxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3tnbG9iYWxTZWFyY2hTZXR0aW5ncz8ubGFiZWwgfHwgJ1NlYXJjaCd9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJhcHBseVNlYXJjaCgpXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hNb2RlbFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbGVhclwiIChjbGljayk9XCJjbGVhclNlYXJjaCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOiAyMnB4XCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHRhYmxlIFtuZ0NsYXNzXT1cInsnbm8taG92ZXInOiAhdGFibGVTZXR0aW5ncz8ucm93Q2xpY2tBY3Rpb259XCIgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInRhYmxlU291cmNlXCIgbWF0U29ydD5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImNvbHVtblwiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZGlzcGxheWVkQ29sdW1uc1wiPlxyXG4gICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICAgICAgICBtYXQtaGVhZGVyLWNlbGxcclxuICAgICAgICAgICAgICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwie3tjb2x1bW5zW2NvbHVtbl0ud2lkdGggPyAoJ3dpZHRoOicgKyBjb2x1bW5zW2NvbHVtbl0ud2lkdGgpIDogJyd9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF0LXNvcnQtaGVhZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2x1bW5zW2NvbHVtbl0uc29ydFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7Y29sdW1uc1tjb2x1bW5dLnRyYW5zbGF0ZUNvbHVtbk5hbWUgIH19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHNlYXJjaC1pY29uXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29sdW1uc1tjb2x1bW5dLnNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaFxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7Y29sdW1uc1tjb2x1bW5dLnNlYXJjaExhYmVsIHx8ICdTZWFyY2gnfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJhcHBseVNlYXJjaCgpXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiAoY2xpY2spPVwic2VhcmNoTW9kZWw9JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInt7Y29sdW1uc1tjb2x1bW5dLndpZHRoID8gKCd3aWR0aDonICsgY29sdW1uc1tjb2x1bW5dLndpZHRoKSA6ICcnfX1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWVuZCc6IGNvbHVtbnNbY29sdW1uXS5mbGV4UmlnaHR9XCJcclxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2x1bW5zW2NvbHVtbl0uYWN0aW9ucyAmJiBjb2x1bW5zW2NvbHVtbl0uYWN0aW9ucyEubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb2x1bW5zW2NvbHVtbl0uYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2hlY2tJZkFjdGlvblZpc2libGUoZWxlbWVudCwgYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbC1hdXRvXCIgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFhY3Rpb24udXJsICYmIGFjdGlvbi5hY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3soYWN0aW9uLnRvb2x0aXBOYW1lIHx8ICcnKSB9fVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiISEhKGFjdGlvbi50b29sdGlwTmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uLmFjdGlvbihlbGVtZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnt7YWN0aW9uLmljb25OYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cImFjdGlvbi51cmxcIiBbcm91dGVyTGlua109XCJhY3Rpb24udXJsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbC1hdXRvXCIgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyhhY3Rpb24udG9vbHRpcE5hbWUgfHwgJycpIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwRGlzYWJsZWRdPVwiISEhKGFjdGlvbi50b29sdGlwTmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnt7YWN0aW9uLmljb25OYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW5zW2NvbHVtbl0uYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW5zW2NvbHVtbl0udHJhbnNsYXRlVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjBcIj57e2NvbHVtbnNbY29sdW1uXS50cmFuc2xhdGVWYWx1ZSFbZWxlbWVudFtjb2x1bW5dXSB8fCAnJyB9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW5zW2NvbHVtbl0udHJhbnNsYXRlVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW5zW2NvbHVtbl0udHlwZSB8fCBjb2x1bW5zW2NvbHVtbl0udHlwZSA9PT0gJ3N0cmluZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIHN0eWxlPVwibWFyZ2luOjA7cGFkZGluZzowXCI+e3tlbGVtZW50W2NvbHVtbl19fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uc1tjb2x1bW5dLnR5cGUgPT09ICdkYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJtYXJnaW46MDtwYWRkaW5nOjBcIj57e2VsZW1lbnRbY29sdW1uXSB8IHN0RGF0ZVRpbWVGb3JtYXRQaXBlfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XHJcbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCIgKGNsaWNrKT1cInRhYmxlU2V0dGluZ3M/LnJvd0NsaWNrQWN0aW9uID8gdGFibGVTZXR0aW5ncy5yb3dDbGlja0FjdGlvbihyb3cpIDogbnVsbFwiPjwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG4gICAgPG1hdC1wYWdpbmF0b3IgW3BhZ2VJbmRleF09XCJwYWdlSW5kZXhcIiBbcGFnZVNpemVPcHRpb25zXT1cIls1LCAxMCwgMTUsIDIwLCAyNV1cIiAocGFnZSk9XCJwYWdlQ2hhbmdlZCgkZXZlbnQpXCIgc2hvd0ZpcnN0TGFzdEJ1dHRvbnM+PC9tYXQtcGFnaW5hdG9yPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -190,12 +190,18 @@ class LocalTableComponent {
|
|
|
190
190
|
}
|
|
191
191
|
if (this.bindSearchToUrl) {
|
|
192
192
|
const params = new URLSearchParams(location.search);
|
|
193
|
+
this.sort.sortChange.subscribe((res) => {
|
|
194
|
+
this.updateSearchToUrl();
|
|
195
|
+
});
|
|
193
196
|
if (params.get('stLocalTablePageIndex')) {
|
|
194
197
|
this.pageIndex = parseInt(params.get('stLocalTablePageIndex'));
|
|
195
198
|
}
|
|
196
199
|
if (params.get('stLocalTablePageSize')) {
|
|
197
200
|
this.pageSize = parseInt(params.get('stLocalTablePageSize'));
|
|
198
201
|
}
|
|
202
|
+
if (params.get('stLocalTableSortFieldName') && params.get('stLocalTableSortDirection')) {
|
|
203
|
+
this.sort.sort({ id: params.get('stLocalTableSortFieldName') || '', start: params.get('stLocalTableSortDirection') || 'asc', disableClear: false });
|
|
204
|
+
}
|
|
199
205
|
this.searchModel = params.get('stLocalTableSearch') || '';
|
|
200
206
|
if (this.searchModel) {
|
|
201
207
|
this.tableSource.filter = this.searchModel.trim().toLowerCase();
|
|
@@ -252,11 +258,16 @@ class LocalTableComponent {
|
|
|
252
258
|
}
|
|
253
259
|
updateSearchToUrl() {
|
|
254
260
|
if (this.bindSearchToUrl) {
|
|
255
|
-
|
|
261
|
+
let queryParams = {
|
|
256
262
|
stLocalTableSearch: this.searchModel,
|
|
257
263
|
stLocalTablePageIndex: this.pageIndex,
|
|
258
|
-
stLocalTablePageSize: this.pageSize
|
|
264
|
+
stLocalTablePageSize: this.paginator.pageSize,
|
|
265
|
+
stLocalTableSortFieldName: '',
|
|
266
|
+
stLocalTableSortDirection: ''
|
|
259
267
|
};
|
|
268
|
+
if (this.sort.direction && this.sort.active) {
|
|
269
|
+
queryParams = Object.assign(Object.assign({}, queryParams), { stLocalTableSortFieldName: this.sort.active, stLocalTableSortDirection: this.sort.direction });
|
|
270
|
+
}
|
|
260
271
|
this.router.navigate(['./'], { queryParams: queryParams, relativeTo: this.activatedRoute });
|
|
261
272
|
}
|
|
262
273
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-st-tables.mjs","sources":["../../../projects/ngx-st-tables/src/lib/services/local-table.service.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/configurations/configurations.component.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/configurations/configurations.component.html","../../../projects/ngx-st-tables/src/lib/components/local-table/local-table.component.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/local-table.component.html","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.ts","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.html","../../../projects/ngx-st-tables/src/lib/st-tables.module.ts","../../../projects/ngx-st-tables/src/public-api.ts","../../../projects/ngx-st-tables/src/ngx-st-tables.ts"],"sourcesContent":["import {Injectable} from \"@angular/core\";\r\nimport {StLocalStorageConfigurationModel} from \"../models/local-table/st-local-storage-configuration.model\";\r\n\r\n@Injectable()\r\nexport class LocalTableService {\r\n\r\n localStorageName: string = '';\r\n\r\n getConfigs(): StLocalStorageConfigurationModel[] {\r\n if (this.checkLocalStorageName()) {\r\n return JSON.parse(localStorage.getItem(this.localStorageName) || '[]');\r\n }\r\n\r\n return [];\r\n }\r\n\r\n saveConfigs(configs: StLocalStorageConfigurationModel[]) {\r\n if (this.checkLocalStorageName()) {\r\n localStorage.setItem(this.localStorageName, JSON.stringify(configs));\r\n }\r\n }\r\n\r\n private checkLocalStorageName(): boolean {\r\n if (this.localStorageName) {\r\n return true;\r\n } else {\r\n console.warn('YOu have to add configurationsSettings');\r\n return false;\r\n }\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {StConfigurationsSettingsModel} from \"../../../models/local-table/st-configurations-settings.model\";\r\nimport {StLocalStorageConfigurationModel} from \"../../../models/local-table/st-local-storage-configuration.model\";\r\n\r\n@Component({\r\n selector: 'app-configurations[configurationsSettings]',\r\n templateUrl: './configurations.component.html',\r\n styleUrls: ['./configurations.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ConfigurationsComponent implements OnInit {\r\n\r\n @Input()\r\n configurationsSettings: StConfigurationsSettingsModel;\r\n\r\n @Input()\r\n configurations: StLocalStorageConfigurationModel[];\r\n\r\n @Input()\r\n set initSelectedConfig(config: StLocalStorageConfigurationModel | null) {\r\n this.selectedConfig = config;\r\n }\r\n\r\n @Output()\r\n createNewConfig = new EventEmitter<string>();\r\n\r\n @Output()\r\n removeConfig = new EventEmitter<string>();\r\n\r\n @Output()\r\n changeConfig = new EventEmitter<string | null>();\r\n\r\n creatingConfiguration = false;\r\n createConfigurationName = '';\r\n\r\n removingConfiguration = false;\r\n\r\n selectedConfig: StLocalStorageConfigurationModel | null;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n showCreateConfiguration() {\r\n this.creatingConfiguration = true;\r\n this.createConfigurationName = '';\r\n }\r\n\r\n hideCreateConfiguration() {\r\n this.creatingConfiguration = false;\r\n this.createConfigurationName = '';\r\n }\r\n\r\n saveCreateConfiguration() {\r\n this.creatingConfiguration = false;\r\n this.selectedConfig = null;\r\n this.createNewConfig.emit(this.createConfigurationName);\r\n }\r\n\r\n deleteConfiguration() {\r\n this.removingConfiguration = true;\r\n }\r\n\r\n acceptDeleteConfiguration() {\r\n this.removingConfiguration = false;\r\n this.selectedConfig = null;\r\n this.removeConfig.emit(this.selectedConfig!.configId);\r\n }\r\n\r\n declineDeleteConfiguration() {\r\n this.removingConfiguration = false;\r\n }\r\n\r\n selectedConfigChanged() {\r\n this.changeConfig.emit(this.selectedConfig?.configId || null);\r\n }\r\n}\r\n\r\n\r\n","<div class=\"col-auto row align-items-center\" style=\"padding: 0;\">\r\n <ng-container *ngIf=\"!creatingConfiguration && !removingConfiguration\">\r\n <mat-form-field class=\"col-auto\" style=\"padding-right: 0;\">\r\n <mat-label>{{configurationsSettings.selectLabel}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedConfig\" (ngModelChange)=\"selectedConfigChanged()\">\r\n <mat-option [value]=\"null\"></mat-option>\r\n <mat-option *ngFor=\"let config of configurations\" [value]=\"config\">{{config.configName}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"showCreateConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n add\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" [disabled]=\"!selectedConfig\" (click)=\"deleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n delete\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"creatingConfiguration\">\r\n <mat-form-field class=\"col-auto\">\r\n <mat-label>{{configurationsSettings.createLabel}}</mat-label>\r\n <input matInput [(ngModel)]=\"createConfigurationName\">\r\n </mat-form-field>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"saveCreateConfiguration()\" [disabled]=\"!createConfigurationName\">\r\n <span class=\"material-icons-outlined\">\r\n done\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" (click)=\"hideCreateConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n close\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"removingConfiguration\">\r\n <p class=\"col-auto\" style=\"margin: 0; font-weight: bold;font-size: 16px;\">{{configurationsSettings.deleteWarningTitle}}</p>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"acceptDeleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n done\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" (click)=\"declineDeleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n close\r\n </span>\r\n </button>\r\n </ng-container>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {StLocalTableColumnsModel} from '../../models/local-table/st-local-table-columns.model';\r\nimport {\r\n LocalTableActionColumnModel,\r\n StLocalTableColumnModel\r\n} from '../../models/local-table/st-local-table-column.model';\r\nimport {MatSort} from \"@angular/material/sort\";\r\nimport {StConfigurationsSettingsModel} from \"../../models/local-table/st-configurations-settings.model\";\r\nimport {StGlobalSearchSettingsModel} from \"../../models/local-table/st-global-search-settings.model\";\r\nimport {StLocalStorageConfigurationModel} from \"../../models/local-table/st-local-storage-configuration.model\";\r\nimport {LocalTableService} from \"../../services/local-table.service\";\r\nimport {SortDirection} from \"@angular/material/sort/sort-direction\";\r\nimport {StTableSettingsModel} from \"../../models/local-table/st-table-settings.model\";\r\nimport {ActivatedRoute, Router} from \"@angular/router\";\r\n\r\n@Component({\r\n selector: 'ngx-st-local-table',\r\n templateUrl: './local-table.component.html',\r\n styleUrls: ['./local-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LocalTableComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @Input()\r\n tableSettings: StTableSettingsModel;\r\n\r\n @Input()\r\n globalSearchSettings: StGlobalSearchSettingsModel;\r\n\r\n @Input()\r\n pageSize: number = 10;\r\n\r\n @Input()\r\n allowPickColumns: boolean = false;\r\n\r\n @Input()\r\n configurationsSettings: StConfigurationsSettingsModel;\r\n\r\n @Input()\r\n localStorageName: string = '';\r\n\r\n @Input()\r\n bindSearchToUrl = false;\r\n\r\n @Input()\r\n set columns(columns: StLocalTableColumnsModel) {\r\n this._columns = columns;\r\n this.columnsArray = this.getColumnsArray();\r\n this.setDisplayedColumns();\r\n }\r\n\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n @Input()\r\n set data(data: any[]) {\r\n this._data = data || [];\r\n\r\n this.setTableSource();\r\n }\r\n\r\n get data() {\r\n return this._data;\r\n }\r\n\r\n searchModel = '';\r\n displayedColumns: string[] = [];\r\n tableSource: MatTableDataSource<any>;\r\n\r\n columnsArray: StLocalTableColumnModel[];\r\n\r\n configurations: StLocalStorageConfigurationModel[] = [];\r\n initConfig: StLocalStorageConfigurationModel | null = null;\r\n activeConfig: StLocalStorageConfigurationModel | null = null;\r\n pageIndex = 0;\r\n\r\n private _data: any[] = [];\r\n private _columns: StLocalTableColumnsModel = {};\r\n\r\n constructor(\r\n private localTableService: LocalTableService,\r\n private changeDetector: ChangeDetectorRef,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.localStorageName) {\r\n const pageSize = localStorage.getItem(this.localStorageName);\r\n if (pageSize) {\r\n this.pageSize = parseInt(pageSize);\r\n }\r\n }\r\n\r\n if (this.configurationsSettings) {\r\n this.localTableService.localStorageName = this.configurationsSettings?.localStorageName || '';\r\n this.loadConfigs();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.configurationsSettings) {\r\n this.paginator.page.subscribe(res => {\r\n if (this.activeConfig) {\r\n this.activeConfig.pageSize = res.pageSize;\r\n this.updateConfigsToLocalStorage();\r\n }\r\n });\r\n\r\n this.sort.sortChange.subscribe((res) => {\r\n if (this.activeConfig) {\r\n this.activeConfig.sortFieldName = res.active;\r\n this.activeConfig.sortDirection = res.direction;\r\n this.updateConfigsToLocalStorage();\r\n }\r\n });\r\n }\r\n\r\n if (this.bindSearchToUrl) {\r\n const params = new URLSearchParams(location.search);\r\n\r\n if (params.get('stLocalTablePageIndex')) {\r\n this.pageIndex = parseInt(params.get('stLocalTablePageIndex')!);\r\n }\r\n\r\n if (params.get('stLocalTablePageSize')) {\r\n this.pageSize = parseInt(params.get('stLocalTablePageSize')!);\r\n }\r\n\r\n this.searchModel = params.get('stLocalTableSearch') || '';\r\n if (this.searchModel) {\r\n this.tableSource.filter = this.searchModel.trim().toLowerCase();\r\n }\r\n }\r\n\r\n this.paginator.pageSize = this.pageSize;\r\n }\r\n\r\n applySearch() {\r\n this.tableSource.filter = this.searchModel.trim().toLowerCase();\r\n this.pageIndex = 0;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n clearSearch() {\r\n this.searchModel = '';\r\n this.tableSource.filter = this.searchModel;\r\n this.pageIndex = 0;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n checkIfActionVisible(row: any, action: LocalTableActionColumnModel) {\r\n if (action.show) {\r\n return action.show(row);\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n columnVisibleChanged(column: StLocalTableColumnModel) {\r\n this.setDisplayedColumns();\r\n\r\n this.updateConfigsToLocalStorage();\r\n }\r\n\r\n newConfigCreated(name: string) {\r\n const newConfig = this.generateNewConfig(name);\r\n this.configurations.push(newConfig);\r\n\r\n this.updateConfigsToLocalStorage();\r\n this.initConfig = newConfig;\r\n }\r\n\r\n configRemoved(configId: string) {\r\n this.configurations = this.configurations.filter(config => config.configId !== configId);\r\n this.updateConfigsToLocalStorage();\r\n }\r\n\r\n configChanged(configId: string | null) {\r\n this.activeConfig = (configId) ? this.configurations.find(config => config.configId === configId)! : null;\r\n if (this.activeConfig) {\r\n this.setTableConfig(this.activeConfig.pageSize, this.activeConfig.columnsDisabled, this.activeConfig.sortFieldName, this.activeConfig.sortDirection);\r\n } else {\r\n this.setTableConfig(this.pageSize, [], null, null);\r\n this.clearSearch();\r\n }\r\n }\r\n\r\n pageChanged(event: any) {\r\n this.pageIndex = event.pageIndex;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n private updateSearchToUrl() {\r\n if (this.bindSearchToUrl) {\r\n const queryParams = {\r\n stLocalTableSearch: this.searchModel,\r\n stLocalTablePageIndex: this.pageIndex,\r\n stLocalTablePageSize: this.pageSize\r\n }\r\n\r\n this.router.navigate(['./'], {queryParams: queryParams, relativeTo: this.activatedRoute});\r\n }\r\n }\r\n\r\n private updateConfigsToLocalStorage() {\r\n this.localTableService.saveConfigs(this.configurations);\r\n }\r\n\r\n private setTableSource() {\r\n this.tableSource = new MatTableDataSource<any>(this._data);\r\n this.tableSource.paginator = this.paginator;\r\n this.tableSource.sort = this.sort;\r\n this.tableSource.filter = this.searchModel;\r\n this.changeDetector.markForCheck();\r\n }\r\n\r\n private setDisplayedColumns() {\r\n this.displayedColumns = Object.keys(this.columns).filter((column) => {\r\n return this._columns[column].visible;\r\n });\r\n }\r\n\r\n private getColumnsArray(): StLocalTableColumnModel[] {\r\n return Object.keys(this._columns)\r\n .map((column) => this._columns[column]);\r\n }\r\n\r\n private loadConfigs() {\r\n this.configurations = this.localTableService.getConfigs();\r\n }\r\n\r\n private generateNewConfig(configName: string): StLocalStorageConfigurationModel {\r\n return {\r\n configId: Date.now().toString(),\r\n configName: configName,\r\n columnsDisabled: this.columnsArray.filter(column => !column.visible).map(column => column.translateColumnName),\r\n pageSize: this.paginator.pageSize,\r\n sortFieldName: (this.sort.direction && this.sort.active) ? this.sort.active : null,\r\n sortDirection: this.sort.direction || null\r\n }\r\n }\r\n\r\n private setTableConfig(pageSize: number, disabledColumns: string[], sortFieldName: string | null, sortDirection: SortDirection | null) {\r\n this.paginator.pageSize = pageSize;\r\n this.sort.sort({id: sortFieldName || '', start: sortDirection || 'asc', disableClear: false});\r\n\r\n this.columnsArray.forEach(column => {\r\n column.visible = disabledColumns.indexOf(column.translateColumnName) === -1;\r\n });\r\n this.setDisplayedColumns();\r\n }\r\n}\r\n","<div class=\"local-table\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col row align-items-center\" style=\"padding: 0;\" *ngIf=\"configurationsSettings || allowPickColumns\">\r\n <div class=\"col-auto\" style=\"padding: 0;\" *ngIf=\"allowPickColumns\">\r\n <button mat-icon-button class=\"col-auto\" [matMenuTriggerFor]=\"columnsMenu\">\r\n <span class=\"material-icons-outlined\">\r\n view_week\r\n </span>\r\n </button>\r\n <mat-menu #columnsMenu=\"matMenu\" xPosition=\"after\">\r\n <ng-container *ngFor=\"let column of columnsArray\">\r\n <div mat-menu-item *ngIf=\"!column.notShowInColumnPick\">\r\n <mat-checkbox\r\n [(ngModel)]=\"column.visible\"\r\n (ngModelChange)=\"columnVisibleChanged(column)\"\r\n style=\"margin-top: 5px;\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n {{column.translateColumnName}}\r\n </mat-checkbox>\r\n </div>\r\n </ng-container>\r\n </mat-menu>\r\n </div>\r\n\r\n <app-configurations\r\n *ngIf=\"configurationsSettings\"\r\n [configurationsSettings]=\"configurationsSettings\"\r\n [configurations]=\"configurations\"\r\n [initSelectedConfig]=\"initConfig\"\r\n (createNewConfig)=\"newConfigCreated($event)\"\r\n (removeConfig)=\"configRemoved($event)\"\r\n (changeConfig)=\"configChanged($event)\"\r\n ></app-configurations>\r\n </div>\r\n\r\n <div class=\"col\" style=\"padding: 0;\" *ngIf=\"globalSearchSettings?.show\">\r\n <mat-form-field class=\"col\">\r\n <mat-label>{{globalSearchSettings?.label || 'Search'}}</mat-label>\r\n <input matInput (keyup)=\"applySearch()\" [(ngModel)]=\"searchModel\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearSearch()\">\r\n <mat-icon style=\"font-size: 22px\">close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n\r\n </div>\r\n\r\n <table [ngClass]=\"{'no-hover': !tableSettings?.rowClickAction}\" mat-table [dataSource]=\"tableSource\" matSort>\r\n\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of displayedColumns\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"{{columns[column].width ? ('width:' + columns[column].width) : ''}}\"\r\n mat-sort-header\r\n [disabled]=\"!columns[column].sort\"\r\n >\r\n {{columns[column].translateColumnName }}\r\n <span class=\"material-icons search-icon\" [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\"\r\n *ngIf=\"columns[column].search\">\r\n search\r\n </span>\r\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\r\n <mat-form-field class=\"col\">\r\n <mat-label>{{columns[column].searchLabel || 'Search'}}</mat-label>\r\n <input matInput (keyup)=\"applySearch()\" [(ngModel)]=\"searchModel\"\r\n (click)=\"$event.stopPropagation()\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"searchModel=''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </mat-menu>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"\r\n style=\"{{columns[column].width ? ('width:' + columns[column].width) : ''}}\">\r\n <div class=\"actions-container\" [ngClass]=\"{'justify-content-end': columns[column].flexRight}\"\r\n *ngIf=\"columns[column].actions && columns[column].actions!.length > 0\">\r\n <ng-container *ngFor=\"let action of columns[column].actions\">\r\n <ng-container *ngIf=\"checkIfActionVisible(element, action)\">\r\n <button class=\"col-auto\" mat-icon-button\r\n type=\"button\"\r\n *ngIf=\"!action.url && action.action\"\r\n matTooltip=\"{{(action.tooltipName || '') }}\"\r\n [matTooltipDisabled]=\"!!!(action.tooltipName)\"\r\n (click)=\"action.action(element)\"\r\n >\r\n <span class=\"material-icons\">{{action.iconName}}</span>\r\n </button>\r\n\r\n <a *ngIf=\"action.url\" [routerLink]=\"action.url\">\r\n <button class=\"col-auto\" mat-icon-button\r\n type=\"button\"\r\n matTooltip=\"{{(action.tooltipName || '') }}\"\r\n [matTooltipDisabled]=\"!!!(action.tooltipName)\"\r\n >\r\n <span class=\"material-icons\">{{action.iconName}}</span>\r\n </button>\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!columns[column].actions\">\r\n <ng-container *ngIf=\"columns[column].translateValue\">\r\n <p style=\"margin:0;padding:0\">{{columns[column].translateValue![element[column]] || '' }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!columns[column].translateValue\">\r\n <ng-container *ngIf=\"!columns[column].type || columns[column].type === 'string'\">\r\n <p style=\"margin:0;padding:0\">{{element[column]}}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"columns[column].type === 'date'\">\r\n <p style=\"margin:0;padding:0\">{{element[column] | stDateTimeFormatPipe}}</p>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" (click)=\"tableSettings?.rowClickAction ? tableSettings.rowClickAction(row) : null\"></tr>\r\n </table>\r\n <mat-paginator [pageIndex]=\"pageIndex\" [pageSizeOptions]=\"[5, 10, 15, 20, 25]\" (page)=\"pageChanged($event)\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {FormControl} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ngx-st-select-table',\r\n templateUrl: './select-table.html',\r\n styleUrls: ['./select-table.scss', '../../../../assets/base-table.scss']\r\n})\r\nexport class SelectTable implements OnInit {\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n tableSource: MatTableDataSource<any>;\r\n columns: string[];\r\n initColumns: { [col: string]: string };\r\n\r\n search = new FormControl('');\r\n rowSelected: any[] = [];\r\n\r\n private _validError = false;\r\n\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n required = false;\r\n\r\n @Input()\r\n multiple = false;\r\n\r\n @Input()\r\n initSelected: any;\r\n\r\n @Input()\r\n initSearchVal: any;\r\n\r\n @Input()\r\n searchLabel = 'Search';\r\n\r\n @Input()\r\n selectedLabel = 'Selected';\r\n\r\n @Output()\r\n returnRowSelected = new EventEmitter<any[]>();\r\n\r\n @Input()\r\n set setInitColumns(col: { [col: string]: string }) {\r\n this.columns = ['active', ...Object.keys(col)];\r\n this.initColumns = col;\r\n }\r\n\r\n @Input()\r\n set tableData(data: any[]) {\r\n this.tableSource = new MatTableDataSource<any>(data);\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n @Input()\r\n set validError(error: boolean) {\r\n this._validError = error;\r\n }\r\n\r\n get validError() {\r\n return this._validError;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.search.valueChanges.subscribe(res => {\r\n this.tableSource.filter = res.trim().toLowerCase();\r\n });\r\n\r\n setTimeout(() => {\r\n if (this.initSearchVal) {\r\n this.search.setValue(this.initSearchVal);\r\n this.rowClick(this.initSelected);\r\n }\r\n }, 1000);\r\n }\r\n\r\n clearSearch() {\r\n this.search.setValue('');\r\n }\r\n\r\n rowClick(row: any) {\r\n const found = this.rowSelected.find((tmpRow) => tmpRow === row);\r\n if (found) {\r\n this.rowSelected = this.rowSelected.filter((tmpRow) => tmpRow !== row);\r\n } else {\r\n if (this.multiple) {\r\n this.rowSelected.push(row);\r\n } else {\r\n this.rowSelected = [row];\r\n }\r\n }\r\n\r\n this.returnRowSelected.emit(this.rowSelected);\r\n }\r\n\r\n checkActiveRow(row: any) {\r\n return !!(this.rowSelected.find(activeRow => activeRow === row));\r\n }\r\n\r\n}\r\n","<div class=\"shared-table-selector\">\r\n <p class=\"title\" [ngClass]=\"{'error-text': validError}\">{{title}} {{required ? '*' : ''}}</p>\r\n\r\n <div class=\"search-form row align-items-center\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input matInput placeholder=\"{{searchLabel}}\" [formControl]=\"search\">\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i class=\"material-icons\" (click)=\"clearSearch()\">clear</i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <table mat-table [dataSource]=\"tableSource\">\r\n <ng-container *ngFor=\"let col of columns\" [matColumnDef]=\"col\" >\r\n <th mat-header-cell *matHeaderCellDef> {{(col === 'active') ? selectedLabel : initColumns[col]}} </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <ng-container *ngIf=\"col === 'active'\">\r\n <i *ngIf=\"checkActiveRow(element)\" class=\"material-icons active-row\">done</i>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"col !== 'active'\">\r\n {{element[col]}}\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" (click)=\"rowClick(row)\" [ngClass]=\"{'active': checkActiveRow(row)}\"></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {RouterModule} from '@angular/router';\r\nimport {MatSortModule} from \"@angular/material/sort\";\r\nimport {MatMenuModule} from \"@angular/material/menu\";\r\nimport {MatSelectModule} from \"@angular/material/select\";\r\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\r\nimport {ConfigurationsComponent} from './components/local-table/configurations/configurations.component';\r\nimport {LocalTableService} from \"./services/local-table.service\";\r\nimport {LocalTableComponent} from \"./components/local-table/local-table.component\";\r\nimport {StDateFormatModule} from \"ngx-st-date-format\";\r\nimport {SelectTable} from \"./components/select-table/select-table\";\r\n\r\n@NgModule({\r\n declarations: [\r\n LocalTableComponent,\r\n ConfigurationsComponent,\r\n SelectTable\r\n ],\r\n exports: [\r\n LocalTableComponent,\r\n SelectTable\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n StDateFormatModule,\r\n MatSortModule,\r\n MatMenuModule,\r\n MatSelectModule,\r\n MatCheckboxModule\r\n ],\r\n providers: [\r\n LocalTableService\r\n ]\r\n})\r\nexport class StTablesModule {\r\n}\r\n","/*\r\n * Public API Surface of ngx-st-tables\r\n */\r\n\r\nexport * from './lib/services/local-table.service';\r\nexport * from './lib/components/local-table/local-table.component';\r\nexport * from './lib/components/local-table/configurations/configurations.component';\r\nexport * from './lib/components/select-table/select-table';\r\nexport * from './lib/models/local-table/st-configurations-settings.model';\r\nexport * from './lib/models/local-table/st-global-search-settings.model';\r\nexport * from './lib/models/local-table/st-local-storage-configuration.model';\r\nexport * from './lib/models/local-table/st-local-table-column.model';\r\nexport * from './lib/models/local-table/st-local-table-columns.model';\r\nexport * from './lib/models/local-table/st-table-settings.model';\r\nexport * from './lib/st-tables.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i5","i7","i1.LocalTableService","i2","i3","i4","i6.ConfigurationsComponent","i13","i14"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-st-tables.mjs","sources":["../../../projects/ngx-st-tables/src/lib/services/local-table.service.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/configurations/configurations.component.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/configurations/configurations.component.html","../../../projects/ngx-st-tables/src/lib/components/local-table/local-table.component.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/local-table.component.html","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.ts","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.html","../../../projects/ngx-st-tables/src/lib/st-tables.module.ts","../../../projects/ngx-st-tables/src/public-api.ts","../../../projects/ngx-st-tables/src/ngx-st-tables.ts"],"sourcesContent":["import {Injectable} from \"@angular/core\";\r\nimport {StLocalStorageConfigurationModel} from \"../models/local-table/st-local-storage-configuration.model\";\r\n\r\n@Injectable()\r\nexport class LocalTableService {\r\n\r\n localStorageName: string = '';\r\n\r\n getConfigs(): StLocalStorageConfigurationModel[] {\r\n if (this.checkLocalStorageName()) {\r\n return JSON.parse(localStorage.getItem(this.localStorageName) || '[]');\r\n }\r\n\r\n return [];\r\n }\r\n\r\n saveConfigs(configs: StLocalStorageConfigurationModel[]) {\r\n if (this.checkLocalStorageName()) {\r\n localStorage.setItem(this.localStorageName, JSON.stringify(configs));\r\n }\r\n }\r\n\r\n private checkLocalStorageName(): boolean {\r\n if (this.localStorageName) {\r\n return true;\r\n } else {\r\n console.warn('YOu have to add configurationsSettings');\r\n return false;\r\n }\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {StConfigurationsSettingsModel} from \"../../../models/local-table/st-configurations-settings.model\";\r\nimport {StLocalStorageConfigurationModel} from \"../../../models/local-table/st-local-storage-configuration.model\";\r\n\r\n@Component({\r\n selector: 'app-configurations[configurationsSettings]',\r\n templateUrl: './configurations.component.html',\r\n styleUrls: ['./configurations.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ConfigurationsComponent implements OnInit {\r\n\r\n @Input()\r\n configurationsSettings: StConfigurationsSettingsModel;\r\n\r\n @Input()\r\n configurations: StLocalStorageConfigurationModel[];\r\n\r\n @Input()\r\n set initSelectedConfig(config: StLocalStorageConfigurationModel | null) {\r\n this.selectedConfig = config;\r\n }\r\n\r\n @Output()\r\n createNewConfig = new EventEmitter<string>();\r\n\r\n @Output()\r\n removeConfig = new EventEmitter<string>();\r\n\r\n @Output()\r\n changeConfig = new EventEmitter<string | null>();\r\n\r\n creatingConfiguration = false;\r\n createConfigurationName = '';\r\n\r\n removingConfiguration = false;\r\n\r\n selectedConfig: StLocalStorageConfigurationModel | null;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n showCreateConfiguration() {\r\n this.creatingConfiguration = true;\r\n this.createConfigurationName = '';\r\n }\r\n\r\n hideCreateConfiguration() {\r\n this.creatingConfiguration = false;\r\n this.createConfigurationName = '';\r\n }\r\n\r\n saveCreateConfiguration() {\r\n this.creatingConfiguration = false;\r\n this.selectedConfig = null;\r\n this.createNewConfig.emit(this.createConfigurationName);\r\n }\r\n\r\n deleteConfiguration() {\r\n this.removingConfiguration = true;\r\n }\r\n\r\n acceptDeleteConfiguration() {\r\n this.removingConfiguration = false;\r\n this.selectedConfig = null;\r\n this.removeConfig.emit(this.selectedConfig!.configId);\r\n }\r\n\r\n declineDeleteConfiguration() {\r\n this.removingConfiguration = false;\r\n }\r\n\r\n selectedConfigChanged() {\r\n this.changeConfig.emit(this.selectedConfig?.configId || null);\r\n }\r\n}\r\n\r\n\r\n","<div class=\"col-auto row align-items-center\" style=\"padding: 0;\">\r\n <ng-container *ngIf=\"!creatingConfiguration && !removingConfiguration\">\r\n <mat-form-field class=\"col-auto\" style=\"padding-right: 0;\">\r\n <mat-label>{{configurationsSettings.selectLabel}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedConfig\" (ngModelChange)=\"selectedConfigChanged()\">\r\n <mat-option [value]=\"null\"></mat-option>\r\n <mat-option *ngFor=\"let config of configurations\" [value]=\"config\">{{config.configName}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"showCreateConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n add\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" [disabled]=\"!selectedConfig\" (click)=\"deleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n delete\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"creatingConfiguration\">\r\n <mat-form-field class=\"col-auto\">\r\n <mat-label>{{configurationsSettings.createLabel}}</mat-label>\r\n <input matInput [(ngModel)]=\"createConfigurationName\">\r\n </mat-form-field>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"saveCreateConfiguration()\" [disabled]=\"!createConfigurationName\">\r\n <span class=\"material-icons-outlined\">\r\n done\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" (click)=\"hideCreateConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n close\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"removingConfiguration\">\r\n <p class=\"col-auto\" style=\"margin: 0; font-weight: bold;font-size: 16px;\">{{configurationsSettings.deleteWarningTitle}}</p>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"acceptDeleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n done\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" (click)=\"declineDeleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n close\r\n </span>\r\n </button>\r\n </ng-container>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {StLocalTableColumnsModel} from '../../models/local-table/st-local-table-columns.model';\r\nimport {\r\n LocalTableActionColumnModel,\r\n StLocalTableColumnModel\r\n} from '../../models/local-table/st-local-table-column.model';\r\nimport {MatSort} from \"@angular/material/sort\";\r\nimport {StConfigurationsSettingsModel} from \"../../models/local-table/st-configurations-settings.model\";\r\nimport {StGlobalSearchSettingsModel} from \"../../models/local-table/st-global-search-settings.model\";\r\nimport {StLocalStorageConfigurationModel} from \"../../models/local-table/st-local-storage-configuration.model\";\r\nimport {LocalTableService} from \"../../services/local-table.service\";\r\nimport {SortDirection} from \"@angular/material/sort/sort-direction\";\r\nimport {StTableSettingsModel} from \"../../models/local-table/st-table-settings.model\";\r\nimport {ActivatedRoute, Router} from \"@angular/router\";\r\n\r\n@Component({\r\n selector: 'ngx-st-local-table',\r\n templateUrl: './local-table.component.html',\r\n styleUrls: ['./local-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LocalTableComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @Input()\r\n tableSettings: StTableSettingsModel;\r\n\r\n @Input()\r\n globalSearchSettings: StGlobalSearchSettingsModel;\r\n\r\n @Input()\r\n pageSize: number = 10;\r\n\r\n @Input()\r\n allowPickColumns: boolean = false;\r\n\r\n @Input()\r\n configurationsSettings: StConfigurationsSettingsModel;\r\n\r\n @Input()\r\n localStorageName: string = '';\r\n\r\n @Input()\r\n bindSearchToUrl = false;\r\n\r\n @Input()\r\n set columns(columns: StLocalTableColumnsModel) {\r\n this._columns = columns;\r\n this.columnsArray = this.getColumnsArray();\r\n this.setDisplayedColumns();\r\n }\r\n\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n @Input()\r\n set data(data: any[]) {\r\n this._data = data || [];\r\n\r\n this.setTableSource();\r\n }\r\n\r\n get data() {\r\n return this._data;\r\n }\r\n\r\n searchModel = '';\r\n displayedColumns: string[] = [];\r\n tableSource: MatTableDataSource<any>;\r\n\r\n columnsArray: StLocalTableColumnModel[];\r\n\r\n configurations: StLocalStorageConfigurationModel[] = [];\r\n initConfig: StLocalStorageConfigurationModel | null = null;\r\n activeConfig: StLocalStorageConfigurationModel | null = null;\r\n pageIndex = 0;\r\n\r\n private _data: any[] = [];\r\n private _columns: StLocalTableColumnsModel = {};\r\n\r\n constructor(\r\n private localTableService: LocalTableService,\r\n private changeDetector: ChangeDetectorRef,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.localStorageName) {\r\n const pageSize = localStorage.getItem(this.localStorageName);\r\n if (pageSize) {\r\n this.pageSize = parseInt(pageSize);\r\n }\r\n }\r\n\r\n if (this.configurationsSettings) {\r\n this.localTableService.localStorageName = this.configurationsSettings?.localStorageName || '';\r\n this.loadConfigs();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.configurationsSettings) {\r\n this.paginator.page.subscribe(res => {\r\n if (this.activeConfig) {\r\n this.activeConfig.pageSize = res.pageSize;\r\n this.updateConfigsToLocalStorage();\r\n }\r\n });\r\n\r\n this.sort.sortChange.subscribe((res) => {\r\n if (this.activeConfig) {\r\n this.activeConfig.sortFieldName = res.active;\r\n this.activeConfig.sortDirection = res.direction;\r\n this.updateConfigsToLocalStorage();\r\n }\r\n });\r\n }\r\n\r\n if (this.bindSearchToUrl) {\r\n const params = new URLSearchParams(location.search);\r\n\r\n this.sort.sortChange.subscribe((res) => {\r\n this.updateSearchToUrl();\r\n });\r\n\r\n if (params.get('stLocalTablePageIndex')) {\r\n this.pageIndex = parseInt(params.get('stLocalTablePageIndex')!);\r\n }\r\n\r\n if (params.get('stLocalTablePageSize')) {\r\n this.pageSize = parseInt(params.get('stLocalTablePageSize')!);\r\n }\r\n\r\n if (params.get('stLocalTableSortFieldName') && params.get('stLocalTableSortDirection')) {\r\n this.sort.sort({id: params.get('stLocalTableSortFieldName') || '', start: <'asc'|'desc'>params.get('stLocalTableSortDirection') || 'asc', disableClear: false});\r\n }\r\n\r\n this.searchModel = params.get('stLocalTableSearch') || '';\r\n if (this.searchModel) {\r\n this.tableSource.filter = this.searchModel.trim().toLowerCase();\r\n }\r\n }\r\n\r\n this.paginator.pageSize = this.pageSize;\r\n }\r\n\r\n applySearch() {\r\n this.tableSource.filter = this.searchModel.trim().toLowerCase();\r\n this.pageIndex = 0;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n clearSearch() {\r\n this.searchModel = '';\r\n this.tableSource.filter = this.searchModel;\r\n this.pageIndex = 0;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n checkIfActionVisible(row: any, action: LocalTableActionColumnModel) {\r\n if (action.show) {\r\n return action.show(row);\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n columnVisibleChanged(column: StLocalTableColumnModel) {\r\n this.setDisplayedColumns();\r\n\r\n this.updateConfigsToLocalStorage();\r\n }\r\n\r\n newConfigCreated(name: string) {\r\n const newConfig = this.generateNewConfig(name);\r\n this.configurations.push(newConfig);\r\n\r\n this.updateConfigsToLocalStorage();\r\n this.initConfig = newConfig;\r\n }\r\n\r\n configRemoved(configId: string) {\r\n this.configurations = this.configurations.filter(config => config.configId !== configId);\r\n this.updateConfigsToLocalStorage();\r\n }\r\n\r\n configChanged(configId: string | null) {\r\n this.activeConfig = (configId) ? this.configurations.find(config => config.configId === configId)! : null;\r\n if (this.activeConfig) {\r\n this.setTableConfig(this.activeConfig.pageSize, this.activeConfig.columnsDisabled, this.activeConfig.sortFieldName, this.activeConfig.sortDirection);\r\n } else {\r\n this.setTableConfig(this.pageSize, [], null, null);\r\n this.clearSearch();\r\n }\r\n }\r\n\r\n pageChanged(event: any) {\r\n this.pageIndex = event.pageIndex;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n private updateSearchToUrl() {\r\n if (this.bindSearchToUrl) {\r\n let queryParams = {\r\n stLocalTableSearch: this.searchModel,\r\n stLocalTablePageIndex: this.pageIndex,\r\n stLocalTablePageSize: this.paginator.pageSize,\r\n stLocalTableSortFieldName: '',\r\n stLocalTableSortDirection: ''\r\n };\r\n\r\n if (this.sort.direction && this.sort.active) {\r\n queryParams = {\r\n ...queryParams,\r\n stLocalTableSortFieldName: this.sort.active,\r\n stLocalTableSortDirection: this.sort.direction\r\n }\r\n }\r\n\r\n this.router.navigate(['./'], {queryParams: queryParams, relativeTo: this.activatedRoute});\r\n }\r\n }\r\n\r\n private updateConfigsToLocalStorage() {\r\n this.localTableService.saveConfigs(this.configurations);\r\n }\r\n\r\n private setTableSource() {\r\n this.tableSource = new MatTableDataSource<any>(this._data);\r\n this.tableSource.paginator = this.paginator;\r\n this.tableSource.sort = this.sort;\r\n this.tableSource.filter = this.searchModel;\r\n this.changeDetector.markForCheck();\r\n }\r\n\r\n private setDisplayedColumns() {\r\n this.displayedColumns = Object.keys(this.columns).filter((column) => {\r\n return this._columns[column].visible;\r\n });\r\n }\r\n\r\n private getColumnsArray(): StLocalTableColumnModel[] {\r\n return Object.keys(this._columns)\r\n .map((column) => this._columns[column]);\r\n }\r\n\r\n private loadConfigs() {\r\n this.configurations = this.localTableService.getConfigs();\r\n }\r\n\r\n private generateNewConfig(configName: string): StLocalStorageConfigurationModel {\r\n return {\r\n configId: Date.now().toString(),\r\n configName: configName,\r\n columnsDisabled: this.columnsArray.filter(column => !column.visible).map(column => column.translateColumnName),\r\n pageSize: this.paginator.pageSize,\r\n sortFieldName: (this.sort.direction && this.sort.active) ? this.sort.active : null,\r\n sortDirection: this.sort.direction || null\r\n }\r\n }\r\n\r\n private setTableConfig(pageSize: number, disabledColumns: string[], sortFieldName: string | null, sortDirection: SortDirection | null) {\r\n this.paginator.pageSize = pageSize;\r\n this.sort.sort({id: sortFieldName || '', start: sortDirection || 'asc', disableClear: false});\r\n\r\n this.columnsArray.forEach(column => {\r\n column.visible = disabledColumns.indexOf(column.translateColumnName) === -1;\r\n });\r\n this.setDisplayedColumns();\r\n }\r\n}\r\n","<div class=\"local-table\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col row align-items-center\" style=\"padding: 0;\" *ngIf=\"configurationsSettings || allowPickColumns\">\r\n <div class=\"col-auto\" style=\"padding: 0;\" *ngIf=\"allowPickColumns\">\r\n <button mat-icon-button class=\"col-auto\" [matMenuTriggerFor]=\"columnsMenu\">\r\n <span class=\"material-icons-outlined\">\r\n view_week\r\n </span>\r\n </button>\r\n <mat-menu #columnsMenu=\"matMenu\" xPosition=\"after\">\r\n <ng-container *ngFor=\"let column of columnsArray\">\r\n <div mat-menu-item *ngIf=\"!column.notShowInColumnPick\">\r\n <mat-checkbox\r\n [(ngModel)]=\"column.visible\"\r\n (ngModelChange)=\"columnVisibleChanged(column)\"\r\n style=\"margin-top: 5px;\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n {{column.translateColumnName}}\r\n </mat-checkbox>\r\n </div>\r\n </ng-container>\r\n </mat-menu>\r\n </div>\r\n\r\n <app-configurations\r\n *ngIf=\"configurationsSettings\"\r\n [configurationsSettings]=\"configurationsSettings\"\r\n [configurations]=\"configurations\"\r\n [initSelectedConfig]=\"initConfig\"\r\n (createNewConfig)=\"newConfigCreated($event)\"\r\n (removeConfig)=\"configRemoved($event)\"\r\n (changeConfig)=\"configChanged($event)\"\r\n ></app-configurations>\r\n </div>\r\n\r\n <div class=\"col\" style=\"padding: 0;\" *ngIf=\"globalSearchSettings?.show\">\r\n <mat-form-field class=\"col\">\r\n <mat-label>{{globalSearchSettings?.label || 'Search'}}</mat-label>\r\n <input matInput (keyup)=\"applySearch()\" [(ngModel)]=\"searchModel\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearSearch()\">\r\n <mat-icon style=\"font-size: 22px\">close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n\r\n </div>\r\n\r\n <table [ngClass]=\"{'no-hover': !tableSettings?.rowClickAction}\" mat-table [dataSource]=\"tableSource\" matSort>\r\n\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of displayedColumns\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"{{columns[column].width ? ('width:' + columns[column].width) : ''}}\"\r\n mat-sort-header\r\n [disabled]=\"!columns[column].sort\"\r\n >\r\n {{columns[column].translateColumnName }}\r\n <span class=\"material-icons search-icon\" [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\"\r\n *ngIf=\"columns[column].search\">\r\n search\r\n </span>\r\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\r\n <mat-form-field class=\"col\">\r\n <mat-label>{{columns[column].searchLabel || 'Search'}}</mat-label>\r\n <input matInput (keyup)=\"applySearch()\" [(ngModel)]=\"searchModel\"\r\n (click)=\"$event.stopPropagation()\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"searchModel=''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </mat-menu>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"\r\n style=\"{{columns[column].width ? ('width:' + columns[column].width) : ''}}\">\r\n <div class=\"actions-container\" [ngClass]=\"{'justify-content-end': columns[column].flexRight}\"\r\n *ngIf=\"columns[column].actions && columns[column].actions!.length > 0\">\r\n <ng-container *ngFor=\"let action of columns[column].actions\">\r\n <ng-container *ngIf=\"checkIfActionVisible(element, action)\">\r\n <button class=\"col-auto\" mat-icon-button\r\n type=\"button\"\r\n *ngIf=\"!action.url && action.action\"\r\n matTooltip=\"{{(action.tooltipName || '') }}\"\r\n [matTooltipDisabled]=\"!!!(action.tooltipName)\"\r\n (click)=\"action.action(element)\"\r\n >\r\n <span class=\"material-icons\">{{action.iconName}}</span>\r\n </button>\r\n\r\n <a *ngIf=\"action.url\" [routerLink]=\"action.url\">\r\n <button class=\"col-auto\" mat-icon-button\r\n type=\"button\"\r\n matTooltip=\"{{(action.tooltipName || '') }}\"\r\n [matTooltipDisabled]=\"!!!(action.tooltipName)\"\r\n >\r\n <span class=\"material-icons\">{{action.iconName}}</span>\r\n </button>\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!columns[column].actions\">\r\n <ng-container *ngIf=\"columns[column].translateValue\">\r\n <p style=\"margin:0;padding:0\">{{columns[column].translateValue![element[column]] || '' }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!columns[column].translateValue\">\r\n <ng-container *ngIf=\"!columns[column].type || columns[column].type === 'string'\">\r\n <p style=\"margin:0;padding:0\">{{element[column]}}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"columns[column].type === 'date'\">\r\n <p style=\"margin:0;padding:0\">{{element[column] | stDateTimeFormatPipe}}</p>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" (click)=\"tableSettings?.rowClickAction ? tableSettings.rowClickAction(row) : null\"></tr>\r\n </table>\r\n <mat-paginator [pageIndex]=\"pageIndex\" [pageSizeOptions]=\"[5, 10, 15, 20, 25]\" (page)=\"pageChanged($event)\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {FormControl} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ngx-st-select-table',\r\n templateUrl: './select-table.html',\r\n styleUrls: ['./select-table.scss', '../../../../assets/base-table.scss']\r\n})\r\nexport class SelectTable implements OnInit {\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n tableSource: MatTableDataSource<any>;\r\n columns: string[];\r\n initColumns: { [col: string]: string };\r\n\r\n search = new FormControl('');\r\n rowSelected: any[] = [];\r\n\r\n private _validError = false;\r\n\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n required = false;\r\n\r\n @Input()\r\n multiple = false;\r\n\r\n @Input()\r\n initSelected: any;\r\n\r\n @Input()\r\n initSearchVal: any;\r\n\r\n @Input()\r\n searchLabel = 'Search';\r\n\r\n @Input()\r\n selectedLabel = 'Selected';\r\n\r\n @Output()\r\n returnRowSelected = new EventEmitter<any[]>();\r\n\r\n @Input()\r\n set setInitColumns(col: { [col: string]: string }) {\r\n this.columns = ['active', ...Object.keys(col)];\r\n this.initColumns = col;\r\n }\r\n\r\n @Input()\r\n set tableData(data: any[]) {\r\n this.tableSource = new MatTableDataSource<any>(data);\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n @Input()\r\n set validError(error: boolean) {\r\n this._validError = error;\r\n }\r\n\r\n get validError() {\r\n return this._validError;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.search.valueChanges.subscribe(res => {\r\n this.tableSource.filter = res.trim().toLowerCase();\r\n });\r\n\r\n setTimeout(() => {\r\n if (this.initSearchVal) {\r\n this.search.setValue(this.initSearchVal);\r\n this.rowClick(this.initSelected);\r\n }\r\n }, 1000);\r\n }\r\n\r\n clearSearch() {\r\n this.search.setValue('');\r\n }\r\n\r\n rowClick(row: any) {\r\n const found = this.rowSelected.find((tmpRow) => tmpRow === row);\r\n if (found) {\r\n this.rowSelected = this.rowSelected.filter((tmpRow) => tmpRow !== row);\r\n } else {\r\n if (this.multiple) {\r\n this.rowSelected.push(row);\r\n } else {\r\n this.rowSelected = [row];\r\n }\r\n }\r\n\r\n this.returnRowSelected.emit(this.rowSelected);\r\n }\r\n\r\n checkActiveRow(row: any) {\r\n return !!(this.rowSelected.find(activeRow => activeRow === row));\r\n }\r\n\r\n}\r\n","<div class=\"shared-table-selector\">\r\n <p class=\"title\" [ngClass]=\"{'error-text': validError}\">{{title}} {{required ? '*' : ''}}</p>\r\n\r\n <div class=\"search-form row align-items-center\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input matInput placeholder=\"{{searchLabel}}\" [formControl]=\"search\">\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i class=\"material-icons\" (click)=\"clearSearch()\">clear</i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <table mat-table [dataSource]=\"tableSource\">\r\n <ng-container *ngFor=\"let col of columns\" [matColumnDef]=\"col\" >\r\n <th mat-header-cell *matHeaderCellDef> {{(col === 'active') ? selectedLabel : initColumns[col]}} </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <ng-container *ngIf=\"col === 'active'\">\r\n <i *ngIf=\"checkActiveRow(element)\" class=\"material-icons active-row\">done</i>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"col !== 'active'\">\r\n {{element[col]}}\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" (click)=\"rowClick(row)\" [ngClass]=\"{'active': checkActiveRow(row)}\"></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {RouterModule} from '@angular/router';\r\nimport {MatSortModule} from \"@angular/material/sort\";\r\nimport {MatMenuModule} from \"@angular/material/menu\";\r\nimport {MatSelectModule} from \"@angular/material/select\";\r\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\r\nimport {ConfigurationsComponent} from './components/local-table/configurations/configurations.component';\r\nimport {LocalTableService} from \"./services/local-table.service\";\r\nimport {LocalTableComponent} from \"./components/local-table/local-table.component\";\r\nimport {StDateFormatModule} from \"ngx-st-date-format\";\r\nimport {SelectTable} from \"./components/select-table/select-table\";\r\n\r\n@NgModule({\r\n declarations: [\r\n LocalTableComponent,\r\n ConfigurationsComponent,\r\n SelectTable\r\n ],\r\n exports: [\r\n LocalTableComponent,\r\n SelectTable\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n StDateFormatModule,\r\n MatSortModule,\r\n MatMenuModule,\r\n MatSelectModule,\r\n MatCheckboxModule\r\n ],\r\n providers: [\r\n LocalTableService\r\n ]\r\n})\r\nexport class StTablesModule {\r\n}\r\n","/*\r\n * Public API Surface of ngx-st-tables\r\n */\r\n\r\nexport * from './lib/services/local-table.service';\r\nexport * from './lib/components/local-table/local-table.component';\r\nexport * from './lib/components/local-table/configurations/configurations.component';\r\nexport * from './lib/components/select-table/select-table';\r\nexport * from './lib/models/local-table/st-configurations-settings.model';\r\nexport * from './lib/models/local-table/st-global-search-settings.model';\r\nexport * from './lib/models/local-table/st-local-storage-configuration.model';\r\nexport * from './lib/models/local-table/st-local-table-column.model';\r\nexport * from './lib/models/local-table/st-local-table-columns.model';\r\nexport * from './lib/models/local-table/st-table-settings.model';\r\nexport * from './lib/st-tables.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i5","i7","i1.LocalTableService","i2","i3","i4","i6.ConfigurationsComponent","i13","i14"],"mappings":"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"}
|
|
@@ -188,12 +188,18 @@ class LocalTableComponent {
|
|
|
188
188
|
}
|
|
189
189
|
if (this.bindSearchToUrl) {
|
|
190
190
|
const params = new URLSearchParams(location.search);
|
|
191
|
+
this.sort.sortChange.subscribe((res) => {
|
|
192
|
+
this.updateSearchToUrl();
|
|
193
|
+
});
|
|
191
194
|
if (params.get('stLocalTablePageIndex')) {
|
|
192
195
|
this.pageIndex = parseInt(params.get('stLocalTablePageIndex'));
|
|
193
196
|
}
|
|
194
197
|
if (params.get('stLocalTablePageSize')) {
|
|
195
198
|
this.pageSize = parseInt(params.get('stLocalTablePageSize'));
|
|
196
199
|
}
|
|
200
|
+
if (params.get('stLocalTableSortFieldName') && params.get('stLocalTableSortDirection')) {
|
|
201
|
+
this.sort.sort({ id: params.get('stLocalTableSortFieldName') || '', start: params.get('stLocalTableSortDirection') || 'asc', disableClear: false });
|
|
202
|
+
}
|
|
197
203
|
this.searchModel = params.get('stLocalTableSearch') || '';
|
|
198
204
|
if (this.searchModel) {
|
|
199
205
|
this.tableSource.filter = this.searchModel.trim().toLowerCase();
|
|
@@ -250,11 +256,20 @@ class LocalTableComponent {
|
|
|
250
256
|
}
|
|
251
257
|
updateSearchToUrl() {
|
|
252
258
|
if (this.bindSearchToUrl) {
|
|
253
|
-
|
|
259
|
+
let queryParams = {
|
|
254
260
|
stLocalTableSearch: this.searchModel,
|
|
255
261
|
stLocalTablePageIndex: this.pageIndex,
|
|
256
|
-
stLocalTablePageSize: this.pageSize
|
|
262
|
+
stLocalTablePageSize: this.paginator.pageSize,
|
|
263
|
+
stLocalTableSortFieldName: '',
|
|
264
|
+
stLocalTableSortDirection: ''
|
|
257
265
|
};
|
|
266
|
+
if (this.sort.direction && this.sort.active) {
|
|
267
|
+
queryParams = {
|
|
268
|
+
...queryParams,
|
|
269
|
+
stLocalTableSortFieldName: this.sort.active,
|
|
270
|
+
stLocalTableSortDirection: this.sort.direction
|
|
271
|
+
};
|
|
272
|
+
}
|
|
258
273
|
this.router.navigate(['./'], { queryParams: queryParams, relativeTo: this.activatedRoute });
|
|
259
274
|
}
|
|
260
275
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-st-tables.mjs","sources":["../../../projects/ngx-st-tables/src/lib/services/local-table.service.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/configurations/configurations.component.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/configurations/configurations.component.html","../../../projects/ngx-st-tables/src/lib/components/local-table/local-table.component.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/local-table.component.html","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.ts","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.html","../../../projects/ngx-st-tables/src/lib/st-tables.module.ts","../../../projects/ngx-st-tables/src/public-api.ts","../../../projects/ngx-st-tables/src/ngx-st-tables.ts"],"sourcesContent":["import {Injectable} from \"@angular/core\";\r\nimport {StLocalStorageConfigurationModel} from \"../models/local-table/st-local-storage-configuration.model\";\r\n\r\n@Injectable()\r\nexport class LocalTableService {\r\n\r\n localStorageName: string = '';\r\n\r\n getConfigs(): StLocalStorageConfigurationModel[] {\r\n if (this.checkLocalStorageName()) {\r\n return JSON.parse(localStorage.getItem(this.localStorageName) || '[]');\r\n }\r\n\r\n return [];\r\n }\r\n\r\n saveConfigs(configs: StLocalStorageConfigurationModel[]) {\r\n if (this.checkLocalStorageName()) {\r\n localStorage.setItem(this.localStorageName, JSON.stringify(configs));\r\n }\r\n }\r\n\r\n private checkLocalStorageName(): boolean {\r\n if (this.localStorageName) {\r\n return true;\r\n } else {\r\n console.warn('YOu have to add configurationsSettings');\r\n return false;\r\n }\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {StConfigurationsSettingsModel} from \"../../../models/local-table/st-configurations-settings.model\";\r\nimport {StLocalStorageConfigurationModel} from \"../../../models/local-table/st-local-storage-configuration.model\";\r\n\r\n@Component({\r\n selector: 'app-configurations[configurationsSettings]',\r\n templateUrl: './configurations.component.html',\r\n styleUrls: ['./configurations.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ConfigurationsComponent implements OnInit {\r\n\r\n @Input()\r\n configurationsSettings: StConfigurationsSettingsModel;\r\n\r\n @Input()\r\n configurations: StLocalStorageConfigurationModel[];\r\n\r\n @Input()\r\n set initSelectedConfig(config: StLocalStorageConfigurationModel | null) {\r\n this.selectedConfig = config;\r\n }\r\n\r\n @Output()\r\n createNewConfig = new EventEmitter<string>();\r\n\r\n @Output()\r\n removeConfig = new EventEmitter<string>();\r\n\r\n @Output()\r\n changeConfig = new EventEmitter<string | null>();\r\n\r\n creatingConfiguration = false;\r\n createConfigurationName = '';\r\n\r\n removingConfiguration = false;\r\n\r\n selectedConfig: StLocalStorageConfigurationModel | null;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n showCreateConfiguration() {\r\n this.creatingConfiguration = true;\r\n this.createConfigurationName = '';\r\n }\r\n\r\n hideCreateConfiguration() {\r\n this.creatingConfiguration = false;\r\n this.createConfigurationName = '';\r\n }\r\n\r\n saveCreateConfiguration() {\r\n this.creatingConfiguration = false;\r\n this.selectedConfig = null;\r\n this.createNewConfig.emit(this.createConfigurationName);\r\n }\r\n\r\n deleteConfiguration() {\r\n this.removingConfiguration = true;\r\n }\r\n\r\n acceptDeleteConfiguration() {\r\n this.removingConfiguration = false;\r\n this.selectedConfig = null;\r\n this.removeConfig.emit(this.selectedConfig!.configId);\r\n }\r\n\r\n declineDeleteConfiguration() {\r\n this.removingConfiguration = false;\r\n }\r\n\r\n selectedConfigChanged() {\r\n this.changeConfig.emit(this.selectedConfig?.configId || null);\r\n }\r\n}\r\n\r\n\r\n","<div class=\"col-auto row align-items-center\" style=\"padding: 0;\">\r\n <ng-container *ngIf=\"!creatingConfiguration && !removingConfiguration\">\r\n <mat-form-field class=\"col-auto\" style=\"padding-right: 0;\">\r\n <mat-label>{{configurationsSettings.selectLabel}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedConfig\" (ngModelChange)=\"selectedConfigChanged()\">\r\n <mat-option [value]=\"null\"></mat-option>\r\n <mat-option *ngFor=\"let config of configurations\" [value]=\"config\">{{config.configName}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"showCreateConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n add\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" [disabled]=\"!selectedConfig\" (click)=\"deleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n delete\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"creatingConfiguration\">\r\n <mat-form-field class=\"col-auto\">\r\n <mat-label>{{configurationsSettings.createLabel}}</mat-label>\r\n <input matInput [(ngModel)]=\"createConfigurationName\">\r\n </mat-form-field>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"saveCreateConfiguration()\" [disabled]=\"!createConfigurationName\">\r\n <span class=\"material-icons-outlined\">\r\n done\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" (click)=\"hideCreateConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n close\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"removingConfiguration\">\r\n <p class=\"col-auto\" style=\"margin: 0; font-weight: bold;font-size: 16px;\">{{configurationsSettings.deleteWarningTitle}}</p>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"acceptDeleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n done\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" (click)=\"declineDeleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n close\r\n </span>\r\n </button>\r\n </ng-container>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {StLocalTableColumnsModel} from '../../models/local-table/st-local-table-columns.model';\r\nimport {\r\n LocalTableActionColumnModel,\r\n StLocalTableColumnModel\r\n} from '../../models/local-table/st-local-table-column.model';\r\nimport {MatSort} from \"@angular/material/sort\";\r\nimport {StConfigurationsSettingsModel} from \"../../models/local-table/st-configurations-settings.model\";\r\nimport {StGlobalSearchSettingsModel} from \"../../models/local-table/st-global-search-settings.model\";\r\nimport {StLocalStorageConfigurationModel} from \"../../models/local-table/st-local-storage-configuration.model\";\r\nimport {LocalTableService} from \"../../services/local-table.service\";\r\nimport {SortDirection} from \"@angular/material/sort/sort-direction\";\r\nimport {StTableSettingsModel} from \"../../models/local-table/st-table-settings.model\";\r\nimport {ActivatedRoute, Router} from \"@angular/router\";\r\n\r\n@Component({\r\n selector: 'ngx-st-local-table',\r\n templateUrl: './local-table.component.html',\r\n styleUrls: ['./local-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LocalTableComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @Input()\r\n tableSettings: StTableSettingsModel;\r\n\r\n @Input()\r\n globalSearchSettings: StGlobalSearchSettingsModel;\r\n\r\n @Input()\r\n pageSize: number = 10;\r\n\r\n @Input()\r\n allowPickColumns: boolean = false;\r\n\r\n @Input()\r\n configurationsSettings: StConfigurationsSettingsModel;\r\n\r\n @Input()\r\n localStorageName: string = '';\r\n\r\n @Input()\r\n bindSearchToUrl = false;\r\n\r\n @Input()\r\n set columns(columns: StLocalTableColumnsModel) {\r\n this._columns = columns;\r\n this.columnsArray = this.getColumnsArray();\r\n this.setDisplayedColumns();\r\n }\r\n\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n @Input()\r\n set data(data: any[]) {\r\n this._data = data || [];\r\n\r\n this.setTableSource();\r\n }\r\n\r\n get data() {\r\n return this._data;\r\n }\r\n\r\n searchModel = '';\r\n displayedColumns: string[] = [];\r\n tableSource: MatTableDataSource<any>;\r\n\r\n columnsArray: StLocalTableColumnModel[];\r\n\r\n configurations: StLocalStorageConfigurationModel[] = [];\r\n initConfig: StLocalStorageConfigurationModel | null = null;\r\n activeConfig: StLocalStorageConfigurationModel | null = null;\r\n pageIndex = 0;\r\n\r\n private _data: any[] = [];\r\n private _columns: StLocalTableColumnsModel = {};\r\n\r\n constructor(\r\n private localTableService: LocalTableService,\r\n private changeDetector: ChangeDetectorRef,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.localStorageName) {\r\n const pageSize = localStorage.getItem(this.localStorageName);\r\n if (pageSize) {\r\n this.pageSize = parseInt(pageSize);\r\n }\r\n }\r\n\r\n if (this.configurationsSettings) {\r\n this.localTableService.localStorageName = this.configurationsSettings?.localStorageName || '';\r\n this.loadConfigs();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.configurationsSettings) {\r\n this.paginator.page.subscribe(res => {\r\n if (this.activeConfig) {\r\n this.activeConfig.pageSize = res.pageSize;\r\n this.updateConfigsToLocalStorage();\r\n }\r\n });\r\n\r\n this.sort.sortChange.subscribe((res) => {\r\n if (this.activeConfig) {\r\n this.activeConfig.sortFieldName = res.active;\r\n this.activeConfig.sortDirection = res.direction;\r\n this.updateConfigsToLocalStorage();\r\n }\r\n });\r\n }\r\n\r\n if (this.bindSearchToUrl) {\r\n const params = new URLSearchParams(location.search);\r\n\r\n if (params.get('stLocalTablePageIndex')) {\r\n this.pageIndex = parseInt(params.get('stLocalTablePageIndex')!);\r\n }\r\n\r\n if (params.get('stLocalTablePageSize')) {\r\n this.pageSize = parseInt(params.get('stLocalTablePageSize')!);\r\n }\r\n\r\n this.searchModel = params.get('stLocalTableSearch') || '';\r\n if (this.searchModel) {\r\n this.tableSource.filter = this.searchModel.trim().toLowerCase();\r\n }\r\n }\r\n\r\n this.paginator.pageSize = this.pageSize;\r\n }\r\n\r\n applySearch() {\r\n this.tableSource.filter = this.searchModel.trim().toLowerCase();\r\n this.pageIndex = 0;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n clearSearch() {\r\n this.searchModel = '';\r\n this.tableSource.filter = this.searchModel;\r\n this.pageIndex = 0;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n checkIfActionVisible(row: any, action: LocalTableActionColumnModel) {\r\n if (action.show) {\r\n return action.show(row);\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n columnVisibleChanged(column: StLocalTableColumnModel) {\r\n this.setDisplayedColumns();\r\n\r\n this.updateConfigsToLocalStorage();\r\n }\r\n\r\n newConfigCreated(name: string) {\r\n const newConfig = this.generateNewConfig(name);\r\n this.configurations.push(newConfig);\r\n\r\n this.updateConfigsToLocalStorage();\r\n this.initConfig = newConfig;\r\n }\r\n\r\n configRemoved(configId: string) {\r\n this.configurations = this.configurations.filter(config => config.configId !== configId);\r\n this.updateConfigsToLocalStorage();\r\n }\r\n\r\n configChanged(configId: string | null) {\r\n this.activeConfig = (configId) ? this.configurations.find(config => config.configId === configId)! : null;\r\n if (this.activeConfig) {\r\n this.setTableConfig(this.activeConfig.pageSize, this.activeConfig.columnsDisabled, this.activeConfig.sortFieldName, this.activeConfig.sortDirection);\r\n } else {\r\n this.setTableConfig(this.pageSize, [], null, null);\r\n this.clearSearch();\r\n }\r\n }\r\n\r\n pageChanged(event: any) {\r\n this.pageIndex = event.pageIndex;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n private updateSearchToUrl() {\r\n if (this.bindSearchToUrl) {\r\n const queryParams = {\r\n stLocalTableSearch: this.searchModel,\r\n stLocalTablePageIndex: this.pageIndex,\r\n stLocalTablePageSize: this.pageSize\r\n }\r\n\r\n this.router.navigate(['./'], {queryParams: queryParams, relativeTo: this.activatedRoute});\r\n }\r\n }\r\n\r\n private updateConfigsToLocalStorage() {\r\n this.localTableService.saveConfigs(this.configurations);\r\n }\r\n\r\n private setTableSource() {\r\n this.tableSource = new MatTableDataSource<any>(this._data);\r\n this.tableSource.paginator = this.paginator;\r\n this.tableSource.sort = this.sort;\r\n this.tableSource.filter = this.searchModel;\r\n this.changeDetector.markForCheck();\r\n }\r\n\r\n private setDisplayedColumns() {\r\n this.displayedColumns = Object.keys(this.columns).filter((column) => {\r\n return this._columns[column].visible;\r\n });\r\n }\r\n\r\n private getColumnsArray(): StLocalTableColumnModel[] {\r\n return Object.keys(this._columns)\r\n .map((column) => this._columns[column]);\r\n }\r\n\r\n private loadConfigs() {\r\n this.configurations = this.localTableService.getConfigs();\r\n }\r\n\r\n private generateNewConfig(configName: string): StLocalStorageConfigurationModel {\r\n return {\r\n configId: Date.now().toString(),\r\n configName: configName,\r\n columnsDisabled: this.columnsArray.filter(column => !column.visible).map(column => column.translateColumnName),\r\n pageSize: this.paginator.pageSize,\r\n sortFieldName: (this.sort.direction && this.sort.active) ? this.sort.active : null,\r\n sortDirection: this.sort.direction || null\r\n }\r\n }\r\n\r\n private setTableConfig(pageSize: number, disabledColumns: string[], sortFieldName: string | null, sortDirection: SortDirection | null) {\r\n this.paginator.pageSize = pageSize;\r\n this.sort.sort({id: sortFieldName || '', start: sortDirection || 'asc', disableClear: false});\r\n\r\n this.columnsArray.forEach(column => {\r\n column.visible = disabledColumns.indexOf(column.translateColumnName) === -1;\r\n });\r\n this.setDisplayedColumns();\r\n }\r\n}\r\n","<div class=\"local-table\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col row align-items-center\" style=\"padding: 0;\" *ngIf=\"configurationsSettings || allowPickColumns\">\r\n <div class=\"col-auto\" style=\"padding: 0;\" *ngIf=\"allowPickColumns\">\r\n <button mat-icon-button class=\"col-auto\" [matMenuTriggerFor]=\"columnsMenu\">\r\n <span class=\"material-icons-outlined\">\r\n view_week\r\n </span>\r\n </button>\r\n <mat-menu #columnsMenu=\"matMenu\" xPosition=\"after\">\r\n <ng-container *ngFor=\"let column of columnsArray\">\r\n <div mat-menu-item *ngIf=\"!column.notShowInColumnPick\">\r\n <mat-checkbox\r\n [(ngModel)]=\"column.visible\"\r\n (ngModelChange)=\"columnVisibleChanged(column)\"\r\n style=\"margin-top: 5px;\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n {{column.translateColumnName}}\r\n </mat-checkbox>\r\n </div>\r\n </ng-container>\r\n </mat-menu>\r\n </div>\r\n\r\n <app-configurations\r\n *ngIf=\"configurationsSettings\"\r\n [configurationsSettings]=\"configurationsSettings\"\r\n [configurations]=\"configurations\"\r\n [initSelectedConfig]=\"initConfig\"\r\n (createNewConfig)=\"newConfigCreated($event)\"\r\n (removeConfig)=\"configRemoved($event)\"\r\n (changeConfig)=\"configChanged($event)\"\r\n ></app-configurations>\r\n </div>\r\n\r\n <div class=\"col\" style=\"padding: 0;\" *ngIf=\"globalSearchSettings?.show\">\r\n <mat-form-field class=\"col\">\r\n <mat-label>{{globalSearchSettings?.label || 'Search'}}</mat-label>\r\n <input matInput (keyup)=\"applySearch()\" [(ngModel)]=\"searchModel\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearSearch()\">\r\n <mat-icon style=\"font-size: 22px\">close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n\r\n </div>\r\n\r\n <table [ngClass]=\"{'no-hover': !tableSettings?.rowClickAction}\" mat-table [dataSource]=\"tableSource\" matSort>\r\n\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of displayedColumns\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"{{columns[column].width ? ('width:' + columns[column].width) : ''}}\"\r\n mat-sort-header\r\n [disabled]=\"!columns[column].sort\"\r\n >\r\n {{columns[column].translateColumnName }}\r\n <span class=\"material-icons search-icon\" [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\"\r\n *ngIf=\"columns[column].search\">\r\n search\r\n </span>\r\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\r\n <mat-form-field class=\"col\">\r\n <mat-label>{{columns[column].searchLabel || 'Search'}}</mat-label>\r\n <input matInput (keyup)=\"applySearch()\" [(ngModel)]=\"searchModel\"\r\n (click)=\"$event.stopPropagation()\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"searchModel=''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </mat-menu>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"\r\n style=\"{{columns[column].width ? ('width:' + columns[column].width) : ''}}\">\r\n <div class=\"actions-container\" [ngClass]=\"{'justify-content-end': columns[column].flexRight}\"\r\n *ngIf=\"columns[column].actions && columns[column].actions!.length > 0\">\r\n <ng-container *ngFor=\"let action of columns[column].actions\">\r\n <ng-container *ngIf=\"checkIfActionVisible(element, action)\">\r\n <button class=\"col-auto\" mat-icon-button\r\n type=\"button\"\r\n *ngIf=\"!action.url && action.action\"\r\n matTooltip=\"{{(action.tooltipName || '') }}\"\r\n [matTooltipDisabled]=\"!!!(action.tooltipName)\"\r\n (click)=\"action.action(element)\"\r\n >\r\n <span class=\"material-icons\">{{action.iconName}}</span>\r\n </button>\r\n\r\n <a *ngIf=\"action.url\" [routerLink]=\"action.url\">\r\n <button class=\"col-auto\" mat-icon-button\r\n type=\"button\"\r\n matTooltip=\"{{(action.tooltipName || '') }}\"\r\n [matTooltipDisabled]=\"!!!(action.tooltipName)\"\r\n >\r\n <span class=\"material-icons\">{{action.iconName}}</span>\r\n </button>\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!columns[column].actions\">\r\n <ng-container *ngIf=\"columns[column].translateValue\">\r\n <p style=\"margin:0;padding:0\">{{columns[column].translateValue![element[column]] || '' }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!columns[column].translateValue\">\r\n <ng-container *ngIf=\"!columns[column].type || columns[column].type === 'string'\">\r\n <p style=\"margin:0;padding:0\">{{element[column]}}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"columns[column].type === 'date'\">\r\n <p style=\"margin:0;padding:0\">{{element[column] | stDateTimeFormatPipe}}</p>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" (click)=\"tableSettings?.rowClickAction ? tableSettings.rowClickAction(row) : null\"></tr>\r\n </table>\r\n <mat-paginator [pageIndex]=\"pageIndex\" [pageSizeOptions]=\"[5, 10, 15, 20, 25]\" (page)=\"pageChanged($event)\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {FormControl} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ngx-st-select-table',\r\n templateUrl: './select-table.html',\r\n styleUrls: ['./select-table.scss', '../../../../assets/base-table.scss']\r\n})\r\nexport class SelectTable implements OnInit {\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n tableSource: MatTableDataSource<any>;\r\n columns: string[];\r\n initColumns: { [col: string]: string };\r\n\r\n search = new FormControl('');\r\n rowSelected: any[] = [];\r\n\r\n private _validError = false;\r\n\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n required = false;\r\n\r\n @Input()\r\n multiple = false;\r\n\r\n @Input()\r\n initSelected: any;\r\n\r\n @Input()\r\n initSearchVal: any;\r\n\r\n @Input()\r\n searchLabel = 'Search';\r\n\r\n @Input()\r\n selectedLabel = 'Selected';\r\n\r\n @Output()\r\n returnRowSelected = new EventEmitter<any[]>();\r\n\r\n @Input()\r\n set setInitColumns(col: { [col: string]: string }) {\r\n this.columns = ['active', ...Object.keys(col)];\r\n this.initColumns = col;\r\n }\r\n\r\n @Input()\r\n set tableData(data: any[]) {\r\n this.tableSource = new MatTableDataSource<any>(data);\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n @Input()\r\n set validError(error: boolean) {\r\n this._validError = error;\r\n }\r\n\r\n get validError() {\r\n return this._validError;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.search.valueChanges.subscribe(res => {\r\n this.tableSource.filter = res.trim().toLowerCase();\r\n });\r\n\r\n setTimeout(() => {\r\n if (this.initSearchVal) {\r\n this.search.setValue(this.initSearchVal);\r\n this.rowClick(this.initSelected);\r\n }\r\n }, 1000);\r\n }\r\n\r\n clearSearch() {\r\n this.search.setValue('');\r\n }\r\n\r\n rowClick(row: any) {\r\n const found = this.rowSelected.find((tmpRow) => tmpRow === row);\r\n if (found) {\r\n this.rowSelected = this.rowSelected.filter((tmpRow) => tmpRow !== row);\r\n } else {\r\n if (this.multiple) {\r\n this.rowSelected.push(row);\r\n } else {\r\n this.rowSelected = [row];\r\n }\r\n }\r\n\r\n this.returnRowSelected.emit(this.rowSelected);\r\n }\r\n\r\n checkActiveRow(row: any) {\r\n return !!(this.rowSelected.find(activeRow => activeRow === row));\r\n }\r\n\r\n}\r\n","<div class=\"shared-table-selector\">\r\n <p class=\"title\" [ngClass]=\"{'error-text': validError}\">{{title}} {{required ? '*' : ''}}</p>\r\n\r\n <div class=\"search-form row align-items-center\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input matInput placeholder=\"{{searchLabel}}\" [formControl]=\"search\">\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i class=\"material-icons\" (click)=\"clearSearch()\">clear</i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <table mat-table [dataSource]=\"tableSource\">\r\n <ng-container *ngFor=\"let col of columns\" [matColumnDef]=\"col\" >\r\n <th mat-header-cell *matHeaderCellDef> {{(col === 'active') ? selectedLabel : initColumns[col]}} </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <ng-container *ngIf=\"col === 'active'\">\r\n <i *ngIf=\"checkActiveRow(element)\" class=\"material-icons active-row\">done</i>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"col !== 'active'\">\r\n {{element[col]}}\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" (click)=\"rowClick(row)\" [ngClass]=\"{'active': checkActiveRow(row)}\"></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {RouterModule} from '@angular/router';\r\nimport {MatSortModule} from \"@angular/material/sort\";\r\nimport {MatMenuModule} from \"@angular/material/menu\";\r\nimport {MatSelectModule} from \"@angular/material/select\";\r\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\r\nimport {ConfigurationsComponent} from './components/local-table/configurations/configurations.component';\r\nimport {LocalTableService} from \"./services/local-table.service\";\r\nimport {LocalTableComponent} from \"./components/local-table/local-table.component\";\r\nimport {StDateFormatModule} from \"ngx-st-date-format\";\r\nimport {SelectTable} from \"./components/select-table/select-table\";\r\n\r\n@NgModule({\r\n declarations: [\r\n LocalTableComponent,\r\n ConfigurationsComponent,\r\n SelectTable\r\n ],\r\n exports: [\r\n LocalTableComponent,\r\n SelectTable\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n StDateFormatModule,\r\n MatSortModule,\r\n MatMenuModule,\r\n MatSelectModule,\r\n MatCheckboxModule\r\n ],\r\n providers: [\r\n LocalTableService\r\n ]\r\n})\r\nexport class StTablesModule {\r\n}\r\n","/*\r\n * Public API Surface of ngx-st-tables\r\n */\r\n\r\nexport * from './lib/services/local-table.service';\r\nexport * from './lib/components/local-table/local-table.component';\r\nexport * from './lib/components/local-table/configurations/configurations.component';\r\nexport * from './lib/components/select-table/select-table';\r\nexport * from './lib/models/local-table/st-configurations-settings.model';\r\nexport * from './lib/models/local-table/st-global-search-settings.model';\r\nexport * from './lib/models/local-table/st-local-storage-configuration.model';\r\nexport * from './lib/models/local-table/st-local-table-column.model';\r\nexport * from './lib/models/local-table/st-local-table-columns.model';\r\nexport * from './lib/models/local-table/st-table-settings.model';\r\nexport * from './lib/st-tables.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i5","i7","i1.LocalTableService","i2","i3","i4","i6.ConfigurationsComponent","i13","i14"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAIa,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;QAGI,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;AAwBjC,KAAA;IAtBG,UAAU,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,CAAC;AAC1E,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACb;AAED,IAAA,WAAW,CAAC,OAA2C,EAAA;AACnD,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC9B,YAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACxE,SAAA;KACJ;IAEO,qBAAqB,GAAA;QACzB,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;AACvD,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;KACJ;;8GAzBQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAjB,iBAAiB,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;MCOE,uBAAuB,CAAA;AA6BhC,IAAA,WAAA,GAAA;AAfA,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAU,CAAC;AAG7C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;AAG1C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAiB,CAAC;QAEjD,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAC9B,IAAuB,CAAA,uBAAA,GAAG,EAAE,CAAC;QAE7B,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;KAK7B;IAtBD,IACI,kBAAkB,CAAC,MAA+C,EAAA;AAClE,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;KAChC;IAqBD,QAAQ,GAAA;KACP;IAED,uBAAuB,GAAA;AACnB,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;KACrC;IAED,uBAAuB,GAAA;AACnB,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;KACrC;IAED,uBAAuB,GAAA;AACnB,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;KAC3D;IAED,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACrC;IAED,yBAAyB,GAAA;AACrB,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAe,CAAC,QAAQ,CAAC,CAAC;KACzD;IAED,0BAA0B,GAAA;AACtB,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACtC;IAED,qBAAqB,GAAA;AACjB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;KACjE;;oHAnEQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,yUCVpC,4lFAoDA,EAAA,MAAA,EAAA,CAAA,gEAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FD1Ca,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACI,4CAA4C,EAAA,eAAA,EAGrC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4lFAAA,EAAA,MAAA,EAAA,CAAA,gEAAA,CAAA,EAAA,CAAA;0EAK/C,sBAAsB,EAAA,CAAA;sBADrB,KAAK;gBAIN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAIF,kBAAkB,EAAA,CAAA;sBADrB,KAAK;gBAMN,eAAe,EAAA,CAAA;sBADd,MAAM;gBAIP,YAAY,EAAA,CAAA;sBADX,MAAM;gBAIP,YAAY,EAAA,CAAA;sBADX,MAAM;;;MEEE,mBAAmB,CAAA;AA6D5B,IAAA,WAAA,CACY,iBAAoC,EACpC,cAAiC,EACjC,MAAc,EACd,cAA8B,EAAA;QAH9B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACjC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAtD1C,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QAGtB,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAMlC,IAAgB,CAAA,gBAAA,GAAW,EAAE,CAAC;QAG9B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QAwBxB,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QACjB,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;QAKhC,IAAc,CAAA,cAAA,GAAuC,EAAE,CAAC;QACxD,IAAU,CAAA,UAAA,GAA4C,IAAI,CAAC;QAC3D,IAAY,CAAA,YAAA,GAA4C,IAAI,CAAC;QAC7D,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QAEN,IAAK,CAAA,KAAA,GAAU,EAAE,CAAC;QAClB,IAAQ,CAAA,QAAA,GAA6B,EAAE,CAAC;KAQ/C;IA1CD,IACI,OAAO,CAAC,OAAiC,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAED,IACI,IAAI,CAAC,IAAW,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AAED,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAwBD,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7D,YAAA,IAAI,QAAQ,EAAE;AACV,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtC,aAAA;AACJ,SAAA;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,IAAI,EAAE,CAAC;YAC9F,IAAI,CAAC,WAAW,EAAE,CAAC;AACtB,SAAA;KACJ;IAED,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAG;gBAChC,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;oBAC1C,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACtC,iBAAA;AACL,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;gBACnC,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC;oBAC7C,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC;oBAChD,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACtC,iBAAA;AACL,aAAC,CAAC,CAAC;AACN,SAAA;QAED,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEpD,YAAA,IAAI,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE;AACrC,gBAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAE,CAAC,CAAC;AACnE,aAAA;AAED,YAAA,IAAI,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;AACpC,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAE,CAAC,CAAC;AACjE,aAAA;YAED,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACnE,aAAA;AACJ,SAAA;QAED,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;KAC3C;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAChE,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAEnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,oBAAoB,CAAC,GAAQ,EAAE,MAAmC,EAAA;QAC9D,IAAI,MAAM,CAAC,IAAI,EAAE;AACb,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;AAED,IAAA,oBAAoB,CAAC,MAA+B,EAAA;QAChD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACtC;AAED,IAAA,gBAAgB,CAAC,IAAY,EAAA;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpC,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;KAC/B;AAED,IAAA,aAAa,CAAC,QAAgB,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACzF,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACtC;AAED,IAAA,aAAa,CAAC,QAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAE,GAAG,IAAI,CAAC;QAC1G,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AACxJ,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,EAAE,CAAC;AACtB,SAAA;KACJ;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAEjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAEO,iBAAiB,GAAA;QACrB,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,MAAM,WAAW,GAAG;gBAChB,kBAAkB,EAAE,IAAI,CAAC,WAAW;gBACpC,qBAAqB,EAAE,IAAI,CAAC,SAAS;gBACrC,oBAAoB,EAAE,IAAI,CAAC,QAAQ;aACtC,CAAA;YAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,EAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,EAAC,CAAC,CAAC;AAC7F,SAAA;KACJ;IAEO,2BAA2B,GAAA;QAC/B,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC3D;IAEO,cAAc,GAAA;QAClB,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAM,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AAC3C,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;KACtC;IAEO,mBAAmB,GAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,KAAI;YAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;AACzC,SAAC,CAAC,CAAC;KACN;IAEO,eAAe,GAAA;AACnB,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5B,aAAA,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/C;IAEO,WAAW,GAAA;QACf,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;KAC7D;AAEO,IAAA,iBAAiB,CAAC,UAAkB,EAAA;QACxC,OAAO;AACH,YAAA,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AAC/B,YAAA,UAAU,EAAE,UAAU;YACtB,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC;AAC9G,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;YACjC,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI;AAClF,YAAA,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI;SAC7C,CAAA;KACJ;AAEO,IAAA,cAAc,CAAC,QAAgB,EAAE,eAAyB,EAAE,aAA4B,EAAE,aAAmC,EAAA;AACjI,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,aAAa,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,IAAI,KAAK,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC,CAAC;AAE9F,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,IAAG;AAC/B,YAAA,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;;gHA7OQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EACjB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,YAAY,EACZ,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,OAAO,gDCjCtB,uuOA8HA,EAAA,MAAA,EAAA,CAAA,0mDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,4LAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,gBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,GAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,sBAAA,EAAA,GAAA,CAAA,kBAAA,EAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FD/Fa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACI,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uuOAAA,EAAA,MAAA,EAAA,CAAA,0mDAAA,CAAA,EAAA,CAAA;2LAGtB,SAAS,EAAA,CAAA;sBAAjC,SAAS;uBAAC,YAAY,CAAA;gBACH,IAAI,EAAA,CAAA;sBAAvB,SAAS;uBAAC,OAAO,CAAA;gBAGlB,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAIN,oBAAoB,EAAA,CAAA;sBADnB,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAIN,sBAAsB,EAAA,CAAA;sBADrB,KAAK;gBAIN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAIN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAIF,OAAO,EAAA,CAAA;sBADV,KAAK;gBAYF,IAAI,EAAA,CAAA;sBADP,KAAK;;;MEzDG,WAAW,CAAA;AA0DpB,IAAA,WAAA,GAAA;AAlDA,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QAEhB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAM5B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAGjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QASjB,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAC;QAGvB,IAAa,CAAA,aAAA,GAAG,UAAU,CAAC;AAG3B,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAS,CAAC;KAwB7C;IAtBD,IACI,cAAc,CAAC,GAA8B,EAAA;AAC7C,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;KAC1B;IAED,IACI,SAAS,CAAC,IAAW,EAAA;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAM,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;KAC/C;IAED,IACI,UAAU,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC5B;AAED,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IAKD,QAAQ,GAAA;QACJ,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,IAAG;AACrC,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACvD,SAAC,CAAC,CAAC;QAEH,UAAU,CAAC,MAAK;YACZ,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpC,aAAA;SACJ,EAAE,IAAI,CAAC,CAAC;KACZ;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KAC5B;AAED,IAAA,QAAQ,CAAC,GAAQ,EAAA;AACb,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAChE,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;AAC1E,SAAA;AAAM,aAAA;YACH,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,aAAA;AACJ,SAAA;QAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACjD;AAED,IAAA,cAAc,CAAC,GAAQ,EAAA;AACnB,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC;KACpE;;wGA/FQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAX,WAAW,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAET,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ3B,qmDAiCA,EAAA,MAAA,EAAA,CAAA,2FAAA,EAAA,g/CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAK,GAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAAE,GAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDvBa,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,SAAS;+BACI,qBAAqB,EAAA,QAAA,EAAA,qmDAAA,EAAA,MAAA,EAAA,CAAA,2FAAA,EAAA,g/CAAA,CAAA,EAAA,CAAA;0EAMN,SAAS,EAAA,CAAA;sBAAjC,SAAS;uBAAC,YAAY,CAAA;gBAYvB,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAIN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAIN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAIN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAIN,iBAAiB,EAAA,CAAA;sBADhB,MAAM;gBAIH,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAOF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAOF,UAAU,EAAA,CAAA;sBADb,KAAK;;;MENG,cAAc,CAAA;;2GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBA9BnB,mBAAmB;QACnB,uBAAuB;AACvB,QAAA,WAAW,aAOX,YAAY;QACZ,eAAe;QACf,aAAa;QACb,cAAc;QACd,kBAAkB;QAClB,kBAAkB;QAClB,cAAc;QACd,gBAAgB;QAChB,WAAW;QACX,mBAAmB;QACnB,YAAY;QACZ,kBAAkB;QAClB,aAAa;QACb,aAAa;QACb,eAAe;AACf,QAAA,iBAAiB,aAnBjB,mBAAmB;QACnB,WAAW,CAAA,EAAA,CAAA,CAAA;AAwBN,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAJZ,SAAA,EAAA;QACP,iBAAiB;KACpB,EApBQ,OAAA,EAAA,CAAA;YACL,YAAY;YACZ,eAAe;YACf,aAAa;YACb,cAAc;YACd,kBAAkB;YAClB,kBAAkB;YAClB,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,mBAAmB;YACnB,YAAY;YACZ,kBAAkB;YAClB,aAAa;YACb,aAAa;YACb,eAAe;YACf,iBAAiB;AACpB,SAAA,CAAA,EAAA,CAAA,CAAA;2FAKQ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhC1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACV,mBAAmB;wBACnB,uBAAuB;wBACvB,WAAW;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,mBAAmB;wBACnB,WAAW;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,kBAAkB;wBAClB,kBAAkB;wBAClB,cAAc;wBACd,gBAAgB;wBAChB,WAAW;wBACX,mBAAmB;wBACnB,YAAY;wBACZ,kBAAkB;wBAClB,aAAa;wBACb,aAAa;wBACb,eAAe;wBACf,iBAAiB;AACpB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,iBAAiB;AACpB,qBAAA;AACJ,iBAAA,CAAA;;;ACpDD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngx-st-tables.mjs","sources":["../../../projects/ngx-st-tables/src/lib/services/local-table.service.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/configurations/configurations.component.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/configurations/configurations.component.html","../../../projects/ngx-st-tables/src/lib/components/local-table/local-table.component.ts","../../../projects/ngx-st-tables/src/lib/components/local-table/local-table.component.html","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.ts","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.html","../../../projects/ngx-st-tables/src/lib/st-tables.module.ts","../../../projects/ngx-st-tables/src/public-api.ts","../../../projects/ngx-st-tables/src/ngx-st-tables.ts"],"sourcesContent":["import {Injectable} from \"@angular/core\";\r\nimport {StLocalStorageConfigurationModel} from \"../models/local-table/st-local-storage-configuration.model\";\r\n\r\n@Injectable()\r\nexport class LocalTableService {\r\n\r\n localStorageName: string = '';\r\n\r\n getConfigs(): StLocalStorageConfigurationModel[] {\r\n if (this.checkLocalStorageName()) {\r\n return JSON.parse(localStorage.getItem(this.localStorageName) || '[]');\r\n }\r\n\r\n return [];\r\n }\r\n\r\n saveConfigs(configs: StLocalStorageConfigurationModel[]) {\r\n if (this.checkLocalStorageName()) {\r\n localStorage.setItem(this.localStorageName, JSON.stringify(configs));\r\n }\r\n }\r\n\r\n private checkLocalStorageName(): boolean {\r\n if (this.localStorageName) {\r\n return true;\r\n } else {\r\n console.warn('YOu have to add configurationsSettings');\r\n return false;\r\n }\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {StConfigurationsSettingsModel} from \"../../../models/local-table/st-configurations-settings.model\";\r\nimport {StLocalStorageConfigurationModel} from \"../../../models/local-table/st-local-storage-configuration.model\";\r\n\r\n@Component({\r\n selector: 'app-configurations[configurationsSettings]',\r\n templateUrl: './configurations.component.html',\r\n styleUrls: ['./configurations.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ConfigurationsComponent implements OnInit {\r\n\r\n @Input()\r\n configurationsSettings: StConfigurationsSettingsModel;\r\n\r\n @Input()\r\n configurations: StLocalStorageConfigurationModel[];\r\n\r\n @Input()\r\n set initSelectedConfig(config: StLocalStorageConfigurationModel | null) {\r\n this.selectedConfig = config;\r\n }\r\n\r\n @Output()\r\n createNewConfig = new EventEmitter<string>();\r\n\r\n @Output()\r\n removeConfig = new EventEmitter<string>();\r\n\r\n @Output()\r\n changeConfig = new EventEmitter<string | null>();\r\n\r\n creatingConfiguration = false;\r\n createConfigurationName = '';\r\n\r\n removingConfiguration = false;\r\n\r\n selectedConfig: StLocalStorageConfigurationModel | null;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n showCreateConfiguration() {\r\n this.creatingConfiguration = true;\r\n this.createConfigurationName = '';\r\n }\r\n\r\n hideCreateConfiguration() {\r\n this.creatingConfiguration = false;\r\n this.createConfigurationName = '';\r\n }\r\n\r\n saveCreateConfiguration() {\r\n this.creatingConfiguration = false;\r\n this.selectedConfig = null;\r\n this.createNewConfig.emit(this.createConfigurationName);\r\n }\r\n\r\n deleteConfiguration() {\r\n this.removingConfiguration = true;\r\n }\r\n\r\n acceptDeleteConfiguration() {\r\n this.removingConfiguration = false;\r\n this.selectedConfig = null;\r\n this.removeConfig.emit(this.selectedConfig!.configId);\r\n }\r\n\r\n declineDeleteConfiguration() {\r\n this.removingConfiguration = false;\r\n }\r\n\r\n selectedConfigChanged() {\r\n this.changeConfig.emit(this.selectedConfig?.configId || null);\r\n }\r\n}\r\n\r\n\r\n","<div class=\"col-auto row align-items-center\" style=\"padding: 0;\">\r\n <ng-container *ngIf=\"!creatingConfiguration && !removingConfiguration\">\r\n <mat-form-field class=\"col-auto\" style=\"padding-right: 0;\">\r\n <mat-label>{{configurationsSettings.selectLabel}}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedConfig\" (ngModelChange)=\"selectedConfigChanged()\">\r\n <mat-option [value]=\"null\"></mat-option>\r\n <mat-option *ngFor=\"let config of configurations\" [value]=\"config\">{{config.configName}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"showCreateConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n add\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" [disabled]=\"!selectedConfig\" (click)=\"deleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n delete\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"creatingConfiguration\">\r\n <mat-form-field class=\"col-auto\">\r\n <mat-label>{{configurationsSettings.createLabel}}</mat-label>\r\n <input matInput [(ngModel)]=\"createConfigurationName\">\r\n </mat-form-field>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"saveCreateConfiguration()\" [disabled]=\"!createConfigurationName\">\r\n <span class=\"material-icons-outlined\">\r\n done\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" (click)=\"hideCreateConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n close\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"removingConfiguration\">\r\n <p class=\"col-auto\" style=\"margin: 0; font-weight: bold;font-size: 16px;\">{{configurationsSettings.deleteWarningTitle}}</p>\r\n <button mat-icon-button class=\"col-auto green-icon\" (click)=\"acceptDeleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n done\r\n </span>\r\n </button>\r\n <button mat-icon-button class=\"col-auto red-icon\" (click)=\"declineDeleteConfiguration()\">\r\n <span class=\"material-icons-outlined\">\r\n close\r\n </span>\r\n </button>\r\n </ng-container>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnInit,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {StLocalTableColumnsModel} from '../../models/local-table/st-local-table-columns.model';\r\nimport {\r\n LocalTableActionColumnModel,\r\n StLocalTableColumnModel\r\n} from '../../models/local-table/st-local-table-column.model';\r\nimport {MatSort} from \"@angular/material/sort\";\r\nimport {StConfigurationsSettingsModel} from \"../../models/local-table/st-configurations-settings.model\";\r\nimport {StGlobalSearchSettingsModel} from \"../../models/local-table/st-global-search-settings.model\";\r\nimport {StLocalStorageConfigurationModel} from \"../../models/local-table/st-local-storage-configuration.model\";\r\nimport {LocalTableService} from \"../../services/local-table.service\";\r\nimport {SortDirection} from \"@angular/material/sort/sort-direction\";\r\nimport {StTableSettingsModel} from \"../../models/local-table/st-table-settings.model\";\r\nimport {ActivatedRoute, Router} from \"@angular/router\";\r\n\r\n@Component({\r\n selector: 'ngx-st-local-table',\r\n templateUrl: './local-table.component.html',\r\n styleUrls: ['./local-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LocalTableComponent implements OnInit, AfterViewInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @Input()\r\n tableSettings: StTableSettingsModel;\r\n\r\n @Input()\r\n globalSearchSettings: StGlobalSearchSettingsModel;\r\n\r\n @Input()\r\n pageSize: number = 10;\r\n\r\n @Input()\r\n allowPickColumns: boolean = false;\r\n\r\n @Input()\r\n configurationsSettings: StConfigurationsSettingsModel;\r\n\r\n @Input()\r\n localStorageName: string = '';\r\n\r\n @Input()\r\n bindSearchToUrl = false;\r\n\r\n @Input()\r\n set columns(columns: StLocalTableColumnsModel) {\r\n this._columns = columns;\r\n this.columnsArray = this.getColumnsArray();\r\n this.setDisplayedColumns();\r\n }\r\n\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n @Input()\r\n set data(data: any[]) {\r\n this._data = data || [];\r\n\r\n this.setTableSource();\r\n }\r\n\r\n get data() {\r\n return this._data;\r\n }\r\n\r\n searchModel = '';\r\n displayedColumns: string[] = [];\r\n tableSource: MatTableDataSource<any>;\r\n\r\n columnsArray: StLocalTableColumnModel[];\r\n\r\n configurations: StLocalStorageConfigurationModel[] = [];\r\n initConfig: StLocalStorageConfigurationModel | null = null;\r\n activeConfig: StLocalStorageConfigurationModel | null = null;\r\n pageIndex = 0;\r\n\r\n private _data: any[] = [];\r\n private _columns: StLocalTableColumnsModel = {};\r\n\r\n constructor(\r\n private localTableService: LocalTableService,\r\n private changeDetector: ChangeDetectorRef,\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.localStorageName) {\r\n const pageSize = localStorage.getItem(this.localStorageName);\r\n if (pageSize) {\r\n this.pageSize = parseInt(pageSize);\r\n }\r\n }\r\n\r\n if (this.configurationsSettings) {\r\n this.localTableService.localStorageName = this.configurationsSettings?.localStorageName || '';\r\n this.loadConfigs();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.configurationsSettings) {\r\n this.paginator.page.subscribe(res => {\r\n if (this.activeConfig) {\r\n this.activeConfig.pageSize = res.pageSize;\r\n this.updateConfigsToLocalStorage();\r\n }\r\n });\r\n\r\n this.sort.sortChange.subscribe((res) => {\r\n if (this.activeConfig) {\r\n this.activeConfig.sortFieldName = res.active;\r\n this.activeConfig.sortDirection = res.direction;\r\n this.updateConfigsToLocalStorage();\r\n }\r\n });\r\n }\r\n\r\n if (this.bindSearchToUrl) {\r\n const params = new URLSearchParams(location.search);\r\n\r\n this.sort.sortChange.subscribe((res) => {\r\n this.updateSearchToUrl();\r\n });\r\n\r\n if (params.get('stLocalTablePageIndex')) {\r\n this.pageIndex = parseInt(params.get('stLocalTablePageIndex')!);\r\n }\r\n\r\n if (params.get('stLocalTablePageSize')) {\r\n this.pageSize = parseInt(params.get('stLocalTablePageSize')!);\r\n }\r\n\r\n if (params.get('stLocalTableSortFieldName') && params.get('stLocalTableSortDirection')) {\r\n this.sort.sort({id: params.get('stLocalTableSortFieldName') || '', start: <'asc'|'desc'>params.get('stLocalTableSortDirection') || 'asc', disableClear: false});\r\n }\r\n\r\n this.searchModel = params.get('stLocalTableSearch') || '';\r\n if (this.searchModel) {\r\n this.tableSource.filter = this.searchModel.trim().toLowerCase();\r\n }\r\n }\r\n\r\n this.paginator.pageSize = this.pageSize;\r\n }\r\n\r\n applySearch() {\r\n this.tableSource.filter = this.searchModel.trim().toLowerCase();\r\n this.pageIndex = 0;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n clearSearch() {\r\n this.searchModel = '';\r\n this.tableSource.filter = this.searchModel;\r\n this.pageIndex = 0;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n checkIfActionVisible(row: any, action: LocalTableActionColumnModel) {\r\n if (action.show) {\r\n return action.show(row);\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n columnVisibleChanged(column: StLocalTableColumnModel) {\r\n this.setDisplayedColumns();\r\n\r\n this.updateConfigsToLocalStorage();\r\n }\r\n\r\n newConfigCreated(name: string) {\r\n const newConfig = this.generateNewConfig(name);\r\n this.configurations.push(newConfig);\r\n\r\n this.updateConfigsToLocalStorage();\r\n this.initConfig = newConfig;\r\n }\r\n\r\n configRemoved(configId: string) {\r\n this.configurations = this.configurations.filter(config => config.configId !== configId);\r\n this.updateConfigsToLocalStorage();\r\n }\r\n\r\n configChanged(configId: string | null) {\r\n this.activeConfig = (configId) ? this.configurations.find(config => config.configId === configId)! : null;\r\n if (this.activeConfig) {\r\n this.setTableConfig(this.activeConfig.pageSize, this.activeConfig.columnsDisabled, this.activeConfig.sortFieldName, this.activeConfig.sortDirection);\r\n } else {\r\n this.setTableConfig(this.pageSize, [], null, null);\r\n this.clearSearch();\r\n }\r\n }\r\n\r\n pageChanged(event: any) {\r\n this.pageIndex = event.pageIndex;\r\n\r\n this.updateSearchToUrl();\r\n }\r\n\r\n private updateSearchToUrl() {\r\n if (this.bindSearchToUrl) {\r\n let queryParams = {\r\n stLocalTableSearch: this.searchModel,\r\n stLocalTablePageIndex: this.pageIndex,\r\n stLocalTablePageSize: this.paginator.pageSize,\r\n stLocalTableSortFieldName: '',\r\n stLocalTableSortDirection: ''\r\n };\r\n\r\n if (this.sort.direction && this.sort.active) {\r\n queryParams = {\r\n ...queryParams,\r\n stLocalTableSortFieldName: this.sort.active,\r\n stLocalTableSortDirection: this.sort.direction\r\n }\r\n }\r\n\r\n this.router.navigate(['./'], {queryParams: queryParams, relativeTo: this.activatedRoute});\r\n }\r\n }\r\n\r\n private updateConfigsToLocalStorage() {\r\n this.localTableService.saveConfigs(this.configurations);\r\n }\r\n\r\n private setTableSource() {\r\n this.tableSource = new MatTableDataSource<any>(this._data);\r\n this.tableSource.paginator = this.paginator;\r\n this.tableSource.sort = this.sort;\r\n this.tableSource.filter = this.searchModel;\r\n this.changeDetector.markForCheck();\r\n }\r\n\r\n private setDisplayedColumns() {\r\n this.displayedColumns = Object.keys(this.columns).filter((column) => {\r\n return this._columns[column].visible;\r\n });\r\n }\r\n\r\n private getColumnsArray(): StLocalTableColumnModel[] {\r\n return Object.keys(this._columns)\r\n .map((column) => this._columns[column]);\r\n }\r\n\r\n private loadConfigs() {\r\n this.configurations = this.localTableService.getConfigs();\r\n }\r\n\r\n private generateNewConfig(configName: string): StLocalStorageConfigurationModel {\r\n return {\r\n configId: Date.now().toString(),\r\n configName: configName,\r\n columnsDisabled: this.columnsArray.filter(column => !column.visible).map(column => column.translateColumnName),\r\n pageSize: this.paginator.pageSize,\r\n sortFieldName: (this.sort.direction && this.sort.active) ? this.sort.active : null,\r\n sortDirection: this.sort.direction || null\r\n }\r\n }\r\n\r\n private setTableConfig(pageSize: number, disabledColumns: string[], sortFieldName: string | null, sortDirection: SortDirection | null) {\r\n this.paginator.pageSize = pageSize;\r\n this.sort.sort({id: sortFieldName || '', start: sortDirection || 'asc', disableClear: false});\r\n\r\n this.columnsArray.forEach(column => {\r\n column.visible = disabledColumns.indexOf(column.translateColumnName) === -1;\r\n });\r\n this.setDisplayedColumns();\r\n }\r\n}\r\n","<div class=\"local-table\">\r\n <div class=\"row align-items-center\">\r\n <div class=\"col row align-items-center\" style=\"padding: 0;\" *ngIf=\"configurationsSettings || allowPickColumns\">\r\n <div class=\"col-auto\" style=\"padding: 0;\" *ngIf=\"allowPickColumns\">\r\n <button mat-icon-button class=\"col-auto\" [matMenuTriggerFor]=\"columnsMenu\">\r\n <span class=\"material-icons-outlined\">\r\n view_week\r\n </span>\r\n </button>\r\n <mat-menu #columnsMenu=\"matMenu\" xPosition=\"after\">\r\n <ng-container *ngFor=\"let column of columnsArray\">\r\n <div mat-menu-item *ngIf=\"!column.notShowInColumnPick\">\r\n <mat-checkbox\r\n [(ngModel)]=\"column.visible\"\r\n (ngModelChange)=\"columnVisibleChanged(column)\"\r\n style=\"margin-top: 5px;\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n {{column.translateColumnName}}\r\n </mat-checkbox>\r\n </div>\r\n </ng-container>\r\n </mat-menu>\r\n </div>\r\n\r\n <app-configurations\r\n *ngIf=\"configurationsSettings\"\r\n [configurationsSettings]=\"configurationsSettings\"\r\n [configurations]=\"configurations\"\r\n [initSelectedConfig]=\"initConfig\"\r\n (createNewConfig)=\"newConfigCreated($event)\"\r\n (removeConfig)=\"configRemoved($event)\"\r\n (changeConfig)=\"configChanged($event)\"\r\n ></app-configurations>\r\n </div>\r\n\r\n <div class=\"col\" style=\"padding: 0;\" *ngIf=\"globalSearchSettings?.show\">\r\n <mat-form-field class=\"col\">\r\n <mat-label>{{globalSearchSettings?.label || 'Search'}}</mat-label>\r\n <input matInput (keyup)=\"applySearch()\" [(ngModel)]=\"searchModel\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"clearSearch()\">\r\n <mat-icon style=\"font-size: 22px\">close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n\r\n </div>\r\n\r\n <table [ngClass]=\"{'no-hover': !tableSettings?.rowClickAction}\" mat-table [dataSource]=\"tableSource\" matSort>\r\n\r\n <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of displayedColumns\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"{{columns[column].width ? ('width:' + columns[column].width) : ''}}\"\r\n mat-sort-header\r\n [disabled]=\"!columns[column].sort\"\r\n >\r\n {{columns[column].translateColumnName }}\r\n <span class=\"material-icons search-icon\" [matMenuTriggerFor]=\"menu\" (click)=\"$event.stopPropagation()\"\r\n *ngIf=\"columns[column].search\">\r\n search\r\n </span>\r\n <mat-menu #menu=\"matMenu\" xPosition=\"before\">\r\n <mat-form-field class=\"col\">\r\n <mat-label>{{columns[column].searchLabel || 'Search'}}</mat-label>\r\n <input matInput (keyup)=\"applySearch()\" [(ngModel)]=\"searchModel\"\r\n (click)=\"$event.stopPropagation()\">\r\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"searchModel=''\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </mat-menu>\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"\r\n style=\"{{columns[column].width ? ('width:' + columns[column].width) : ''}}\">\r\n <div class=\"actions-container\" [ngClass]=\"{'justify-content-end': columns[column].flexRight}\"\r\n *ngIf=\"columns[column].actions && columns[column].actions!.length > 0\">\r\n <ng-container *ngFor=\"let action of columns[column].actions\">\r\n <ng-container *ngIf=\"checkIfActionVisible(element, action)\">\r\n <button class=\"col-auto\" mat-icon-button\r\n type=\"button\"\r\n *ngIf=\"!action.url && action.action\"\r\n matTooltip=\"{{(action.tooltipName || '') }}\"\r\n [matTooltipDisabled]=\"!!!(action.tooltipName)\"\r\n (click)=\"action.action(element)\"\r\n >\r\n <span class=\"material-icons\">{{action.iconName}}</span>\r\n </button>\r\n\r\n <a *ngIf=\"action.url\" [routerLink]=\"action.url\">\r\n <button class=\"col-auto\" mat-icon-button\r\n type=\"button\"\r\n matTooltip=\"{{(action.tooltipName || '') }}\"\r\n [matTooltipDisabled]=\"!!!(action.tooltipName)\"\r\n >\r\n <span class=\"material-icons\">{{action.iconName}}</span>\r\n </button>\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!columns[column].actions\">\r\n <ng-container *ngIf=\"columns[column].translateValue\">\r\n <p style=\"margin:0;padding:0\">{{columns[column].translateValue![element[column]] || '' }}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!columns[column].translateValue\">\r\n <ng-container *ngIf=\"!columns[column].type || columns[column].type === 'string'\">\r\n <p style=\"margin:0;padding:0\">{{element[column]}}</p>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"columns[column].type === 'date'\">\r\n <p style=\"margin:0;padding:0\">{{element[column] | stDateTimeFormatPipe}}</p>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" (click)=\"tableSettings?.rowClickAction ? tableSettings.rowClickAction(row) : null\"></tr>\r\n </table>\r\n <mat-paginator [pageIndex]=\"pageIndex\" [pageSizeOptions]=\"[5, 10, 15, 20, 25]\" (page)=\"pageChanged($event)\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {MatPaginator} from '@angular/material/paginator';\r\nimport {MatTableDataSource} from '@angular/material/table';\r\nimport {FormControl} from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ngx-st-select-table',\r\n templateUrl: './select-table.html',\r\n styleUrls: ['./select-table.scss', '../../../../assets/base-table.scss']\r\n})\r\nexport class SelectTable implements OnInit {\r\n\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n tableSource: MatTableDataSource<any>;\r\n columns: string[];\r\n initColumns: { [col: string]: string };\r\n\r\n search = new FormControl('');\r\n rowSelected: any[] = [];\r\n\r\n private _validError = false;\r\n\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n required = false;\r\n\r\n @Input()\r\n multiple = false;\r\n\r\n @Input()\r\n initSelected: any;\r\n\r\n @Input()\r\n initSearchVal: any;\r\n\r\n @Input()\r\n searchLabel = 'Search';\r\n\r\n @Input()\r\n selectedLabel = 'Selected';\r\n\r\n @Output()\r\n returnRowSelected = new EventEmitter<any[]>();\r\n\r\n @Input()\r\n set setInitColumns(col: { [col: string]: string }) {\r\n this.columns = ['active', ...Object.keys(col)];\r\n this.initColumns = col;\r\n }\r\n\r\n @Input()\r\n set tableData(data: any[]) {\r\n this.tableSource = new MatTableDataSource<any>(data);\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n @Input()\r\n set validError(error: boolean) {\r\n this._validError = error;\r\n }\r\n\r\n get validError() {\r\n return this._validError;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.search.valueChanges.subscribe(res => {\r\n this.tableSource.filter = res.trim().toLowerCase();\r\n });\r\n\r\n setTimeout(() => {\r\n if (this.initSearchVal) {\r\n this.search.setValue(this.initSearchVal);\r\n this.rowClick(this.initSelected);\r\n }\r\n }, 1000);\r\n }\r\n\r\n clearSearch() {\r\n this.search.setValue('');\r\n }\r\n\r\n rowClick(row: any) {\r\n const found = this.rowSelected.find((tmpRow) => tmpRow === row);\r\n if (found) {\r\n this.rowSelected = this.rowSelected.filter((tmpRow) => tmpRow !== row);\r\n } else {\r\n if (this.multiple) {\r\n this.rowSelected.push(row);\r\n } else {\r\n this.rowSelected = [row];\r\n }\r\n }\r\n\r\n this.returnRowSelected.emit(this.rowSelected);\r\n }\r\n\r\n checkActiveRow(row: any) {\r\n return !!(this.rowSelected.find(activeRow => activeRow === row));\r\n }\r\n\r\n}\r\n","<div class=\"shared-table-selector\">\r\n <p class=\"title\" [ngClass]=\"{'error-text': validError}\">{{title}} {{required ? '*' : ''}}</p>\r\n\r\n <div class=\"search-form row align-items-center\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input matInput placeholder=\"{{searchLabel}}\" [formControl]=\"search\">\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <i class=\"material-icons\" (click)=\"clearSearch()\">clear</i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <table mat-table [dataSource]=\"tableSource\">\r\n <ng-container *ngFor=\"let col of columns\" [matColumnDef]=\"col\" >\r\n <th mat-header-cell *matHeaderCellDef> {{(col === 'active') ? selectedLabel : initColumns[col]}} </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <ng-container *ngIf=\"col === 'active'\">\r\n <i *ngIf=\"checkActiveRow(element)\" class=\"material-icons active-row\">done</i>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"col !== 'active'\">\r\n {{element[col]}}\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" (click)=\"rowClick(row)\" [ngClass]=\"{'active': checkActiveRow(row)}\"></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport {MatPaginatorModule} from '@angular/material/paginator';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {RouterModule} from '@angular/router';\r\nimport {MatSortModule} from \"@angular/material/sort\";\r\nimport {MatMenuModule} from \"@angular/material/menu\";\r\nimport {MatSelectModule} from \"@angular/material/select\";\r\nimport {MatCheckboxModule} from \"@angular/material/checkbox\";\r\nimport {ConfigurationsComponent} from './components/local-table/configurations/configurations.component';\r\nimport {LocalTableService} from \"./services/local-table.service\";\r\nimport {LocalTableComponent} from \"./components/local-table/local-table.component\";\r\nimport {StDateFormatModule} from \"ngx-st-date-format\";\r\nimport {SelectTable} from \"./components/select-table/select-table\";\r\n\r\n@NgModule({\r\n declarations: [\r\n LocalTableComponent,\r\n ConfigurationsComponent,\r\n SelectTable\r\n ],\r\n exports: [\r\n LocalTableComponent,\r\n SelectTable\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n StDateFormatModule,\r\n MatSortModule,\r\n MatMenuModule,\r\n MatSelectModule,\r\n MatCheckboxModule\r\n ],\r\n providers: [\r\n LocalTableService\r\n ]\r\n})\r\nexport class StTablesModule {\r\n}\r\n","/*\r\n * Public API Surface of ngx-st-tables\r\n */\r\n\r\nexport * from './lib/services/local-table.service';\r\nexport * from './lib/components/local-table/local-table.component';\r\nexport * from './lib/components/local-table/configurations/configurations.component';\r\nexport * from './lib/components/select-table/select-table';\r\nexport * from './lib/models/local-table/st-configurations-settings.model';\r\nexport * from './lib/models/local-table/st-global-search-settings.model';\r\nexport * from './lib/models/local-table/st-local-storage-configuration.model';\r\nexport * from './lib/models/local-table/st-local-table-column.model';\r\nexport * from './lib/models/local-table/st-local-table-columns.model';\r\nexport * from './lib/models/local-table/st-table-settings.model';\r\nexport * from './lib/st-tables.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i5","i7","i1.LocalTableService","i2","i3","i4","i6.ConfigurationsComponent","i13","i14"],"mappings":"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"}
|