mis-crystal-design-system 14.0.61 → 14.0.62-dayjs

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 (110) hide show
  1. package/assets/images/close.svg +5 -0
  2. package/async-search-dropdown/async-dropdown.component.d.ts +2 -0
  3. package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +16 -1
  4. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +1 -1
  5. package/dropdown/dropdown.component.d.ts +2 -1
  6. package/dynamic-form/dynamic-form.component.d.ts +0 -1
  7. package/esm2020/async-search-dropdown/async-dropdown.component.mjs +27 -22
  8. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  9. package/esm2020/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +262 -76
  10. package/esm2020/daterangepicker_v2/models/drp-config.model.mjs +1 -1
  11. package/esm2020/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +44 -36
  12. package/esm2020/dropdown/dropdown.component.mjs +12 -8
  13. package/esm2020/dynamic-form/dynamic-form.component.mjs +17 -9
  14. package/esm2020/filter/animations/slideFromRight.mjs +12 -0
  15. package/esm2020/filter/filter-panel/filter-panel.component.mjs +403 -0
  16. package/esm2020/filter/filters.module.mjs +66 -0
  17. package/esm2020/filter/has-value.pipe.mjs +31 -0
  18. package/esm2020/filter/index.mjs +2 -0
  19. package/esm2020/filter/mis-crystal-design-system-filter.mjs +5 -0
  20. package/esm2020/filter/public_api.mjs +4 -0
  21. package/esm2020/multi-select-dropdown/multi-select-dropdown.component.mjs +20 -15
  22. package/esm2020/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +22 -15
  23. package/esm2020/radio-button/radio-button.component.mjs +3 -3
  24. package/esm2020/ske-loader/ske-loader.component.mjs +4 -4
  25. package/esm2020/specificdatepicker/public_api.mjs +2 -1
  26. package/esm2020/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +64 -47
  27. package/esm2020/table/filter/filter.component.mjs +12 -4
  28. package/esm2020/table/table.component.mjs +36 -20
  29. package/esm2020/timepicker/timepicker.component.mjs +54 -48
  30. package/esm2020/timerangepicker/public_api.mjs +1 -1
  31. package/esm2020/timerangepicker/timerangepicker.component.mjs +46 -42
  32. package/esm2020/tooltip/tooltip-container/tooltip.component.mjs +12 -11
  33. package/esm2020/tooltip/tooltip.directive.mjs +9 -3
  34. package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs +26 -21
  35. package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  36. package/fesm2015/mis-crystal-design-system-checkbox.mjs +2 -2
  37. package/fesm2015/mis-crystal-design-system-checkbox.mjs.map +1 -1
  38. package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs +285 -75
  39. package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  40. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs +44 -35
  41. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  42. package/fesm2015/mis-crystal-design-system-dropdown.mjs +11 -7
  43. package/fesm2015/mis-crystal-design-system-dropdown.mjs.map +1 -1
  44. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs +16 -7
  45. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  46. package/fesm2015/mis-crystal-design-system-filter.mjs +560 -0
  47. package/fesm2015/mis-crystal-design-system-filter.mjs.map +1 -0
  48. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs +19 -14
  49. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
  50. package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs +21 -14
  51. package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
  52. package/fesm2015/mis-crystal-design-system-radio-button.mjs +2 -2
  53. package/fesm2015/mis-crystal-design-system-radio-button.mjs.map +1 -1
  54. package/fesm2015/mis-crystal-design-system-ske-loader.mjs +3 -3
  55. package/fesm2015/mis-crystal-design-system-ske-loader.mjs.map +1 -1
  56. package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs +63 -46
  57. package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  58. package/fesm2015/mis-crystal-design-system-table.mjs +54 -26
  59. package/fesm2015/mis-crystal-design-system-table.mjs.map +1 -1
  60. package/fesm2015/mis-crystal-design-system-timepicker.mjs +53 -47
  61. package/fesm2015/mis-crystal-design-system-timepicker.mjs.map +1 -1
  62. package/fesm2015/mis-crystal-design-system-timerangepicker.mjs +45 -41
  63. package/fesm2015/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  64. package/fesm2015/mis-crystal-design-system-tooltip.mjs +19 -12
  65. package/fesm2015/mis-crystal-design-system-tooltip.mjs.map +1 -1
  66. package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs +26 -21
  67. package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
  68. package/fesm2020/mis-crystal-design-system-checkbox.mjs +2 -2
  69. package/fesm2020/mis-crystal-design-system-checkbox.mjs.map +1 -1
  70. package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs +261 -75
  71. package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  72. package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs +43 -34
  73. package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  74. package/fesm2020/mis-crystal-design-system-dropdown.mjs +11 -7
  75. package/fesm2020/mis-crystal-design-system-dropdown.mjs.map +1 -1
  76. package/fesm2020/mis-crystal-design-system-dynamic-form.mjs +16 -7
  77. package/fesm2020/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  78. package/fesm2020/mis-crystal-design-system-filter.mjs +510 -0
  79. package/fesm2020/mis-crystal-design-system-filter.mjs.map +1 -0
  80. package/fesm2020/mis-crystal-design-system-multi-select-dropdown.mjs +19 -14
  81. package/fesm2020/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
  82. package/fesm2020/mis-crystal-design-system-nested-multi-select-dropdown.mjs +21 -14
  83. package/fesm2020/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
  84. package/fesm2020/mis-crystal-design-system-radio-button.mjs +2 -2
  85. package/fesm2020/mis-crystal-design-system-radio-button.mjs.map +1 -1
  86. package/fesm2020/mis-crystal-design-system-ske-loader.mjs +3 -3
  87. package/fesm2020/mis-crystal-design-system-ske-loader.mjs.map +1 -1
  88. package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs +63 -46
  89. package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  90. package/fesm2020/mis-crystal-design-system-table.mjs +50 -26
  91. package/fesm2020/mis-crystal-design-system-table.mjs.map +1 -1
  92. package/fesm2020/mis-crystal-design-system-timepicker.mjs +53 -47
  93. package/fesm2020/mis-crystal-design-system-timepicker.mjs.map +1 -1
  94. package/fesm2020/mis-crystal-design-system-timerangepicker.mjs +45 -41
  95. package/fesm2020/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  96. package/fesm2020/mis-crystal-design-system-tooltip.mjs +19 -12
  97. package/fesm2020/mis-crystal-design-system-tooltip.mjs.map +1 -1
  98. package/filter/animations/slideFromRight.d.ts +1 -0
  99. package/filter/filter-panel/filter-panel.component.d.ts +51 -0
  100. package/filter/filters.module.d.ts +18 -0
  101. package/filter/has-value.pipe.d.ts +12 -0
  102. package/filter/index.d.ts +1 -0
  103. package/filter/public_api.d.ts +4 -0
  104. package/package.json +9 -1
  105. package/specificdatepicker/public_api.d.ts +1 -1
  106. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +1 -1
  107. package/timepicker/timepicker.component.d.ts +2 -2
  108. package/timerangepicker/public_api.d.ts +1 -0
  109. package/tooltip/tooltip-container/tooltip.component.d.ts +2 -1
  110. package/tooltip/tooltip.directive.d.ts +3 -1
@@ -18,8 +18,11 @@ function TableFilterComponent_div_8_Template(rf, ctx) { if (rf & 1) {
18
18
  i0.ɵɵadvance(2);
19
19
  i0.ɵɵtextInterpolate(filter_r5.name);
20
20
  } }
21
+ const _c1 = function () { return { "margin": "16px 0px" }; };
21
22
  function TableFilterComponent_div_9_Template(rf, ctx) { if (rf & 1) {
22
23
  i0.ɵɵelement(0, "div", 11);
24
+ } if (rf & 2) {
25
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c1));
23
26
  } }
24
27
  function TableFilterComponent_div_11_div_1_Template(rf, ctx) { if (rf & 1) {
25
28
  const _r11 = i0.ɵɵgetCurrentView();
@@ -50,6 +53,7 @@ function TableFilterComponent_div_12_Template(rf, ctx) { if (rf & 1) {
50
53
  i0.ɵɵtext(2, "No matches found");
51
54
  i0.ɵɵelementEnd()();
52
55
  } }
56
+ const _c2 = function () { return { "margin-right": "8px" }; };
53
57
  export class TableFilterComponent {
54
58
  constructor() {
55
59
  this.filtersData = [];
@@ -115,7 +119,7 @@ TableFilterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableF
115
119
  } if (rf & 2) {
116
120
  let _t;
117
121
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);
118
- } }, inputs: { filtersData: "filtersData", containerStyles: "containerStyles" }, outputs: { filtersApplied: "filtersApplied" }, decls: 19, vars: 5, consts: [["id", "main-container", 3, "ngStyle"], ["mainContainer", ""], ["id", "search-bar-container"], ["type", "text", "placeholder", "Search", 3, "keyup"], ["id", "search-icon", "width", "18", "height", "18", "viewBox", "0 0 18 18", "fill", "none", "xmlns", "http://www.w3.org/2000/svg"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M1.21496 8.14563C1.21496 4.3179 4.33709 1.21165 8.19249 1.21165C12.0479 1.21165 15.17 4.3179 15.17 8.14563C15.17 9.69308 14.6598 11.1226 13.797 12.2767L12.3684 13.7013C11.2043 14.5668 9.75891 15.0796 8.19249 15.0796C4.33709 15.0796 1.21496 11.9734 1.21496 8.14563ZM12.9419 14.7835C11.602 15.7329 9.96259 16.2913 8.19249 16.2913C3.66965 16.2913 -0.00012207 12.6461 -0.00012207 8.14563C-0.00012207 3.64512 3.66965 0 8.19249 0C12.7153 0 16.3851 3.64512 16.3851 8.14563C16.3851 9.93713 15.8036 11.5931 14.8183 12.9375L16.836 14.4048C17.6704 14.912 18.7553 15.6543 17.2453 17.215C15.7352 18.7756 15.0098 17.6663 14.499 16.8364L12.9419 14.7835Z", "fill", "#6A737D"], ["id", "filters-main-container"], [1, "filters-sub-container"], [4, "ngFor", "ngForOf"], ["class", "separator", "style", "margin: 16px 0px", 4, "ngIf"], ["id", "no-results-container", 4, "ngIf"], [1, "separator", 2, "margin", "16px 0px"], ["id", "buttons-container"], ["id", "reset-btn", 2, "margin-right", "8px", 3, "click"], ["id", "apply-btn", 3, "click"], [1, "filter"], [3, "checked", "name", "valueChange"], [1, "filter-text"], ["class", "filter", 4, "ngIf"], ["id", "no-results-container"]], template: function TableFilterComponent_Template(rf, ctx) { if (rf & 1) {
122
+ } }, inputs: { filtersData: "filtersData", containerStyles: "containerStyles" }, outputs: { filtersApplied: "filtersApplied" }, decls: 19, vars: 9, consts: [["id", "main-container", 3, "ngStyle"], ["mainContainer", ""], ["id", "search-bar-container"], ["type", "text", "placeholder", "Search", 3, "keyup"], ["id", "search-icon", "width", "18", "height", "18", "viewBox", "0 0 18 18", "fill", "none", "xmlns", "http://www.w3.org/2000/svg"], ["fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M1.21496 8.14563C1.21496 4.3179 4.33709 1.21165 8.19249 1.21165C12.0479 1.21165 15.17 4.3179 15.17 8.14563C15.17 9.69308 14.6598 11.1226 13.797 12.2767L12.3684 13.7013C11.2043 14.5668 9.75891 15.0796 8.19249 15.0796C4.33709 15.0796 1.21496 11.9734 1.21496 8.14563ZM12.9419 14.7835C11.602 15.7329 9.96259 16.2913 8.19249 16.2913C3.66965 16.2913 -0.00012207 12.6461 -0.00012207 8.14563C-0.00012207 3.64512 3.66965 0 8.19249 0C12.7153 0 16.3851 3.64512 16.3851 8.14563C16.3851 9.93713 15.8036 11.5931 14.8183 12.9375L16.836 14.4048C17.6704 14.912 18.7553 15.6543 17.2453 17.215C15.7352 18.7756 15.0098 17.6663 14.499 16.8364L12.9419 14.7835Z", "fill", "#6A737D"], ["id", "filters-main-container"], [1, "filters-sub-container"], [4, "ngFor", "ngForOf"], ["class", "separator", 3, "ngStyle", 4, "ngIf"], ["id", "no-results-container", 4, "ngIf"], [1, "separator", 3, "ngStyle"], ["id", "buttons-container"], ["id", "reset-btn", 3, "ngStyle", "click"], ["id", "apply-btn", 3, "click"], [1, "filter"], [3, "checked", "name", "valueChange"], [1, "filter-text"], ["class", "filter", 4, "ngIf"], ["id", "no-results-container"]], template: function TableFilterComponent_Template(rf, ctx) { if (rf & 1) {
119
123
  i0.ɵɵelementStart(0, "div", 0, 1)(2, "div", 2)(3, "input", 3);
120
124
  i0.ɵɵlistener("keyup", function TableFilterComponent_Template_input_keyup_3_listener($event) { return ctx.updateSearchValue($event); });
121
125
  i0.ɵɵelementEnd();
@@ -127,7 +131,7 @@ TableFilterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableF
127
131
  i0.ɵɵelementStart(6, "div", 6)(7, "div", 7);
128
132
  i0.ɵɵtemplate(8, TableFilterComponent_div_8_Template, 5, 3, "div", 8);
129
133
  i0.ɵɵelementEnd();
130
- i0.ɵɵtemplate(9, TableFilterComponent_div_9_Template, 1, 0, "div", 9);
134
+ i0.ɵɵtemplate(9, TableFilterComponent_div_9_Template, 1, 2, "div", 9);
131
135
  i0.ɵɵelementStart(10, "div", 7);
132
136
  i0.ɵɵtemplate(11, TableFilterComponent_div_11_Template, 2, 1, "div", 8);
133
137
  i0.ɵɵtemplate(12, TableFilterComponent_div_12_Template, 3, 0, "div", 10);
@@ -151,10 +155,14 @@ TableFilterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableF
151
155
  i0.ɵɵproperty("ngForOf", ctx.getFiltersBasedOnSearchValue());
152
156
  i0.ɵɵadvance(1);
153
157
  i0.ɵɵproperty("ngIf", ctx.getFiltersBasedOnSearchValue().length < 1);
158
+ i0.ɵɵadvance(1);
159
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(7, _c1));
160
+ i0.ɵɵadvance(2);
161
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(8, _c2));
154
162
  } }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgStyle, i2.CheckboxComponent], styles: ["#main-container[_ngcontent-%COMP%]{position:absolute;background:#ffffff;z-index:2;right:calc(50% - 128px);width:256px;padding:16px;font-family:Lato,sans-serif;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:8px}[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px}[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4}#search-bar-container[_ngcontent-%COMP%]{width:100%;position:relative;margin-bottom:8px}input[_ngcontent-%COMP%]{width:100%;padding:12px 12px 12px 42px;border:solid 1px black;border-radius:4px;height:48px;box-shadow:none;outline:none;font-style:normal;font-weight:400;font-size:15px;line-height:20px;letter-spacing:.1px;color:#181f33}input[_ngcontent-%COMP%]:focus{border:solid 1px #0937b2}#search-icon[_ngcontent-%COMP%]{position:absolute;top:15px;left:12px}.filters-sub-container[_ngcontent-%COMP%]{max-height:144px;overflow-y:auto}.filter[_ngcontent-%COMP%]{height:36px;display:flex;justify-content:flex-start;align-items:center}.filter-text[_ngcontent-%COMP%]{font-size:14px;line-height:20px;padding-left:8px;letter-spacing:.2px;color:#181f33;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#no-results-container[_ngcontent-%COMP%]{height:36px;display:flex;justify-content:center;align-items:center}.separator[_ngcontent-%COMP%]{border:1px solid #e0e0e0}#buttons-container[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}button[_ngcontent-%COMP%]{width:calc(50% - 4px);border:none;box-shadow:none;outline:none;font-size:16px;line-height:24px;text-align:center;letter-spacing:.2px;padding:10px 30px;background:none;border-radius:8px}#apply-btn[_ngcontent-%COMP%]{background:#0937b2;color:#fff}#reset-btn[_ngcontent-%COMP%]{background:#ffffff;color:#0937b2}"] });
