brainloper-ui 14.0.23 → 14.0.25

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.
@@ -8,95 +8,50 @@ export class HttpService {
8
8
  this.http = http;
9
9
  this.message = message;
10
10
  }
11
- getData(url, params) {
11
+ createParams(params) {
12
12
  let data = new HttpParams();
13
13
  if (params) {
14
14
  params.forEach(element => {
15
15
  data = data.append(`${element.id}`, `${element.value}`);
16
16
  });
17
17
  }
18
- return this.http.get(url, { params: data });
18
+ return data;
19
19
  }
20
- postData(url, body, params) {
21
- let data = new HttpParams();
22
- if (params) {
23
- params.forEach(element => {
24
- data = data.append(`${element.id}`, `${element.value}`);
25
- });
26
- }
27
- return this.http.post(url, body, { params: data });
20
+ getData(url, params, withCredentials = false) {
21
+ return this.http.get(url, { params: this.createParams(params), withCredentials });
28
22
  }
29
- putData(url, body, params) {
30
- let data = new HttpParams();
31
- if (params) {
32
- params.forEach(element => {
33
- data = data.append(`${element.id}`, `${element.value}`);
34
- });
35
- }
36
- return this.http.put(url, body, { params: data });
23
+ postData(url, body, params, withCredentials = false) {
24
+ return this.http.post(url, body, { params: this.createParams(params), withCredentials });
37
25
  }
38
- deleteData(url, params) {
39
- let data = new HttpParams();
40
- if (params) {
41
- params.forEach(element => {
42
- data = data.append(`${element.id}`, `${element.value}`);
43
- });
44
- }
45
- return this.http.delete(url, { params: data });
26
+ putData(url, body, params, withCredentials = false) {
27
+ return this.http.put(url, body, { params: this.createParams(params), withCredentials });
46
28
  }
47
- getDataPromise(url, params) {
48
- let data = new HttpParams();
49
- if (params) {
50
- params.forEach(element => {
51
- data = data.append(`${element.id}`, `${element.value}`);
52
- });
53
- }
29
+ deleteData(url, params, withCredentials = false) {
30
+ return this.http.delete(url, { params: this.createParams(params), withCredentials });
31
+ }
32
+ getDataPromise(url, params, withCredentials = false) {
54
33
  return new Promise((resolve, reject) => {
55
- this.http.get(url, { params: data }).subscribe(res => resolve(res), err => reject(err));
34
+ this.http.get(url, { params: this.createParams(params), withCredentials }).subscribe(res => resolve(res), err => reject(err));
56
35
  });
57
36
  }
58
- postDataPromise(url, body, params) {
59
- let data = new HttpParams();
60
- if (params) {
61
- params.forEach(element => {
62
- data = data.append(`${element.id}`, `${element.value}`);
63
- });
64
- }
37
+ postDataPromise(url, body, params, withCredentials = false) {
65
38
  return new Promise((resolve, reject) => {
66
- this.http.post(url, body, { params: data }).subscribe(res => resolve(res), err => reject(err));
39
+ this.http.post(url, body, { params: this.createParams(params), withCredentials }).subscribe(res => resolve(res), err => reject(err));
67
40
  });
68
41
  }
69
- putDataPromise(url, body, params) {
70
- let data = new HttpParams();
71
- if (params) {
72
- params.forEach(element => {
73
- data = data.append(`${element.id}`, `${element.value}`);
74
- });
75
- }
42
+ putDataPromise(url, body, params, withCredentials = false) {
76
43
  return new Promise((resolve, reject) => {
77
- this.http.put(url, body, { params: data }).subscribe(res => resolve(res), err => reject(err));
44
+ this.http.put(url, body, { params: this.createParams(params), withCredentials }).subscribe(res => resolve(res), err => reject(err));
78
45
  });
79
46
  }
80
- deleteDataPromise(url, params) {
81
- let data = new HttpParams();
82
- if (params) {
83
- params.forEach(element => {
84
- data = data.append(`${element.id}`, `${element.value}`);
85
- });
86
- }
47
+ deleteDataPromise(url, params, withCredentials = false) {
87
48
  return new Promise((resolve, reject) => {
88
- this.http.delete(url, { params: data }).subscribe(res => resolve(res), err => reject(err));
49
+ this.http.delete(url, { params: this.createParams(params), withCredentials }).subscribe(res => resolve(res), err => reject(err));
89
50
  });
90
51
  }
91
- getDataBody(url, params) {
92
- let data = new HttpParams();
93
- if (params) {
94
- params.forEach(element => {
95
- data = data.append(`${element.id}`, `${element.value}`);
96
- });
97
- }
52
+ getDataBody(url, params, withCredentials = false) {
98
53
  return new Promise((resolve, reject) => {
99
- this.http.get(url, { params: data }).subscribe(res => {
54
+ this.http.get(url, { params: this.createParams(params), withCredentials }).subscribe(res => {
100
55
  if (res['code'] === 0 && res['body']) {
101
56
  resolve(res['body']);
102
57
  }
@@ -107,15 +62,9 @@ export class HttpService {
107
62
  }, err => reject(err));
108
63
  });
109
64
  }
110
- postDataBody(url, body, params) {
111
- let data = new HttpParams();
112
- if (params) {
113
- params.forEach(element => {
114
- data = data.append(`${element.id}`, `${element.value}`);
115
- });
116
- }
65
+ postDataBody(url, body, params, withCredentials = false) {
117
66
  return new Promise((resolve, reject) => {
118
- this.http.post(url, body, { params: data }).subscribe(res => {
67
+ this.http.post(url, body, { params: this.createParams(params), withCredentials }).subscribe(res => {
119
68
  if (res['code'] === 0 && res['body']) {
120
69
  resolve(res['body']);
121
70
  }
@@ -126,15 +75,9 @@ export class HttpService {
126
75
  }, err => reject(err));
127
76
  });
128
77
  }
129
- putDataBody(url, body, params) {
130
- let data = new HttpParams();
131
- if (params) {
132
- params.forEach(element => {
133
- data = data.append(`${element.id}`, `${element.value}`);
134
- });
135
- }
78
+ putDataBody(url, body, params, withCredentials = false) {
136
79
  return new Promise((resolve, reject) => {
137
- this.http.put(url, body, { params: data }).subscribe(res => {
80
+ this.http.put(url, body, { params: this.createParams(params), withCredentials }).subscribe(res => {
138
81
  if (res['code'] === 0 && res['body']) {
139
82
  resolve(res['body']);
140
83
  }
@@ -151,4 +94,4 @@ HttpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version:
151
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HttpService, decorators: [{
152
95
  type: Injectable
153
96
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.MessageService }]; } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3NlcnZpY2VzL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUc5RCxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUNVLElBQWlCLEVBQ2pCLE9BQXVCO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFDN0IsQ0FBQztJQUVMLE9BQU8sQ0FBQyxHQUFVLEVBQUUsTUFBTztRQUV6QixJQUFJLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO1FBQzNCLElBQUcsTUFBTSxFQUFDO1lBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVUsRUFBRSxJQUFRLEVBQUUsTUFBTztRQUVwQyxJQUFJLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFBO1FBQzNCLElBQUcsTUFBTSxFQUFDO1lBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMs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LENBQUMsQ0FBQTtJQUNKLENBQUM7O3dHQWpMVSxXQUFXOzRHQUFYLFdBQVc7MkZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEh0dHBTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHAgOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbWVzc2FnZTogTWVzc2FnZVNlcnZpY2VcbiAgKSB7IH1cblxuICBnZXREYXRhKHVybDpzdHJpbmcsIHBhcmFtcz8pe1xuXG4gICAgbGV0IGRhdGEgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgaWYocGFyYW1zKXtcbiAgICBwYXJhbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICBkYXRhID0gZGF0YS5hcHBlbmQoYCR7ZWxlbWVudC5pZH1gLCBgJHtlbGVtZW50LnZhbHVlfWApO1xuICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHtwYXJhbXM6ZGF0YX0pXG4gIH1cblxuICBwb3N0RGF0YSh1cmw6c3RyaW5nLCBib2R5OmFueSwgcGFyYW1zPyl7XG5cbiAgICBsZXQgZGF0YSA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICBpZihwYXJhbXMpe1xuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGRhdGEgPSBkYXRhLmFwcGVuZChgJHtlbGVtZW50LmlkfWAsIGAke2VsZW1lbnQudmFsdWV9YCk7XG4gICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGJvZHksIHtwYXJhbXM6ZGF0YX0pXG4gIH1cblxuICBwdXREYXRhKHVybDpzdHJpbmcsIGJvZHk6YW55LCBwYXJhbXM/KXtcblxuICAgIGxldCBkYXRhID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgIGlmKHBhcmFtcyl7XG4gICAgcGFyYW1zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgZGF0YSA9IGRhdGEuYXBwZW5kKGAke2VsZW1lbnQuaWR9YCwgYCR7ZWxlbWVudC52YWx1ZX1gKTtcbiAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodXJsLCBib2R5LCB7cGFyYW1zOmRhdGF9KVxuICB9XG5cbiAgZGVsZXRlRGF0YSh1cmw6c3RyaW5nLCBwYXJhbXM/KXtcbiAgICBsZXQgZGF0YSA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICBpZihwYXJhbXMpe1xuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGRhdGEgPSBkYXRhLmFwcGVuZChgJHtlbGVtZW50LmlkfWAsIGAke2VsZW1lbnQudmFsdWV9YCk7XG4gICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHVybCwge3BhcmFtczpkYXRhfSlcbiAgfVxuXG4gIGdldERhdGFQcm9taXNlKHVybDpzdHJpbmcsIHBhcmFtcz8pe1xuICAgIGxldCBkYXRhID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgIGlmKHBhcmFtcyl7XG4gICAgcGFyYW1zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgZGF0YSA9IGRhdGEuYXBwZW5kKGAke2VsZW1lbnQuaWR9YCwgYCR7ZWxlbWVudC52YWx1ZX1gKTtcbiAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9PntcbiAgICAgIHRoaXMuaHR0cC5nZXQodXJsLCB7cGFyYW1zOmRhdGF9KS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcz0+cmVzb2x2ZShyZXMpLFxuICAgICAgICBlcnI9PnJlamVjdChlcnIpXG4gICAgICApXG4gICAgfSlcbiAgfVxuXG4gIHBvc3REYXRhUHJvbWlzZSh1cmw6c3RyaW5nLCBib2R5OmFueSwgcGFyYW1zPyl7XG4gICAgbGV0IGRhdGEgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgaWYocGFyYW1zKXtcbiAgICBwYXJhbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICBkYXRhID0gZGF0YS5hcHBlbmQoYCR7ZWxlbWVudC5pZH1gLCBgJHtlbGVtZW50LnZhbHVlfWApO1xuICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e1xuICAgICAgdGhpcy5odHRwLnBvc3QodXJsLCBib2R5LCB7cGFyYW1zOmRhdGF9KS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcz0+cmVzb2x2ZShyZXMpLFxuICAgICAgICBlcnI9PnJlamVjdChlcnIpXG4gICAgICApXG4gICAgfSlcbiAgfVxuXG4gIHB1dERhdGFQcm9taXNlKHVybDpzdHJpbmcsIGJvZHk6YW55LCBwYXJhbXM/KXtcbiAgICBsZXQgZGF0YSA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICBpZihwYXJhbXMpe1xuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGRhdGEgPSBkYXRhLmFwcGVuZChgJHtlbGVtZW50LmlkfWAsIGAke2VsZW1lbnQudmFsdWV9YCk7XG4gICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57XG4gICAgICB0aGlzLmh0dHAucHV0KHVybCwgYm9keSwge3BhcmFtczpkYXRhfSkuc3Vic2NyaWJlKFxuICAgICAgICByZXM9PnJlc29sdmUocmVzKSxcbiAgICAgICAgZXJyPT5yZWplY3QoZXJyKVxuICAgICAgKVxuICAgIH0pXG4gIH1cblxuICBkZWxldGVEYXRhUHJvbWlzZSh1cmw6c3RyaW5nLCBwYXJhbXM/KXtcbiAgICBsZXQgZGF0YSA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICBpZihwYXJhbXMpe1xuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGRhdGEgPSBkYXRhLmFwcGVuZChgJHtlbGVtZW50LmlkfWAsIGAke2VsZW1lbnQudmFsdWV9YCk7XG4gICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57XG4gICAgICB0aGlzLmh0dHAuZGVsZXRlKHVybCwge3BhcmFtczpkYXRhfSkuc3Vic2NyaWJlKFxuICAgICAgICByZXM9PnJlc29sdmUocmVzKSxcbiAgICAgICAgZXJyPT5yZWplY3QoZXJyKVxuICAgICAgKVxuICAgIH0pXG4gIH1cblxuICBnZXREYXRhQm9keTxUPih1cmw6c3RyaW5nLCBwYXJhbXM/KTogUHJvbWlzZTxUPntcbiAgICBsZXQgZGF0YSA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICBpZihwYXJhbXMpe1xuICAgIHBhcmFtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGRhdGEgPSBkYXRhLmFwcGVuZChgJHtlbGVtZW50LmlkfWAsIGAke2VsZW1lbnQudmFsdWV9YCk7XG4gICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSxyZWplY3QpPT57XG4gICAgICB0aGlzLmh0dHAuZ2V0KHVybCwge3BhcmFtczpkYXRhfSkuc3Vic2NyaWJlKFxuICAgICAgICByZXM9PiB7XG4gICAgICAgICAgaWYocmVzWydjb2RlJ10gPT09IDAgJiYgcmVzWydib2R5J10pe1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNbJ2JvZHknXSBhcyBUKVxuICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKVxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlLkVycm9yKFwiRXJyb3JcIiwgcmVzWydtZXNzYWdlJ10pXG4gICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgLFxuICAgICAgICBlcnI9PnJlamVjdChlcnIpXG4gICAgICApXG4gICAgfSlcbiAgfVxuXG4gIHBvc3REYXRhQm9keTxUPih1cmw6c3RyaW5nLCBib2R5OmFueSwgcGFyYW1zPyk6IFByb21pc2U8VD57XG4gICAgbGV0IGRhdGEgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgaWYocGFyYW1zKXtcbiAgICBwYXJhbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICBkYXRhID0gZGF0YS5hcHBlbmQoYCR7ZWxlbWVudC5pZH1gLCBgJHtlbGVtZW50LnZhbHVlfWApO1xuICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e1xuICAgICAgdGhpcy5odHRwLnBvc3QodXJsLCBib2R5LCB7cGFyYW1zOmRhdGF9KS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcz0+IHtcbiAgICAgICAgICBpZihyZXNbJ2NvZGUnXSA9PT0gMCAmJiByZXNbJ2JvZHknXSl7XG4gICAgICAgICAgICByZXNvbHZlKHJlc1snYm9keSddIGFzIFQpXG4gICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2UuRXJyb3IoXCJFcnJvclwiLCByZXNbJ21lc3NhZ2UnXSlcbiAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAsXG4gICAgICAgIGVycj0+cmVqZWN0KGVycilcbiAgICAgIClcbiAgICB9KVxuICB9XG5cbiAgcHV0RGF0YUJvZHk8VD4odXJsOnN0cmluZywgYm9keTphbnksIHBhcmFtcz8pOiBQcm9taXNlPFQ+e1xuICAgIGxldCBkYXRhID0gbmV3IEh0dHBQYXJhbXMoKVxuICAgIGlmKHBhcmFtcyl7XG4gICAgcGFyYW1zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgZGF0YSA9IGRhdGEuYXBwZW5kKGAke2VsZW1lbnQuaWR9YCwgYCR7ZWxlbWVudC52YWx1ZX1gKTtcbiAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9PntcbiAgICAgIHRoaXMuaHR0cC5wdXQodXJsLCBib2R5LCB7cGFyYW1zOmRhdGF9KS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcz0+IHtcbiAgICAgICAgICBpZihyZXNbJ2NvZGUnXSA9PT0gMCAmJiByZXNbJ2JvZHknXSl7XG4gICAgICAgICAgICByZXNvbHZlKHJlc1snYm9keSddIGFzIFQpXG4gICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2UuRXJyb3IoXCJFcnJvclwiLCByZXNbJ21lc3NhZ2UnXSlcbiAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAsXG4gICAgICAgIGVycj0+cmVqZWN0KGVycilcbiAgICAgIClcbiAgICB9KVxuICB9XG5cbn1cbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3NlcnZpY2VzL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUc5RCxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUNVLElBQWdCLEVBQ2hCLE9BQXVCO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFDN0IsQ0FBQztJQUVHLFlBQVksQ0FBQyxNQUFZO1FBQy9CLElBQUksSUFBSSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDNUIsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN2QixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzFELENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVyxFQUFFLE1BQU8sRUFBRSxrQkFBMkIsS0FBSztRQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXLEVBQUUsSUFBUyxFQUFFLE1BQU8sRUFBRSxrQkFBMkIsS0FBSztRQUN4RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFB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LEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7aUJBQzdDO1lBQ0gsQ0FBQyxFQUNELEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUNuQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt3R0FuSFUsV0FBVzs0R0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8vIGZpbGVwYXRoOiB1bnRpdGxlZDpVbnRpdGxlZC0xXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJy4vbWVzc2FnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdHRwU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbWVzc2FnZTogTWVzc2FnZVNlcnZpY2VcbiAgKSB7IH1cblxuICBwcml2YXRlIGNyZWF0ZVBhcmFtcyhwYXJhbXM/OiBhbnkpOiBIdHRwUGFyYW1zIHtcbiAgICBsZXQgZGF0YSA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgcGFyYW1zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGRhdGEgPSBkYXRhLmFwcGVuZChgJHtlbGVtZW50LmlkfWAsIGAke2VsZW1lbnQudmFsdWV9YCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBnZXREYXRhKHVybDogc3RyaW5nLCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KTtcbiAgfVxuXG4gIHBvc3REYXRhKHVybDogc3RyaW5nLCBib2R5OiBhbnksIHBhcmFtcz8sIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgYm9keSwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KTtcbiAgfVxuXG4gIHB1dERhdGEodXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgcGFyYW1zPywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGJvZHksIHsgcGFyYW1zOiB0aGlzLmNyZWF0ZVBhcmFtcyhwYXJhbXMpLCB3aXRoQ3JlZGVudGlhbHMgfSk7XG4gIH1cblxuICBkZWxldGVEYXRhKHVybDogc3RyaW5nLCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHVybCwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KTtcbiAgfVxuXG4gIGdldERhdGFQcm9taXNlKHVybDogc3RyaW5nLCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KHVybCwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiByZXNvbHZlKHJlcyksXG4gICAgICAgIGVyciA9PiByZWplY3QoZXJyKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHBvc3REYXRhUHJvbWlzZSh1cmw6IHN0cmluZywgYm9keTogYW55LCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmh0dHAucG9zdCh1cmwsIGJvZHksIHsgcGFyYW1zOiB0aGlzLmNyZWF0ZVBhcmFtcyhwYXJhbXMpLCB3aXRoQ3JlZGVudGlhbHMgfSkuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4gcmVzb2x2ZShyZXMpLFxuICAgICAgICBlcnIgPT4gcmVqZWN0KGVycilcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdXREYXRhUHJvbWlzZSh1cmw6IHN0cmluZywgYm9keTogYW55LCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmh0dHAucHV0KHVybCwgYm9keSwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiByZXNvbHZlKHJlcyksXG4gICAgICAgIGVyciA9PiByZWplY3QoZXJyKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZURhdGFQcm9taXNlKHVybDogc3RyaW5nLCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmh0dHAuZGVsZXRlKHVybCwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiByZXNvbHZlKHJlcyksXG4gICAgICAgIGVyciA9PiByZWplY3QoZXJyKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldERhdGFCb2R5PFQ+KHVybDogc3RyaW5nLCBwYXJhbXM/LCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmh0dHAuZ2V0KHVybCwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlc1snY29kZSddID09PSAwICYmIHJlc1snYm9keSddKSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc1snYm9keSddIGFzIFQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlLkVycm9yKFwiRXJyb3JcIiwgcmVzWydtZXNzYWdlJ10pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHJlamVjdChlcnIpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcG9zdERhdGFCb2R5PFQ+KHVybDogc3RyaW5nLCBib2R5OiBhbnksIHBhcmFtcz8sIHdpdGhDcmVkZW50aWFsczogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuaHR0cC5wb3N0KHVybCwgYm9keSwgeyBwYXJhbXM6IHRoaXMuY3JlYXRlUGFyYW1zKHBhcmFtcyksIHdpdGhDcmVkZW50aWFscyB9KS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlc1snY29kZSddID09PSAwICYmIHJlc1snYm9keSddKSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc1snYm9keSddIGFzIFQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlLkVycm9yKFwiRXJyb3JcIiwgcmVzWydtZXNzYWdlJ10pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyID0+IHJlamVjdChlcnIpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHV0RGF0YUJvZHk8VD4odXJsOiBzdHJpbmcsIGJvZHk6IGFueSwgcGFyYW1zPywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5odHRwLnB1dCh1cmwsIGJvZHksIHsgcGFyYW1zOiB0aGlzLmNyZWF0ZVBhcmFtcyhwYXJhbXMpLCB3aXRoQ3JlZGVudGlhbHMgfSkuc3Vic2NyaWJlKFxuICAgICAgICByZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXNbJ2NvZGUnXSA9PT0gMCAmJiByZXNbJ2JvZHknXSkge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNbJ2JvZHknXSBhcyBUKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZS5FcnJvcihcIkVycm9yXCIsIHJlc1snbWVzc2FnZSddKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVyciA9PiByZWplY3QoZXJyKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufSJdfQ==
@@ -301,95 +301,50 @@ class HttpService {
301
301
  this.http = http;
302
302
  this.message = message;
303
303
  }
304
- getData(url, params) {
304
+ createParams(params) {
305
305
  let data = new HttpParams();
306
306
  if (params) {
307
307
  params.forEach(element => {
308
308
  data = data.append(`${element.id}`, `${element.value}`);
309
309
  });
310
310
  }
311
- return this.http.get(url, { params: data });
311
+ return data;
312
312
  }
313
- postData(url, body, params) {
314
- let data = new HttpParams();
315
- if (params) {
316
- params.forEach(element => {
317
- data = data.append(`${element.id}`, `${element.value}`);
318
- });
319
- }
320
- return this.http.post(url, body, { params: data });
313
+ getData(url, params, withCredentials = false) {
314
+ return this.http.get(url, { params: this.createParams(params), withCredentials });
321
315
  }
322
- putData(url, body, params) {
323
- let data = new HttpParams();
324
- if (params) {
325
- params.forEach(element => {
326
- data = data.append(`${element.id}`, `${element.value}`);
327
- });
328
- }
329
- return this.http.put(url, body, { params: data });
316
+ postData(url, body, params, withCredentials = false) {
317
+ return this.http.post(url, body, { params: this.createParams(params), withCredentials });
330
318
  }
331
- deleteData(url, params) {
332
- let data = new HttpParams();
333
- if (params) {
334
- params.forEach(element => {
335
- data = data.append(`${element.id}`, `${element.value}`);
336
- });
337
- }
338
- return this.http.delete(url, { params: data });
319
+ putData(url, body, params, withCredentials = false) {
320
+ return this.http.put(url, body, { params: this.createParams(params), withCredentials });
339
321
  }
340
- getDataPromise(url, params) {
341
- let data = new HttpParams();
342
- if (params) {
343
- params.forEach(element => {
344
- data = data.append(`${element.id}`, `${element.value}`);
345
- });
346
- }
322
+ deleteData(url, params, withCredentials = false) {
323
+ return this.http.delete(url, { params: this.createParams(params), withCredentials });
324
+ }
325
+ getDataPromise(url, params, withCredentials = false) {
347
326
  return new Promise((resolve, reject) => {
348
- this.http.get(url, { params: data }).subscribe(res => resolve(res), err => reject(err));
327
+ this.http.get(url, { params: this.createParams(params), withCredentials }).subscribe(res => resolve(res), err => reject(err));
349
328
  });
350
329
  }
351
- postDataPromise(url, body, params) {
352
- let data = new HttpParams();
353
- if (params) {
354
- params.forEach(element => {
355
- data = data.append(`${element.id}`, `${element.value}`);
356
- });
357
- }
330
+ postDataPromise(url, body, params, withCredentials = false) {
358
331
  return new Promise((resolve, reject) => {
359
- this.http.post(url, body, { params: data }).subscribe(res => resolve(res), err => reject(err));
332
+ this.http.post(url, body, { params: this.createParams(params), withCredentials }).subscribe(res => resolve(res), err => reject(err));
360
333
  });
361
334
  }
362
- putDataPromise(url, body, params) {
363
- let data = new HttpParams();
364
- if (params) {
365
- params.forEach(element => {
366
- data = data.append(`${element.id}`, `${element.value}`);
367
- });
368
- }
335
+ putDataPromise(url, body, params, withCredentials = false) {
369
336
  return new Promise((resolve, reject) => {
370
- this.http.put(url, body, { params: data }).subscribe(res => resolve(res), err => reject(err));
337
+ this.http.put(url, body, { params: this.createParams(params), withCredentials }).subscribe(res => resolve(res), err => reject(err));
371
338
  });
372
339
  }
373
- deleteDataPromise(url, params) {
374
- let data = new HttpParams();
375
- if (params) {
376
- params.forEach(element => {
377
- data = data.append(`${element.id}`, `${element.value}`);
378
- });
379
- }
340
+ deleteDataPromise(url, params, withCredentials = false) {
380
341
  return new Promise((resolve, reject) => {
381
- this.http.delete(url, { params: data }).subscribe(res => resolve(res), err => reject(err));
342
+ this.http.delete(url, { params: this.createParams(params), withCredentials }).subscribe(res => resolve(res), err => reject(err));
382
343
  });
383
344
  }
384
- getDataBody(url, params) {
385
- let data = new HttpParams();
386
- if (params) {
387
- params.forEach(element => {
388
- data = data.append(`${element.id}`, `${element.value}`);
389
- });
390
- }
345
+ getDataBody(url, params, withCredentials = false) {
391
346
  return new Promise((resolve, reject) => {
392
- this.http.get(url, { params: data }).subscribe(res => {
347
+ this.http.get(url, { params: this.createParams(params), withCredentials }).subscribe(res => {
393
348
  if (res['code'] === 0 && res['body']) {
394
349
  resolve(res['body']);
395
350
  }
@@ -400,15 +355,9 @@ class HttpService {
400
355
  }, err => reject(err));
401
356
  });
402
357
  }
403
- postDataBody(url, body, params) {
404
- let data = new HttpParams();
405
- if (params) {
406
- params.forEach(element => {
407
- data = data.append(`${element.id}`, `${element.value}`);
408
- });
409
- }
358
+ postDataBody(url, body, params, withCredentials = false) {
410
359
  return new Promise((resolve, reject) => {
411
- this.http.post(url, body, { params: data }).subscribe(res => {
360
+ this.http.post(url, body, { params: this.createParams(params), withCredentials }).subscribe(res => {
412
361
  if (res['code'] === 0 && res['body']) {
413
362
  resolve(res['body']);
414
363
  }
@@ -419,15 +368,9 @@ class HttpService {
419
368
  }, err => reject(err));
420
369
  });
421
370
  }
422
- putDataBody(url, body, params) {
423
- let data = new HttpParams();
424
- if (params) {
425
- params.forEach(element => {
426
- data = data.append(`${element.id}`, `${element.value}`);
427
- });
428
- }
371
+ putDataBody(url, body, params, withCredentials = false) {
429
372
  return new Promise((resolve, reject) => {
430
- this.http.put(url, body, { params: data }).subscribe(res => {
373
+ this.http.put(url, body, { params: this.createParams(params), withCredentials }).subscribe(res => {
431
374
  if (res['code'] === 0 && res['body']) {
432
375
  resolve(res['body']);
433
376
  }
@@ -1553,6 +1496,7 @@ class DataTableComponent {
1553
1496
  this.exit = new EventEmitter();
1554
1497
  this.internalData = new EventEmitter();
1555
1498
  this.sendEmail = new EventEmitter();
1499
+ this.fileIconClick = new EventEmitter();
1556
1500
  this.movil = ScreenSizeUtil.isMobile();
1557
1501
  this.filtersPost = [];
1558
1502
  this.selectedRows = []; /** almacena las filas seleccionadas */
@@ -1841,6 +1785,10 @@ class DataTableComponent {
1841
1785
  return button;
1842
1786
  });
1843
1787
  }
1788
+ onFileIconClick(event, value) {
1789
+ event.stopPropagation();
1790
+ this.fileIconClick.emit(value);
1791
+ }
1844
1792
  clickOnRoW(rowData) {
1845
1793
  let state = this.checkboxs[rowData[this.configuration.primaryKey]];
1846
1794
  if (!this.configuration.selectable) {
@@ -2074,10 +2022,10 @@ class DataTableComponent {
2074
2022
  }
2075
2023
  }
2076
2024
  DataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DataTableComponent, deps: [{ token: i1.MatDialog }, { token: HttpService }, { token: MessageService }, { token: FunctionsService }, { token: i5.MatPaginatorIntl }, { token: ExportDataService }], target: i0.ɵɵFactoryTarget.Component });
2077
- DataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DataTableComponent, selector: "data-table", inputs: { title: "title", columns: "columns", data: "data", combo: "combo", configuration: "configuration", reloadTable: "reloadTable", url: "url", params: "params", titleLoading: "titleLoading", messageLoading: "messageLoading", headerFileXlsm: "headerFileXlsm", headerFilters: "headerFilters", xslxTitleFields: "xslxTitleFields", xslxSheetNameFields: "xslxSheetNameFields", xslxBodyFields: "xslxBodyFields", xslxParams: "xslxParams", roleId: "roleId", moduleId: "moduleId", subModuleId: "subModuleId" }, outputs: { clickRow: "clickRow", add: "add", edit: "edit", delete: "delete", print: "print", exportXslxByRow: "exportXslxByRow", active: "active", selected: "selected", view: "view", closeOrder: "closeOrder", packOff: "packOff", advance: "advance", income: "income", exit: "exit", internalData: "internalData", sendEmail: "sendEmail" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"contenedor-tabla\">\n <app-filters [headerFilters]=\"headerFilters\" (applyFilters)=\"applyFilters($event)\">\n </app-filters>\n\n <div style='display: flex; flex-direction: row; justify-content: space-between; align-items: center;'>\n <div style='flex:1; font-size: 1rem;'>\n <strong><p style='margin:0' *ngIf='selectedRows.length>0 && selectedRows.length<2 && configuration.selectable'> {{selectedRows.length}} Seleccionado </p></strong>\n <strong><p style='margin:0' *ngIf='selectedRows.length>1'> {{selectedRows.length}} Seleccionados </p></strong>\n <strong><p style='margin:0' *ngIf='selectedRows.length<1 && !configuration.hideTitle'> {{title}} </p></strong>\n </div>\n\n <div *ngIf=\"!configuration.hideFilter\" style='flex:3; padding-right: 10px; margin-bottom: 5px;'>\n <mat-form-field class='filter'>\n <input type=\"text\" [(ngModel)]='filters' (keyup)='changeFilters()' matInput placeholder=\"Filtrar\">\n </mat-form-field>\n </div>\n\n <ng-container *ngTemplateOutlet=\"buttonsTable\"></ng-container>\n\n </div>\n\n <table class=\"table_Eter table-hover\">\n <thead class=\"dark\">\n <tr >\n <th *ngIf='configuration.selectable' style='justify-content: center;'>\n <mat-checkbox color='primary' (change)='seletecAllEvent($event)' [(ngModel)]='selectAll' [indeterminate]='indeterminateState'> </mat-checkbox> </th>\n <th\n [class]=\"column.style?.movil\"\n *ngFor='let column of columns' scope=\"col\"\n [ngStyle]=\"column.style\"\n >{{column.label}}</th>\n <th *ngIf=\"shouldShowMenu()\"></th>\n </tr>\n </thead>\n <tbody class='mat-elevation-z3'>\n\n <tr style=\"cursor: pointer;\" *ngFor='let row of data' (click)='clickOnRoW(row)' [class]=\"checkboxs[row[configuration.primaryKey]]?'selected-row':''\">\n <th *ngIf='configuration.selectable' style='justify-content: center;'> <mat-checkbox color='primary' [(ngModel)]='checkboxs[row[configuration.primaryKey]]' (click)='clicked($event)' (change)='selection(row, $event)'> </mat-checkbox> </th>\n <th [class]='column.style?.movil' [ngStyle]='column.style' scope=\"row\" *ngFor='let column of columns'>{{ row[column.ID] }}</th>\n\n <th *ngIf=\"shouldShowMenu()\" style=\"display: flex; justify-content: center; align-items: center; overflow: visible;\">\n <mat-icon\n (click)=\"showMenu($event)\"\n [matMenuTriggerFor]=\"menu\"\n matRipple\n class=\"menu_more_vert\"\n aria-hidden=\"false\"\n aria-label=\"Example delete icon\"\n >more_vert</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n <div *ngFor=\"let btn of buttonsConfig\" >\n <button *ngIf=\"btn.condition()\" (click)=\"action(btn.action, row)\" mat-menu-item class=\"d-flex align-items-center w-100\" >\n <i class=\"fa {{btn.icon}} btn-accion\" style=\"font-size:120%; margin-right: 10px\"></i>\n {{btn.tooltip}}\n </button>\n </div>\n\n </mat-menu>\n </th>\n\n </tr>\n\n\n </tbody>\n\n </table>\n\n <div *ngIf='length == 0 && data.length == 0' style=\"margin-left: 10px;\"> <strong>No se encontr\u00F3 informaci\u00F3n</strong></div>\n\n <mat-paginator *ngIf=\"paginatorActive\"\n [length]=\"length\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons\n (page)=\"changePage($event)\"></mat-paginator>\n\n </div>\n\n<ng-template #buttonsTable let-fontSize=\"fontSize\" let-marginRight=\"marginRight\" style='flex:0.5; display:flex; flex-direction: row; justify-content: flex-end;'>\n <ng-container *ngFor=\"let btn of buttonsConfig\">\n <div *ngIf=\"btn.conditionShowHeader()\" (click)=\"action(btn.action)\" matTooltip=\"{{btn.tooltip}}\" matTooltipPosition=\"above\">\n <i class=\"fa {{btn.icon}} btn-accion\" [ngStyle]=\"{'font-size': fontSize ? fontSize : '170%', 'margin-right': marginRight ? marginRight : '15px'}\"></i>\n </div>\n </ng-container>\n</ng-template>\n\n", styles: [".contenedor-tabla{width:100%;overflow-x:auto}.table_Eter{width:100%;margin-bottom:4px;color:primary;border-collapse:collapse}.table_Eter .dark th{color:#fff;background-color:#343a40;border-color:#454d55;text-align:center;vertical-align:middle}.table_Eter thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table_Eter th,.table_Eter td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}th{text-align:inherit}*,*:before,*:after{box-sizing:border-box}.btn-accion{cursor:pointer}mat-form-field{padding:0!important;width:100%}.filter{padding:0;margin-bottom:10px;width:100%}.filter ::ng-deep .mat-form-field-underline{bottom:3px!important}.filter ::ng-deep .mat-form-field-infix{border:0!important}.filter ::ng-deep .mat-form-field-wrapper{padding:0}.filter ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-wrapper{padding:0}.selected-row{color:#212529;background-color:#00000013}button:focus{outline:none!important}@media only screen and (max-width: 600px){.no-movil{display:none}}::ng-deep .mat-paginator{background:transparent!important}@media screen and (max-width: 400px){.filter{padding:0;margin-bottom:40px;width:70%}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i8$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i13.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FiltersComponent, selector: "app-filters", inputs: ["headerFilters"], outputs: ["applyFilters"] }] });
2025
+ DataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DataTableComponent, selector: "data-table", inputs: { title: "title", columns: "columns", data: "data", combo: "combo", configuration: "configuration", reloadTable: "reloadTable", url: "url", params: "params", titleLoading: "titleLoading", messageLoading: "messageLoading", headerFileXlsm: "headerFileXlsm", headerFilters: "headerFilters", xslxTitleFields: "xslxTitleFields", xslxSheetNameFields: "xslxSheetNameFields", xslxBodyFields: "xslxBodyFields", xslxParams: "xslxParams", roleId: "roleId", moduleId: "moduleId", subModuleId: "subModuleId" }, outputs: { clickRow: "clickRow", add: "add", edit: "edit", delete: "delete", print: "print", exportXslxByRow: "exportXslxByRow", active: "active", selected: "selected", view: "view", closeOrder: "closeOrder", packOff: "packOff", advance: "advance", income: "income", exit: "exit", internalData: "internalData", sendEmail: "sendEmail", fileIconClick: "fileIconClick" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"contenedor-tabla\">\n <app-filters [headerFilters]=\"headerFilters\" (applyFilters)=\"applyFilters($event)\">\n </app-filters>\n\n <div style='display: flex; flex-direction: row; justify-content: space-between; align-items: center;'>\n <div style='flex:1; font-size: 1rem;'>\n <strong><p style='margin:0' *ngIf='selectedRows.length>0 && selectedRows.length<2 && configuration.selectable'> {{selectedRows.length}} Seleccionado </p></strong>\n <strong><p style='margin:0' *ngIf='selectedRows.length>1'> {{selectedRows.length}} Seleccionados </p></strong>\n <strong><p style='margin:0' *ngIf='selectedRows.length<1 && !configuration.hideTitle'> {{title}} </p></strong>\n </div>\n\n <div *ngIf=\"!configuration.hideFilter\" style='flex:3; padding-right: 10px; margin-bottom: 5px;'>\n <mat-form-field class='filter'>\n <input type=\"text\" [(ngModel)]='filters' (keyup)='changeFilters()' matInput placeholder=\"Filtrar\">\n </mat-form-field>\n </div>\n\n <ng-container *ngTemplateOutlet=\"buttonsTable\"></ng-container>\n\n </div>\n\n <table class=\"table_Eter table-hover\">\n <thead class=\"dark\">\n <tr >\n <th *ngIf='configuration.selectable' style='justify-content: center;'>\n <mat-checkbox color='primary' (change)='seletecAllEvent($event)' [(ngModel)]='selectAll' [indeterminate]='indeterminateState'> </mat-checkbox> </th>\n <th\n [class]=\"column.style?.movil\"\n *ngFor='let column of columns' scope=\"col\"\n [ngStyle]=\"column.style\"\n >{{column.label}}</th>\n <th *ngIf=\"shouldShowMenu()\"></th>\n </tr>\n </thead>\n <tbody class='mat-elevation-z3'>\n\n <tr style=\"cursor: pointer;\" *ngFor='let row of data' (click)='clickOnRoW(row)' [class]=\"checkboxs[row[configuration.primaryKey]]?'selected-row':''\">\n <th *ngIf='configuration.selectable' style='justify-content: center;'> <mat-checkbox color='primary' [(ngModel)]='checkboxs[row[configuration.primaryKey]]' (click)='clicked($event)' (change)='selection(row, $event)'> </mat-checkbox> </th>\n <th [class]=\"column.style?.movil\" [ngStyle]=\"column.style\" scope=\"row\" *ngFor=\"let column of columns\">\n <ng-container *ngIf=\"column.type === 'file'; else displayValue\">\n <div (click)=\"onFileIconClick($event, row[column.ID])\">\n <i class=\"fa fa-file\" style=\"cursor:pointer;\" ></i>\n </div>\n </ng-container>\n <ng-template #displayValue>\n {{ row[column.ID] }}\n </ng-template>\n </th>\n\n <th *ngIf=\"shouldShowMenu()\" style=\"display: flex; justify-content: center; align-items: center; overflow: visible;\">\n <mat-icon\n (click)=\"showMenu($event)\"\n [matMenuTriggerFor]=\"menu\"\n matRipple\n class=\"menu_more_vert\"\n aria-hidden=\"false\"\n aria-label=\"Example delete icon\"\n >more_vert</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n <div *ngFor=\"let btn of buttonsConfig\" >\n <button *ngIf=\"btn.condition()\" (click)=\"action(btn.action, row)\" mat-menu-item class=\"d-flex align-items-center w-100\" >\n <i class=\"fa {{btn.icon}} btn-accion\" style=\"font-size:120%; margin-right: 10px\"></i>\n {{btn.tooltip}}\n </button>\n </div>\n\n </mat-menu>\n </th>\n\n </tr>\n\n\n </tbody>\n\n </table>\n\n <div *ngIf='length == 0 && data.length == 0' style=\"margin-left: 10px;\"> <strong>No se encontr\u00F3 informaci\u00F3n</strong></div>\n\n <mat-paginator *ngIf=\"paginatorActive\"\n [length]=\"length\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons\n (page)=\"changePage($event)\"></mat-paginator>\n\n </div>\n\n<ng-template #buttonsTable let-fontSize=\"fontSize\" let-marginRight=\"marginRight\" style='flex:0.5; display:flex; flex-direction: row; justify-content: flex-end;'>\n <ng-container *ngFor=\"let btn of buttonsConfig\">\n <div *ngIf=\"btn.conditionShowHeader()\" (click)=\"action(btn.action)\" matTooltip=\"{{btn.tooltip}}\" matTooltipPosition=\"above\">\n <i class=\"fa {{btn.icon}} btn-accion\" [ngStyle]=\"{'font-size': fontSize ? fontSize : '170%', 'margin-right': marginRight ? marginRight : '15px'}\"></i>\n </div>\n </ng-container>\n</ng-template>\n\n", styles: [".contenedor-tabla{width:100%;overflow-x:auto}.table_Eter{width:100%;margin-bottom:4px;color:primary;border-collapse:collapse}.table_Eter .dark th{color:#fff;background-color:#343a40;border-color:#454d55;text-align:center;vertical-align:middle}.table_Eter thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table_Eter th,.table_Eter td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}th{text-align:inherit}*,*:before,*:after{box-sizing:border-box}.btn-accion{cursor:pointer}mat-form-field{padding:0!important;width:100%}.filter{padding:0;margin-bottom:10px;width:100%}.filter ::ng-deep .mat-form-field-underline{bottom:3px!important}.filter ::ng-deep .mat-form-field-infix{border:0!important}.filter ::ng-deep .mat-form-field-wrapper{padding:0}.filter ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-wrapper{padding:0}.selected-row{color:#212529;background-color:#00000013}button:focus{outline:none!important}@media only screen and (max-width: 600px){.no-movil{display:none}}::ng-deep .mat-paginator{background:transparent!important}@media screen and (max-width: 400px){.filter{padding:0;margin-bottom:40px;width:70%}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i8$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i3$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i13.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i7$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FiltersComponent, selector: "app-filters", inputs: ["headerFilters"], outputs: ["applyFilters"] }] });
2078
2026
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DataTableComponent, decorators: [{
2079
2027
  type: Component,
2080
- args: [{ selector: 'data-table', template: "<div class=\"contenedor-tabla\">\n <app-filters [headerFilters]=\"headerFilters\" (applyFilters)=\"applyFilters($event)\">\n </app-filters>\n\n <div style='display: flex; flex-direction: row; justify-content: space-between; align-items: center;'>\n <div style='flex:1; font-size: 1rem;'>\n <strong><p style='margin:0' *ngIf='selectedRows.length>0 && selectedRows.length<2 && configuration.selectable'> {{selectedRows.length}} Seleccionado </p></strong>\n <strong><p style='margin:0' *ngIf='selectedRows.length>1'> {{selectedRows.length}} Seleccionados </p></strong>\n <strong><p style='margin:0' *ngIf='selectedRows.length<1 && !configuration.hideTitle'> {{title}} </p></strong>\n </div>\n\n <div *ngIf=\"!configuration.hideFilter\" style='flex:3; padding-right: 10px; margin-bottom: 5px;'>\n <mat-form-field class='filter'>\n <input type=\"text\" [(ngModel)]='filters' (keyup)='changeFilters()' matInput placeholder=\"Filtrar\">\n </mat-form-field>\n </div>\n\n <ng-container *ngTemplateOutlet=\"buttonsTable\"></ng-container>\n\n </div>\n\n <table class=\"table_Eter table-hover\">\n <thead class=\"dark\">\n <tr >\n <th *ngIf='configuration.selectable' style='justify-content: center;'>\n <mat-checkbox color='primary' (change)='seletecAllEvent($event)' [(ngModel)]='selectAll' [indeterminate]='indeterminateState'> </mat-checkbox> </th>\n <th\n [class]=\"column.style?.movil\"\n *ngFor='let column of columns' scope=\"col\"\n [ngStyle]=\"column.style\"\n >{{column.label}}</th>\n <th *ngIf=\"shouldShowMenu()\"></th>\n </tr>\n </thead>\n <tbody class='mat-elevation-z3'>\n\n <tr style=\"cursor: pointer;\" *ngFor='let row of data' (click)='clickOnRoW(row)' [class]=\"checkboxs[row[configuration.primaryKey]]?'selected-row':''\">\n <th *ngIf='configuration.selectable' style='justify-content: center;'> <mat-checkbox color='primary' [(ngModel)]='checkboxs[row[configuration.primaryKey]]' (click)='clicked($event)' (change)='selection(row, $event)'> </mat-checkbox> </th>\n <th [class]='column.style?.movil' [ngStyle]='column.style' scope=\"row\" *ngFor='let column of columns'>{{ row[column.ID] }}</th>\n\n <th *ngIf=\"shouldShowMenu()\" style=\"display: flex; justify-content: center; align-items: center; overflow: visible;\">\n <mat-icon\n (click)=\"showMenu($event)\"\n [matMenuTriggerFor]=\"menu\"\n matRipple\n class=\"menu_more_vert\"\n aria-hidden=\"false\"\n aria-label=\"Example delete icon\"\n >more_vert</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n <div *ngFor=\"let btn of buttonsConfig\" >\n <button *ngIf=\"btn.condition()\" (click)=\"action(btn.action, row)\" mat-menu-item class=\"d-flex align-items-center w-100\" >\n <i class=\"fa {{btn.icon}} btn-accion\" style=\"font-size:120%; margin-right: 10px\"></i>\n {{btn.tooltip}}\n </button>\n </div>\n\n </mat-menu>\n </th>\n\n </tr>\n\n\n </tbody>\n\n </table>\n\n <div *ngIf='length == 0 && data.length == 0' style=\"margin-left: 10px;\"> <strong>No se encontr\u00F3 informaci\u00F3n</strong></div>\n\n <mat-paginator *ngIf=\"paginatorActive\"\n [length]=\"length\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons\n (page)=\"changePage($event)\"></mat-paginator>\n\n </div>\n\n<ng-template #buttonsTable let-fontSize=\"fontSize\" let-marginRight=\"marginRight\" style='flex:0.5; display:flex; flex-direction: row; justify-content: flex-end;'>\n <ng-container *ngFor=\"let btn of buttonsConfig\">\n <div *ngIf=\"btn.conditionShowHeader()\" (click)=\"action(btn.action)\" matTooltip=\"{{btn.tooltip}}\" matTooltipPosition=\"above\">\n <i class=\"fa {{btn.icon}} btn-accion\" [ngStyle]=\"{'font-size': fontSize ? fontSize : '170%', 'margin-right': marginRight ? marginRight : '15px'}\"></i>\n </div>\n </ng-container>\n</ng-template>\n\n", styles: [".contenedor-tabla{width:100%;overflow-x:auto}.table_Eter{width:100%;margin-bottom:4px;color:primary;border-collapse:collapse}.table_Eter .dark th{color:#fff;background-color:#343a40;border-color:#454d55;text-align:center;vertical-align:middle}.table_Eter thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table_Eter th,.table_Eter td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}th{text-align:inherit}*,*:before,*:after{box-sizing:border-box}.btn-accion{cursor:pointer}mat-form-field{padding:0!important;width:100%}.filter{padding:0;margin-bottom:10px;width:100%}.filter ::ng-deep .mat-form-field-underline{bottom:3px!important}.filter ::ng-deep .mat-form-field-infix{border:0!important}.filter ::ng-deep .mat-form-field-wrapper{padding:0}.filter ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-wrapper{padding:0}.selected-row{color:#212529;background-color:#00000013}button:focus{outline:none!important}@media only screen and (max-width: 600px){.no-movil{display:none}}::ng-deep .mat-paginator{background:transparent!important}@media screen and (max-width: 400px){.filter{padding:0;margin-bottom:40px;width:70%}}\n"] }]
2028
+ args: [{ selector: 'data-table', template: "<div class=\"contenedor-tabla\">\n <app-filters [headerFilters]=\"headerFilters\" (applyFilters)=\"applyFilters($event)\">\n </app-filters>\n\n <div style='display: flex; flex-direction: row; justify-content: space-between; align-items: center;'>\n <div style='flex:1; font-size: 1rem;'>\n <strong><p style='margin:0' *ngIf='selectedRows.length>0 && selectedRows.length<2 && configuration.selectable'> {{selectedRows.length}} Seleccionado </p></strong>\n <strong><p style='margin:0' *ngIf='selectedRows.length>1'> {{selectedRows.length}} Seleccionados </p></strong>\n <strong><p style='margin:0' *ngIf='selectedRows.length<1 && !configuration.hideTitle'> {{title}} </p></strong>\n </div>\n\n <div *ngIf=\"!configuration.hideFilter\" style='flex:3; padding-right: 10px; margin-bottom: 5px;'>\n <mat-form-field class='filter'>\n <input type=\"text\" [(ngModel)]='filters' (keyup)='changeFilters()' matInput placeholder=\"Filtrar\">\n </mat-form-field>\n </div>\n\n <ng-container *ngTemplateOutlet=\"buttonsTable\"></ng-container>\n\n </div>\n\n <table class=\"table_Eter table-hover\">\n <thead class=\"dark\">\n <tr >\n <th *ngIf='configuration.selectable' style='justify-content: center;'>\n <mat-checkbox color='primary' (change)='seletecAllEvent($event)' [(ngModel)]='selectAll' [indeterminate]='indeterminateState'> </mat-checkbox> </th>\n <th\n [class]=\"column.style?.movil\"\n *ngFor='let column of columns' scope=\"col\"\n [ngStyle]=\"column.style\"\n >{{column.label}}</th>\n <th *ngIf=\"shouldShowMenu()\"></th>\n </tr>\n </thead>\n <tbody class='mat-elevation-z3'>\n\n <tr style=\"cursor: pointer;\" *ngFor='let row of data' (click)='clickOnRoW(row)' [class]=\"checkboxs[row[configuration.primaryKey]]?'selected-row':''\">\n <th *ngIf='configuration.selectable' style='justify-content: center;'> <mat-checkbox color='primary' [(ngModel)]='checkboxs[row[configuration.primaryKey]]' (click)='clicked($event)' (change)='selection(row, $event)'> </mat-checkbox> </th>\n <th [class]=\"column.style?.movil\" [ngStyle]=\"column.style\" scope=\"row\" *ngFor=\"let column of columns\">\n <ng-container *ngIf=\"column.type === 'file'; else displayValue\">\n <div (click)=\"onFileIconClick($event, row[column.ID])\">\n <i class=\"fa fa-file\" style=\"cursor:pointer;\" ></i>\n </div>\n </ng-container>\n <ng-template #displayValue>\n {{ row[column.ID] }}\n </ng-template>\n </th>\n\n <th *ngIf=\"shouldShowMenu()\" style=\"display: flex; justify-content: center; align-items: center; overflow: visible;\">\n <mat-icon\n (click)=\"showMenu($event)\"\n [matMenuTriggerFor]=\"menu\"\n matRipple\n class=\"menu_more_vert\"\n aria-hidden=\"false\"\n aria-label=\"Example delete icon\"\n >more_vert</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n <div *ngFor=\"let btn of buttonsConfig\" >\n <button *ngIf=\"btn.condition()\" (click)=\"action(btn.action, row)\" mat-menu-item class=\"d-flex align-items-center w-100\" >\n <i class=\"fa {{btn.icon}} btn-accion\" style=\"font-size:120%; margin-right: 10px\"></i>\n {{btn.tooltip}}\n </button>\n </div>\n\n </mat-menu>\n </th>\n\n </tr>\n\n\n </tbody>\n\n </table>\n\n <div *ngIf='length == 0 && data.length == 0' style=\"margin-left: 10px;\"> <strong>No se encontr\u00F3 informaci\u00F3n</strong></div>\n\n <mat-paginator *ngIf=\"paginatorActive\"\n [length]=\"length\" [pageSize]=\"pageSize\" [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons\n (page)=\"changePage($event)\"></mat-paginator>\n\n </div>\n\n<ng-template #buttonsTable let-fontSize=\"fontSize\" let-marginRight=\"marginRight\" style='flex:0.5; display:flex; flex-direction: row; justify-content: flex-end;'>\n <ng-container *ngFor=\"let btn of buttonsConfig\">\n <div *ngIf=\"btn.conditionShowHeader()\" (click)=\"action(btn.action)\" matTooltip=\"{{btn.tooltip}}\" matTooltipPosition=\"above\">\n <i class=\"fa {{btn.icon}} btn-accion\" [ngStyle]=\"{'font-size': fontSize ? fontSize : '170%', 'margin-right': marginRight ? marginRight : '15px'}\"></i>\n </div>\n </ng-container>\n</ng-template>\n\n", styles: [".contenedor-tabla{width:100%;overflow-x:auto}.table_Eter{width:100%;margin-bottom:4px;color:primary;border-collapse:collapse}.table_Eter .dark th{color:#fff;background-color:#343a40;border-color:#454d55;text-align:center;vertical-align:middle}.table_Eter thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table_Eter th,.table_Eter td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}th{text-align:inherit}*,*:before,*:after{box-sizing:border-box}.btn-accion{cursor:pointer}mat-form-field{padding:0!important;width:100%}.filter{padding:0;margin-bottom:10px;width:100%}.filter ::ng-deep .mat-form-field-underline{bottom:3px!important}.filter ::ng-deep .mat-form-field-infix{border:0!important}.filter ::ng-deep .mat-form-field-wrapper{padding:0}.filter ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-wrapper{padding:0}.selected-row{color:#212529;background-color:#00000013}button:focus{outline:none!important}@media only screen and (max-width: 600px){.no-movil{display:none}}::ng-deep .mat-paginator{background:transparent!important}@media screen and (max-width: 400px){.filter{padding:0;margin-bottom:40px;width:70%}}\n"] }]
2081
2029
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: HttpService }, { type: MessageService }, { type: FunctionsService }, { type: i5.MatPaginatorIntl }, { type: ExportDataService }]; }, propDecorators: { title: [{
2082
2030
  type: Input
2083
2031
  }], columns: [{
@@ -2148,6 +2096,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2148
2096
  type: Output
2149
2097
  }], sendEmail: [{
2150
2098
  type: Output
2099
+ }], fileIconClick: [{
2100
+ type: Output
2151
2101
  }], paginator: [{
2152
2102
  type: ViewChild,
2153
2103
  args: [MatPaginator, { static: true }]