@universis/ngx-tables 6.14.0 → 9.14.2

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 (102) hide show
  1. package/bundles/universis-ngx-tables.umd.js +4902 -6847
  2. package/bundles/universis-ngx-tables.umd.js.map +1 -1
  3. package/bundles/universis-ngx-tables.umd.min.js +15 -1
  4. package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
  5. package/esm2015/lib/actions/table.actions.js +7 -49
  6. package/esm2015/lib/advanced-aggregator.js +0 -5
  7. package/esm2015/lib/components/add-items/add-items.component.js +36 -96
  8. package/esm2015/lib/components/advanced-aggregator/advanced-aggregator.component.js +48 -103
  9. package/esm2015/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +36 -58
  10. package/esm2015/lib/components/advanced-list/advanced-list.component.js +68 -121
  11. package/esm2015/lib/components/advanced-row-action/advanced-row-action.component.js +61 -118
  12. package/esm2015/lib/components/advanced-search-form/advanced-search-form.component.js +47 -99
  13. package/esm2015/lib/components/advanced-select/advanced-select.component.js +25 -58
  14. package/esm2015/lib/components/advanced-select/advanced-select.service.js +10 -27
  15. package/esm2015/lib/components/advanced-table/advanced-filter-value-provider.service.js +13 -36
  16. package/esm2015/lib/components/advanced-table/advanced-table-resolvers.js +22 -50
  17. package/esm2015/lib/components/advanced-table/advanced-table-search-base.js +15 -37
  18. package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +55 -227
  19. package/esm2015/lib/components/advanced-table/advanced-table-settings.component.js +23 -96
  20. package/esm2015/lib/components/advanced-table/advanced-table.component.js +303 -688
  21. package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +1 -10
  22. package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +19 -230
  23. package/esm2015/lib/components/advanced-table/advanced-table.interfaces.js +0 -5
  24. package/esm2015/lib/components/advanced-table/custom-button.formatter.js +3 -17
  25. package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +77 -198
  26. package/esm2015/lib/components/column-selector/column-selector.component.js +39 -109
  27. package/esm2015/lib/components/column-selector/column-selector.service.js +9 -26
  28. package/esm2015/lib/components/table-simple-header/table-simple-header.component.js +28 -51
  29. package/esm2015/lib/directives/advance-search-state.directive.js +22 -54
  30. package/esm2015/lib/directives/advance-table-state.directive.js +20 -39
  31. package/esm2015/lib/directives/advanced-search-router-state.directive.js +15 -37
  32. package/esm2015/lib/directives/advanced-table-editor.directive.js +24 -54
  33. package/esm2015/lib/directives/btnexp.directive.js +55 -97
  34. package/esm2015/lib/i18n/tables.el.js +3 -7
  35. package/esm2015/lib/i18n/tables.en.js +3 -7
  36. package/esm2015/lib/pipes/advanced-aggregator.pipe.js +15 -18
  37. package/esm2015/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +13 -25
  38. package/esm2015/lib/reducers/index.js +7 -37
  39. package/esm2015/lib/services/advanced-aggregator/advanced-aggregator.service.js +27 -48
  40. package/esm2015/lib/tables.activated-table.service.js +11 -46
  41. package/esm2015/lib/tables.module.js +90 -105
  42. package/esm2015/public_api.js +29 -34
  43. package/esm2015/universis-ngx-tables.js +2 -7
  44. package/esm5/lib/actions/table.actions.js +7 -38
  45. package/esm5/lib/advanced-aggregator.js +0 -5
  46. package/esm5/lib/components/add-items/add-items.component.js +42 -127
  47. package/esm5/lib/components/advanced-aggregator/advanced-aggregator.component.js +58 -141
  48. package/esm5/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +32 -71
  49. package/esm5/lib/components/advanced-list/advanced-list.component.js +67 -136
  50. package/esm5/lib/components/advanced-row-action/advanced-row-action.component.js +62 -139
  51. package/esm5/lib/components/advanced-search-form/advanced-search-form.component.js +45 -116
  52. package/esm5/lib/components/advanced-select/advanced-select.component.js +23 -57
  53. package/esm5/lib/components/advanced-select/advanced-select.service.js +8 -27
  54. package/esm5/lib/components/advanced-table/advanced-filter-value-provider.service.js +15 -50
  55. package/esm5/lib/components/advanced-table/advanced-table-resolvers.js +18 -52
  56. package/esm5/lib/components/advanced-table/advanced-table-search-base.js +17 -48
  57. package/esm5/lib/components/advanced-table/advanced-table-search.component.js +84 -329
  58. package/esm5/lib/components/advanced-table/advanced-table-settings.component.js +27 -116
  59. package/esm5/lib/components/advanced-table/advanced-table.component.js +324 -863
  60. package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +1 -10
  61. package/esm5/lib/components/advanced-table/advanced-table.formatters.js +58 -393
  62. package/esm5/lib/components/advanced-table/advanced-table.interfaces.js +0 -5
  63. package/esm5/lib/components/advanced-table/custom-button.formatter.js +6 -27
  64. package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +90 -296
  65. package/esm5/lib/components/column-selector/column-selector.component.js +46 -143
  66. package/esm5/lib/components/column-selector/column-selector.service.js +7 -26
  67. package/esm5/lib/components/table-simple-header/table-simple-header.component.js +26 -61
  68. package/esm5/lib/directives/advance-search-state.directive.js +24 -74
  69. package/esm5/lib/directives/advance-table-state.directive.js +17 -37
  70. package/esm5/lib/directives/advanced-search-router-state.directive.js +13 -43
  71. package/esm5/lib/directives/advanced-table-editor.directive.js +31 -81
  72. package/esm5/lib/directives/btnexp.directive.js +43 -175
  73. package/esm5/lib/i18n/tables.el.js +3 -7
  74. package/esm5/lib/i18n/tables.en.js +3 -7
  75. package/esm5/lib/pipes/advanced-aggregator.pipe.js +9 -35
  76. package/esm5/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +9 -36
  77. package/esm5/lib/reducers/index.js +8 -38
  78. package/esm5/lib/services/advanced-aggregator/advanced-aggregator.service.js +21 -82
  79. package/esm5/lib/tables.activated-table.service.js +10 -42
  80. package/esm5/lib/tables.module.js +89 -105
  81. package/esm5/public_api.js +29 -34
  82. package/esm5/universis-ngx-tables.js +2 -7
  83. package/fesm2015/universis-ngx-tables.js +1178 -2187
  84. package/fesm2015/universis-ngx-tables.js.map +1 -1
  85. package/fesm5/universis-ngx-tables.js +1235 -3067
  86. package/fesm5/universis-ngx-tables.js.map +1 -1
  87. package/lib/actions/table.actions.d.ts +3 -3
  88. package/lib/components/add-items/add-items.component.d.ts +1 -1
  89. package/lib/components/advanced-aggregator/advanced-aggregator.component.d.ts +7 -4
  90. package/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.d.ts +1 -1
  91. package/lib/components/advanced-list/advanced-list.component.d.ts +3 -3
  92. package/lib/components/advanced-row-action/advanced-row-action.component.d.ts +1 -1
  93. package/lib/components/advanced-table/advanced-table-search-base.d.ts +3 -2
  94. package/lib/components/advanced-table/advanced-table-search.component.d.ts +3 -2
  95. package/lib/components/advanced-table/advanced-table.component.d.ts +13 -8
  96. package/lib/directives/advanced-table-editor.directive.d.ts +1 -1
  97. package/lib/i18n/tables.el.d.ts +108 -108
  98. package/lib/i18n/tables.en.d.ts +107 -107
  99. package/lib/reducers/index.d.ts +3 -3
  100. package/lib/tables.activated-table.service.d.ts +2 -1
  101. package/package.json +20 -31
  102. package/universis-ngx-tables.metadata.json +1 -1
