@porscheinformatik/material-addons 0.0.35 → 0.0.99

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/README.md +29 -29
  2. package/esm2022/lib/button/button.mjs +7 -0
  3. package/esm2022/lib/button/button.module.mjs +26 -0
  4. package/esm2022/lib/button/danger-button/danger-button.component.mjs +28 -0
  5. package/esm2022/lib/button/flat-button/link-button.component.mjs +28 -0
  6. package/esm2022/lib/button/icon-button/icon-button.component.mjs +28 -0
  7. package/esm2022/lib/button/mad-basic-button.mjs +39 -0
  8. package/esm2022/lib/button/outline-button/outline-button.component.mjs +28 -0
  9. package/esm2022/lib/button/primary-button/primary-button.component.mjs +28 -0
  10. package/esm2022/lib/card/card.component.mjs +129 -0
  11. package/esm2022/lib/card/card.mjs +2 -0
  12. package/esm2022/lib/card/card.module.mjs +23 -0
  13. package/esm2022/lib/content-panel/content-header/content-header.component.mjs +11 -0
  14. package/esm2022/lib/content-panel/content-panel-container/content-panel-container.component.mjs +11 -0
  15. package/esm2022/lib/content-panel/content-panel-container-content/content-panel-container-content.component.mjs +11 -0
  16. package/esm2022/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.mjs +11 -0
  17. package/esm2022/lib/content-panel/content-panel.module.mjs +42 -0
  18. package/esm2022/lib/content-panel/main-container/main-container.component.mjs +11 -0
  19. package/esm2022/lib/data-table/data-table-action-type.mjs +6 -0
  20. package/esm2022/lib/data-table/data-table-action.mjs +2 -0
  21. package/esm2022/lib/data-table/data-table-column-definition.mjs +2 -0
  22. package/esm2022/lib/data-table/data-table-column.mjs +2 -0
  23. package/esm2022/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.mjs +103 -0
  24. package/esm2022/lib/data-table/data-table-row.mjs +2 -0
  25. package/esm2022/lib/data-table/data-table.component.mjs +529 -0
  26. package/esm2022/lib/data-table/data-table.mjs +3 -0
  27. package/esm2022/lib/data-table/data-table.module.mjs +81 -0
  28. package/esm2022/lib/file-upload/drag-and-drop-directive.directive.mjs +61 -0
  29. package/esm2022/lib/file-upload/file-upload.component.mjs +78 -0
  30. package/esm2022/lib/flowbar/flowbar.component.mjs +190 -0
  31. package/esm2022/lib/flowbar/flowbar.module.mjs +19 -0
  32. package/esm2022/lib/material-action-button/material-action-button.component.mjs +34 -0
  33. package/esm2022/lib/material-action-button/material-action-button.module.mjs +22 -0
  34. package/esm2022/lib/material-addons.module.mjs +45 -0
  35. package/esm2022/lib/numeric-field/number-format.service.mjs +139 -0
  36. package/esm2022/lib/numeric-field/numeric-field.directive.mjs +295 -0
  37. package/esm2022/lib/numeric-field/numeric-field.mjs +2 -0
  38. package/esm2022/lib/numeric-field/numeric-field.module.mjs +24 -0
  39. package/esm2022/lib/quick-list/base-quick-list.component.mjs +124 -0
  40. package/esm2022/lib/quick-list/quick-list-compact/quick-list-compact.component.mjs +22 -0
  41. package/esm2022/lib/quick-list/quick-list.component.mjs +23 -0
  42. package/esm2022/lib/quick-list/quick-list.mjs +6 -0
  43. package/esm2022/lib/quick-list/quick-list.module.mjs +46 -0
  44. package/esm2022/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.mjs +22 -0
  45. package/esm2022/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.mjs +22 -0
  46. package/esm2022/lib/readonly/readonly-form-field/readonly-form-field.component.mjs +181 -0
  47. package/esm2022/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.mjs +206 -0
  48. package/esm2022/lib/readonly/readonly-form-field.module.mjs +25 -0
  49. package/esm2022/lib/stepper/mad-stepper-animation.mjs +13 -0
  50. package/esm2022/lib/stepper/step-header/step-header.component.mjs +77 -0
  51. package/esm2022/lib/stepper/stepper.component.mjs +159 -0
  52. package/esm2022/lib/stepper/stepper.module.mjs +23 -0
  53. package/esm2022/lib/table/column-header.mjs +2 -0
  54. package/esm2022/lib/table/table-action.mjs +2 -0
  55. package/esm2022/lib/table/table.component.mjs +130 -0
  56. package/esm2022/lib/table/table.mjs +2 -0
  57. package/esm2022/lib/table/table.module.mjs +56 -0
  58. package/esm2022/lib/throttle-click/throttle-click.directive.mjs +38 -0
  59. package/esm2022/lib/throttle-click/throttle-click.module.mjs +18 -0
  60. package/esm2022/lib/toolbar/toolbar-action.interface.mjs +2 -0
  61. package/esm2022/lib/toolbar/toolbar.component.mjs +78 -0
  62. package/esm2022/lib/toolbar/toolbar.module.mjs +56 -0
  63. package/esm2022/lib/toolbar/toolbar.service.mjs +124 -0
  64. package/esm2022/porscheinformatik-material-addons.mjs +5 -0
  65. package/esm2022/public_api.mjs +42 -0
  66. package/fesm2022/porscheinformatik-material-addons.mjs +3229 -0
  67. package/fesm2022/porscheinformatik-material-addons.mjs.map +1 -0
  68. package/index.d.ts +6 -0
  69. package/lib/button/button.d.ts +7 -0
  70. package/lib/button/button.d.ts.map +1 -0
  71. package/lib/button/button.module.d.ts +17 -0
  72. package/lib/button/button.module.d.ts.map +1 -0
  73. package/lib/button/danger-button/danger-button.component.d.ts +13 -0
  74. package/lib/button/danger-button/danger-button.component.d.ts.map +1 -0
  75. package/lib/button/flat-button/link-button.component.d.ts +13 -0
  76. package/lib/button/flat-button/link-button.component.d.ts.map +1 -0
  77. package/lib/button/icon-button/icon-button.component.d.ts +13 -0
  78. package/lib/button/icon-button/icon-button.component.d.ts.map +1 -0
  79. package/lib/button/mad-basic-button.d.ts +14 -0
  80. package/lib/button/mad-basic-button.d.ts.map +1 -0
  81. package/lib/button/outline-button/outline-button.component.d.ts +13 -0
  82. package/lib/button/outline-button/outline-button.component.d.ts.map +1 -0
  83. package/lib/button/primary-button/primary-button.component.d.ts +13 -0
  84. package/lib/button/primary-button/primary-button.component.d.ts.map +1 -0
  85. package/lib/card/card.component.d.ts +28 -0
  86. package/lib/card/card.component.d.ts.map +1 -0
  87. package/lib/card/card.d.ts +2 -0
  88. package/lib/card/card.d.ts.map +1 -0
  89. package/lib/card/card.module.d.ts +14 -0
  90. package/lib/card/card.module.d.ts.map +1 -0
  91. package/lib/content-panel/content-header/content-header.component.d.ts +6 -0
  92. package/lib/content-panel/content-header/content-header.component.d.ts.map +1 -0
  93. package/lib/content-panel/content-panel-container/content-panel-container.component.d.ts +6 -0
  94. package/lib/content-panel/content-panel-container/content-panel-container.component.d.ts.map +1 -0
  95. package/lib/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts +6 -0
  96. package/lib/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts.map +1 -0
  97. package/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts +6 -0
  98. package/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts.map +1 -0
  99. package/lib/content-panel/content-panel.module.d.ts +13 -0
  100. package/lib/content-panel/content-panel.module.d.ts.map +1 -0
  101. package/lib/content-panel/main-container/main-container.component.d.ts +6 -0
  102. package/lib/content-panel/main-container/main-container.component.d.ts.map +1 -0
  103. package/lib/data-table/data-table-action-type.d.ts +6 -0
  104. package/lib/data-table/data-table-action-type.d.ts.map +1 -0
  105. package/lib/data-table/data-table-action.d.ts +8 -0
  106. package/lib/data-table/data-table-action.d.ts.map +1 -0
  107. package/lib/data-table/data-table-column-definition.d.ts +28 -0
  108. package/lib/data-table/data-table-column-definition.d.ts.map +1 -0
  109. package/lib/data-table/data-table-column.d.ts +11 -0
  110. package/lib/data-table/data-table-column.d.ts.map +1 -0
  111. package/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.d.ts +27 -0
  112. package/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.d.ts.map +1 -0
  113. package/lib/data-table/data-table-row.d.ts +7 -0
  114. package/lib/data-table/data-table-row.d.ts.map +1 -0
  115. package/lib/data-table/data-table.component.d.ts +123 -0
  116. package/lib/data-table/data-table.component.d.ts.map +1 -0
  117. package/lib/data-table/data-table.d.ts +6 -0
  118. package/lib/data-table/data-table.d.ts.map +1 -0
  119. package/lib/data-table/data-table.module.d.ts +25 -0
  120. package/lib/data-table/data-table.module.d.ts.map +1 -0
  121. package/lib/file-upload/drag-and-drop-directive.directive.d.ts +13 -0
  122. package/lib/file-upload/drag-and-drop-directive.directive.d.ts.map +1 -0
  123. package/lib/file-upload/file-upload.component.d.ts +22 -0
  124. package/lib/file-upload/file-upload.component.d.ts.map +1 -0
  125. package/lib/flowbar/flowbar.component.d.ts +47 -0
  126. package/lib/flowbar/flowbar.component.d.ts.map +1 -0
  127. package/lib/flowbar/flowbar.module.d.ts +10 -0
  128. package/lib/flowbar/flowbar.module.d.ts.map +1 -0
  129. package/lib/material-action-button/material-action-button.component.d.ts +12 -8
  130. package/lib/material-action-button/material-action-button.component.d.ts.map +1 -0
  131. package/lib/material-action-button/material-action-button.module.d.ts +13 -2
  132. package/lib/material-action-button/material-action-button.module.d.ts.map +1 -0
  133. package/lib/material-addons.module.d.ts +15 -2
  134. package/lib/material-addons.module.d.ts.map +1 -0
  135. package/lib/numeric-field/number-format.service.d.ts +31 -0
  136. package/lib/numeric-field/number-format.service.d.ts.map +1 -0
  137. package/lib/numeric-field/numeric-field.d.ts +2 -0
  138. package/lib/numeric-field/numeric-field.d.ts.map +1 -0
  139. package/lib/numeric-field/numeric-field.directive.d.ts +45 -0
  140. package/lib/numeric-field/numeric-field.directive.d.ts.map +1 -0
  141. package/lib/numeric-field/numeric-field.module.d.ts +10 -0
  142. package/lib/numeric-field/numeric-field.module.d.ts.map +1 -0
  143. package/lib/quick-list/base-quick-list.component.d.ts +41 -0
  144. package/lib/quick-list/base-quick-list.component.d.ts.map +1 -0
  145. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts +12 -0
  146. package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts.map +1 -0
  147. package/lib/quick-list/quick-list.component.d.ts +12 -0
  148. package/lib/quick-list/quick-list.component.d.ts.map +1 -0
  149. package/lib/quick-list/quick-list.d.ts +6 -0
  150. package/lib/quick-list/quick-list.d.ts.map +1 -0
  151. package/lib/quick-list/quick-list.module.d.ts +17 -0
  152. package/lib/quick-list/quick-list.module.d.ts.map +1 -0
  153. package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts +12 -0
  154. package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts.map +1 -0
  155. package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts +12 -0
  156. package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts.map +1 -0
  157. package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts +56 -14
  158. package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts.map +1 -0
  159. package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts +89 -31
  160. package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts.map +1 -0
  161. package/lib/readonly/readonly-form-field.module.d.ts +16 -2
  162. package/lib/readonly/readonly-form-field.module.d.ts.map +1 -0
  163. package/lib/stepper/mad-stepper-animation.d.ts +8 -0
  164. package/lib/stepper/mad-stepper-animation.d.ts.map +1 -0
  165. package/lib/stepper/step-header/step-header.component.d.ts +27 -0
  166. package/lib/stepper/step-header/step-header.component.d.ts.map +1 -0
  167. package/lib/stepper/stepper.component.d.ts +53 -0
  168. package/lib/stepper/stepper.component.d.ts.map +1 -0
  169. package/lib/stepper/stepper.module.d.ts +14 -0
  170. package/lib/stepper/stepper.module.d.ts.map +1 -0
  171. package/lib/table/column-header.d.ts +8 -0
  172. package/lib/table/column-header.d.ts.map +1 -0
  173. package/lib/table/table-action.d.ts +6 -0
  174. package/lib/table/table-action.d.ts.map +1 -0
  175. package/lib/table/table.component.d.ts +43 -0
  176. package/lib/table/table.component.d.ts.map +1 -0
  177. package/lib/table/table.d.ts +4 -0
  178. package/lib/table/table.d.ts.map +1 -0
  179. package/lib/table/table.module.d.ts +18 -0
  180. package/lib/table/table.module.d.ts.map +1 -0
  181. package/lib/throttle-click/throttle-click.directive.d.ts +14 -0
  182. package/lib/throttle-click/throttle-click.directive.d.ts.map +1 -0
  183. package/lib/throttle-click/throttle-click.module.d.ts +9 -0
  184. package/lib/throttle-click/throttle-click.module.d.ts.map +1 -0
  185. package/lib/toolbar/toolbar-action.interface.d.ts +28 -18
  186. package/lib/toolbar/toolbar-action.interface.d.ts.map +1 -0
  187. package/lib/toolbar/toolbar.component.d.ts +28 -19
  188. package/lib/toolbar/toolbar.component.d.ts.map +1 -0
  189. package/lib/toolbar/toolbar.module.d.ts +18 -2
  190. package/lib/toolbar/toolbar.module.d.ts.map +1 -0
  191. package/lib/toolbar/toolbar.service.d.ts +44 -33
  192. package/lib/toolbar/toolbar.service.d.ts.map +1 -0
  193. package/package.json +29 -24
  194. package/porscheinformatik-material-addons.d.ts.map +1 -0
  195. package/public_api.d.ts +39 -0
  196. package/public_api.d.ts.map +1 -0
  197. package/themes/common/styles.scss +359 -303
  198. package/themes/pbv.scss +64 -56
  199. package/themes/poa.scss +64 -40
  200. package/bundles/porscheinformatik-material-addons.umd.js +0 -755
  201. package/esm2015/lib/material-action-button/material-action-button.component.js +0 -43
  202. package/esm2015/lib/material-action-button/material-action-button.module.js +0 -19
  203. package/esm2015/lib/material-addons.module.js +0 -16
  204. package/esm2015/lib/readonly/readonly-form-field/readonly-form-field.component.js +0 -61
  205. package/esm2015/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.js +0 -124
  206. package/esm2015/lib/readonly/readonly-form-field.module.js +0 -20
  207. package/esm2015/lib/toolbar/toolbar-action.interface.js +0 -47
  208. package/esm2015/lib/toolbar/toolbar.component.js +0 -112
  209. package/esm2015/lib/toolbar/toolbar.module.js +0 -29
  210. package/esm2015/lib/toolbar/toolbar.service.js +0 -197
  211. package/esm2015/porscheinformatik-material-addons.js +0 -9
  212. package/esm2015/public-api.js +0 -18
  213. package/esm5/lib/material-action-button/material-action-button.component.js +0 -45
  214. package/esm5/lib/material-action-button/material-action-button.module.js +0 -23
  215. package/esm5/lib/material-addons.module.js +0 -20
  216. package/esm5/lib/readonly/readonly-form-field/readonly-form-field.component.js +0 -67
  217. package/esm5/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.js +0 -145
  218. package/esm5/lib/readonly/readonly-form-field.module.js +0 -24
  219. package/esm5/lib/toolbar/toolbar-action.interface.js +0 -47
  220. package/esm5/lib/toolbar/toolbar.component.js +0 -131
  221. package/esm5/lib/toolbar/toolbar.module.js +0 -33
  222. package/esm5/lib/toolbar/toolbar.service.js +0 -245
  223. package/esm5/porscheinformatik-material-addons.js +0 -9
  224. package/esm5/public-api.js +0 -18
  225. package/porscheinformatik-material-addons.d.ts +0 -4
  226. package/porscheinformatik-material-addons.metadata.json +0 -1
  227. package/public-api.d.ts +0 -10
