@testgorilla/tgo-ui 1.13.32 → 1.13.34

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 (105) hide show
  1. package/components/accordion/accordion.component.d.ts +20 -2
  2. package/components/accordion/accordion.model.d.ts +1 -0
  3. package/components/alert-banner/alert-banner.component.d.ts +15 -12
  4. package/components/button/button.component.d.ts +15 -1
  5. package/components/checkbox/checkbox.component.d.ts +15 -1
  6. package/components/checkbox/checkbox.component.module.d.ts +2 -1
  7. package/components/datepicker/datepicker.component.d.ts +2 -1
  8. package/components/dialog/dialog.service.d.ts +2 -1
  9. package/components/empty-state/empty-state.component.d.ts +37 -3
  10. package/components/empty-state/empty-state.model.d.ts +3 -0
  11. package/components/field/field.component.d.ts +16 -1
  12. package/components/file-upload/file-upload.component.d.ts +15 -1
  13. package/components/icon/icon.config.d.ts +1 -1
  14. package/components/overflow-menu/overflow-menu.component.d.ts +15 -1
  15. package/components/radio-button/radio-button.component.d.ts +15 -1
  16. package/components/radio-button/radio-button.component.module.d.ts +2 -1
  17. package/components/rating/rating.component.d.ts +16 -2
  18. package/components/rating/rating.component.module.d.ts +2 -1
  19. package/components/segmented-bar/segmented-bar.component.d.ts +15 -1
  20. package/components/segmented-bar/segmented-bar.component.module.d.ts +2 -1
  21. package/components/segmented-button/segmented-button.component.d.ts +23 -0
  22. package/components/segmented-button/segmented-button.component.module.d.ts +10 -0
  23. package/components/segmented-button/segmented-button.model.d.ts +6 -0
  24. package/components/stepper/stepper.component.d.ts +15 -1
  25. package/components/stepper/stepper.component.module.d.ts +2 -1
  26. package/components/table/sentence-case.pipe.d.ts +7 -0
  27. package/components/table/table.component.d.ts +2 -1
  28. package/components/table/table.component.module.d.ts +11 -10
  29. package/components/tag/tag.component.d.ts +15 -1
  30. package/components/tag/tag.component.module.d.ts +2 -1
  31. package/components/toggle/toggle.component.d.ts +15 -1
  32. package/components/toggle/toggle.component.module.d.ts +2 -1
  33. package/esm2022/assets/i18n/es.json +73 -1
  34. package/esm2022/components/accordion/accordion.component.mjs +15 -3
  35. package/esm2022/components/accordion/accordion.model.mjs +2 -0
  36. package/esm2022/components/alert-banner/alert-banner.component.mjs +16 -13
  37. package/esm2022/components/autocomplete/autocomplete.component.mjs +1 -1
  38. package/esm2022/components/avatar/avatar.component.mjs +1 -1
  39. package/esm2022/components/banner-action/banner-action.component.mjs +1 -1
  40. package/esm2022/components/button/button.component.mjs +14 -3
  41. package/esm2022/components/checkbox/checkbox.component.mjs +15 -4
  42. package/esm2022/components/checkbox/checkbox.component.module.mjs +5 -4
  43. package/esm2022/components/datepicker/datepicker.component.mjs +6 -3
  44. package/esm2022/components/dialog/dialog.component.mjs +2 -2
  45. package/esm2022/components/dialog/dialog.service.mjs +3 -3
  46. package/esm2022/components/dropdown/dropdown.component.mjs +1 -1
  47. package/esm2022/components/elevation-shadow/elevation-shadow.component.mjs +2 -2
  48. package/esm2022/components/empty-state/empty-state.component.mjs +63 -5
  49. package/esm2022/components/empty-state/empty-state.model.mjs +2 -0
  50. package/esm2022/components/field/field.component.mjs +16 -4
  51. package/esm2022/components/file-upload/file-upload.component.mjs +15 -4
  52. package/esm2022/components/icon/icon.config.mjs +3 -1
  53. package/esm2022/components/overflow-menu/overflow-menu.component.mjs +14 -3
  54. package/esm2022/components/page-header/page-header.component.mjs +1 -1
  55. package/esm2022/components/radio-button/radio-button.component.mjs +14 -3
  56. package/esm2022/components/radio-button/radio-button.component.module.mjs +5 -4
  57. package/esm2022/components/rating/rating.component.mjs +14 -3
  58. package/esm2022/components/rating/rating.component.module.mjs +5 -4
  59. package/esm2022/components/segmented-bar/segmented-bar.component.mjs +14 -3
  60. package/esm2022/components/segmented-bar/segmented-bar.component.module.mjs +5 -4
  61. package/esm2022/components/segmented-button/segmented-button.component.mjs +53 -0
  62. package/esm2022/components/segmented-button/segmented-button.component.module.mjs +32 -0
  63. package/esm2022/components/segmented-button/segmented-button.model.mjs +2 -0
  64. package/esm2022/components/side-sheet/side-sheet.component.mjs +1 -1
  65. package/esm2022/components/slider/slider.component.mjs +3 -3
  66. package/esm2022/components/snackbar/snackbar.component.mjs +3 -3
  67. package/esm2022/components/stepper/stepper.component.mjs +14 -3
  68. package/esm2022/components/stepper/stepper.component.module.mjs +7 -3
  69. package/esm2022/components/table/sentence-case.pipe.mjs +19 -0
  70. package/esm2022/components/table/table.component.mjs +10 -3
  71. package/esm2022/components/table/table.component.module.mjs +4 -3
  72. package/esm2022/components/tabs/tabs.component.mjs +3 -3
  73. package/esm2022/components/tag/tag.component.mjs +14 -3
  74. package/esm2022/components/tag/tag.component.module.mjs +5 -4
  75. package/esm2022/components/toggle/toggle.component.mjs +15 -4
  76. package/esm2022/components/toggle/toggle.component.module.mjs +5 -4
  77. package/esm2022/components/tooltip/tooltip.component.mjs +3 -3
  78. package/esm2022/public-api.mjs +7 -1
  79. package/esm2022/utils/alert-bar.model.mjs +1 -1
  80. package/esm2022/utils/alert-bars.utils.mjs +3 -3
  81. package/fesm2022/testgorilla-tgo-ui.mjs +494 -111
  82. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  83. package/package.json +1 -1
  84. package/public-api.d.ts +5 -0
  85. package/src/assets/i18n/da-dk.json +77 -0
  86. package/src/assets/i18n/de.json +77 -0
  87. package/src/assets/i18n/es.json +74 -2
  88. package/src/assets/i18n/fr.json +77 -0
  89. package/src/assets/i18n/it-it.json +77 -0
  90. package/src/assets/i18n/ja-jp.json +77 -0
  91. package/src/assets/i18n/nb-no.json +77 -0
  92. package/src/assets/i18n/nl.json +77 -0
  93. package/src/assets/i18n/pl-pl.json +77 -0
  94. package/src/assets/i18n/pt-br.json +77 -0
  95. package/src/assets/i18n/sv-se.json +77 -0
  96. package/src/assets/icons/rebrand/Disconnected-in-line.svg +12 -0
  97. package/src/assets/icons/rebrand/Empty-search-in-line.svg +12 -0
  98. package/src/assets/icons/rebrand/Lost-found-404-in-line.svg +12 -0
  99. package/src/assets/icons/rebrand/Premium-circle-in-line.svg +5 -0
  100. package/src/theme/_input.scss +1 -0
  101. package/src/theme/_tooltip.scss +103 -60
  102. package/src/theme/_typography.scss +12 -6
  103. package/src/theme/theme.scss +1 -1
  104. package/utils/alert-bar.model.d.ts +1 -0
  105. package/utils/alert-bars.utils.d.ts +2 -1
@@ -7,6 +7,7 @@ import { StepLineWidthDirective } from '../../directives/step-line-width.directi
7
7
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
8
8
  import { RadialProgressComponentModule } from '../radial-progress/radial-progress.component.module';
9
9
  import { UiTranslatePipe } from '../../pipes/ui-translate.pipe';
10
+ import { MatInputModule } from '@angular/material/input';
10
11
  import * as i0 from "@angular/core";
11
12
  export class StepperComponentModule {
12
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StepperComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -15,12 +16,14 @@ export class StepperComponentModule {
15
16
  StepComponentModule,
16
17
  MatProgressSpinnerModule,
17
18
  RadialProgressComponentModule,
18
- UiTranslatePipe], exports: [StepperComponent] }); }
19
+ UiTranslatePipe,
20
+ MatInputModule], exports: [StepperComponent] }); }
19
21
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StepperComponentModule, imports: [CommonModule,
20
22
  IconComponentModule,
21
23
  StepComponentModule,
22
24
  MatProgressSpinnerModule,
23
- RadialProgressComponentModule] }); }
25
+ RadialProgressComponentModule,
26
+ MatInputModule] }); }
24
27
  }
25
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StepperComponentModule, decorators: [{
26
29
  type: NgModule,
@@ -33,8 +36,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33
36
  MatProgressSpinnerModule,
34
37
  RadialProgressComponentModule,
35
38
  UiTranslatePipe,
39
+ MatInputModule,
36
40
  ],
37
41
  exports: [StepperComponent],
38
42
  }]