@@ -1,6 +1 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
- */
5
-
6
1
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRhYmxlQ29sdW1uQ29uZmlndXJhdGlvbiB7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBzb3J0YWJsZT86IGJvb2xlYW47XG4gICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgZGVmYXVsdENvbnRlbnQ/OiBzdHJpbmc7XG4gICAgZm9ybWF0dGVyPzogc3RyaW5nO1xuICAgIGZvcm1hdFN0cmluZz86IHN0cmluZztcbiAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgIHByb3BlcnR5Pzogc3RyaW5nO1xuICAgIG9yZGVyPzogc3RyaW5nO1xuICAgIGZvcm1hdE9wdGlvbnM/OiBhbnk7XG4gICAgZm9ybWF0dGVycz86IEFycmF5PGFueT47XG4gICAgdmlydHVhbD86IGJvb2xlYW47XG4gICAgZXhwb3J0PzogYm9vbGVhbjtcbiAgICBvcHRpb25hbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZUNvbmZpZ3VyYXRpb24ge1xuICAgIGNyaXRlcmlhOiBhbnk7XG4gICAgZGVmYXVsdHM6IGFueTtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBtb2RlbDogc3RyaW5nO1xuICAgIHNlYXJjaEV4cHJlc3Npb24/OiBzdHJpbmc7XG4gICAgY29sdW1uczogQXJyYXk8VGFibGVDb2x1bW5Db25maWd1cmF0aW9uPjtcbiAgICBzZWFyY2hlczogQXJyYXk8YW55PjtcbiAgICBzZWxlY3RhYmxlPzogYm9vbGVhbjtcbiAgICBtdWx0aXBsZVNlbGVjdD86IGJvb2xlYW47XG4gICAgZml4ZWRDb2x1bW5zPzoge1xuICAgICAgICBsZWZ0PzogbnVtYmVyO1xuICAgICAgICByaWdodD86IG51bWJlcjtcbiAgICB9XG59XG4iXX0=
@@ -1,31 +1,19 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
- */
5
1
  import { TranslateService } from '@ngx-translate/core';