155
163
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableFilterComponent, [{
156
164
  type: Component,
157
- args: [{ selector: "mis-table-filter", template: "<div id=\"main-container\" #mainContainer [ngStyle]=\"containerStyles\">\n <div id=\"search-bar-container\">\n <input (keyup)=\"updateSearchValue($event)\" type=\"text\" placeholder=\"Search\" />\n <svg id=\"search-icon\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M1.21496 8.14563C1.21496 4.3179 4.33709 1.21165 8.19249 1.21165C12.0479 1.21165 15.17 4.3179 15.17 8.14563C15.17 9.69308 14.6598 11.1226 13.797 12.2767L12.3684 13.7013C11.2043 14.5668 9.75891 15.0796 8.19249 15.0796C4.33709 15.0796 1.21496 11.9734 1.21496 8.14563ZM12.9419 14.7835C11.602 15.7329 9.96259 16.2913 8.19249 16.2913C3.66965 16.2913 -0.00012207 12.6461 -0.00012207 8.14563C-0.00012207 3.64512 3.66965 0 8.19249 0C12.7153 0 16.3851 3.64512 16.3851 8.14563C16.3851 9.93713 15.8036 11.5931 14.8183 12.9375L16.836 14.4048C17.6704 14.912 18.7553 15.6543 17.2453 17.215C15.7352 18.7756 15.0098 17.6663 14.499 16.8364L12.9419 14.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div id=\"filters-main-container\">\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getCheckedFilters()\">\n <div class=\"filter\">\n <mis-checkbox [checked]=\"true\" [name]=\"filter.value\" (valueChange)=\"updateFilter($event)\"></mis-checkbox>\n <span class=\"filter-text\">{{ filter.name }}</span>\n </div>\n </div>\n </div>\n <div class=\"separator\" style=\"margin: 16px 0px\" *ngIf=\"getCheckedFilters().length && getCheckedFilters().length < filtersData.length\"></div>\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getFiltersBasedOnSearchValue()\">\n <div class=\"filter\" *ngIf=\"!filter.checked\">\n <mis-checkbox [checked]=\"false\" [name]=\"filter.value\" (valueChange)=\"updateFilter($event)\"></mis-checkbox>\n <span class=\"filter-text\">{{ filter.name }}</span>\n </div>\n </div>\n <div id=\"no-results-container\" *ngIf=\"getFiltersBasedOnSearchValue().length < 1\">\n <span class=\"filter-text\">No matches found</span>\n </div>\n </div>\n <div class=\"separator\" style=\"margin: 16px 0px\"></div>\n <div id=\"buttons-container\">\n <button id=\"reset-btn\" style=\"margin-right: 8px\" (click)=\"resetFilters()\">Reset</button>\n <button id=\"apply-btn\" (click)=\"applyFilters()\">Apply</button>\n </div>\n </div>\n</div>\n", styles: ["#main-container{position:absolute;background:#ffffff;z-index:2;right:calc(50% - 128px);width:256px;padding:16px;font-family:Lato,sans-serif;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:8px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#9aa7b4}#search-bar-container{width:100%;position:relative;margin-bottom:8px}input{width:100%;padding:12px 12px 12px 42px;border:solid 1px black;border-radius:4px;height:48px;box-shadow:none;outline:none;font-style:normal;font-weight:400;font-size:15px;line-height:20px;letter-spacing:.1px;color:#181f33}input:focus{border:solid 1px #0937b2}#search-icon{position:absolute;top:15px;left:12px}.filters-sub-container{max-height:144px;overflow-y:auto}.filter{height:36px;display:flex;justify-content:flex-start;align-items:center}.filter-text{font-size:14px;line-height:20px;padding-left:8px;letter-spacing:.2px;color:#181f33;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#no-results-container{height:36px;display:flex;justify-content:center;align-items:center}.separator{border:1px solid #e0e0e0}#buttons-container{display:flex;justify-content:center;align-items:center}button{width:calc(50% - 4px);border:none;box-shadow:none;outline:none;font-size:16px;line-height:24px;text-align:center;letter-spacing:.2px;padding:10px 30px;background:none;border-radius:8px}#apply-btn{background:#0937b2;color:#fff}#reset-btn{background:#ffffff;color:#0937b2}\n"] }]
165
+ args: [{ selector: "mis-table-filter", template: "<div id=\"main-container\" #mainContainer [ngStyle]=\"containerStyles\">\n <div id=\"search-bar-container\">\n <input (keyup)=\"updateSearchValue($event)\" type=\"text\" placeholder=\"Search\" />\n <svg id=\"search-icon\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M1.21496 8.14563C1.21496 4.3179 4.33709 1.21165 8.19249 1.21165C12.0479 1.21165 15.17 4.3179 15.17 8.14563C15.17 9.69308 14.6598 11.1226 13.797 12.2767L12.3684 13.7013C11.2043 14.5668 9.75891 15.0796 8.19249 15.0796C4.33709 15.0796 1.21496 11.9734 1.21496 8.14563ZM12.9419 14.7835C11.602 15.7329 9.96259 16.2913 8.19249 16.2913C3.66965 16.2913 -0.00012207 12.6461 -0.00012207 8.14563C-0.00012207 3.64512 3.66965 0 8.19249 0C12.7153 0 16.3851 3.64512 16.3851 8.14563C16.3851 9.93713 15.8036 11.5931 14.8183 12.9375L16.836 14.4048C17.6704 14.912 18.7553 15.6543 17.2453 17.215C15.7352 18.7756 15.0098 17.6663 14.499 16.8364L12.9419 14.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div id=\"filters-main-container\">\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getCheckedFilters()\">\n <div class=\"filter\">\n <mis-checkbox [checked]=\"true\" [name]=\"filter.value\" (valueChange)=\"updateFilter($event)\"></mis-checkbox>\n <span class=\"filter-text\">{{ filter.name }}</span>\n </div>\n </div>\n </div>\n <div class=\"separator\" [ngStyle]=\"{ 'margin': '16px 0px' }\" *ngIf=\"getCheckedFilters().length && getCheckedFilters().length < filtersData.length\"></div>\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getFiltersBasedOnSearchValue()\">\n <div class=\"filter\" *ngIf=\"!filter.checked\">\n <mis-checkbox [checked]=\"false\" [name]=\"filter.value\" (valueChange)=\"updateFilter($event)\"></mis-checkbox>\n <span class=\"filter-text\">{{ filter.name }}</span>\n </div>\n </div>\n <div id=\"no-results-container\" *ngIf=\"getFiltersBasedOnSearchValue().length < 1\">\n <span class=\"filter-text\">No matches found</span>\n </div>\n </div>\n <div class=\"separator\" [ngStyle]=\"{ 'margin': '16px 0px' }\"></div>\n <div id=\"buttons-container\">\n <button id=\"reset-btn\" [ngStyle]=\"{ 'margin-right': '8px' }\" (click)=\"resetFilters()\">Reset</button>\n <button id=\"apply-btn\" (click)=\"applyFilters()\">Apply</button>\n </div>\n </div>\n</div>\n", styles: ["#main-container{position:absolute;background:#ffffff;z-index:2;right:calc(50% - 128px);width:256px;padding:16px;font-family:Lato,sans-serif;box-shadow:0 12px 24px #0000001f,0 4px 8px #0000001f;border-radius:8px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#9aa7b4}#search-bar-container{width:100%;position:relative;margin-bottom:8px}input{width:100%;padding:12px 12px 12px 42px;border:solid 1px black;border-radius:4px;height:48px;box-shadow:none;outline:none;font-style:normal;font-weight:400;font-size:15px;line-height:20px;letter-spacing:.1px;color:#181f33}input:focus{border:solid 1px #0937b2}#search-icon{position:absolute;top:15px;left:12px}.filters-sub-container{max-height:144px;overflow-y:auto}.filter{height:36px;display:flex;justify-content:flex-start;align-items:center}.filter-text{font-size:14px;line-height:20px;padding-left:8px;letter-spacing:.2px;color:#181f33;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#no-results-container{height:36px;display:flex;justify-content:center;align-items:center}.separator{border:1px solid #e0e0e0}#buttons-container{display:flex;justify-content:center;align-items:center}button{width:calc(50% - 4px);border:none;box-shadow:none;outline:none;font-size:16px;line-height:24px;text-align:center;letter-spacing:.2px;padding:10px 30px;background:none;border-radius:8px}#apply-btn{background:#0937b2;color:#fff}#reset-btn{background:#ffffff;color:#0937b2}\n"] }]
158
166
  }], function () { return []; }, { filtersData: [{
159
167
  type: Input
160
168
  }], containerStyles: [{
@@ -165,4 +173,4 @@ TableFilterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableF
165
173
  type: ViewChild,
166
174
  args: ["mainContainer"]
167
175
  }] }); })();
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztJQ2NoRywyQkFBZ0QsY0FBQSx1QkFBQTtJQUVTLHlMQUFlLGVBQUEsMkJBQW9CLENBQUEsSUFBQztJQUFDLGlCQUFlO0lBQ3pHLGdDQUEwQjtJQUFBLFlBQWlCO0lBQUEsaUJBQU8sRUFBQSxFQUFBOzs7SUFEcEMsZUFBZ0I7SUFBaEIsOEJBQWdCLHlCQUFBO0lBQ0osZUFBaUI7SUFBakIsb0NBQWlCOzs7SUFJakQsMEJBQTRJOzs7O0lBR3hJLCtCQUE0Qyx1QkFBQTtJQUNZLG1NQUFlLGVBQUEsNEJBQW9CLENBQUEsSUFBQztJQUFDLGlCQUFlO0lBQzFHLGdDQUEwQjtJQUFBLFlBQWlCO0lBQUEsaUJBQU8sRUFBQTs7O0lBRHBDLGVBQWlCO0lBQWpCLCtCQUFpQix5QkFBQTtJQUNMLGVBQWlCO0lBQWpCLG9DQUFpQjs7O0lBSC9DLDJCQUEyRDtJQUN6RCw2RUFHTTtJQUNSLGlCQUFNOzs7SUFKaUIsZUFBcUI7SUFBckIseUNBQXFCOzs7SUFLNUMsK0JBQWlGLGVBQUE7SUFDckQsZ0NBQWdCO0lBQUEsaUJBQU8sRUFBQTs7QUR2QnpELE1BQU0sT0FBTyxvQkFBb0I7SUFXL0I7UUFWUyxnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFDaEMsb0JBQWUsR0FBUSxFQUFFLENBQUM7UUFFekIsbUJBQWMsR0FBRyxJQUFJLFlB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QUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O3dGQXREVSxvQkFBb0I7dUVBQXBCLG9CQUFvQjs7Ozs7O1FDUGpDLGlDQUFvRSxhQUFBLGVBQUE7UUFFekQsc0dBQVMsNkJBQXlCLElBQUM7UUFBMUMsaUJBQThFO1FBQzlFLG1CQUFnSDtRQUFoSCw4QkFBZ0g7UUFDOUcsMEJBS0U7UUFDSixpQkFBTSxFQUFBO1FBRVIsb0JBQWlDO1FBQWpDLDhCQUFpQyxhQUFBO1FBRTdCLHFFQUtNO1FBQ1IsaUJBQU07UUFDTixxRUFBNEk7UUFDNUksK0JBQW1DO1FBQ2pDLHVFQUtNO1FBQ04sd0VBRU07UUFDUixpQkFBTTtRQUNOLDJCQUFzRDtRQUN0RCxnQ0FBNEIsa0JBQUE7UUFDdUIsa0dBQVMsa0JBQWMsSUFBQztRQUFDLHNCQUFLO1FBQUEsaUJBQVM7UUFDeEYsbUNBQWdEO1FBQXpCLGtHQUFTLGtCQUFjLElBQUM7UUFBQyxzQkFBSztRQUFBLGlCQUFTLEVBQUEsRUFBQSxFQUFBOztRQXBDNUIsNkNBQTJCO1FBY3JDLGVBQXNCO1FBQXRCLGlEQUFzQjtRQU9DLGVBQW1GO1FBQW5GLGdIQUFtRjtRQUUxRyxlQUFpQztRQUFqQyw0REFBaUM7UUFNekIsZUFBK0M7UUFBL0Msb0VBQStDOzt1RkR0QnhFLG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLGtCQUFrQjtzQ0FLbkIsV0FBVztrQkFBbkIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFFSSxjQUFjO2tCQUF2QixNQUFNO1lBRXFCLFNBQVM7a0JBQXBDLFNBQVM7bUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtdGFibGUtZmlsdGVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcImZpbHRlci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcImZpbHRlci5jb21wb25lbnQuY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZmlsdGVyc0RhdGE6IEFycmF5PEZpbHRlcj4gPSBbXTtcbiAgQElucHV0KCkgY29udGFpbmVyU3R5bGVzOiBhbnkgPSB7fTtcblxuICBAT3V0cHV0KCkgZmlsdGVyc0FwcGxpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKFwibWFpbkNvbnRhaW5lclwiKSBjb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgZmlsdGVyc01hcDogYW55ID0ge307XG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSBcIlwiO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcnNEYXRhLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyc01hcFtmaWx0ZXIudmFsdWVdID0gZmlsdGVyO1xuICAgIH0pO1xuICB9XG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLmZpbHRlcnNEYXRhLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyc01hcFtmaWx0ZXIudmFsdWVdLmNoZWNrZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLmZpbHRlcnNBcHBsaWVkLmVtaXQoW10pO1xuICB9XG4gIGFwcGx5RmlsdGVycygpIHtcbiAgICBsZXQgbGlzdCA9IE9iamVjdC52YWx1ZXModGhpcy5maWx0ZXJzTWFwKVxuICAgICAgLmZpbHRlcigoZmlsdGVyOiBGaWx0ZXIgfCBhbnkpID0+IGZpbHRlci5jaGVja2VkKVxuICAgICAgLm1hcCgoZmlsdGVyOiBGaWx0ZXIgfCBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiBmaWx0ZXIubmFtZSxcbiAgICAgICAgICB2YWx1ZTogZmlsdGVyLnZhbHVlXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB0aGlzLmZpbHRlcnNBcHBsaWVkLmVtaXQobGlzdCk7XG4gIH1cbiAgdXBkYXRlU2VhcmNoVmFsdWUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbiAgdXBkYXRlRmlsdGVyKGRhdGE6IGFueSkge1xuICAgIGlmICh0aGlzLmZpbHRlcnNNYXBbZGF0YS5uYW1lXSkge1xuICAgICAgdGhpcy5maWx0ZXJzTWFwW2RhdGEubmFtZV0uY2hlY2tlZCA9ICF0aGlzLmZpbHRlcnNNYXBbZGF0YS5uYW1lXS5jaGVja2VkO1xuICAgIH1cbiAgfVxuICBnZXRGaWx0ZXJzQmFzZWRPblNlYXJjaFZhbHVlKCk6IEZpbHRlcltdIHwgYW55IHtcbiAgICBsZXQgbGlzdCA9IE9iamVjdC52YWx1ZXModGhpcy5maWx0ZXJzTWFwKTtcbiAgICBsaXN0ID0gbGlzdC5maWx0ZXIoKGZpbHRlcjogRmlsdGVyIHwgYW55KSA9PiB7XG4gICAgICByZXR1cm4gZmlsdGVyLm5hbWUubWF0Y2gobmV3IFJlZ0V4cCh0aGlzLnNlYXJjaFZhbHVlLCBcImlcIikpO1xuICAgIH0pO1xuICAgIHJldHVybiBsaXN0LnNvcnQodGhpcy5teVNvcnQpO1xuICB9XG4gIGdldENoZWNrZWRGaWx0ZXJzKCk6IEZpbHRlcltdIHwgYW55IHtcbiAgICBsZXQgbGlzdCA9IE9iamVjdC52YWx1ZXModGhpcy5maWx0ZXJzTWFwKTtcbiAgICBsaXN0ID0gbGlzdC5maWx0ZXIoKGZpbHRlcjogRmlsdGVyIHwgYW55KSA9PiBmaWx0ZXIuY2hlY2tlZCkuc29ydCh0aGlzLm15U29ydCk7XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cbiAgbXlTb3J0ID0gKGE6IEZpbHRlciB8IGFueSwgYjogRmlsdGVyIHwgYW55KSA9PiB7XG4gICAgaWYgKGEubmFtZSA8IGIubmFtZSkgcmV0dXJuIC0xO1xuICAgIGVsc2UgaWYgKGIubmFtZSA8IGEubmFtZSkgcmV0dXJuIDE7XG4gICAgZWxzZSByZXR1cm4gMDtcbiAgfTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBjaGVja2VkOiBib29sZWFuO1xufVxuIiwiPGRpdiBpZD1cIm1haW4tY29udGFpbmVyXCIgI21haW5Db250YWluZXIgW25nU3R5bGVdPVwiY29udGFpbmVyU3R5bGVzXCI+XG4gIDxkaXYgaWQ9XCJzZWFyY2gtYmFyLWNvbnRhaW5lclwiPlxuICAgIDxpbnB1dCAoa2V5dXApPVwidXBkYXRlU2VhcmNoVmFsdWUoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAvPlxuICAgIDxzdmcgaWQ9XCJzZWFyY2gtaWNvblwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk0xLjIxNDk2IDguMTQ1NjNDMS4yMTQ5NiA0LjMxNzkgNC4zMzcwOSAxLjIxMTY1IDguMTkyNDkgMS4yMTE2NUMxMi4wNDc5IDEuMjExNjUgMTUuMTcgNC4zMTc5IDE1LjE3IDguMTQ1NjNDMTUuMTcgOS42OTMwOCAxNC42NTk4IDExLjEyMjYgMTMuNzk3IDEyLjI3NjdMMTIuMzY4NCAxMy43MDEzQzExLjIwNDMgMTQuNTY2OCA5Ljc1ODkxIDE1LjA3OTYgOC4xOTI0OSAxNS4wNzk2QzQuMzM3MDkgMTUuMDc5NiAxLjIxNDk2IDExLjk3MzQgMS4yMTQ5NiA4LjE0NTYzWk0xMi45NDE5IDE0Ljc4MzVDMTEuNjAyIDE1LjczMjkgOS45NjI1OSAxNi4yOTEzIDguMTkyNDkgMTYuMjkxM0MzLjY2OTY1IDE2LjI5MTMgLTAuMDAwMTIyMDcgMTIuNjQ2MSAtMC4wMDAxMjIwNyA4LjE0NTYzQy0wLjAwMDEyMjA3IDMuNjQ1MTIgMy42Njk2NSAwIDguMTkyNDkgMEMxMi43MTUzIDAgMTYuMzg1MSAzLjY0NTEyIDE2LjM4NTEgOC4xNDU2M0MxNi4zODUxIDkuOTM3MTMgMTUuODAzNiAxMS41OTMxIDE0LjgxODMgMTIuOTM3NUwxNi44MzYgMTQuNDA0OEMxNy42NzA0IDE0LjkxMiAxOC43NTUzIDE1LjY1NDMgMTcuMjQ1MyAxNy4yMTVDMTUuNzM1MiAxOC43NzU2IDE1LjAwOTggMTcuNjY2MyAxNC40OTkgMTYuODM2NEwxMi45NDE5IDE0Ljc4MzVaXCJcbiAgICAgICAgZmlsbD1cIiM2QTczN0RcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG4gIDxkaXYgaWQ9XCJmaWx0ZXJzLW1haW4tY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpbHRlcnMtc3ViLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGdldENoZWNrZWRGaWx0ZXJzKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlclwiPlxuICAgICAgICAgIDxtaXMtY2hlY2tib3ggW2NoZWNrZWRdPVwidHJ1ZVwiIFtuYW1lXT1cImZpbHRlci52YWx1ZVwiICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVGaWx0ZXIoJGV2ZW50KVwiPjwvbWlzLWNoZWNrYm94PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsdGVyLXRleHRcIj57eyBmaWx0ZXIubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCIgc3R5bGU9XCJtYXJnaW46IDE2cHggMHB4XCIgKm5nSWY9XCJnZXRDaGVja2VkRmlsdGVycygpLmxlbmd0aCAmJiBnZXRDaGVja2VkRmlsdGVycygpLmxlbmd0aCA8IGZpbHRlcnNEYXRhLmxlbmd0aFwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXJzLXN1Yi1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBnZXRGaWx0ZXJzQmFzZWRPblNlYXJjaFZhbHVlKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlclwiICpuZ0lmPVwiIWZpbHRlci5jaGVja2VkXCI+XG4gICAgICAgICAgPG1pcy1jaGVja2JveCBbY2hlY2tlZF09XCJmYWxzZVwiIFtuYW1lXT1cImZpbHRlci52YWx1ZVwiICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVGaWx0ZXIoJGV2ZW50KVwiPjwvbWlzLWNoZWNrYm94PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsdGVyLXRleHRcIj57eyBmaWx0ZXIubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJuby1yZXN1bHRzLWNvbnRhaW5lclwiICpuZ0lmPVwiZ2V0RmlsdGVyc0Jhc2VkT25TZWFyY2hWYWx1ZSgpLmxlbmd0aCA8IDFcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWx0ZXItdGV4dFwiPk5vIG1hdGNoZXMgZm91bmQ8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCIgc3R5bGU9XCJtYXJnaW46IDE2cHggMHB4XCI+PC9kaXY+XG4gICAgPGRpdiBpZD1cImJ1dHRvbnMtY29udGFpbmVyXCI+XG4gICAgICA8YnV0dG9uIGlkPVwicmVzZXQtYnRuXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDhweFwiIChjbGljayk9XCJyZXNldEZpbHRlcnMoKVwiPlJlc2V0PC9idXR0b24+XG4gICAgICA8YnV0dG9uIGlkPVwiYXBwbHktYnRuXCIgKGNsaWNrKT1cImFwcGx5RmlsdGVycygpXCI+QXBwbHk8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztJQ2NoRywyQkFBZ0QsY0FBQSx1QkFBQTtJQUVTLHlMQUFlLGVBQUEsMkJBQW9CLENBQUEsSUFBQztJQUFDLGlCQUFlO0lBQ3pHLGdDQUEwQjtJQUFBLFlBQWlCO0lBQUEsaUJBQU8sRUFBQSxFQUFBOzs7SUFEcEMsZUFBZ0I7SUFBaEIsOEJBQWdCLHlCQUFBO0lBQ0osZUFBaUI7SUFBakIsb0NBQWlCOzs7O0lBSWpELDBCQUF3Sjs7SUFBakksb0RBQW9DOzs7O0lBR3ZELCtCQUE0Qyx1QkFBQTtJQUNZLG1NQUFlLGVBQUEsNEJBQW9CLENBQUEsSUFBQztJQUFDLGlCQUFlO0lBQzFHLGdDQUEwQjtJQUFBLFlBQWlCO0lBQUEsaUJBQU8sRUFBQTs7O0lBRHBDLGVBQWlCO0lBQWpCLCtCQUFpQix5QkFBQTtJQUNMLGVBQWlCO0lBQWpCLG9DQUFpQjs7O0lBSC9DLDJCQUEyRDtJQUN6RCw2RUFHTTtJQUNSLGlCQUFNOzs7SUFKaUIsZUFBcUI7SUFBckIseUNBQXFCOzs7SUFLNUMsK0JBQWlGLGVBQUE7SUFDckQsZ0NBQWdCO0lBQUEsaUJBQU8sRUFBQTs7O0FEdkJ6RCxNQUFNLE9BQU8sb0JBQW9CO0lBVy9CO1FBVlMsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBRXpCLG1C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QUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzt3RkF0RFUsb0JBQW9CO3VFQUFwQixvQkFBb0I7Ozs7OztRQ1BqQyxpQ0FBb0UsYUFBQSxlQUFBO1FBRXpELHNHQUFTLDZCQUF5QixJQUFDO1FBQTFDLGlCQUE4RTtRQUM5RSxtQkFBZ0g7UUFBaEgsOEJBQWdIO1FBQzlHLDBCQUtFO1FBQ0osaUJBQU0sRUFBQTtRQUVSLG9CQUFpQztRQUFqQyw4QkFBaUMsYUFBQTtRQUU3QixxRUFLTTtRQUNSLGlCQUFNO1FBQ04scUVBQXdKO1FBQ3hKLCtCQUFtQztRQUNqQyx1RUFLTTtRQUNOLHdFQUVNO1FBQ1IsaUJBQU07UUFDTiwyQkFBa0U7UUFDbEUsZ0NBQTRCLGtCQUFBO1FBQ21DLGtHQUFTLGtCQUFjLElBQUM7UUFBQyxzQkFBSztRQUFBLGlCQUFTO1FBQ3BHLG1DQUFnRDtRQUF6QixrR0FBUyxrQkFBYyxJQUFDO1FBQUMsc0JBQUs7UUFBQSxpQkFBUyxFQUFBLEVBQUEsRUFBQTs7UUFwQzVCLDZDQUEyQjtRQWNyQyxlQUFzQjtRQUF0QixpREFBc0I7UUFPYSxlQUFtRjtRQUFuRixnSEFBbUY7UUFFdEgsZUFBaUM7UUFBakMsNERBQWlDO1FBTXpCLGVBQStDO1FBQS9DLG9FQUErQztRQUkxRCxlQUFvQztRQUFwQyxvREFBb0M7UUFFbEMsZUFBcUM7UUFBckMsb0RBQXFDOzt1RkQ1QnJELG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLGtCQUFrQjtzQ0FLbkIsV0FBVztrQkFBbkIsS0FBSztZQUNHLGVBQWU7a0JBQXZCLEtBQUs7WUFFSSxjQUFjO2tCQUF2QixNQUFNO1lBRXFCLFNBQVM7a0JBQXBDLFNBQVM7bUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtdGFibGUtZmlsdGVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcImZpbHRlci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcImZpbHRlci5jb21wb25lbnQuY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZmlsdGVyc0RhdGE6IEFycmF5PEZpbHRlcj4gPSBbXTtcbiAgQElucHV0KCkgY29udGFpbmVyU3R5bGVzOiBhbnkgPSB7fTtcblxuICBAT3V0cHV0KCkgZmlsdGVyc0FwcGxpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKFwibWFpbkNvbnRhaW5lclwiKSBjb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgZmlsdGVyc01hcDogYW55ID0ge307XG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSBcIlwiO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcnNEYXRhLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyc01hcFtmaWx0ZXIudmFsdWVdID0gZmlsdGVyO1xuICAgIH0pO1xuICB9XG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLmZpbHRlcnNEYXRhLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyc01hcFtmaWx0ZXIudmFsdWVdLmNoZWNrZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLmZpbHRlcnNBcHBsaWVkLmVtaXQoW10pO1xuICB9XG4gIGFwcGx5RmlsdGVycygpIHtcbiAgICBsZXQgbGlzdCA9IE9iamVjdC52YWx1ZXModGhpcy5maWx0ZXJzTWFwKVxuICAgICAgLmZpbHRlcigoZmlsdGVyOiBGaWx0ZXIgfCBhbnkpID0+IGZpbHRlci5jaGVja2VkKVxuICAgICAgLm1hcCgoZmlsdGVyOiBGaWx0ZXIgfCBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiBmaWx0ZXIubmFtZSxcbiAgICAgICAgICB2YWx1ZTogZmlsdGVyLnZhbHVlXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB0aGlzLmZpbHRlcnNBcHBsaWVkLmVtaXQobGlzdCk7XG4gIH1cbiAgdXBkYXRlU2VhcmNoVmFsdWUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbiAgdXBkYXRlRmlsdGVyKGRhdGE6IGFueSkge1xuICAgIGlmICh0aGlzLmZpbHRlcnNNYXBbZGF0YS5uYW1lXSkge1xuICAgICAgdGhpcy5maWx0ZXJzTWFwW2RhdGEubmFtZV0uY2hlY2tlZCA9ICF0aGlzLmZpbHRlcnNNYXBbZGF0YS5uYW1lXS5jaGVja2VkO1xuICAgIH1cbiAgfVxuICBnZXRGaWx0ZXJzQmFzZWRPblNlYXJjaFZhbHVlKCk6IEZpbHRlcltdIHwgYW55IHtcbiAgICBsZXQgbGlzdCA9IE9iamVjdC52YWx1ZXModGhpcy5maWx0ZXJzTWFwKTtcbiAgICBsaXN0ID0gbGlzdC5maWx0ZXIoKGZpbHRlcjogRmlsdGVyIHwgYW55KSA9PiB7XG4gICAgICByZXR1cm4gZmlsdGVyLm5hbWUubWF0Y2gobmV3IFJlZ0V4cCh0aGlzLnNlYXJjaFZhbHVlLCBcImlcIikpO1xuICAgIH0pO1xuICAgIHJldHVybiBsaXN0LnNvcnQodGhpcy5teVNvcnQpO1xuICB9XG4gIGdldENoZWNrZWRGaWx0ZXJzKCk6IEZpbHRlcltdIHwgYW55IHtcbiAgICBsZXQgbGlzdCA9IE9iamVjdC52YWx1ZXModGhpcy5maWx0ZXJzTWFwKTtcbiAgICBsaXN0ID0gbGlzdC5maWx0ZXIoKGZpbHRlcjogRmlsdGVyIHwgYW55KSA9PiBmaWx0ZXIuY2hlY2tlZCkuc29ydCh0aGlzLm15U29ydCk7XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cbiAgbXlTb3J0ID0gKGE6IEZpbHRlciB8IGFueSwgYjogRmlsdGVyIHwgYW55KSA9PiB7XG4gICAgaWYgKGEubmFtZSA8IGIubmFtZSkgcmV0dXJuIC0xO1xuICAgIGVsc2UgaWYgKGIubmFtZSA8IGEubmFtZSkgcmV0dXJuIDE7XG4gICAgZWxzZSByZXR1cm4gMDtcbiAgfTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBjaGVja2VkOiBib29sZWFuO1xufVxuIiwiPGRpdiBpZD1cIm1haW4tY29udGFpbmVyXCIgI21haW5Db250YWluZXIgW25nU3R5bGVdPVwiY29udGFpbmVyU3R5bGVzXCI+XG4gIDxkaXYgaWQ9XCJzZWFyY2gtYmFyLWNvbnRhaW5lclwiPlxuICAgIDxpbnB1dCAoa2V5dXApPVwidXBkYXRlU2VhcmNoVmFsdWUoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiAvPlxuICAgIDxzdmcgaWQ9XCJzZWFyY2gtaWNvblwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgZD1cIk0xLjIxNDk2IDguMTQ1NjNDMS4yMTQ5NiA0LjMxNzkgNC4zMzcwOSAxLjIxMTY1IDguMTkyNDkgMS4yMTE2NUMxMi4wNDc5IDEuMjExNjUgMTUuMTcgNC4zMTc5IDE1LjE3IDguMTQ1NjNDMTUuMTcgOS42OTMwOCAxNC42NTk4IDExLjEyMjYgMTMuNzk3IDEyLjI3NjdMMTIuMzY4NCAxMy43MDEzQzExLjIwNDMgMTQuNTY2OCA5Ljc1ODkxIDE1LjA3OTYgOC4xOTI0OSAxNS4wNzk2QzQuMzM3MDkgMTUuMDc5NiAxLjIxNDk2IDExLjk3MzQgMS4yMTQ5NiA4LjE0NTYzWk0xMi45NDE5IDE0Ljc4MzVDMTEuNjAyIDE1LjczMjkgOS45NjI1OSAxNi4yOTEzIDguMTkyNDkgMTYuMjkxM0MzLjY2OTY1IDE2LjI5MTMgLTAuMDAwMTIyMDcgMTIuNjQ2MSAtMC4wMDAxMjIwNyA4LjE0NTYzQy0wLjAwMDEyMjA3IDMuNjQ1MTIgMy42Njk2NSAwIDguMTkyNDkgMEMxMi43MTUzIDAgMTYuMzg1MSAzLjY0NTEyIDE2LjM4NTEgOC4xNDU2M0MxNi4zODUxIDkuOTM3MTMgMTUuODAzNiAxMS41OTMxIDE0LjgxODMgMTIuOTM3NUwxNi44MzYgMTQuNDA0OEMxNy42NzA0IDE0LjkxMiAxOC43NTUzIDE1LjY1NDMgMTcuMjQ1MyAxNy4yMTVDMTUuNzM1MiAxOC43NzU2IDE1LjAwOTggMTcuNjY2MyAxNC40OTkgMTYuODM2NEwxMi45NDE5IDE0Ljc4MzVaXCJcbiAgICAgICAgZmlsbD1cIiM2QTczN0RcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgPC9kaXY+XG4gIDxkaXYgaWQ9XCJmaWx0ZXJzLW1haW4tY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZpbHRlcnMtc3ViLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGdldENoZWNrZWRGaWx0ZXJzKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlclwiPlxuICAgICAgICAgIDxtaXMtY2hlY2tib3ggW2NoZWNrZWRdPVwidHJ1ZVwiIFtuYW1lXT1cImZpbHRlci52YWx1ZVwiICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVGaWx0ZXIoJGV2ZW50KVwiPjwvbWlzLWNoZWNrYm94PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsdGVyLXRleHRcIj57eyBmaWx0ZXIubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCIgW25nU3R5bGVdPVwieyAnbWFyZ2luJzogJzE2cHggMHB4JyB9XCIgKm5nSWY9XCJnZXRDaGVja2VkRmlsdGVycygpLmxlbmd0aCAmJiBnZXRDaGVja2VkRmlsdGVycygpLmxlbmd0aCA8IGZpbHRlcnNEYXRhLmxlbmd0aFwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXJzLXN1Yi1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBnZXRGaWx0ZXJzQmFzZWRPblNlYXJjaFZhbHVlKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlclwiICpuZ0lmPVwiIWZpbHRlci5jaGVja2VkXCI+XG4gICAgICAgICAgPG1pcy1jaGVja2JveCBbY2hlY2tlZF09XCJmYWxzZVwiIFtuYW1lXT1cImZpbHRlci52YWx1ZVwiICh2YWx1ZUNoYW5nZSk9XCJ1cGRhdGVGaWx0ZXIoJGV2ZW50KVwiPjwvbWlzLWNoZWNrYm94PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsdGVyLXRleHRcIj57eyBmaWx0ZXIubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgaWQ9XCJuby1yZXN1bHRzLWNvbnRhaW5lclwiICpuZ0lmPVwiZ2V0RmlsdGVyc0Jhc2VkT25TZWFyY2hWYWx1ZSgpLmxlbmd0aCA8IDFcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWx0ZXItdGV4dFwiPk5vIG1hdGNoZXMgZm91bmQ8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCIgW25nU3R5bGVdPVwieyAnbWFyZ2luJzogJzE2cHggMHB4JyB9XCI+PC9kaXY+XG4gICAgPGRpdiBpZD1cImJ1dHRvbnMtY29udGFpbmVyXCI+XG4gICAgICA8YnV0dG9uIGlkPVwicmVzZXQtYnRuXCIgW25nU3R5bGVdPVwieyAnbWFyZ2luLXJpZ2h0JzogJzhweCcgfVwiIChjbGljayk9XCJyZXNldEZpbHRlcnMoKVwiPlJlc2V0PC9idXR0b24+XG4gICAgICA8YnV0dG9uIGlkPVwiYXBwbHktYnRuXCIgKGNsaWNrKT1cImFwcGx5RmlsdGVycygpXCI+QXBwbHk8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -116,19 +116,26 @@ function TableComponent_div_7_div_2_Template(rf, ctx) { if (rf & 1) {
116
116
  i0.ɵɵadvance(1);
117
117
  i0.ɵɵproperty("ngIf", (ctx_r25.config.colConfig[i_r28] == null ? null : ctx_r25.config.colConfig[i_r28].type) === "custom");
118
118
  } }
