@universis/ngx-tables 0.6.2 → 0.6.7

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.
Files changed (29) hide show
  1. package/bundles/universis-ngx-tables.umd.js +2690 -2669
  2. package/bundles/universis-ngx-tables.umd.js.map +1 -1
  3. package/bundles/universis-ngx-tables.umd.min.js +1 -1
  4. package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
  5. package/esm2015/lib/components/advanced-select/advanced-select.component.js +10 -9
  6. package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +27 -26
  7. package/esm2015/lib/components/advanced-table/advanced-table.component.js +60 -41
  8. package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +3 -3
  9. package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +53 -70
  10. package/esm2015/public_api.js +16 -5
  11. package/esm2015/universis-ngx-tables.js +1 -9
  12. package/esm5/lib/components/advanced-select/advanced-select.component.js +10 -9
  13. package/esm5/lib/components/advanced-table/advanced-table-search.component.js +18 -17
  14. package/esm5/lib/components/advanced-table/advanced-table.component.js +39 -20
  15. package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +3 -3
  16. package/esm5/lib/components/advanced-table/advanced-table.formatters.js +58 -64
  17. package/esm5/public_api.js +16 -5
  18. package/esm5/universis-ngx-tables.js +1 -9
  19. package/fesm2015/universis-ngx-tables.js +2280 -2275
  20. package/fesm2015/universis-ngx-tables.js.map +1 -1
  21. package/fesm5/universis-ngx-tables.js +2562 -2546
  22. package/fesm5/universis-ngx-tables.js.map +1 -1
  23. package/lib/components/advanced-select/advanced-select.component.d.ts +7 -7
  24. package/lib/components/advanced-table/advanced-table-search.component.d.ts +2 -2
  25. package/lib/components/advanced-table/advanced-table.formatters.d.ts +8 -2
  26. package/package.json +1 -1
  27. package/public_api.d.ts +16 -4
  28. package/universis-ngx-tables.d.ts +0 -8
  29. package/universis-ngx-tables.metadata.json +1 -1