6
2
  import { ButtonFormatter } from './advanced-table.formatters';
7
3
  export class CustomButtonFormatter extends ButtonFormatter {
8
4
  constructor() {
9
5
  super();
10
6
  }
11
- /**
12
- * @param {?} data
13
- * @param {?} type
14
- * @param {?} row
15
- * @param {?} meta
16
- * @return {?}
17
- */
18
7
  render(data, type, row, meta) {
19
8
  if (data == null || this.injector == null) {
20
9
  return '';
21
10
  }
22
- /** @type {?} */
11
+ // get format options
23
12
  const formatOptions = Object.assign({
24
13
  buttonClass: 'btn btn-default',
25
14
  }, this.formatOptions);
26
- /** @type {?} */
15
+ // get text content
27
16
  let buttonText;
28
- /** @type {?} */
29
17
  let buttonTitle = '';
30
18
  if (formatOptions.buttonText) {
31
19
  buttonText = this.injector.get(TranslateService).instant(formatOptions.buttonText);
@@ -36,10 +24,8 @@ export class CustomButtonFormatter extends ButtonFormatter {
36
24
  if (formatOptions.buttonTitle) {
37
25
  buttonTitle = this.injector.get(TranslateService).instant(formatOptions.buttonTitle);
38
26
  }
39
- /** @type {?} */
40
27
  const customEvent = formatOptions.event || 'event';
41
28
  return `<button style="cursor:pointer" data-event="${customEvent}" class="dt-custom ${formatOptions.buttonClass}" title="${buttonTitle}">${buttonText}</button>`;
42
29
  }
43
30
  }
44
-
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWJ1dHRvbi5mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9jdXN0b20tYnV0dG9uLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBTzlELE1BQU0sNEJBQTZCLFNBQVEsZUFBZTtJQUN0RDtRQUNJLEtBQUssRUFBRSxDQUFBO0tBQ1Y7Ozs7Ozs7O0lBRU0sTUFBTSxDQUFDLElBQVMsRUFBRSxJQUFZLEVBQUUsR0FBUSxFQUFFLElBQWlDO1FBQzlFLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtZQUN2QyxPQUFPLEVBQUUsQ0FBQztTQUNiOztRQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDaEMsV0FBVyxFQUFFLGlCQUFpQjtTQUNqQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzs7UUFFdkIsSUFBSSxVQUFVLENBQVM7O1FBQ3ZCLElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLGFBQWEsQ0FBQyxVQUFVLEVBQUU7WUFDMUIsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN0RjthQUFNO1lBQ0gsVUFBVSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUM7U0FDNUM7UUFDRCxJQUFJLGFBQWEsQ0FBQyxXQUFXLEVBQUU7WUFDM0IsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4Rjs7UUFDRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQztRQUNuRCxPQUFPLDhDQUE4QyxXQUFXLHNCQUFzQixhQUFhLENBQUMsV0FBVyxZQUFZLFdBQVcsS0FBSyxVQUFVLFdBQVcsQ0FBQzs7Q0FHeEsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Gb3JtYXR0ZXIgfSBmcm9tICcuL2FkdmFuY2VkLXRhYmxlLmZvcm1hdHRlcnMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQ6ICh0eXBlOiBzdHJpbmcsIGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEN1c3RvbUJ1dHRvbkZvcm1hdHRlciBleHRlbmRzIEJ1dHRvbkZvcm1hdHRlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKClcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyKGRhdGE6IGFueSwgdHlwZTogc3RyaW5nLCByb3c6IGFueSwgbWV0YTogRGF0YVRhYmxlcy5DZWxsTWV0YVNldHRpbmdzKSB7XG4gICAgICAgIGlmIChkYXRhID09IG51bGwgfHwgdGhpcy5pbmplY3RvciA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZ2V0IGZvcm1hdCBvcHRpb25zXG4gICAgICAgIGNvbnN0IGZvcm1hdE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICAgIGJ1dHRvbkNsYXNzOiAnYnRuIGJ0bi1kZWZhdWx0JyxcbiAgICAgICAgfSwgdGhpcy5mb3JtYXRPcHRpb25zKTtcbiAgICAgICAgLy8gZ2V0IHRleHQgY29udGVudFxuICAgICAgICBsZXQgYnV0dG9uVGV4dDogc3RyaW5nO1xuICAgICAgICBsZXQgYnV0dG9uVGl0bGUgPSAnJztcbiAgICAgICAgaWYgKGZvcm1hdE9wdGlvbnMuYnV0dG9uVGV4dCkge1xuICAgICAgICAgICAgYnV0dG9uVGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoZm9ybWF0T3B0aW9ucy5idXR0b25UZXh0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGJ1dHRvblRleHQgPSBmb3JtYXRPcHRpb25zLmJ1dHRvbkNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdE9wdGlvbnMuYnV0dG9uVGl0bGUpIHtcbiAgICAgICAgICAgIGJ1dHRvblRpdGxlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudChmb3JtYXRPcHRpb25zLmJ1dHRvblRpdGxlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXN0b21FdmVudCA9IGZvcm1hdE9wdGlvbnMuZXZlbnQgfHwgJ2V2ZW50JztcbiAgICAgICAgcmV0dXJuIGA8YnV0dG9uIHN0eWxlPVwiY3Vyc29yOnBvaW50ZXJcIiBkYXRhLWV2ZW50PVwiJHtjdXN0b21FdmVudH1cIiBjbGFzcz1cImR0LWN1c3RvbSAke2Zvcm1hdE9wdGlvbnMuYnV0dG9uQ2xhc3N9XCIgdGl0bGU9XCIke2J1dHRvblRpdGxlfVwiPiR7YnV0dG9uVGV4dH08L2J1dHRvbj5gO1xuICAgIH1cblxufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWJ1dHRvbi5mb3JtYXR0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9jdXN0b20tYnV0dG9uLmZvcm1hdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPOUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGVBQWU7SUFDdEQ7UUFDSSxLQUFLLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBUyxFQUFFLElBQVksRUFBRSxHQUFRLEVBQUUsSUFBaUM7UUFDOUUsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO1lBQ3ZDLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFDRCxxQkFBcUI7UUFDckIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNoQyxXQUFXLEVBQUUsaUJBQWlCO1NBQ2pDLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZCLG1CQUFtQjtRQUNuQixJQUFJLFVBQWtCLENBQUM7UUFDdkIsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMxQixVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3RGO2FBQU07WUFDSCxVQUFVLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQztTQUM1QztRQUNELElBQUksYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUMzQixXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3hGO1FBQ0QsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUM7UUFDbkQsT0FBTyw4Q0FBOEMsV0FBVyxzQkFBc0IsYUFBYSxDQUFDLFdBQVcsWUFBWSxXQUFXLEtBQUssVUFBVSxXQUFXLENBQUM7SUFDckssQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uRm9ybWF0dGVyIH0gZnJvbSAnLi9hZHZhbmNlZC10YWJsZS5mb3JtYXR0ZXJzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBXaW5kb3cge1xuICAgICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50OiAodHlwZTogc3RyaW5nLCBldmVudDogYW55KSA9PiB2b2lkO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBDdXN0b21CdXR0b25Gb3JtYXR0ZXIgZXh0ZW5kcyBCdXR0b25Gb3JtYXR0ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpXG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IERhdGFUYWJsZXMuQ2VsbE1ldGFTZXR0aW5ncykge1xuICAgICAgICBpZiAoZGF0YSA9PSBudWxsIHx8IHRoaXMuaW5qZWN0b3IgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIC8vIGdldCBmb3JtYXQgb3B0aW9uc1xuICAgICAgICBjb25zdCBmb3JtYXRPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICBidXR0b25DbGFzczogJ2J0biBidG4tZGVmYXVsdCcsXG4gICAgICAgIH0sIHRoaXMuZm9ybWF0T3B0aW9ucyk7XG4gICAgICAgIC8vIGdldCB0ZXh0IGNvbnRlbnRcbiAgICAgICAgbGV0IGJ1dHRvblRleHQ6IHN0cmluZztcbiAgICAgICAgbGV0IGJ1dHRvblRpdGxlID0gJyc7XG4gICAgICAgIGlmIChmb3JtYXRPcHRpb25zLmJ1dHRvblRleHQpIHtcbiAgICAgICAgICAgIGJ1dHRvblRleHQgPSB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KGZvcm1hdE9wdGlvbnMuYnV0dG9uVGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBidXR0b25UZXh0ID0gZm9ybWF0T3B0aW9ucy5idXR0b25Db250ZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXRPcHRpb25zLmJ1dHRvblRpdGxlKSB7XG4gICAgICAgICAgICBidXR0b25UaXRsZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoZm9ybWF0T3B0aW9ucy5idXR0b25UaXRsZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VzdG9tRXZlbnQgPSBmb3JtYXRPcHRpb25zLmV2ZW50IHx8ICdldmVudCc7XG4gICAgICAgIHJldHVybiBgPGJ1dHRvbiBzdHlsZT1cImN1cnNvcjpwb2ludGVyXCIgZGF0YS1ldmVudD1cIiR7Y3VzdG9tRXZlbnR9XCIgY2xhc3M9XCJkdC1jdXN0b20gJHtmb3JtYXRPcHRpb25zLmJ1dHRvbkNsYXNzfVwiIHRpdGxlPVwiJHtidXR0b25UaXRsZX1cIj4ke2J1dHRvblRleHR9PC9idXR0b24+YDtcbiAgICB9XG5cbn1cbiJdfQ==