39
43
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWNoRSxNQUFNLE9BQU8sc0JBQXNCOytHQUF0QixzQkFBc0I7Z0hBQXRCLHNCQUFzQixpQkFYbEIsZ0JBQWdCLEVBQUUsc0JBQXNCLGFBRXJELFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLHdCQUF3QjtZQUN4Qiw2QkFBNkI7WUFDN0IsZUFBZSxhQUVQLGdCQUFnQjtnSEFFZixzQkFBc0IsWUFUL0IsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsd0JBQXdCO1lBQ3hCLDZCQUE2Qjs7NEZBS3BCLHNCQUFzQjtrQkFabEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDeEQsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsNkJBQTZCO3dCQUM3QixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFN0ZXBwZXJDb21wb25lbnQgfSBmcm9tICcuL3N0ZXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBTdGVwQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vc3RlcC9zdGVwLmNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgU3RlcExpbmVXaWR0aERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc3RlcC1saW5lLXdpZHRoLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFJhZGlhbFByb2dyZXNzQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vcmFkaWFsLXByb2dyZXNzL3JhZGlhbC1wcm9ncmVzcy5jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7IFVpVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3VpLXRyYW5zbGF0ZS5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3RlcHBlckNvbXBvbmVudCwgU3RlcExpbmVXaWR0aERpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudE1vZHVsZSxcbiAgICBTdGVwQ29tcG9uZW50TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBSYWRpYWxQcm9ncmVzc0NvbXBvbmVudE1vZHVsZSxcbiAgICBVaVRyYW5zbGF0ZVBpcGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtTdGVwcGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlckNvbXBvbmVudE1vZHVsZSB7fVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFlekQsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO2dIQUF0QixzQkFBc0IsaUJBWmxCLGdCQUFnQixFQUFFLHNCQUFzQixhQUVyRCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsNkJBQTZCO1lBQzdCLGVBQWU7WUFDZixjQUFjLGFBRU4sZ0JBQWdCO2dIQUVmLHNCQUFzQixZQVYvQixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsNkJBQTZCO1lBRTdCLGNBQWM7OzRGQUlMLHNCQUFzQjtrQkFibEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDeEQsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsNkJBQTZCO3dCQUM3QixlQUFlO3dCQUNmLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgU3RlcENvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL3N0ZXAvc3RlcC5jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7IFN0ZXBMaW5lV2lkdGhEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3N0ZXAtbGluZS13aWR0aC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBSYWRpYWxQcm9ncmVzc0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL3JhZGlhbC1wcm9ncmVzcy9yYWRpYWwtcHJvZ3Jlc3MuY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBVaVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91aS10cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3RlcHBlckNvbXBvbmVudCwgU3RlcExpbmVXaWR0aERpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudE1vZHVsZSxcbiAgICBTdGVwQ29tcG9uZW50TW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBSYWRpYWxQcm9ncmVzc0NvbXBvbmVudE1vZHVsZSxcbiAgICBVaVRyYW5zbGF0ZVBpcGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtTdGVwcGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlckNvbXBvbmVudE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,19 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SentenceCasePipe {
4
+ transform(value) {
5
+ if (!value) {
6
+ return '';
7
+ }
8
+ return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SentenceCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
11
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SentenceCasePipe, name: "sentencecase" }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SentenceCasePipe, decorators: [{
14
+ type: Pipe,
15
+ args: [{
16
+ name: 'sentencecase',
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudGVuY2UtY2FzZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvc2VudGVuY2UtY2FzZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFNBQVMsQ0FBQyxLQUF5QjtRQUNqQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RFLENBQUM7K0dBTlUsZ0JBQWdCOzZHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBSDVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdzZW50ZW5jZWNhc2UnLFxufSlcbmV4cG9ydCBjbGFzcyBTZW50ZW5jZUNhc2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -7,6 +7,7 @@ import * as i4 from "../skeleton/skeleton.component";
7
7
  import * as i5 from "../paginator/paginator.component";
8
8
  import * as i6 from "@angular/material/sort";
9
9
  import * as i7 from "../../directives/ellipse-text.directive";
10
+ import * as i8 from "./sentence-case.pipe";
10
11
  export class TableComponent {
11
12
  constructor() {
12
13
  /**
@@ -65,6 +66,12 @@ export class TableComponent {
65
66
  this.tableData = tableData;
66
67
  this.sourceData = tableData;
67
68
  }
69
+ ngOnInit() {
70
+ if (this.applicationTheme !== 'classic') {
71
+ this.skeletonStyleConfig.background = '#F4F4F4';
72
+ }
73
+ document.body.setAttribute('theme', this.applicationTheme);
74
+ }
68
75
  ngOnChanges() {
69
76
  if (this.tableConfig.sort) {
70
77
  this.onSortChange(this.tableConfig.sort);
@@ -85,11 +92,11 @@ export class TableComponent {
85
92
  this.sortChange.emit(sortState);
86
93
  }
87
94
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, selector: "ui-table", inputs: { config: "config", data: "data", loading: "loading", applicationTheme: "applicationTheme" }, outputs: { paginatorChange: "paginatorChange", sortChange: "sortChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"table-container\" [ngClass]=\"{ 'without-title': !tableConfig?.title }\">\n <div *ngIf=\"tableConfig?.title\" class=\"table-header\">{{ tableConfig.title }}</div>\n <div class=\"table-wrapper\">\n <table\n mat-table\n [dataSource]=\"tableData\"\n matSort\n [matSortActive]=\"tableConfig?.sort?.active ?? ''\"\n [matSortDirection]=\"tableConfig?.sort?.direction ?? ''\"\n (matSortChange)=\"onSortChange($event)\"\n >\n\n <ng-container *ngFor=\"let column of tableConfig?.columns; index as i, last as isLast, first as isFirst\">\n <ng-container *ngIf=\"isFirst && tableConfig?.stickyFirstColumn && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" [sticky]=\"true\">\n <th mat-header-cell\n mat-sort-header\n *matHeaderCellDef\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isFirst && tableConfig?.stickyFirstColumn && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" [sticky]=\"true\">\n <th mat-header-cell\n *matHeaderCellDef\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isLast && tableConfig?.stickyLastColumn && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" stickyEnd>\n <th mat-header-cell\n mat-sort-header\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isLast && tableConfig?.stickyLastColumn && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" stickyEnd>\n <th mat-header-cell\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isFirst && tableConfig?.stickyFirstColumn) && !(isLast && tableConfig?.stickyLastColumn) && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\">\n <th mat-header-cell\n mat-sort-header\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isFirst && tableConfig?.stickyFirstColumn) && !(isLast && tableConfig?.stickyLastColumn) && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\">\n <th mat-header-cell\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n <ui-paginator\n [disabled]=\"loading\"\n [pageSize]=\"tableConfig.pagination.itemsPerPage\"\n [length]=\"tableConfig.pagination.totalItems\"\n [pageSizeOptions]=\"tableConfig.pagination.itemsPerPageOptions\"\n (paginatorChange)=\"onPaginatorChange($event)\"\n ></ui-paginator>\n</div>\n\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.flex-left,.table-container .table-header{display:flex;justify-content:flex-start;align-items:center}.table-container{overflow:hidden;border:1px #E0E0E0 solid;border-radius:8px}.table-container ::ng-deep .mat-sort-header-arrow{color:#000}.table-container .table-header{min-height:56px;padding:8px;background:#fff;line-height:24px;font-size:16px;font-weight:700;text-transform:uppercase}.table-container .table-wrapper{max-width:100%;overflow:auto}.table-container .table-wrapper table{width:100%;box-shadow:unset;border-top:1px #E0E0E0 solid;border-bottom:1px #E0E0E0 solid}.table-container .table-wrapper table ::ng-deep .mat-sort-header-arrow{margin-left:8px}.table-container .table-wrapper table .mdc-data-table__cell,.table-container .table-wrapper table .mdc-data-table__header-cell{padding:8px 24px}.table-container .table-wrapper table th{font-size:12px;line-height:16px;text-transform:uppercase}.table-container .table-wrapper table td{font-size:14px;line-height:20px}.table-container .table-wrapper table td ::ng-deep .table-skeleton-loader ngx-skeleton-loader{display:flex;justify-content:center;align-items:center;line-height:unset}.table-container .table-wrapper table td ::ng-deep .table-skeleton-loader ngx-skeleton-loader .skeleton-loader{margin-bottom:0}.table-container .table-wrapper table ::ng-deep thead{background:#f6f6f6!important}.table-container .table-wrapper table .mat-mdc-table-sticky-border-elem-right,.table-container .table-wrapper table .mat-mdc-table-sticky-border-elem-left{box-shadow:0 8px 24px 4px #00000014}.table-container .column-title{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-container.without-title table{border:unset!important}.table-container ::ng-deep .mat-mdc-paginator-container{padding:0 24px}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.SkeletonComponent, selector: "ui-skeleton", inputs: ["count", "theme", "appearance", "applicationTheme"] }, { kind: "component", type: i5.PaginatorComponent, selector: "ui-paginator", inputs: ["pageSizeOptions", "length", "pageSize", "disabled", "applicationTheme"], outputs: ["paginatorChange"] }, { kind: "directive", type: i6.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i7.EllipseTextDirective, selector: "[uiEllipseText]", outputs: ["onChangeTextState"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TableComponent, selector: "ui-table", inputs: { config: "config", data: "data", loading: "loading", applicationTheme: "applicationTheme" }, outputs: { paginatorChange: "paginatorChange", sortChange: "sortChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"table-container\" [ngClass]=\"{ 'without-title': !tableConfig?.title }\" [attr.theme]=\"applicationTheme\">\n <div *ngIf=\"tableConfig?.title\" class=\"table-header\">{{ tableConfig.title | sentencecase }}</div>\n <div class=\"table-wrapper\">\n <table\n mat-table\n [dataSource]=\"tableData\"\n matSort\n [matSortActive]=\"tableConfig?.sort?.active ?? ''\"\n [matSortDirection]=\"tableConfig?.sort?.direction ?? ''\"\n (matSortChange)=\"onSortChange($event)\"\n >\n\n <ng-container *ngFor=\"let column of tableConfig?.columns; index as i, last as isLast, first as isFirst\">\n <ng-container *ngIf=\"isFirst && tableConfig?.stickyFirstColumn && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" [sticky]=\"true\">\n <th mat-header-cell\n mat-sort-header\n *matHeaderCellDef\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isFirst && tableConfig?.stickyFirstColumn && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" [sticky]=\"true\">\n <th mat-header-cell\n *matHeaderCellDef\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isLast && tableConfig?.stickyLastColumn && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" stickyEnd>\n <th mat-header-cell\n mat-sort-header\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isLast && tableConfig?.stickyLastColumn && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" stickyEnd>\n <th mat-header-cell\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isFirst && tableConfig?.stickyFirstColumn) && !(isLast && tableConfig?.stickyLastColumn) && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\">\n <th mat-header-cell\n mat-sort-header\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isFirst && tableConfig?.stickyFirstColumn) && !(isLast && tableConfig?.stickyLastColumn) && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\">\n <th mat-header-cell\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n <ui-paginator\n [disabled]=\"loading\"\n [applicationTheme]=\"applicationTheme !== 'classic' ? 'light' : 'classic'\"\n [pageSize]=\"tableConfig.pagination.itemsPerPage\"\n [length]=\"tableConfig.pagination.totalItems\"\n [pageSizeOptions]=\"tableConfig.pagination.itemsPerPageOptions\"\n (paginatorChange)=\"onPaginatorChange($event)\"\n ></ui-paginator>\n</div>\n\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.flex-left,.table-container .table-header{display:flex;justify-content:flex-start;align-items:center}.table-container{overflow:hidden;border:1px #E0E0E0 solid;border-radius:8px}.table-container ::ng-deep .mat-sort-header-arrow{color:#000}.table-container .table-header{min-height:56px;padding:8px;background:#fff;line-height:24px;font-size:16px;font-weight:700;text-transform:uppercase}.table-container .table-wrapper{max-width:100%;overflow:auto}.table-container .table-wrapper table{width:100%;box-shadow:unset;border-top:1px #E0E0E0 solid;border-bottom:1px #E0E0E0 solid}.table-container .table-wrapper table ::ng-deep .mat-sort-header-arrow{margin-left:8px}.table-container .table-wrapper table .mdc-data-table__cell,.table-container .table-wrapper table .mdc-data-table__header-cell{padding:8px 24px}.table-container .table-wrapper table th{font-size:12px;line-height:16px;text-transform:uppercase}.table-container .table-wrapper table td{font-size:14px;line-height:20px}.table-container .table-wrapper table td ::ng-deep .table-skeleton-loader ngx-skeleton-loader{display:flex;justify-content:center;align-items:center;line-height:unset}.table-container .table-wrapper table td ::ng-deep .table-skeleton-loader ngx-skeleton-loader .skeleton-loader{margin-bottom:0}.table-container .table-wrapper table ::ng-deep thead{background:#f6f6f6!important}.table-container .table-wrapper table .mat-mdc-table-sticky-border-elem-right,.table-container .table-wrapper table .mat-mdc-table-sticky-border-elem-left{box-shadow:0 8px 24px 4px #00000014}.table-container .column-title{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-container.without-title table{border:unset!important}.table-container ::ng-deep .mat-mdc-paginator-container{padding:0 24px}.table-container[theme=dark],.table-container[theme=light]{border-radius:10px}.table-container[theme=dark] .table-header,.table-container[theme=light] .table-header{padding:8px 24px;text-transform:none}.table-container[theme=dark] .table-wrapper table th,.table-container[theme=light] .table-wrapper table th{text-transform:none}.table-container[theme=dark] .table-wrapper table ::ng-deep thead,.table-container[theme=light] .table-wrapper table ::ng-deep thead{background-color:#fff!important}.table-container[theme=dark] .table-wrapper table ::ng-deep :not(thead) tr:hover,.table-container[theme=light] .table-wrapper table ::ng-deep :not(thead) tr:hover{background-color:#fff2fc}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.SkeletonComponent, selector: "ui-skeleton", inputs: ["count", "theme", "appearance", "applicationTheme"] }, { kind: "component", type: i5.PaginatorComponent, selector: "ui-paginator", inputs: ["pageSizeOptions", "length", "pageSize", "disabled", "applicationTheme"], outputs: ["paginatorChange"] }, { kind: "directive", type: i6.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i7.EllipseTextDirective, selector: "[uiEllipseText]", outputs: ["onChangeTextState"] }, { kind: "pipe", type: i8.SentenceCasePipe, name: "sentencecase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
96
  }
90
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponent, decorators: [{
91
98
  type: Component,
92
- args: [{ selector: 'ui-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"table-container\" [ngClass]=\"{ 'without-title': !tableConfig?.title }\">\n <div *ngIf=\"tableConfig?.title\" class=\"table-header\">{{ tableConfig.title }}</div>\n <div class=\"table-wrapper\">\n <table\n mat-table\n [dataSource]=\"tableData\"\n matSort\n [matSortActive]=\"tableConfig?.sort?.active ?? ''\"\n [matSortDirection]=\"tableConfig?.sort?.direction ?? ''\"\n (matSortChange)=\"onSortChange($event)\"\n >\n\n <ng-container *ngFor=\"let column of tableConfig?.columns; index as i, last as isLast, first as isFirst\">\n <ng-container *ngIf=\"isFirst && tableConfig?.stickyFirstColumn && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" [sticky]=\"true\">\n <th mat-header-cell\n mat-sort-header\n *matHeaderCellDef\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isFirst && tableConfig?.stickyFirstColumn && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" [sticky]=\"true\">\n <th mat-header-cell\n *matHeaderCellDef\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isLast && tableConfig?.stickyLastColumn && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" stickyEnd>\n <th mat-header-cell\n mat-sort-header\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isLast && tableConfig?.stickyLastColumn && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" stickyEnd>\n <th mat-header-cell\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isFirst && tableConfig?.stickyFirstColumn) && !(isLast && tableConfig?.stickyLastColumn) && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\">\n <th mat-header-cell\n mat-sort-header\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isFirst && tableConfig?.stickyFirstColumn) && !(isLast && tableConfig?.stickyLastColumn) && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\">\n <th mat-header-cell\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n <ui-paginator\n [disabled]=\"loading\"\n [pageSize]=\"tableConfig.pagination.itemsPerPage\"\n [length]=\"tableConfig.pagination.totalItems\"\n [pageSizeOptions]=\"tableConfig.pagination.itemsPerPageOptions\"\n (paginatorChange)=\"onPaginatorChange($event)\"\n ></ui-paginator>\n</div>\n\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.flex-left,.table-container .table-header{display:flex;justify-content:flex-start;align-items:center}.table-container{overflow:hidden;border:1px #E0E0E0 solid;border-radius:8px}.table-container ::ng-deep .mat-sort-header-arrow{color:#000}.table-container .table-header{min-height:56px;padding:8px;background:#fff;line-height:24px;font-size:16px;font-weight:700;text-transform:uppercase}.table-container .table-wrapper{max-width:100%;overflow:auto}.table-container .table-wrapper table{width:100%;box-shadow:unset;border-top:1px #E0E0E0 solid;border-bottom:1px #E0E0E0 solid}.table-container .table-wrapper table ::ng-deep .mat-sort-header-arrow{margin-left:8px}.table-container .table-wrapper table .mdc-data-table__cell,.table-container .table-wrapper table .mdc-data-table__header-cell{padding:8px 24px}.table-container .table-wrapper table th{font-size:12px;line-height:16px;text-transform:uppercase}.table-container .table-wrapper table td{font-size:14px;line-height:20px}.table-container .table-wrapper table td ::ng-deep .table-skeleton-loader ngx-skeleton-loader{display:flex;justify-content:center;align-items:center;line-height:unset}.table-container .table-wrapper table td ::ng-deep .table-skeleton-loader ngx-skeleton-loader .skeleton-loader{margin-bottom:0}.table-container .table-wrapper table ::ng-deep thead{background:#f6f6f6!important}.table-container .table-wrapper table .mat-mdc-table-sticky-border-elem-right,.table-container .table-wrapper table .mat-mdc-table-sticky-border-elem-left{box-shadow:0 8px 24px 4px #00000014}.table-container .column-title{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-container.without-title table{border:unset!important}.table-container ::ng-deep .mat-mdc-paginator-container{padding:0 24px}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}\n"] }]
99
+ args: [{ selector: 'ui-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"table-container\" [ngClass]=\"{ 'without-title': !tableConfig?.title }\" [attr.theme]=\"applicationTheme\">\n <div *ngIf=\"tableConfig?.title\" class=\"table-header\">{{ tableConfig.title | sentencecase }}</div>\n <div class=\"table-wrapper\">\n <table\n mat-table\n [dataSource]=\"tableData\"\n matSort\n [matSortActive]=\"tableConfig?.sort?.active ?? ''\"\n [matSortDirection]=\"tableConfig?.sort?.direction ?? ''\"\n (matSortChange)=\"onSortChange($event)\"\n >\n\n <ng-container *ngFor=\"let column of tableConfig?.columns; index as i, last as isLast, first as isFirst\">\n <ng-container *ngIf=\"isFirst && tableConfig?.stickyFirstColumn && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" [sticky]=\"true\">\n <th mat-header-cell\n mat-sort-header\n *matHeaderCellDef\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isFirst && tableConfig?.stickyFirstColumn && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" [sticky]=\"true\">\n <th mat-header-cell\n *matHeaderCellDef\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isLast && tableConfig?.stickyLastColumn && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" stickyEnd>\n <th mat-header-cell\n mat-sort-header\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isLast && tableConfig?.stickyLastColumn && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\" stickyEnd>\n <th mat-header-cell\n *matHeaderCellDef\n [attr.sortable]=\"column.allowSort ?? false\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isFirst && tableConfig?.stickyFirstColumn) && !(isLast && tableConfig?.stickyLastColumn) && column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\">\n <th mat-header-cell\n mat-sort-header\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n <ng-container\n *ngIf=\"!(isFirst && tableConfig?.stickyFirstColumn) && !(isLast && tableConfig?.stickyLastColumn) && !column.allowSort\">\n <ng-container [matColumnDef]=\"column.key\">\n <th mat-header-cell\n [attr.sortable]=\"column.allowSort ?? false\"\n *matHeaderCellDef\n [style.font-weight]=\"'bold'\"\n [matTooltipClass]=\"applicationTheme\"\n [matTooltip]=\"columnsTooltipState[i].showTooltip ? column.title : ''\"\n >\n <ng-container *ngIf=\"column.headerCellTemplate; else configValue\">\n <ng-container\n *ngTemplateOutlet=\"column.headerCellTemplate; context: {$implicit: column.title}\"></ng-container>\n </ng-container>\n <ng-template #configValue>\n <span uiEllipseText (onChangeTextState)=\"onChangeColumnSize(i, $event)\"\n class=\"column-title\">{{ column.title | sentencecase }}</span>\n </ng-template>\n </th>\n\n <td mat-cell\n *matCellDef=\"let element\"\n [style.width]=\"column.widthPerc + '%'\"\n [style.min-width]=\"column.minWidthPx + 'px'\"\n >\n <ui-skeleton class=\"table-skeleton-loader\" [count]=\"1\" [theme]=\"skeletonStyleConfig\" [appearance]=\"'line'\"\n *ngIf=\"loading; else value\"></ui-skeleton>\n <ng-template #value>\n <ng-container *ngIf=\"column.rowCellTemplate; else configData\">\n <ng-container\n *ngTemplateOutlet=\"column.rowCellTemplate; context: {$implicit: element[column.key]}\"></ng-container>\n </ng-container>\n <ng-template #configData>\n <span [style.font-weight]=\"column.bold ? 'bold' : 'normal'\">{{ element[column.key] }}</span>\n </ng-template>\n </ng-template>\n </td>\n </ng-container>\n </ng-container>\n\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n\n <ui-paginator\n [disabled]=\"loading\"\n [applicationTheme]=\"applicationTheme !== 'classic' ? 'light' : 'classic'\"\n [pageSize]=\"tableConfig.pagination.itemsPerPage\"\n [length]=\"tableConfig.pagination.totalItems\"\n [pageSizeOptions]=\"tableConfig.pagination.itemsPerPageOptions\"\n (paginatorChange)=\"onPaginatorChange($event)\"\n ></ui-paginator>\n</div>\n\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}.flex-left,.table-container .table-header{display:flex;justify-content:flex-start;align-items:center}.table-container{overflow:hidden;border:1px #E0E0E0 solid;border-radius:8px}.table-container ::ng-deep .mat-sort-header-arrow{color:#000}.table-container .table-header{min-height:56px;padding:8px;background:#fff;line-height:24px;font-size:16px;font-weight:700;text-transform:uppercase}.table-container .table-wrapper{max-width:100%;overflow:auto}.table-container .table-wrapper table{width:100%;box-shadow:unset;border-top:1px #E0E0E0 solid;border-bottom:1px #E0E0E0 solid}.table-container .table-wrapper table ::ng-deep .mat-sort-header-arrow{margin-left:8px}.table-container .table-wrapper table .mdc-data-table__cell,.table-container .table-wrapper table .mdc-data-table__header-cell{padding:8px 24px}.table-container .table-wrapper table th{font-size:12px;line-height:16px;text-transform:uppercase}.table-container .table-wrapper table td{font-size:14px;line-height:20px}.table-container .table-wrapper table td ::ng-deep .table-skeleton-loader ngx-skeleton-loader{display:flex;justify-content:center;align-items:center;line-height:unset}.table-container .table-wrapper table td ::ng-deep .table-skeleton-loader ngx-skeleton-loader .skeleton-loader{margin-bottom:0}.table-container .table-wrapper table ::ng-deep thead{background:#f6f6f6!important}.table-container .table-wrapper table .mat-mdc-table-sticky-border-elem-right,.table-container .table-wrapper table .mat-mdc-table-sticky-border-elem-left{box-shadow:0 8px 24px 4px #00000014}.table-container .column-title{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-container.without-title table{border:unset!important}.table-container ::ng-deep .mat-mdc-paginator-container{padding:0 24px}.table-container[theme=dark],.table-container[theme=light]{border-radius:10px}.table-container[theme=dark] .table-header,.table-container[theme=light] .table-header{padding:8px 24px;text-transform:none}.table-container[theme=dark] .table-wrapper table th,.table-container[theme=light] .table-wrapper table th{text-transform:none}.table-container[theme=dark] .table-wrapper table ::ng-deep thead,.table-container[theme=light] .table-wrapper table ::ng-deep thead{background-color:#fff!important}.table-container[theme=dark] .table-wrapper table ::ng-deep :not(thead) tr:hover,.table-container[theme=light] .table-wrapper table ::ng-deep :not(thead) tr:hover{background-color:#fff2fc}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}\n"] }]
93
100
  }], propDecorators: { config: [{
94
101
  type: Input,
95
102
  args: [{ required: true }]
@@ -104,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
104
111
  }], sortChange: [{
105
112
  type: Output
106
113
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBVzNHLE1BQU0sT0FBTyxjQUFjO0lBTjNCO1FBbUNFOzs7Ozs7V0FNRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFekI7Ozs7O1dBS0c7UUFDTSxxQkFBZ0IsR0FBcUIsU0FBUyxDQUFDO1FBRTlDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUNoRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUl0Qyx3QkFBbUIsR0FBb0IsRUFBRSxDQUFDO1FBRTFDLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUNoQyx3QkFBbUIsR0FBRztZQUM5QixVQUFVLEVBQUUsU0FBUztZQUNyQixlQUFlLEVBQUUsS0FBSztZQUN0QixNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUM7UUFRTSw0QkFBdUIsR0FBZTtZQUM1QyxXQUFXLEVBQUUsQ0FBQztZQUNkLFlBQVksRUFBRSxFQUFFO1lBQ2hCLG1CQUFtQixFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDakMsVUFBVSxFQUFFLEVBQUU7U0FDZixDQUFDO0tBbUJIO0lBekZDOzs7OztPQUtHO0lBQ0gsSUFBK0IsTUFBTSxDQUFDLE1BQW1CO1FBQ3ZELE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUM7UUFFdEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFtQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEUsS0FBSztZQUNMLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLEtBQUs7U0FDekMsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBYSxJQUFJLENBQUMsU0FBb0I7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQWlDRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBU1MsaUJBQWlCLENBQUMsS0FBZ0I7UUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVTLGtCQUFrQixDQUFDLFdBQW1CLEVBQUUsV0FBb0I7UUFDcEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0QsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRTtnQkFDaEMsTUFBTSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7YUFDbEM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxZQUFZLENBQUMsU0FBZTtRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDOytHQXpGVSxjQUFjO21HQUFkLGNBQWMsc1BDWDNCLG0yYUE4UUE7OzRGRG5RYSxjQUFjO2tCQU4xQixTQUFTOytCQUNFLFVBQVUsbUJBR0gsdUJBQXVCLENBQUMsTUFBTTs4QkFTaEIsTUFBTTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBaUJaLElBQUk7c0JBQWhCLEtBQUs7Z0JBWUcsT0FBTztzQkFBZixLQUFLO2dCQVFHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sdW1uRWxsaXBzZSwgUGFnaW5hdGlvbiwgU29ydCwgVGFibGVDb25maWcsIFRhYmxlQ29uZmlnV2l0aFBhZ2luYXRpb24sIFRhYmxlRGF0YSB9IGZyb20gJy4vdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgLyoqXG4gICAqIFRhYmxlIGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQHR5cGUge1RhYmxlQ29uZmlnfVxuICAgKiBAbWVtYmVyb2YgVGFibGVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNldCBjb25maWcoY29uZmlnOiBUYWJsZUNvbmZpZykge1xuICAgIGNvbmZpZy5wYWdpbmF0aW9uID0gY29uZmlnLnBhZ2luYXRpb24gPz8gdGhpcy5kZWZhdWx0UGFnaW5hdGlvbkNvbmZpZztcblxuICAgIHRoaXMudGFibGVDb25maWcgPSBjb25maWcgYXMgVGFibGVDb25maWdXaXRoUGFnaW5hdGlvbjtcbiAgICB0aGlzLmNvbHVtbnNUb29sdGlwU3RhdGUgPSBjb25maWcuY29sdW1ucy5tYXAoKGNvbHVtbiwgaW5kZXgpID0+ICh7XG4gICAgICBpbmRleCxcbiAgICAgIHNob3dUb29sdGlwOiBjb2x1bW4uc2hvd1Rvb2x0aXAgPz8gZmFsc2UsXG4gICAgfSkpO1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IGNvbmZpZy5jb2x1bW5zLm1hcChjb2x1bW4gPT4gY29sdW1uLmtleSk7XG4gIH1cblxuICAvKipcbiAgICogSW5wdXQgcHJvcGVydHkgZm9yIHByb3ZpZGluZyB0aGUgdGFibGUgZGF0YS5cbiAgICpcbiAgICogQHR5cGUge1RhYmxlRGF0YX1cbiAgICogQG1lbWJlcm9mIFRhYmxlQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBzZXQgZGF0YSh0YWJsZURhdGE6IFRhYmxlRGF0YSkge1xuICAgIHRoaXMudGFibGVEYXRhID0gdGFibGVEYXRhO1xuICAgIHRoaXMuc291cmNlRGF0YSA9IHRhYmxlRGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnB1dCBwcm9wZXJ0eSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRhYmxlIGlzIGluIGEgbG9hZGluZyBzdGF0ZS5cbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBUYWJsZUNvbXBvbmVudFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKlxuICAgKiBEZWZpbmVzIHRoZSBhcHBsaWNhdGlvbiB0aGVtZVxuICAgKiBAdHlwZSB7QXBwbGljYXRpb25UaGVtZX1cbiAgICogQG1lbWJlcm9mIFRhYmxlQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhcHBsaWNhdGlvblRoZW1lOiBBcHBsaWNhdGlvblRoZW1lID0gJ2NsYXNzaWMnO1xuXG4gIEBPdXRwdXQoKSBwYWdpbmF0b3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2VFdmVudD4oKTtcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnQ+KCk7XG5cbiAgcHJvdGVjdGVkIHRhYmxlRGF0YTogVGFibGVEYXRhO1xuICBwcm90ZWN0ZWQgc291cmNlRGF0YTogVGFibGVEYXRhO1xuICBwcm90ZWN0ZWQgY29sdW1uc1Rvb2x0aXBTdGF0ZTogQ29sdW1uRWxsaXBzZVtdID0gW107XG4gIHByb3RlY3RlZCB0YWJsZUNvbmZpZzogVGFibGVDb25maWdXaXRoUGFnaW5hdGlvbjtcbiAgcHJvdGVjdGVkIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW107XG4gIHByb3RlY3RlZCBza2VsZXRvblN0eWxlQ29uZmlnID0ge1xuICAgIGJhY2tncm91bmQ6ICcjRjZGNkY2JyxcbiAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLFxuICAgIGhlaWdodDogJzI0cHgnLFxuICB9O1xuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRhYmxlQ29uZmlnLnNvcnQpIHtcbiAgICAgIHRoaXMub25Tb3J0Q2hhbmdlKHRoaXMudGFibGVDb25maWcuc29ydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0UGFnaW5hdGlvbkNvbmZpZzogUGFnaW5hdGlvbiA9IHtcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICBpdGVtc1BlclBhZ2U6IDEwLFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IFsxMCwgMjUsIDUwXSxcbiAgICB0b3RhbEl0ZW1zOiAyMCxcbiAgfTtcblxuICBwcm90ZWN0ZWQgb25QYWdpbmF0b3JDaGFuZ2UoZXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucGFnaW5hdG9yQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlQ29sdW1uU2l6ZShjb2x1bW5JbmRleDogbnVtYmVyLCBzaG93VG9vbHRpcDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uc1Rvb2x0aXBTdGF0ZSA9IHRoaXMuY29sdW1uc1Rvb2x0aXBTdGF0ZS5tYXAoY29sdW1uID0+IHtcbiAgICAgIGlmIChjb2x1bW4uaW5kZXggPT09IGNvbHVtbkluZGV4KSB7XG4gICAgICAgIGNvbHVtbi5zaG93VG9vbHRpcCA9IHNob3dUb29sdGlwO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29sdW1uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU29ydENoYW5nZShzb3J0U3RhdGU6IFNvcnQpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRDaGFuZ2UuZW1pdChzb3J0U3RhdGUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyAnd2l0aG91dC10aXRsZSc6ICF0YWJsZUNvbmZpZz8udGl0bGUgfVwiPlxuICA8ZGl2ICpuZ0lmPVwidGFibGVDb25maWc/LnRpdGxlXCIgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj57eyB0YWJsZUNvbmZpZy50aXRsZSB9fTwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxuICAgIDx0YWJsZVxuICAgICAgbWF0LXRhYmxlXG4gICAgICBbZGF0YVNvdXJjZV09XCJ0YWJsZURhdGFcIlxuICAgICAgbWF0U29ydFxuICAgICAgW21hdFNvcnRBY3RpdmVdPVwidGFibGVDb25maWc/LnNvcnQ/LmFjdGl2ZSA/PyAnJ1wiXG4gICAgICBbbWF0U29ydERpcmVjdGlvbl09XCJ0YWJsZUNvbmZpZz8uc29ydD8uZGlyZWN0aW9uID8/ICcnXCJcbiAgICAgIChtYXRTb3J0Q2hhbmdlKT1cIm9uU29ydENoYW5nZSgkZXZlbnQpXCJcbiAgICA+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB0YWJsZUNvbmZpZz8uY29sdW1uczsgaW5kZXggYXMgaSwgbGFzdCBhcyBpc0xhc3QsIGZpcnN0IGFzIGlzRmlyc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmlyc3QgJiYgdGFibGVDb25maWc/LnN0aWNreUZpcnN0Q29sdW1uICYmIGNvbHVtbi5hbGxvd1NvcnRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmtleVwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAgICAgICAgIG1hdC1zb3J0LWhlYWRlclxuICAgICAgICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aFBlcmMgKyAnJSdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sdW1uLm1pbldpZHRoUHggKyAncHgnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuZm9udC13ZWlnaHRdPVwiJ2JvbGQnXCJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJjb2x1bW5zVG9vbHRpcFN0YXRlW2ldLnNob3dUb29sdGlwID8gY29sdW1uLnRpdGxlIDogJydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmhlYWRlckNlbGxUZW1wbGF0ZTsgZWxzZSBjb25maWdWYWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmhlYWRlckNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY29sdW1uLnRpdGxlfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb25maWdWYWx1ZT5cbiAgICAgICAgICAgICAgICAgPHNwYW4gdWlFbGxpcHNlVGV4dCAob25DaGFuZ2VUZXh0U3RhdGUpPVwib25DaGFuZ2VDb2x1bW5TaXplKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbHVtbi10aXRsZVwiPnt7IGNvbHVtbi50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdGg+XG5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbFxuICAgICAgICAgICAgICAgICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhQZXJjICsgJyUnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbHVtbi5taW5XaWR0aFB4ICsgJ3B4J1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDx1aS1za2VsZXRvbiBjbGFzcz1cInRhYmxlLXNrZWxldG9uLWxvYWRlclwiIFtjb3VudF09XCIxXCIgW3RoZW1lXT1cInNrZWxldG9uU3R5bGVDb25maWdcIiBbYXBwZWFyYW5jZV09XCInbGluZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsb2FkaW5nOyBlbHNlIHZhbHVlXCI+PC91aS1za2VsZXRvbj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN2YWx1ZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnJvd0NlbGxUZW1wbGF0ZTsgZWxzZSBjb25maWdEYXRhXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLnJvd0NlbGxUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogZWxlbWVudFtjb2x1bW4ua2V5XX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbmZpZ0RhdGE+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBbc3R5bGUuZm9udC13ZWlnaHRdPVwiY29sdW1uLmJvbGQgPyAnYm9sZCcgOiAnbm9ybWFsJ1wiPnt7IGVsZW1lbnRbY29sdW1uLmtleV0gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0ZpcnN0ICYmIHRhYmxlQ29uZmlnPy5zdGlja3lGaXJzdENvbHVtbiAmJiAhY29sdW1uLmFsbG93U29ydFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ua2V5XCIgW3N0aWNreV09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsXG4gICAgICAgICAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInYm9sZCdcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbHVtbnNUb29sdGlwU3RhdGVbaV0uc2hvd1Rvb2x0aXAgPyBjb2x1bW4udGl0bGUgOiAnJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uaGVhZGVyQ2VsbFRlbXBsYXRlOyBlbHNlIGNvbmZpZ1ZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uaGVhZGVyQ2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjb2x1bW4udGl0bGV9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbmZpZ1ZhbHVlPlxuICAgICAgICAgICAgICAgICA8c3BhbiB1aUVsbGlwc2VUZXh0IChvbkNoYW5nZVRleHRTdGF0ZSk9XCJvbkNoYW5nZUNvbHVtblNpemUoaSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uLXRpdGxlXCI+e3sgY29sdW1uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90aD5cblxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsXG4gICAgICAgICAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aFBlcmMgKyAnJSdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sdW1uLm1pbldpZHRoUHggKyAncHgnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHVpLXNrZWxldG9uIGNsYXNzPVwidGFibGUtc2tlbGV0b24tbG9hZGVyXCIgW2NvdW50XT1cIjFcIiBbdGhlbWVdPVwic2tlbGV0b25TdHlsZUNvbmZpZ1wiIFthcHBlYXJhbmNlXT1cIidsaW5lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxvYWRpbmc7IGVsc2UgdmFsdWVcIj48L3VpLXNrZWxldG9uPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ZhbHVlPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ucm93Q2VsbFRlbXBsYXRlOyBlbHNlIGNvbmZpZ0RhdGFcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4ucm93Q2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBlbGVtZW50W2NvbHVtbi5rZXldfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29uZmlnRGF0YT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5mb250LXdlaWdodF09XCJjb2x1bW4uYm9sZCA/ICdib2xkJyA6ICdub3JtYWwnXCI+e3sgZWxlbWVudFtjb2x1bW4ua2V5XSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGFzdCAmJiB0YWJsZUNvbmZpZz8uc3RpY2t5TGFzdENvbHVtbiAmJiBjb2x1bW4uYWxsb3dTb3J0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5rZXlcIiBzdGlja3lFbmQ+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsXG4gICAgICAgICAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgICAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgICAgICAgICBbYXR0ci5zb3J0YWJsZV09XCJjb2x1bW4uYWxsb3dTb3J0ID8/IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInYm9sZCdcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbHVtbnNUb29sdGlwU3RhdGVbaV0uc2hvd1Rvb2x0aXAgPyBjb2x1bW4udGl0bGUgOiAnJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uaGVhZGVyQ2VsbFRlbXBsYXRlOyBlbHNlIGNvbmZpZ1ZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uaGVhZGVyQ2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjb2x1bW4udGl0bGV9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbmZpZ1ZhbHVlPlxuICAgICAgICAgICAgICAgICA8c3BhbiB1aUVsbGlwc2VUZXh0IChvbkNoYW5nZVRleHRTdGF0ZSk9XCJvbkNoYW5nZUNvbHVtblNpemUoaSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uLXRpdGxlXCI+e3sgY29sdW1uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90aD5cblxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsXG4gICAgICAgICAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aFBlcmMgKyAnJSdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sdW1uLm1pbldpZHRoUHggKyAncHgnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHVpLXNrZWxldG9uIGNsYXNzPVwidGFibGUtc2tlbGV0b24tbG9hZGVyXCIgW2NvdW50XT1cIjFcIiBbdGhlbWVdPVwic2tlbGV0b25TdHlsZUNvbmZpZ1wiIFthcHBlYXJhbmNlXT1cIidsaW5lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxvYWRpbmc7IGVsc2UgdmFsdWVcIj48L3VpLXNrZWxldG9uPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ZhbHVlPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ucm93Q2VsbFRlbXBsYXRlOyBlbHNlIGNvbmZpZ0RhdGFcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4ucm93Q2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBlbGVtZW50W2NvbHVtbi5rZXldfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29uZmlnRGF0YT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5mb250LXdlaWdodF09XCJjb2x1bW4uYm9sZCA/ICdib2xkJyA6ICdub3JtYWwnXCI+e3sgZWxlbWVudFtjb2x1bW4ua2V5XSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGFzdCAmJiB0YWJsZUNvbmZpZz8uc3RpY2t5TGFzdENvbHVtbiAmJiAhY29sdW1uLmFsbG93U29ydFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ua2V5XCIgc3RpY2t5RW5kPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgICAgICAgW2F0dHIuc29ydGFibGVdPVwiY29sdW1uLmFsbG93U29ydCA/PyBmYWxzZVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aFBlcmMgKyAnJSdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sdW1uLm1pbldpZHRoUHggKyAncHgnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuZm9udC13ZWlnaHRdPVwiJ2JvbGQnXCJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJjb2x1bW5zVG9vbHRpcFN0YXRlW2ldLnNob3dUb29sdGlwID8gY29sdW1uLnRpdGxlIDogJydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmhlYWRlckNlbGxUZW1wbGF0ZTsgZWxzZSBjb25maWdWYWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmhlYWRlckNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY29sdW1uLnRpdGxlfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb25maWdWYWx1ZT5cbiAgICAgICAgICAgICAgICAgPHNwYW4gdWlFbGxpcHNlVGV4dCAob25DaGFuZ2VUZXh0U3RhdGUpPVwib25DaGFuZ2VDb2x1bW5TaXplKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbHVtbi10aXRsZVwiPnt7IGNvbHVtbi50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdGg+XG5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbFxuICAgICAgICAgICAgICAgICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhQZXJjICsgJyUnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbHVtbi5taW5XaWR0aFB4ICsgJ3B4J1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDx1aS1za2VsZXRvbiBjbGFzcz1cInRhYmxlLXNrZWxldG9uLWxvYWRlclwiIFtjb3VudF09XCIxXCIgW3RoZW1lXT1cInNrZWxldG9uU3R5bGVDb25maWdcIiBbYXBwZWFyYW5jZV09XCInbGluZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsb2FkaW5nOyBlbHNlIHZhbHVlXCI+PC91aS1za2VsZXRvbj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN2YWx1ZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnJvd0NlbGxUZW1wbGF0ZTsgZWxzZSBjb25maWdEYXRhXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLnJvd0NlbGxUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogZWxlbWVudFtjb2x1bW4ua2V5XX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbmZpZ0RhdGE+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBbc3R5bGUuZm9udC13ZWlnaHRdPVwiY29sdW1uLmJvbGQgPyAnYm9sZCcgOiAnbm9ybWFsJ1wiPnt7IGVsZW1lbnRbY29sdW1uLmtleV0gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIiEoaXNGaXJzdCAmJiB0YWJsZUNvbmZpZz8uc3RpY2t5Rmlyc3RDb2x1bW4pICYmICEoaXNMYXN0ICYmIHRhYmxlQ29uZmlnPy5zdGlja3lMYXN0Q29sdW1uKSAmJiBjb2x1bW4uYWxsb3dTb3J0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5rZXlcIj5cbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGxcbiAgICAgICAgICAgICAgICBtYXQtc29ydC1oZWFkZXJcbiAgICAgICAgICAgICAgICBbYXR0ci5zb3J0YWJsZV09XCJjb2x1bW4uYWxsb3dTb3J0ID8/IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxuICAgICAgICAgICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInYm9sZCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhQZXJjICsgJyUnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbHVtbi5taW5XaWR0aFB4ICsgJ3B4J1wiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29sdW1uc1Rvb2x0aXBTdGF0ZVtpXS5zaG93VG9vbHRpcCA/IGNvbHVtbi50aXRsZSA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnVmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvbHVtbi50aXRsZX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29uZmlnVmFsdWU+XG4gICAgICAgICAgICAgICAgIDxzcGFuIHVpRWxsaXBzZVRleHQgKG9uQ2hhbmdlVGV4dFN0YXRlKT1cIm9uQ2hhbmdlQ29sdW1uU2l6ZShpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4tdGl0bGVcIj57eyBjb2x1bW4udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGxcbiAgICAgICAgICAgICAgICAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dWktc2tlbGV0b24gY2xhc3M9XCJ0YWJsZS1za2VsZXRvbi1sb2FkZXJcIiBbY291bnRdPVwiMVwiIFt0aGVtZV09XCJza2VsZXRvblN0eWxlQ29uZmlnXCIgW2FwcGVhcmFuY2VdPVwiJ2xpbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibG9hZGluZzsgZWxzZSB2YWx1ZVwiPjwvdWktc2tlbGV0b24+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmFsdWU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnRGF0YVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGVsZW1lbnRbY29sdW1uLmtleV19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb25maWdEYXRhPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImNvbHVtbi5ib2xkID8gJ2JvbGQnIDogJ25vcm1hbCdcIj57eyBlbGVtZW50W2NvbHVtbi5rZXldIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCIhKGlzRmlyc3QgJiYgdGFibGVDb25maWc/LnN0aWNreUZpcnN0Q29sdW1uKSAmJiAhKGlzTGFzdCAmJiB0YWJsZUNvbmZpZz8uc3RpY2t5TGFzdENvbHVtbikgJiYgIWNvbHVtbi5hbGxvd1NvcnRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmtleVwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAgICAgICAgIFthdHRyLnNvcnRhYmxlXT1cImNvbHVtbi5hbGxvd1NvcnQgPz8gZmFsc2VcIlxuICAgICAgICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgICAgICAgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIidib2xkJ1wiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29sdW1uc1Rvb2x0aXBTdGF0ZVtpXS5zaG93VG9vbHRpcCA/IGNvbHVtbi50aXRsZSA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnVmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvbHVtbi50aXRsZX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29uZmlnVmFsdWU+XG4gICAgICAgICAgICAgICAgIDxzcGFuIHVpRWxsaXBzZVRleHQgKG9uQ2hhbmdlVGV4dFN0YXRlKT1cIm9uQ2hhbmdlQ29sdW1uU2l6ZShpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4tdGl0bGVcIj57eyBjb2x1bW4udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGxcbiAgICAgICAgICAgICAgICAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dWktc2tlbGV0b24gY2xhc3M9XCJ0YWJsZS1za2VsZXRvbi1sb2FkZXJcIiBbY291bnRdPVwiMVwiIFt0aGVtZV09XCJza2VsZXRvblN0eWxlQ29uZmlnXCIgW2FwcGVhcmFuY2VdPVwiJ2xpbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibG9hZGluZzsgZWxzZSB2YWx1ZVwiPjwvdWktc2tlbGV0b24+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmFsdWU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnRGF0YVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGVsZW1lbnRbY29sdW1uLmtleV19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb25maWdEYXRhPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImNvbHVtbi5ib2xkID8gJ2JvbGQnIDogJ25vcm1hbCdcIj57eyBlbGVtZW50W2NvbHVtbi5rZXldIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuXG4gIDx1aS1wYWdpbmF0b3JcbiAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgW3BhZ2VTaXplXT1cInRhYmxlQ29uZmlnLnBhZ2luYXRpb24uaXRlbXNQZXJQYWdlXCJcbiAgICBbbGVuZ3RoXT1cInRhYmxlQ29uZmlnLnBhZ2luYXRpb24udG90YWxJdGVtc1wiXG4gICAgW3BhZ2VTaXplT3B0aW9uc109XCJ0YWJsZUNvbmZpZy5wYWdpbmF0aW9uLml0ZW1zUGVyUGFnZU9wdGlvbnNcIlxuICAgIChwYWdpbmF0b3JDaGFuZ2UpPVwib25QYWdpbmF0b3JDaGFuZ2UoJGV2ZW50KVwiXG4gID48L3VpLXBhZ2luYXRvcj5cbjwvZGl2PlxuXG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVczRyxNQUFNLE9BQU8sY0FBYztJQU4zQjtRQW1DRTs7Ozs7O1dBTUc7UUFDTSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXpCOzs7OztXQUtHO1FBQ00scUJBQWdCLEdBQXFCLFNBQVMsQ0FBQztRQUU5QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDaEQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFJdEMsd0JBQW1CLEdBQW9CLEVBQUUsQ0FBQztRQUUxQyxxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFDaEMsd0JBQW1CLEdBQUc7WUFDOUIsVUFBVSxFQUFFLFNBQVM7WUFDckIsZUFBZSxFQUFFLEtBQUs7WUFDdEIsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDO1FBZU0sNEJBQXVCLEdBQWU7WUFDNUMsV0FBVyxFQUFFLENBQUM7WUFDZCxZQUFZLEVBQUUsRUFBRTtZQUNoQixtQkFBbUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLFVBQVUsRUFBRSxFQUFFO1NBQ2YsQ0FBQztLQWtCSDtJQS9GQzs7Ozs7T0FLRztJQUNILElBQStCLE1BQU0sQ0FBQyxNQUFtQjtRQUN2RCxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBRXRFLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBbUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLEtBQUs7WUFDTCxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxLQUFLO1NBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQWEsSUFBSSxDQUFDLFNBQW9CO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFpQ0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztTQUNqRDtRQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUU7WUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQVNTLGlCQUFpQixDQUFDLEtBQWdCO1FBQzFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxXQUFtQixFQUFFLFdBQW9CO1FBQ3BFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQy9ELElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7Z0JBQ2hDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO2FBQ2xDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsWUFBWSxDQUFDLFNBQWU7UUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0EvRlUsY0FBYzttR0FBZCxjQUFjLHNQQ1gzQiwrNGJBcVJBOzs0RkQxUWEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxVQUFVLG1CQUdILHVCQUF1QixDQUFDLE1BQU07OEJBU2hCLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQWlCWixJQUFJO3NCQUFoQixLQUFLO2dCQVlHLE9BQU87c0JBQWYsS0FBSztnQkFRRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbHVtbkVsbGlwc2UsIFBhZ2luYXRpb24sIFNvcnQsIFRhYmxlQ29uZmlnLCBUYWJsZUNvbmZpZ1dpdGhQYWdpbmF0aW9uLCBUYWJsZURhdGEgfSBmcm9tICcuL3RhYmxlLm1vZGVsJztcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKipcbiAgICogVGFibGUgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAdHlwZSB7VGFibGVDb25maWd9XG4gICAqIEBtZW1iZXJvZiBUYWJsZUNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgc2V0IGNvbmZpZyhjb25maWc6IFRhYmxlQ29uZmlnKSB7XG4gICAgY29uZmlnLnBhZ2luYXRpb24gPSBjb25maWcucGFnaW5hdGlvbiA/PyB0aGlzLmRlZmF1bHRQYWdpbmF0aW9uQ29uZmlnO1xuXG4gICAgdGhpcy50YWJsZUNvbmZpZyA9IGNvbmZpZyBhcyBUYWJsZUNvbmZpZ1dpdGhQYWdpbmF0aW9uO1xuICAgIHRoaXMuY29sdW1uc1Rvb2x0aXBTdGF0ZSA9IGNvbmZpZy5jb2x1bW5zLm1hcCgoY29sdW1uLCBpbmRleCkgPT4gKHtcbiAgICAgIGluZGV4LFxuICAgICAgc2hvd1Rvb2x0aXA6IGNvbHVtbi5zaG93VG9vbHRpcCA/PyBmYWxzZSxcbiAgICB9KSk7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gY29uZmlnLmNvbHVtbnMubWFwKGNvbHVtbiA9PiBjb2x1bW4ua2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnB1dCBwcm9wZXJ0eSBmb3IgcHJvdmlkaW5nIHRoZSB0YWJsZSBkYXRhLlxuICAgKlxuICAgKiBAdHlwZSB7VGFibGVEYXRhfVxuICAgKiBAbWVtYmVyb2YgVGFibGVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHNldCBkYXRhKHRhYmxlRGF0YTogVGFibGVEYXRhKSB7XG4gICAgdGhpcy50YWJsZURhdGEgPSB0YWJsZURhdGE7XG4gICAgdGhpcy5zb3VyY2VEYXRhID0gdGFibGVEYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIElucHV0IHByb3BlcnR5IGluZGljYXRpbmcgd2hldGhlciB0aGUgdGFibGUgaXMgaW4gYSBsb2FkaW5nIHN0YXRlLlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIFRhYmxlQ29tcG9uZW50XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIERlZmluZXMgdGhlIGFwcGxpY2F0aW9uIHRoZW1lXG4gICAqIEB0eXBlIHtBcHBsaWNhdGlvblRoZW1lfVxuICAgKiBAbWVtYmVyb2YgVGFibGVDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnY2xhc3NpYyc7XG5cbiAgQE91dHB1dCgpIHBhZ2luYXRvckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgc29ydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydD4oKTtcblxuICBwcm90ZWN0ZWQgdGFibGVEYXRhOiBUYWJsZURhdGE7XG4gIHByb3RlY3RlZCBzb3VyY2VEYXRhOiBUYWJsZURhdGE7XG4gIHByb3RlY3RlZCBjb2x1bW5zVG9vbHRpcFN0YXRlOiBDb2x1bW5FbGxpcHNlW10gPSBbXTtcbiAgcHJvdGVjdGVkIHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZ1dpdGhQYWdpbmF0aW9uO1xuICBwcm90ZWN0ZWQgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcbiAgcHJvdGVjdGVkIHNrZWxldG9uU3R5bGVDb25maWcgPSB7XG4gICAgYmFja2dyb3VuZDogJyNGNkY2RjYnLFxuICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsXG4gICAgaGVpZ2h0OiAnMjRweCcsXG4gIH07XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25UaGVtZSAhPT0gJ2NsYXNzaWMnKSB7XG4gICAgICB0aGlzLnNrZWxldG9uU3R5bGVDb25maWcuYmFja2dyb3VuZCA9ICcjRjRGNEY0JztcbiAgICB9XG4gICAgZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUoJ3RoZW1lJywgdGhpcy5hcHBsaWNhdGlvblRoZW1lKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRhYmxlQ29uZmlnLnNvcnQpIHtcbiAgICAgIHRoaXMub25Tb3J0Q2hhbmdlKHRoaXMudGFibGVDb25maWcuc29ydCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0UGFnaW5hdGlvbkNvbmZpZzogUGFnaW5hdGlvbiA9IHtcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICBpdGVtc1BlclBhZ2U6IDEwLFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IFsxMCwgMjUsIDUwXSxcbiAgICB0b3RhbEl0ZW1zOiAyMCxcbiAgfTtcblxuICBwcm90ZWN0ZWQgb25QYWdpbmF0b3JDaGFuZ2UoZXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMucGFnaW5hdG9yQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uQ2hhbmdlQ29sdW1uU2l6ZShjb2x1bW5JbmRleDogbnVtYmVyLCBzaG93VG9vbHRpcDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY29sdW1uc1Rvb2x0aXBTdGF0ZSA9IHRoaXMuY29sdW1uc1Rvb2x0aXBTdGF0ZS5tYXAoY29sdW1uID0+IHtcbiAgICAgIGlmIChjb2x1bW4uaW5kZXggPT09IGNvbHVtbkluZGV4KSB7XG4gICAgICAgIGNvbHVtbi5zaG93VG9vbHRpcCA9IHNob3dUb29sdGlwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbHVtbjtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblNvcnRDaGFuZ2Uoc29ydFN0YXRlOiBTb3J0KTogdm9pZCB7XG4gICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoc29ydFN0YXRlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgJ3dpdGhvdXQtdGl0bGUnOiAhdGFibGVDb25maWc/LnRpdGxlIH1cIiBbYXR0ci50aGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCI+XG4gIDxkaXYgKm5nSWY9XCJ0YWJsZUNvbmZpZz8udGl0bGVcIiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPnt7IHRhYmxlQ29uZmlnLnRpdGxlIHwgc2VudGVuY2VjYXNlIH19PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XG4gICAgPHRhYmxlXG4gICAgICBtYXQtdGFibGVcbiAgICAgIFtkYXRhU291cmNlXT1cInRhYmxlRGF0YVwiXG4gICAgICBtYXRTb3J0XG4gICAgICBbbWF0U29ydEFjdGl2ZV09XCJ0YWJsZUNvbmZpZz8uc29ydD8uYWN0aXZlID8/ICcnXCJcbiAgICAgIFttYXRTb3J0RGlyZWN0aW9uXT1cInRhYmxlQ29uZmlnPy5zb3J0Py5kaXJlY3Rpb24gPz8gJydcIlxuICAgICAgKG1hdFNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxuICAgID5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHRhYmxlQ29uZmlnPy5jb2x1bW5zOyBpbmRleCBhcyBpLCBsYXN0IGFzIGlzTGFzdCwgZmlyc3QgYXMgaXNGaXJzdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNGaXJzdCAmJiB0YWJsZUNvbmZpZz8uc3RpY2t5Rmlyc3RDb2x1bW4gJiYgY29sdW1uLmFsbG93U29ydFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ua2V5XCIgW3N0aWNreV09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsXG4gICAgICAgICAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgICAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInYm9sZCdcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29sdW1uc1Rvb2x0aXBTdGF0ZVtpXS5zaG93VG9vbHRpcCA/IGNvbHVtbi50aXRsZSA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnVmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvbHVtbi50aXRsZX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29uZmlnVmFsdWU+XG4gICAgICAgICAgICAgICAgIDxzcGFuIHVpRWxsaXBzZVRleHQgKG9uQ2hhbmdlVGV4dFN0YXRlKT1cIm9uQ2hhbmdlQ29sdW1uU2l6ZShpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4tdGl0bGVcIj57eyBjb2x1bW4udGl0bGUgfCBzZW50ZW5jZWNhc2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGxcbiAgICAgICAgICAgICAgICAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dWktc2tlbGV0b24gY2xhc3M9XCJ0YWJsZS1za2VsZXRvbi1sb2FkZXJcIiBbY291bnRdPVwiMVwiIFt0aGVtZV09XCJza2VsZXRvblN0eWxlQ29uZmlnXCIgW2FwcGVhcmFuY2VdPVwiJ2xpbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibG9hZGluZzsgZWxzZSB2YWx1ZVwiPjwvdWktc2tlbGV0b24+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmFsdWU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnRGF0YVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGVsZW1lbnRbY29sdW1uLmtleV19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb25maWdEYXRhPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImNvbHVtbi5ib2xkID8gJ2JvbGQnIDogJ25vcm1hbCdcIj57eyBlbGVtZW50W2NvbHVtbi5rZXldIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNGaXJzdCAmJiB0YWJsZUNvbmZpZz8uc3RpY2t5Rmlyc3RDb2x1bW4gJiYgIWNvbHVtbi5hbGxvd1NvcnRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmtleVwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aFBlcmMgKyAnJSdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sdW1uLm1pbldpZHRoUHggKyAncHgnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuZm9udC13ZWlnaHRdPVwiJ2JvbGQnXCJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcENsYXNzXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImNvbHVtbnNUb29sdGlwU3RhdGVbaV0uc2hvd1Rvb2x0aXAgPyBjb2x1bW4udGl0bGUgOiAnJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uaGVhZGVyQ2VsbFRlbXBsYXRlOyBlbHNlIGNvbmZpZ1ZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uaGVhZGVyQ2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjb2x1bW4udGl0bGV9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbmZpZ1ZhbHVlPlxuICAgICAgICAgICAgICAgICA8c3BhbiB1aUVsbGlwc2VUZXh0IChvbkNoYW5nZVRleHRTdGF0ZSk9XCJvbkNoYW5nZUNvbHVtblNpemUoaSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uLXRpdGxlXCI+e3sgY29sdW1uLnRpdGxlIHwgc2VudGVuY2VjYXNlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90aD5cblxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsXG4gICAgICAgICAgICAgICAgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbHVtbi53aWR0aFBlcmMgKyAnJSdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sdW1uLm1pbldpZHRoUHggKyAncHgnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHVpLXNrZWxldG9uIGNsYXNzPVwidGFibGUtc2tlbGV0b24tbG9hZGVyXCIgW2NvdW50XT1cIjFcIiBbdGhlbWVdPVwic2tlbGV0b25TdHlsZUNvbmZpZ1wiIFthcHBlYXJhbmNlXT1cIidsaW5lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxvYWRpbmc7IGVsc2UgdmFsdWVcIj48L3VpLXNrZWxldG9uPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ZhbHVlPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4ucm93Q2VsbFRlbXBsYXRlOyBlbHNlIGNvbmZpZ0RhdGFcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4ucm93Q2VsbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBlbGVtZW50W2NvbHVtbi5rZXldfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29uZmlnRGF0YT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5mb250LXdlaWdodF09XCJjb2x1bW4uYm9sZCA/ICdib2xkJyA6ICdub3JtYWwnXCI+e3sgZWxlbWVudFtjb2x1bW4ua2V5XSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGFzdCAmJiB0YWJsZUNvbmZpZz8uc3RpY2t5TGFzdENvbHVtbiAmJiBjb2x1bW4uYWxsb3dTb3J0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5rZXlcIiBzdGlja3lFbmQ+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsXG4gICAgICAgICAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgICAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgICAgICAgICBbYXR0ci5zb3J0YWJsZV09XCJjb2x1bW4uYWxsb3dTb3J0ID8/IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInYm9sZCdcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29sdW1uc1Rvb2x0aXBTdGF0ZVtpXS5zaG93VG9vbHRpcCA/IGNvbHVtbi50aXRsZSA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnVmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvbHVtbi50aXRsZX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29uZmlnVmFsdWU+XG4gICAgICAgICAgICAgICAgIDxzcGFuIHVpRWxsaXBzZVRleHQgKG9uQ2hhbmdlVGV4dFN0YXRlKT1cIm9uQ2hhbmdlQ29sdW1uU2l6ZShpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4tdGl0bGVcIj57eyBjb2x1bW4udGl0bGUgfCBzZW50ZW5jZWNhc2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGxcbiAgICAgICAgICAgICAgICAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dWktc2tlbGV0b24gY2xhc3M9XCJ0YWJsZS1za2VsZXRvbi1sb2FkZXJcIiBbY291bnRdPVwiMVwiIFt0aGVtZV09XCJza2VsZXRvblN0eWxlQ29uZmlnXCIgW2FwcGVhcmFuY2VdPVwiJ2xpbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibG9hZGluZzsgZWxzZSB2YWx1ZVwiPjwvdWktc2tlbGV0b24+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmFsdWU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnRGF0YVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGVsZW1lbnRbY29sdW1uLmtleV19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb25maWdEYXRhPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImNvbHVtbi5ib2xkID8gJ2JvbGQnIDogJ25vcm1hbCdcIj57eyBlbGVtZW50W2NvbHVtbi5rZXldIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMYXN0ICYmIHRhYmxlQ29uZmlnPy5zdGlja3lMYXN0Q29sdW1uICYmICFjb2x1bW4uYWxsb3dTb3J0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cImNvbHVtbi5rZXlcIiBzdGlja3lFbmQ+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsXG4gICAgICAgICAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgICAgICAgICBbYXR0ci5zb3J0YWJsZV09XCJjb2x1bW4uYWxsb3dTb3J0ID8/IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInYm9sZCdcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29sdW1uc1Rvb2x0aXBTdGF0ZVtpXS5zaG93VG9vbHRpcCA/IGNvbHVtbi50aXRsZSA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnVmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvbHVtbi50aXRsZX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29uZmlnVmFsdWU+XG4gICAgICAgICAgICAgICAgIDxzcGFuIHVpRWxsaXBzZVRleHQgKG9uQ2hhbmdlVGV4dFN0YXRlKT1cIm9uQ2hhbmdlQ29sdW1uU2l6ZShpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4tdGl0bGVcIj57eyBjb2x1bW4udGl0bGUgfCBzZW50ZW5jZWNhc2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGxcbiAgICAgICAgICAgICAgICAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dWktc2tlbGV0b24gY2xhc3M9XCJ0YWJsZS1za2VsZXRvbi1sb2FkZXJcIiBbY291bnRdPVwiMVwiIFt0aGVtZV09XCJza2VsZXRvblN0eWxlQ29uZmlnXCIgW2FwcGVhcmFuY2VdPVwiJ2xpbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibG9hZGluZzsgZWxzZSB2YWx1ZVwiPjwvdWktc2tlbGV0b24+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmFsdWU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnRGF0YVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGVsZW1lbnRbY29sdW1uLmtleV19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb25maWdEYXRhPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImNvbHVtbi5ib2xkID8gJ2JvbGQnIDogJ25vcm1hbCdcIj57eyBlbGVtZW50W2NvbHVtbi5rZXldIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCIhKGlzRmlyc3QgJiYgdGFibGVDb25maWc/LnN0aWNreUZpcnN0Q29sdW1uKSAmJiAhKGlzTGFzdCAmJiB0YWJsZUNvbmZpZz8uc3RpY2t5TGFzdENvbHVtbikgJiYgY29sdW1uLmFsbG93U29ydFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ua2V5XCI+XG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsXG4gICAgICAgICAgICAgICAgbWF0LXNvcnQtaGVhZGVyXG4gICAgICAgICAgICAgICAgW2F0dHIuc29ydGFibGVdPVwiY29sdW1uLmFsbG93U29ydCA/PyBmYWxzZVwiXG4gICAgICAgICAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgICAgICAgICBbc3R5bGUuZm9udC13ZWlnaHRdPVwiJ2JvbGQnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwQ2xhc3NdPVwiYXBwbGljYXRpb25UaGVtZVwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiY29sdW1uc1Rvb2x0aXBTdGF0ZVtpXS5zaG93VG9vbHRpcCA/IGNvbHVtbi50aXRsZSA6ICcnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnVmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNvbHVtbi50aXRsZX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29uZmlnVmFsdWU+XG4gICAgICAgICAgICAgICAgIDxzcGFuIHVpRWxsaXBzZVRleHQgKG9uQ2hhbmdlVGV4dFN0YXRlKT1cIm9uQ2hhbmdlQ29sdW1uU2l6ZShpLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2x1bW4tdGl0bGVcIj57eyBjb2x1bW4udGl0bGUgfCBzZW50ZW5jZWNhc2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RoPlxuXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGxcbiAgICAgICAgICAgICAgICAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sdW1uLndpZHRoUGVyYyArICclJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2x1bW4ubWluV2lkdGhQeCArICdweCdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dWktc2tlbGV0b24gY2xhc3M9XCJ0YWJsZS1za2VsZXRvbi1sb2FkZXJcIiBbY291bnRdPVwiMVwiIFt0aGVtZV09XCJza2VsZXRvblN0eWxlQ29uZmlnXCIgW2FwcGVhcmFuY2VdPVwiJ2xpbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibG9hZGluZzsgZWxzZSB2YWx1ZVwiPjwvdWktc2tlbGV0b24+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdmFsdWU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGVsc2UgY29uZmlnRGF0YVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5yb3dDZWxsVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGVsZW1lbnRbY29sdW1uLmtleV19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb25maWdEYXRhPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImNvbHVtbi5ib2xkID8gJ2JvbGQnIDogJ25vcm1hbCdcIj57eyBlbGVtZW50W2NvbHVtbi5rZXldIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCIhKGlzRmlyc3QgJiYgdGFibGVDb25maWc/LnN0aWNreUZpcnN0Q29sdW1uKSAmJiAhKGlzTGFzdCAmJiB0YWJsZUNvbmZpZz8uc3RpY2t5TGFzdENvbHVtbikgJiYgIWNvbHVtbi5hbGxvd1NvcnRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmtleVwiPlxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbFxuICAgICAgICAgICAgICAgIFthdHRyLnNvcnRhYmxlXT1cImNvbHVtbi5hbGxvd1NvcnQgPz8gZmFsc2VcIlxuICAgICAgICAgICAgICAgICptYXRIZWFkZXJDZWxsRGVmXG4gICAgICAgICAgICAgICAgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIidib2xkJ1wiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBDbGFzc109XCJhcHBsaWNhdGlvblRoZW1lXCJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJjb2x1bW5zVG9vbHRpcFN0YXRlW2ldLnNob3dUb29sdGlwID8gY29sdW1uLnRpdGxlIDogJydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmhlYWRlckNlbGxUZW1wbGF0ZTsgZWxzZSBjb25maWdWYWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmhlYWRlckNlbGxUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY29sdW1uLnRpdGxlfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb25maWdWYWx1ZT5cbiAgICAgICAgICAgICAgICAgPHNwYW4gdWlFbGxpcHNlVGV4dCAob25DaGFuZ2VUZXh0U3RhdGUpPVwib25DaGFuZ2VDb2x1bW5TaXplKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbHVtbi10aXRsZVwiPnt7IGNvbHVtbi50aXRsZSB8IHNlbnRlbmNlY2FzZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdGg+XG5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbFxuICAgICAgICAgICAgICAgICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJjb2x1bW4ud2lkdGhQZXJjICsgJyUnXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbHVtbi5taW5XaWR0aFB4ICsgJ3B4J1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDx1aS1za2VsZXRvbiBjbGFzcz1cInRhYmxlLXNrZWxldG9uLWxvYWRlclwiIFtjb3VudF09XCIxXCIgW3RoZW1lXT1cInNrZWxldG9uU3R5bGVDb25maWdcIiBbYXBwZWFyYW5jZV09XCInbGluZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJsb2FkaW5nOyBlbHNlIHZhbHVlXCI+PC91aS1za2VsZXRvbj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN2YWx1ZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnJvd0NlbGxUZW1wbGF0ZTsgZWxzZSBjb25maWdEYXRhXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLnJvd0NlbGxUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogZWxlbWVudFtjb2x1bW4ua2V5XX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbmZpZ0RhdGE+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBbc3R5bGUuZm9udC13ZWlnaHRdPVwiY29sdW1uLmJvbGQgPyAnYm9sZCcgOiAnbm9ybWFsJ1wiPnt7IGVsZW1lbnRbY29sdW1uLmtleV0gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiPjwvdHI+XG4gICAgPC90YWJsZT5cbiAgPC9kaXY+XG5cbiAgPHVpLXBhZ2luYXRvclxuICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICBbYXBwbGljYXRpb25UaGVtZV09XCJhcHBsaWNhdGlvblRoZW1lICE9PSAnY2xhc3NpYycgPyAnbGlnaHQnIDogJ2NsYXNzaWMnXCJcbiAgICBbcGFnZVNpemVdPVwidGFibGVDb25maWcucGFnaW5hdGlvbi5pdGVtc1BlclBhZ2VcIlxuICAgIFtsZW5ndGhdPVwidGFibGVDb25maWcucGFnaW5hdGlvbi50b3RhbEl0ZW1zXCJcbiAgICBbcGFnZVNpemVPcHRpb25zXT1cInRhYmxlQ29uZmlnLnBhZ2luYXRpb24uaXRlbXNQZXJQYWdlT3B0aW9uc1wiXG4gICAgKHBhZ2luYXRvckNoYW5nZSk9XCJvblBhZ2luYXRvckNoYW5nZSgkZXZlbnQpXCJcbiAgPjwvdWktcGFnaW5hdG9yPlxuPC9kaXY+XG5cbiJdfQ==
@@ -9,10 +9,11 @@ import { EllipseTextDirective } from '../../directives/ellipse-text.directive';
9
9
  import { ButtonComponentModule } from '../button/button.component.module';
10
10
  import { MatSortModule } from '@angular/material/sort';
11
11
  import { IconComponentModule } from '../icon/icon.component.module';
12
+ import { SentenceCasePipe } from './sentence-case.pipe';
12
13
  import * as i0 from "@angular/core";
13
14
  export class TableComponentModule {
14
15
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TableComponentModule, declarations: [TableComponent], imports: [CommonModule,
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TableComponentModule, declarations: [TableComponent, SentenceCasePipe], imports: [CommonModule,
16
17
  MatTableModule,
17
18
  MatTooltipModule,
18
19
  SkeletonComponent,
@@ -33,7 +34,7 @@ export class TableComponentModule {
33
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TableComponentModule, decorators: [{
34
35
  type: NgModule,
35
36
  args: [{
36
- declarations: [TableComponent],
37
+ declarations: [TableComponent, SentenceCasePipe],
37
38
  imports: [
38
39
  CommonModule,
39
40
  MatTableModule,
@@ -48,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
48
49
  exports: [TableComponent],
49
50
  }]
50
51
  }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBaUJwRSxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixpQkFkaEIsY0FBYyxhQUUzQixZQUFZO1lBQ1osY0FBYztZQUNkLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsd0JBQXdCO1lBQ3hCLHFCQUFxQjtZQUNyQixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLG9CQUFvQixhQUVaLGNBQWM7Z0hBRWIsb0JBQW9CLFlBWjdCLFlBQVk7WUFDWixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLGFBQWE7WUFDYixtQkFBbUI7OzRGQUtWLG9CQUFvQjtrQkFmaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzlCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICcuLi9za2VsZXRvbi9za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdG9yQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7IEVsbGlwc2VUZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9lbGxpcHNlLXRleHQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudC5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtUYWJsZUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBTa2VsZXRvbkNvbXBvbmVudCxcbiAgICBQYWdpbmF0b3JDb21wb25lbnRNb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50TW9kdWxlLFxuICAgIE1hdFNvcnRNb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudE1vZHVsZSxcbiAgICBFbGxpcHNlVGV4dERpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1RhYmxlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnRNb2R1bGUge31cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBaUJ4RCxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixpQkFkaEIsY0FBYyxFQUFFLGdCQUFnQixhQUU3QyxZQUFZO1lBQ1osY0FBYztZQUNkLGdCQUFnQjtZQUNoQixpQkFBaUI7WUFDakIsd0JBQXdCO1lBQ3hCLHFCQUFxQjtZQUNyQixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLG9CQUFvQixhQUVaLGNBQWM7Z0hBRWIsb0JBQW9CLFlBWjdCLFlBQVk7WUFDWixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLGFBQWE7WUFDYixtQkFBbUI7OzRGQUtWLG9CQUFvQjtrQkFmaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ2hELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICcuLi9za2VsZXRvbi9za2VsZXRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdG9yQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQubW9kdWxlJztcbmltcG9ydCB7IEVsbGlwc2VUZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9lbGxpcHNlLXRleHQuZGlyZWN0aXZlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgU2VudGVuY2VDYXNlUGlwZSB9IGZyb20gJy4vc2VudGVuY2UtY2FzZS5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVGFibGVDb21wb25lbnQsIFNlbnRlbmNlQ2FzZVBpcGVdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgU2tlbGV0b25Db21wb25lbnQsXG4gICAgUGFnaW5hdG9yQ29tcG9uZW50TW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudE1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIEljb25Db21wb25lbnRNb2R1bGUsXG4gICAgRWxsaXBzZVRleHREaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtUYWJsZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50TW9kdWxlIHt9XG4iXX0=