119
+ const _c8 = function () { return { display: "flex", justifyContent: "center", alignItems: "center", padding: "16px" }; };
119
120
  function TableComponent_div_7_div_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
120
121
  i0.ɵɵelementContainerStart(0);
121
122
  i0.ɵɵelementStart(1, "div", 32);
122
- i0.ɵɵtext(2, "Loading...");
123
+ i0.ɵɵtext(2, " Loading... ");
123
124
  i0.ɵɵelementEnd();
124
125
  i0.ɵɵelementContainerEnd();
126
+ } if (rf & 2) {
127
+ i0.ɵɵadvance(1);
128
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c8));
125
129
  } }
126
130
  function TableComponent_div_7_div_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
127
131
  i0.ɵɵelementContainerStart(0);
128
132
  i0.ɵɵelementStart(1, "div", 32);
129
- i0.ɵɵtext(2, "No Data Available...");
133
+ i0.ɵɵtext(2, " No Data Available... ");
130
134
  i0.ɵɵelementEnd();
131
135
  i0.ɵɵelementContainerEnd();
136
+ } if (rf & 2) {
137
+ i0.ɵɵadvance(1);
138
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(1, _c8));
132
139
  } }
133
140
  function TableComponent_div_7_div_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {
134
141
  i0.ɵɵelementContainerStart(0);
@@ -141,8 +148,8 @@ function TableComponent_div_7_div_3_ng_container_3_Template(rf, ctx) { if (rf &
141
148
  } }
142
149
  function TableComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {
143
150
  i0.ɵɵelementStart(0, "div", 31);
144
- i0.ɵɵtemplate(1, TableComponent_div_7_div_3_ng_container_1_Template, 3, 0, "ng-container", 15);
145
- i0.ɵɵtemplate(2, TableComponent_div_7_div_3_ng_container_2_Template, 3, 0, "ng-container", 15);
151
+ i0.ɵɵtemplate(1, TableComponent_div_7_div_3_ng_container_1_Template, 3, 2, "ng-container", 15);
152
+ i0.ɵɵtemplate(2, TableComponent_div_7_div_3_ng_container_2_Template, 3, 2, "ng-container", 15);
146
153
  i0.ɵɵtemplate(3, TableComponent_div_7_div_3_ng_container_3_Template, 2, 2, "ng-container", 15);
147
154
  i0.ɵɵelementEnd();
148
155
  } if (rf & 2) {
@@ -154,8 +161,8 @@ function TableComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {
154
161
  i0.ɵɵadvance(1);
155
162
  i0.ɵɵproperty("ngIf", !ctx_r26.subTableDataLoading && ctx_r26.subTableData.length > 0);
156
163
  } }
157
- const _c8 = function (a0, a1) { return { "t-row-hover": a0, "active-row": a1 }; };
158
- const _c9 = function (a0) { return { "min-height": a0 }; };
164
+ const _c9 = function (a0, a1) { return { "t-row-hover": a0, "active-row": a1 }; };
165
+ const _c10 = function (a0) { return { "min-height": a0 }; };
159
166
  function TableComponent_div_7_Template(rf, ctx) { if (rf & 1) {
160
167
  const _r40 = i0.ɵɵgetCurrentView();
161
168
  i0.ɵɵelementStart(0, "div", 23)(1, "div", 24);
@@ -169,13 +176,13 @@ function TableComponent_div_7_Template(rf, ctx) { if (rf & 1) {
169
176
  const i_r24 = ctx.index;
170
177
  const ctx_r3 = i0.ɵɵnextContext();
171
178
  i0.ɵɵadvance(1);
172
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(4, _c8, ctx_r3.config.cellHover, i_r24 === ctx_r3.activeRowIndex))("ngStyle", i0.ɵɵpureFunction1(7, _c9, (ctx_r3.config == null ? null : ctx_r3.config.rowConfig == null ? null : ctx_r3.config.rowConfig.height) ? ctx_r3.config.rowConfig.height : "44px"));
179
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(4, _c9, ctx_r3.config.cellHover, i_r24 === ctx_r3.activeRowIndex))("ngStyle", i0.ɵɵpureFunction1(7, _c10, (ctx_r3.config == null ? null : ctx_r3.config.rowConfig == null ? null : ctx_r3.config.rowConfig.height) ? ctx_r3.config.rowConfig.height : "44px"));
173
180
  i0.ɵɵadvance(1);
174
181
  i0.ɵɵproperty("ngForOf", row_r23);
175
182
  i0.ɵɵadvance(1);
176
183
  i0.ɵɵproperty("ngIf", (ctx_r3.config == null ? null : ctx_r3.config.canExpand) && ctx_r3.expandedIndex === i_r24);
177
184
  } }
178
- const _c10 = function (a0) { return { "page-active": a0 }; };
185
+ const _c11 = function (a0) { return { "page-active": a0 }; };
179
186
  function TableComponent_div_8_div_7_span_1_Template(rf, ctx) { if (rf & 1) {
180
187
  const _r47 = i0.ɵɵgetCurrentView();
181
188
  i0.ɵɵelementStart(0, "span", 44);
@@ -185,21 +192,30 @@ function TableComponent_div_8_div_7_span_1_Template(rf, ctx) { if (rf & 1) {
185
192
  } if (rf & 2) {
186
193
  const pageNumber_r42 = i0.ɵɵnextContext().$implicit;
187
194
  const ctx_r43 = i0.ɵɵnextContext(2);
188
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c10, pageNumber_r42 == (ctx_r43.config.paginationConfig == null ? null : ctx_r43.config.paginationConfig.selectedPage)));
195
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c11, pageNumber_r42 == (ctx_r43.config.paginationConfig == null ? null : ctx_r43.config.paginationConfig.selectedPage)));
189
196
  i0.ɵɵadvance(1);
190
197
  i0.ɵɵtextInterpolate(pageNumber_r42);
191
198
  } }
