@porscheinformatik/material-addons 0.0.34 → 0.0.99

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 (227) hide show
  1. package/README.md +29 -29
  2. package/esm2022/lib/button/button.mjs +7 -0
  3. package/esm2022/lib/button/button.module.mjs +26 -0
  4. package/esm2022/lib/button/danger-button/danger-button.component.mjs +28 -0
  5. package/esm2022/lib/button/flat-button/link-button.component.mjs +28 -0
  6. package/esm2022/lib/button/icon-button/icon-button.component.mjs +28 -0
  7. package/esm2022/lib/button/mad-basic-button.mjs +39 -0
  8. package/esm2022/lib/button/outline-button/outline-button.component.mjs +28 -0
  9. package/esm2022/lib/button/primary-button/primary-button.component.mjs +28 -0
  10. package/esm2022/lib/card/card.component.mjs +129 -0
  11. package/esm2022/lib/card/card.mjs +2 -0
  12. package/esm2022/lib/card/card.module.mjs +23 -0
  13. package/esm2022/lib/content-panel/content-header/content-header.component.mjs +11 -0
  14. package/esm2022/lib/content-panel/content-panel-container/content-panel-container.component.mjs +11 -0
  15. package/esm2022/lib/content-panel/content-panel-container-content/content-panel-container-content.component.mjs +11 -0
  16. package/esm2022/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.mjs +11 -0
  17. package/esm2022/lib/content-panel/content-panel.module.mjs +42 -0
  18. package/esm2022/lib/content-panel/main-container/main-container.component.mjs +11 -0
  19. package/esm2022/lib/data-table/data-table-action-type.mjs +6 -0
  20. package/esm2022/lib/data-table/data-table-action.mjs +2 -0
  21. package/esm2022/lib/data-table/data-table-column-definition.mjs +2 -0
  22. package/esm2022/lib/data-table/data-table-column.mjs +2 -0
  23. package/esm2022/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.mjs +103 -0
  24. package/esm2022/lib/data-table/data-table-row.mjs +2 -0
  25. package/esm2022/lib/data-table/data-table.component.mjs +529 -0
  26. package/esm2022/lib/data-table/data-table.mjs +3 -0
  27. package/esm2022/lib/data-table/data-table.module.mjs +81 -0
  28. package/esm2022/lib/file-upload/drag-and-drop-directive.directive.mjs +61 -0
  29. package/esm2022/lib/file-upload/file-upload.component.mjs +78 -0
  30. package/esm2022/lib/flowbar/flowbar.component.mjs +190 -0
  31. package/esm2022/lib/flowbar/flowbar.module.mjs +19 -0
  32. package/esm2022/lib/material-action-button/material-action-button.component.mjs +34 -0
  33. package/esm2022/lib/material-action-button/material-action-button.module.mjs +22 -0
  34. package/esm2022/lib/material-addons.module.mjs +45 -0
  35. package/esm2022/lib/numeric-field/number-format.service.mjs +139 -0
  36. package/esm2022/lib/numeric-field/numeric-field.directive.mjs +295 -0
  37. package/esm2022/lib/numeric-field/numeric-field.mjs +2 -0
  38. package/esm2022/lib/numeric-field/numeric-field.module.mjs +24 -0
  39. package/esm2022/lib/quick-list/base-quick-list.component.mjs +124 -0
  40. package/esm2022/lib/quick-list/quick-list-compact/quick-list-compact.component.mjs +22 -0
  41. package/esm2022/lib/quick-list/quick-list.component.mjs +23 -0
  42. package/esm2022/lib/quick-list/quick-list.mjs +6 -0
  43. package/esm2022/lib/quick-list/quick-list.module.mjs +46 -0
  44. package/esm2022/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.mjs +22 -0
  45. package/esm2022/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.mjs +22 -0
  46. package/esm2022/lib/readonly/readonly-form-field/readonly-form-field.component.mjs +181 -0
  47. package/esm2022/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.mjs +206 -0
  48. package/esm2022/lib/readonly/readonly-form-field.module.mjs +25 -0
  49. package/esm2022/lib/stepper/mad-stepper-animation.mjs +13 -0
  50. package/esm2022/lib/stepper/step-header/step-header.component.mjs +77 -0
  51. package/esm2022/lib/stepper/stepper.component.mjs +159 -0
  52. package/esm2022/lib/stepper/stepper.module.mjs +23 -0
  53. package/esm2022/lib/table/column-header.mjs +2 -0
  54. package/esm2022/lib/table/table-action.mjs +2 -0
  55. package/esm2022/lib/table/table.component.mjs +130 -0
  56. package/esm2022/lib/table/table.mjs +2 -0
  57. package/esm2022/lib/table/table.module.mjs +56 -0
  58. package/esm2022/lib/throttle-click/throttle-click.directive.mjs +38 -0
  59. package/esm2022/lib/throttle-click/throttle-click.module.mjs +18 -0
  60. package/esm2022/lib/toolbar/toolbar-action.interface.mjs +2 -0
  61. package/esm2022/lib/toolbar/toolbar.component.mjs +78 -0
  62. package/esm2022/lib/toolbar/toolbar.module.mjs +56 -0
  63. package/esm2022/lib/toolbar/toolbar.service.mjs +124 -0
  64. package/esm2022/porscheinformatik-material-addons.mjs +5 -0
  65. package/esm2022/public_api.mjs +42 -0
  66. package/fesm2022/porscheinformatik-material-addons.mjs +3229 -0
  67. package/fesm2022/porscheinformatik-material-addons.mjs.map +1 -0
  68. package/index.d.ts +6 -0
  69. package/lib/button/button.d.ts +7 -0
  70. package/lib/button/button.d.ts.map +1 -0
  71. package/lib/button/button.module.d.ts +17 -0
  72. package/lib/button/button.module.d.ts.map +1 -0
  73. package/lib/button/danger-button/danger-button.component.d.ts +13 -0
  74. package/lib/button/danger-button/danger-button.component.d.ts.map +1 -0
  75. package/lib/button/flat-button/link-button.component.d.ts +13 -0
  76. package/lib/button/flat-button/link-button.component.d.ts.map +1 -0
  77. package/lib/button/icon-button/icon-button.component.d.ts +13 -0
  78. package/lib/button/icon-button/icon-button.component.d.ts.map +1 -0
  79. package/lib/button/mad-basic-button.d.ts +14 -0
  80. package/lib/button/mad-basic-button.d.ts.map +1 -0
  81. package/lib/button/outline-button/outline-button.component.d.ts +13 -0
  82. package/lib/button/outline-button/outline-button.component.d.ts.map +1 -0
  83. package/lib/button/primary-button/primary-button.component.d.ts +13 -0
  84. package/lib/button/primary-button/primary-button.component.d.ts.map +1 -0
  85. package/lib/card/card.component.d.ts +28 -0
  86. package/lib/card/card.component.d.ts.map +1 -0
  87. package/lib/card/card.d.ts +2 -0
  88. package/lib/card/card.d.ts.map +1 -0
  89. package/lib/card/card.module.d.ts +14 -0
  90. package/lib/card/card.module.d.ts.map +1 -0
  91. package/lib/content-panel/content-header/content-header.component.d.ts +6 -0
  92. package/lib/content-panel/content-header/content-header.component.d.ts.map +1 -0
  93. package/lib/content-panel/content-panel-container/content-panel-container.component.d.ts +6 -0
  94. package/lib/content-panel/content-panel-container/content-panel-container.component.d.ts.map +1 -0
  95. package/lib/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts +6 -0
  96. package/lib/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts.map +1 -0
  97. package/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts +6 -0
  98. package/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts.map +1 -0
  99. package/lib/content-panel/content-panel.module.d.ts +13 -0
  100. package/lib/content-panel/content-panel.module.d.ts.map +1 -0
  101. package/lib/content-panel/main-container/main-container.component.d.ts +6 -0
  102. package/lib/content-panel/main-container/main-container.component.d.ts.map +1 -0
  103. package/lib/data-table/data-table-action-type.d.ts +6 -0
  104. package/lib/data-table/data-table-action-type.d.ts.map +1 -0
  105. package/lib/data-table/data-table-action.d.ts +8 -0
  106. package/lib/data-table/data-table-action.d.ts.map +1 -0
  107. package/lib/data-table/data-table-column-definition.d.ts +28 -0
  108. package/lib/data-table/data-table-column-definition.d.ts.map +1 -0
  109. package/lib/data-table/data-table-column.d.ts +11 -0
  110. package/lib/data-table/data-table-column.d.ts.map +1 -0
  111. package/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.d.ts +27 -0
  112. package/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.d.ts.map +1 -0
  113. package/lib/data-table/data-table-row.d.ts +7 -0
  114. package/lib/data-table/data-table-row.d.ts.map +1 -0
  115. package/lib/data-table/data-table.component.d.ts +123 -0
  116. package/lib/data-table/data-table.component.d.ts.map +1 -0
  117. package/lib/data-table/data-table.d.ts +6 -0
  118. package/lib/data-table/data-table.d.ts.map +1 -0
  119. package/lib/data-table/data-table.module.d.ts +25 -0
  120. package/lib/data-table/data-table.module.d.ts.map +1 -0
  121. package/lib/file-upload/drag-and-drop-directive.directive.d.ts +13 -0
  122. package/lib/file-upload/drag-and-drop-directive.directive.d.ts.map +1 -0
  123. package/lib/file-upload/file-upload.component.d.ts +22 -0
  124. package/lib/file-upload/file-upload.component.d.ts.map +1 -0
  125. package/lib/flowbar/flowbar.component.d.ts +47 -0
  126. package/lib/flowbar/flowbar.component.d.ts.map +1 -0
  127. package/lib/flowbar/flowbar.module.d.ts +10 -0
  128. package/lib/flowbar/flowbar.module.d.ts.map +1 -0
  129. package/lib/material-action-button/material-action-button.component.d.ts +12 -8
  130. package/lib/material-action-button/material-action-button.component.d.ts.map +1 -0
  131. package/lib/material-action-button/material-action-button.module.d.ts +13 -2
  132. package/lib/material-action-button/material-action-button.module.d.ts.map +1 -0
  133. package/lib/material-addons.module.d.ts +15 -2
  134. package/lib/material-addons.module.d.ts.map +1 -0
  135. package/lib/numeric-field/number-format.service.d.ts +31 -0
  136. package/lib/numeric-field/number-format.service.d.ts.map +1 -0
  137. package/lib/numeric-field/numeric-field.d.ts +2 -0
  138. package/lib/numeric-field/numeric-field.d.ts.map +1 -0
  139. package/lib/numeric-field/numeric-field.directive.d.ts +45 -0
  140. package/lib/numeric-field/numeric-field.directive.d.ts.map +1 -0
  141. package/lib/numeric-field/numeric-field.module.d.ts +10 -0
  142. package/lib/numeric-field/numeric-field.module.d.ts.map +1 -0
  143. package/lib/quick-list/base-quick-list.component.d.ts +41 -0
  144. package/lib/quick-list/base-quick-list.component.d.ts.map +1 -0
  145. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts +12 -0
  146. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts.map +1 -0
  147. package/lib/quick-list/quick-list.component.d.ts +12 -0
  148. package/lib/quick-list/quick-list.component.d.ts.map +1 -0
  149. package/lib/quick-list/quick-list.d.ts +6 -0
  150. package/lib/quick-list/quick-list.d.ts.map +1 -0
  151. package/lib/quick-list/quick-list.module.d.ts +17 -0
  152. package/lib/quick-list/quick-list.module.d.ts.map +1 -0
  153. package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts +12 -0
  154. package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts.map +1 -0
  155. package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts +12 -0
  156. package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts.map +1 -0
  157. package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts +56 -14
  158. package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts.map +1 -0
  159. package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts +89 -31
  160. package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts.map +1 -0
  161. package/lib/readonly/readonly-form-field.module.d.ts +16 -2
  162. package/lib/readonly/readonly-form-field.module.d.ts.map +1 -0
  163. package/lib/stepper/mad-stepper-animation.d.ts +8 -0
  164. package/lib/stepper/mad-stepper-animation.d.ts.map +1 -0
  165. package/lib/stepper/step-header/step-header.component.d.ts +27 -0
  166. package/lib/stepper/step-header/step-header.component.d.ts.map +1 -0
  167. package/lib/stepper/stepper.component.d.ts +53 -0
  168. package/lib/stepper/stepper.component.d.ts.map +1 -0
  169. package/lib/stepper/stepper.module.d.ts +14 -0
  170. package/lib/stepper/stepper.module.d.ts.map +1 -0
  171. package/lib/table/column-header.d.ts +8 -0
  172. package/lib/table/column-header.d.ts.map +1 -0
  173. package/lib/table/table-action.d.ts +6 -0
  174. package/lib/table/table-action.d.ts.map +1 -0
  175. package/lib/table/table.component.d.ts +43 -0
  176. package/lib/table/table.component.d.ts.map +1 -0
  177. package/lib/table/table.d.ts +4 -0
  178. package/lib/table/table.d.ts.map +1 -0
  179. package/lib/table/table.module.d.ts +18 -0
  180. package/lib/table/table.module.d.ts.map +1 -0
  181. package/lib/throttle-click/throttle-click.directive.d.ts +14 -0
  182. package/lib/throttle-click/throttle-click.directive.d.ts.map +1 -0
  183. package/lib/throttle-click/throttle-click.module.d.ts +9 -0
  184. package/lib/throttle-click/throttle-click.module.d.ts.map +1 -0
  185. package/lib/toolbar/toolbar-action.interface.d.ts +28 -18
  186. package/lib/toolbar/toolbar-action.interface.d.ts.map +1 -0
  187. package/lib/toolbar/toolbar.component.d.ts +28 -19
  188. package/lib/toolbar/toolbar.component.d.ts.map +1 -0
  189. package/lib/toolbar/toolbar.module.d.ts +18 -2
  190. package/lib/toolbar/toolbar.module.d.ts.map +1 -0
  191. package/lib/toolbar/toolbar.service.d.ts +44 -33
  192. package/lib/toolbar/toolbar.service.d.ts.map +1 -0
  193. package/package.json +29 -24
  194. package/porscheinformatik-material-addons.d.ts.map +1 -0
  195. package/public_api.d.ts +39 -0
  196. package/public_api.d.ts.map +1 -0
  197. package/themes/common/styles.scss +359 -303
  198. package/themes/pbv.scss +64 -56
  199. package/themes/poa.scss +64 -40
  200. package/bundles/porscheinformatik-material-addons.umd.js +0 -755
  201. package/esm2015/lib/material-action-button/material-action-button.component.js +0 -43
  202. package/esm2015/lib/material-action-button/material-action-button.module.js +0 -19
  203. package/esm2015/lib/material-addons.module.js +0 -16
  204. package/esm2015/lib/readonly/readonly-form-field/readonly-form-field.component.js +0 -61
  205. package/esm2015/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.js +0 -124
  206. package/esm2015/lib/readonly/readonly-form-field.module.js +0 -20
  207. package/esm2015/lib/toolbar/toolbar-action.interface.js +0 -47
  208. package/esm2015/lib/toolbar/toolbar.component.js +0 -112
  209. package/esm2015/lib/toolbar/toolbar.module.js +0 -29
  210. package/esm2015/lib/toolbar/toolbar.service.js +0 -197
  211. package/esm2015/porscheinformatik-material-addons.js +0 -9
  212. package/esm2015/public-api.js +0 -18
  213. package/esm5/lib/material-action-button/material-action-button.component.js +0 -45
  214. package/esm5/lib/material-action-button/material-action-button.module.js +0 -23
  215. package/esm5/lib/material-addons.module.js +0 -20
  216. package/esm5/lib/readonly/readonly-form-field/readonly-form-field.component.js +0 -67
  217. package/esm5/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.js +0 -145
  218. package/esm5/lib/readonly/readonly-form-field.module.js +0 -24
  219. package/esm5/lib/toolbar/toolbar-action.interface.js +0 -47
  220. package/esm5/lib/toolbar/toolbar.component.js +0 -131
  221. package/esm5/lib/toolbar/toolbar.module.js +0 -33
  222. package/esm5/lib/toolbar/toolbar.service.js +0 -245
  223. package/esm5/porscheinformatik-material-addons.js +0 -9
  224. package/esm5/public-api.js +0 -18
  225. package/porscheinformatik-material-addons.d.ts +0 -4
  226. package/porscheinformatik-material-addons.metadata.json +0 -1
  227. package/public-api.d.ts +0 -10
