@porscheinformatik/material-addons 17.0.3 → 17.1.0

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 (158) hide show
  1. package/esm2022/lib/button/button.mjs +3 -1
  2. package/esm2022/lib/button/button.module.mjs +34 -4
  3. package/esm2022/lib/button/flat-button/link-button.component.mjs +2 -2
  4. package/esm2022/lib/button/icon-button/icon-button.component.mjs +2 -2
  5. package/esm2022/lib/button/mad-basic-button.mjs +2 -2
  6. package/esm2022/lib/button/mad-button/mad-button.directive.mjs +60 -0
  7. package/esm2022/lib/button/mad-button-group/mad-button-group.component.mjs +20 -0
  8. package/esm2022/lib/button/outline-button/outline-button.component.mjs +6 -3
  9. package/esm2022/lib/button/primary-button/primary-button.component.mjs +3 -3
  10. package/esm2022/lib/card/card.component.mjs +3 -3
  11. package/esm2022/lib/card/card.mjs +1 -1
  12. package/esm2022/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.mjs +5 -5
  13. package/esm2022/lib/data-table/data-table.component.mjs +3 -3
  14. package/esm2022/lib/data-table/data-table.mjs +1 -1
  15. package/esm2022/lib/file-upload/drag-and-drop-directive.directive.mjs +2 -2
  16. package/esm2022/lib/file-upload/file-upload.component.mjs +13 -13
  17. package/esm2022/lib/layout/content-panel/content-header/content-header.component.mjs +11 -0
  18. package/esm2022/lib/layout/content-panel/content-panel-container/content-panel-container.component.mjs +11 -0
  19. package/esm2022/lib/layout/content-panel/content-panel-container-content/content-panel-container-content.component.mjs +11 -0
  20. package/esm2022/lib/layout/content-panel/content-panel-container-footer/content-panel-container-footer.component.mjs +11 -0
  21. package/esm2022/lib/layout/content-panel/content-panel-container-sidebar/content-panel-container-sidebar.component.mjs +11 -0
  22. package/esm2022/lib/layout/content-panel/content-panel.module.mjs +47 -0
  23. package/esm2022/lib/layout/content-panel/main-container/main-container.component.mjs +11 -0
  24. package/esm2022/lib/layout/flowbar/flowbar.component.mjs +190 -0
  25. package/esm2022/lib/{flowbar → layout/flowbar}/flowbar.module.mjs +1 -1
  26. package/esm2022/lib/layout/sidebar/sidebar-item/sidebar-item.component.mjs +11 -0
  27. package/esm2022/lib/layout/sidebar/sidebar.component.mjs +19 -0
  28. package/esm2022/lib/layout/sidebar/sidebar.module.mjs +21 -0
  29. package/esm2022/lib/layout/toolbar/toolbar-action.interface.mjs +2 -0
  30. package/esm2022/lib/layout/toolbar/toolbar.component.mjs +78 -0
  31. package/esm2022/lib/layout/toolbar/toolbar.module.mjs +56 -0
  32. package/esm2022/lib/layout/toolbar/toolbar.service.mjs +124 -0
  33. package/esm2022/lib/material-addons.module.mjs +8 -4
  34. package/esm2022/lib/numeric-field/numeric-field.directive.mjs +4 -4
  35. package/esm2022/lib/numeric-field/numeric-field.mjs +1 -1
  36. package/esm2022/lib/quick-list/base-quick-list.component.mjs +2 -4
  37. package/esm2022/lib/quick-list/quick-list-compact/quick-list-compact.component.mjs +3 -3
  38. package/esm2022/lib/quick-list/quick-list.component.mjs +3 -3
  39. package/esm2022/lib/quick-list/quick-list.mjs +1 -1
  40. package/esm2022/lib/quick-list/quick-list.module.mjs +25 -5
  41. package/esm2022/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.mjs +4 -4
  42. package/esm2022/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.mjs +4 -4
  43. package/esm2022/lib/readonly/readonly-form-field/readonly-form-field.component.mjs +3 -3
  44. package/esm2022/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.mjs +3 -3
  45. package/esm2022/lib/readonly/readonly-form-field.module.mjs +2 -2
  46. package/esm2022/lib/stepper/step-header/step-header.component.mjs +3 -3
  47. package/esm2022/lib/stepper/stepper.component.mjs +7 -7
  48. package/esm2022/lib/stepper/stepper.module.mjs +2 -2
  49. package/esm2022/lib/table/table.component.mjs +3 -3
  50. package/esm2022/lib/table/table.mjs +1 -1
  51. package/esm2022/lib/throttle-click/throttle-click.directive.mjs +2 -2
  52. package/esm2022/public_api.mjs +17 -13
  53. package/fesm2022/porscheinformatik-material-addons.mjs +505 -327
  54. package/fesm2022/porscheinformatik-material-addons.mjs.map +1 -1
  55. package/lib/button/button.d.ts +2 -0
  56. package/lib/button/button.d.ts.map +1 -1
  57. package/lib/button/button.module.d.ts +8 -6
  58. package/lib/button/button.module.d.ts.map +1 -1
  59. package/lib/button/flat-button/link-button.component.d.ts.map +1 -1
  60. package/lib/button/icon-button/icon-button.component.d.ts.map +1 -1
  61. package/lib/button/mad-basic-button.d.ts.map +1 -1
  62. package/lib/button/mad-button/mad-button.directive.d.ts +23 -0
  63. package/lib/button/mad-button/mad-button.directive.d.ts.map +1 -0
  64. package/lib/button/mad-button-group/mad-button-group.component.d.ts +7 -0
  65. package/lib/button/mad-button-group/mad-button-group.component.d.ts.map +1 -0
  66. package/lib/button/outline-button/outline-button.component.d.ts +3 -1
  67. package/lib/button/outline-button/outline-button.component.d.ts.map +1 -1
  68. package/lib/button/primary-button/primary-button.component.d.ts.map +1 -1
  69. package/lib/card/card.d.ts.map +1 -1
  70. package/lib/data-table/data-table.d.ts.map +1 -1
  71. package/lib/file-upload/drag-and-drop-directive.directive.d.ts.map +1 -1
  72. package/lib/file-upload/file-upload.component.d.ts +1 -1
  73. package/lib/file-upload/file-upload.component.d.ts.map +1 -1
  74. package/lib/layout/content-panel/content-header/content-header.component.d.ts.map +1 -0
  75. package/lib/{content-panel → layout/content-panel}/content-panel-container/content-panel-container.component.d.ts +1 -1
  76. package/lib/layout/content-panel/content-panel-container/content-panel-container.component.d.ts.map +1 -0
  77. package/lib/layout/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts.map +1 -0
  78. package/lib/layout/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts.map +1 -0
  79. package/lib/layout/content-panel/content-panel-container-sidebar/content-panel-container-sidebar.component.d.ts +6 -0
  80. package/lib/layout/content-panel/content-panel-container-sidebar/content-panel-container-sidebar.component.d.ts.map +1 -0
  81. package/lib/{content-panel → layout/content-panel}/content-panel.module.d.ts +4 -3
  82. package/lib/layout/content-panel/content-panel.module.d.ts.map +1 -0
  83. package/lib/layout/content-panel/main-container/main-container.component.d.ts.map +1 -0
  84. package/lib/layout/flowbar/flowbar.component.d.ts.map +1 -0
  85. package/lib/layout/flowbar/flowbar.module.d.ts.map +1 -0
  86. package/lib/layout/sidebar/sidebar-item/sidebar-item.component.d.ts +6 -0
  87. package/lib/layout/sidebar/sidebar-item/sidebar-item.component.d.ts.map +1 -0
  88. package/lib/layout/sidebar/sidebar.component.d.ts +8 -0
  89. package/lib/layout/sidebar/sidebar.component.d.ts.map +1 -0
  90. package/lib/layout/sidebar/sidebar.module.d.ts +12 -0
  91. package/lib/layout/sidebar/sidebar.module.d.ts.map +1 -0
  92. package/lib/layout/toolbar/toolbar-action.interface.d.ts.map +1 -0
  93. package/lib/layout/toolbar/toolbar.component.d.ts.map +1 -0
  94. package/lib/{toolbar → layout/toolbar}/toolbar.module.d.ts +2 -2
  95. package/lib/layout/toolbar/toolbar.module.d.ts.map +1 -0
  96. package/lib/layout/toolbar/toolbar.service.d.ts.map +1 -0
  97. package/lib/material-addons.module.d.ts +3 -2
  98. package/lib/material-addons.module.d.ts.map +1 -1
  99. package/lib/numeric-field/numeric-field.d.ts.map +1 -1
  100. package/lib/numeric-field/numeric-field.directive.d.ts.map +1 -1
  101. package/lib/quick-list/base-quick-list.component.d.ts +1 -1
  102. package/lib/quick-list/base-quick-list.component.d.ts.map +1 -1
  103. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts +1 -1
  104. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts.map +1 -1
  105. package/lib/quick-list/quick-list.component.d.ts +1 -1
  106. package/lib/quick-list/quick-list.component.d.ts.map +1 -1
  107. package/lib/quick-list/quick-list.d.ts.map +1 -1
  108. package/lib/quick-list/quick-list.module.d.ts.map +1 -1
  109. package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts +2 -2
  110. package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts.map +1 -1
  111. package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts +2 -2
  112. package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts.map +1 -1
  113. package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts.map +1 -1
  114. package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts.map +1 -1
  115. package/lib/stepper/step-header/step-header.component.d.ts.map +1 -1
  116. package/lib/stepper/stepper.component.d.ts.map +1 -1
  117. package/lib/table/table.d.ts.map +1 -1
  118. package/package.json +4 -2
  119. package/public_api.d.ts +16 -12
  120. package/public_api.d.ts.map +1 -1
  121. package/themes/carcat.scss +38 -0
  122. package/themes/common/button.scss +34 -0
  123. package/themes/common/styles.scss +169 -40
  124. package/themes/common/theme.scss +57 -0
  125. package/themes/pbv.scss +16 -26
  126. package/themes/poa.scss +30 -39
  127. package/esm2022/lib/content-panel/content-header/content-header.component.mjs +0 -11
  128. package/esm2022/lib/content-panel/content-panel-container/content-panel-container.component.mjs +0 -11
  129. package/esm2022/lib/content-panel/content-panel-container-content/content-panel-container-content.component.mjs +0 -11
  130. package/esm2022/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.mjs +0 -11
  131. package/esm2022/lib/content-panel/content-panel.module.mjs +0 -42
  132. package/esm2022/lib/content-panel/main-container/main-container.component.mjs +0 -11
  133. package/esm2022/lib/flowbar/flowbar.component.mjs +0 -190
  134. package/esm2022/lib/toolbar/toolbar-action.interface.mjs +0 -2
  135. package/esm2022/lib/toolbar/toolbar.component.mjs +0 -78
  136. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -56
  137. package/esm2022/lib/toolbar/toolbar.service.mjs +0 -124
  138. package/lib/content-panel/content-header/content-header.component.d.ts.map +0 -1
  139. package/lib/content-panel/content-panel-container/content-panel-container.component.d.ts.map +0 -1
  140. package/lib/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts.map +0 -1
  141. package/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts.map +0 -1
  142. package/lib/content-panel/content-panel.module.d.ts.map +0 -1
  143. package/lib/content-panel/main-container/main-container.component.d.ts.map +0 -1
  144. package/lib/flowbar/flowbar.component.d.ts.map +0 -1
  145. package/lib/flowbar/flowbar.module.d.ts.map +0 -1
  146. package/lib/toolbar/toolbar-action.interface.d.ts.map +0 -1
  147. package/lib/toolbar/toolbar.component.d.ts.map +0 -1
  148. package/lib/toolbar/toolbar.module.d.ts.map +0 -1
  149. package/lib/toolbar/toolbar.service.d.ts.map +0 -1
  150. /package/lib/{content-panel → layout/content-panel}/content-header/content-header.component.d.ts +0 -0
  151. /package/lib/{content-panel → layout/content-panel}/content-panel-container-content/content-panel-container-content.component.d.ts +0 -0
  152. /package/lib/{content-panel → layout/content-panel}/content-panel-container-footer/content-panel-container-footer.component.d.ts +0 -0
  153. /package/lib/{content-panel → layout/content-panel}/main-container/main-container.component.d.ts +0 -0
  154. /package/lib/{flowbar → layout/flowbar}/flowbar.component.d.ts +0 -0
  155. /package/lib/{flowbar → layout/flowbar}/flowbar.module.d.ts +0 -0
  156. /package/lib/{toolbar → layout/toolbar}/toolbar-action.interface.d.ts +0 -0
  157. /package/lib/{toolbar → layout/toolbar}/toolbar.component.d.ts +0 -0
  158. /package/lib/{toolbar → layout/toolbar}/toolbar.service.d.ts +0 -0
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ContentPanelContainerComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ContentPanelContainerComponent, selector: "mad-content-panel-container", ngImport: i0, template: "<div class=\"content-panel-sidebar-wrapper\">\n <ng-content select=\"mad-content-panel-container-sidebar\"></ng-content>\n <div class=\"content-panel-outer-wrapper\">\n <ng-content select=\"mad-content-panel-container-content\"></ng-content>\n <ng-content select=\"mad-content-panel-container-footer\"></ng-content>\n </div>\n</div>\n", styles: [":host{position:relative;overflow:hidden;display:flex;flex:1 1 auto;min-height:.05rem;background-color:var(--background-color)}.content-panel-outer-wrapper{display:flex;flex:1 1 auto;flex-direction:column}.content-panel-sidebar-wrapper{width:100%;display:flex;flex:1 1 auto;flex-direction:row}\n"] }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelContainerComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'mad-content-panel-container', template: "<div class=\"content-panel-sidebar-wrapper\">\n <ng-content select=\"mad-content-panel-container-sidebar\"></ng-content>\n <div class=\"content-panel-outer-wrapper\">\n <ng-content select=\"mad-content-panel-container-content\"></ng-content>\n <ng-content select=\"mad-content-panel-container-footer\"></ng-content>\n </div>\n</div>\n", styles: [":host{position:relative;overflow:hidden;display:flex;flex:1 1 auto;min-height:.05rem;background-color:var(--background-color)}.content-panel-outer-wrapper{display:flex;flex:1 1 auto;flex-direction:column}.content-panel-sidebar-wrapper{width:100%;display:flex;flex:1 1 auto;flex-direction:row}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wYW5lbC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbGF5b3V0L2NvbnRlbnQtcGFuZWwvY29udGVudC1wYW5lbC1jb250YWluZXIvY29udGVudC1wYW5lbC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbGF5b3V0L2NvbnRlbnQtcGFuZWwvY29udGVudC1wYW5lbC1jb250YWluZXIvY29udGVudC1wYW5lbC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLDhCQUE4Qjs4R0FBOUIsOEJBQThCO2tHQUE5Qiw4QkFBOEIsbUVDUDNDLHlWQU9BOzsyRkRBYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1jb250ZW50LXBhbmVsLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXBhbmVsLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRlbnQtcGFuZWwtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRQYW5lbENvbnRhaW5lckNvbXBvbmVudCB7fVxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnQtcGFuZWwtc2lkZWJhci13cmFwcGVyXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hZC1jb250ZW50LXBhbmVsLWNvbnRhaW5lci1zaWRlYmFyXCI+PC9uZy1jb250ZW50PlxuICA8ZGl2IGNsYXNzPVwiY29udGVudC1wYW5lbC1vdXRlci13cmFwcGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWFkLWNvbnRlbnQtcGFuZWwtY29udGFpbmVyLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWFkLWNvbnRlbnQtcGFuZWwtY29udGFpbmVyLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ContentPanelContainerContentComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelContainerContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ContentPanelContainerContentComponent, selector: "mad-content-panel-container-content", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{flex:1 1 auto;overflow-y:auto;border-top:.05rem solid #cccccc;padding:1rem}\n"] }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelContainerContentComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'mad-content-panel-container-content', template: "<ng-content></ng-content>\n", styles: [":host{flex:1 1 auto;overflow-y:auto;border-top:.05rem solid #cccccc;padding:1rem}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wYW5lbC1jb250YWluZXItY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9sYXlvdXQvY29udGVudC1wYW5lbC9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1jb250ZW50L2NvbnRlbnQtcGFuZWwtY29udGFpbmVyLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbGF5b3V0L2NvbnRlbnQtcGFuZWwvY29udGVudC1wYW5lbC1jb250YWluZXItY29udGVudC9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1jb250ZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzFDLE1BQU0sT0FBTyxxQ0FBcUM7OEdBQXJDLHFDQUFxQztrR0FBckMscUNBQXFDLDJFQ1BsRCw2QkFDQTs7MkZETWEscUNBQXFDO2tCQUxqRCxTQUFTOytCQUNFLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtY29udGVudC1wYW5lbC1jb250YWluZXItY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1wYW5lbC1jb250YWluZXItY29udGVudC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50UGFuZWxDb250YWluZXJDb250ZW50Q29tcG9uZW50IHt9XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ContentPanelContainerFooterComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelContainerFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ContentPanelContainerFooterComponent, selector: "mad-content-panel-container-footer", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{border-top:.05rem solid #cccccc;padding:.25rem 1rem;display:flex;flex:0 0 auto;align-items:center;min-height:2rem}\n"] }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelContainerFooterComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'mad-content-panel-container-footer', template: "<ng-content></ng-content>\n", styles: [":host{border-top:.05rem solid #cccccc;padding:.25rem 1rem;display:flex;flex:0 0 auto;align-items:center;min-height:2rem}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wYW5lbC1jb250YWluZXItZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL2xheW91dC9jb250ZW50LXBhbmVsL2NvbnRlbnQtcGFuZWwtY29udGFpbmVyLWZvb3Rlci9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbGF5b3V0L2NvbnRlbnQtcGFuZWwvY29udGVudC1wYW5lbC1jb250YWluZXItZm9vdGVyL2NvbnRlbnQtcGFuZWwtY29udGFpbmVyLWZvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8xQyxNQUFNLE9BQU8sb0NBQW9DOzhHQUFwQyxvQ0FBb0M7a0dBQXBDLG9DQUFvQywwRUNQakQsNkJBQ0E7OzJGRE1hLG9DQUFvQztrQkFMaEQsU0FBUzsrQkFDRSxvQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLWNvbnRlbnQtcGFuZWwtY29udGFpbmVyLWZvb3RlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudFBhbmVsQ29udGFpbmVyRm9vdGVyQ29tcG9uZW50IHt9XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ContentPanelContainerSidebarComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelContainerSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: ContentPanelContainerSidebarComponent, selector: "mad-content-panel-container-sidebar", ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{border-top:.05rem solid #cccccc;min-height:2rem;display:flex;flex:0 0 auto}\n"] }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelContainerSidebarComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'mad-content-panel-container-sidebar', template: "<ng-content></ng-content>\n", styles: [":host{border-top:.05rem solid #cccccc;min-height:2rem;display:flex;flex:0 0 auto}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wYW5lbC1jb250YWluZXItc2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9sYXlvdXQvY29udGVudC1wYW5lbC9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1zaWRlYmFyL2NvbnRlbnQtcGFuZWwtY29udGFpbmVyLXNpZGViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbGF5b3V0L2NvbnRlbnQtcGFuZWwvY29udGVudC1wYW5lbC1jb250YWluZXItc2lkZWJhci9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1zaWRlYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzFDLE1BQU0sT0FBTyxxQ0FBcUM7OEdBQXJDLHFDQUFxQztrR0FBckMscUNBQXFDLDJFQ1BsRCw2QkFDQTs7MkZETWEscUNBQXFDO2tCQUxqRCxTQUFTOytCQUNFLHFDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtY29udGVudC1wYW5lbC1jb250YWluZXItc2lkZWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1zaWRlYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1wYW5lbC1jb250YWluZXItc2lkZWJhci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50UGFuZWxDb250YWluZXJTaWRlYmFyQ29tcG9uZW50IHt9XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -0,0 +1,47 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ContentHeaderComponent } from './content-header/content-header.component';
4
+ import { ContentPanelContainerComponent } from './content-panel-container/content-panel-container.component';
5
+ import { ContentPanelContainerContentComponent } from './content-panel-container-content/content-panel-container-content.component';
6
+ import { ContentPanelContainerFooterComponent } from './content-panel-container-footer/content-panel-container-footer.component';
7
+ import { ContentPanelContainerSidebarComponent } from './content-panel-container-sidebar/content-panel-container-sidebar.component';
8
+ import { MainContainerComponent } from './main-container/main-container.component';
9
+ import * as i0 from "@angular/core";
10
+ export class ContentPanelModule {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelModule, declarations: [ContentHeaderComponent,
13
+ ContentPanelContainerComponent,
14
+ ContentPanelContainerContentComponent,
15
+ ContentPanelContainerFooterComponent,
16
+ ContentPanelContainerSidebarComponent,
17
+ MainContainerComponent], imports: [CommonModule], exports: [ContentHeaderComponent,
18
+ ContentPanelContainerComponent,
19
+ ContentPanelContainerContentComponent,
20
+ ContentPanelContainerFooterComponent,
21
+ ContentPanelContainerSidebarComponent,
22
+ MainContainerComponent] }); }
23
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelModule, imports: [CommonModule] }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ContentPanelModule, decorators: [{
26
+ type: NgModule,
27
+ args: [{
28
+ declarations: [
29
+ ContentHeaderComponent,
30
+ ContentPanelContainerComponent,
31
+ ContentPanelContainerContentComponent,
32
+ ContentPanelContainerFooterComponent,
33
+ ContentPanelContainerSidebarComponent,
34
+ MainContainerComponent,
35
+ ],
36
+ imports: [CommonModule],
37
+ exports: [
38
+ ContentHeaderComponent,
39
+ ContentPanelContainerComponent,
40
+ ContentPanelContainerContentComponent,
41
+ ContentPanelContainerFooterComponent,
42
+ ContentPanelContainerSidebarComponent,
43
+ MainContainerComponent,
44
+ ],
45
+ }]
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wYW5lbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9sYXlvdXQvY29udGVudC1wYW5lbC9jb250ZW50LXBhbmVsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUNwSSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwyRUFBMkUsQ0FBQztBQUNqSSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUVwSSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUFvQm5GLE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQWpCM0Isc0JBQXNCO1lBQ3RCLDhCQUE4QjtZQUM5QixxQ0FBcUM7WUFDckMsb0NBQW9DO1lBQ3BDLHFDQUFxQztZQUNyQyxzQkFBc0IsYUFFZCxZQUFZLGFBRXBCLHNCQUFzQjtZQUN0Qiw4QkFBOEI7WUFDOUIscUNBQXFDO1lBQ3JDLG9DQUFvQztZQUNwQyxxQ0FBcUM7WUFDckMsc0JBQXNCOytHQUdiLGtCQUFrQixZQVZuQixZQUFZOzsyRkFVWCxrQkFBa0I7a0JBbkI5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixzQkFBc0I7d0JBQ3RCLDhCQUE4Qjt3QkFDOUIscUNBQXFDO3dCQUNyQyxvQ0FBb0M7d0JBQ3BDLHFDQUFxQzt3QkFDckMsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7d0JBQ3RCLDhCQUE4Qjt3QkFDOUIscUNBQXFDO3dCQUNyQyxvQ0FBb0M7d0JBQ3BDLHFDQUFxQzt3QkFDckMsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBDb250ZW50SGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250ZW50LWhlYWRlci9jb250ZW50LWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudFBhbmVsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb250ZW50LXBhbmVsLWNvbnRhaW5lci9jb250ZW50LXBhbmVsLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudFBhbmVsQ29udGFpbmVyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC1wYW5lbC1jb250YWluZXItY29udGVudC9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250ZW50UGFuZWxDb250YWluZXJGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRlbnQtcGFuZWwtY29udGFpbmVyLWZvb3Rlci9jb250ZW50LXBhbmVsLWNvbnRhaW5lci1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRlbnRQYW5lbENvbnRhaW5lclNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnRlbnQtcGFuZWwtY29udGFpbmVyLXNpZGViYXIvY29udGVudC1wYW5lbC1jb250YWluZXItc2lkZWJhci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBNYWluQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tYWluLWNvbnRhaW5lci9tYWluLWNvbnRhaW5lci5jb21wb25lbnQnO1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQ29udGVudEhlYWRlckNvbXBvbmVudCxcbiAgICBDb250ZW50UGFuZWxDb250YWluZXJDb21wb25lbnQsXG4gICAgQ29udGVudFBhbmVsQ29udGFpbmVyQ29udGVudENvbXBvbmVudCxcbiAgICBDb250ZW50UGFuZWxDb250YWluZXJGb290ZXJDb21wb25lbnQsXG4gICAgQ29udGVudFBhbmVsQ29udGFpbmVyU2lkZWJhckNvbXBvbmVudCxcbiAgICBNYWluQ29udGFpbmVyQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW1xuICAgIENvbnRlbnRIZWFkZXJDb21wb25lbnQsXG4gICAgQ29udGVudFBhbmVsQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIENvbnRlbnRQYW5lbENvbnRhaW5lckNvbnRlbnRDb21wb25lbnQsXG4gICAgQ29udGVudFBhbmVsQ29udGFpbmVyRm9vdGVyQ29tcG9uZW50LFxuICAgIENvbnRlbnRQYW5lbENvbnRhaW5lclNpZGViYXJDb21wb25lbnQsXG4gICAgTWFpbkNvbnRhaW5lckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGVudFBhbmVsTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class MainContainerComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MainContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MainContainerComponent, selector: "mad-main-container", ngImport: i0, template: "<div class=\"main-container\">\n <ng-content select=\"mad-content-header\"></ng-content>\n <ng-content select=\"mad-flowbar\"></ng-content>\n <ng-content select=\"mad-content-panel-container\"></ng-content>\n</div>\n", styles: [".main-container{height:100%;display:flex;flex-direction:column}\n"] }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MainContainerComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'mad-main-container', template: "<div class=\"main-container\">\n <ng-content select=\"mad-content-header\"></ng-content>\n <ng-content select=\"mad-flowbar\"></ng-content>\n <ng-content select=\"mad-content-panel-container\"></ng-content>\n</div>\n", styles: [".main-container{height:100%;display:flex;flex-direction:column}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbGF5b3V0L2NvbnRlbnQtcGFuZWwvbWFpbi1jb250YWluZXIvbWFpbi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbGF5b3V0L2NvbnRlbnQtcGFuZWwvbWFpbi1jb250YWluZXIvbWFpbi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLHNCQUFzQjs4R0FBdEIsc0JBQXNCO2tHQUF0QixzQkFBc0IsMERDUG5DLDZOQUtBOzsyRkRFYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1tYWluLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYWluLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21haW4tY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1haW5Db250YWluZXJDb21wb25lbnQge31cbiIsIjxkaXYgY2xhc3M9XCJtYWluLWNvbnRhaW5lclwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJtYWQtY29udGVudC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hZC1mbG93YmFyXCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJtYWQtY29udGVudC1wYW5lbC1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,190 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/material/stepper";
5
+ export class FlowbarComponent {
6
+ constructor() {
7
+ this._steps = [];
8
+ this._activeStepChange = new EventEmitter(true);
9
+ /**
10
+ * Event emitted when a step header is clicked.
11
+ * When defined header navigation has to be implemented programmatically.
12
+ * e.g. {@see changeActiveStepOnHeader}
13
+ */
14
+ this._headerClick = new EventEmitter(true);
15
+ }
16
+ get currentStepLabel() {
17
+ return this._activeStep.label;
18
+ }
19
+ get currentSubStepLabel() {
20
+ return this._activeStep.activeSubStep?.label;
21
+ }
22
+ ngOnInit() {
23
+ // If no active step is set as input or the active step is not enabled, select the first enabled step
24
+ if (!this._activeStep || !this._activeStep.enabled) {
25
+ this._activeStep = this._steps.find((step) => step.enabled);
26
+ if (this._activeStep) {
27
+ // If sub steps exist then set the first non disabled sub step per default
28
+ if (this.activeTabHasSubSteps()) {
29
+ this._activeStep.activeSubStep = this._activeStep.subSteps.find((step) => step.enabled);
30
+ }
31
+ this._activeStepChange.emit(this._activeStep);
32
+ }
33
+ }
34
+ }
35
+ ngAfterViewInit() {
36
+ this.stepper._getIndicatorType = () => 'number';
37
+ }
38
+ getIndexForActiveStep() {
39
+ const selectedIndex = this._steps.indexOf(this._activeStep);
40
+ return selectedIndex === -1 ? 0 : selectedIndex;
41
+ }
42
+ changeActiveStep(step) {
43
+ const previousIndex = this._steps.indexOf(this._activeStep);
44
+ this._activeStep = step;
45
+ if (this.activeTabHasSubSteps()) {
46
+ if (previousIndex < this._steps.indexOf(this._activeStep)) {
47
+ this._activeStep.activeSubStep = this._activeStep.subSteps[0];
48
+ }
49
+ else {
50
+ this._activeStep.activeSubStep = this._activeStep.subSteps[this._activeStep.subSteps.length - 1];
51
+ }
52
+ }
53
+ this._activeStepChange.emit(this._activeStep);
54
+ }
55
+ changeActiveStepOnHeader(step) {
56
+ const stepIndex = this._steps.indexOf(step);
57
+ this._activeStep = step;
58
+ this.stepper.selected = this.stepper._steps.find((_, i) => i === stepIndex);
59
+ }
60
+ changeActiveSubStep(subStep) {
61
+ this._activeStep.activeSubStep = subStep;
62
+ }
63
+ previous() {
64
+ if (this.isPreviousAvailable()) {
65
+ // If active step has no sub steps or first sub step is selected -> go to previous main step
66
+ if (!this.activeTabHasSubSteps() || this.isFirstSubStep()) {
67
+ const previousEnabledStep = this.findPreviousEnabledStep();
68
+ this.changeActiveStep(previousEnabledStep);
69
+ this.stepper.selectedIndex = this._steps.indexOf(previousEnabledStep);
70
+ }
71
+ else {
72
+ const subStepIndex = this._activeStep.subSteps.indexOf(this._activeStep.activeSubStep);
73
+ this._activeStep.activeSubStep = this._activeStep.subSteps[subStepIndex - 1];
74
+ }
75
+ }
76
+ }
77
+ next() {
78
+ if (this.isNextAvailable()) {
79
+ // If active step has no sub steps or last sub step is selected -> go to next main step
80
+ if (!this.activeTabHasSubSteps() || this.isLastSubStep()) {
81
+ const nextEnabledStep = this.findNextEnabledStep();
82
+ this.changeActiveStep(nextEnabledStep);
83
+ this.stepper.selectedIndex = this._steps.indexOf(nextEnabledStep);
84
+ }
85
+ else {
86
+ const subStepIndex = this._activeStep.subSteps.indexOf(this._activeStep.activeSubStep);
87
+ this._activeStep.activeSubStep = this._activeStep.subSteps[subStepIndex + 1];
88
+ }
89
+ }
90
+ }
91
+ isPreviousAvailable() {
92
+ if (this._activeStep) {
93
+ if (!this.activeTabHasSubSteps() || this.isFirstSubStep()) {
94
+ const index = this.getCurrentIndex();
95
+ return index > 0 && this.isAnyPreviousStepEnabled(index);
96
+ }
97
+ else {
98
+ return true;
99
+ }
100
+ }
101
+ return false;
102
+ }
103
+ isNextAvailable() {
104
+ if (this._activeStep) {
105
+ if (!this.activeTabHasSubSteps() || this.isLastSubStep()) {
106
+ const index = this.getCurrentIndex();
107
+ return index < this._steps.length - 1 && this.isAnyFollowingStepEnabled(index);
108
+ }
109
+ else {
110
+ return true;
111
+ }
112
+ }
113
+ return false;
114
+ }
115
+ isLastStep() {
116
+ if (this.getCurrentIndex() === this._steps.length - 1) {
117
+ if (this.activeTabHasSubSteps()) {
118
+ return this.isLastSubStep();
119
+ }
120
+ else {
121
+ return true;
122
+ }
123
+ }
124
+ return false;
125
+ }
126
+ getCurrentIndex() {
127
+ return this._steps.findIndex((value) => value === this._activeStep);
128
+ }
129
+ getCurrentSubStepIndex() {
130
+ return this._activeStep.subSteps.findIndex((value) => value === this._activeStep.activeSubStep);
131
+ }
132
+ triggerClick() {
133
+ const selectedStep = this._steps[this.stepper.selectedIndex];
134
+ this.changeActiveStep(selectedStep);
135
+ }
136
+ headerClick(event, step) {
137
+ event.stopPropagation(); //stop processing current header click event
138
+ this._headerClick.emit(step);
139
+ }
140
+ activeTabHasSubSteps() {
141
+ return this._activeStep.subSteps && this._activeStep.subSteps.length > 0;
142
+ }
143
+ isFirstSubStep() {
144
+ return this._activeStep.activeSubStep === this._activeStep.subSteps[0];
145
+ }
146
+ isLastSubStep() {
147
+ return this._activeStep.activeSubStep === this._activeStep.subSteps[this._activeStep.subSteps.length - 1];
148
+ }
149
+ isAnyPreviousStepEnabled(index) {
150
+ // eslint-disable-next-line id-blacklist
151
+ return this._steps.slice(0, index).find((step) => step.enabled) !== undefined;
152
+ }
153
+ isAnyFollowingStepEnabled(index) {
154
+ // eslint-disable-next-line id-blacklist
155
+ return this._steps.slice(index + 1, this._steps.length).find((step) => step.enabled) !== undefined;
156
+ }
157
+ findPreviousEnabledStep() {
158
+ const index = this.getCurrentIndex();
159
+ return this._steps
160
+ .slice(0, index)
161
+ .reverse()
162
+ .find((step) => step.enabled);
163
+ }
164
+ findNextEnabledStep() {
165
+ const index = this.getCurrentIndex();
166
+ return this._steps.slice(index + 1, this._steps.length).find((step) => step.enabled);
167
+ }
168
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FlowbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
169
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: FlowbarComponent, selector: "mad-flowbar", inputs: { _steps: ["steps", "_steps"], _activeStep: ["activeStep", "_activeStep"] }, outputs: { _activeStepChange: "activeStepChange", _headerClick: "headerClick" }, viewQueries: [{ propertyName: "stepper", first: true, predicate: ["stepper"], descendants: true }], ngImport: i0, template: "<div class=\"stepper-container\">\n <mat-horizontal-stepper #stepper [selectedIndex]=\"this.getIndexForActiveStep()\" (click)=\"triggerClick()\">\n <mat-step *ngFor=\"let step of _steps\" [aria-labelledby]=\"!step.enabled ? 'disabled' : null\">\n <ng-template matStepLabel>\n <div class=\"step-header-overlay\" *ngIf=\"this._headerClick.observers.length > 0\" (click)=\"headerClick($event, step)\"></div>\n <span>{{ step.label }}</span>\n </ng-template>\n </mat-step>\n </mat-horizontal-stepper>\n</div>\n", styles: [".stepper-container{display:flex;padding:0 1rem}::ng-deep .mat-stepper-horizontal .mat-horizontal-stepper-header{padding:0;height:auto}::ng-deep .mat-step-header[aria-labelledby=disabled]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 10px}::ng-deep .mat-stepper-horizontal .mat-stepper-horizontal-line{margin:0 5px;border-top-width:4px}.step-header-overlay{position:absolute;width:100%;height:100%;right:0;top:0}\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.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i2.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i2.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }] }); }
170
+ }
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FlowbarComponent, decorators: [{
172
+ type: Component,
173
+ args: [{ selector: 'mad-flowbar', template: "<div class=\"stepper-container\">\n <mat-horizontal-stepper #stepper [selectedIndex]=\"this.getIndexForActiveStep()\" (click)=\"triggerClick()\">\n <mat-step *ngFor=\"let step of _steps\" [aria-labelledby]=\"!step.enabled ? 'disabled' : null\">\n <ng-template matStepLabel>\n <div class=\"step-header-overlay\" *ngIf=\"this._headerClick.observers.length > 0\" (click)=\"headerClick($event, step)\"></div>\n <span>{{ step.label }}</span>\n </ng-template>\n </mat-step>\n </mat-horizontal-stepper>\n</div>\n", styles: [".stepper-container{display:flex;padding:0 1rem}::ng-deep .mat-stepper-horizontal .mat-horizontal-stepper-header{padding:0;height:auto}::ng-deep .mat-step-header[aria-labelledby=disabled]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 10px}::ng-deep .mat-stepper-horizontal .mat-stepper-horizontal-line{margin:0 5px;border-top-width:4px}.step-header-overlay{position:absolute;width:100%;height:100%;right:0;top:0}\n"] }]
174
+ }], propDecorators: { _steps: [{
175
+ type: Input,
176
+ args: ['steps']
177
+ }], _activeStep: [{
178
+ type: Input,
179
+ args: ['activeStep']
180
+ }], _activeStepChange: [{
181
+ type: Output,
182
+ args: ['activeStepChange']
183
+ }], _headerClick: [{
184
+ type: Output,
185
+ args: ['headerClick']
186
+ }], stepper: [{
187
+ type: ViewChild,
188
+ args: ['stepper']
189
+ }] } });
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvd2Jhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9sYXlvdXQvZmxvd2Jhci9mbG93YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL2xheW91dC9mbG93YmFyL2Zsb3diYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBZXpHLE1BQU0sT0FBTyxnQkFBZ0I7SUFMN0I7UUFNa0IsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUVULHNCQUFpQixHQUF3QixJQUFJLFlBQVksQ0FBUSxJQUFJLENBQUMsQ0FBQztRQUNuRzs7OztXQUlHO1FBQ29CLGlCQUFZLEdBQXdCLElBQUksWUFBWSxDQUFRLElBQUksQ0FBQyxDQUFDO0tBNEsxRjtJQXpLQyxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQztJQUMvQyxDQUFDO0lBRUQsUUFBUTtRQUNOLHFHQUFxRztRQUNyRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1RCxJQUFJLElBQUksQ0FBQyxX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dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U3RlcHBlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTdGVwIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIHN1YlN0ZXBzPzogSVN0ZXBbXTtcbiAgYWN0aXZlU3ViU3RlcD86IElTdGVwO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtZmxvd2JhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mbG93YmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmxvd2Jhci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGbG93YmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCdzdGVwcycpIF9zdGVwczogSVN0ZXBbXSA9IFtdO1xuICBASW5wdXQoJ2FjdGl2ZVN0ZXAnKSBfYWN0aXZlU3RlcDogSVN0ZXA7XG4gIEBPdXRwdXQoJ2FjdGl2ZVN0ZXBDaGFuZ2UnKSBfYWN0aXZlU3RlcENoYW5nZTogRXZlbnRFbWl0dGVyPElTdGVwPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVN0ZXA+KHRydWUpO1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgc3RlcCBoZWFkZXIgaXMgY2xpY2tlZC5cbiAgICogV2hlbiBkZWZpbmVkIGhlYWRlciBuYXZpZ2F0aW9uIGhhcyB0byBiZSBpbXBsZW1lbnRlZCBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKiBlLmcuIHtAc2VlIGNoYW5nZUFjdGl2ZVN0ZXBPbkhlYWRlcn1cbiAgICovXG4gIEBPdXRwdXQoJ2hlYWRlckNsaWNrJykgX2hlYWRlckNsaWNrOiBFdmVudEVtaXR0ZXI8SVN0ZXA+ID0gbmV3IEV2ZW50RW1pdHRlcjxJU3RlcD4odHJ1ZSk7XG4gIEBWaWV3Q2hpbGQoJ3N0ZXBwZXInKSBwcml2YXRlIHN0ZXBwZXI6IE1hdFN0ZXBwZXI7XG5cbiAgZ2V0IGN1cnJlbnRTdGVwTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlU3RlcC5sYWJlbDtcbiAgfVxuXG4gIGdldCBjdXJyZW50U3ViU3RlcExhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcD8ubGFiZWw7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBJZiBubyBhY3RpdmUgc3RlcCBpcyBzZXQgYXMgaW5wdXQgb3IgdGhlIGFjdGl2ZSBzdGVwIGlzIG5vdCBlbmFibGVkLCBzZWxlY3QgdGhlIGZpcnN0IGVuYWJsZWQgc3RlcFxuICAgIGlmICghdGhpcy5fYWN0aXZlU3RlcCB8fCAhdGhpcy5fYWN0aXZlU3RlcC5lbmFibGVkKSB7XG4gICAgICB0aGlzLl9hY3RpdmVTdGVwID0gdGhpcy5fc3RlcHMuZmluZCgoc3RlcCkgPT4gc3RlcC5lbmFibGVkKTtcbiAgICAgIGlmICh0aGlzLl9hY3RpdmVTdGVwKSB7XG4gICAgICAgIC8vIElmIHN1YiBzdGVwcyBleGlzdCB0aGVuIHNldCB0aGUgZmlyc3Qgbm9uIGRpc2FibGVkIHN1YiBzdGVwIHBlciBkZWZhdWx0XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZVRhYkhhc1N1YlN0ZXBzKCkpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXAgPSB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzLmZpbmQoKHN0ZXApID0+IHN0ZXAuZW5hYmxlZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYWN0aXZlU3RlcENoYW5nZS5lbWl0KHRoaXMuX2FjdGl2ZVN0ZXApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBwZXIuX2dldEluZGljYXRvclR5cGUgPSAoKTogYW55ID0+ICdudW1iZXInO1xuICB9XG5cbiAgZ2V0SW5kZXhGb3JBY3RpdmVTdGVwKCk6IG51bWJlciB7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMuX3N0ZXBzLmluZGV4T2YodGhpcy5fYWN0aXZlU3RlcCk7XG4gICAgcmV0dXJuIHNlbGVjdGVkSW5kZXggPT09IC0xID8gMCA6IHNlbGVjdGVkSW5kZXg7XG4gIH1cblxuICBjaGFuZ2VBY3RpdmVTdGVwKHN0ZXA6IElTdGVwKTogdm9pZCB7XG4gICAgY29uc3QgcHJldmlvdXNJbmRleCA9IHRoaXMuX3N0ZXBzLmluZGV4T2YodGhpcy5fYWN0aXZlU3RlcCk7XG4gICAgdGhpcy5fYWN0aXZlU3RlcCA9IHN0ZXA7XG4gICAgaWYgKHRoaXMuYWN0aXZlVGFiSGFzU3ViU3RlcHMoKSkge1xuICAgICAgaWYgKHByZXZpb3VzSW5kZXggPCB0aGlzLl9zdGVwcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVN0ZXApKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCA9IHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHNbMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXAgPSB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzW3RoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHMubGVuZ3RoIC0gMV07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2FjdGl2ZVN0ZXBDaGFuZ2UuZW1pdCh0aGlzLl9hY3RpdmVTdGVwKTtcbiAgfVxuXG4gIGNoYW5nZUFjdGl2ZVN0ZXBPbkhlYWRlcihzdGVwOiBJU3RlcCk6IHZvaWQge1xuICAgIGNvbnN0IHN0ZXBJbmRleCA9IHRoaXMuX3N0ZXBzLmluZGV4T2Yoc3RlcCk7XG4gICAgdGhpcy5fYWN0aXZlU3RlcCA9IHN0ZXA7XG4gICAgdGhpcy5zdGVwcGVyLnNlbGVjdGVkID0gdGhpcy5zdGVwcGVyLl9zdGVwcy5maW5kKChfLCBpKSA9PiBpID09PSBzdGVwSW5kZXgpO1xuICB9XG5cbiAgY2hhbmdlQWN0aXZlU3ViU3RlcChzdWJTdGVwOiBJU3RlcCk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCA9IHN1YlN0ZXA7XG4gIH1cblxuICBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1ByZXZpb3VzQXZhaWxhYmxlKCkpIHtcbiAgICAgIC8vIElmIGFjdGl2ZSBzdGVwIGhhcyBubyBzdWIgc3RlcHMgb3IgZmlyc3Qgc3ViIHN0ZXAgaXMgc2VsZWN0ZWQgLT4gZ28gdG8gcHJldmlvdXMgbWFpbiBzdGVwXG4gICAgICBpZiAoIXRoaXMuYWN0aXZlVGFiSGFzU3ViU3RlcHMoKSB8fCB0aGlzLmlzRmlyc3RTdWJTdGVwKCkpIHtcbiAgICAgICAgY29uc3QgcHJldmlvdXNFbmFibGVkU3RlcCA9IHRoaXMuZmluZFByZXZpb3VzRW5hYmxlZFN0ZXAoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VBY3RpdmVTdGVwKHByZXZpb3VzRW5hYmxlZFN0ZXApO1xuICAgICAgICB0aGlzLnN0ZXBwZXIuc2VsZWN0ZWRJbmRleCA9IHRoaXMuX3N0ZXBzLmluZGV4T2YocHJldmlvdXNFbmFibGVkU3RlcCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdWJTdGVwSW5kZXggPSB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzLmluZGV4T2YodGhpcy5fYWN0aXZlU3RlcC5hY3RpdmVTdWJTdGVwKTtcbiAgICAgICAgdGhpcy5fYWN0aXZlU3RlcC5hY3RpdmVTdWJTdGVwID0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwc1tzdWJTdGVwSW5kZXggLSAxXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzTmV4dEF2YWlsYWJsZSgpKSB7XG4gICAgICAvLyBJZiBhY3RpdmUgc3RlcCBoYXMgbm8gc3ViIHN0ZXBzIG9yIGxhc3Qgc3ViIHN0ZXAgaXMgc2VsZWN0ZWQgLT4gZ28gdG8gbmV4dCBtYWluIHN0ZXBcbiAgICAgIGlmICghdGhpcy5hY3RpdmVUYWJIYXNTdWJTdGVwcygpIHx8IHRoaXMuaXNMYXN0U3ViU3RlcCgpKSB7XG4gICAgICAgIGNvbnN0IG5leHRFbmFibGVkU3RlcCA9IHRoaXMuZmluZE5leHRFbmFibGVkU3RlcCgpO1xuICAgICAgICB0aGlzLmNoYW5nZUFjdGl2ZVN0ZXAobmV4dEVuYWJsZWRTdGVwKTtcbiAgICAgICAgdGhpcy5zdGVwcGVyLnNlbGVjdGVkSW5kZXggPSB0aGlzLl9zdGVwcy5pbmRleE9mKG5leHRFbmFibGVkU3RlcCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdWJTdGVwSW5kZXggPSB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzLmluZGV4T2YodGhpcy5fYWN0aXZlU3RlcC5hY3RpdmVTdWJTdGVwKTtcbiAgICAgICAgdGhpcy5fYWN0aXZlU3RlcC5hY3RpdmVTdWJTdGVwID0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwc1tzdWJTdGVwSW5kZXggKyAxXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpc1ByZXZpb3VzQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9hY3RpdmVTdGVwKSB7XG4gICAgICBpZiAoIXRoaXMuYWN0aXZlVGFiSGFzU3ViU3RlcHMoKSB8fCB0aGlzLmlzRmlyc3RTdWJTdGVwKCkpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEN1cnJlbnRJbmRleCgpO1xuICAgICAgICByZXR1cm4gaW5kZXggPiAwICYmIHRoaXMuaXNBbnlQcmV2aW91c1N0ZXBFbmFibGVkKGluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpc05leHRBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZVN0ZXApIHtcbiAgICAgIGlmICghdGhpcy5hY3RpdmVUYWJIYXNTdWJTdGVwcygpIHx8IHRoaXMuaXNMYXN0U3ViU3RlcCgpKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRDdXJyZW50SW5kZXgoKTtcbiAgICAgICAgcmV0dXJuIGluZGV4IDwgdGhpcy5fc3RlcHMubGVuZ3RoIC0gMSAmJiB0aGlzLmlzQW55Rm9sbG93aW5nU3RlcEVuYWJsZWQoaW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlzTGFzdFN0ZXAoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZ2V0Q3VycmVudEluZGV4KCkgPT09IHRoaXMuX3N0ZXBzLmxlbmd0aCAtIDEpIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVRhYkhhc1N1YlN0ZXBzKCkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNMYXN0U3ViU3RlcCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldEN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zdGVwcy5maW5kSW5kZXgoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gdGhpcy5fYWN0aXZlU3RlcCk7XG4gIH1cblxuICBnZXRDdXJyZW50U3ViU3RlcEluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHMuZmluZEluZGV4KCh2YWx1ZSkgPT4gdmFsdWUgPT09IHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCk7XG4gIH1cblxuICB0cmlnZ2VyQ2xpY2soKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRTdGVwID0gdGhpcy5fc3RlcHNbdGhpcy5zdGVwcGVyLnNlbGVjdGVkSW5kZXhdO1xuICAgIHRoaXMuY2hhbmdlQWN0aXZlU3RlcChzZWxlY3RlZFN0ZXApO1xuICB9XG5cbiAgaGVhZGVyQ2xpY2soZXZlbnQ6IGFueSwgc3RlcDogSVN0ZXApOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy9zdG9wIHByb2Nlc3NpbmcgY3VycmVudCBoZWFkZXIgY2xpY2sgZXZlbnRcbiAgICB0aGlzLl9oZWFkZXJDbGljay5lbWl0KHN0ZXApO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmVUYWJIYXNTdWJTdGVwcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcyAmJiB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcml2YXRlIGlzRmlyc3RTdWJTdGVwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXAgPT09IHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHNbMF07XG4gIH1cblxuICBwcml2YXRlIGlzTGFzdFN1YlN0ZXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCA9PT0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwc1t0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzLmxlbmd0aCAtIDFdO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FueVByZXZpb3VzU3RlcEVuYWJsZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpZC1ibGFja2xpc3RcbiAgICByZXR1cm4gdGhpcy5fc3RlcHMuc2xpY2UoMCwgaW5kZXgpLmZpbmQoKHN0ZXApID0+IHN0ZXAuZW5hYmxlZCkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlGb2xsb3dpbmdTdGVwRW5hYmxlZChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWJsYWNrbGlzdFxuICAgIHJldHVybiB0aGlzLl9zdGVwcy5zbGljZShpbmRleCArIDEsIHRoaXMuX3N0ZXBzLmxlbmd0aCkuZmluZCgoc3RlcCkgPT4gc3RlcC5lbmFibGVkKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kUHJldmlvdXNFbmFibGVkU3RlcCgpOiBJU3RlcCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmdldEN1cnJlbnRJbmRleCgpO1xuICAgIHJldHVybiB0aGlzLl9zdGVwc1xuICAgICAgLnNsaWNlKDAsIGluZGV4KVxuICAgICAgLnJldmVyc2UoKVxuICAgICAgLmZpbmQoKHN0ZXApID0+IHN0ZXAuZW5hYmxlZCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmROZXh0RW5hYmxlZFN0ZXAoKTogSVN0ZXAge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRDdXJyZW50SW5kZXgoKTtcbiAgICByZXR1cm4gdGhpcy5fc3RlcHMuc2xpY2UoaW5kZXggKyAxLCB0aGlzLl9zdGVwcy5sZW5ndGgpLmZpbmQoKHN0ZXApID0+IHN0ZXAuZW5hYmxlZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzdGVwcGVyLWNvbnRhaW5lclwiPlxuICA8bWF0LWhvcml6b250YWwtc3RlcHBlciAjc3RlcHBlciBbc2VsZWN0ZWRJbmRleF09XCJ0aGlzLmdldEluZGV4Rm9yQWN0aXZlU3RlcCgpXCIgKGNsaWNrKT1cInRyaWdnZXJDbGljaygpXCI+XG4gICAgPG1hdC1zdGVwICpuZ0Zvcj1cImxldCBzdGVwIG9mIF9zdGVwc1wiIFthcmlhLWxhYmVsbGVkYnldPVwiIXN0ZXAuZW5hYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1oZWFkZXItb3ZlcmxheVwiICpuZ0lmPVwidGhpcy5faGVhZGVyQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiaGVhZGVyQ2xpY2soJGV2ZW50LCBzdGVwKVwiPjwvZGl2PlxuICAgICAgICA8c3Bhbj57eyBzdGVwLmxhYmVsIH19PC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L21hdC1zdGVwPlxuICA8L21hdC1ob3Jpem9udGFsLXN0ZXBwZXI+XG48L2Rpdj5cbiJdfQ==
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
16
16
  exports: [FlowbarComponent],
17
17
  }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvd2Jhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9mbG93YmFyL2Zsb3diYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU92RCxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhOytHQUFiLGFBQWEsaUJBSlQsZ0JBQWdCLGFBQ3JCLFlBQVksRUFBRSxnQkFBZ0IsYUFDOUIsZ0JBQWdCOytHQUVmLGFBQWEsWUFIZCxZQUFZLEVBQUUsZ0JBQWdCOzsyRkFHN0IsYUFBYTtrQkFMekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO29CQUN6QyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFN0ZXBwZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcbmltcG9ydCB7IEZsb3diYXJDb21wb25lbnQgfSBmcm9tICcuL2Zsb3diYXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRmxvd2JhckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdFN0ZXBwZXJNb2R1bGVdLFxuICBleHBvcnRzOiBbRmxvd2JhckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZsb3diYXJNb2R1bGUge31cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvd2Jhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9sYXlvdXQvZmxvd2Jhci9mbG93YmFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFPdkQsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTsrR0FBYixhQUFhLGlCQUpULGdCQUFnQixhQUNyQixZQUFZLEVBQUUsZ0JBQWdCLGFBQzlCLGdCQUFnQjsrR0FFZixhQUFhLFlBSGQsWUFBWSxFQUFFLGdCQUFnQjs7MkZBRzdCLGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRTdGVwcGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQgeyBGbG93YmFyQ29tcG9uZW50IH0gZnJvbSAnLi9mbG93YmFyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0Zsb3diYXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRTdGVwcGVyTW9kdWxlXSxcbiAgZXhwb3J0czogW0Zsb3diYXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBGbG93YmFyTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { Component, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SidebarItemComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SidebarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: SidebarItemComponent, selector: "[mad-sidebar-item]", ngImport: i0, template: "<span class=\"content-wrapper\">\n <ng-content></ng-content>\n</span>\n<span class=\"focus-overlay\"></span>\n", styles: ["[mad-sidebar-item]{padding:9px 24px 8px;color:var(--panel-color);position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:300;letter-spacing:.5px}[mad-sidebar-item] .focus-overlay{inset:0;position:absolute;pointer-events:none;border-radius:inherit}[mad-sidebar-item].active-sidebar-item{background-color:var(--panel-select-background)}[mad-sidebar-item]:hover .focus-overlay{background-color:#000;opacity:.04}\n"], encapsulation: i0.ViewEncapsulation.None }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SidebarItemComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: '[mad-sidebar-item]', encapsulation: ViewEncapsulation.None, template: "<span class=\"content-wrapper\">\n <ng-content></ng-content>\n</span>\n<span class=\"focus-overlay\"></span>\n", styles: ["[mad-sidebar-item]{padding:9px 24px 8px;color:var(--panel-color);position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:300;letter-spacing:.5px}[mad-sidebar-item] .focus-overlay{inset:0;position:absolute;pointer-events:none;border-radius:inherit}[mad-sidebar-item].active-sidebar-item{background-color:var(--panel-select-background)}[mad-sidebar-item]:hover .focus-overlay{background-color:#000;opacity:.04}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL2xheW91dC9zaWRlYmFyL3NpZGViYXItaXRlbS9zaWRlYmFyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbGF5b3V0L3NpZGViYXIvc2lkZWJhci1pdGVtL3NpZGViYXItaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVE3RCxNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7a0dBQXBCLG9CQUFvQiwwRENSakMsaUhBSUE7OzJGRElhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxvQkFBb0IsaUJBR2YsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW21hZC1zaWRlYmFyLWl0ZW1dJyxcbiAgdGVtcGxhdGVVcmw6ICdzaWRlYmFyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnc2lkZWJhci1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNpZGViYXJJdGVtQ29tcG9uZW50IHt9XG4iLCI8c3BhbiBjbGFzcz1cImNvbnRlbnQtd3JhcHBlclwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3NwYW4+XG48c3BhbiBjbGFzcz1cImZvY3VzLW92ZXJsYXlcIj48L3NwYW4+XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/icon";
4
+ import * as i2 from "@angular/material/button";
5
+ export class SidebarComponent {
6
+ constructor() {
7
+ this.collapsed = false;
8
+ }
9
+ toggleCollapse() {
10
+ this.collapsed = !this.collapsed;
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: SidebarComponent, selector: "mad-sidebar", ngImport: i0, template: "<div [class.collapsed]=\"collapsed\" class=\"sidebar-wrapper\">\n <div class=\"sidebar-header\">\n <button (click)=\"toggleCollapse()\" color=\"basic\" mat-button>\n <mat-icon>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\n </button>\n </div>\n <div class=\"item-list\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sidebar-wrapper{background:var(--panel-background-color);min-height:100%;display:flex;flex-direction:column;border-right:1px solid var(--panel-border-color);margin-top:10px;transition:width .1s ease-in}.sidebar-wrapper:not(.collapsed){min-width:239px}.sidebar-wrapper.collapsed{width:64px}.sidebar-wrapper .sidebar-header{display:flex;flex-direction:row-reverse;border-bottom:1px solid var(--panel-border-color)}.sidebar-wrapper .sidebar-header button{color:#707070}.sidebar-wrapper.collapsed .item-list{display:none}.sidebar-wrapper .item-list{display:flex;flex-direction:column;margin-top:16px}\n"], dependencies: [{ kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SidebarComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'mad-sidebar', template: "<div [class.collapsed]=\"collapsed\" class=\"sidebar-wrapper\">\n <div class=\"sidebar-header\">\n <button (click)=\"toggleCollapse()\" color=\"basic\" mat-button>\n <mat-icon>{{ collapsed ? 'keyboard_double_arrow_right' : 'keyboard_double_arrow_left' }}</mat-icon>\n </button>\n </div>\n <div class=\"item-list\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".sidebar-wrapper{background:var(--panel-background-color);min-height:100%;display:flex;flex-direction:column;border-right:1px solid var(--panel-border-color);margin-top:10px;transition:width .1s ease-in}.sidebar-wrapper:not(.collapsed){min-width:239px}.sidebar-wrapper.collapsed{width:64px}.sidebar-wrapper .sidebar-header{display:flex;flex-direction:row-reverse;border-bottom:1px solid var(--panel-border-color)}.sidebar-wrapper .sidebar-header button{color:#707070}.sidebar-wrapper.collapsed .item-list{display:none}.sidebar-wrapper .item-list{display:flex;flex-direction:column;margin-top:16px}\n"] }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9sYXlvdXQvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL2xheW91dC9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU8xQyxNQUFNLE9BQU8sZ0JBQWdCO0lBTDdCO1FBTUUsY0FBUyxHQUFHLEtBQUssQ0FBQztLQUtuQjtJQUhDLGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDOzhHQUxVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLG1EQ1A3Qiw2WEFVQTs7MkZESGEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXNpZGViYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGViYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2lkZWJhckNvbXBvbmVudCB7XG4gIGNvbGxhcHNlZCA9IGZhbHNlO1xuXG4gIHRvZ2dsZUNvbGxhcHNlKCkge1xuICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkO1xuICB9XG59XG4iLCI8ZGl2IFtjbGFzcy5jb2xsYXBzZWRdPVwiY29sbGFwc2VkXCIgY2xhc3M9XCJzaWRlYmFyLXdyYXBwZXJcIj5cbiAgPGRpdiBjbGFzcz1cInNpZGViYXItaGVhZGVyXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2UoKVwiIGNvbG9yPVwiYmFzaWNcIiBtYXQtYnV0dG9uPlxuICAgICAgPG1hdC1pY29uPnt7IGNvbGxhcHNlZCA/ICdrZXlib2FyZF9kb3VibGVfYXJyb3dfcmlnaHQnIDogJ2tleWJvYXJkX2RvdWJsZV9hcnJvd19sZWZ0JyB9fTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaXRlbS1saXN0XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SidebarComponent } from './sidebar.component';
4
+ import { SidebarItemComponent } from './sidebar-item/sidebar-item.component';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import * as i0 from "@angular/core";
8
+ export class SidebarModule {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SidebarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: SidebarModule, declarations: [SidebarComponent, SidebarItemComponent], imports: [CommonModule, MatIconModule, MatButtonModule], exports: [SidebarComponent, SidebarItemComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SidebarModule, imports: [CommonModule, MatIconModule, MatButtonModule] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SidebarModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ declarations: [SidebarComponent, SidebarItemComponent],
17
+ exports: [SidebarComponent, SidebarItemComponent],
18
+ imports: [CommonModule, MatIconModule, MatButtonModule],
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9sYXlvdXQvc2lkZWJhci9zaWRlYmFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU8zRCxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhOytHQUFiLGFBQWEsaUJBSlQsZ0JBQWdCLEVBQUUsb0JBQW9CLGFBRTNDLFlBQVksRUFBRSxhQUFhLEVBQUUsZUFBZSxhQUQ1QyxnQkFBZ0IsRUFBRSxvQkFBb0I7K0dBR3JDLGFBQWEsWUFGZCxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWU7OzJGQUUzQyxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixFQUFFLG9CQUFvQixDQUFDO29CQUN0RCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxvQkFBb0IsQ0FBQztvQkFDakQsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7aUJBQ3hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWRlYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZWJhci1pdGVtL3NpZGViYXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2lkZWJhckNvbXBvbmVudCwgU2lkZWJhckl0ZW1Db21wb25lbnRdLFxuICBleHBvcnRzOiBbU2lkZWJhckNvbXBvbmVudCwgU2lkZWJhckl0ZW1Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTaWRlYmFyTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1hY3Rpb24uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbGF5b3V0L3Rvb2xiYXIvdG9vbGJhci1hY3Rpb24uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xuICBtYXRJY29uOiBzdHJpbmc7XG4gIGkxOG5BY3Rpb25LZXk6IHN0cmluZztcbiAgYWN0aW9uTmFtZT86IHN0cmluZztcbiAgc2hvd0lmPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYWluQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcbiAgcm91dGVyTGluaz86IHN0cmluZztcbiAgYWN0aW9uPzogKCkgPT4gYW55O1xuICBsaWZ0SGlnaGVyT25Nb2JpbGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhY2tBY3Rpb24gZXh0ZW5kcyBBY3Rpb24ge1xuICByb3V0ZXJMaW5rPzogc3RyaW5nO1xuICBocmVmPzogc3RyaW5nO1xuICBhY3Rpb24/OiAoKSA9PiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbGJhckFjdGlvbkJhZGdlIHtcbiAgdmFsdWU6IGFueTsgLy8gaGlkZGVuIGF1dG9tYXRpY2FsbHkgaWYgbnVsbC91bmRlZlxuICBjb2xvcj86IFRoZW1lUGFsZXR0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb29sYmFyQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHtcbiAgYWN0aW9uOiAoKSA9PiBhbnk7XG4gIGltcG9ydGFudEFjdGlvbj86IGJvb2xlYW47IC8vIGlmIHRydWUsIGl0IHdpbGwgbmV2ZXIgYmUgaGlkZGVuIGluIGEgbWF0LW1lbnVcbiAgYmFkZ2U/OiBUb29sYmFyQWN0aW9uQmFkZ2U7XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9sYXlvdXQvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL2xheW91dC90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBc0IsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBUXJDLE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFDVSxrQkFBc0MsRUFDdEMsWUFBbUIsRUFDbkIsY0FBOEI7UUFGOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxpQkFBWSxHQUFaLFlBQVksQ0FBTztRQUNuQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFMeEMsZUFBVSxHQUF3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFNNUgsQ0FBQztJQUVKLFFBQVE7UUFDTixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDO1FBQ3RELE1BQU0sS0FBSyxHQUFHLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDdEcsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUNoRixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFjO1FBQzFCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQzdCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBK0I7UUFDMUMsT0FBTyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFrQjtRQUMvQixPQUFPLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQStCO1FBQ3RDLE9BQU8sTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCw2QkFBNkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLDZCQUE2QixFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxDQUNMLElBQUksQ0FBQyxpQkFBaUIsRUFBRTthQUNyQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsc0NBQXNDO2FBQy9DLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ2xFLENBQUM7SUFDSixDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDeEYsQ0FBQzs4R0FqRVUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsbURDYjdCLHFsS0F3SEE7OzJGRDNHYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFRvb2xiYXJTZXJ2aWNlIH0gZnJvbSAnLi90b29sYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvbiwgQmFja0FjdGlvbiwgTWFpbkFjdGlvbiwgVG9vbGJhckFjdGlvbiB9IGZyb20gJy4vdG9vbGJhci1hY3Rpb24uaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Rvb2xiYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbGJhckNvbXBvbmVudCB7XG4gIGlzSGFuZHNldCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0XSkucGlwZShtYXAoKHJlc3VsdCkgPT4gcmVzdWx0Lm1hdGNoZXMpKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBUaXRsZSxcbiAgICBwcml2YXRlIHRvb2xiYXJTZXJ2aWNlOiBUb29sYmFyU2VydmljZSxcbiAgKSB7fVxuXG4gIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0YVRpdGxlID0gdGhpcy50b29sYmFyU2VydmljZS5nZXREYXRhVGl0bGUoKTtcbiAgICBjb25zdCB0b29sYmFyVGl0bGUgPSB0aGlzLnRvb2xiYXJTZXJ2aWNlLnRvb2xiYXJUaXRsZTtcbiAgICBjb25zdCB0aXRsZSA9ICF0b29sYmFyVGl0bGUgfHwgdG9vbGJhclRpdGxlLmxlbmd0aCA8PSAwID8gdGhpcy50aXRsZVNlcnZpY2UuZ2V0VGl0bGUoKSA6IHRvb2xiYXJUaXRsZTtcbiAgICByZXR1cm4gIWRhdGFUaXRsZSB8fCBkYXRhVGl0bGUubGVuZ3RoIDw9IDAgPyB0aXRsZSA6IHRpdGxlICsgJzogJyArIGRhdGFUaXRsZTtcbiAgfVxuXG4gIGdldFRvb2xiYXJBY3Rpb25zKCk6IFRvb2xiYXJBY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMudG9vbGJhclNlcnZpY2UuZ2V0VG9vbGJhckFjdGlvbnMoKTtcbiAgfVxuXG4gIGdldE1haW5BY3Rpb25zKCk6IE1haW5BY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMudG9vbGJhclNlcnZpY2UuZ2V0TWFpbkFjdGlvbnMoKTtcbiAgfVxuXG4gIGhhc1Blcm1pc3Npb24oYWN0aW9uOiBBY3Rpb24pOiBPYnNlcnZhYmxlPGJvb2xlYW4+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==