199
+ const _c12 = function () { return { display: "flex" }; };
200
+ const _c13 = function () { return { "margin-right": "4px" }; };
192
201
  function TableComponent_div_8_div_7_span_2_Template(rf, ctx) { if (rf & 1) {
193
- i0.ɵɵelementStart(0, "span", 45)(1, "div", 46);
194
- i0.ɵɵelement(2, "span", 47)(3, "span", 47)(4, "span", 48);
202
+ i0.ɵɵelementStart(0, "span", 45)(1, "div", 32);
203
+ i0.ɵɵelement(2, "span", 46)(3, "span", 46)(4, "span", 47);
195
204
  i0.ɵɵelementEnd()();
205
+ } if (rf & 2) {
206
+ i0.ɵɵadvance(1);
207
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(3, _c12));
208
+ i0.ɵɵadvance(1);
209
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(4, _c13));
210
+ i0.ɵɵadvance(1);
211
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction0(5, _c13));
196
212
  } }
197
213
  function TableComponent_div_8_div_7_Template(rf, ctx) { if (rf & 1) {
198
214
  i0.ɵɵnamespaceSVG();
199
215
  i0.ɵɵnamespaceHTML();
200
216
  i0.ɵɵelementStart(0, "div");
201
217
  i0.ɵɵtemplate(1, TableComponent_div_8_div_7_span_1_Template, 2, 4, "span", 42);
202
- i0.ɵɵtemplate(2, TableComponent_div_8_div_7_span_2_Template, 5, 0, "span", 43);
218
+ i0.ɵɵtemplate(2, TableComponent_div_8_div_7_span_2_Template, 5, 6, "span", 43);
203
219
  i0.ɵɵelementEnd();
204
220
  } if (rf & 2) {
205
221
  const pageNumber_r42 = ctx.$implicit;
@@ -234,8 +250,8 @@ function TableComponent_div_8_Template(rf, ctx) { if (rf & 1) {
234
250
  i0.ɵɵadvance(5);
235
251
  i0.ɵɵproperty("ngForOf", ctx_r4.pages);
236
252
  } }
237
- const _c11 = function (a0, a1, a2) { return { height: a0, width: a1, "overflow-x": a2 }; };
238
- const _c12 = function (a0, a1, a2) { return { "no-scrollbar": a0, scrollbar: a1, "scroll-horizontally": a2 }; };
253
+ const _c14 = function (a0, a1, a2) { return { height: a0, width: a1, "overflow-x": a2 }; };
254
+ const _c15 = function (a0, a1, a2) { return { "no-scrollbar": a0, scrollbar: a1, "scroll-horizontally": a2 }; };
239
255
  export class TableComponent {
240
256
  constructor(renderer) {
241
257
  this.renderer = renderer;
@@ -415,7 +431,7 @@ TableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableCompone
415
431
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
416
432
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.table = _t.first);
417
433
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.colHeaders = _t);
418
- } }, inputs: { config: ["tableConfig", "config"], subTableconfig: "subTableconfig", tableDataLoading: "tableDataLoading", expandedIndex: "expandedIndex", tableData: "tableData", subTableData: "subTableData", subTableDataLoading: "subTableDataLoading" }, outputs: { filtersUpdated: "filtersUpdated", pageSelected: "pageSelected" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 15, consts: [["id", "main-container", 3, "ngStyle"], [3, "containerStyles", "filtersData", "filtersApplied", 4, "ngIf"], ["id", "table-container", 3, "ngClass"], ["table", ""], ["id", "col-headers-container", 3, "ngStyle"], ["class", "col-header", 3, "ngStyle", "click", 4, "ngFor", "ngForOf"], ["id", "data-container"], ["class", "row-wrapper", 4, "ngFor", "ngForOf"], ["id", "pagination-container", 4, "ngIf"], [3, "containerStyles", "filtersData", "filtersApplied"], ["filter", ""], [1, "col-header", 3, "ngStyle", "click"], ["colHeaderRef", ""], ["class", "col-header-text", 4, "ngIf"], ["class", "filter-icon", 3, "click", 4, "ngIf"], [4, "ngIf"], [1, "col-header-text"], [1, "filter-icon", 3, "click"], ["id", "filter-active", 4, "ngIf"], ["fill", "none", "height", "10", "viewBox", "0 0 13 10", "width", "13", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z", "fill", "#181F33", "fill-rule", "evenodd"], ["id", "filter-active"], ["customTableCell", "", 3, "customComponent", "data"], [1, "row-wrapper"], [1, "t-row", 3, "ngClass", "ngStyle", "click"], ["class", "t-col-container", 3, "ngStyle", "ngClass", "click", 4, "ngFor", "ngForOf"], ["class", "sub-row", 4, "ngIf"], [1, "t-col-container", 3, "ngStyle", "ngClass", "click"], [1, "t-col", 3, "ngStyle"], ["class", "t-col-text", 3, "ngStyle", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle"], [1, "sub-row"], [2, "display", "flex", "justify-content", "center", "align-items", "center", "padding", "16px"], [3, "config", "tableData"], ["id", "pagination-container"], ["id", "pagination-text"], ["id", "pages-container"], [1, "page", 3, "click"], ["fill", "none", "height", "10", "viewBox", "0 0 7 10", "width", "7", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], [4, "ngFor", "ngForOf"], ["clip-rule", "evenodd", "d", "M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], ["class", "page", 3, "ngClass", "click", 4, "ngIf"], ["class", "page-seperator", 4, "ngIf"], [1, "page", 3, "ngClass", "click"], [1, "page-seperator"], [2, "display", "flex"], [1, "dot", 2, "margin-right", "4px"], [1, "dot"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
434
+ } }, inputs: { config: ["tableConfig", "config"], subTableconfig: "subTableconfig", tableDataLoading: "tableDataLoading", expandedIndex: "expandedIndex", tableData: "tableData", subTableData: "subTableData", subTableDataLoading: "subTableDataLoading" }, outputs: { filtersUpdated: "filtersUpdated", pageSelected: "pageSelected" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 15, consts: [["id", "main-container", 3, "ngStyle"], [3, "containerStyles", "filtersData", "filtersApplied", 4, "ngIf"], ["id", "table-container", 3, "ngClass"], ["table", ""], ["id", "col-headers-container", 3, "ngStyle"], ["class", "col-header", 3, "ngStyle", "click", 4, "ngFor", "ngForOf"], ["id", "data-container"], ["class", "row-wrapper", 4, "ngFor", "ngForOf"], ["id", "pagination-container", 4, "ngIf"], [3, "containerStyles", "filtersData", "filtersApplied"], ["filter", ""], [1, "col-header", 3, "ngStyle", "click"], ["colHeaderRef", ""], ["class", "col-header-text", 4, "ngIf"], ["class", "filter-icon", 3, "click", 4, "ngIf"], [4, "ngIf"], [1, "col-header-text"], [1, "filter-icon", 3, "click"], ["id", "filter-active", 4, "ngIf"], ["fill", "none", "height", "10", "viewBox", "0 0 13 10", "width", "13", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z", "fill", "#181F33", "fill-rule", "evenodd"], ["id", "filter-active"], ["customTableCell", "", 3, "customComponent", "data"], [1, "row-wrapper"], [1, "t-row", 3, "ngClass", "ngStyle", "click"], ["class", "t-col-container", 3, "ngStyle", "ngClass", "click", 4, "ngFor", "ngForOf"], ["class", "sub-row", 4, "ngIf"], [1, "t-col-container", 3, "ngStyle", "ngClass", "click"], [1, "t-col", 3, "ngStyle"], ["class", "t-col-text", 3, "ngStyle", 4, "ngIf"], [1, "t-col-text", 3, "ngStyle"], [1, "sub-row"], [3, "ngStyle"], [3, "config", "tableData"], ["id", "pagination-container"], ["id", "pagination-text"], ["id", "pages-container"], [1, "page", 3, "click"], ["fill", "none", "height", "10", "viewBox", "0 0 7 10", "width", "7", "xmlns", "http://www.w3.org/2000/svg"], ["clip-rule", "evenodd", "d", "M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], [4, "ngFor", "ngForOf"], ["clip-rule", "evenodd", "d", "M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z", "fill", "#181F33", "fill-rule", "evenodd"], ["class", "page", 3, "ngClass", "click", 4, "ngIf"], ["class", "page-seperator", 4, "ngIf"], [1, "page", 3, "ngClass", "click"], [1, "page-seperator"], [1, "dot", 3, "ngStyle"], [1, "dot"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
419
435
  i0.ɵɵelementStart(0, "div", 0);
420
436
  i0.ɵɵtemplate(1, TableComponent_mis_table_filter_1_Template, 2, 2, "mis-table-filter", 1);
421
437
  i0.ɵɵelementStart(2, "div", 2, 3)(4, "div", 4);
@@ -427,11 +443,11 @@ TableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableCompone
427
443
  i0.ɵɵtemplate(8, TableComponent_div_8_Template, 11, 4, "div", 8);
428
444
  i0.ɵɵelementEnd();
429
445
  } if (rf & 2) {
430
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(7, _c11, ctx.getContainerHeight(), ctx.getContainerWidth(), ctx.config.canScrollHorizontally ? "auto" : "unset"));
446
+ i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction3(7, _c14, ctx.getContainerHeight(), ctx.getContainerWidth(), ctx.config.canScrollHorizontally ? "auto" : "unset"));
431
447
  i0.ɵɵadvance(1);
432
448
  i0.ɵɵproperty("ngIf", ctx.showFilter);
433
449
  i0.ɵɵadvance(1);
434
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(11, _c12, ctx.expandedIndex < 0, !(ctx.expandedIndex < 0), ctx.config.canScrollHorizontally));
450
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(11, _c15, ctx.expandedIndex < 0, !(ctx.expandedIndex < 0), ctx.config.canScrollHorizontally));
435
451
  i0.ɵɵadvance(2);
436
452
  i0.ɵɵproperty("ngStyle", ctx.getColHeadersRowStyles());
437
453
  i0.ɵɵadvance(1);
@@ -440,10 +456,10 @@ TableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableCompone
440
456
  i0.ɵɵproperty("ngForOf", ctx.tableData);
441
457
  i0.ɵɵadvance(1);
442
458
  i0.ɵɵproperty("ngIf", (ctx.config == null ? null : ctx.config.paginationConfig) && (ctx.tableLength >= ctx.config.paginationConfig.rowsPerPage || (ctx.config.paginationConfig == null ? null : ctx.config.paginationConfig.selectedPage) !== 1));
443
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, i2.SubTableComponent, i3.TableFilterComponent, i4.CustomTableCellDirective], styles: ["#main-container[_ngcontent-%COMP%]{font-family:Lato,sans-serif;position:relative}.no-scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:0}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container[_ngcontent-%COMP%]{height:inherit;overflow-y:auto}.scroll-horizontally[_ngcontent-%COMP%]{height:inherit;width:-moz-fit-content;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container[_ngcontent-%COMP%]{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header[_ngcontent-%COMP%]{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text[_ngcontent-%COMP%]{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.filter-icon[_ngcontent-%COMP%]{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active[_ngcontent-%COMP%]{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row[_ngcontent-%COMP%]{height:auto;border-bottom:none}.loader[_ngcontent-%COMP%] .mat-progress-spinner circle, .mat-spinner[_ngcontent-%COMP%] circle[_ngcontent-%COMP%]{stroke:#0937b2}.t-row[_ngcontent-%COMP%]{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row[_ngcontent-%COMP%]:hover{background-color:#e7eefd}.active-row[_ngcontent-%COMP%]{background-color:#e6f6fd}.t-col-container[_ngcontent-%COMP%]{padding:0 16px}.t-row-hover[_ngcontent-%COMP%]:hover{background-color:#0000}.t-col-container-hover[_ngcontent-%COMP%]:hover{background-color:#e6ebf7}.t-col-container-hover[_ngcontent-%COMP%]:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover[_ngcontent-%COMP%]{border-right:1px solid #e0e0e0}.t-col[_ngcontent-%COMP%]{display:flex;align-items:center;height:100%}.t-col-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}#pagination-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container[_ngcontent-%COMP%]{display:flex;margin-right:32px}.page[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot[_ngcontent-%COMP%]{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active[_ngcontent-%COMP%]{color:#0937b2;border:1px solid #0937b2}"] });
459
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgStyle, i2.SubTableComponent, i3.TableFilterComponent, i4.CustomTableCellDirective], styles: ["#main-container[_ngcontent-%COMP%]{font-family:Lato,sans-serif;position:relative}.no-scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:0}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container[_ngcontent-%COMP%]{height:inherit;overflow-y:auto}.scroll-horizontally[_ngcontent-%COMP%]{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container[_ngcontent-%COMP%]{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header[_ngcontent-%COMP%]{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text[_ngcontent-%COMP%]{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.filter-icon[_ngcontent-%COMP%]{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active[_ngcontent-%COMP%]{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row[_ngcontent-%COMP%]{height:auto;border-bottom:none}.loader[_ngcontent-%COMP%] .mat-progress-spinner circle, .mat-spinner[_ngcontent-%COMP%] circle[_ngcontent-%COMP%]{stroke:#0937b2}.t-row[_ngcontent-%COMP%]{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row[_ngcontent-%COMP%]:hover{background-color:#e7eefd}.active-row[_ngcontent-%COMP%]{background-color:#e6f6fd}.t-col-container[_ngcontent-%COMP%]{padding:0 16px}.t-row-hover[_ngcontent-%COMP%]:hover{background-color:#0000}.t-col-container-hover[_ngcontent-%COMP%]:hover{background-color:#e6ebf7}.t-col-container-hover[_ngcontent-%COMP%]:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover[_ngcontent-%COMP%]{border-right:1px solid #e0e0e0}.t-col[_ngcontent-%COMP%]{display:flex;align-items:center;height:100%}.t-col-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}#pagination-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text[_ngcontent-%COMP%]{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container[_ngcontent-%COMP%]{display:flex;margin-right:32px}.page[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot[_ngcontent-%COMP%]{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active[_ngcontent-%COMP%]{color:#0937b2;border:1px solid #0937b2}"] });
444
460
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
445
461
  type: Component,