@@ -0,0 +1,3 @@
1
+ export * from './data-table-columns-modal/data-table-columns-modal.component';
2
+ export { DataTableComponent } from './data-table.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLCtEQUErRCxDQUFDO0FBRzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRGF0YVRhYmxlQ29sdW1uIH0gZnJvbSAnLi9kYXRhLXRhYmxlLWNvbHVtbic7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdGFibGUtY29sdW1ucy1tb2RhbC9kYXRhLXRhYmxlLWNvbHVtbnMtbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB7IERhdGFUYWJsZUFjdGlvbiB9IGZyb20gJy4vZGF0YS10YWJsZS1hY3Rpb24nO1xuZXhwb3J0IHsgRGF0YVRhYmxlQ29sdW1uRGVmaW5pdGlvbiB9IGZyb20gJy4vZGF0YS10YWJsZS1jb2x1bW4tZGVmaW5pdGlvbic7XG5leHBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,81 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatIconModule } from '@angular/material/icon';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatMenuModule } from '@angular/material/menu';
6
+ import { MatFormFieldModule } from '@angular/material/form-field';
7
+ import { MatInputModule } from '@angular/material/input';
8
+ import { MatTableModule } from '@angular/material/table';
9
+ import { MatSortModule } from '@angular/material/sort';
10
+ import { MatPaginatorModule } from '@angular/material/paginator';
11
+ import { DataTableComponent } from './data-table.component';
12
+ import { ButtonModule } from '../button/button.module';
13
+ import { TranslateModule } from '@ngx-translate/core';
14
+ import { MatCheckboxModule } from '@angular/material/checkbox';
15
+ import { MatBadgeModule } from '@angular/material/badge';
16
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
17
+ import { DataTableColumnsModalComponent } from './data-table-columns-modal/data-table-columns-modal.component';
18
+ import { DragDropModule } from '@angular/cdk/drag-drop';
19
+ import { FormsModule } from '@angular/forms';
20
+ import * as i0 from "@angular/core";
21
+ export class DataTableModule {
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DataTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: DataTableModule, declarations: [DataTableComponent, DataTableColumnsModalComponent], imports: [CommonModule,
24
+ MatButtonModule,
25
+ MatIconModule,
26
+ MatFormFieldModule,
27
+ MatInputModule,
28
+ MatMenuModule,
29
+ MatPaginatorModule,
30
+ MatSortModule,
31
+ MatTableModule,
32
+ MatProgressSpinnerModule,
33
+ ButtonModule,
34
+ TranslateModule,
35
+ MatCheckboxModule,
36
+ MatBadgeModule,
37
+ DragDropModule,
38
+ FormsModule], exports: [DataTableComponent, DataTableColumnsModalComponent] }); }
39
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DataTableModule, imports: [CommonModule,
40
+ MatButtonModule,
41
+ MatIconModule,
42
+ MatFormFieldModule,
43
+ MatInputModule,
44
+ MatMenuModule,
45
+ MatPaginatorModule,
46
+ MatSortModule,
47
+ MatTableModule,
48
+ MatProgressSpinnerModule,
49
+ ButtonModule,
50
+ TranslateModule,
51
+ MatCheckboxModule,
52
+ MatBadgeModule,
53
+ DragDropModule,
54
+ FormsModule] }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DataTableModule, decorators: [{
57
+ type: NgModule,
58
+ args: [{
59
+ declarations: [DataTableComponent, DataTableColumnsModalComponent],
60
+ imports: [
61
+ CommonModule,
62
+ MatButtonModule,
63
+ MatIconModule,
64
+ MatFormFieldModule,
65
+ MatInputModule,
66
+ MatMenuModule,
67
+ MatPaginatorModule,
68
+ MatSortModule,
69
+ MatTableModule,
70
+ MatProgressSpinnerModule,
71
+ ButtonModule,
72
+ TranslateModule,
73
+ MatCheckboxModule,
74
+ MatBadgeModule,
75
+ DragDropModule,
76
+ FormsModule,
77
+ ],
78
+ exports: [DataTableComponent, DataTableColumnsModalComponent],
79
+ }]
80
+ }] });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9kYXRhLXRhYmxlL2RhdGEtdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQy9HLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBd0I3QyxNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsaUJBckJYLGtCQUFrQixFQUFFLDhCQUE4QixhQUUvRCxZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsWUFBWTtZQUNaLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGNBQWM7WUFDZCxXQUFXLGFBRUgsa0JBQWtCLEVBQUUsOEJBQThCOytHQUVqRCxlQUFlLFlBbkJ4QixZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsWUFBWTtZQUNaLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGNBQWM7WUFDZCxXQUFXOzsyRkFJRixlQUFlO2tCQXRCM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSw4QkFBOEIsQ0FBQztvQkFDbEUsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLFdBQVc7cUJBQ1o7b0JBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsOEJBQThCLENBQUM7aUJBQzlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IERhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW5zTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUtY29sdW1ucy1tb2RhbC9kYXRhLXRhYmxlLWNvbHVtbnMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRGF0YVRhYmxlQ29tcG9uZW50LCBEYXRhVGFibGVDb2x1bW5zTW9kYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbRGF0YVRhYmxlQ29tcG9uZW50LCBEYXRhVGFibGVDb2x1bW5zTW9kYWxDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { Directive, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DragAndDropDirectiveDirective {
4
+ constructor() {
5
+ this.onFileDropped = new EventEmitter();
6
+ this.background = '$background-color';
7
+ this.opacity = '1';
8
+ }
9
+ //Dragover listener
10
+ onDragOver(event) {
11
+ event.preventDefault();
12
+ event.stopPropagation();
13
+ this.background = '$selection-background';
14
+ this.opacity = '0.8';
15
+ }
16
+ //Dragleave listener
17
+ onDragLeave(event) {
18
+ event.preventDefault();
19
+ event.stopPropagation();
20
+ this.background = '$background-color';
21
+ this.opacity = '1';
22
+ }
23
+ //Drop listener
24
+ ondrop(event) {
25
+ event.preventDefault();
26
+ event.stopPropagation();
27
+ this.background = '$background-color';
28
+ this.opacity = '1';
29
+ let files = event.dataTransfer.files;
30
+ if (files.length > 0) {
31
+ this.onFileDropped.emit(files);
32
+ }
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DragAndDropDirectiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: DragAndDropDirectiveDirective, isStandalone: true, selector: "[madDragAndDrop]", outputs: { onFileDropped: "onFileDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "ondrop($event)" }, properties: { "style.background-color": "this.background", "style.opacity": "this.opacity" } }, ngImport: i0 }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DragAndDropDirectiveDirective, decorators: [{
38
+ type: Directive,
39
+ args: [{
40
+ selector: '[madDragAndDrop]',
41
+ standalone: true,
42
+ }]
43
+ }], propDecorators: { onFileDropped: [{
44
+ type: Output
45
+ }], background: [{
46
+ type: HostBinding,
47
+ args: ['style.background-color']
48
+ }], opacity: [{
49
+ type: HostBinding,
50
+ args: ['style.opacity']
51
+ }], onDragOver: [{
52
+ type: HostListener,
53
+ args: ['dragover', ['$event']]
54
+ }], onDragLeave: [{
55
+ type: HostListener,
56
+ args: ['dragleave', ['$event']]
57
+ }], ondrop: [{
58
+ type: HostListener,
59
+ args: ['drop', ['$event']]
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1kaXJlY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmlsZS11cGxvYWQvZHJhZy1hbmQtZHJvcC1kaXJlY3RpdmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zRixNQUFNLE9BQU8sNkJBQTZCO0lBSjFDO1FBTUUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRU8sZUFBVSxHQUFHLG1CQUFtQixDQUFDO1FBQzFDLFlBQU8sR0FBRyxHQUFHLENBQUM7S0E4QnJEO0lBNUJDLG1CQUFtQjtJQUNtQixVQUFVLENBQUMsS0FBVTtRQUN6RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsdUJBQXVCLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELG9CQUFvQjtJQUNtQixXQUFXLENBQUMsS0FBVTtRQUMzRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUVELGVBQWU7SUFFUixNQUFNLENBQUMsS0FBVTtRQUN0QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbkIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDckMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7OEdBbENVLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFHQyxhQUFhO3NCQURaLE1BQU07Z0JBR3dDLFVBQVU7c0JBQXhELFdBQVc7dUJBQUMsd0JBQXdCO2dCQUNDLE9BQU87c0JBQTVDLFdBQVc7dUJBQUMsZUFBZTtnQkFHVSxVQUFVO3NCQUEvQyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRRyxXQUFXO3NCQUFqRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTOUIsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hZERyYWdBbmREcm9wXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyYWdBbmREcm9wRGlyZWN0aXZlRGlyZWN0aXZlIHtcbiAgQE91dHB1dCgpXG4gIG9uRmlsZURyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmQtY29sb3InKSBwcml2YXRlIGJhY2tncm91bmQgPSAnJGJhY2tncm91bmQtY29sb3InO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm9wYWNpdHknKSBwcml2YXRlIG9wYWNpdHkgPSAnMSc7XG5cbiAgLy9EcmFnb3ZlciBsaXN0ZW5lclxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pIG9uRHJhZ092ZXIoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5iYWNrZ3JvdW5kID0gJyRzZWxlY3Rpb24tYmFja2dyb3VuZCc7XG4gICAgdGhpcy5vcGFjaXR5ID0gJzAuOCc7XG4gIH1cblxuICAvL0RyYWdsZWF2ZSBsaXN0ZW5lclxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKSBvbkRyYWdMZWF2ZShldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmJhY2tncm91bmQgPSAnJGJhY2tncm91bmQtY29sb3InO1xuICAgIHRoaXMub3BhY2l0eSA9ICcxJztcbiAgfVxuXG4gIC8vRHJvcCBsaXN0ZW5lclxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uZHJvcChldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmJhY2tncm91bmQgPSAnJGJhY2tncm91bmQtY29sb3InO1xuICAgIHRoaXMub3BhY2l0eSA9ICcxJztcbiAgICBsZXQgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25GaWxlRHJvcHBlZC5lbWl0KGZpbGVzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatCardModule } from '@angular/material/card';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import { ButtonModule } from '../button/button.module';
7
+ import { DragAndDropDirectiveDirective } from './drag-and-drop-directive.directive';
8
+ import { MatChipsModule } from '@angular/material/chips';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ import * as i2 from "@angular/material/card";
12
+ import * as i3 from "@angular/material/icon";
13
+ import * as i4 from "@angular/material/chips";
14
+ export class FileUploadComponent {
15
+ constructor() {
16
+ this.showFileList = false;
17
+ this.fileEmitter = new EventEmitter();
18
+ this.errorEmitter = new EventEmitter();
19
+ this.fileList = [];
20
+ this.acceptForInput = [];
21
+ this.uploadError = false;
22
+ }
23
+ ngOnInit() {
24
+ if (this.accept?.length) {
25
+ this.accept.forEach((accepted) => this.acceptForInput.push(`.${accepted}`));
26
+ }
27
+ }
28
+ uploadFile(fileList) {
29
+ if (!this.multiple && (fileList.length > 1 || this.fileList.length === 1)) {
30
+ this.errorEmitter.emit('ONLY_SINGLE_FILE');
31
+ this.uploadError = false;
32
+ return;
33
+ }
34
+ if (this.accept && this.accept.length > 0) {
35
+ for (let i = 0; i < fileList.length; i++) {
36
+ this.getFileEnding(fileList.item(i).name);
37
+ }
38
+ }
39
+ if (!this.uploadError) {
40
+ for (let i = 0; i < fileList.length; i++) {
41
+ this.fileList.push(fileList.item(i));
42
+ }
43
+ this.fileEmitter.emit(fileList);
44
+ }
45
+ this.uploadError = false;
46
+ }
47
+ getFileEnding(name) {
48
+ const ending = name.substring(name.lastIndexOf('.') + 1);
49
+ if (this.accept.filter((a) => a.toLowerCase() === ending.toLowerCase()).length === 0) {
50
+ this.errorEmitter.emit('FILETYPE_NOT_SUPPORTED');
51
+ this.uploadError = true;
52
+ }
53
+ }
54
+ openFile(file) {
55
+ window.open(window.URL.createObjectURL(file));
56
+ }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: FileUploadComponent, isStandalone: true, selector: "mad-file-upload", inputs: { id: "id", multiple: "multiple", accept: "accept", text: "text", showFileList: "showFileList" }, outputs: { fileEmitter: "fileEmitter", errorEmitter: "errorEmitter" }, ngImport: i0, template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"acceptForInput\"\n [id]=\"id\"\n [multiple]=\"multiple\"\n hidden\n type=\"file\"\n />\n <mat-card-content>\n <mat-icon>vertical_align_top</mat-icon>\n {{ text ? text : 'Upload' }}\n </mat-card-content>\n</mat-card>\n\n<ng-container *ngIf=\"showFileList\">\n <mat-chip-listbox>\n <mat-chip *ngFor=\"let file of fileList\" (click)=\"openFile(file)\" class=\"download\">{{ file.name }}</mat-chip>\n </mat-chip-listbox>\n</ng-container>\n", styles: [".uploadFileContainer{background-repeat:no-repeat;background-position:center;height:100px;margin:0;border:2px dashed var(--main-primary)}.uploadFileContainer:hover{cursor:pointer;background-color:var(--selection-background)!important;opacity:.8}.uploadFileContainer,.mat-mdc-card-content{display:flex;justify-content:center;align-items:center}.download{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: DragAndDropDirectiveDirective, selector: "[madDragAndDrop]", outputs: ["onFileDropped"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "role", "id", "aria-label", "aria-description", "value", "removable", "highlighted"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }] }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FileUploadComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ selector: 'mad-file-upload', standalone: true, imports: [CommonModule, MatCardModule, MatIconModule, ButtonModule, TranslateModule, DragAndDropDirectiveDirective, MatChipsModule], template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"acceptForInput\"\n [id]=\"id\"\n [multiple]=\"multiple\"\n hidden\n type=\"file\"\n />\n <mat-card-content>\n <mat-icon>vertical_align_top</mat-icon>\n {{ text ? text : 'Upload' }}\n </mat-card-content>\n</mat-card>\n\n<ng-container *ngIf=\"showFileList\">\n <mat-chip-listbox>\n <mat-chip *ngFor=\"let file of fileList\" (click)=\"openFile(file)\" class=\"download\">{{ file.name }}</mat-chip>\n </mat-chip-listbox>\n</ng-container>\n", styles: [".uploadFileContainer{background-repeat:no-repeat;background-position:center;height:100px;margin:0;border:2px dashed var(--main-primary)}.uploadFileContainer:hover{cursor:pointer;background-color:var(--selection-background)!important;opacity:.8}.uploadFileContainer,.mat-mdc-card-content{display:flex;justify-content:center;align-items:center}.download{width:100%}\n"] }]
63
+ }], propDecorators: { id: [{
64
+ type: Input
65
+ }], multiple: [{
66
+ type: Input
67
+ }], accept: [{
68
+ type: Input
69
+ }], text: [{
70
+ type: Input
71
+ }], showFileList: [{
72
+ type: Input
73
+ }], fileEmitter: [{
74
+ type: Output
75
+ }], errorEmitter: [{
76
+ type: Output
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBV3pELE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFZVyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM3QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDM0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBRXpELGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7S0F1Q3RDO0lBckNDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxN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QUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgRHJhZ0FuZERyb3BEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuL2RyYWctYW5kLWRyb3AtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcblxuZXhwb3J0IHR5cGUgVXBsb2FkRXJyb3IgPSAnT05MWV9TSU5HTEVfRklMRScgfCAnRklMRVRZUEVfTk9UX1NVUFBPUlRFRCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1maWxlLXVwbG9hZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdENhcmRNb2R1bGUsIE1hdEljb25Nb2R1bGUsIEJ1dHRvbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBEcmFnQW5kRHJvcERpcmVjdGl2ZURpcmVjdGl2ZSwgTWF0Q2hpcHNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmdbXTtcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93RmlsZUxpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIGZpbGVFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlTGlzdD4oKTtcbiAgQE91dHB1dCgpIGVycm9yRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8VXBsb2FkRXJyb3I+KCk7XG5cbiAgZmlsZUxpc3Q6IEZpbGVbXSA9IFtdO1xuICBhY2NlcHRGb3JJbnB1dDogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSB1cGxvYWRFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjY2VwdD8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFjY2VwdC5mb3JFYWNoKChhY2NlcHRlZCkgPT4gdGhpcy5hY2NlcHRGb3JJbnB1dC5wdXNoKGAuJHthY2NlcHRlZH1gKSk7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkRmlsZShmaWxlTGlzdDogRmlsZUxpc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUgJiYgKGZpbGVMaXN0Lmxlbmd0aCA+IDEgfHwgdGhpcy5maWxlTGlzdC5sZW5ndGggPT09IDEpKSB7XG4gICAgICB0aGlzLmVycm9yRW1pdHRlci5lbWl0KCdPTkxZX1NJTkdMRV9GSUxFJyk7XG4gICAgICB0aGlzLnVwbG9hZEVycm9yID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmFjY2VwdCAmJiB0aGlzLmFjY2VwdC5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuZ2V0RmlsZUVuZGluZyhmaWxlTGlzdC5pdGVtKGkpLm5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRoaXMudXBsb2FkRXJyb3IpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5maWxlTGlzdC5wdXNoKGZpbGVMaXN0Lml0ZW0oaSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5maWxlRW1pdHRlci5lbWl0KGZpbGVMaXN0KTtcbiAgICB9XG4gICAgdGhpcy51cGxvYWRFcnJvciA9IGZhbHNlO1xuICB9XG5cbiAgZ2V0RmlsZUVuZGluZyhuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlbmRpbmcgPSBuYW1lLnN1YnN0cmluZyhuYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxKTtcbiAgICBpZiAodGhpcy5hY2NlcHQuZmlsdGVyKChhKSA9PiBhLnRvTG93ZXJDYXNlKCkgPT09IGVuZGluZy50b0xvd2VyQ2FzZSgpKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JFbWl0dGVyLmVtaXQoJ0ZJTEVUWVBFX05PVF9TVVBQT1JURUQnKTtcbiAgICAgIHRoaXMudXBsb2FkRXJyb3IgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5GaWxlKGZpbGU6IEZpbGUpIHtcbiAgICB3aW5kb3cub3Blbih3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKSk7XG4gIH1cbn1cbiIsIjxtYXQtY2FyZFxuICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICAob25GaWxlRHJvcHBlZCk9XCJ1cGxvYWRGaWxlKCRldmVudClcIlxuICBjbGFzcz1cInVwbG9hZEZpbGVDb250YWluZXJcIlxuICBtYWREcmFnQW5kRHJvcFxuICBpZD1cInVwbG9hZEZpbGVDb250YWluZXJcIlxuPlxuICA8aW5wdXRcbiAgICAjZmlsZUlucHV0XG4gICAgKGNoYW5nZSk9XCJ1cGxvYWRGaWxlKCRldmVudC50YXJnZXQuZmlsZXMpXCJcbiAgICAoY2xpY2spPVwiZmlsZUlucHV0LnZhbHVlID0gbnVsbFwiXG4gICAgW2FjY2VwdF09XCJhY2NlcHRGb3JJbnB1dFwiXG4gICAgW2lkXT1cImlkXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgIGhpZGRlblxuICAgIHR5cGU9XCJmaWxlXCJcbiAgLz5cbiAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPG1hdC1pY29uPnZlcnRpY2FsX2FsaWduX3RvcDwvbWF0LWljb24+XG4gICAge3sgdGV4dCA/IHRleHQgOiAnVXBsb2FkJyB9fVxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG48L21hdC1jYXJkPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ZpbGVMaXN0XCI+XG4gIDxtYXQtY2hpcC1saXN0Ym94PlxuICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlTGlzdFwiIChjbGljayk9XCJvcGVuRmlsZShmaWxlKVwiIGNsYXNzPVwiZG93bmxvYWRcIj57eyBmaWxlLm5hbWUgfX08L21hdC1jaGlwPlxuICA8L21hdC1jaGlwLWxpc3Rib3g+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvd2Jhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9mbG93YmFyL2Zsb3diYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmxvd2Jhci9mbG93YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWV6RyxNQUFNLE9BQU8sZ0JBQWdCO0lBTDdCO1FBTWtCLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFFVCxzQkFBaUIsR0FBd0IsSUFBSSxZQUFZLENBQVEsSUFBSSxDQUFDLENBQUM7UUFDbkc7Ozs7V0FJRztRQUNvQixpQkFBWSxHQUF3QixJQUFJLFlBQVksQ0FBUSxJQUFJLENBQUMsQ0FBQztLQTRLMUY7SUF6S0MsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7UUFDTixxR0FBcUc7UUFDckcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRTtZQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQiwwRUFBMEU7Z0JBQzFFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUN6RjtnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMvQztTQUNGO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixHQUFHLEdBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUN2RCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxPQUFPLGFBQWEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDbEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVc7UUFDMUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUU7WUFDL0IsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDbEc7U0FDRjtRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxJQUFXO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBYztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7SUFDM0MsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQzlCLDRGQUE0RjtZQUM1RixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUN6RCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUMzRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUN2RTtpQkFBTTtnQkFDTCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDdkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzlFO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQzFCLHVGQUF1RjtZQUN2RixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFO2dCQUN4RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQzthQUNuRTtpQkFBTTtnQkFDTCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDdkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzlFO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUN6RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFO2dCQUN4RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDaEY7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFO2dCQUMvQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVLEVBQUUsSUFBVztRQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyw0Q0FBNEM7UUFDckUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVPLGNBQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRU8sd0JBQXdCLENBQUMsS0FBYTtRQUM1Qyx3Q0FBd0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDO0lBQ2hGLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxLQUFhO1FBQzdDLHdDQUF3QztRQUN4QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxTQUFTLENBQUM7SUFDckcsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO2FBQ2YsT0FBTyxFQUFFO2FBQ1QsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs4R0FwTFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsNlRDZjdCLDJoQkFVQTs7MkZES2EsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7OEJBS1AsTUFBTTtzQkFBckIsS0FBSzt1QkFBQyxPQUFPO2dCQUNPLFdBQVc7c0JBQS9CLEtBQUs7dUJBQUMsWUFBWTtnQkFDUyxpQkFBaUI7c0JBQTVDLE1BQU07dUJBQUMsa0JBQWtCO2dCQU1ILFlBQVk7c0JBQWxDLE1BQU07dUJBQUMsYUFBYTtnQkFDUyxPQUFPO3NCQUFwQyxTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFN0ZXBwZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBJU3RlcCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBzdWJTdGVwcz86IElTdGVwW107XG4gIGFjdGl2ZVN1YlN0ZXA/OiBJU3RlcDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLWZsb3diYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxvd2Jhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zsb3diYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmxvd2JhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgnc3RlcHMnKSBfc3RlcHM6IElTdGVwW10gPSBbXTtcbiAgQElucHV0KCdhY3RpdmVTdGVwJykgX2FjdGl2ZVN0ZXA6IElTdGVwO1xuICBAT3V0cHV0KCdhY3RpdmVTdGVwQ2hhbmdlJykgX2FjdGl2ZVN0ZXBDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJU3RlcD4gPSBuZXcgRXZlbnRFbWl0dGVyPElTdGVwPih0cnVlKTtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHN0ZXAgaGVhZGVyIGlzIGNsaWNrZWQuXG4gICAqIFdoZW4gZGVmaW5lZCBoZWFkZXIgbmF2aWdhdGlvbiBoYXMgdG8gYmUgaW1wbGVtZW50ZWQgcHJvZ3JhbW1hdGljYWxseS5cbiAgICogZS5nLiB7QHNlZSBjaGFuZ2VBY3RpdmVTdGVwT25IZWFkZXJ9XG4gICAqL1xuICBAT3V0cHV0KCdoZWFkZXJDbGljaycpIF9oZWFkZXJDbGljazogRXZlbnRFbWl0dGVyPElTdGVwPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVN0ZXA+KHRydWUpO1xuICBAVmlld0NoaWxkKCdzdGVwcGVyJykgcHJpdmF0ZSBzdGVwcGVyOiBNYXRTdGVwcGVyO1xuXG4gIGdldCBjdXJyZW50U3RlcExhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVN0ZXAubGFiZWw7XG4gIH1cblxuICBnZXQgY3VycmVudFN1YlN0ZXBMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXA/LmxhYmVsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gSWYgbm8gYWN0aXZlIHN0ZXAgaXMgc2V0IGFzIGlucHV0IG9yIHRoZSBhY3RpdmUgc3RlcCBpcyBub3QgZW5hYmxlZCwgc2VsZWN0IHRoZSBmaXJzdCBlbmFibGVkIHN0ZXBcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZVN0ZXAgfHwgIXRoaXMuX2FjdGl2ZVN0ZXAuZW5hYmxlZCkge1xuICAgICAgdGhpcy5fYWN0aXZlU3RlcCA9IHRoaXMuX3N0ZXBzLmZpbmQoKHN0ZXApID0+IHN0ZXAuZW5hYmxlZCk7XG4gICAgICBpZiAodGhpcy5fYWN0aXZlU3RlcCkge1xuICAgICAgICAvLyBJZiBzdWIgc3RlcHMgZXhpc3QgdGhlbiBzZXQgdGhlIGZpcnN0IG5vbiBkaXNhYmxlZCBzdWIgc3RlcCBwZXIgZGVmYXVsdFxuICAgICAgICBpZiAodGhpcy5hY3RpdmVUYWJIYXNTdWJTdGVwcygpKSB7XG4gICAgICAgICAgdGhpcy5fYWN0aXZlU3RlcC5hY3RpdmVTdWJTdGVwID0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcy5maW5kKChzdGVwKSA9PiBzdGVwLmVuYWJsZWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FjdGl2ZVN0ZXBDaGFuZ2UuZW1pdCh0aGlzLl9hY3RpdmVTdGVwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcGVyLl9nZXRJbmRpY2F0b3JUeXBlID0gKCk6IGFueSA9PiAnbnVtYmVyJztcbiAgfVxuXG4gIGdldEluZGV4Rm9yQWN0aXZlU3RlcCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB0aGlzLl9zdGVwcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVN0ZXApO1xuICAgIHJldHVybiBzZWxlY3RlZEluZGV4ID09PSAtMSA/IDAgOiBzZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgY2hhbmdlQWN0aXZlU3RlcChzdGVwOiBJU3RlcCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSB0aGlzLl9zdGVwcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVN0ZXApO1xuICAgIHRoaXMuX2FjdGl2ZVN0ZXAgPSBzdGVwO1xuICAgIGlmICh0aGlzLmFjdGl2ZVRhYkhhc1N1YlN0ZXBzKCkpIHtcbiAgICAgIGlmIChwcmV2aW91c0luZGV4IDwgdGhpcy5fc3RlcHMuaW5kZXhPZih0aGlzLl9hY3RpdmVTdGVwKSkge1xuICAgICAgICB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXAgPSB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlU3RlcC5hY3RpdmVTdWJTdGVwID0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwc1t0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzLmxlbmd0aCAtIDFdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9hY3RpdmVTdGVwQ2hhbmdlLmVtaXQodGhpcy5fYWN0aXZlU3RlcCk7XG4gIH1cblxuICBjaGFuZ2VBY3RpdmVTdGVwT25IZWFkZXIoc3RlcDogSVN0ZXApOiB2b2lkIHtcbiAgICBjb25zdCBzdGVwSW5kZXggPSB0aGlzLl9zdGVwcy5pbmRleE9mKHN0ZXApO1xuICAgIHRoaXMuX2FjdGl2ZVN0ZXAgPSBzdGVwO1xuICAgIHRoaXMuc3RlcHBlci5zZWxlY3RlZCA9IHRoaXMuc3RlcHBlci5fc3RlcHMuZmluZCgoXywgaSkgPT4gaSA9PT0gc3RlcEluZGV4KTtcbiAgfVxuXG4gIGNoYW5nZUFjdGl2ZVN1YlN0ZXAoc3ViU3RlcDogSVN0ZXApOiB2b2lkIHtcbiAgICB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXAgPSBzdWJTdGVwO1xuICB9XG5cbiAgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNQcmV2aW91c0F2YWlsYWJsZSgpKSB7XG4gICAgICAvLyBJZiBhY3RpdmUgc3RlcCBoYXMgbm8gc3ViIHN0ZXBzIG9yIGZpcnN0IHN1YiBzdGVwIGlzIHNlbGVjdGVkIC0+IGdvIHRvIHByZXZpb3VzIG1haW4gc3RlcFxuICAgICAgaWYgKCF0aGlzLmFjdGl2ZVRhYkhhc1N1YlN0ZXBzKCkgfHwgdGhpcy5pc0ZpcnN0U3ViU3RlcCgpKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzRW5hYmxlZFN0ZXAgPSB0aGlzLmZpbmRQcmV2aW91c0VuYWJsZWRTdGVwKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlQWN0aXZlU3RlcChwcmV2aW91c0VuYWJsZWRTdGVwKTtcbiAgICAgICAgdGhpcy5zdGVwcGVyLnNlbGVjdGVkSW5kZXggPSB0aGlzLl9zdGVwcy5pbmRleE9mKHByZXZpb3VzRW5hYmxlZFN0ZXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3ViU3RlcEluZGV4ID0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCk7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCA9IHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHNbc3ViU3RlcEluZGV4IC0gMV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc05leHRBdmFpbGFibGUoKSkge1xuICAgICAgLy8gSWYgYWN0aXZlIHN0ZXAgaGFzIG5vIHN1YiBzdGVwcyBvciBsYXN0IHN1YiBzdGVwIGlzIHNlbGVjdGVkIC0+IGdvIHRvIG5leHQgbWFpbiBzdGVwXG4gICAgICBpZiAoIXRoaXMuYWN0aXZlVGFiSGFzU3ViU3RlcHMoKSB8fCB0aGlzLmlzTGFzdFN1YlN0ZXAoKSkge1xuICAgICAgICBjb25zdCBuZXh0RW5hYmxlZFN0ZXAgPSB0aGlzLmZpbmROZXh0RW5hYmxlZFN0ZXAoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VBY3RpdmVTdGVwKG5leHRFbmFibGVkU3RlcCk7XG4gICAgICAgIHRoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4ID0gdGhpcy5fc3RlcHMuaW5kZXhPZihuZXh0RW5hYmxlZFN0ZXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3ViU3RlcEluZGV4ID0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCk7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCA9IHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHNbc3ViU3RlcEluZGV4ICsgMV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaXNQcmV2aW91c0F2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlU3RlcCkge1xuICAgICAgaWYgKCF0aGlzLmFjdGl2ZVRhYkhhc1N1YlN0ZXBzKCkgfHwgdGhpcy5pc0ZpcnN0U3ViU3RlcCgpKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRDdXJyZW50SW5kZXgoKTtcbiAgICAgICAgcmV0dXJuIGluZGV4ID4gMCAmJiB0aGlzLmlzQW55UHJldmlvdXNTdGVwRW5hYmxlZChpbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNOZXh0QXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9hY3RpdmVTdGVwKSB7XG4gICAgICBpZiAoIXRoaXMuYWN0aXZlVGFiSGFzU3ViU3RlcHMoKSB8fCB0aGlzLmlzTGFzdFN1YlN0ZXAoKSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgICAgIHJldHVybiBpbmRleCA8IHRoaXMuX3N0ZXBzLmxlbmd0aCAtIDEgJiYgdGhpcy5pc0FueUZvbGxvd2luZ1N0ZXBFbmFibGVkKGluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpc0xhc3RTdGVwKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmdldEN1cnJlbnRJbmRleCgpID09PSB0aGlzLl9zdGVwcy5sZW5ndGggLSAxKSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVUYWJIYXNTdWJTdGVwcygpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTGFzdFN1YlN0ZXAoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRDdXJyZW50SW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3RlcHMuZmluZEluZGV4KCh2YWx1ZSkgPT4gdmFsdWUgPT09IHRoaXMuX2FjdGl2ZVN0ZXApO1xuICB9XG5cbiAgZ2V0Q3VycmVudFN1YlN0ZXBJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzLmZpbmRJbmRleCgodmFsdWUpID0+IHZhbHVlID09PSB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXApO1xuICB9XG5cbiAgdHJpZ2dlckNsaWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkU3RlcCA9IHRoaXMuX3N0ZXBzW3RoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4XTtcbiAgICB0aGlzLmNoYW5nZUFjdGl2ZVN0ZXAoc2VsZWN0ZWRTdGVwKTtcbiAgfVxuXG4gIGhlYWRlckNsaWNrKGV2ZW50OiBhbnksIHN0ZXA6IElTdGVwKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vc3RvcCBwcm9jZXNzaW5nIGN1cnJlbnQgaGVhZGVyIGNsaWNrIGV2ZW50XG4gICAgdGhpcy5faGVhZGVyQ2xpY2suZW1pdChzdGVwKTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlVGFiSGFzU3ViU3RlcHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHMgJiYgdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpcnN0U3ViU3RlcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlU3RlcC5hY3RpdmVTdWJTdGVwID09PSB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0xhc3RTdWJTdGVwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXAgPT09IHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHNbdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcy5sZW5ndGggLSAxXTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlQcmV2aW91c1N0ZXBFbmFibGVkKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaWQtYmxhY2tsaXN0XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXBzLnNsaWNlKDAsIGluZGV4KS5maW5kKChzdGVwKSA9PiBzdGVwLmVuYWJsZWQpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGlzQW55Rm9sbG93aW5nU3RlcEVuYWJsZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpZC1ibGFja2xpc3RcbiAgICByZXR1cm4gdGhpcy5fc3RlcHMuc2xpY2UoaW5kZXggKyAxLCB0aGlzLl9zdGVwcy5sZW5ndGgpLmZpbmQoKHN0ZXApID0+IHN0ZXAuZW5hYmxlZCkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFByZXZpb3VzRW5hYmxlZFN0ZXAoKTogSVN0ZXAge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRDdXJyZW50SW5kZXgoKTtcbiAgICByZXR1cm4gdGhpcy5fc3RlcHNcbiAgICAgIC5zbGljZSgwLCBpbmRleClcbiAgICAgIC5yZXZlcnNlKClcbiAgICAgIC5maW5kKChzdGVwKSA9PiBzdGVwLmVuYWJsZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTmV4dEVuYWJsZWRTdGVwKCk6IElTdGVwIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXBzLnNsaWNlKGluZGV4ICsgMSwgdGhpcy5fc3RlcHMubGVuZ3RoKS5maW5kKChzdGVwKSA9PiBzdGVwLmVuYWJsZWQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3RlcHBlci1jb250YWluZXJcIj5cbiAgPG1hdC1ob3Jpem9udGFsLXN0ZXBwZXIgI3N0ZXBwZXIgW3NlbGVjdGVkSW5kZXhdPVwidGhpcy5nZXRJbmRleEZvckFjdGl2ZVN0ZXAoKVwiIChjbGljayk9XCJ0cmlnZ2VyQ2xpY2soKVwiPlxuICAgIDxtYXQtc3RlcCAqbmdGb3I9XCJsZXQgc3RlcCBvZiBfc3RlcHNcIiBbYXJpYS1sYWJlbGxlZGJ5XT1cIiFzdGVwLmVuYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiPlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtaGVhZGVyLW92ZXJsYXlcIiAqbmdJZj1cInRoaXMuX2hlYWRlckNsaWNrLm9ic2VydmVycy5sZW5ndGggPiAwXCIgKGNsaWNrKT1cImhlYWRlckNsaWNrKCRldmVudCwgc3RlcClcIj48L2Rpdj5cbiAgICAgICAgPHNwYW4+e3sgc3RlcC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtc3RlcD5cbiAgPC9tYXQtaG9yaXpvbnRhbC1zdGVwcGVyPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MatStepperModule } from '@angular/material/stepper';
4
+ import { FlowbarComponent } from './flowbar.component';
5
+ import * as i0 from "@angular/core";
6
+ export class FlowbarModule {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FlowbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: FlowbarModule, declarations: [FlowbarComponent], imports: [CommonModule, MatStepperModule], exports: [FlowbarComponent] }); }
9
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FlowbarModule, imports: [CommonModule, MatStepperModule] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FlowbarModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [FlowbarComponent],
15
+ imports: [CommonModule, MatStepperModule],
16
+ exports: [FlowbarComponent],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvd2Jhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9mbG93YmFyL2Zsb3diYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU92RCxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhOytHQUFiLGFBQWEsaUJBSlQsZ0JBQWdCLGFBQ3JCLFlBQVksRUFBRSxnQkFBZ0IsYUFDOUIsZ0JBQWdCOytHQUVmLGFBQWEsWUFIZCxZQUFZLEVBQUUsZ0JBQWdCOzsyRkFHN0IsYUFBYTtrQkFMekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO29CQUN6QyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFN0ZXBwZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcbmltcG9ydCB7IEZsb3diYXJDb21wb25lbnQgfSBmcm9tICcuL2Zsb3diYXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRmxvd2JhckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdFN0ZXBwZXJNb2R1bGVdLFxuICBleHBvcnRzOiBbRmxvd2JhckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZsb3diYXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/router";
5
+ import * as i3 from "@angular/material/button";
6
+ import * as i4 from "@angular/material/icon";
7
+ import * as i5 from "@angular/material/tooltip";
8
+ export class MaterialActionButtonComponent {
9
+ constructor() {
10
+ this.icon = 'add';
11
+ // Sets the lower padding higher providing some bottom space for a fixed paginator
12
+ this.liftHigher = true;
13
+ this.liftHigher2 = false;
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MaterialActionButtonComponent, selector: "mad-material-action-button", inputs: { actionName: "actionName", id: "id", icon: "icon", routerLink: "routerLink", liftHigher: "liftHigher", liftHigher2: "liftHigher2" }, ngImport: i0, template: "<div class=\"material-action-button {{ liftHigher ? 'lift-higher' : '' }} {{ liftHigher2 ? 'lift-higher-2' : '' }}\">\n <a [routerLink]=\"routerLink\">\n <button [id]=\"id\" mat-fab [matTooltipPosition]=\"'left'\" [matTooltip]=\"actionName\" color=\"primary\" *ngIf=\"!liftHigher2\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n <button [id]=\"id\" mat-mini-fab [matTooltipPosition]=\"'left'\" [matTooltip]=\"actionName\" color=\"accent\" *ngIf=\"liftHigher2\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n </a>\n</div>\n", styles: [".material-action-button{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column-reverse;align-items:center}.lift-higher{bottom:61px}.lift-higher-2{right:28px;bottom:121px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ selector: 'mad-material-action-button', template: "<div class=\"material-action-button {{ liftHigher ? 'lift-higher' : '' }} {{ liftHigher2 ? 'lift-higher-2' : '' }}\">\n <a [routerLink]=\"routerLink\">\n <button [id]=\"id\" mat-fab [matTooltipPosition]=\"'left'\" [matTooltip]=\"actionName\" color=\"primary\" *ngIf=\"!liftHigher2\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n <button [id]=\"id\" mat-mini-fab [matTooltipPosition]=\"'left'\" [matTooltip]=\"actionName\" color=\"accent\" *ngIf=\"liftHigher2\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n </a>\n</div>\n", styles: [".material-action-button{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column-reverse;align-items:center}.lift-higher{bottom:61px}.lift-higher-2{right:28px;bottom:121px}\n"] }]
21
+ }], propDecorators: { actionName: [{
22
+ type: Input
23
+ }], id: [{
24
+ type: Input
25
+ }], icon: [{
26
+ type: Input
27
+ }], routerLink: [{
28
+ type: Input
29
+ }], liftHigher: [{
30
+ type: Input
31
+ }], liftHigher2: [{
32
+ type: Input
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9tYXRlcmlhbC1hY3Rpb24tYnV0dG9uL21hdGVyaWFsLWFjdGlvbi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi9tYXRlcmlhbC1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBT2pELE1BQU0sT0FBTyw2QkFBNkI7SUFMMUM7UUFhRSxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBS2Isa0ZBQWtGO1FBRWxGLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHbEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0FDckI7OEdBbkJZLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGdOQ1AxQyx5aUJBVUE7OzJGREhhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSw0QkFBNEI7OEJBTXRDLFVBQVU7c0JBRFQsS0FBSztnQkFJTixFQUFFO3NCQURELEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtbWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXRlcmlhbC1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQWN0aW9uQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgYWN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGlkOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgaWNvbiA9ICdhZGQnO1xuXG4gIEBJbnB1dCgpXG4gIHJvdXRlckxpbms6IHN0cmluZztcblxuICAvLyBTZXRzIHRoZSBsb3dlciBwYWRkaW5nIGhpZ2hlciBwcm92aWRpbmcgc29tZSBib3R0b20gc3BhY2UgZm9yIGEgZml4ZWQgcGFnaW5hdG9yXG4gIEBJbnB1dCgpXG4gIGxpZnRIaWdoZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGxpZnRIaWdoZXIyID0gZmFsc2U7XG59XG4iLCI8ZGl2IGNsYXNzPVwibWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbiB7eyBsaWZ0SGlnaGVyID8gJ2xpZnQtaGlnaGVyJyA6ICcnIH19IHt7IGxpZnRIaWdoZXIyID8gJ2xpZnQtaGlnaGVyLTInIDogJycgfX1cIj5cbiAgPGEgW3JvdXRlckxpbmtdPVwicm91dGVyTGlua1wiPlxuICAgIDxidXR0b24gW2lkXT1cImlkXCIgbWF0LWZhYiBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidsZWZ0J1wiIFttYXRUb29sdGlwXT1cImFjdGlvbk5hbWVcIiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cIiFsaWZ0SGlnaGVyMlwiPlxuICAgICAgPG1hdC1pY29uPnt7IGljb24gfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gW2lkXT1cImlkXCIgbWF0LW1pbmktZmFiIFttYXRUb29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCIgW21hdFRvb2x0aXBdPVwiYWN0aW9uTmFtZVwiIGNvbG9yPVwiYWNjZW50XCIgKm5nSWY9XCJsaWZ0SGlnaGVyMlwiPlxuICAgICAgPG1hdC1pY29uPnt7IGljb24gfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2E+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MaterialActionButtonComponent } from './material-action-button.component';
3
+ import { CommonModule } from '@angular/common';
4
+ import { RouterModule } from '@angular/router';
5
+ import { MatButtonModule } from '@angular/material/button';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+ import { MatTooltipModule } from '@angular/material/tooltip';
8
+ import * as i0 from "@angular/core";
9
+ export class MaterialActionButtonModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonModule, declarations: [MaterialActionButtonComponent], imports: [CommonModule, RouterModule, MatButtonModule, MatIconModule, MatTooltipModule], exports: [MaterialActionButtonComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonModule, imports: [CommonModule, RouterModule, MatButtonModule, MatIconModule, MatTooltipModule] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [MaterialActionButtonComponent],
18
+ imports: [CommonModule, RouterModule, MatButtonModule, MatIconModule, MatTooltipModule],
19
+ exports: [MaterialActionButtonComponent],
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9tYXRlcmlhbC1hY3Rpb24tYnV0dG9uL21hdGVyaWFsLWFjdGlvbi1idXR0b24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU83RCxNQUFNLE9BQU8sMEJBQTBCOzhHQUExQiwwQkFBMEI7K0dBQTFCLDBCQUEwQixpQkFKdEIsNkJBQTZCLGFBQ2xDLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsYUFDNUUsNkJBQTZCOytHQUU1QiwwQkFBMEIsWUFIM0IsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQjs7MkZBRzNFLDBCQUEwQjtrQkFMdEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDN0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDO29CQUN2RixPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxBY3Rpb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL21hdGVyaWFsLWFjdGlvbi1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTWF0ZXJpYWxBY3Rpb25CdXR0b25Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtNYXRlcmlhbEFjdGlvbkJ1dHRvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQWN0aW9uQnV0dG9uTW9kdWxlIHt9XG4iXX0=