@@ -0,0 +1,23 @@
1
+ import { StepComponent, StepperComponent } from './stepper.component';
2
+ import { StepHeaderComponent } from './step-header/step-header.component';
3
+ import { CommonModule } from '@angular/common';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { NgModule } from '@angular/core';
7
+ import { CdkStepperModule } from '@angular/cdk/stepper';
8
+ import { ButtonModule } from '../button/button.module';
9
+ import * as i0 from "@angular/core";
10
+ export class StepperModule {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: StepperModule, declarations: [StepperComponent, StepHeaderComponent, StepComponent], imports: [CommonModule, MatButtonModule, MatIconModule, CdkStepperModule, ButtonModule], exports: [StepperComponent, StepHeaderComponent, StepComponent] }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepperModule, imports: [CommonModule, MatButtonModule, MatIconModule, CdkStepperModule, ButtonModule] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: StepperModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ declarations: [StepperComponent, StepHeaderComponent, StepComponent],
19
+ imports: [CommonModule, MatButtonModule, MatIconModule, CdkStepperModule, ButtonModule],
20
+ exports: [StepperComponent, StepHeaderComponent, StepComponent],
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXBwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFPdkQsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTsrR0FBYixhQUFhLGlCQUpULGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGFBQWEsYUFDekQsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxhQUM1RSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxhQUFhOytHQUVuRCxhQUFhLFlBSGQsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWTs7MkZBRzNFLGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDO29CQUNwRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLENBQUM7b0JBQ3ZGLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQztpQkFDaEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGVwQ29tcG9uZW50LCBTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLWhlYWRlci9zdGVwLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrU3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU3RlcHBlckNvbXBvbmVudCwgU3RlcEhlYWRlckNvbXBvbmVudCwgU3RlcENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgQ2RrU3RlcHBlck1vZHVsZSwgQnV0dG9uTW9kdWxlXSxcbiAgZXhwb3J0czogW1N0ZXBwZXJDb21wb25lbnQsIFN0ZXBIZWFkZXJDb21wb25lbnQsIFN0ZXBDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL3RhYmxlL2NvbHVtbi1oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uSGVhZGVyIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgaXNTb3J0YWJsZT86IGJvb2xlYW47XG4gIGRhdGFQcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgaXNSaWdodEFsaWduZWQ/OiBib29sZWFuO1xuICBpc1N0aWNreT86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRhYmxlQWN0aW9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIG91dHB1dFJvdz86IGFueTtcbn1cbiJdfQ==
@@ -0,0 +1,130 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { MatTableDataSource } from '@angular/material/table';
3
+ import { MatPaginator } from '@angular/material/paginator';
4
+ import { MatSort } from '@angular/material/sort';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/material/icon";
8
+ import * as i3 from "@angular/material/form-field";
9
+ import * as i4 from "@angular/material/input";
10
+ import * as i5 from "@angular/material/menu";
11
+ import * as i6 from "@angular/material/paginator";
12
+ import * as i7 from "@angular/material/sort";
13
+ import * as i8 from "@angular/material/table";
14
+ import * as i9 from "../button/primary-button/primary-button.component";
15
+ import * as i10 from "../button/icon-button/icon-button.component";
16
+ export class TableComponent {
17
+ constructor() {
18
+ this.columns = [];
19
+ this.filterLabel = 'NOT SET';
20
+ this.filterPlaceholder = 'NOT SET';
21
+ this.pageSizeOptions = [5, 10, 15];
22
+ this.defaultPageSize = this.pageSizeOptions?.[0] || 10;
23
+ this.rowActions = [];
24
+ this.tableActions = [];
25
+ this.tableAction = new EventEmitter();
26
+ this.rowAction = new EventEmitter();
27
+ this.sortEvent = new EventEmitter();
28
+ this.ACTION_COLUMN_NAME = '__action__';
29
+ this.isFilterEnabled = false;
30
+ this.isPaginationEnabled = false;
31
+ }
32
+ set displayedData(data) {
33
+ if (!this.dataSource) {
34
+ this.dataSource = new MatTableDataSource(data);
35
+ }
36
+ else {
37
+ this.dataSource.data = data;
38
+ }
39
+ }
40
+ set paginationEnabled(isPaginationEnabled) {
41
+ this.isPaginationEnabled = isPaginationEnabled;
42
+ // eslint-disable-next-line
43
+ const pageSize = this.isPaginationEnabled ? this.defaultPageSize : Number.MAX_VALUE;
44
+ if (this.dataSource.paginator) {
45
+ this.dataSource.paginator.pageSize = pageSize;
46
+ }
47
+ }
48
+ set filterEnabled(isFilterEnabled) {
49
+ this.isFilterEnabled = isFilterEnabled;
50
+ this.setFilterValue(undefined);
51
+ }
52
+ ngOnInit() {
53
+ this.columnNames = this.columns.map((column) => column.label);
54
+ this.isRowClickable = this.rowActions.length > 0;
55
+ if (this.isRowClickable) {
56
+ this.columnNames.unshift(this.ACTION_COLUMN_NAME);
57
+ this.defaultAction = this.rowActions[0];
58
+ }
59
+ }
60
+ ngAfterViewInit() {
61
+ this.dataSource.paginator = this.paginator;
62
+ this.dataSource.sort = this.sort;
63
+ // set custom filter predicate to enable search for multiple search strings:
64
+ // e.g. "one two three"
65
+ this.dataSource.filterPredicate = (data, filter) => !filter || filter.split(/\s+/).every((term) => !!Object.keys(data).find((key) => data[key].includes(term)));
66
+ }
67
+ onFilter(value) {
68
+ this.setFilterValue(value);
69
+ }
70
+ onRowEvent(event, row, action = this.defaultAction) {
71
+ if (!!action && !this.isClickOnRowMenuIcon(event)) {
72
+ this.rowAction.emit({ ...action, outputRow: row });
73
+ }
74
+ }
75
+ onSortingEvent(sortingParams) {
76
+ this.sortEvent.emit(sortingParams);
77
+ }
78
+ onTableAction(tableAction) {
79
+ if (!!tableAction) {
80
+ this.tableAction.emit(tableAction);
81
+ }
82
+ }
83
+ setFilterValue(value) {
84
+ this.dataSource.filter = value?.trim().toLowerCase();
85
+ }
86
+ isClickOnRowMenuIcon(event) {
87
+ return event?.target?.classList.contains('mat-icon');
88
+ }
89
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: TableComponent, selector: "mad-table", inputs: { columns: "columns", filterLabel: "filterLabel", filterPlaceholder: "filterPlaceholder", noDataText: "noDataText", pageSizeOptions: "pageSizeOptions", defaultPageSize: "defaultPageSize", rowActions: "rowActions", tableActions: "tableActions", displayedData: "displayedData", paginationEnabled: "paginationEnabled", filterEnabled: "filterEnabled" }, outputs: { tableAction: "tableAction", rowAction: "rowAction", sortEvent: "sortEvent" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<!-- Table actions -->\n<div *ngIf=\"tableActions?.length\">\n <mad-primary-button class=\"table-action\" *ngFor=\"let tableAction of tableActions\" (click)=\"onTableAction(tableAction)\">\n {{ tableAction.label }}\n </mad-primary-button>\n</div>\n\n<!-- Row action buttons -->\n<mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent let-element=\"element\">\n <button *ngFor=\"let rowAction of rowActions\" mat-menu-item class=\"row-action\" (click)=\"onRowEvent($event, element, rowAction)\">\n {{ rowAction.label }}\n </button>\n </ng-template>\n</mat-menu>\n\n<!-- Table filter -->\n<mat-form-field *ngIf=\"isFilterEnabled\">\n <mat-label>{{ filterLabel }}</mat-label>\n <input matInput (keyup)=\"onFilter($event?.target?.value)\" placeholder=\"{{ filterPlaceholder }}\" />\n</mat-form-field>\n\n<!-- Table -->\n<div *ngIf=\"dataSource?.data?.length > 0; else noData\" class=\"mad-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSortingEvent($event)\">\n <!-- Row actions column -->\n <ng-container [matColumnDef]=\"ACTION_COLUMN_NAME\" *ngIf=\"rowActions?.length\" sticky>\n <th mat-header-cell *matHeaderCellDef class=\"row-action-button\"></th>\n <td mat-cell *matCellDef=\"let element\" class=\"row-action-button\">\n <mad-icon-button [matMenuTriggerData]=\"{ element: element }\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </mad-icon-button>\n </td>\n </ng-container>\n <!-- Columns with data -->\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.label\" [sticky]=\"column.isSticky\">\n <ng-container *ngIf=\"column.isSortable; else noSort\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header=\"{{ column.label }}\"\n [arrowPosition]=\"column.isRightAligned ? 'before' : 'after'\"\n [class.text-right]=\"column.isRightAligned\"\n >\n {{ column.label }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th mat-header-cell *matHeaderCellDef [class.text-right]=\"column.isRightAligned\">\n {{ column.label }}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" [class.text-right]=\"column.isRightAligned\">\n {{ element[column.dataPropertyName] }}\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnNames\"></tr>\n <tr\n mat-row\n [class.clickable-table-row]=\"isRowClickable\"\n (click)=\"onRowEvent($event, row)\"\n *matRowDef=\"let row; columns: columnNames\"\n ></tr>\n </table>\n</div>\n<!-- Pagination -->\n<mat-paginator\n [style.display]=\"isPaginationEnabled ? 'block' : 'none'\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n showFirstLastButtons\n>\n</mat-paginator>\n\n<!-- No data alert -->\n<ng-template #noData>\n <div class=\"noDataText\">\n {{ noDataText }}\n </div>\n</ng-template>\n", styles: [".text-right{text-align:right!important}.table-action{margin-right:.5em;margin-bottom:.5em}.row-action-button{width:10px}.noDataText{width:100%;text-align:center}.mad-table{width:100%;overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i6.MatPaginator, selector: "mat-paginator", inputs: ["disabled", "color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "directive", type: i7.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i8.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i9.PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }, { kind: "component", type: i10.IconButtonComponent, selector: "mad-icon-button", inputs: ["type", "disabled", "title"] }] }); }
91
+ }
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableComponent, decorators: [{
93
+ type: Component,
94
+ args: [{ selector: 'mad-table', template: "<!-- Table actions -->\n<div *ngIf=\"tableActions?.length\">\n <mad-primary-button class=\"table-action\" *ngFor=\"let tableAction of tableActions\" (click)=\"onTableAction(tableAction)\">\n {{ tableAction.label }}\n </mad-primary-button>\n</div>\n\n<!-- Row action buttons -->\n<mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent let-element=\"element\">\n <button *ngFor=\"let rowAction of rowActions\" mat-menu-item class=\"row-action\" (click)=\"onRowEvent($event, element, rowAction)\">\n {{ rowAction.label }}\n </button>\n </ng-template>\n</mat-menu>\n\n<!-- Table filter -->\n<mat-form-field *ngIf=\"isFilterEnabled\">\n <mat-label>{{ filterLabel }}</mat-label>\n <input matInput (keyup)=\"onFilter($event?.target?.value)\" placeholder=\"{{ filterPlaceholder }}\" />\n</mat-form-field>\n\n<!-- Table -->\n<div *ngIf=\"dataSource?.data?.length > 0; else noData\" class=\"mad-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSortingEvent($event)\">\n <!-- Row actions column -->\n <ng-container [matColumnDef]=\"ACTION_COLUMN_NAME\" *ngIf=\"rowActions?.length\" sticky>\n <th mat-header-cell *matHeaderCellDef class=\"row-action-button\"></th>\n <td mat-cell *matCellDef=\"let element\" class=\"row-action-button\">\n <mad-icon-button [matMenuTriggerData]=\"{ element: element }\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </mad-icon-button>\n </td>\n </ng-container>\n <!-- Columns with data -->\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.label\" [sticky]=\"column.isSticky\">\n <ng-container *ngIf=\"column.isSortable; else noSort\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header=\"{{ column.label }}\"\n [arrowPosition]=\"column.isRightAligned ? 'before' : 'after'\"\n [class.text-right]=\"column.isRightAligned\"\n >\n {{ column.label }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th mat-header-cell *matHeaderCellDef [class.text-right]=\"column.isRightAligned\">\n {{ column.label }}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" [class.text-right]=\"column.isRightAligned\">\n {{ element[column.dataPropertyName] }}\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnNames\"></tr>\n <tr\n mat-row\n [class.clickable-table-row]=\"isRowClickable\"\n (click)=\"onRowEvent($event, row)\"\n *matRowDef=\"let row; columns: columnNames\"\n ></tr>\n </table>\n</div>\n<!-- Pagination -->\n<mat-paginator\n [style.display]=\"isPaginationEnabled ? 'block' : 'none'\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n showFirstLastButtons\n>\n</mat-paginator>\n\n<!-- No data alert -->\n<ng-template #noData>\n <div class=\"noDataText\">\n {{ noDataText }}\n </div>\n</ng-template>\n", styles: [".text-right{text-align:right!important}.table-action{margin-right:.5em;margin-bottom:.5em}.row-action-button{width:10px}.noDataText{width:100%;text-align:center}.mad-table{width:100%;overflow-x:auto}\n"] }]
95
+ }], propDecorators: { columns: [{
96
+ type: Input
97
+ }], filterLabel: [{
98
+ type: Input
99
+ }], filterPlaceholder: [{
100
+ type: Input
101
+ }], noDataText: [{
102
+ type: Input
103
+ }], pageSizeOptions: [{
104
+ type: Input
105
+ }], defaultPageSize: [{
106
+ type: Input
107
+ }], rowActions: [{
108
+ type: Input
109
+ }], tableActions: [{
110
+ type: Input
111
+ }], tableAction: [{
112
+ type: Output
113
+ }], rowAction: [{
114
+ type: Output
115
+ }], sortEvent: [{
116
+ type: Output
117
+ }], paginator: [{
118
+ type: ViewChild,
119
+ args: [MatPaginator, { static: false }]
120
+ }], sort: [{
121
+ type: ViewChild,
122
+ args: [MatSort, { static: true }]
123
+ }], displayedData: [{
124
+ type: Input
125
+ }], paginationEnabled: [{
126
+ type: Input
127
+ }], filterEnabled: [{
128
+ type: Input
129
+ }] } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFRLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7OztBQVN2RCxNQUFNLE9BQU8sY0FBYztJQUwzQjtRQU1XLFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBQzdCLGdCQUFXLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFHLFNBQVMsQ0FBQztRQUU5QixvQkFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QixvQkFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEQsZUFBVSxHQUFrQixFQUFFLENBQUM7UUFDL0IsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBRWhDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUM1QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUt0Qyx1QkFBa0IsR0FBRyxZQUFZLENBQUM7UUFLM0Msb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO0tBc0U3QjtJQXBFQyxJQUFhLGFBQWEsQ0FBQyxJQUFXO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxrQkFBa0IsQ0FBTSxJQUFJLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELElBQWEsaUJBQWlCLENBQUMsbUJBQTRCO1FBQ3pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUMvQywyQkFBMkI7UUFDM0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3BGLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFRCxJQUNJLGFBQWEsQ0FBQyxlQUF3QjtRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqQyw0RUFBNEU7UUFDNUUsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxHQUFHLENBQUMsSUFBUyxFQUFFLE1BQWMsRUFBTyxFQUFFLENBQ25FLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBaUIsRUFBRSxHQUFRLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhO1FBQ2pFLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxhQUFtQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFdBQXdCO1FBQ3BDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQWlCO1FBQzVDLE9BQVEsS0FBSyxFQUFFLE1BQXNCLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RSxDQUFDOzhHQTVGVSxjQUFjO2tHQUFkLGNBQWMsMmhCQWNkLFlBQVksdUVBQ1osT0FBTyw4REMzQnBCLGs5RkFnRkE7OzJGRHBFYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVc7OEJBS1osT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFFcUMsU0FBUztzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNKLElBQUk7c0JBQXpDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFVdkIsYUFBYTtzQkFBekIsS0FBSztnQkFRTyxpQkFBaUI7c0JBQTdCLEtBQUs7Z0JBVUYsYUFBYTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IENvbHVtbkhlYWRlciB9IGZyb20gJy4vY29sdW1uLWhlYWRlcic7XG5pbXBvcnQgeyBUYWJsZUFjdGlvbiB9IGZyb20gJy4vdGFibGUtYWN0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBjb2x1bW5zOiBDb2x1bW5IZWFkZXJbXSA9IFtdO1xuICBASW5wdXQoKSBmaWx0ZXJMYWJlbCA9ICdOT1QgU0VUJztcbiAgQElucHV0KCkgZmlsdGVyUGxhY2Vob2xkZXIgPSAnTk9UIFNFVCc7XG4gIEBJbnB1dCgpIG5vRGF0YVRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zID0gWzUsIDEwLCAxNV07XG4gIEBJbnB1dCgpIGRlZmF1bHRQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemVPcHRpb25zPy5bMF0gfHwgMTA7XG4gIEBJbnB1dCgpIHJvd0FjdGlvbnM6IFRhYmxlQWN0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgdGFibGVBY3Rpb25zOiBUYWJsZUFjdGlvbltdID0gW107XG5cbiAgQE91dHB1dCgpIHRhYmxlQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZUFjdGlvbj4oKTtcbiAgQE91dHB1dCgpIHJvd0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVBY3Rpb24+KCk7XG4gIEBPdXRwdXQoKSBzb3J0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnQ+KCk7XG5cbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcbiAgQFZpZXdDaGlsZChNYXRTb3J0LCB7IHN0YXRpYzogdHJ1ZSB9KSBzb3J0OiBNYXRTb3J0O1xuXG4gIHJlYWRvbmx5IEFDVElPTl9DT0xVTU5fTkFNRSA9ICdfX2FjdGlvbl9fJztcbiAgZGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPGFueVtdPjtcbiAgY29sdW1uTmFtZXM6IHN0cmluZ1tdO1xuICBpc1Jvd0NsaWNrYWJsZTogYm9vbGVhbjtcbiAgZGVmYXVsdEFjdGlvbjogVGFibGVBY3Rpb247XG4gIGlzRmlsdGVyRW5hYmxlZCA9IGZhbHNlO1xuICBpc1BhZ2luYXRpb25FbmFibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IGRpc3BsYXllZERhdGEoZGF0YTogYW55W10pIHtcbiAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+KGRhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCkgc2V0IHBhZ2luYXRpb25FbmFibGVkKGlzUGFnaW5hdGlvbkVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzUGFnaW5hdGlvbkVuYWJsZWQgPSBpc1BhZ2luYXRpb25FbmFibGVkO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IHBhZ2VTaXplID0gdGhpcy5pc1BhZ2luYXRpb25FbmFibGVkID8gdGhpcy5kZWZhdWx0UGFnZVNpemUgOiBOdW1iZXIuTUFYX1ZBTFVFO1xuICAgIGlmICh0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UucGFnaW5hdG9yLnBhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGZpbHRlckVuYWJsZWQoaXNGaWx0ZXJFbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc0ZpbHRlckVuYWJsZWQgPSBpc0ZpbHRlckVuYWJsZWQ7XG4gICAgdGhpcy5zZXRGaWx0ZXJWYWx1ZSh1bmRlZmluZWQpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5OYW1lcyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmxhYmVsKTtcbiAgICB0aGlzLmlzUm93Q2xpY2thYmxlID0gdGhpcy5yb3dBY3Rpb25zLmxlbmd0aCA+IDA7XG4gICAgaWYgKHRoaXMuaXNSb3dDbGlja2FibGUpIHtcbiAgICAgIHRoaXMuY29sdW1uTmFtZXMudW5zaGlmdCh0aGlzLkFDVElPTl9DT0xVTU5fTkFNRSk7XG4gICAgICB0aGlzLmRlZmF1bHRBY3Rpb24gPSB0aGlzLnJvd0FjdGlvbnNbMF07XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgICAvLyBzZXQgY3VzdG9tIGZpbHRlciBwcmVkaWNhdGUgdG8gZW5hYmxlIHNlYXJjaCBmb3IgbXVsdGlwbGUgc2VhcmNoIHN0cmluZ3M6XG4gICAgLy8gZS5nLiBcIm9uZSB0d28gdGhyZWVcIlxuICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXJQcmVkaWNhdGUgPSAoZGF0YTogYW55LCBmaWx0ZXI6IHN0cmluZyk6IGFueSA9PlxuICAgICAgIWZpbHRlciB8fCBmaWx0ZXIuc3BsaXQoL1xccysvKS5ldmVyeSgodGVybSkgPT4gISFPYmplY3Qua2V5cyhkYXRhKS5maW5kKChrZXkpID0+IGRhdGFba2V5XS5pbmNsdWRlcyh0ZXJtKSkpO1xuICB9XG5cbiAgb25GaWx0ZXIodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2V0RmlsdGVyVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgb25Sb3dFdmVudChldmVudDogTW91c2VFdmVudCwgcm93OiBhbnksIGFjdGlvbiA9IHRoaXMuZGVmYXVsdEFjdGlvbik6IHZvaWQge1xuICAgIGlmICghIWFjdGlvbiAmJiAhdGhpcy5pc0NsaWNrT25Sb3dNZW51SWNvbihldmVudCkpIHtcbiAgICAgIHRoaXMucm93QWN0aW9uLmVtaXQoeyAuLi5hY3Rpb24sIG91dHB1dFJvdzogcm93IH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uU29ydGluZ0V2ZW50KHNvcnRpbmdQYXJhbXM6IFNvcnQpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRFdmVudC5lbWl0KHNvcnRpbmdQYXJhbXMpO1xuICB9XG5cbiAgb25UYWJsZUFjdGlvbih0YWJsZUFjdGlvbjogVGFibGVBY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoISF0YWJsZUFjdGlvbikge1xuICAgICAgdGhpcy50YWJsZUFjdGlvbi5lbWl0KHRhYmxlQWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZpbHRlclZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gdmFsdWU/LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NsaWNrT25Sb3dNZW51SWNvbihldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoZXZlbnQ/LnRhcmdldCBhcyBIVE1MRWxlbWVudCk/LmNsYXNzTGlzdC5jb250YWlucygnbWF0LWljb24nKTtcbiAgfVxufVxuIiwiPCEtLSBUYWJsZSBhY3Rpb25zIC0tPlxuPGRpdiAqbmdJZj1cInRhYmxlQWN0aW9ucz8ubGVuZ3RoXCI+XG4gIDxtYWQtcHJpbWFyeS1idXR0b24gY2xhc3M9XCJ0YWJsZS1hY3Rpb25cIiAqbmdGb3I9XCJsZXQgdGFibGVBY3Rpb24gb2YgdGFibGVBY3Rpb25zXCIgKGNsaWNrKT1cIm9uVGFibGVBY3Rpb24odGFibGVBY3Rpb24pXCI+XG4gICAge3sgdGFibGVBY3Rpb24ubGFiZWwgfX1cbiAgPC9tYWQtcHJpbWFyeS1idXR0b24+XG48L2Rpdj5cblxuPCEtLSBSb3cgYWN0aW9uIGJ1dHRvbnMgLS0+XG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudCBsZXQtZWxlbWVudD1cImVsZW1lbnRcIj5cbiAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCByb3dBY3Rpb24gb2Ygcm93QWN0aW9uc1wiIG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJyb3ctYWN0aW9uXCIgKGNsaWNrKT1cIm9uUm93RXZlbnQoJGV2ZW50LCBlbGVtZW50LCByb3dBY3Rpb24pXCI+XG4gICAgICB7eyByb3dBY3Rpb24ubGFiZWwgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbWF0LW1lbnU+XG5cbjwhLS0gVGFibGUgZmlsdGVyIC0tPlxuPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiaXNGaWx0ZXJFbmFibGVkXCI+XG4gIDxtYXQtbGFiZWw+e3sgZmlsdGVyTGFiZWwgfX08L21hdC1sYWJlbD5cbiAgPGlucHV0IG1hdElucHV0IChrZXl1cCk9XCJvbkZpbHRlcigkZXZlbnQ/LnRhcmdldD8udmFsdWUpXCIgcGxhY2Vob2xkZXI9XCJ7eyBmaWx0ZXJQbGFjZWhvbGRlciB9fVwiIC8+XG48L21hdC1mb3JtLWZpZWxkPlxuXG48IS0tIFRhYmxlIC0tPlxuPGRpdiAqbmdJZj1cImRhdGFTb3VyY2U/LmRhdGE/Lmxlbmd0aCA+IDA7IGVsc2Ugbm9EYXRhXCIgY2xhc3M9XCJtYWQtdGFibGVcIj5cbiAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCIgbWF0U29ydCAobWF0U29ydENoYW5nZSk9XCJvblNvcnRpbmdFdmVudCgkZXZlbnQpXCI+XG4gICAgPCEtLSBSb3cgYWN0aW9ucyBjb2x1bW4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cIkFDVElPTl9DT0xVTU5fTkFNRVwiICpuZ0lmPVwicm93QWN0aW9ucz8ubGVuZ3RoXCIgc3RpY2t5PlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cInJvdy1hY3Rpb24tYnV0dG9uXCI+PC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCIgY2xhc3M9XCJyb3ctYWN0aW9uLWJ1dHRvblwiPlxuICAgICAgICA8bWFkLWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckRhdGFdPVwieyBlbGVtZW50OiBlbGVtZW50IH1cIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICA8L21hZC1pY29uLWJ1dHRvbj5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBDb2x1bW5zIHdpdGggZGF0YSAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmxhYmVsXCIgW3N0aWNreV09XCJjb2x1bW4uaXNTdGlja3lcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uaXNTb3J0YWJsZTsgZWxzZSBub1NvcnRcIj5cbiAgICAgICAgPHRoXG4gICAgICAgICAgbWF0LWhlYWRlci1jZWxsXG4gICAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcbiAgICAgICAgICBtYXQtc29ydC1oZWFkZXI9XCJ7eyBjb2x1bW4ubGFiZWwgfX1cIlxuICAgICAgICAgIFthcnJvd1Bvc2l0aW9uXT1cImNvbHVtbi5pc1JpZ2h0QWxpZ25lZCA/ICdiZWZvcmUnIDogJ2FmdGVyJ1wiXG4gICAgICAgICAgW2NsYXNzLnRleHQtcmlnaHRdPVwiY29sdW1uLmlzUmlnaHRBbGlnbmVkXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNvbHVtbi5sYWJlbCB9fVxuICAgICAgICA8L3RoPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI25vU29ydD5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBbY2xhc3MudGV4dC1yaWdodF09XCJjb2x1bW4uaXNSaWdodEFsaWduZWRcIj5cbiAgICAgICAgICB7eyBjb2x1bW4ubGFiZWwgfX1cbiAgICAgICAgPC90aD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIFtjbGFzcy50ZXh0LXJpZ2h0XT1cImNvbHVtbi5pc1JpZ2h0QWxpZ25lZFwiPlxuICAgICAgICB7eyBlbGVtZW50W2NvbHVtbi5kYXRhUHJvcGVydHlOYW1lXSB9fVxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbk5hbWVzXCI+PC90cj5cbiAgICA8dHJcbiAgICAgIG1hdC1yb3dcbiAgICAgIFtjbGFzcy5jbGlja2FibGUtdGFibGUtcm93XT1cImlzUm93Q2xpY2thYmxlXCJcbiAgICAgIChjbGljayk9XCJvblJvd0V2ZW50KCRldmVudCwgcm93KVwiXG4gICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogY29sdW1uTmFtZXNcIlxuICAgID48L3RyPlxuICA8L3RhYmxlPlxuPC9kaXY+XG48IS0tIFBhZ2luYXRpb24gLS0+XG48bWF0LXBhZ2luYXRvclxuICBbc3R5bGUuZGlzcGxheV09XCJpc1BhZ2luYXRpb25FbmFibGVkID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gIFtwYWdlU2l6ZV09XCJkZWZhdWx0UGFnZVNpemVcIlxuICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiXG4gIHNob3dGaXJzdExhc3RCdXR0b25zXG4+XG48L21hdC1wYWdpbmF0b3I+XG5cbjwhLS0gTm8gZGF0YSBhbGVydCAtLT5cbjxuZy10ZW1wbGF0ZSAjbm9EYXRhPlxuICA8ZGl2IGNsYXNzPVwibm9EYXRhVGV4dFwiPlxuICAgIHt7IG5vRGF0YVRleHQgfX1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -0,0 +1,2 @@
1
+ export { TableComponent } from './table.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi90YWJsZS90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDb2x1bW5IZWFkZXIgfSBmcm9tICcuL2NvbHVtbi1oZWFkZXInO1xuZXhwb3J0IHsgVGFibGVBY3Rpb24gfSBmcm9tICcuL3RhYmxlLWFjdGlvbic7XG5leHBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,56 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatIconModule } from '@angular/material/icon';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatMenuModule } from '@angular/material/menu';
6
+ import { MatFormFieldModule } from '@angular/material/form-field';
7
+ import { MatInputModule } from '@angular/material/input';
8
+ import { MatTableModule } from '@angular/material/table';
9
+ import { MatSortModule } from '@angular/material/sort';
10
+ import { MatPaginatorModule } from '@angular/material/paginator';
11
+ import { TableComponent } from './table.component';
12
+ import { ButtonModule } from '../button/button.module';
13
+ import * as i0 from "@angular/core";
14
+ export class TableModule {
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: TableModule, declarations: [TableComponent], imports: [CommonModule,
17
+ MatButtonModule,
18
+ MatIconModule,
19
+ MatFormFieldModule,
20
+ MatInputModule,
21
+ MatMenuModule,
22
+ MatPaginatorModule,
23
+ MatSortModule,
24
+ MatTableModule,
25
+ ButtonModule], exports: [TableComponent] }); }
26
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableModule, imports: [CommonModule,
27
+ MatButtonModule,
28
+ MatIconModule,
29
+ MatFormFieldModule,
30
+ MatInputModule,
31
+ MatMenuModule,
32
+ MatPaginatorModule,
33
+ MatSortModule,
34
+ MatTableModule,
35
+ ButtonModule] }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: TableModule, decorators: [{
38
+ type: NgModule,
39
+ args: [{
40
+ declarations: [TableComponent],
41
+ imports: [
42
+ CommonModule,
43
+ MatButtonModule,
44
+ MatIconModule,
45
+ MatFormFieldModule,
46
+ MatInputModule,
47
+ MatMenuModule,
48
+ MatPaginatorModule,
49
+ MatSortModule,
50
+ MatTableModule,
51
+ ButtonModule,
52
+ ],
53
+ exports: [TableComponent],
54
+ }]
55
+ }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBa0J2RCxNQUFNLE9BQU8sV0FBVzs4R0FBWCxXQUFXOytHQUFYLFdBQVcsaUJBZlAsY0FBYyxhQUUzQixZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGNBQWM7WUFDZCxZQUFZLGFBRUosY0FBYzsrR0FFYixXQUFXLFlBYnBCLFlBQVk7WUFDWixlQUFlO1lBQ2YsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsY0FBYztZQUNkLFlBQVk7OzJGQUlILFdBQVc7a0JBaEJ2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVGFibGVDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1RhYmxlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { throttleTime } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class ThrottleClickDirective {
6
+ constructor() {
7
+ this.throttleTime = 300;
8
+ this.throttleClick = new EventEmitter();
9
+ this.clicks = new Subject();
10
+ }
11
+ clickEvent(event) {
12
+ event.preventDefault();
13
+ event.stopPropagation();
14
+ this.clicks.next(event);
15
+ }
16
+ ngOnInit() {
17
+ this.subscription = this.clicks.pipe(throttleTime(this.throttleTime)).subscribe((e) => this.throttleClick.emit(e));
18
+ }
19
+ ngOnDestroy() {
20
+ this.subscription.unsubscribe();
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ThrottleClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: ThrottleClickDirective, selector: "[madThrottleClick]", inputs: { throttleTime: "throttleTime" }, outputs: { throttleClick: "throttleClick" }, host: { listeners: { "click": "clickEvent($event)" } }, ngImport: i0 }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ThrottleClickDirective, decorators: [{
26
+ type: Directive,
27
+ args: [{
28
+ selector: '[madThrottleClick]',
29
+ }]
30
+ }], propDecorators: { throttleTime: [{
31
+ type: Input
32
+ }], throttleClick: [{
33
+ type: Output
34
+ }], clickEvent: [{
35
+ type: HostListener,
36
+ args: ['click', ['$event']]
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGUtY2xpY2suZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGhyb3R0bGUtY2xpY2svdGhyb3R0bGUtY2xpY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSzlDLE1BQU0sT0FBTyxzQkFBc0I7SUFIbkM7UUFJVyxpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUNsQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7S0FpQmhDO0lBYkMsVUFBVSxDQUFDLEtBQVU7UUFDbkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs4R0FuQlUsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7OEJBRVUsWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUtQLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttYWRUaHJvdHRsZUNsaWNrXScsXG59KVxuZXhwb3J0IGNsYXNzIFRocm90dGxlQ2xpY2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRocm90dGxlVGltZSA9IDMwMDtcbiAgQE91dHB1dCgpIHRocm90dGxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHByaXZhdGUgY2xpY2tzID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIGNsaWNrRXZlbnQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbGlja3MubmV4dChldmVudCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuY2xpY2tzLnBpcGUodGhyb3R0bGVUaW1lKHRoaXMudGhyb3R0bGVUaW1lKSkuc3Vic2NyaWJlKChlKSA9PiB0aGlzLnRocm90dGxlQ2xpY2suZW1pdChlKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ThrottleClickDirective } from './throttle-click.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class ThrottleClickModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ThrottleClickModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: ThrottleClickModule, declarations: [ThrottleClickDirective], imports: [CommonModule], exports: [ThrottleClickDirective] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ThrottleClickModule, imports: [CommonModule] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ThrottleClickModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [ThrottleClickDirective],
14
+ imports: [CommonModule],
15
+ exports: [ThrottleClickDirective],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGUtY2xpY2subW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGhyb3R0bGUtY2xpY2svdGhyb3R0bGUtY2xpY2subW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU9wRSxNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixpQkFKZixzQkFBc0IsYUFDM0IsWUFBWSxhQUNaLHNCQUFzQjsrR0FFckIsbUJBQW1CLFlBSHBCLFlBQVk7OzJGQUdYLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRocm90dGxlQ2xpY2tEaXJlY3RpdmUgfSBmcm9tICcuL3Rocm90dGxlLWNsaWNrLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1Rocm90dGxlQ2xpY2tEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW1Rocm90dGxlQ2xpY2tEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBUaHJvdHRsZUNsaWNrTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1hY3Rpb24uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdG9vbGJhci90b29sYmFyLWFjdGlvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbiB7XG4gIG1hdEljb246IHN0cmluZztcbiAgaTE4bkFjdGlvbktleTogc3RyaW5nO1xuICBhY3Rpb25OYW1lPzogc3RyaW5nO1xuICBzaG93SWY/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1haW5BY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge1xuICByb3V0ZXJMaW5rPzogc3RyaW5nO1xuICBhY3Rpb24/OiAoKSA9PiBhbnk7XG4gIGxpZnRIaWdoZXJPbk1vYmlsZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFja0FjdGlvbiBleHRlbmRzIEFjdGlvbiB7XG4gIHJvdXRlckxpbms/OiBzdHJpbmc7XG4gIGhyZWY/OiBzdHJpbmc7XG4gIGFjdGlvbj86ICgpID0+IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb29sYmFyQWN0aW9uQmFkZ2Uge1xuICB2YWx1ZTogYW55OyAvLyBoaWRkZW4gYXV0b21hdGljYWxseSBpZiBudWxsL3VuZGVmXG4gIGNvbG9yPzogVGhlbWVQYWxldHRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xiYXJBY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge1xuICBhY3Rpb246ICgpID0+IGFueTtcbiAgaW1wb3J0YW50QWN0aW9uPzogYm9vbGVhbjsgLy8gaWYgdHJ1ZSwgaXQgd2lsbCBuZXZlciBiZSBoaWRkZW4gaW4gYSBtYXQtbWVudVxuICBiYWRnZT86IFRvb2xiYXJBY3Rpb25CYWRnZTtcbn1cbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { Component } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { Breakpoints } from '@angular/cdk/layout';
4
+ import { map } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/cdk/layout";
7
+ import * as i2 from "@angular/platform-browser";
8
+ import * as i3 from "./toolbar.service";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "@angular/router";
11
+ import * as i6 from "@angular/material/menu";
12
+ import * as i7 from "@angular/material/button";
13
+ import * as i8 from "@angular/material/toolbar";
14
+ import * as i9 from "@angular/material/icon";
15
+ import * as i10 from "../material-action-button/material-action-button.component";
16
+ import * as i11 from "@angular/material/tooltip";
17
+ import * as i12 from "../button/primary-button/primary-button.component";
18
+ import * as i13 from "../button/icon-button/icon-button.component";
19
+ import * as i14 from "@angular/material/badge";
20
+ export class ToolbarComponent {
21
+ constructor(breakpointObserver, titleService, toolbarService) {
22
+ this.breakpointObserver = breakpointObserver;
23
+ this.titleService = titleService;
24
+ this.toolbarService = toolbarService;
25
+ this.isHandset$ = this.breakpointObserver.observe([Breakpoints.Handset]).pipe(map((result) => result.matches));
26
+ }
27
+ getTitle() {
28
+ const dataTitle = this.toolbarService.getDataTitle();
29
+ const toolbarTitle = this.toolbarService.toolbarTitle;
30
+ const title = !toolbarTitle || toolbarTitle.length <= 0 ? this.titleService.getTitle() : toolbarTitle;
31
+ return !dataTitle || dataTitle.length <= 0 ? title : title + ': ' + dataTitle;
32
+ }
33
+ getToolbarActions() {
34
+ return this.toolbarService.getToolbarActions();
35
+ }
36
+ getMainActions() {
37
+ return this.toolbarService.getMainActions();
38
+ }
39
+ hasPermission(action) {
40
+ if (!action || !action.showIf) {
41
+ return of(true);
42
+ }
43
+ return action.showIf;
44
+ }
45
+ isRouterLink(action) {
46
+ return action && !!action.routerLink;
47
+ }
48
+ isAbsoluteLink(action) {
49
+ return action && !!action.href;
50
+ }
51
+ isAction(action) {
52
+ return action && !!action.action;
53
+ }
54
+ getBackAction() {
55
+ return this.toolbarService.getBackAction();
56
+ }
57
+ getToolbarActionsAlwaysAsMenu() {
58
+ return this.toolbarService.getToolbarActionsAlwaysAsMenu();
59
+ }
60
+ getToolbarActionsMenuTitle() {
61
+ return this.toolbarService.getToolbarActionsMenuTitle();
62
+ }
63
+ showBadgeForMenu() {
64
+ return (this.getToolbarActions()
65
+ .slice(1) // the first icon is not shown in menu
66
+ .filter((value) => value.badge && value.badge.value).length > 0);
67
+ }
68
+ hasImportantToolbarActions() {
69
+ return this.getToolbarActions().filter((value) => !!value.importantAction).length > 0;
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1.BreakpointObserver }, { token: i2.Title }, { token: i3.ToolbarService }], target: i0.ɵɵFactoryTarget.Component }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ToolbarComponent, selector: "mad-toolbar", ngImport: i0, template: "<mat-toolbar class=\"content-toolbar\">\n <a [routerLink]=\"getBackAction().routerLink\" *ngIf=\"isRouterLink(getBackAction())\">\n <button [id]=\"'go-back'\" color=\"primary\" mat-icon-button class=\"go-back-button\">\n <mat-icon>{{ getBackAction().matIcon }}</mat-icon>\n </button>\n </a>\n <a [href]=\"getBackAction().href\" *ngIf=\"isAbsoluteLink(getBackAction())\">\n <button [id]=\"'go-back'\" class=\"go-back-button\" color=\"primary\" mat-icon-button>\n <mat-icon>{{ getBackAction().matIcon }}</mat-icon>\n </button>\n </a>\n <a (click)=\"getBackAction().action()\" *ngIf=\"isAction(getBackAction())\">\n <button [id]=\"'go-back'\" color=\"primary\" mat-icon-button class=\"go-back-button\">\n <mat-icon>{{ getBackAction().matIcon }}</mat-icon>\n </button>\n </a>\n\n <span class=\"toolbar-title\">{{ getTitle() }}</span>\n\n <ng-container *ngFor=\"let mainAction of getMainActions(); let i = index\">\n <ng-container *ngIf=\"hasPermission(mainAction) | async\">\n <div *ngIf=\"!(isHandset$ | async)\">\n <a [routerLink]=\"mainAction.routerLink\" *ngIf=\"isRouterLink(mainAction)\">\n <mad-primary-button [id]=\"mainAction.matIcon\" style=\"margin-left: 56px\">\n <mat-icon>{{ mainAction.matIcon }}</mat-icon>\n {{ mainAction.actionName }}\n </mad-primary-button>\n </a>\n <a (click)=\"mainAction.action()\" *ngIf=\"isAction(mainAction)\">\n <mad-primary-button [id]=\"mainAction.matIcon\" style=\"margin-left: 56px\">\n <mat-icon>{{ mainAction.matIcon }}</mat-icon>\n {{ mainAction.actionName }}\n </mad-primary-button>\n </a>\n </div>\n <div *ngIf=\"isHandset$ | async\">\n <mad-material-action-button\n *ngIf=\"isRouterLink(getBackAction())\"\n [actionName]=\"mainAction.actionName\"\n [icon]=\"mainAction.matIcon\"\n [liftHigher]=\"mainAction.liftHigherOnMobile\"\n [liftHigher2]=\"i > 0\"\n [routerLink]=\"mainAction.routerLink\"\n [id]=\"mainAction.matIcon\"\n />\n <mad-material-action-button\n *ngIf=\"isAction(getBackAction())\"\n [actionName]=\"mainAction.actionName\"\n [icon]=\"mainAction.matIcon\"\n [liftHigher]=\"mainAction.liftHigherOnMobile\"\n [liftHigher2]=\"i > 0\"\n (click)=\"mainAction.action()\"\n [id]=\"mainAction.matIcon\"\n />\n </div>\n </ng-container>\n </ng-container>\n\n <div class=\"right-aligned no-print\">\n <ng-container *ngFor=\"let action of getToolbarActions(); let i = index\">\n <ng-container *ngIf=\"hasPermission(action) | async\">\n <mad-icon-button\n (click)=\"action.action()\"\n *ngIf=\"\n (!(isHandset$ | async) && !getToolbarActionsAlwaysAsMenu()) ||\n i < (getToolbarActions().length > 2 ? (hasImportantToolbarActions() ? 0 : 1) : 2) ||\n !!action.importantAction\n \"\n [id]=\"action.matIcon\"\n [matTooltip]=\"action.actionName\"\n type=\"button\"\n >\n <mat-icon\n [matBadgeColor]=\"action.badge ? action.badge.color : 'primary'\"\n matBadgePosition=\"below after\"\n [matBadge]=\"action.badge ? action.badge.value : null\"\n >{{ action.matIcon }}</mat-icon\n >\n </mad-icon-button>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"(isHandset$ | async) || getToolbarActionsAlwaysAsMenu()\">\n <ng-container *ngIf=\"getToolbarActions().length > 2\">\n <mad-icon-button type=\"button\" [matMenuTriggerFor]=\"burgerMenu\" [matTooltip]=\"getToolbarActionsMenuTitle()\">\n <mat-icon\n matBadgeColor=\"warn\"\n [matBadge]=\"showBadgeForMenu() ? '&#8288;' : null\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n >more_vert\n </mat-icon>\n </mad-icon-button>\n <mat-menu #burgerMenu=\"matMenu\" class=\"no-print toolbar-menu\">\n <ng-container *ngFor=\"let action of getToolbarActions(); let i = index\">\n <ng-container *ngIf=\"!action.importantAction\">\n <ng-container *ngIf=\"hasPermission(action) | async\">\n <button\n *ngIf=\"i >= (hasImportantToolbarActions() ? 0 : 1)\"\n mat-menu-item\n (click)=\"action.action()\"\n [title]=\"action.actionName\"\n >\n <mat-icon\n color=\"primary\"\n [matBadgeColor]=\"action.badge ? action.badge.color : 'primary'\"\n [matBadge]=\"action.badge ? action.badge.value : null\"\n matBadgePosition=\"below after\"\n >{{ action.matIcon }}</mat-icon\n >\n {{ action.actionName }}\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </mat-menu>\n </ng-container>\n </ng-container>\n </div>\n</mat-toolbar>\n", styles: ["mat-toolbar{background:white}.content-toolbar{height:57px;border-bottom:1px solid #dcdcdc}.right-aligned{overflow:hidden;margin-left:auto;margin-right:0}.go-back-button{padding-left:0;padding-right:0}.toolbar-title{margin-right:72px}::ng-deep .mat-badge-content{bottom:-7px!important;right:-7px!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MaterialActionButtonComponent, selector: "mad-material-action-button", inputs: ["actionName", "id", "icon", "routerLink", "liftHigher", "liftHigher2"] }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i12.PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }, { kind: "component", type: i13.IconButtonComponent, selector: "mad-icon-button", inputs: ["type", "disabled", "title"] }, { kind: "directive", type: i14.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ToolbarComponent, decorators: [{
75
+ type: Component,
76
+ args: [{ selector: 'mad-toolbar', template: "<mat-toolbar class=\"content-toolbar\">\n <a [routerLink]=\"getBackAction().routerLink\" *ngIf=\"isRouterLink(getBackAction())\">\n <button [id]=\"'go-back'\" color=\"primary\" mat-icon-button class=\"go-back-button\">\n <mat-icon>{{ getBackAction().matIcon }}</mat-icon>\n </button>\n </a>\n <a [href]=\"getBackAction().href\" *ngIf=\"isAbsoluteLink(getBackAction())\">\n <button [id]=\"'go-back'\" class=\"go-back-button\" color=\"primary\" mat-icon-button>\n <mat-icon>{{ getBackAction().matIcon }}</mat-icon>\n </button>\n </a>\n <a (click)=\"getBackAction().action()\" *ngIf=\"isAction(getBackAction())\">\n <button [id]=\"'go-back'\" color=\"primary\" mat-icon-button class=\"go-back-button\">\n <mat-icon>{{ getBackAction().matIcon }}</mat-icon>\n </button>\n </a>\n\n <span class=\"toolbar-title\">{{ getTitle() }}</span>\n\n <ng-container *ngFor=\"let mainAction of getMainActions(); let i = index\">\n <ng-container *ngIf=\"hasPermission(mainAction) | async\">\n <div *ngIf=\"!(isHandset$ | async)\">\n <a [routerLink]=\"mainAction.routerLink\" *ngIf=\"isRouterLink(mainAction)\">\n <mad-primary-button [id]=\"mainAction.matIcon\" style=\"margin-left: 56px\">\n <mat-icon>{{ mainAction.matIcon }}</mat-icon>\n {{ mainAction.actionName }}\n </mad-primary-button>\n </a>\n <a (click)=\"mainAction.action()\" *ngIf=\"isAction(mainAction)\">\n <mad-primary-button [id]=\"mainAction.matIcon\" style=\"margin-left: 56px\">\n <mat-icon>{{ mainAction.matIcon }}</mat-icon>\n {{ mainAction.actionName }}\n </mad-primary-button>\n </a>\n </div>\n <div *ngIf=\"isHandset$ | async\">\n <mad-material-action-button\n *ngIf=\"isRouterLink(getBackAction())\"\n [actionName]=\"mainAction.actionName\"\n [icon]=\"mainAction.matIcon\"\n [liftHigher]=\"mainAction.liftHigherOnMobile\"\n [liftHigher2]=\"i > 0\"\n [routerLink]=\"mainAction.routerLink\"\n [id]=\"mainAction.matIcon\"\n />\n <mad-material-action-button\n *ngIf=\"isAction(getBackAction())\"\n [actionName]=\"mainAction.actionName\"\n [icon]=\"mainAction.matIcon\"\n [liftHigher]=\"mainAction.liftHigherOnMobile\"\n [liftHigher2]=\"i > 0\"\n (click)=\"mainAction.action()\"\n [id]=\"mainAction.matIcon\"\n />\n </div>\n </ng-container>\n </ng-container>\n\n <div class=\"right-aligned no-print\">\n <ng-container *ngFor=\"let action of getToolbarActions(); let i = index\">\n <ng-container *ngIf=\"hasPermission(action) | async\">\n <mad-icon-button\n (click)=\"action.action()\"\n *ngIf=\"\n (!(isHandset$ | async) && !getToolbarActionsAlwaysAsMenu()) ||\n i < (getToolbarActions().length > 2 ? (hasImportantToolbarActions() ? 0 : 1) : 2) ||\n !!action.importantAction\n \"\n [id]=\"action.matIcon\"\n [matTooltip]=\"action.actionName\"\n type=\"button\"\n >\n <mat-icon\n [matBadgeColor]=\"action.badge ? action.badge.color : 'primary'\"\n matBadgePosition=\"below after\"\n [matBadge]=\"action.badge ? action.badge.value : null\"\n >{{ action.matIcon }}</mat-icon\n >\n </mad-icon-button>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"(isHandset$ | async) || getToolbarActionsAlwaysAsMenu()\">\n <ng-container *ngIf=\"getToolbarActions().length > 2\">\n <mad-icon-button type=\"button\" [matMenuTriggerFor]=\"burgerMenu\" [matTooltip]=\"getToolbarActionsMenuTitle()\">\n <mat-icon\n matBadgeColor=\"warn\"\n [matBadge]=\"showBadgeForMenu() ? '&#8288;' : null\"\n matBadgeSize=\"small\"\n matBadgePosition=\"above after\"\n >more_vert\n </mat-icon>\n </mad-icon-button>\n <mat-menu #burgerMenu=\"matMenu\" class=\"no-print toolbar-menu\">\n <ng-container *ngFor=\"let action of getToolbarActions(); let i = index\">\n <ng-container *ngIf=\"!action.importantAction\">\n <ng-container *ngIf=\"hasPermission(action) | async\">\n <button\n *ngIf=\"i >= (hasImportantToolbarActions() ? 0 : 1)\"\n mat-menu-item\n (click)=\"action.action()\"\n [title]=\"action.actionName\"\n >\n <mat-icon\n color=\"primary\"\n [matBadgeColor]=\"action.badge ? action.badge.color : 'primary'\"\n [matBadge]=\"action.badge ? action.badge.value : null\"\n matBadgePosition=\"below after\"\n >{{ action.matIcon }}</mat-icon\n >\n {{ action.actionName }}\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n </mat-menu>\n </ng-container>\n </ng-container>\n </div>\n</mat-toolbar>\n", styles: ["mat-toolbar{background:white}.content-toolbar{height:57px;border-bottom:1px solid #dcdcdc}.right-aligned{overflow:hidden;margin-left:auto;margin-right:0}.go-back-button{padding-left:0;padding-right:0}.toolbar-title{margin-right:72px}::ng-deep .mat-badge-content{bottom:-7px!important;right:-7px!important}\n"] }]
77
+ }], ctorParameters: () => [{ type: i1.BreakpointObserver }, { type: i2.Title }, { type: i3.ToolbarService }] });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQXNCLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVFyQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCLFlBQ1Usa0JBQXNDLEVBQ3RDLFlBQW1CLEVBQ25CLGNBQThCO1FBRjlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUJBQVksR0FBWixZQUFZLENBQU87UUFDbkIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTHhDLGVBQVUsR0FBd0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBTTVILENBQUM7SUFFSixRQUFRO1FBQ04sTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQ3RHLE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxTQUFTLENBQUM7SUFDaEYsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBYztRQUMxQixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUM3QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQStCO1FBQzFDLE9BQU8sTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBa0I7UUFDL0IsT0FBTyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUErQjtRQUN0QyxPQUFPLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRCwwQkFBMEI7UUFDeEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sQ0FDTCxJQUFJLENBQUMsaUJBQWlCLEVBQUU7YUFDckIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNDQUFzQzthQUMvQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7OEdBakVVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLG1EQ2I3QixxbEtBd0hBOzsyRkQzR2EsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBUb29sYmFyU2VydmljZSB9IGZyb20gJy4vdG9vbGJhci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb24sIEJhY2tBY3Rpb24sIE1haW5BY3Rpb24sIFRvb2xiYXJBY3Rpb24gfSBmcm9tICcuL3Rvb2xiYXItYWN0aW9uLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b29sYmFyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudCB7XG4gIGlzSGFuZHNldCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0XSkucGlwZShtYXAoKHJlc3VsdCkgPT4gcmVzdWx0Lm1hdGNoZXMpKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBUaXRsZSxcbiAgICBwcml2YXRlIHRvb2xiYXJTZXJ2aWNlOiBUb29sYmFyU2VydmljZSxcbiAgKSB7fVxuXG4gIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0YVRpdGxlID0gdGhpcy50b29sYmFyU2VydmljZS5nZXREYXRhVGl0bGUoKTtcbiAgICBjb25zdCB0b29sYmFyVGl0bGUgPSB0aGlzLnRvb2xiYXJTZXJ2aWNlLnRvb2xiYXJUaXRsZTtcbiAgICBjb25zdCB0aXRsZSA9ICF0b29sYmFyVGl0bGUgfHwgdG9vbGJhclRpdGxlLmxlbmd0aCA8PSAwID8gdGhpcy50aXRsZVNlcnZpY2UuZ2V0VGl0bGUoKSA6IHRvb2xiYXJUaXRsZTtcbiAgICByZXR1cm4gIWRhdGFUaXRsZSB8fCBkYXRhVGl0bGUubGVuZ3RoIDw9IDAgPyB0aXRsZSA6IHRpdGxlICsgJzogJyArIGRhdGFUaXRsZTtcbiAgfVxuXG4gIGdldFRvb2xiYXJBY3Rpb25zKCk6IFRvb2xiYXJBY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMudG9vbGJhclNlcnZpY2UuZ2V0VG9vbGJhckFjdGlvbnMoKTtcbiAgfVxuXG4gIGdldE1haW5BY3Rpb25zKCk6IE1haW5BY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMudG9vbGJhclNlcnZpY2UuZ2V0TWFpbkFjdGlvbnMoKTtcbiAgfVxuXG4gIGhhc1Blcm1pc3Npb24oYWN0aW9uOiBBY3Rpb24pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAoIWFjdGlvbiB8fCAhYWN0aW9uLnNob3dJZikge1xuICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cbiAgICByZXR1cm4gYWN0aW9uLnNob3dJZjtcbiAgfVxuXG4gIGlzUm91dGVyTGluayhhY3Rpb246IEJhY2tBY3Rpb24gfCBNYWluQWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGFjdGlvbiAmJiAhIWFjdGlvbi5yb3V0ZXJMaW5rO1xuICB9XG5cbiAgaXNBYnNvbHV0ZUxpbmsoYWN0aW9uOiBCYWNrQWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGFjdGlvbiAmJiAhIWFjdGlvbi5ocmVmO1xuICB9XG5cbiAgaXNBY3Rpb24oYWN0aW9uOiBCYWNrQWN0aW9uIHwgTWFpbkFjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhY3Rpb24gJiYgISFhY3Rpb24uYWN0aW9uO1xuICB9XG5cbiAgZ2V0QmFja0FjdGlvbigpOiBCYWNrQWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy50b29sYmFyU2VydmljZS5nZXRCYWNrQWN0aW9uKCk7XG4gIH1cblxuICBnZXRUb29sYmFyQWN0aW9uc0Fsd2F5c0FzTWVudSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b29sYmFyU2VydmljZS5nZXRUb29sYmFyQWN0aW9uc0Fsd2F5c0FzTWVudSgpO1xuICB9XG5cbiAgZ2V0VG9vbGJhckFjdGlvbnNNZW51VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b29sYmFyU2VydmljZS5nZXRUb29sYmFyQWN0aW9uc01lbnVUaXRsZSgpO1xuICB9XG5cbiAgc2hvd0JhZGdlRm9yTWVudSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5nZXRUb29sYmFyQWN0aW9ucygpXG4gICAgICAgIC5zbGljZSgxKSAvLyB0aGUgZmlyc3QgaWNvbiBpcyBub3Qgc2hvd24gaW4gbWVudVxuICAgICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUuYmFkZ2UgJiYgdmFsdWUuYmFkZ2UudmFsdWUpLmxlbmd0aCA+IDBcbiAgICApO1xuICB9XG5cbiAgaGFzSW1wb3J0YW50VG9vbGJhckFjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VG9vbGJhckFjdGlvbnMoKS5maWx0ZXIoKHZhbHVlKSA9PiAhIXZhbHVlLmltcG9ydGFudEFjdGlvbikubGVuZ3RoID4gMDtcbiAgfVxufVxuIiwiPG1hdC10b29sYmFyIGNsYXNzPVwiY29udGVudC10b29sYmFyXCI+XG4gIDxhIFtyb3V0ZXJMaW5rXT1cImdldEJhY2tBY3Rpb24oKS5yb3V0ZXJMaW5rXCIgKm5nSWY9XCJpc1JvdXRlckxpbmsoZ2V0QmFja0FjdGlvbigpKVwiPlxuICAgIDxidXR0b24gW2lkXT1cIidnby1iYWNrJ1wiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cImdvLWJhY2stYnV0dG9uXCI+XG4gICAgICA8bWF0LWljb24+e3sgZ2V0QmFja0FjdGlvbigpLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2E+XG4gIDxhIFtocmVmXT1cImdldEJhY2tBY3Rpb24oKS5ocmVmXCIgKm5nSWY9XCJpc0Fic29sdXRlTGluayhnZXRCYWNrQWN0aW9uKCkpXCI+XG4gICAgPGJ1dHRvbiBbaWRdPVwiJ2dvLWJhY2snXCIgY2xhc3M9XCJnby1iYWNrLWJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1pY29uLWJ1dHRvbj5cbiAgICAgIDxtYXQtaWNvbj57eyBnZXRCYWNrQWN0aW9uKCkubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvYT5cbiAgPGEgKGNsaWNrKT1cImdldEJhY2tBY3Rpb24oKS5hY3Rpb24oKVwiICpuZ0lmPVwiaXNBY3Rpb24oZ2V0QmFja0FjdGlvbigpKVwiPlxuICAgIDxidXR0b24gW2lkXT1cIidnby1iYWNrJ1wiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cImdvLWJhY2stYnV0dG9uXCI+XG4gICAgICA8bWF0LWljb24+e3sgZ2V0QmFja0FjdGlvbigpLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2E+XG5cbiAgPHNwYW4gY2xhc3M9XCJ0b29sYmFyLXRpdGxlXCI+e3sgZ2V0VGl0bGUoKSB9fTwvc3Bhbj5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtYWluQWN0aW9uIG9mIGdldE1haW5BY3Rpb25zKCk7IGxldCBpID0gaW5kZXhcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzUGVybWlzc2lvbihtYWluQWN0aW9uKSB8IGFzeW5jXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIShpc0hhbmRzZXQkIHwgYXN5bmMpXCI+XG4gICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIm1haW5BY3Rpb24ucm91dGVyTGlua1wiICpuZ0lmPVwiaXNSb3V0ZXJMaW5rKG1haW5BY3Rpb24pXCI+XG4gICAgICAgICAgPG1hZC1wcmltYXJ5LWJ1dHRvbiBbaWRdPVwibWFpbkFjdGlvbi5tYXRJY29uXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogNTZweFwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPnt7IG1haW5BY3Rpb24ubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICB7eyBtYWluQWN0aW9uLmFjdGlvbk5hbWUgfX1cbiAgICAgICAgICA8L21hZC1wcmltYXJ5LWJ1dHRvbj5cbiAgICAgICAgPC9hPlxuICAgICAgICA8YSAoY2xpY2spPVwibWFpbkFjdGlvbi5hY3Rpb24oKVwiICpuZ0lmPVwiaXNBY3Rpb24obWFpbkFjdGlvbilcIj5cbiAgICAgICAgICA8bWFkLXByaW1hcnktYnV0dG9uIFtpZF09XCJtYWluQWN0aW9uLm1hdEljb25cIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiA1NnB4XCI+XG4gICAgICAgICAgICA8bWF0LWljb24+e3sgbWFpbkFjdGlvbi5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIHt7IG1haW5BY3Rpb24uYWN0aW9uTmFtZSB9fVxuICAgICAgICAgIDwvbWFkLXByaW1hcnktYnV0dG9uPlxuICAgICAgICA8L2E+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJpc0hhbmRzZXQkIHwgYXN5bmNcIj5cbiAgICAgICAgPG1hZC1tYXRlcmlhbC1hY3Rpb24tYnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJpc1JvdXRlckxpbmsoZ2V0QmFja0FjdGlvbigpKVwiXG4gICAgICAgICAgW2FjdGlvbk5hbWVdPVwibWFpbkFjdGlvbi5hY3Rpb25OYW1lXCJcbiAgICAgICAgICBbaWNvbl09XCJtYWluQWN0aW9uLm1hdEljb25cIlxuICAgICAgICAgIFtsaWZ0SGlnaGVyXT1cIm1haW5BY3Rpb24ubGlmdEhpZ2hlck9uTW9iaWxlXCJcbiAgICAgICAgICBbbGlmdEhpZ2hlcjJdPVwiaSA+IDBcIlxuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIm1haW5BY3Rpb24ucm91dGVyTGlua1wiXG4gICAgICAgICAgW2lkXT1cIm1haW5BY3Rpb24ubWF0SWNvblwiXG4gICAgICAgIC8+XG4gICAgICAgIDxtYWQtbWF0ZXJpYWwtYWN0aW9uLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwiaXNBY3Rpb24oZ2V0QmFja0FjdGlvbigpKVwiXG4gICAgICAgICAgW2FjdGlvbk5hbWVdPVwibWFpbkFjdGlvbi5hY3Rpb25OYW1lXCJcbiAgICAgICAgICBbaWNvbl09XCJtYWluQWN0aW9uLm1hdEljb25cIlxuICAgICAgICAgIFtsaWZ0SGlnaGVyXT1cIm1haW5BY3Rpb24ubGlmdEhpZ2hlck9uTW9iaWxlXCJcbiAgICAgICAgICBbbGlmdEhpZ2hlcjJdPVwiaSA+IDBcIlxuICAgICAgICAgIChjbGljayk9XCJtYWluQWN0aW9uLmFjdGlvbigpXCJcbiAgICAgICAgICBbaWRdPVwibWFpbkFjdGlvbi5tYXRJY29uXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8ZGl2IGNsYXNzPVwicmlnaHQtYWxpZ25lZCBuby1wcmludFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBnZXRUb29sYmFyQWN0aW9ucygpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzUGVybWlzc2lvbihhY3Rpb24pIHwgYXN5bmNcIj5cbiAgICAgICAgPG1hZC1pY29uLWJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKClcIlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAoIShpc0hhbmRzZXQkIHwgYXN5bmMpICYmICFnZXRUb29sYmFyQWN0aW9uc0Fsd2F5c0FzTWVudSgpKSB8fFxuICAgICAgICAgICAgaSA8IChnZXRUb29sYmFyQWN0aW9ucygpLmxlbmd0aCA+IDIgPyAoaGFzSW1wb3J0YW50VG9vbGJhckFjdGlvbnMoKSA/IDAgOiAxKSA6IDIpIHx8XG4gICAgICAgICAgICAhIWFjdGlvbi5pbXBvcnRhbnRBY3Rpb25cbiAgICAgICAgICBcIlxuICAgICAgICAgIFtpZF09XCJhY3Rpb24ubWF0SWNvblwiXG4gICAgICAgICAgW21hdFRvb2x0aXBdPVwiYWN0aW9uLmFjdGlvbk5hbWVcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBbbWF0QmFkZ2VDb2xvcl09XCJhY3Rpb24uYmFkZ2UgPyBhY3Rpb24uYmFkZ2UuY29sb3IgOiAncHJpbWFyeSdcIlxuICAgICAgICAgICAgbWF0QmFkZ2VQb3NpdGlvbj1cImJlbG93IGFmdGVyXCJcbiAgICAgICAgICAgIFttYXRCYWRnZV09XCJhY3Rpb24uYmFkZ2UgPyBhY3Rpb24uYmFkZ2UudmFsdWUgOiBudWxsXCJcbiAgICAgICAgICAgID57eyBhY3Rpb24ubWF0SWNvbiB9fTwvbWF0LWljb25cbiAgICAgICAgICA+XG4gICAgICAgIDwvbWFkLWljb24tYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGlzSGFuZHNldCQgfCBhc3luYykgfHwgZ2V0VG9vbGJhckFjdGlvbnNBbHdheXNBc01lbnUoKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFRvb2xiYXJBY3Rpb25zKCkubGVuZ3RoID4gMlwiPlxuICAgICAgICA8bWFkLWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYnVyZ2VyTWVudVwiIFttYXRUb29sdGlwXT1cImdldFRvb2xiYXJBY3Rpb25zTWVudVRpdGxlKClcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIG1hdEJhZGdlQ29sb3I9XCJ3YXJuXCJcbiAgICAgICAgICAgIFttYXRCYWRnZV09XCJzaG93QmFkZ2VGb3JNZW51KCkgPyAnJiM4Mjg4OycgOiBudWxsXCJcbiAgICAgICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgIG1hdEJhZGdlUG9zaXRpb249XCJhYm92ZSBhZnRlclwiXG4gICAgICAgICAgICA+bW9yZV92ZXJ0XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYWQtaWNvbi1idXR0b24+XG4gICAgICAgIDxtYXQtbWVudSAjYnVyZ2VyTWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cIm5vLXByaW50IHRvb2xiYXItbWVudVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBnZXRUb29sYmFyQWN0aW9ucygpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWFjdGlvbi5pbXBvcnRhbnRBY3Rpb25cIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1Blcm1pc3Npb24oYWN0aW9uKSB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpID49IChoYXNJbXBvcnRhbnRUb29sYmFyQWN0aW9ucygpID8gMCA6IDEpXCJcbiAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb24uYWN0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImFjdGlvbi5hY3Rpb25OYW1lXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlQ29sb3JdPVwiYWN0aW9uLmJhZGdlID8gYWN0aW9uLmJhZGdlLmNvbG9yIDogJ3ByaW1hcnknXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlXT1cImFjdGlvbi5iYWRnZSA/IGFjdGlvbi5iYWRnZS52YWx1ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBtYXRCYWRnZVBvc2l0aW9uPVwiYmVsb3cgYWZ0ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+e3sgYWN0aW9uLm1hdEljb24gfX08L21hdC1pY29uXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBhY3Rpb24uYWN0aW9uTmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9tYXQtdG9vbGJhcj5cbiJdfQ==
@@ -0,0 +1,56 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RouterModule } from '@angular/router';
4
+ import { ToolbarComponent } from './toolbar.component';
5
+ import { MaterialActionButtonModule } from '../material-action-button/material-action-button.module';
6
+ import { MatMenuModule } from '@angular/material/menu';
7
+ import { MatToolbarModule } from '@angular/material/toolbar';
8
+ import { MatIconModule } from '@angular/material/icon';
9
+ import { MatButtonModule } from '@angular/material/button';
10
+ import { MatTooltipModule } from '@angular/material/tooltip';
11
+ import { ButtonModule } from '../button/button.module';
12
+ import { MatBadgeModule } from '@angular/material/badge';
13
+ import * as i0 from "@angular/core";
14
+ export class ToolbarModule {
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: ToolbarModule, declarations: [ToolbarComponent], imports: [CommonModule,
17
+ RouterModule,
18
+ MatMenuModule,
19
+ MatButtonModule,
20
+ MatToolbarModule,
21
+ MatIconModule,
22
+ MaterialActionButtonModule,
23
+ MatTooltipModule,
24
+ ButtonModule,
25
+ MatBadgeModule], exports: [ToolbarComponent] }); }
26
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ToolbarModule, imports: [CommonModule,
27
+ RouterModule,
28
+ MatMenuModule,
29
+ MatButtonModule,
30
+ MatToolbarModule,
31
+ MatIconModule,
32
+ MaterialActionButtonModule,
33
+ MatTooltipModule,
34
+ ButtonModule,
35
+ MatBadgeModule] }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ToolbarModule, decorators: [{
38
+ type: NgModule,
39
+ args: [{
40
+ declarations: [ToolbarComponent],
41
+ imports: [
42
+ CommonModule,
43
+ RouterModule,
44
+ MatMenuModule,
45
+ MatButtonModule,
46
+ MatToolbarModule,
47
+ MatIconModule,
48
+ MaterialActionButtonModule,
49
+ MatTooltipModule,
50
+ ButtonModule,
51
+ MatBadgeModule,
52
+ ],
53
+ exports: [ToolbarComponent],
54
+ }]
55
+ }] });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi90b29sYmFyL3Rvb2xiYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQWtCekQsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTsrR0FBYixhQUFhLGlCQWZULGdCQUFnQixhQUU3QixZQUFZO1lBQ1osWUFBWTtZQUNaLGFBQWE7WUFDYixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYiwwQkFBMEI7WUFDMUIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixjQUFjLGFBRU4sZ0JBQWdCOytHQUVmLGFBQWEsWUFidEIsWUFBWTtZQUNaLFlBQVk7WUFDWixhQUFhO1lBQ2IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsMEJBQTBCO1lBQzFCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osY0FBYzs7MkZBSUwsYUFBYTtrQkFoQnpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYiwwQkFBMEI7d0JBQzFCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsQWN0aW9uQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi9tYXRlcmlhbC1hY3Rpb24tYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRUb29sYmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1Rvb2xiYXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sYmFyTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0ZXJpYWxBY3Rpb25CdXR0b25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgTWF0QmFkZ2VNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtUb29sYmFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbGJhck1vZHVsZSB7fVxuIl19