446
- args: [{ selector: "mis-table", template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div\n #table\n id=\"table-container\"\n [ngClass]=\"{ 'no-scrollbar': expandedIndex < 0, scrollbar: !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\"\n >\n <div\n [ngStyle]=\"getColHeadersRowStyles()\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"filterData = colHeader.filters; toggleFilter(colHeader.data); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type !== 'custom' && colHeader?.filters && colHeader?.filters?.length > 0\"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index\">\n <div\n class=\"t-row\"\n [ngClass]=\"{ 't-row-hover': config.cellHover, 'active-row': i === activeRowIndex }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n [ngClass]=\"{ 't-col-container-hover': config.cellHover }\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i]?.action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i]?.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i]?.type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i]?.type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div style=\"display: flex; justify-content: center; align-items: center; padding: 16px\">Loading...</div>\n </ng-container>\n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div style=\"display: flex; justify-content: center; align-items: center; padding: 16px\">No Data Available...</div>\n </ng-container>\n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"config?.paginationConfig && (tableLength >= config.paginationConfig.rowsPerPage || config.paginationConfig?.selectedPage !== 1)\"\n id=\"pagination-container\"\n >\n <p id=\"pagination-text\">\n Showing\n {{ (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + tableLength\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == config.paginationConfig?.selectedPage }\"\n class=\"page\"\n >{{ pageNumber }}</span\n >\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div style=\"display: flex\">\n <span class=\"dot\" style=\"margin-right: 4px\"></span>\n <span class=\"dot\" style=\"margin-right: 4px\"></span>\n <span class=\"dot\"></span>\n </div>\n </span>\n </div>\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage + 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n", styles: ["#main-container{font-family:Lato,sans-serif;position:relative}.no-scrollbar::-webkit-scrollbar{width:0}.scrollbar::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container{height:inherit;overflow-y:auto}.scroll-horizontally{height:inherit;width:-moz-fit-content;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#e7eefd}.active-row{background-color:#e6f6fd}.t-col-container{padding:0 16px}.t-row-hover:hover{background-color:#0000}.t-col-container-hover:hover{background-color:#e6ebf7}.t-col-container-hover:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover{border-right:1px solid #e0e0e0}.t-col{display:flex;align-items:center;height:100%}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}\n"] }]
462
+ args: [{ selector: "mis-table", template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div\n #table\n id=\"table-container\"\n [ngClass]=\"{ 'no-scrollbar': expandedIndex < 0, scrollbar: !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\"\n >\n <div\n [ngStyle]=\"getColHeadersRowStyles()\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent\n ? colHeader?.style?.justifyContent\n : colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"filterData = colHeader.filters; toggleFilter(colHeader.data); $event.stopPropagation()\"\n *ngIf=\"colHeader?.type !== 'custom' && colHeader?.filters && colHeader?.filters?.length > 0\"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index\">\n <div\n class=\"t-row\"\n [ngClass]=\"{ 't-row-hover': config.cellHover, 'active-row': i === activeRowIndex }\"\n [ngStyle]=\"{ 'min-height': config?.rowConfig?.height ? config.rowConfig.height : '44px' }\"\n (click)=\"selectRow(i)\"\n >\n <div\n (click)=\"config?.colConfig[i]?.action ? config?.colConfig[i]?.action(col) : null\"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n [ngClass]=\"{ 't-col-container-hover': config.cellHover }\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i]?.action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent\n ? config.colConfig[i]?.style?.justifyContent\n : config.colConfig[i]?.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\"\n >\n <p\n *ngIf=\"config.colConfig[i]?.type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color ? config?.colConfig[i]?.style?.color : ''\n }\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i]?.type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n Loading...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div [ngStyle]=\"{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n padding: '16px'\n }\">\n No Data Available...\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div\n *ngIf=\"config?.paginationConfig && (tableLength >= config.paginationConfig.rowsPerPage || config.paginationConfig?.selectedPage !== 1)\"\n id=\"pagination-container\"\n >\n <p id=\"pagination-text\">\n Showing\n {{ (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (config.paginationConfig?.selectedPage - 1) * config.paginationConfig.rowsPerPage + tableLength\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage - 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == config.paginationConfig?.selectedPage }\"\n class=\"page\"\n >{{ pageNumber }}</span\n >\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div [ngStyle]=\"{ display: 'flex' }\">\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\" [ngStyle]=\"{ 'margin-right': '4px' }\"></span>\n <span class=\"dot\"></span>\n </div> \n </span>\n </div>\n <span (click)=\"updateSelectedPage(config.paginationConfig?.selectedPage + 1)\" class=\"page\">\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 7 10\" width=\"7\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n", styles: ["#main-container{font-family:Lato,sans-serif;position:relative}.no-scrollbar::-webkit-scrollbar{width:0}.scrollbar::-webkit-scrollbar{width:8px;height:8px;border-radius:15px}.scrollbar::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:15px}#table-container{height:inherit;overflow-y:auto}.scroll-horizontally{height:inherit;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container{display:flex;align-items:center;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;display:flex;align-items:center;height:100%}.col-header-text{font-style:normal;font-weight:700;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#e7eefd}.active-row{background-color:#e6f6fd}.t-col-container{padding:0 16px}.t-row-hover:hover{background-color:#0000}.t-col-container-hover:hover{background-color:#e6ebf7}.t-col-container-hover:first-child{border-left:1px solid #e0e0e0}.t-col-container-hover{border-right:1px solid #e0e0e0}.t-col{display:flex;align-items:center;height:100%}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;display:flex;align-items:center;letter-spacing:.2px;margin:0}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{display:flex;justify-content:center;align-items:center;border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;width:32px;height:32px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;margin-right:8px;cursor:pointer}.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}\n"] }]
447
463
  }], function () { return [{ type: i0.Renderer2 }]; }, { filtersUpdated: [{
448
464
  type: Output
449
465
  }], filter: [{
@@ -473,4 +489,4 @@ TableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableCompone
473
489
  type: ViewChild,
474
490
  args: ["table"]
475
491
  }] }); })();