@@ -1,4 +1,4 @@
1
- import { ActionLinkFormatter, ButtonFormatter, DateTimeFormatter, LanguageFormatter, LinkFormatter, NestedPropertyFormatter, NgClassFormatter, SelectRowFormatter, TemplateFormatter, TranslationFormatter, TrueFalseFormatter } from './advanced-table.formatters';
1
+ import { ActionLinkFormatter, ButtonFormatter, DateTimeFormatter, LanguageFormatter, LinkFormatter, NestedPropertyFormatter, NgClassFormatter, SelectRowFormatter, TemplateFormatter, TranslationFormatter, TrueFalseFormatter, } from './advanced-table.formatters';
2
2
  export var FORMATTERS = {
3
3
  ActionLinkFormatter: new ActionLinkFormatter(),
4
4
  ButtonFormatter: new ButtonFormatter(),
@@ -10,7 +10,7 @@ export var FORMATTERS = {
10
10
  SelectRowFormatter: new SelectRowFormatter(),
11
11
  TemplateFormatter: new TemplateFormatter(),
12
12
  TranslationFormatter: new TranslationFormatter(),
13
- TrueFalseFormatter: new TrueFalseFormatter()
13
+ TrueFalseFormatter: new TrueFalseFormatter(),
14
14
  };
15
15
 
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUuZm9ybWF0dGVycy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5mb3JtYXR0ZXJzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUMxRSxhQUFhLEVBQ2IsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQzdELGlCQUFpQixFQUFFLG9CQUFvQixFQUN2QyxrQkFBa0IsRUFDbkIsTUFBTSw2QkFBNkIsQ0FBQztBQWVyQyxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQTZCO0lBQzlDLG1CQUFtQixFQUFFLElBQUksbUJBQW1CLEVBQUU7SUFDOUMsZUFBZSxFQUFFLElBQUksZUFBZSxFQUFFO0lBQ3RDLGlCQUFpQixFQUFFLElBQUksaUJBQWlCLEVBQUU7SUFDMUMsaUJBQWlCLEVBQUUsSUFBSSxpQkFBaUIsRUFBRTtJQUMxQyxhQUFhLEVBQUUsSUFBSSxhQUFhLEVBQUU7SUFDbEMsdUJBQXVCLEVBQUUsSUFBSSx1QkFBdUIsRUFBRTtJQUN0RCxnQkFBZ0IsRUFBRSxJQUFJLGdCQUFnQixFQUFFO0lBQ3hDLGtCQUFrQixFQUFFLElBQUksa0JBQWtCLEVBQUU7SUFDNUMsaUJBQWlCLEVBQUUsSUFBSSxpQkFBaUIsRUFBRTtJQUMxQyxvQkFBb0IsRUFBRSxJQUFJLG9CQUFvQixFQUFFO0lBQ2hELGtCQUFrQixFQUFFLElBQUksa0JBQWtCLEVBQUU7Q0FDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjdGlvbkxpbmtGb3JtYXR0ZXIsIEJ1dHRvbkZvcm1hdHRlciwgRGF0ZVRpbWVGb3JtYXR0ZXIsIExhbmd1YWdlRm9ybWF0dGVyLFxuICBMaW5rRm9ybWF0dGVyLFxuICBOZXN0ZWRQcm9wZXJ0eUZvcm1hdHRlciwgTmdDbGFzc0Zvcm1hdHRlciwgU2VsZWN0Um93Rm9ybWF0dGVyLFxuICBUZW1wbGF0ZUZvcm1hdHRlciwgVHJhbnNsYXRpb25Gb3JtYXR0ZXIsXG4gIFRydWVGYWxzZUZvcm1hdHRlclxufSBmcm9tICcuL2FkdmFuY2VkLXRhYmxlLmZvcm1hdHRlcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBZHZhbmNlZFRhYmxlRm9ybWF0dGVycyB7XG4gIEFjdGlvbkxpbmtGb3JtYXR0ZXI/OiBBY3Rpb25MaW5rRm9ybWF0dGVyO1xuICBCdXR0b25Gb3JtYXR0ZXI/OiBCdXR0b25Gb3JtYXR0ZXI7XG4gIERhdGVUaW1lRm9ybWF0dGVyPzogRGF0ZVRpbWVGb3JtYXR0ZXI7XG4gIExhbmd1YWdlRm9ybWF0dGVyPzogTGFuZ3VhZ2VGb3JtYXR0ZXI7XG4gIExpbmtGb3JtYXR0ZXI/OiBMaW5rRm9ybWF0dGVyO1xuICBOZXN0ZWRQcm9wZXJ0eUZvcm1hdHRlcj86IE5lc3RlZFByb3BlcnR5Rm9ybWF0dGVyO1xuICBOZ0NsYXNzRm9ybWF0dGVyPzogTmdDbGFzc0Zvcm1hdHRlcjtcbiAgU2VsZWN0Um93Rm9ybWF0dGVyPzogU2VsZWN0Um93Rm9ybWF0dGVyO1xuICBUZW1wbGF0ZUZvcm1hdHRlcj86IFRlbXBsYXRlRm9ybWF0dGVyO1xuICBUcmFuc2xhdGlvbkZvcm1hdHRlcj86IFRyYW5zbGF0aW9uRm9ybWF0dGVyO1xuICBUcnVlRmFsc2VGb3JtYXR0ZXI/OiBUcnVlRmFsc2VGb3JtYXR0ZXI7XG59XG5leHBvcnQgY29uc3QgRk9STUFUVEVSUzogSUFkdmFuY2VkVGFibGVGb3JtYXR0ZXJzID0ge1xuICAgICAgQWN0aW9uTGlua0Zvcm1hdHRlcjogbmV3IEFjdGlvbkxpbmtGb3JtYXR0ZXIoKSxcbiAgICAgIEJ1dHRvbkZvcm1hdHRlcjogbmV3IEJ1dHRvbkZvcm1hdHRlcigpLFxuICAgICAgRGF0ZVRpbWVGb3JtYXR0ZXI6IG5ldyBEYXRlVGltZUZvcm1hdHRlcigpLFxuICAgICAgTGFuZ3VhZ2VGb3JtYXR0ZXI6IG5ldyBMYW5ndWFnZUZvcm1hdHRlcigpLFxuICAgICAgTGlua0Zvcm1hdHRlcjogbmV3IExpbmtGb3JtYXR0ZXIoKSxcbiAgICAgIE5lc3RlZFByb3BlcnR5Rm9ybWF0dGVyOiBuZXcgTmVzdGVkUHJvcGVydHlGb3JtYXR0ZXIoKSxcbiAgICAgIE5nQ2xhc3NGb3JtYXR0ZXI6IG5ldyBOZ0NsYXNzRm9ybWF0dGVyKCksXG4gICAgICBTZWxlY3RSb3dGb3JtYXR0ZXI6IG5ldyBTZWxlY3RSb3dGb3JtYXR0ZXIoKSxcbiAgICAgIFRlbXBsYXRlRm9ybWF0dGVyOiBuZXcgVGVtcGxhdGVGb3JtYXR0ZXIoKSxcbiAgICAgIFRyYW5zbGF0aW9uRm9ybWF0dGVyOiBuZXcgVHJhbnNsYXRpb25Gb3JtYXR0ZXIoKSxcbiAgICAgIFRydWVGYWxzZUZvcm1hdHRlcjogbmV3IFRydWVGYWxzZUZvcm1hdHRlcigpXG59O1xuXG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUuZm9ybWF0dGVycy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5mb3JtYXR0ZXJzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUMxRSxhQUFhLEVBQ2IsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQzdELGlCQUFpQixFQUFFLG9CQUFvQixFQUN2QyxrQkFBa0IsR0FDbkIsTUFBTSw2QkFBNkIsQ0FBQztBQWVyQyxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQTZCO0lBQzlDLG1CQUFtQixFQUFFLElBQUksbUJBQW1CLEVBQUU7SUFDOUMsZUFBZSxFQUFFLElBQUksZUFBZSxFQUFFO0lBQ3RDLGlCQUFpQixFQUFFLElBQUksaUJBQWlCLEVBQUU7SUFDMUMsaUJBQWlCLEVBQUUsSUFBSSxpQkFBaUIsRUFBRTtJQUMxQyxhQUFhLEVBQUUsSUFBSSxhQUFhLEVBQUU7SUFDbEMsdUJBQXVCLEVBQUUsSUFBSSx1QkFBdUIsRUFBRTtJQUN0RCxnQkFBZ0IsRUFBRSxJQUFJLGdCQUFnQixFQUFFO0lBQ3hDLGtCQUFrQixFQUFFLElBQUksa0JBQWtCLEVBQUU7SUFDNUMsaUJBQWlCLEVBQUUsSUFBSSxpQkFBaUIsRUFBRTtJQUMxQyxvQkFBb0IsRUFBRSxJQUFJLG9CQUFvQixFQUFFO0lBQ2hELGtCQUFrQixFQUFFLElBQUksa0JBQWtCLEVBQUU7Q0FDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFjdGlvbkxpbmtGb3JtYXR0ZXIsIEJ1dHRvbkZvcm1hdHRlciwgRGF0ZVRpbWVGb3JtYXR0ZXIsIExhbmd1YWdlRm9ybWF0dGVyLFxuICBMaW5rRm9ybWF0dGVyLFxuICBOZXN0ZWRQcm9wZXJ0eUZvcm1hdHRlciwgTmdDbGFzc0Zvcm1hdHRlciwgU2VsZWN0Um93Rm9ybWF0dGVyLFxuICBUZW1wbGF0ZUZvcm1hdHRlciwgVHJhbnNsYXRpb25Gb3JtYXR0ZXIsXG4gIFRydWVGYWxzZUZvcm1hdHRlcixcbn0gZnJvbSAnLi9hZHZhbmNlZC10YWJsZS5mb3JtYXR0ZXJzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQWR2YW5jZWRUYWJsZUZvcm1hdHRlcnMge1xuICBBY3Rpb25MaW5rRm9ybWF0dGVyPzogQWN0aW9uTGlua0Zvcm1hdHRlcjtcbiAgQnV0dG9uRm9ybWF0dGVyPzogQnV0dG9uRm9ybWF0dGVyO1xuICBEYXRlVGltZUZvcm1hdHRlcj86IERhdGVUaW1lRm9ybWF0dGVyO1xuICBMYW5ndWFnZUZvcm1hdHRlcj86IExhbmd1YWdlRm9ybWF0dGVyO1xuICBMaW5rRm9ybWF0dGVyPzogTGlua0Zvcm1hdHRlcjtcbiAgTmVzdGVkUHJvcGVydHlGb3JtYXR0ZXI/OiBOZXN0ZWRQcm9wZXJ0eUZvcm1hdHRlcjtcbiAgTmdDbGFzc0Zvcm1hdHRlcj86IE5nQ2xhc3NGb3JtYXR0ZXI7XG4gIFNlbGVjdFJvd0Zvcm1hdHRlcj86IFNlbGVjdFJvd0Zvcm1hdHRlcjtcbiAgVGVtcGxhdGVGb3JtYXR0ZXI/OiBUZW1wbGF0ZUZvcm1hdHRlcjtcbiAgVHJhbnNsYXRpb25Gb3JtYXR0ZXI/OiBUcmFuc2xhdGlvbkZvcm1hdHRlcjtcbiAgVHJ1ZUZhbHNlRm9ybWF0dGVyPzogVHJ1ZUZhbHNlRm9ybWF0dGVyO1xufVxuZXhwb3J0IGNvbnN0IEZPUk1BVFRFUlM6IElBZHZhbmNlZFRhYmxlRm9ybWF0dGVycyA9IHtcbiAgICAgIEFjdGlvbkxpbmtGb3JtYXR0ZXI6IG5ldyBBY3Rpb25MaW5rRm9ybWF0dGVyKCksXG4gICAgICBCdXR0b25Gb3JtYXR0ZXI6IG5ldyBCdXR0b25Gb3JtYXR0ZXIoKSxcbiAgICAgIERhdGVUaW1lRm9ybWF0dGVyOiBuZXcgRGF0ZVRpbWVGb3JtYXR0ZXIoKSxcbiAgICAgIExhbmd1YWdlRm9ybWF0dGVyOiBuZXcgTGFuZ3VhZ2VGb3JtYXR0ZXIoKSxcbiAgICAgIExpbmtGb3JtYXR0ZXI6IG5ldyBMaW5rRm9ybWF0dGVyKCksXG4gICAgICBOZXN0ZWRQcm9wZXJ0eUZvcm1hdHRlcjogbmV3IE5lc3RlZFByb3BlcnR5Rm9ybWF0dGVyKCksXG4gICAgICBOZ0NsYXNzRm9ybWF0dGVyOiBuZXcgTmdDbGFzc0Zvcm1hdHRlcigpLFxuICAgICAgU2VsZWN0Um93Rm9ybWF0dGVyOiBuZXcgU2VsZWN0Um93Rm9ybWF0dGVyKCksXG4gICAgICBUZW1wbGF0ZUZvcm1hdHRlcjogbmV3IFRlbXBsYXRlRm9ybWF0dGVyKCksXG4gICAgICBUcmFuc2xhdGlvbkZvcm1hdHRlcjogbmV3IFRyYW5zbGF0aW9uRm9ybWF0dGVyKCksXG4gICAgICBUcnVlRmFsc2VGb3JtYXR0ZXI6IG5ldyBUcnVlRmFsc2VGb3JtYXR0ZXIoKSxcbn07XG4iXX0=
@@ -4,10 +4,20 @@ import { TranslateService } from '@ngx-translate/core';
4
4
  import { DatePipe } from '@angular/common';
5
5
  import * as ISO6391 from 'iso-639-1/build';
6
6
  import { ActivatedRoute, Router } from '@angular/router';
7
- import { TemplatePipe } from '@universis/common';
7
+ import { Dropdown } from 'bootstrap';
8
8
  var AdvancedColumnFormatter = /** @class */ (function () {
9
9
  function AdvancedColumnFormatter() {
10
10
  }
11
+ AdvancedColumnFormatter.template = function (expr) {
12
+ var result = AdvancedColumnFormatter.templateCache.get(expr);
13
+ if (typeof result === 'function') {
14
+ return result;
15
+ }
16
+ result = template(expr);
17
+ AdvancedColumnFormatter.templateCache.set(expr, result);
18
+ return result;
19
+ };
20
+ AdvancedColumnFormatter.templateCache = new Map();
11
21
  return AdvancedColumnFormatter;
12
22
  }());
13
23
  export { AdvancedColumnFormatter };
@@ -41,7 +51,7 @@ var ButtonFormatter = /** @class */ (function (_super) {
41
51
  var column = meta.settings.aoColumns[meta.col];
42
52
  // get format options
43
53
  var formatOptions = Object.assign({
44
- buttonClass: 'btn btn-default'
54
+ buttonClass: 'btn btn-default',
45
55
  }, this.formatOptions);
46
56
  // get text content
47
57
  var buttonText;
@@ -60,7 +70,7 @@ var ButtonFormatter = /** @class */ (function (_super) {
60
70
  var router = this.injector.get(Router);
61
71
  var commands = this.formatOptions.commands.map(function (command) {
62
72
  if (typeof command === 'string') {
63
- return new TemplatePipe().transform(command, row);
73
+ return AdvancedColumnFormatter.template(command)(row);
64
74
  }
65
75
  if (command.outlets) {
66
76
  var commandOutlets_1 = {};
@@ -73,8 +83,8 @@ var ButtonFormatter = /** @class */ (function (_super) {
73
83
  configurable: true,
74
84
  writable: true,
75
85
  value: outlet.map(function (x) {
76
- return new TemplatePipe().transform(x, row);
77
- })
86
+ return AdvancedColumnFormatter.template(x)(row);
87
+ }),
78
88
  });
79
89
  }
80
90
  else {
@@ -82,13 +92,13 @@ var ButtonFormatter = /** @class */ (function (_super) {
82
92
  enumerable: true,
83
93
  configurable: true,
84
94
  writable: true,
85
- value: outlet
95
+ value: outlet,
86
96
  });
87
97
  }
88
98
  }
89
99
  });
90
100
  return {
91
- outlets: commandOutlets_1
101
+ outlets: commandOutlets_1,
92
102
  };
93
103
  }
94
104
  return command;
@@ -97,7 +107,7 @@ var ButtonFormatter = /** @class */ (function (_super) {
97
107
  var replaceUrl = true;
98
108
  if (this.formatOptions.navigationExtras && this.formatOptions.navigationExtras.queryParams) {
99
109
  Object.keys(this.formatOptions.navigationExtras.queryParams).map(function (key) {
100
- queryParams_1[key] = new TemplatePipe().transform(_this.formatOptions.navigationExtras.queryParams[key], row);
110
+ queryParams_1[key] = AdvancedColumnFormatter.template(_this.formatOptions.navigationExtras.queryParams[key])(row);
101
111
  });
102
112
  }
103
113
  if (this.formatOptions.navigationExtras && typeof this.formatOptions.navigationExtras.replaceUrl !== 'undefined') {
@@ -116,7 +126,7 @@ var ButtonFormatter = /** @class */ (function (_super) {
116
126
  return "<a class=\"" + formatOptions.buttonClass + "\" title=\"" + buttonTitle + "\" href=\"#" + routerLink + "\">" + buttonText + "</a>";
117
127
  }
118
128
  // and return button
119
- var href = new TemplatePipe().transform(this.formatString, row);
129
+ var href = AdvancedColumnFormatter.template(this.formatString)(row);
120
130
  return "<a class=\"" + formatOptions.buttonClass + "\" title=\"" + buttonTitle + "\" href=\"" + href + "\">" + buttonText + "</a>";
121
131
  };
122
132
  return ButtonFormatter;
@@ -131,17 +141,7 @@ var LinkFormatter = /** @class */ (function (_super) {
131
141
  // get column
132
142
  var column = meta.settings.aoColumns[meta.col];
133
143
  if (column && column.data) {
134
- var templateFunc = void 0;
135
- if (Object.prototype.hasOwnProperty.call(column, 'linkTemplate')) {
136
- templateFunc = column.linkTemplate;
137
- }
138
- else {
139
- templateFunc = template(this.formatString);
140
- Object.assign(column, {
141
- linkTemplate: templateFunc,
142
- });
143
- }
144
- return "<a href=\"" + (templateFunc(row)) + "\">" + data + "</a>";
144
+ return "<a href=\"" + (AdvancedColumnFormatter.template(this.formatString)(row)) + "\">" + data + "</a>";
145
145
  }
146
146
  return data;
147
147
  };
@@ -155,32 +155,44 @@ var ActionLinkFormatter = /** @class */ (function (_super) {
155
155
  }
156
156
  ActionLinkFormatter.prototype.render = function (data, type, row, meta) {
157
157
  var _this = this;
158
+ var e_1, _a;
158
159
  // get column
159
160
  var column = meta.settings.aoColumns[meta.col];
160
161
  if (column && column.data) {
161
- this.actions = this.actions || [];
162
- var allowedActions = this.actions.filter(function (x) {
163
- if (x.access && x.access.length > 0) {
164
- var access = x.access;
165
- access = access.filter(function (y) {
166
- if (y.studentStatuses) {
167
- return y.studentStatuses.find(function (z) { return z.alternateName === row.studentStatus; });
168
- }
162
+ var actions = this.actions || [];
163
+ var index = 1;
164
+ try {
165
+ for (var actions_1 = tslib_1.__values(actions), actions_1_1 = actions_1.next(); !actions_1_1.done; actions_1_1 = actions_1.next()) {
166
+ var action = actions_1_1.value;
167
+ Object.assign(action, {
168
+ name: action.name || "action" + index,
169
169
  });
170
- if (access && access.length > 0) {
171
- return x;
172
- }
170
+ index += 1;
173
171
  }
174
- else {
175
- return x;
172
+ }
173
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
174
+ finally {
175
+ try {
176
+ if (actions_1_1 && !actions_1_1.done && (_a = actions_1.return)) _a.call(actions_1);
176
177
  }
177
- });
178
+ finally { if (e_1) throw e_1.error; }
179
+ }
178
180
  // return the dropdown menu with 3 dots
179
- return new TemplatePipe().transform("<div class='dropdown details-control' data-id='" + data + "' data-type='student' >\n <a id=\"dropdownMenuButton-" + data + "\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <span class=\"fa-2x text-dots\"></span></a>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenuButton-" + data + "\">\n " + allowedActions.map(function (x) { return "<a data-name='" + x.name + "' class=\"dropdown-item\" href=\"" + x.href + "\">\n " + _this.injector.get(TranslateService).instant(new TemplatePipe().transform(x.title, ({ value: data }))) + "\n </a>"; })
180
- .join('') + "\n </div>\n </div>", row);
181
+ return "<div class='dropdown details-control' data-id='" + data + "' data-type='student' >\n <a id=\"dropdownMenuButton-" + data + "\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n <span class=\"fa-2x text-dots\"></span></a>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenuButton-" + data + "\">\n " + actions.map(function (x) {
182
+ if (x.type === 'divider') {
183
+ return "<div class=\"dropdown-divider\"></div>";
184
+ }
185
+ return "<a data-name='" + x.name + "' class=\"dropdown-item\" href=\"" + AdvancedColumnFormatter.template(x.href)(row) + "\">\n " + _this.injector.get(TranslateService).instant(x.title) + "\n </a>";
186
+ })
187
+ .join('') + "\n </div>\n </div>";
181
188
  }
182
189
  return data;
183
190
  };
191
+ ActionLinkFormatter.prototype.afterRender = function (cell, cellData, rowData, rowIndex, colIndex) {
192
+ // assign bootstrap dropdown
193
+ // tslint:disable-next-line: no-unused-expression
194
+ new Dropdown(cell);
195
+ };
184
196
  return ActionLinkFormatter;
185
197
  }(AdvancedColumnFormatter));
186
198
  export { ActionLinkFormatter };
@@ -194,7 +206,7 @@ var SelectRowFormatter = /** @class */ (function (_super) {
194
206
  var column = meta.settings.aoColumns[meta.col];
195
207
  if (column && column.data) {
196
208
  var _tpl = "<input class=\"checkbox checkbox-theme\" type=\"checkbox\"\n id=\"s-" + meta.row + "\" /><label for=\"s-" + meta.row + "\">&nbsp;</label>";
197
- return new TemplatePipe().transform(_tpl, row);
209
+ return AdvancedColumnFormatter.template(_tpl)(row);
198
210
  }
199
211
  return data;
200
212
  };
@@ -210,16 +222,7 @@ var TemplateFormatter = /** @class */ (function (_super) {
210
222
  // get column
211
223
  var column = meta.settings.aoColumns[meta.col];
212
224
  if (column && column.data) {
213
- var templateFunc = void 0;
214
- if (Object.prototype.hasOwnProperty.call(column, 'templateTemplate')) {
215
- templateFunc = column.templateTemplate;
216
- return templateFunc(row);
217
- }
218
- templateFunc = template(this.formatString);
219
- Object.assign(column, {
220
- templateTemplate: templateFunc,
221
- });
222
- return templateFunc(row);
225
+ return AdvancedColumnFormatter.template(this.formatString)(row);
223
226
  }
224
227
  return data;
225
228
  };
@@ -247,7 +250,9 @@ var TranslationFormatter = /** @class */ (function (_super) {
247
250
  // get column
248
251
  var column = meta.settings.aoColumns[meta.col];
249
252
  if (column && data != null) {
250
- return this.injector.get(TranslateService).instant(new TemplatePipe().transform(this.formatString, { value: data }));
253
+ return this.injector.get(TranslateService).instant(AdvancedColumnFormatter.template(this.formatString)({
254
+ value: data,
255
+ }));
251
256
  }
252
257
  return this.injector.get(TranslateService).instant('Unknown');
253
258
  };
@@ -280,7 +285,7 @@ var NgClassFormatter = /** @class */ (function (_super) {
280
285
  return _super.call(this) || this;
281
286
  }
282
287
  NgClassFormatter.prototype.render = function (data, type, row, meta) {
283
- var e_1, _a;
288
+ var e_2, _a;
284
289
  // get column
285
290
  var column = meta.settings.aoColumns[meta.col];
286
291
  if (column && column.data) {
@@ -289,21 +294,10 @@ var NgClassFormatter = /** @class */ (function (_super) {
289
294
  var ngClass = this.formatOptions.ngClass;
290
295
  // check condition for each key
291
296
  column.ngClassTemplates = column.ngClassTemplates || {};
292
- var templateFunc = void 0;
293
297
  try {
294
298
  for (var _b = tslib_1.__values(Object.keys(ngClass)), _c = _b.next(); !_c.done; _c = _b.next()) {
295
299
  var key = _c.value;
296
- templateFunc = column.ngClassTemplates[key];
297
- if (typeof templateFunc !== 'function') {
298
- templateFunc = template(ngClass[key]);
299
- Object.defineProperty(column.ngClassTemplates, key, {
300
- configurable: true,
301
- enumerable: true,
302
- writable: true,
303
- value: templateFunc,
304
- });
305
- }
306
- var result = templateFunc(row);
300
+ var result = AdvancedColumnFormatter.template(ngClass[key])(row);
307
301
  var fn = new Function("return " + result + ";");
308
302
  // if condition returns true add class
309
303
  if (fn() === true) {
@@ -311,12 +305,12 @@ var NgClassFormatter = /** @class */ (function (_super) {
311
305
  }
312
306
  }
313
307
  }
314
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
308
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
315
309
  finally {
316
310
  try {
317
311
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
318
312
  }
319
- finally { if (e_1) throw e_1.error; }
313
+ finally { if (e_2) throw e_2.error; }
320
314
  }
321
315
  }
322
316
  return data;
@@ -341,4 +335,4 @@ var LanguageFormatter = /** @class */ (function (_super) {
341
335
  }(AdvancedColumnFormatter));
342
336
  export { LanguageFormatter };
343
337
 
344
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUuZm9ybWF0dGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmZvcm1hdHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBR3BDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEtBQUssT0FBTyxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRS9DO0lBQUE7SUFpQkEsQ0FBQztJQUFELDhCQUFDO0FBQUQsQ0FBQyxBQWpCRCxJQWlCQzs7QUFHRDtJQUE2QyxtREFBdUI7SUFTaEU7ZUFDSSxpQkFBTztJQUNYLENBQUM7SUFWRCx3Q0FBTSxHQUFOLFVBQU8sSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSTtRQUN4QixhQUFhO1FBQ2IsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDdkIsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUlMLDhCQUFDO0FBQUQsQ0FBQyxBQVpE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QUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUlILHVCQUFDO0FBQUQsQ0FBQyxBQXJDRCxDQUFzQyx1QkFBdUIsR0FxQzVEOztBQUNEO0lBQXVDLDZDQUF1QjtJQU81RDtlQUNFLGlCQUFPO0lBQ1QsQ0FBQztJQVJELGtDQUFNLEdBQU4sVUFBTyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJO1FBQzFCLElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBSUgsd0JBQUM7QUFBRCxDQUFDLEFBVkQsQ0FBdUMsdUJBQXVCLEdBVTdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0ZW1wbGF0ZSwgYXR9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1RhYmxlQ29sdW1uQ29uZmlndXJhdGlvbn0gZnJvbSAnLi9hZHZhbmNlZC10YWJsZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7SW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBJU082MzkxIGZyb20gJ2lzby02MzktMS9idWlsZCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VGVtcGxhdGVQaXBlfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciBpbXBsZW1lbnRzIFRhYmxlQ29sdW1uQ29uZmlndXJhdGlvbiB7XG5cbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yO1xuICAgIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgZGVmYXVsdENvbnRlbnQ6IHN0cmluZztcbiAgICBwdWJsaWMgZm9ybWF0U3RyaW5nOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1hdHRlcjogc3RyaW5nO1xuICAgIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgb3JkZXI6IHN0cmluZztcbiAgICBwdWJsaWMgcHJvcGVydHk6IHN0cmluZztcbiAgICBwdWJsaWMgc29ydGFibGU6IGJvb2xlYW47XG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1hdE9wdGlvbnM/OiBhbnk7XG4gICAgcHVibGljIGFjdGlvbnM/OiBBcnJheTxhbnk+O1xuXG4gICAgYWJzdHJhY3QgcmVuZGVyKGRhdGE6IGFueSwgdHlwZTogc3RyaW5nLCByb3c6IGFueSwgbWV0YTogYW55KTtcbn1cblxuXG5leHBvcnQgY2xhc3MgTmVzdGVkUHJvcGVydHlGb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gICAgcmVuZGVyKGRhdGEsIHR5cGUsIHJvdywgbWV0YSkge1xuICAgICAgICAvLyBnZXQgY29sdW1uXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcbiAgICAgICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIGF0KHJvdywgY29sdW1uLmRhdGEucmVwbGFjZSgvXFwvL2csICcuJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCdXR0b25Gb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gIHJlbmRlcihkYXRhLCB0eXBlLCByb3csIG1ldGEpIHtcbiAgICBpZiAoZGF0YSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgLy8gZ2V0IGZvcm1hdCBvcHRpb25zXG4gICAgY29uc3QgZm9ybWF0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgYnV0dG9uQ2xhc3M6ICdidG4gYnRuLWRlZmF1bHQnXG4gICAgfSwgdGhpcy5mb3JtYXRPcHRpb25zKTtcbiAgICAvLyBnZXQgdGV4dCBjb250ZW50XG4gICAgbGV0IGJ1dHRvblRleHQ6IHN0cmluZztcbiAgICBsZXQgYnV0dG9uVGl0bGUgPSAnJztcbiAgICBpZiAoZm9ybWF0T3B0aW9ucy5idXR0b25UZXh0KSB7XG4gICAgICBidXR0b25UZXh0ID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudChmb3JtYXRPcHRpb25zLmJ1dHRvblRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidXR0b25UZXh0ID0gZm9ybWF0T3B0aW9ucy5idXR0b25Db250ZW50O1xuICAgIH1cbiAgICBpZiAoZm9ybWF0T3B0aW9ucy5idXR0b25UaXRsZSkge1xuICAgICAgYnV0dG9uVGl0bGUgPSB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KGZvcm1hdE9wdGlvbnMuYnV0dG9uVGl0bGUpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmZvcm1hdE9wdGlvbnMuY29tbWFuZHMpKSB7XG4gICAgICBjb25zdCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSB0aGlzLmluamVjdG9yLmdldChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgICBjb25zdCByb3V0ZXI6IFJvdXRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG4gICAgICBjb25zdCBjb21tYW5kcyA9IHRoaXMuZm9ybWF0T3B0aW9ucy5jb21tYW5kcy5tYXAoIGNvbW1hbmQgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgY29tbWFuZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUZW1wbGF0ZVBpcGUoKS50cmFuc2Zvcm0oY29tbWFuZCwgcm93KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNvbW1hbmQub3V0bGV0cykge1xuICAgICAgICAgICAgICBjb25zdCBjb21tYW5kT3V0bGV0cyA9IHt9O1xuICAgICAgICAgICAgICBPYmplY3Qua2V5cyhjb21tYW5kLm91dGxldHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjb21tYW5kLm91dGxldHMsIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvdXRsZXQgPSBjb21tYW5kLm91dGxldHNba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvdXRsZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb21tYW5kT3V0bGV0cywga2V5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb3V0bGV0Lm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgVGVtcGxhdGVQaXBlKCkudHJhbnNmb3JtKHgsIHJvdyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29tbWFuZE91dGxldHMsIGtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG91dGxldFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgb3V0bGV0czogY29tbWFuZE91dGxldHNcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGNvbW1hbmQ7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgICBsZXQgcmVwbGFjZVVybCA9IHRydWU7XG4gICAgICBpZiAodGhpcy5mb3JtYXRPcHRpb25zLm5hdmlnYXRpb25FeHRyYXMgJiYgdGhpcy5mb3JtYXRPcHRpb25zLm5hdmlnYXRpb25FeHRyYXMucXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm1hdE9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcy5xdWVyeVBhcmFtcykubWFwKCBrZXkgPT4ge1xuICAgICAgICAgICAgcXVlcnlQYXJhbXNba2V5XSA9IG5ldyBUZW1wbGF0ZVBpcGUoKS50cmFuc2Zvcm0odGhpcy5mb3JtYXRPcHRpb25zLm5hdmlnYXRpb25FeHRyYXMucXVlcnlQYXJhbXNba2V5XSwgcm93KTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZvcm1hdE9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcyAmJiB0eXBlb2YgdGhpcy5mb3JtYXRPcHRpb25zLm5hdmlnYXRpb25FeHRyYXMucmVwbGFjZVVybCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmVwbGFjZVVybCA9IHRoaXMuZm9ybWF0T3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzLnJlcGxhY2VVcmw7XG4gICAgICB9XG4gICAgICBsZXQgc2tpcExvY2F0aW9uQ2hhbmdlID0gZmFsc2U7XG4gICAgICBpZiAodGhpcy5mb3JtYXRPcHRpb25zLm5hdmlnYXRpb25FeHRyYXMgJiYgdHlwZW9mIHRoaXMuZm9ybWF0T3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHNraXBMb2NhdGlvbkNoYW5nZSA9IHRoaXMuZm9ybWF0T3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZTtcbiAgICAgICAgfVxuICAgICAgY29uc3Qgcm91dGVyTGluayA9IHJvdXRlci5jcmVhdGVVcmxUcmVlKGNvbW1hbmRzLCB7XG4gICAgICAgICAgcmVsYXRpdmVUbzogYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgcmVwbGFjZVVybCxcbiAgICAgICAgICBza2lwTG9jYXRpb25DaGFuZ2UsXG4gICAgICB9KS50b1N0cmluZygpO1xuICAgICAgcmV0dXJuIGA8YSBjbGFzcz1cIiR7Zm9ybWF0T3B0aW9ucy5idXR0b25DbGFzc31cIiB0aXRsZT1cIiR7YnV0dG9uVGl0bGV9XCIgaHJlZj1cIiMke3JvdXRlckxpbmt9XCI+JHtidXR0b25UZXh0fTwvYT5gO1xuICAgIH1cbiAgICAvLyBhbmQgcmV0dXJuIGJ1dHRvblxuICAgIGNvbnN0IGhyZWYgPSBuZXcgVGVtcGxhdGVQaXBlKCkudHJhbnNmb3JtKHRoaXMuZm9ybWF0U3RyaW5nLCByb3cpO1xuICAgIHJldHVybiBgPGEgY2xhc3M9XCIke2Zvcm1hdE9wdGlvbnMuYnV0dG9uQ2xhc3N9XCIgdGl0bGU9XCIke2J1dHRvblRpdGxlfVwiIGhyZWY9XCIke2hyZWZ9XCI+JHtidXR0b25UZXh0fTwvYT5gO1xuICB9XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmtGb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgbGV0IHRlbXBsYXRlRnVuYzogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjb2x1bW4sICdsaW5rVGVtcGxhdGUnKSkge1xuICAgICAgICB0ZW1wbGF0ZUZ1bmMgPSBjb2x1bW4ubGlua1RlbXBsYXRlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGVtcGxhdGVGdW5jID0gdGVtcGxhdGUodGhpcy5mb3JtYXRTdHJpbmcpO1xuICAgICAgICBPYmplY3QuYXNzaWduKGNvbHVtbiwge1xuICAgICAgICAgIGxpbmtUZW1wbGF0ZTogdGVtcGxhdGVGdW5jLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBgPGEgaHJlZj1cIiR7KHRlbXBsYXRlRnVuYyhyb3cpKX1cIj4ke2RhdGF9PC9hPmA7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkxpbmtGb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gIHJlbmRlcihkYXRhLCB0eXBlLCByb3csIG1ldGEpIHtcbiAgICAvLyBnZXQgY29sdW1uXG4gICAgY29uc3QgY29sdW1uID0gbWV0YS5zZXR0aW5ncy5hb0NvbHVtbnNbbWV0YS5jb2xdO1xuXG4gICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgdGhpcy5hY3Rpb25zID0gdGhpcy5hY3Rpb25zIHx8IFtdO1xuXG4gICAgICBjb25zdCBhbGxvd2VkQWN0aW9uczogYW55ID0gdGhpcy5hY3Rpb25zLmZpbHRlcih4ID0+IHtcbiAgICAgICAgaWYgKHguYWNjZXNzICYmIHguYWNjZXNzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBsZXQgYWNjZXNzID0geC5hY2Nlc3M7XG4gICAgICAgICAgYWNjZXNzID0gYWNjZXNzLmZpbHRlcih5ID0+IHtcbiAgICAgICAgICAgIGlmICh5LnN0dWRlbnRTdGF0dXNlcykge1xuICAgICAgICAgICAgICByZXR1cm4geS5zdHVkZW50U3RhdHVzZXMuZmluZCggeiA9PiB6LmFsdGVybmF0ZU5hbWUgPT09IHJvdy5zdHVkZW50U3RhdHVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoYWNjZXNzICYmIGFjY2Vzcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4geDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyByZXR1cm4gdGhlIGRyb3Bkb3duIG1lbnUgd2l0aCAzIGRvdHNcbiAgICAgIHJldHVybiBuZXcgVGVtcGxhdGVQaXBlKCkudHJhbnNmb3JtKGA8ZGl2IGNsYXNzPSdkcm9wZG93biBkZXRhaWxzLWNvbnRyb2wnIGRhdGEtaWQ9JyR7ZGF0YX0nIGRhdGEtdHlwZT0nc3R1ZGVudCcgPlxuICAgICAgICAgICAgICAgICAgPGEgaWQ9XCJkcm9wZG93bk1lbnVCdXR0b24tJHtkYXRhfVwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhLTJ4IHRleHQtZG90c1wiPjwvc3Bhbj48L2E+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25NZW51QnV0dG9uLSR7ZGF0YX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICR7YWxsb3dlZEFjdGlvbnMubWFwKHggPT4gYDxhIGRhdGEtbmFtZT0nJHt4Lm5hbWV9JyBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBocmVmPVwiJHt4LmhyZWZ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KG5ldyBUZW1wbGF0ZVBpcGUoKS50cmFuc2Zvcm0oeC50aXRsZSwgKHt2YWx1ZTogZGF0YX0pKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+YClcbiAgICAgICAgICAuam9pbignJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PmAsIHJvdyk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0Um93Rm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICAgIHJlbmRlcihkYXRhLCB0eXBlLCByb3csIG1ldGEpIHtcbiAgICAgICAgLy8gZ2V0IGNvbHVtblxuICAgICAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgICAgIGlmIChjb2x1bW4gJiYgY29sdW1uLmRhdGEpIHtcbiAgICAgICAgICBsZXQgX3RwbCA9IGA8aW5wdXQgY2xhc3M9XCJjaGVja2JveCBjaGVja2JveC10aGVtZVwiIHR5cGU9XCJjaGVja2JveFwiXG4gaWQ9XCJzLSR7bWV0YS5yb3d9XCIgLz48bGFiZWwgZm9yPVwicy0ke21ldGEucm93fVwiPiZuYnNwOzwvbGFiZWw+YDtcbiAgICAgICAgICByZXR1cm4gIG5ldyBUZW1wbGF0ZVBpcGUoKS50cmFuc2Zvcm0oX3RwbCwgcm93KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVGb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gICAgcHVibGljIHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueSB7XG4gICAgICAgIC8vIGdldCBjb2x1bW5cbiAgICAgICAgY29uc3QgY29sdW1uID0gbWV0YS5zZXR0aW5ncy5hb0NvbHVtbnNbbWV0YS5jb2xdO1xuICAgICAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICAgICAgbGV0IHRlbXBsYXRlRnVuYzogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29sdW1uLCAndGVtcGxhdGVUZW1wbGF0ZScpKSB7XG4gICAgICAgICAgICB0ZW1wbGF0ZUZ1bmMgPSBjb2x1bW4udGVtcGxhdGVUZW1wbGF0ZTtcbiAgICAgICAgICAgIHJldHVybiB0ZW1wbGF0ZUZ1bmMocm93KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGVtcGxhdGVGdW5jID0gdGVtcGxhdGUodGhpcy5mb3JtYXRTdHJpbmcpO1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oY29sdW1uLCB7XG4gICAgICAgICAgICB0ZW1wbGF0ZVRlbXBsYXRlOiB0ZW1wbGF0ZUZ1bmMsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHRlbXBsYXRlRnVuYyhyb3cpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcnVlRmFsc2VGb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG5cbiAgICByZW5kZXIoZGF0YSwgdHlwZSwgcm93LCBtZXRhKSB7XG4gICAgICAgIHJldHVybiBkYXRhID8gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudCgnVHJ1ZUZhbHNlLmxvbmcuWWVzJykgOlxuICAgICAgICAgICAgdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudCgnVHJ1ZUZhbHNlLmxvbmcuTm8nKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbkZvcm1hdHRlciBleHRlbmRzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyIHtcbiAgcHVibGljIHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueSB7XG4gICAgLy8gZ2V0IGNvbHVtblxuICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcbiAgICBpZiAoY29sdW1uICYmIGRhdGEgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQobmV3IFRlbXBsYXRlUGlwZSgpLnRyYW5zZm9ybSh0aGlzLmZvcm1hdFN0cmluZywge3ZhbHVlOiBkYXRhfSkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudCgnVW5rbm93bicpO1xuICB9XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVGb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gIHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueSB7XG4gICAgLy8gZ2V0IGNvbHVtblxuICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICBjb25zdCBkYXRlUGlwZTogRGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUodGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuY3VycmVudExhbmcpO1xuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyAmJiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9XFwrXFxkezJ9JC8udGVzdChkYXRhKSkge1xuICAgICAgICByZXR1cm4gZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKGRhdGEgKyAnOjAwJyksIHRoaXMuZm9ybWF0U3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRlUGlwZS50cmFuc2Zvcm0oZGF0YSwgdGhpcy5mb3JtYXRTdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOZ0NsYXNzRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICByZW5kZXIoZGF0YSwgdHlwZSwgcm93LCBtZXRhKSB7XG4gICAgLy8gZ2V0IGNvbHVtblxuICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICAvLyBnZXQgZm9ybWF0T3B0aW9uc1xuICAgICAgaWYgKHRoaXMuZm9ybWF0T3B0aW9ucykge1xuICAgICAgICBjb25zdCBuZ0NsYXNzID0gdGhpcy5mb3JtYXRPcHRpb25zLm5nQ2xhc3M7XG4gICAgICAgIC8vIGNoZWNrIGNvbmRpdGlvbiBmb3IgZWFjaCBrZXlcbiAgICAgICAgY29sdW1uLm5nQ2xhc3NUZW1wbGF0ZXMgPSBjb2x1bW4ubmdDbGFzc1RlbXBsYXRlcyB8fCB7fTtcbiAgICAgICAgbGV0IHRlbXBsYXRlRnVuYzogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhuZ0NsYXNzKSkge1xuICAgICAgICAgIHRlbXBsYXRlRnVuYyA9IGNvbHVtbi5uZ0NsYXNzVGVtcGxhdGVzW2tleV07XG4gICAgICAgICAgaWYgKHR5cGVvZiB0ZW1wbGF0ZUZ1bmMgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRlbXBsYXRlRnVuYyA9IHRlbXBsYXRlKG5nQ2xhc3Nba2V5XSk7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29sdW1uLm5nQ2xhc3NUZW1wbGF0ZXMsIGtleSwge1xuICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICB2YWx1ZTogdGVtcGxhdGVGdW5jLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRlbXBsYXRlRnVuYyhyb3cpO1xuICAgICAgICAgIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKGByZXR1cm4gJHtyZXN1bHR9O2ApO1xuICAgICAgICAgIC8vIGlmIGNvbmRpdGlvbiByZXR1cm5zIHRydWUgYWRkIGNsYXNzXG4gICAgICAgICAgaWYgKGZuKCkgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCIke2tleX1cIj4ke2RhdGF9PC9zcGFuPmA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIExhbmd1YWdlRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICByZW5kZXIoZGF0YSwgdHlwZSwgcm93LCBtZXRhKSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHJldHVybiBJU082MzkxLmdldE5hdGl2ZU5hbWUoZGF0YSk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cblxuIl19
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUuZm9ybWF0dGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmZvcm1hdHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBR3BDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEtBQUssT0FBTyxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQztJQUFBO0lBNkJBLENBQUM7SUFYaUIsZ0NBQVEsR0FBdEIsVUFBdUIsSUFBWTtRQUNqQyxJQUFJLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQ2hDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUF4QmEscUNBQWEsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztJQTJCM0UsOEJBQUM7Q0FBQSxBQTdCRCxJQTZCQztTQTdCcUIsdUJBQXVCO0FBbUM3QztJQUE2QyxtREFBdUI7SUFTaEU7ZUFDSSxpQkFBTztJQUNY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QUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDbkUsSUFBTSxFQUFFLEdBQUcsSUFBSSxRQUFRLENBQUMsWUFBVSxNQUFNLE1BQUcsQ0FBQyxDQUFDO3dCQUM3QyxzQ0FBc0M7d0JBQ3RDLElBQUksRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFOzRCQUNqQixPQUFPLG1CQUFnQixHQUFHLFdBQUssSUFBSSxZQUFTLENBQUM7eUJBQzlDO3FCQUNGOzs7Ozs7Ozs7YUFDRjtZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFJSCx1QkFBQztBQUFELENBQUMsQUExQkQsQ0FBc0MsdUJBQXVCLEdBMEI1RDs7QUFDRDtJQUF1Qyw2Q0FBdUI7SUFPNUQ7ZUFDRSxpQkFBTztJQUNULENBQUM7SUFSTSxrQ0FBTSxHQUFiLFVBQWMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSTtRQUNqQyxJQUFJLElBQUksRUFBRTtZQUNSLE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNwQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUlILHdCQUFDO0FBQUQsQ0FBQyxBQVZELENBQXVDLHVCQUF1QixHQVU3RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dGVtcGxhdGUsIGF0fSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtUYWJsZUNvbHVtbkNvbmZpZ3VyYXRpb259IGZyb20gJy4vYWR2YW5jZWQtdGFibGUuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0luamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICogYXMgSVNPNjM5MSBmcm9tICdpc28tNjM5LTEvYnVpbGQnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBEcm9wZG93biB9IGZyb20gJ2Jvb3RzdHJhcCc7XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIgaW1wbGVtZW50cyBUYWJsZUNvbHVtbkNvbmZpZ3VyYXRpb24ge1xuXG4gICAgcHVibGljIHN0YXRpYyB0ZW1wbGF0ZUNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIChkYXRhOiBhbnkpID0+IHN0cmluZz4oKTtcblxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3I7XG4gICAgcHVibGljIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBkZWZhdWx0Q29udGVudDogc3RyaW5nO1xuICAgIHB1YmxpYyBmb3JtYXRTdHJpbmc6IHN0cmluZztcbiAgICBwdWJsaWMgZm9ybWF0dGVyOiBzdHJpbmc7XG4gICAgcHVibGljIGhpZGRlbjogYm9vbGVhbjtcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBvcmRlcjogc3RyaW5nO1xuICAgIHB1YmxpYyBwcm9wZXJ0eTogc3RyaW5nO1xuICAgIHB1YmxpYyBzb3J0YWJsZTogYm9vbGVhbjtcbiAgICBwdWJsaWMgdGl0bGU6IHN0cmluZztcbiAgICBwdWJsaWMgZm9ybWF0T3B0aW9ucz86IGFueTtcbiAgICBwdWJsaWMgYWN0aW9ucz86IEFycmF5PGFueT47XG5cbiAgICBwdWJsaWMgc3RhdGljIHRlbXBsYXRlKGV4cHI6IHN0cmluZyk6IChkYXRhOiBhbnkpID0+IHN0cmluZyB7XG4gICAgICBsZXQgcmVzdWx0ID0gQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGVDYWNoZS5nZXQoZXhwcik7XG4gICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmVzdWx0ID0gdGVtcGxhdGUoZXhwcik7XG4gICAgICBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZUNhY2hlLnNldChleHByLCByZXN1bHQpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVuZGVyKGRhdGE6IGFueSwgdHlwZTogc3RyaW5nLCByb3c6IGFueSwgbWV0YTogYW55KTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uQWR2YW5jZWRDb2x1bW5BZnRlclJlbmRlciB7XG4gIGFmdGVyUmVuZGVyKGNlbGw6IGFueSwgY2VsbERhdGE6IGFueSwgcm93RGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIE5lc3RlZFByb3BlcnR5Rm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICAgIHB1YmxpYyByZW5kZXIoZGF0YSwgdHlwZSwgcm93LCBtZXRhKSB7XG4gICAgICAgIC8vIGdldCBjb2x1bW5cbiAgICAgICAgY29uc3QgY29sdW1uID0gbWV0YS5zZXR0aW5ncy5hb0NvbHVtbnNbbWV0YS5jb2xdO1xuICAgICAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gYXQocm93LCBjb2x1bW4uZGF0YS5yZXBsYWNlKC9cXC8vZywgJy4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJ1dHRvbkZvcm1hdHRlciBleHRlbmRzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyIHtcbiAgcHVibGljIHJlbmRlcihkYXRhLCB0eXBlLCByb3csIG1ldGEpIHtcbiAgICBpZiAoZGF0YSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgLy8gZ2V0IGZvcm1hdCBvcHRpb25zXG4gICAgY29uc3QgZm9ybWF0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgYnV0dG9uQ2xhc3M6ICdidG4gYnRuLWRlZmF1bHQnLFxuICAgIH0sIHRoaXMuZm9ybWF0T3B0aW9ucyk7XG4gICAgLy8gZ2V0IHRleHQgY29udGVudFxuICAgIGxldCBidXR0b25UZXh0OiBzdHJpbmc7XG4gICAgbGV0IGJ1dHRvblRpdGxlID0gJyc7XG4gICAgaWYgKGZvcm1hdE9wdGlvbnMuYnV0dG9uVGV4dCkge1xuICAgICAgYnV0dG9uVGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoZm9ybWF0T3B0aW9ucy5idXR0b25UZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnV0dG9uVGV4dCA9IGZvcm1hdE9wdGlvbnMuYnV0dG9uQ29udGVudDtcbiAgICB9XG4gICAgaWYgKGZvcm1hdE9wdGlvbnMuYnV0dG9uVGl0bGUpIHtcbiAgICAgIGJ1dHRvblRpdGxlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudChmb3JtYXRPcHRpb25zLmJ1dHRvblRpdGxlKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5mb3JtYXRPcHRpb25zLmNvbW1hbmRzKSkge1xuICAgICAgY29uc3QgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlID0gdGhpcy5pbmplY3Rvci5nZXQoQWN0aXZhdGVkUm91dGUpO1xuICAgICAgY29uc3Qgcm91dGVyOiBSb3V0ZXIgPSB0aGlzLmluamVjdG9yLmdldChSb3V0ZXIpO1xuICAgICAgY29uc3QgY29tbWFuZHMgPSB0aGlzLmZvcm1hdE9wdGlvbnMuY29tbWFuZHMubWFwKCAoY29tbWFuZCkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgY29tbWFuZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKGNvbW1hbmQpKHJvdyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjb21tYW5kLm91dGxldHMpIHtcbiAgICAgICAgICAgICAgY29uc3QgY29tbWFuZE91dGxldHMgPSB7fTtcbiAgICAgICAgICAgICAgT2JqZWN0LmtleXMoY29tbWFuZC5vdXRsZXRzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29tbWFuZC5vdXRsZXRzLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3V0bGV0ID0gY29tbWFuZC5vdXRsZXRzW2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3V0bGV0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29tbWFuZE91dGxldHMsIGtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG91dGxldC5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUoeCkocm93KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29tbWFuZE91dGxldHMsIGtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG91dGxldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIG91dGxldHM6IGNvbW1hbmRPdXRsZXRzLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY29tbWFuZDtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICAgIGxldCByZXBsYWNlVXJsID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmZvcm1hdE9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcyAmJiB0aGlzLmZvcm1hdE9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcy5xdWVyeVBhcmFtcykge1xuICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybWF0T3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzLnF1ZXJ5UGFyYW1zKS5tYXAoIChrZXkpID0+IHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zW2tleV0gPSBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh0aGlzLmZvcm1hdE9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcy5xdWVyeVBhcmFtc1trZXldKShyb3cpO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZm9ybWF0T3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzICYmIHR5cGVvZiB0aGlzLmZvcm1hdE9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcy5yZXBsYWNlVXJsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXBsYWNlVXJsID0gdGhpcy5mb3JtYXRPcHRpb25zLm5hdmlnYXRpb25FeHRyYXMucmVwbGFjZVVybDtcbiAgICAgIH1cbiAgICAgIGxldCBza2lwTG9jYXRpb25DaGFuZ2UgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmZvcm1hdE9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcyAmJiB0eXBlb2YgdGhpcy5mb3JtYXRPcHRpb25zLm5hdmlnYXRpb25FeHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlID0gdGhpcy5mb3JtYXRPcHRpb25zLm5hdmlnYXRpb25FeHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlO1xuICAgICAgICB9XG4gICAgICBjb25zdCByb3V0ZXJMaW5rID0gcm91dGVyLmNyZWF0ZVVybFRyZWUoY29tbWFuZHMsIHtcbiAgICAgICAgICByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICBxdWVyeVBhcmFtcyxcbiAgICAgICAgICByZXBsYWNlVXJsLFxuICAgICAgICAgIHNraXBMb2NhdGlvbkNoYW5nZSxcbiAgICAgIH0pLnRvU3RyaW5nKCk7XG4gICAgICByZXR1cm4gYDxhIGNsYXNzPVwiJHtmb3JtYXRPcHRpb25zLmJ1dHRvbkNsYXNzfVwiIHRpdGxlPVwiJHtidXR0b25UaXRsZX1cIiBocmVmPVwiIyR7cm91dGVyTGlua31cIj4ke2J1dHRvblRleHR9PC9hPmA7XG4gICAgfVxuICAgIC8vIGFuZCByZXR1cm4gYnV0dG9uXG4gICAgY29uc3QgaHJlZiA9IEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKHRoaXMuZm9ybWF0U3RyaW5nKShyb3cpO1xuICAgIHJldHVybiBgPGEgY2xhc3M9XCIke2Zvcm1hdE9wdGlvbnMuYnV0dG9uQ2xhc3N9XCIgdGl0bGU9XCIke2J1dHRvblRpdGxlfVwiIGhyZWY9XCIke2hyZWZ9XCI+JHtidXR0b25UZXh0fTwvYT5gO1xuICB9XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmtGb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgcmV0dXJuIGA8YSBocmVmPVwiJHsoQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUodGhpcy5mb3JtYXRTdHJpbmcpKHJvdykpfVwiPiR7ZGF0YX08L2E+YDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uTGlua0Zvcm1hdHRlciBleHRlbmRzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyXG4gIGltcGxlbWVudHMgT25BZHZhbmNlZENvbHVtbkFmdGVyUmVuZGVyIHtcbiAgcHVibGljIHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueSB7XG4gICAgLy8gZ2V0IGNvbHVtblxuICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcblxuICAgIGlmIChjb2x1bW4gJiYgY29sdW1uLmRhdGEpIHtcbiAgICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmFjdGlvbnMgfHwgW107XG4gICAgICBsZXQgaW5kZXggPSAxO1xuICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgYWN0aW9ucykge1xuICAgICAgICBPYmplY3QuYXNzaWduKGFjdGlvbiwge1xuICAgICAgICAgIG5hbWU6IGFjdGlvbi5uYW1lIHx8IGBhY3Rpb24ke2luZGV4fWAsXG4gICAgICAgIH0pO1xuICAgICAgICBpbmRleCArPSAxO1xuICAgICAgfVxuICAgICAgLy8gcmV0dXJuIHRoZSBkcm9wZG93biBtZW51IHdpdGggMyBkb3RzXG4gICAgICByZXR1cm4gYDxkaXYgY2xhc3M9J2Ryb3Bkb3duIGRldGFpbHMtY29udHJvbCcgZGF0YS1pZD0nJHtkYXRhfScgZGF0YS10eXBlPSdzdHVkZW50JyA+XG4gICAgICAgICAgICAgICAgICA8YSBpZD1cImRyb3Bkb3duTWVudUJ1dHRvbi0ke2RhdGF9XCIgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEtMnggdGV4dC1kb3RzXCI+PC9zcGFuPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bk1lbnVCdXR0b24tJHtkYXRhfVwiPlxuICAgICAgICAgICAgICAgICAgICAgJHthY3Rpb25zLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC50eXBlID09PSAnZGl2aWRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCI+PC9kaXY+YDtcbiAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGRhdGEtbmFtZT0nJHt4Lm5hbWV9JyBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBocmVmPVwiJHtBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh4LmhyZWYpKHJvdyl9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudCh4LnRpdGxlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5gO1xuICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAuam9pbignJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBwdWJsaWMgYWZ0ZXJSZW5kZXIoY2VsbDogYW55LCBjZWxsRGF0YTogYW55LCByb3dEYXRhOiBhbnksIHJvd0luZGV4OiBudW1iZXIsIGNvbEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAvLyBhc3NpZ24gYm9vdHN0cmFwIGRyb3Bkb3duXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11bnVzZWQtZXhwcmVzc2lvblxuICAgIG5ldyBEcm9wZG93bihjZWxsKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0Um93Rm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICAgIHB1YmxpYyByZW5kZXIoZGF0YSwgdHlwZSwgcm93LCBtZXRhKSB7XG4gICAgICAgIC8vIGdldCBjb2x1bW5cbiAgICAgICAgY29uc3QgY29sdW1uID0gbWV0YS5zZXR0aW5ncy5hb0NvbHVtbnNbbWV0YS5jb2xdO1xuICAgICAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgX3RwbCA9IGA8aW5wdXQgY2xhc3M9XCJjaGVja2JveCBjaGVja2JveC10aGVtZVwiIHR5cGU9XCJjaGVja2JveFwiXG4gaWQ9XCJzLSR7bWV0YS5yb3d9XCIgLz48bGFiZWwgZm9yPVwicy0ke21ldGEucm93fVwiPiZuYnNwOzwvbGFiZWw+YDtcbiAgICAgICAgICByZXR1cm4gIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKF90cGwpKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICAgIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgICAgICAvLyBnZXQgY29sdW1uXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcbiAgICAgICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgICAgIHJldHVybiBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh0aGlzLmZvcm1hdFN0cmluZykocm93KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJ1ZUZhbHNlRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuXG4gICAgcHVibGljIHJlbmRlcihkYXRhLCB0eXBlLCByb3csIG1ldGEpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEgPyB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KCdUcnVlRmFsc2UubG9uZy5ZZXMnKSA6XG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KCdUcnVlRmFsc2UubG9uZy5ObycpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuZGVjbGFyZSBpbnRlcmZhY2UgVHJhbnNsYXRpb25Gb3JtYXR0ZXJUZW1wbGF0ZSB7XG4gIHRyYW5zbGF0ZVRlbXBsYXRlPzogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25Gb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW46IFRyYW5zbGF0aW9uRm9ybWF0dGVyVGVtcGxhdGUgPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgaWYgKGNvbHVtbiAmJiBkYXRhICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KFxuICAgICAgICBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh0aGlzLmZvcm1hdFN0cmluZykoe1xuICAgICAgICB2YWx1ZTogZGF0YSxcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoJ1Vua25vd24nKTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUZvcm1hdHRlciBleHRlbmRzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyIHtcbiAgcHVibGljIHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueSB7XG4gICAgLy8gZ2V0IGNvbHVtblxuICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICBjb25zdCBkYXRlUGlwZTogRGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUodGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuY3VycmVudExhbmcpO1xuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyAmJiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9XFwrXFxkezJ9JC8udGVzdChkYXRhKSkge1xuICAgICAgICByZXR1cm4gZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKGRhdGEgKyAnOjAwJyksIHRoaXMuZm9ybWF0U3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRlUGlwZS50cmFuc2Zvcm0oZGF0YSwgdGhpcy5mb3JtYXRTdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOZ0NsYXNzRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICBwdWJsaWMgcmVuZGVyKGRhdGEsIHR5cGUsIHJvdywgbWV0YSkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgLy8gZ2V0IGZvcm1hdE9wdGlvbnNcbiAgICAgIGlmICh0aGlzLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgbmdDbGFzcyA9IHRoaXMuZm9ybWF0T3B0aW9ucy5uZ0NsYXNzO1xuICAgICAgICAvLyBjaGVjayBjb25kaXRpb24gZm9yIGVhY2gga2V5XG4gICAgICAgIGNvbHVtbi5uZ0NsYXNzVGVtcGxhdGVzID0gY29sdW1uLm5nQ2xhc3NUZW1wbGF0ZXMgfHwge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG5nQ2xhc3MpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUobmdDbGFzc1trZXldKShyb3cpO1xuICAgICAgICAgIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKGByZXR1cm4gJHtyZXN1bHR9O2ApO1xuICAgICAgICAgIC8vIGlmIGNvbmRpdGlvbiByZXR1cm5zIHRydWUgYWRkIGNsYXNzXG4gICAgICAgICAgaWYgKGZuKCkgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCIke2tleX1cIj4ke2RhdGF9PC9zcGFuPmA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIExhbmd1YWdlRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICBwdWJsaWMgcmVuZGVyKGRhdGEsIHR5cGUsIHJvdywgbWV0YSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICByZXR1cm4gSVNPNjM5MS5nZXROYXRpdmVOYW1lKGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG4iXX0=
@@ -1,22 +1,33 @@
1
1
  /*
2
2
  * Public API Surface of tables
3
3
  */
4
+ export * from './lib/components/add-items/add-items.component';
5
+ export * from './lib/components/advanced-aggregator/advanced-aggregator.component';
6
+ export * from './lib/components/advanced-aggregator-list/advanced-aggregator-list.component';
4
7
  export * from './lib/components/advanced-list/advanced-list.component';
5
8
  export * from './lib/components/advanced-row-action/advanced-row-action.component';
6
9
  export * from './lib/components/advanced-search-form/advanced-search-form.component';
10
+ export * from './lib/components/advanced-select/advanced-select.component';
11
+ export * from './lib/components/advanced-select/advanced-select.service';
7
12
  export * from './lib/components/advanced-table/advanced-table-resolvers';
8
13
  export * from './lib/components/advanced-table/advanced-table.formatters';
9
14
  export * from './lib/components/advanced-table/advanced-table.component';
15
+ export * from './lib/components/advanced-table/advanced-table-settings.component';
16
+ export * from './lib/components/advanced-table/advanced-table-search-base';
10
17
  export * from './lib/components/advanced-table/advanced-table-search.component';
11
18
  export * from './lib/components/advanced-table/advanced-table.formatters.interface';
19
+ export * from './lib/components/advanced-table/advanced-filter-value-provider.service';
12
20
  export * from './lib/components/advanced-table-modal/advanced-table-modal-base.component';
13
- export * from './lib/components/advanced-select/advanced-select.component';
14
- export * from './lib/components/advanced-select/advanced-select.service';
15
- export * from './lib/tables.module';
16
- export * from './lib/tables.activated-table.service';
21
+ export * from './lib/components/table-simple-header/table-simple-header.component';
17
22
  export * from './lib/directives/advanced-table-editor.directive';
23
+ export * from './lib/directives/btnexp.directive';
18
24
  export * from './lib/components/advanced-aggregator/advanced-aggregator.component';
19
25
  export * from './lib/components/advanced-aggregator-list/advanced-aggregator-list.component';
20
26
  export * from './lib/components/add-items/add-items.component';
27
+ export * from './lib/pipes/advanced-aggregator.pipe';
28
+ export * from './lib/pipes/advansed-aggregator-list-title-parse.pipe';
29
+ export * from './lib/services/advanced-aggregator/advanced-aggregator.service';
30
+ export * from './lib/tables.module';
31
+ export * from './lib/tables.activated-table.service';
21
32
 
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxzRUFBc0UsQ0FBQztBQUVyRixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDhFQUE4RSxDQUFBO0FBQzVGLGNBQWMsZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRhYmxlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLWxpc3QvYWR2YW5jZWQtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1yb3ctYWN0aW9uL2FkdmFuY2VkLXJvdy1hY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtc2VhcmNoLWZvcm0vYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLXJlc29sdmVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmZvcm1hdHRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS1zZWFyY2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuZm9ybWF0dGVycy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS1tb2RhbC9hZHZhbmNlZC10YWJsZS1tb2RhbC1iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLXNlbGVjdC9hZHZhbmNlZC1zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtc2VsZWN0L2FkdmFuY2VkLXNlbGVjdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYmxlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFibGVzLmFjdGl2YXRlZC10YWJsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYWR2YW5jZWQtdGFibGUtZWRpdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLWFnZ3JlZ2F0b3IvYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QvYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWRkLWl0ZW1zL2FkZC1pdGVtcy5jb21wb25lbnQnO1xuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxzRUFBc0UsQ0FBQztBQUVyRixjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsMERBQTBELENBQUM7QUFHekUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLHdFQUF3RSxDQUFDO0FBRXZGLGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsY0FBYyxvRUFBb0UsQ0FBQztBQUVuRixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDhFQUE4RSxDQUFDO0FBQzdGLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsZ0VBQWdFLENBQUM7QUFHL0UsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNDQUFzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0YWJsZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZGQtaXRlbXMvYWRkLWl0ZW1zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLWFnZ3JlZ2F0b3IvYWR2YW5jZWQtYWdncmVnYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QvYWR2YW5jZWQtYWdncmVnYXRvci1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLWxpc3QvYWR2YW5jZWQtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1yb3ctYWN0aW9uL2FkdmFuY2VkLXJvdy1hY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtc2VhcmNoLWZvcm0vYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1zZWxlY3QvYWR2YW5jZWQtc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLXNlbGVjdC9hZHZhbmNlZC1zZWxlY3Quc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLXJlc29sdmVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmZvcm1hdHRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS1zZXR0aW5ncy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS1zZWFyY2gtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLXNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5mb3JtYXR0ZXJzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLWZpbHRlci12YWx1ZS1wcm92aWRlci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS1tb2RhbC9hZHZhbmNlZC10YWJsZS1tb2RhbC1iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RhYmxlLXNpbXBsZS1oZWFkZXIvdGFibGUtc2ltcGxlLWhlYWRlci5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2FkdmFuY2VkLXRhYmxlLWVkaXRvci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9idG5leHAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtYWdncmVnYXRvci9hZHZhbmNlZC1hZ2dyZWdhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdC9hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWRkLWl0ZW1zL2FkZC1pdGVtcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvYWR2YW5jZWQtYWdncmVnYXRvci5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2FkdmFuc2VkLWFnZ3JlZ2F0b3ItbGlzdC10aXRsZS1wYXJzZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FkdmFuY2VkLWFnZ3JlZ2F0b3IvYWR2YW5jZWQtYWdncmVnYXRvci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWR2YW5jZWQtYWdncmVnYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWJsZXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYmxlcy5hY3RpdmF0ZWQtdGFibGUuc2VydmljZSc7XG4iXX0=
@@ -2,13 +2,5 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public_api';
5
- export { AdvancedFilterValueProvider as ɵb } from './lib/components/advanced-table/advanced-filter-value-provider.service';
6
- export { AdvancedTableSearchBaseComponent as ɵa } from './lib/components/advanced-table/advanced-table-search-base';
7
- export { AdvancedTableSettingsComponent as ɵe } from './lib/components/advanced-table/advanced-table-settings.component';
8
- export { SimpleHeaderToolsComponent as ɵf, TableSimpleHeaderComponent as ɵg } from './lib/components/table-simple-header/table-simple-header.component';
9
- export { BtnExpDirective as ɵd } from './lib/directives/btnexp.directive';
10
- export { AdvancedAggregatorPipe as ɵh } from './lib/pipes/advanced-aggregator.pipe';
11
- export { ParseTitlePipe as ɵi } from './lib/pipes/advansed-aggregator-list-title-parse.pipe';
12
- export { AdvancedAggregatorService as ɵc } from './lib/services/advanced-aggregator/advanced-aggregator.service';
13
5
 
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2lzLW5neC10YWJsZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJ1bml2ZXJzaXMtbmd4LXRhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQywyQkFBMkIsSUFBSSxFQUFFLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUN6SCxPQUFPLEVBQUMsZ0NBQWdDLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDbEgsT0FBTyxFQUFDLDhCQUE4QixJQUFJLEVBQUUsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBQ3ZILE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDckosT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsc0JBQXNCLElBQUksRUFBRSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGNBQWMsSUFBSSxFQUFFLEVBQUMsTUFBTSx1REFBdUQsQ0FBQztBQUMzRixPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7QWR2YW5jZWRGaWx0ZXJWYWx1ZVByb3ZpZGVyIGFzIMm1Yn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC1maWx0ZXItdmFsdWUtcHJvdmlkZXIuc2VydmljZSc7XG5leHBvcnQge0FkdmFuY2VkVGFibGVTZWFyY2hCYXNlQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS1zZWFyY2gtYmFzZSc7XG5leHBvcnQge0FkdmFuY2VkVGFibGVTZXR0aW5nc0NvbXBvbmVudCBhcyDJtWV9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUtc2V0dGluZ3MuY29tcG9uZW50JztcbmV4cG9ydCB7U2ltcGxlSGVhZGVyVG9vbHNDb21wb25lbnQgYXMgybVmLFRhYmxlU2ltcGxlSGVhZGVyQ29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9saWIvY29tcG9uZW50cy90YWJsZS1zaW1wbGUtaGVhZGVyL3RhYmxlLXNpbXBsZS1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCB7QnRuRXhwRGlyZWN0aXZlIGFzIMm1ZH0gZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9idG5leHAuZGlyZWN0aXZlJztcbmV4cG9ydCB7QWR2YW5jZWRBZ2dyZWdhdG9yUGlwZSBhcyDJtWh9IGZyb20gJy4vbGliL3BpcGVzL2FkdmFuY2VkLWFnZ3JlZ2F0b3IucGlwZSc7XG5leHBvcnQge1BhcnNlVGl0bGVQaXBlIGFzIMm1aX0gZnJvbSAnLi9saWIvcGlwZXMvYWR2YW5zZWQtYWdncmVnYXRvci1saXN0LXRpdGxlLXBhcnNlLnBpcGUnO1xuZXhwb3J0IHtBZHZhbmNlZEFnZ3JlZ2F0b3JTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9saWIvc2VydmljZXMvYWR2YW5jZWQtYWdncmVnYXRvci9hZHZhbmNlZC1hZ2dyZWdhdG9yLnNlcnZpY2UnOyJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2lzLW5neC10YWJsZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJ1bml2ZXJzaXMtbmd4LXRhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19