476
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztJQ0xyQiwrQ0FNQztJQUpDLDBNQUFrQixlQUFBLG1DQUE0QixDQUFBLElBQUM7SUFJaEQsaUJBQW1COzs7SUFGbEIsOERBQXlDLGtDQUFBOzs7SUEyQnJDLDZCQUFnRTtJQUM5RCxZQUNGO0lBQUEsaUJBQUk7OztJQURGLGVBQ0Y7SUFERSx5RkFDRjs7O0lBTUUsMkJBQW1GOzs7O0lBTHJGLGdDQUlDO0lBSEMsK1BBQXlDLHVDQUE0QixTQUFFLGVBQUEsd0JBQXdCLENBQUEsSUFBQztJQUloRywrRUFBbUY7SUFDbkYsbUJBQStGO0lBQS9GLCtCQUErRjtJQUM3RiwyQkFLRTtJQUNKLGlCQUFNLEVBQUE7Ozs7SUFSQyxlQUFnRDtJQUFoRCx3SUFBZ0Q7Ozs7SUFVekQsd0ZBS2U7OztJQUhiLHlGQUEyQywyQkFBQTs7Ozs7SUFuQy9DLG1DQWNDO0lBWkMsc0xBQVMsbUdBQW9CLGlDQUE0QixHQUFHLElBQUksQ0FBQSxJQUFDO0lBYWpFLGtFQUVJO0lBQ0osd0VBY087SUFDUCxpRUFLZTtJQUNqQixpQkFBTTs7O0lBbENKLGtkQVFFO0lBRUUsZUFBa0M7SUFBbEMscUZBQWtDO0lBS25DLGVBQTBGO0lBQTFGLHNQQUEwRjtJQWMxRixlQUFrQztJQUFsQyxxRkFBa0M7Ozs7SUFxQy9CLDZCQU1DO0lBQ0MsWUFDRjtJQUFBLGlCQUFJOzs7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QUFkLHVDQUFjO1FBOER4RCxlQUFxSTtRQUFySSxpUEFBcUk7O3VGRDNHN0gsY0FBYztjQUwxQixTQUFTOzJCQUNFLFdBQVc7NERBZVgsY0FBYztrQkFBdkIsTUFBTTtZQUljLE1BQU07a0JBQTFCLFNBQVM7bUJBQUMsUUFBUTtZQUNXLFVBQVU7a0JBQXZDLFlBQVk7bUJBQUMsY0FBYztZQUtsQixZQUFZO2tCQUFyQixNQUFNO1lBRWUsTUFBTTtrQkFBM0IsS0FBSzttQkFBQyxhQUFhO1lBQ1gsY0FBYztrQkFBdEIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUNjLEtBQUs7a0JBQXhCLFNBQVM7bUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGaWx0ZXIsIFRhYmxlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vZmlsdGVyL2ZpbHRlci5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy10YWJsZVwiLFxuICB0ZW1wbGF0ZVVybDogXCJ0YWJsZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcInRhYmxlLmNvbXBvbmVudC5jc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG5cbiAgLy8gSW5pdGlhbGl6ZSB3aXRoIC0xIHRvIGluZGljYXRlIG5vIHJvdyBpcyBjb2xvcmVkIGF0IHRoZSBiZWdpbm5pbmdcbiAgYWN0aXZlUm93SW5kZXg6IG51bWJlciA9IDA7IFxuXG4gIC8vIEZpbHRlciByZWxhdGVkIHZhcmlhYmxlc1xuICBzaG93RmlsdGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbHRlck5hbWU6IHN0cmluZyA9IFwiXCI7XG4gIGZpbHRlckRhdGE6IEFycmF5PEZpbHRlcj4gPSBbXTtcbiAgZmlsdGVyQ29udGFpbmVyU3R5bGVzOiBhbnkgPSB7fTtcbiAgYXBwbGllZEZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4gfSA9IHt9O1xuICBAT3V0cHV0KCkgZmlsdGVyc1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBba2V5OiBzdHJpbmddOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PjtcbiAgfT4oKTtcblxuICBAVmlld0NoaWxkKFwiZmlsdGVyXCIpIGZpbHRlcjogVGFibGVGaWx0ZXJDb21wb25lbnQgfCBhbnk7XG4gIEBWaWV3Q2hpbGRyZW4oXCJjb2xIZWFkZXJSZWZcIikgY29sSGVhZGVyczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+IHwgYW55O1xuXG4gIC8vIFBhZ2luYXRpb24gcmVsYXRlZCB2YXJpYWJsZXNcbiAgcGFnZXM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgdGFibGVMZW5ndGg6IG51bWJlcjtcbiAgQE91dHB1dCgpIHBhZ2VTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBJbnB1dChcInRhYmxlQ29uZmlnXCIpIGNvbmZpZzogVGFibGVDb25maWcgfCBhbnk7XG4gIEBJbnB1dCgpIHN1YlRhYmxlY29uZmlnOiBUYWJsZUNvbmZpZyB8IGFueTtcbiAgQElucHV0KCkgdGFibGVEYXRhTG9hZGluZzogYm9vbGVhbiB8IGFueTtcbiAgQElucHV0KCkgZXhwYW5kZWRJbmRleDogbnVtYmVyIHwgYW55O1xuICBASW5wdXQoKSB0YWJsZURhdGE6IEFycmF5PEFycmF5PGFueT4+ID0gW107XG4gIEBJbnB1dCgpIHN1YlRhYmxlRGF0YTogQXJyYXk8QXJyYXk8YW55Pj4gPSBbXTtcbiAgQElucHV0KCkgc3ViVGFibGVEYXRhTG9hZGluZzogYm9vbGVhbiB8IGFueTtcbiAgQFZpZXdDaGlsZChcInRhYmxlXCIpIHRhYmxlOiBFbGVtZW50UmVmIHwgYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikgeyB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gaGFuZGxlIHJvdyBjbGlja1xuICBzZWxlY3RSb3coaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuYWN0aXZlUm93SW5kZXggPSBpbmRleDsgLy8gU2V0IHRoZSBzZWxlY3RlZCBpbmRleCB0byB0aGUgY2xpY2tlZCByb3cncyBpbmRleFxuICAgICEhdGhpcy5jb25maWcucm93Q29uZmlnLmFjdGlvbiAmJiB0aGlzLmNvbmZpZy5yb3dDb25maWcuYWN0aW9uKGluZGV4KTtcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlTGVuZ3RoID0gISF0aGlzLnRhYmxlRGF0YSA/IHRoaXMudGFibGVEYXRhLmxlbmd0aCA6IDA7XG4gICAgdGhpcy5pbml0aWFsaXplRmlsdGVycygpO1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVQYWdpbmF0aW9uKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbmZpZy5jYW5TY3JvbGxIb3Jpem9udGFsbHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb25maWcuY2FuU2Nyb2xsSG9yaXpvbnRhbGx5ID0gZmFsc2U7XG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBldmVudCA9PiB7XG4gICAgICBpZiAodGhpcy5maWx0ZXIpIHtcbiAgICAgICAgbGV0IGlzQ2hlY2tCb3hDbGlja2VkID0gdHJ1ZTtcbiAgICAgICAgbGV0IHRhcmdldEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTFNwYW5FbGVtZW50O1xuICAgICAgICBpZiAodGFyZ2V0RWxlbWVudC5jbGFzc05hbWUgPT09IFwiY2hlY2ttYXJrXCIpIHtcbiAgICAgICAgICBpc0NoZWNrQm94Q2xpY2tlZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaXNDbGlja0luc2lkZUVsZW1lbnQgPSB0aGlzLmZpbHRlci5jb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgICAgICBpZiAoIWlzQ2xpY2tJbnNpZGVFbGVtZW50ICYmICFpc0NoZWNrQm94Q2xpY2tlZCkge1xuICAgICAgICAgIHRoaXMudG9nZ2xlRmlsdGVyKHRoaXMuZmlsdGVyTmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcpIHtcbiAgICAgIGxldCBoZWlnaHQgPSB0aGlzLmNvbmZpZy5oZWlnaHQ7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudGFibGUubmF0aXZlRWxlbWVudCwgXCJoZWlnaHRcIiwgaGVpZ2h0IC0gNTYgKyBcInB4XCIpO1xuICAgIH1cbiAgfVxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnRhYmxlTGVuZ3RoID0gISF0aGlzLnRhYmxlRGF0YSA/IHRoaXMudGFibGVEYXRhLmxlbmd0aCA6IDA7XG4gICAgdGhpcy5hY3RpdmVSb3dJbmRleCA9IHRoaXMuY29uZmlnLmFjdGl2ZVJvd0luZGV4IHx8IDA7XG4gIH1cblxuICAvLyBGaWx0ZXIgcmVsYXRlZCBmdW5jdGlvbnNcbiAgaW5pdGlhbGl6ZUZpbHRlcnMoKSB7XG4gICAgZm9yIChsZXQgY29sSGVhZGVyIG9mIHRoaXMuY29uZmlnPy5jb2xIZWFkZXJDb25maWcpIHtcbiAgICAgIGlmIChjb2xIZWFkZXIuZmlsdGVycykge1xuICAgICAgICBsZXQgZmlsdGVycyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBmaWx0ZXIgb2YgY29sSGVhZGVyLmZpbHRlcnMpIHtcbiAgICAgICAgICBpZiAoZmlsdGVyLmNoZWNrZWQpIHtcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGZpbHRlci5uYW1lLFxuICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyLnZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcnMubGVuZ3RoID4gMCkgdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2xIZWFkZXIuZGF0YV0gPSBmaWx0ZXJzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB0b2dnbGVGaWx0ZXIoZmlsdGVyTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnNob3dGaWx0ZXIpIHtcbiAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IGZpbHRlck5hbWU7XG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSB0cnVlO1xuXG4gICAgICBsZXQgb2ZmU2V0ID0gMDtcbiAgICAgIGxldCBjb2xIZWFkZXJzUmV2ZXJzZWQgPSB0aGlzLmNvbEhlYWRlcnMudG9BcnJheSgpLnJldmVyc2UoKTtcblxuICAgICAgZm9yIChsZXQgaGVhZGVyIG9mIGNvbEhlYWRlcnNSZXZlcnNlZCkge1xuICAgICAgICBpZiAoaGVhZGVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0ID09PSBmaWx0ZXJOYW1lKSBicmVhaztcbiAgICAgICAgb2ZmU2V0ICs9IGhlYWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgfVxuICAgICAgdGhpcy5maWx0ZXJDb250YWluZXJTdHlsZXMgPSB7XG4gICAgICAgIHRvcDogXCI0NHB4XCIsXG4gICAgICAgIHJpZ2h0OiBvZmZTZXQgPiAwID8gb2ZmU2V0IC0gMTE2ICsgXCJweFwiIDogXCIxMnB4XCJcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IFwiXCI7XG4gICAgICB0aGlzLmZpbHRlckRhdGEgPSBbXTtcbiAgICAgIHRoaXMuc2hvd0ZpbHRlciA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICB1cGRhdGVBcHBsaWVkRmlsdGVycyhhcHBsaWVkRmlsdGVyczogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4pIHtcbiAgICBpZiAoYXBwbGllZEZpbHRlcnMubGVuZ3RoID09IDApIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmFwcGxpZWRGaWx0ZXJzW3RoaXMuZmlsdGVyTmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbdGhpcy5maWx0ZXJOYW1lXSA9IGFwcGxpZWRGaWx0ZXJzO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlcnNVcGRhdGVkLmVtaXQoeyAuLi50aGlzLmFwcGxpZWRGaWx0ZXJzIH0pO1xuICAgIHRoaXMudG9nZ2xlRmlsdGVyKHRoaXMuZmlsdGVyTmFtZSk7XG4gIH1cblxuICAvLyBQYWdpbmF0aW9uIHJlbGF0ZWQgZnVuY3Rpb25zXG4gIGluaXRpYWxpemVQYWdpbmF0aW9uKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICBsZXQgbGVuID0gdGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZy5ub09mUGFnZXM7XG4gICAgICBpZiAobGVuIDw9IDcpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gbGVuOyBpKyspIHtcbiAgICAgICAgICB0aGlzLnBhZ2VzLnB1c2goaSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbMSwgMiwgMywgNCwgMCwgbGVuXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdXBkYXRlU2VsZWN0ZWRQYWdlKHBhZ2VOdW1iZXI6IG51bWJlcikge1xuICAgIGlmIChwYWdlTnVtYmVyIDwgMSB8fCBwYWdlTnVtYmVyID4gdGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZy5ub09mUGFnZXMpIHJldHVybjtcbiAgICB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLnNlbGVjdGVkUGFnZSA9IHBhZ2VOdW1iZXI7XG4gICAgbGV0IGxlbiA9IHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcubm9PZlBhZ2VzO1xuICAgIGlmIChsZW4gPiA3KSB7XG4gICAgICBpZiAocGFnZU51bWJlciAtIDIgPD0gMSkge1xuICAgICAgICB0aGlzLnBhZ2VzID0gWzEsIDIsIDMsIDQsIDAsIGxlbl07XG4gICAgICB9IGVsc2UgaWYgKHBhZ2VOdW1iZXIgLSAyID4gMSAmJiBwYWdlTnVtYmVyICsgMiA8IGxlbikge1xuICAgICAgICB0aGlzLnBhZ2VzID0gWzEsIDAsIHBhZ2VOdW1iZXIgLSAxLCBwYWdlTnVtYmVyLCBwYWdlTnVtYmVyICsgMSwgMCwgbGVuXTtcbiAgICAgIH0gZWxzZSBpZiAocGFnZU51bWJlciArIDIgPj0gbGVuKSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbMSwgMCwgbGVuIC0gMywgbGVuIC0gMiwgbGVuIC0gMSwgbGVuXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wYWdlU2VsZWN0ZWQuZW1pdCh0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UpO1xuICB9XG5cbiAgLy8gTWFpbiBjb250YWluZXIgcmVsYXRlZCBmdW5jdGlvbnNcbiAgZ2V0Q29udGFpbmVySGVpZ2h0KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZz8uaGVpZ2h0KSByZXR1cm4gdGhpcy5jb25maWcuaGVpZ2h0O1xuICAgIGVsc2UgcmV0dXJuIFwiXCI7XG4gIH1cbiAgZ2V0Q29udGFpbmVyV2lkdGgoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnPy53aWR0aCkgcmV0dXJuIHRoaXMuY29uZmlnLndpZHRoO1xuICAgIGVsc2UgcmV0dXJuIFwiXCI7XG4gIH1cblxuICAvLyBDb2x1bW4gSGVhZGVycyByZWxhdGVkIGZ1bmN0aW9uc1xuICBnZXRDb2xIZWFkZXJzUm93U3R5bGVzKCkge1xuICAgIGNvbnN0IHsgY29sSGVhZGVyc1Jvd0NvbmZpZyB9ID0gdGhpcy5jb25maWc7XG4gICAgY29uc3QgbWluSGVpZ2h0ID0gY29sSGVhZGVyc1Jvd0NvbmZpZz8uaGVpZ2h0IHx8IFwiNDRweFwiO1xuICAgIGNvbnN0IGJvcmRlclRvcCA9IGNvbEhlYWRlcnNSb3dDb25maWc/LnN0eWxlPy5ib3JkZXJUb3AgfHwgXCJcIjtcbiAgICBjb25zdCBib3JkZXJCb3R0b20gPSBjb2xIZWFkZXJzUm93Q29uZmlnPy5zdHlsZT8uYm9yZGVyQm90dG9tIHx8IFwiMXB4IHNvbGlkICNFMEUwRTBcIjtcbiAgICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBjb2xIZWFkZXJzUm93Q29uZmlnPy5zdHlsZT8uYmFja2dyb3VuZENvbG9yIHx8IFwiI0ZGRkZGRlwiO1xuICAgIGNvbnN0IGZvbnRTaXplID0gY29sSGVhZGVyc1Jvd0NvbmZpZz8uc3R5bGU/LmZvbnRTaXplIHx8IFwiMTRweFwiO1xuICAgIHJldHVybiB7XG4gICAgICAnbWluLWhlaWdodCc6IG1pbkhlaWdodCxcbiAgICAgICdib3JkZXItdG9wJzogYm9yZGVyVG9wLFxuICAgICAgJ2JvcmRlci1ib3R0b20nOiBib3JkZXJCb3R0b20sXG4gICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGJhY2tncm91bmRDb2xvcixcbiAgICAgICdmb250LXNpemUnOiBmb250U2l6ZVxuICAgIH07XG4gIH1cblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29uZmlnIHtcbiAgaGVpZ2h0OiBzdHJpbmcgfCBcIjEwMCVcIjtcbiAgd2lkdGg6IHN0cmluZyB8IFwiMTAwJVwiO1xuICBwYWdpbmF0aW9uQ29uZmlnPzogUGFnaW5hdGlvbkNvbmZpZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIGNvbEhlYWRlcnNSb3dDb25maWc6IFJvd0NvbmZpZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIHJvd0NvbmZpZzogUm93Q29uZmlnIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgY29sSGVhZGVyQ29uZmlnOiBBcnJheTxDb2xIZWFkZXJDb25maWc+O1xuICBjb2xDb25maWc6IEFycmF5PENvbENvbmZpZz47XG4gIGNhbkV4cGFuZD86IGJvb2xlYW47XG4gIGNhblNjcm9sbEhvcml6b250YWxseT86IGJvb2xlYW47XG4gIGNlbGxIb3Zlcj86IGJvb2xlYW47XG4gIGFjdGl2ZVJvd0luZGV4PzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ29uZmlnIHtcbiAgbm9PZlBhZ2VzOiBudW1iZXI7XG4gIHJvd3NQZXJQYWdlOiBudW1iZXI7XG4gIHRvdGFsTm9PZlJvd3M6IG51bWJlcjtcbiAgc2VsZWN0ZWRQYWdlPzogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBSb3dDb25maWcge1xuICBoZWlnaHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsO1xuICBzdHlsZT86IHt9O1xuICBhY3Rpb24/OiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvbEhlYWRlckNvbmZpZyB7XG4gIHR5cGU6IFwidGV4dFwiIHwgXCJudW1iZXJcIiB8IFwiY3VzdG9tXCI7XG4gIGRhdGE6IGFueTtcbiAgY29tcG9uZW50UmVmPzogYW55O1xuICBmaWx0ZXJzPzogQXJyYXk8RmlsdGVyPiB8IG51bGw7XG4gIHN0eWxlPzoge307XG4gIGFjdGlvbj86IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29sQ29uZmlnIHtcbiAgdHlwZTogXCJ0ZXh0XCIgfCBcIm51bWJlclwiIHwgXCJjdXN0b21cIjtcbiAgY29tcG9uZW50UmVmPzogYW55O1xuICBzdHlsZT86IHt9O1xuICBhY3Rpb24/OiBhbnk7XG59XG4iLCI8ZGl2XG4gIFtuZ1N0eWxlXT1cIntcbiAgICBoZWlnaHQ6IGdldENvbnRhaW5lckhlaWdodCgpLFxuICAgIHdpZHRoOiBnZXRDb250YWluZXJXaWR0aCgpLFxuICAgICdvdmVyZmxvdy14JzogY29uZmlnLmNhblNjcm9sbEhvcml6b250YWxseSA/ICdhdXRvJyA6ICd1bnNldCdcbiAgfVwiXG4gIGlkPVwibWFpbi1jb250YWluZXJcIlxuPlxuICA8bWlzLXRhYmxlLWZpbHRlclxuICAgICNmaWx0ZXJcbiAgICAoZmlsdGVyc0FwcGxpZWQpPVwidXBkYXRlQXBwbGllZEZpbHRlcnMoJGV2ZW50KVwiXG4gICAgKm5nSWY9XCJzaG93RmlsdGVyXCJcbiAgICBbY29udGFpbmVyU3R5bGVzXT1cImZpbHRlckNvbnRhaW5lclN0eWxlc1wiXG4gICAgW2ZpbHRlcnNEYXRhXT1cImZpbHRlckRhdGFcIlxuICA+PC9taXMtdGFibGUtZmlsdGVyPlxuICA8ZGl2XG4gICAgI3RhYmxlXG4gICAgaWQ9XCJ0YWJsZS1jb250YWluZXJcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ25vLXNjcm9sbGJhcic6IGV4cGFuZGVkSW5kZXggPCAwLCBzY3JvbGxiYXI6ICEoZXhwYW5kZWRJbmRleCA8IDApLCAnc2Nyb2xsLWhvcml6b250YWxseSc6IGNvbmZpZy5jYW5TY3JvbGxIb3Jpem9udGFsbHkgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgW25nU3R5bGVdPVwiZ2V0Q29sSGVhZGVyc1Jvd1N0eWxlcygpXCJcbiAgICAgIGlkPVwiY29sLWhlYWRlcnMtY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICNjb2xIZWFkZXJSZWZcbiAgICAgICAgKGNsaWNrKT1cImNvbEhlYWRlcj8uYWN0aW9uID8gY29sSGVhZGVyPy5hY3Rpb24oY29sSGVhZGVyKSA6IG51bGxcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgY29sSGVhZGVyIG9mIGNvbmZpZz8uY29sSGVhZGVyQ29uZmlnXCJcbiAgICAgICAgY2xhc3M9XCJjb2wtaGVhZGVyXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIHdpZHRoOiBjb2xIZWFkZXI/LnN0eWxlPy53aWR0aCB8fCAnJyxcbiAgICAgICAgICBjdXJzb3I6IGNvbEhlYWRlci5hY3Rpb24gPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG4gICAgICAgICAgJ2p1c3RpZnktY29udGVudCc6IGNvbEhlYWRlcj8uc3R5bGU/Lmp1c3RpZnlDb250ZW50XG4gICAgICAgICAgICA/IGNvbEhlYWRlcj8uc3R5bGU/Lmp1c3RpZnlDb250ZW50XG4gICAgICAgICAgICA6IGNvbEhlYWRlci50eXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgPyAnZmxleC1lbmQnXG4gICAgICAgICAgICA6ICdzcGFjZS1iZXR3ZWVuJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPHAgKm5nSWY9XCJjb2xIZWFkZXI/LnR5cGUgIT09ICdjdXN0b20nXCIgY2xhc3M9XCJjb2wtaGVhZGVyLXRleHRcIj5cbiAgICAgICAgICB7eyBjb2xIZWFkZXI/LmRhdGEgfHwgXCIgXCIgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIChjbGljayk9XCJmaWx0ZXJEYXRhID0gY29sSGVhZGVyLmZpbHRlcnM7IHRvZ2dsZUZpbHRlcihjb2xIZWFkZXIuZGF0YSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgKm5nSWY9XCJjb2xIZWFkZXI/LnR5cGUgIT09ICdjdXN0b20nICYmIGNvbEhlYWRlcj8uZmlsdGVycyAmJiBjb2xIZWFkZXI/LmZpbHRlcnM/Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWljb25cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJhcHBsaWVkRmlsdGVyc1tjb2xIZWFkZXIuZGF0YV0/Lmxlbmd0aCA+IDBcIiBpZD1cImZpbHRlci1hY3RpdmVcIj48L3NwYW4+XG4gICAgICAgICAgPHN2ZyBmaWxsPVwibm9uZVwiIGhlaWdodD1cIjEwXCIgdmlld0JveD1cIjAgMCAxMyAxMFwiIHdpZHRoPVwiMTNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgZD1cIk00Ljk3NTQ2IDEwSDcuNjQyMTNWOEg0Ljk3NTQ2VjEwWk0wLjMwODQ3MiAwVjJIMTIuMzA4NVYwSDAuMzA4NDcyWk0yLjMwODQ3IDZIMTAuMzA4NVY0SDIuMzA4NDdWNlpcIlxuICAgICAgICAgICAgICBmaWxsPVwiIzE4MUYzM1wiXG4gICAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAqbmdJZj1cImNvbEhlYWRlcj8udHlwZSA9PT0gJ2N1c3RvbSdcIlxuICAgICAgICAgIFtjdXN0b21Db21wb25lbnRdPVwiY29sSGVhZGVyPy5jb21wb25lbnRSZWZcIlxuICAgICAgICAgIFtkYXRhXT1cImNvbEhlYWRlci5kYXRhXCJcbiAgICAgICAgICBjdXN0b21UYWJsZUNlbGxcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGlkPVwiZGF0YS1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3ctd3JhcHBlclwiICpuZ0Zvcj1cImxldCByb3cgb2YgdGFibGVEYXRhOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInQtcm93XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0LXJvdy1ob3Zlcic6IGNvbmZpZy5jZWxsSG92ZXIsICdhY3RpdmUtcm93JzogaSA9PT0gYWN0aXZlUm93SW5kZXggfVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieyAnbWluLWhlaWdodCc6IGNvbmZpZz8ucm93Q29uZmlnPy5oZWlnaHQgPyBjb25maWcucm93Q29uZmlnLmhlaWdodCA6ICc0NHB4JyB9XCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Um93KGkpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbmZpZz8uY29sQ29uZmlnW2ldPy5hY3Rpb24gPyBjb25maWc/LmNvbENvbmZpZ1tpXT8uYWN0aW9uKGNvbCkgOiBudWxsXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2wgb2Ygcm93OyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgd2lkdGg6IGNvbmZpZz8uY29sQ29uZmlnW2ldPy5zdHlsZT8ud2lkdGggfHwgY29uZmlnPy5jb2xIZWFkZXJDb25maWdbaV0/LnN0eWxlPy53aWR0aCB8fCAnJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY29sLWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0LWNvbC1jb250YWluZXItaG92ZXInOiBjb25maWcuY2VsbEhvdmVyIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbFwiXG4gICAgICAgICAgICAgIFtzdHlsZV09XCJjb25maWcuY29sQ29uZmlnW2ldPy5zdHlsZVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGN1cnNvcjogY29uZmlnLmNvbENvbmZpZ1tpXT8uYWN0aW9uID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiBjb25maWcuY29sQ29uZmlnW2ldPy5zdHlsZT8uanVzdGlmeUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgID8gY29uZmlnLmNvbENvbmZpZ1tpXT8uc3R5bGU/Lmp1c3RpZnlDb250ZW50XG4gICAgICAgICAgICAgICAgICA6IGNvbmZpZy5jb2xDb25maWdbaV0/LnR5cGUgPT09ICdudW1iZXInXG4gICAgICAgICAgICAgICAgICA/ICdmbGV4LWVuZCdcbiAgICAgICAgICAgICAgICAgIDogJ3NwYWNlLWJldHdlZW4nXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmNvbENvbmZpZ1tpXT8udHlwZSAhPT0gJ2N1c3RvbSdcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb25maWc/LmNvbENvbmZpZ1tpXT8uc3R5bGU/LmNvbG9yID8gY29uZmlnPy5jb2xDb25maWdbaV0/LnN0eWxlPy5jb2xvciA6ICcnXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbC10ZXh0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGNvbCB9fVxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY29uZmlnLmNvbENvbmZpZ1tpXT8udHlwZSA9PT0gJ2N1c3RvbSdcIlxuICAgICAgICAgICAgICAgIFtjdXN0b21Db21wb25lbnRdPVwiY29uZmlnLmNvbENvbmZpZ1tpXS5jb21wb25lbnRSZWZcIlxuICAgICAgICAgICAgICAgIFtkYXRhXT1cImNvbFwiXG4gICAgICAgICAgICAgICAgY3VzdG9tVGFibGVDZWxsXG4gICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29uZmlnPy5jYW5FeHBhbmQgJiYgZXhwYW5kZWRJbmRleCA9PT0gaVwiIGNsYXNzPVwic3ViLXJvd1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJUYWJsZURhdGFMb2FkaW5nXCI+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDE2cHhcIj5Mb2FkaW5nLi4uPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzdWJUYWJsZURhdGFMb2FkaW5nICYmIHN1YlRhYmxlRGF0YS5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgcGFkZGluZzogMTZweFwiPk5vIERhdGEgQXZhaWxhYmxlLi4uPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzdWJUYWJsZURhdGFMb2FkaW5nICYmIHN1YlRhYmxlRGF0YS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICA8c3ViLXRhYmxlIFtjb25maWddPVwic3ViVGFibGVjb25maWdcIiBbdGFibGVEYXRhXT1cInN1YlRhYmxlRGF0YVwiPjwvc3ViLXRhYmxlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiY29uZmlnPy5wYWdpbmF0aW9uQ29uZmlnICYmICh0YWJsZUxlbmd0aCA+PSBjb25maWcucGFnaW5hdGlvbkNvbmZpZy5yb3dzUGVyUGFnZSB8fCBjb25maWcucGFnaW5hdGlvbkNvbmZpZz8uc2VsZWN0ZWRQYWdlICE9PSAxKVwiXG4gICAgaWQ9XCJwYWdpbmF0aW9uLWNvbnRhaW5lclwiXG4gID5cbiAgICA8cCBpZD1cInBhZ2luYXRpb24tdGV4dFwiPlxuICAgICAgU2hvd2luZ1xuICAgICAge3sgKGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UgLSAxKSAqIGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLnJvd3NQZXJQYWdlICsgMSB9fS17e1xuICAgICAgICAoY29uZmlnLnBhZ2luYXRpb25Db25maWc/LnNlbGVjdGVkUGFnZSAtIDEpICogY29uZmlnLnBhZ2luYXRpb25Db25maWcucm93c1BlclBhZ2UgKyB0YWJsZUxlbmd0aFxuICAgICAgfX1cbiAgICAgIG9mIHt7IGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLnRvdGFsTm9PZlJvd3MgfX0gaXRlbXNcbiAgICA8L3A+XG4gICAgPGRpdiBpZD1cInBhZ2VzLWNvbnRhaW5lclwiPlxuICAgICAgPHNwYW4gKGNsaWNrKT1cInVwZGF0ZVNlbGVjdGVkUGFnZShjb25maWcucGFnaW5hdGlvbkNvbmZpZz8uc2VsZWN0ZWRQYWdlIC0gMSlcIiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgICAgPHN2ZyBmaWxsPVwibm9uZVwiIGhlaWdodD1cIjEwXCIgdmlld0JveD1cIjAgMCA3IDEwXCIgd2lkdGg9XCI3XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBjbGlwLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIGQ9XCJNMC44NTc0MDUgNS41NjI5NUMwLjg1NTc5NCA1LjU2MTM5IDAuODU0MTg4IDUuNTU5ODIgMC44NTI1ODggNS41NTgyNEMwLjY5NTk1NSA1LjQwNDA4IDAuNjE3NjQxIDUuMjAyMDMgMC42MTc2NDcgNC45OTk5OEMwLjYxNzY0MSA0Ljc5NzkzIDAuNjk1OTU1IDQuNTk1ODggMC44NTI1ODggNC40NDE3MkMwLjg1NDE4OCA0LjQ0MDE0IDAuODU1Nzk0IDQuNDM4NTggMC44NTc0MDQgNC40MzcwMkw1LjEzMDY2IDAuMjMxMjMxQzUuNDQzOTIgLTAuMDc3MDc3MSA1Ljk1MTggLTAuMDc3MDc3MSA2LjI2NTA2IDAuMjMxMjMxQzYuNTc4MzEgMC41Mzk1NCA2LjU3ODMxIDEuMDM5NDEgNi4yNjUwNiAxLjM0NzcyTDIuNTU0MiA0Ljk5OTk4TDYuMjY1MDYgOC42NTIyNUM2LjU3ODMxIDguOTYwNTUgNi41NzgzMSA5LjQ2MDQyIDYuMjY1MDYgOS43Njg3M0M1Ljk1MTggMTAuMDc3IDUuNDQzOTIgMTAuMDc3IDUuMTMwNjYgOS43Njg3M0wwLjg1NzQwNSA1LjU2Mjk1WlwiXG4gICAgICAgICAgICBmaWxsPVwiIzE4MUYzM1wiXG4gICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHBhZ2VOdW1iZXIgb2YgcGFnZXNcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAoY2xpY2spPVwidXBkYXRlU2VsZWN0ZWRQYWdlKHBhZ2VOdW1iZXIpXCJcbiAgICAgICAgICAqbmdJZj1cInBhZ2VOdW1iZXIgIT0gMFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAncGFnZS1hY3RpdmUnOiBwYWdlTnVtYmVyID09IGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UgfVwiXG4gICAgICAgICAgY2xhc3M9XCJwYWdlXCJcbiAgICAgICAgICA+e3sgcGFnZU51bWJlciB9fTwvc3BhblxuICAgICAgICA+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwicGFnZU51bWJlciA9PSAwXCIgY2xhc3M9XCJwYWdlLXNlcGVyYXRvclwiPlxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvdFwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA0cHhcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvdFwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA0cHhcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhbiAoY2xpY2spPVwidXBkYXRlU2VsZWN0ZWRQYWdlKGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UgKyAxKVwiIGNsYXNzPVwicGFnZVwiPlxuICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDcgMTBcIiB3aWR0aD1cIjdcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgZD1cIk02LjE0MjYgNS41NjI5NUM2LjE0NDIxIDUuNTYxMzkgNi4xNDU4MSA1LjU1OTgyIDYuMTQ3NDEgNS41NTgyNEM2LjMwNDA1IDUuNDA0MDggNi4zODIzNiA1LjIwMjAzIDYuMzgyMzYgNC45OTk5OEM2LjM4MjM2IDQuNzk3OTMgNi4zMDQwNSA0LjU5NTg4IDYuMTQ3NDEgNC40NDE3MkM2LjE0NTgxIDQuNDQwMTQgNi4xNDQyMSA0LjQzODU4IDYuMTQyNiA0LjQzNzAyTDEuODY5MzQgMC4yMzEyMzFDMS41NTYwOCAtMC4wNzcwNzcxIDEuMDQ4MiAtMC4wNzcwNzcxIDAuNzM0OTQyIDAuMjMxMjMxQzAuNDIxNjg4IDAuNTM5NTQgMC40MjE2ODggMS4wMzk0MSAwLjczNDk0MiAxLjM0NzcyTDQuNDQ1OCA0Ljk5OTk4TDAuNzM0OTQxIDguNjUyMjVDMC40MjE2ODYgOC45NjA1NSAwLjQyMTY4NiA5LjQ2MDQyIDAuNzM0OTQxIDkuNzY4NzNDMS4wNDgyIDEwLjA3NyAxLjU1NjA4IDEwLjA3NyAxLjg2OTM0IDkuNzY4NzNMNi4xNDI2IDUuNTYyOTVaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjMTgxRjMzXCJcbiAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
492
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztJQ0xyQiwrQ0FNQztJQUpDLDBNQUFrQixlQUFBLG1DQUE0QixDQUFBLElBQUM7SUFJaEQsaUJBQW1COzs7SUFGbEIsOERBQXlDLGtDQUFBOzs7SUEyQnJDLDZCQUFnRTtJQUM5RCxZQUNGO0lBQUEsaUJBQUk7OztJQURGLGVBQ0Y7SUFERSx5RkFDRjs7O0lBTUUsMkJBQW1GOzs7O0lBTHJGLGdDQUlDO0lBSEMsK1BBQXlDLHVDQUE0QixTQUFFLGVBQUEsd0JBQXdCLENBQUEsSUFBQztJQUloRywrRUFBbUY7SUFDbkYsbUJBQStGO0lBQS9GLCtCQUErRjtJQUM3RiwyQkFLRTtJQUNKLGlCQUFNLEVBQUE7Ozs7SUFSQyxlQUFnRDtJQUFoRCx3SUFBZ0Q7Ozs7SUFVekQsd0ZBS2U7OztJQUhiLHlGQUEyQywyQkFBQTs7Ozs7SUFuQy9DLG1DQWNDO0lBWkMsc0xBQVMsbUdBQW9CLGlDQUE0QixHQUFHLElBQUksQ0FBQSxJQUFDO0lBYWpFLGtFQUVJO0lBQ0osd0VBY087SUFDUCxpRUFLZTtJQUNqQixpQkFBTTs7O0lBbENKLGtkQVFFO0lBRUUsZUFBa0M7SUFBbEMscUZBQWtDO0lBS25DLGVBQTBGO0lBQTFGLHNQQUEwRjtJQWMxRixlQUFrQztJQUFsQyxxRkFBa0M7Ozs7SUFxQy9CLDZCQU1DO0lBQ0MsWUFDRjtJQUFBLGlCQUFJOzs7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QWhNSiw2SkFJRTtRQU1DLGVBQWdCO1FBQWhCLHFDQUFnQjtRQU9qQixlQUF1STtRQUF2SSx5SUFBdUk7UUFHdkksZUFBb0M7UUFBcEMsc0RBQW9DO1FBTVYsZUFBMEI7UUFBMUIsZ0ZBQTBCO1FBdUNULGVBQWM7UUFBZCx1Q0FBYztRQThFeEQsZUFBcUk7UUFBckksaVBBQXFJOzt1RkQzSDdILGNBQWM7Y0FMMUIsU0FBUzsyQkFDRSxXQUFXOzREQWVYLGNBQWM7a0JBQXZCLE1BQU07WUFJYyxNQUFNO2tCQUExQixTQUFTO21CQUFDLFFBQVE7WUFDVyxVQUFVO2tCQUF2QyxZQUFZO21CQUFDLGNBQWM7WUFLbEIsWUFBWTtrQkFBckIsTUFBTTtZQUVlLE1BQU07a0JBQTNCLEtBQUs7bUJBQUMsYUFBYTtZQUNYLGNBQWM7a0JBQXRCLEtBQUs7WUFDRyxnQkFBZ0I7a0JBQXhCLEtBQUs7WUFDRyxhQUFhO2tCQUFyQixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFDYyxLQUFLO2tCQUF4QixTQUFTO21CQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRmlsdGVyLCBUYWJsZUZpbHRlckNvbXBvbmVudCB9IGZyb20gXCIuL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtdGFibGVcIixcbiAgdGVtcGxhdGVVcmw6IFwidGFibGUuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCJ0YWJsZS5jb21wb25lbnQuY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG4gIC8vIEluaXRpYWxpemUgd2l0aCAtMSB0byBpbmRpY2F0ZSBubyByb3cgaXMgY29sb3JlZCBhdCB0aGUgYmVnaW5uaW5nXG4gIGFjdGl2ZVJvd0luZGV4OiBudW1iZXIgPSAwOyBcblxuICAvLyBGaWx0ZXIgcmVsYXRlZCB2YXJpYWJsZXNcbiAgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBmaWx0ZXJOYW1lOiBzdHJpbmcgPSBcIlwiO1xuICBmaWx0ZXJEYXRhOiBBcnJheTxGaWx0ZXI+ID0gW107XG4gIGZpbHRlckNvbnRhaW5lclN0eWxlczogYW55ID0ge307XG4gIGFwcGxpZWRGaWx0ZXJzOiB7IFtrZXk6IHN0cmluZ106IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+IH0gPSB7fTtcbiAgQE91dHB1dCgpIGZpbHRlcnNVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgW2tleTogc3RyaW5nXTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT47XG4gIH0+KCk7XG5cbiAgQFZpZXdDaGlsZChcImZpbHRlclwiKSBmaWx0ZXI6IFRhYmxlRmlsdGVyQ29tcG9uZW50IHwgYW55O1xuICBAVmlld0NoaWxkcmVuKFwiY29sSGVhZGVyUmVmXCIpIGNvbEhlYWRlcnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPiB8IGFueTtcblxuICAvLyBQYWdpbmF0aW9uIHJlbGF0ZWQgdmFyaWFibGVzXG4gIHBhZ2VzOiBBcnJheTxudW1iZXI+ID0gW107XG4gIHRhYmxlTGVuZ3RoOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBwYWdlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBASW5wdXQoXCJ0YWJsZUNvbmZpZ1wiKSBjb25maWc6IFRhYmxlQ29uZmlnIHwgYW55O1xuICBASW5wdXQoKSBzdWJUYWJsZWNvbmZpZzogVGFibGVDb25maWcgfCBhbnk7XG4gIEBJbnB1dCgpIHRhYmxlRGF0YUxvYWRpbmc6IGJvb2xlYW4gfCBhbnk7XG4gIEBJbnB1dCgpIGV4cGFuZGVkSW5kZXg6IG51bWJlciB8IGFueTtcbiAgQElucHV0KCkgdGFibGVEYXRhOiBBcnJheTxBcnJheTxhbnk+PiA9IFtdO1xuICBASW5wdXQoKSBzdWJUYWJsZURhdGE6IEFycmF5PEFycmF5PGFueT4+ID0gW107XG4gIEBJbnB1dCgpIHN1YlRhYmxlRGF0YUxvYWRpbmc6IGJvb2xlYW4gfCBhbnk7XG4gIEBWaWV3Q2hpbGQoXCJ0YWJsZVwiKSB0YWJsZTogRWxlbWVudFJlZiB8IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxuXG4gIC8vIEZ1bmN0aW9uIHRvIGhhbmRsZSByb3cgY2xpY2tcbiAgc2VsZWN0Um93KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmFjdGl2ZVJvd0luZGV4ID0gaW5kZXg7IC8vIFNldCB0aGUgc2VsZWN0ZWQgaW5kZXggdG8gdGhlIGNsaWNrZWQgcm93J3MgaW5kZXhcbiAgICAhIXRoaXMuY29uZmlnLnJvd0NvbmZpZy5hY3Rpb24gJiYgdGhpcy5jb25maWcucm93Q29uZmlnLmFjdGlvbihpbmRleCk7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZUxlbmd0aCA9ICEhdGhpcy50YWJsZURhdGEgPyB0aGlzLnRhYmxlRGF0YS5sZW5ndGggOiAwO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZpbHRlcnMoKTtcbiAgICBpZiAodGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZykge1xuICAgICAgdGhpcy5pbml0aWFsaXplUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWcuY2FuU2Nyb2xsSG9yaXpvbnRhbGx5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29uZmlnLmNhblNjcm9sbEhvcml6b250YWxseSA9IGZhbHNlO1xuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZXZlbnQgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyKSB7XG4gICAgICAgIGxldCBpc0NoZWNrQm94Q2xpY2tlZCA9IHRydWU7XG4gICAgICAgIGxldCB0YXJnZXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxTcGFuRWxlbWVudDtcbiAgICAgICAgaWYgKHRhcmdldEVsZW1lbnQuY2xhc3NOYW1lID09PSBcImNoZWNrbWFya1wiKSB7XG4gICAgICAgICAgaXNDaGVja0JveENsaWNrZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc2hvd0ZpbHRlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGlzQ2xpY2tJbnNpZGVFbGVtZW50ID0gdGhpcy5maWx0ZXIuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgaWYgKCFpc0NsaWNrSW5zaWRlRWxlbWVudCAmJiAhaXNDaGVja0JveENsaWNrZWQpIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlcih0aGlzLmZpbHRlck5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICBsZXQgaGVpZ2h0ID0gdGhpcy5jb25maWcuaGVpZ2h0O1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRhYmxlLm5hdGl2ZUVsZW1lbnQsIFwiaGVpZ2h0XCIsIGhlaWdodCAtIDU2ICsgXCJweFwiKTtcbiAgICB9XG4gIH1cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy50YWJsZUxlbmd0aCA9ICEhdGhpcy50YWJsZURhdGEgPyB0aGlzLnRhYmxlRGF0YS5sZW5ndGggOiAwO1xuICAgIHRoaXMuYWN0aXZlUm93SW5kZXggPSB0aGlzLmNvbmZpZy5hY3RpdmVSb3dJbmRleCB8fCAwO1xuICB9XG5cbiAgLy8gRmlsdGVyIHJlbGF0ZWQgZnVuY3Rpb25zXG4gIGluaXRpYWxpemVGaWx0ZXJzKCkge1xuICAgIGZvciAobGV0IGNvbEhlYWRlciBvZiB0aGlzLmNvbmZpZz8uY29sSGVhZGVyQ29uZmlnKSB7XG4gICAgICBpZiAoY29sSGVhZGVyLmZpbHRlcnMpIHtcbiAgICAgICAgbGV0IGZpbHRlcnMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgZmlsdGVyIG9mIGNvbEhlYWRlci5maWx0ZXJzKSB7XG4gICAgICAgICAgaWYgKGZpbHRlci5jaGVja2VkKSB7XG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgICBuYW1lOiBmaWx0ZXIubmFtZSxcbiAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJzLmxlbmd0aCA+IDApIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sSGVhZGVyLmRhdGFdID0gZmlsdGVycztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdG9nZ2xlRmlsdGVyKGZpbHRlck5hbWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5zaG93RmlsdGVyKSB7XG4gICAgICB0aGlzLmZpbHRlck5hbWUgPSBmaWx0ZXJOYW1lO1xuICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcblxuICAgICAgbGV0IG9mZlNldCA9IDA7XG4gICAgICBsZXQgY29sSGVhZGVyc1JldmVyc2VkID0gdGhpcy5jb2xIZWFkZXJzLnRvQXJyYXkoKS5yZXZlcnNlKCk7XG5cbiAgICAgIGZvciAobGV0IGhlYWRlciBvZiBjb2xIZWFkZXJzUmV2ZXJzZWQpIHtcbiAgICAgICAgaWYgKGhlYWRlci5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCA9PT0gZmlsdGVyTmFtZSkgYnJlYWs7XG4gICAgICAgIG9mZlNldCArPSBoZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsdGVyQ29udGFpbmVyU3R5bGVzID0ge1xuICAgICAgICB0b3A6IFwiNDRweFwiLFxuICAgICAgICByaWdodDogb2ZmU2V0ID4gMCA/IG9mZlNldCAtIDExNiArIFwicHhcIiA6IFwiMTJweFwiXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlck5hbWUgPSBcIlwiO1xuICAgICAgdGhpcy5maWx0ZXJEYXRhID0gW107XG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgdXBkYXRlQXBwbGllZEZpbHRlcnMoYXBwbGllZEZpbHRlcnM6IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+KSB7XG4gICAgaWYgKGFwcGxpZWRGaWx0ZXJzLmxlbmd0aCA9PSAwKSB7XG4gICAgICBkZWxldGUgdGhpcy5hcHBsaWVkRmlsdGVyc1t0aGlzLmZpbHRlck5hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJzW3RoaXMuZmlsdGVyTmFtZV0gPSBhcHBsaWVkRmlsdGVycztcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJzVXBkYXRlZC5lbWl0KHsgLi4udGhpcy5hcHBsaWVkRmlsdGVycyB9KTtcbiAgICB0aGlzLnRvZ2dsZUZpbHRlcih0aGlzLmZpbHRlck5hbWUpO1xuICB9XG5cbiAgLy8gUGFnaW5hdGlvbiByZWxhdGVkIGZ1bmN0aW9uc1xuICBpbml0aWFsaXplUGFnaW5hdGlvbigpIHtcbiAgICBpZiAodGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZykge1xuICAgICAgbGV0IGxlbiA9IHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcubm9PZlBhZ2VzO1xuICAgICAgaWYgKGxlbiA8PSA3KSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGxlbjsgaSsrKSB7XG4gICAgICAgICAgdGhpcy5wYWdlcy5wdXNoKGkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBhZ2VzID0gWzEsIDIsIDMsIDQsIDAsIGxlbl07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHVwZGF0ZVNlbGVjdGVkUGFnZShwYWdlTnVtYmVyOiBudW1iZXIpIHtcbiAgICBpZiAocGFnZU51bWJlciA8IDEgfHwgcGFnZU51bWJlciA+IHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcubm9PZlBhZ2VzKSByZXR1cm47XG4gICAgdGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZy5zZWxlY3RlZFBhZ2UgPSBwYWdlTnVtYmVyO1xuICAgIGxldCBsZW4gPSB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLm5vT2ZQYWdlcztcbiAgICBpZiAobGVuID4gNykge1xuICAgICAgaWYgKHBhZ2VOdW1iZXIgLSAyIDw9IDEpIHtcbiAgICAgICAgdGhpcy5wYWdlcyA9IFsxLCAyLCAzLCA0LCAwLCBsZW5dO1xuICAgICAgfSBlbHNlIGlmIChwYWdlTnVtYmVyIC0gMiA+IDEgJiYgcGFnZU51bWJlciArIDIgPCBsZW4pIHtcbiAgICAgICAgdGhpcy5wYWdlcyA9IFsxLCAwLCBwYWdlTnVtYmVyIC0gMSwgcGFnZU51bWJlciwgcGFnZU51bWJlciArIDEsIDAsIGxlbl07XG4gICAgICB9IGVsc2UgaWYgKHBhZ2VOdW1iZXIgKyAyID49IGxlbikge1xuICAgICAgICB0aGlzLnBhZ2VzID0gWzEsIDAsIGxlbiAtIDMsIGxlbiAtIDIsIGxlbiAtIDEsIGxlbl07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucGFnZVNlbGVjdGVkLmVtaXQodGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZz8uc2VsZWN0ZWRQYWdlKTtcbiAgfVxuXG4gIC8vIE1haW4gY29udGFpbmVyIHJlbGF0ZWQgZnVuY3Rpb25zXG4gIGdldENvbnRhaW5lckhlaWdodCgpIHtcbiAgICBpZiAodGhpcy5jb25maWc/LmhlaWdodCkgcmV0dXJuIHRoaXMuY29uZmlnLmhlaWdodDtcbiAgICBlbHNlIHJldHVybiBcIlwiO1xuICB9XG4gIGdldENvbnRhaW5lcldpZHRoKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZz8ud2lkdGgpIHJldHVybiB0aGlzLmNvbmZpZy53aWR0aDtcbiAgICBlbHNlIHJldHVybiBcIlwiO1xuICB9XG5cbiAgLy8gQ29sdW1uIEhlYWRlcnMgcmVsYXRlZCBmdW5jdGlvbnNcbiAgZ2V0Q29sSGVhZGVyc1Jvd1N0eWxlcygpIHtcbiAgICBjb25zdCB7IGNvbEhlYWRlcnNSb3dDb25maWcgfSA9IHRoaXMuY29uZmlnO1xuICAgIGNvbnN0IG1pbkhlaWdodCA9IGNvbEhlYWRlcnNSb3dDb25maWc/LmhlaWdodCB8fCBcIjQ0cHhcIjtcbiAgICBjb25zdCBib3JkZXJUb3AgPSBjb2xIZWFkZXJzUm93Q29uZmlnPy5zdHlsZT8uYm9yZGVyVG9wIHx8IFwiXCI7XG4gICAgY29uc3QgYm9yZGVyQm90dG9tID0gY29sSGVhZGVyc1Jvd0NvbmZpZz8uc3R5bGU/LmJvcmRlckJvdHRvbSB8fCBcIjFweCBzb2xpZCAjRTBFMEUwXCI7XG4gICAgY29uc3QgYmFja2dyb3VuZENvbG9yID0gY29sSGVhZGVyc1Jvd0NvbmZpZz8uc3R5bGU/LmJhY2tncm91bmRDb2xvciB8fCBcIiNGRkZGRkZcIjtcbiAgICBjb25zdCBmb250U2l6ZSA9IGNvbEhlYWRlcnNSb3dDb25maWc/LnN0eWxlPy5mb250U2l6ZSB8fCBcIjE0cHhcIjtcbiAgICByZXR1cm4ge1xuICAgICAgJ21pbi1oZWlnaHQnOiBtaW5IZWlnaHQsXG4gICAgICAnYm9yZGVyLXRvcCc6IGJvcmRlclRvcCxcbiAgICAgICdib3JkZXItYm90dG9tJzogYm9yZGVyQm90dG9tLFxuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBiYWNrZ3JvdW5kQ29sb3IsXG4gICAgICAnZm9udC1zaXplJzogZm9udFNpemVcbiAgICB9O1xuICB9XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbmZpZyB7XG4gIGhlaWdodDogc3RyaW5nIHwgXCIxMDAlXCI7XG4gIHdpZHRoOiBzdHJpbmcgfCBcIjEwMCVcIjtcbiAgcGFnaW5hdGlvbkNvbmZpZz86IFBhZ2luYXRpb25Db25maWcgfCB1bmRlZmluZWQgfCBudWxsO1xuICBjb2xIZWFkZXJzUm93Q29uZmlnOiBSb3dDb25maWcgfCB1bmRlZmluZWQgfCBudWxsO1xuICByb3dDb25maWc6IFJvd0NvbmZpZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIGNvbEhlYWRlckNvbmZpZzogQXJyYXk8Q29sSGVhZGVyQ29uZmlnPjtcbiAgY29sQ29uZmlnOiBBcnJheTxDb2xDb25maWc+O1xuICBjYW5FeHBhbmQ/OiBib29sZWFuO1xuICBjYW5TY3JvbGxIb3Jpem9udGFsbHk/OiBib29sZWFuO1xuICBjZWxsSG92ZXI/OiBib29sZWFuO1xuICBhY3RpdmVSb3dJbmRleD86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbkNvbmZpZyB7XG4gIG5vT2ZQYWdlczogbnVtYmVyO1xuICByb3dzUGVyUGFnZTogbnVtYmVyO1xuICB0b3RhbE5vT2ZSb3dzOiBudW1iZXI7XG4gIHNlbGVjdGVkUGFnZT86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUm93Q29uZmlnIHtcbiAgaGVpZ2h0Pzogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgc3R5bGU/OiB7fTtcbiAgYWN0aW9uPzogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2xIZWFkZXJDb25maWcge1xuICB0eXBlOiBcInRleHRcIiB8IFwibnVtYmVyXCIgfCBcImN1c3RvbVwiO1xuICBkYXRhOiBhbnk7XG4gIGNvbXBvbmVudFJlZj86IGFueTtcbiAgZmlsdGVycz86IEFycmF5PEZpbHRlcj4gfCBudWxsO1xuICBzdHlsZT86IHt9O1xuICBhY3Rpb24/OiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvbENvbmZpZyB7XG4gIHR5cGU6IFwidGV4dFwiIHwgXCJudW1iZXJcIiB8IFwiY3VzdG9tXCI7XG4gIGNvbXBvbmVudFJlZj86IGFueTtcbiAgc3R5bGU/OiB7fTtcbiAgYWN0aW9uPzogYW55O1xufVxuIiwiPGRpdlxuICBbbmdTdHlsZV09XCJ7XG4gICAgaGVpZ2h0OiBnZXRDb250YWluZXJIZWlnaHQoKSxcbiAgICB3aWR0aDogZ2V0Q29udGFpbmVyV2lkdGgoKSxcbiAgICAnb3ZlcmZsb3cteCc6IGNvbmZpZy5jYW5TY3JvbGxIb3Jpem9udGFsbHkgPyAnYXV0bycgOiAndW5zZXQnXG4gIH1cIlxuICBpZD1cIm1haW4tY29udGFpbmVyXCJcbj5cbiAgPG1pcy10YWJsZS1maWx0ZXJcbiAgICAjZmlsdGVyXG4gICAgKGZpbHRlcnNBcHBsaWVkKT1cInVwZGF0ZUFwcGxpZWRGaWx0ZXJzKCRldmVudClcIlxuICAgICpuZ0lmPVwic2hvd0ZpbHRlclwiXG4gICAgW2NvbnRhaW5lclN0eWxlc109XCJmaWx0ZXJDb250YWluZXJTdHlsZXNcIlxuICAgIFtmaWx0ZXJzRGF0YV09XCJmaWx0ZXJEYXRhXCJcbiAgPjwvbWlzLXRhYmxlLWZpbHRlcj5cbiAgPGRpdlxuICAgICN0YWJsZVxuICAgIGlkPVwidGFibGUtY29udGFpbmVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICduby1zY3JvbGxiYXInOiBleHBhbmRlZEluZGV4IDwgMCwgc2Nyb2xsYmFyOiAhKGV4cGFuZGVkSW5kZXggPCAwKSwgJ3Njcm9sbC1ob3Jpem9udGFsbHknOiBjb25maWcuY2FuU2Nyb2xsSG9yaXpvbnRhbGx5IH1cIlxuICA+XG4gICAgPGRpdlxuICAgIFtuZ1N0eWxlXT1cImdldENvbEhlYWRlcnNSb3dTdHlsZXMoKVwiXG4gICAgICBpZD1cImNvbC1oZWFkZXJzLWNvbnRhaW5lclwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICAjY29sSGVhZGVyUmVmXG4gICAgICAgIChjbGljayk9XCJjb2xIZWFkZXI/LmFjdGlvbiA/IGNvbEhlYWRlcj8uYWN0aW9uKGNvbEhlYWRlcikgOiBudWxsXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbEhlYWRlciBvZiBjb25maWc/LmNvbEhlYWRlckNvbmZpZ1wiXG4gICAgICAgIGNsYXNzPVwiY29sLWhlYWRlclwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICB3aWR0aDogY29sSGVhZGVyPy5zdHlsZT8ud2lkdGggfHwgJycsXG4gICAgICAgICAgY3Vyc29yOiBjb2xIZWFkZXIuYWN0aW9uID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnLFxuICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiBjb2xIZWFkZXI/LnN0eWxlPy5qdXN0aWZ5Q29udGVudFxuICAgICAgICAgICAgPyBjb2xIZWFkZXI/LnN0eWxlPy5qdXN0aWZ5Q29udGVudFxuICAgICAgICAgICAgOiBjb2xIZWFkZXIudHlwZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgID8gJ2ZsZXgtZW5kJ1xuICAgICAgICAgICAgOiAnc3BhY2UtYmV0d2VlbidcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxwICpuZ0lmPVwiY29sSGVhZGVyPy50eXBlICE9PSAnY3VzdG9tJ1wiIGNsYXNzPVwiY29sLWhlYWRlci10ZXh0XCI+XG4gICAgICAgICAge3sgY29sSGVhZGVyPy5kYXRhIHx8IFwiIFwiIH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAoY2xpY2spPVwiZmlsdGVyRGF0YSA9IGNvbEhlYWRlci5maWx0ZXJzOyB0b2dnbGVGaWx0ZXIoY29sSGVhZGVyLmRhdGEpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICpuZ0lmPVwiY29sSGVhZGVyPy50eXBlICE9PSAnY3VzdG9tJyAmJiBjb2xIZWFkZXI/LmZpbHRlcnMgJiYgY29sSGVhZGVyPy5maWx0ZXJzPy5sZW5ndGggPiAwXCJcbiAgICAgICAgICBjbGFzcz1cImZpbHRlci1pY29uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYXBwbGllZEZpbHRlcnNbY29sSGVhZGVyLmRhdGFdPy5sZW5ndGggPiAwXCIgaWQ9XCJmaWx0ZXItYWN0aXZlXCI+PC9zcGFuPlxuICAgICAgICAgIDxzdmcgZmlsbD1cIm5vbmVcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgMTMgMTBcIiB3aWR0aD1cIjEzXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICAgIGQ9XCJNNC45NzU0NiAxMEg3LjY0MjEzVjhINC45NzU0NlYxMFpNMC4zMDg0NzIgMFYySDEyLjMwODVWMEgwLjMwODQ3MlpNMi4zMDg0NyA2SDEwLjMwODVWNEgyLjMwODQ3VjZaXCJcbiAgICAgICAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgKm5nSWY9XCJjb2xIZWFkZXI/LnR5cGUgPT09ICdjdXN0b20nXCJcbiAgICAgICAgICBbY3VzdG9tQ29tcG9uZW50XT1cImNvbEhlYWRlcj8uY29tcG9uZW50UmVmXCJcbiAgICAgICAgICBbZGF0YV09XCJjb2xIZWFkZXIuZGF0YVwiXG4gICAgICAgICAgY3VzdG9tVGFibGVDZWxsXG4gICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBpZD1cImRhdGEtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93LXdyYXBwZXJcIiAqbmdGb3I9XCJsZXQgcm93IG9mIHRhYmxlRGF0YTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ0LXJvd1wiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAndC1yb3ctaG92ZXInOiBjb25maWcuY2VsbEhvdmVyLCAnYWN0aXZlLXJvdyc6IGkgPT09IGFjdGl2ZVJvd0luZGV4IH1cIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ21pbi1oZWlnaHQnOiBjb25maWc/LnJvd0NvbmZpZz8uaGVpZ2h0ID8gY29uZmlnLnJvd0NvbmZpZy5oZWlnaHQgOiAnNDRweCcgfVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFJvdyhpKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIChjbGljayk9XCJjb25maWc/LmNvbENvbmZpZ1tpXT8uYWN0aW9uID8gY29uZmlnPy5jb2xDb25maWdbaV0/LmFjdGlvbihjb2wpIDogbnVsbFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sIG9mIHJvdzsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgIHdpZHRoOiBjb25maWc/LmNvbENvbmZpZ1tpXT8uc3R5bGU/LndpZHRoIHx8IGNvbmZpZz8uY29sSGVhZGVyQ29uZmlnW2ldPy5zdHlsZT8ud2lkdGggfHwgJydcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbC1jb250YWluZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAndC1jb2wtY29udGFpbmVyLWhvdmVyJzogY29uZmlnLmNlbGxIb3ZlciB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidC1jb2xcIlxuICAgICAgICAgICAgICBbc3R5bGVdPVwiY29uZmlnLmNvbENvbmZpZ1tpXT8uc3R5bGVcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGNvbmZpZy5jb2xDb25maWdbaV0/LmFjdGlvbiA/ICdwb2ludGVyJyA6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICAnanVzdGlmeS1jb250ZW50JzogY29uZmlnLmNvbENvbmZpZ1tpXT8uc3R5bGU/Lmp1c3RpZnlDb250ZW50XG4gICAgICAgICAgICAgICAgICA/IGNvbmZpZy5jb2xDb25maWdbaV0/LnN0eWxlPy5qdXN0aWZ5Q29udGVudFxuICAgICAgICAgICAgICAgICAgOiBjb25maWcuY29sQ29uZmlnW2ldPy50eXBlID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgICAgPyAnZmxleC1lbmQnXG4gICAgICAgICAgICAgICAgICA6ICdzcGFjZS1iZXR3ZWVuJ1xuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5jb2xDb25maWdbaV0/LnR5cGUgIT09ICdjdXN0b20nXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogY29uZmlnPy5jb2xDb25maWdbaV0/LnN0eWxlPy5jb2xvciA/IGNvbmZpZz8uY29sQ29uZmlnW2ldPy5zdHlsZT8uY29sb3IgOiAnJ1xuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1jb2wtdGV4dFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBjb2wgfX1cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNvbmZpZy5jb2xDb25maWdbaV0/LnR5cGUgPT09ICdjdXN0b20nXCJcbiAgICAgICAgICAgICAgICBbY3VzdG9tQ29tcG9uZW50XT1cImNvbmZpZy5jb2xDb25maWdbaV0uY29tcG9uZW50UmVmXCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJjb2xcIlxuICAgICAgICAgICAgICAgIGN1c3RvbVRhYmxlQ2VsbFxuICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNvbmZpZz8uY2FuRXhwYW5kICYmIGV4cGFuZGVkSW5kZXggPT09IGlcIiBjbGFzcz1cInN1Yi1yb3dcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3ViVGFibGVEYXRhTG9hZGluZ1wiPlxuICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgcGFkZGluZzogJzE2cHgnXG4gICAgICAgICAgICB9XCI+XG4gICAgICAgICAgICAgIExvYWRpbmcuLi5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIFxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc3ViVGFibGVEYXRhTG9hZGluZyAmJiBzdWJUYWJsZURhdGEubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBwYWRkaW5nOiAnMTZweCdcbiAgICAgICAgICAgIH1cIj5cbiAgICAgICAgICAgICAgTm8gRGF0YSBBdmFpbGFibGUuLi5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIFxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc3ViVGFibGVEYXRhTG9hZGluZyAmJiBzdWJUYWJsZURhdGEubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPHN1Yi10YWJsZSBbY29uZmlnXT1cInN1YlRhYmxlY29uZmlnXCIgW3RhYmxlRGF0YV09XCJzdWJUYWJsZURhdGFcIj48L3N1Yi10YWJsZT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cImNvbmZpZz8ucGFnaW5hdGlvbkNvbmZpZyAmJiAodGFibGVMZW5ndGggPj0gY29uZmlnLnBhZ2luYXRpb25Db25maWcucm93c1BlclBhZ2UgfHwgY29uZmlnLnBhZ2luYXRpb25Db25maWc/LnNlbGVjdGVkUGFnZSAhPT0gMSlcIlxuICAgIGlkPVwicGFnaW5hdGlvbi1jb250YWluZXJcIlxuICA+XG4gICAgPHAgaWQ9XCJwYWdpbmF0aW9uLXRleHRcIj5cbiAgICAgIFNob3dpbmdcbiAgICAgIHt7IChjb25maWcucGFnaW5hdGlvbkNvbmZpZz8uc2VsZWN0ZWRQYWdlIC0gMSkgKiBjb25maWcucGFnaW5hdGlvbkNvbmZpZy5yb3dzUGVyUGFnZSArIDEgfX0te3tcbiAgICAgICAgKGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UgLSAxKSAqIGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLnJvd3NQZXJQYWdlICsgdGFibGVMZW5ndGhcbiAgICAgIH19XG4gICAgICBvZiB7eyBjb25maWcucGFnaW5hdGlvbkNvbmZpZy50b3RhbE5vT2ZSb3dzIH19IGl0ZW1zXG4gICAgPC9wPlxuICAgIDxkaXYgaWQ9XCJwYWdlcy1jb250YWluZXJcIj5cbiAgICAgIDxzcGFuIChjbGljayk9XCJ1cGRhdGVTZWxlY3RlZFBhZ2UoY29uZmlnLnBhZ2luYXRpb25Db25maWc/LnNlbGVjdGVkUGFnZSAtIDEpXCIgY2xhc3M9XCJwYWdlXCI+XG4gICAgICAgIDxzdmcgZmlsbD1cIm5vbmVcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgNyAxMFwiIHdpZHRoPVwiN1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgICBkPVwiTTAuODU3NDA1IDUuNTYyOTVDMC44NTU3OTQgNS41NjEzOSAwLjg1NDE4OCA1LjU1OTgyIDAuODUyNTg4IDUuNTU4MjRDMC42OTU5NTUgNS40MDQwOCAwLjYxNzY0MSA1LjIwMjAzIDAuNjE3NjQ3IDQuOTk5OThDMC42MTc2NDEgNC43OTc5MyAwLjY5NTk1NSA0LjU5NTg4IDAuODUyNTg4IDQuNDQxNzJDMC44NTQxODggNC40NDAxNCAwLjg1NTc5NCA0LjQzODU4IDAuODU3NDA0IDQuNDM3MDJMNS4xMzA2NiAwLjIzMTIzMUM1LjQ0MzkyIC0wLjA3NzA3NzEgNS45NTE4IC0wLjA3NzA3NzEgNi4yNjUwNiAwLjIzMTIzMUM2LjU3ODMxIDAuNTM5NTQgNi41NzgzMSAxLjAzOTQxIDYuMjY1MDYgMS4zNDc3MkwyLjU1NDIgNC45OTk5OEw2LjI2NTA2IDguNjUyMjVDNi41NzgzMSA4Ljk2MDU1IDYuNTc4MzEgOS40NjA0MiA2LjI2NTA2IDkuNzY4NzNDNS45NTE4IDEwLjA3NyA1LjQ0MzkyIDEwLjA3NyA1LjEzMDY2IDkuNzY4NzNMMC44NTc0MDUgNS41NjI5NVpcIlxuICAgICAgICAgICAgZmlsbD1cIiMxODFGMzNcIlxuICAgICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L3NwYW4+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwYWdlTnVtYmVyIG9mIHBhZ2VzXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZVNlbGVjdGVkUGFnZShwYWdlTnVtYmVyKVwiXG4gICAgICAgICAgKm5nSWY9XCJwYWdlTnVtYmVyICE9IDBcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3BhZ2UtYWN0aXZlJzogcGFnZU51bWJlciA9PSBjb25maWcucGFnaW5hdGlvbkNvbmZpZz8uc2VsZWN0ZWRQYWdlIH1cIlxuICAgICAgICAgIGNsYXNzPVwicGFnZVwiXG4gICAgICAgICAgPnt7IHBhZ2VOdW1iZXIgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInBhZ2VOdW1iZXIgPT0gMFwiIGNsYXNzPVwicGFnZS1zZXBlcmF0b3JcIj5cbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsgZGlzcGxheTogJ2ZsZXgnIH1cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCIgW25nU3R5bGVdPVwieyAnbWFyZ2luLXJpZ2h0JzogJzRweCcgfVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCIgW25nU3R5bGVdPVwieyAnbWFyZ2luLXJpZ2h0JzogJzRweCcgfVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCI+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PiAgICAgICAgICBcbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhbiAoY2xpY2spPVwidXBkYXRlU2VsZWN0ZWRQYWdlKGNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnPy5zZWxlY3RlZFBhZ2UgKyAxKVwiIGNsYXNzPVwicGFnZVwiPlxuICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDcgMTBcIiB3aWR0aD1cIjdcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgZD1cIk02LjE0MjYgNS41NjI5NUM2LjE0NDIxIDUuNTYxMzkgNi4xNDU4MSA1LjU1OTgyIDYuMTQ3NDEgNS41NTgyNEM2LjMwNDA1IDUuNDA0MDggNi4zODIzNiA1LjIwMjAzIDYuMzgyMzYgNC45OTk5OEM2LjM4MjM2IDQuNzk3OTMgNi4zMDQwNSA0LjU5NTg4IDYuMTQ3NDEgNC40NDE3MkM2LjE0NTgxIDQuNDQwMTQgNi4xNDQyMSA0LjQzODU4IDYuMTQyNiA0LjQzNzAyTDEuODY5MzQgMC4yMzEyMzFDMS41NTYwOCAtMC4wNzcwNzcxIDEuMDQ4MiAtMC4wNzcwNzcxIDAuNzM0OTQyIDAuMjMxMjMxQzAuNDIxNjg4IDAuNTM5NTQgMC40MjE2ODggMS4wMzk0MSAwLjczNDk0MiAxLjM0NzcyTDQuNDQ1OCA0Ljk5OTk4TDAuNzM0OTQxIDguNjUyMjVDMC40MjE2ODYgOC45NjA1NSAwLjQyMTY4NiA5LjQ2MDQyIDAuNzM0OTQxIDkuNzY4NzNDMS4wNDgyIDEwLjA3NyAxLjU1NjA4IDEwLjA3NyAxLjg2OTM0IDkuNzY4NzNMNi4xNDI2IDUuNTYyOTVaXCJcbiAgICAgICAgICAgIGZpbGw9XCIjMTgxRjMzXCJcbiAgICAgICAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19