@flywheel-io/vision 2.0.0-beta.8 → 2.0.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 (269) hide show
  1. package/color.utils.d.ts +2 -0
  2. package/components/alert/alert.component.d.ts +1 -1
  3. package/components/app-icon/app-icon.component.d.ts +1 -1
  4. package/components/avatar/avatar.component.d.ts +7 -2
  5. package/components/badge/badge.component.d.ts +1 -1
  6. package/components/breadcrumbs/crumb.component.d.ts +1 -1
  7. package/components/button/button.component.d.ts +1 -1
  8. package/components/button-group/button-group.component.d.ts +1 -1
  9. package/components/button-toggle/button-toggle-item/button-toggle-item.component.d.ts +1 -1
  10. package/components/button-toggle/button-toggle.component.d.ts +1 -1
  11. package/components/card/card-attribute/card-attribute.component.d.ts +1 -1
  12. package/components/card/card-author/card-author.component.d.ts +1 -1
  13. package/components/card/card-header/card-header.component.d.ts +1 -1
  14. package/components/card/card.component.d.ts +1 -1
  15. package/components/checkbox/checkbox.component.d.ts +1 -1
  16. package/components/chip/chip.component.d.ts +1 -1
  17. package/components/contained-input/contained-input.component.d.ts +1 -1
  18. package/components/date-input/date-input.component.d.ts +1 -1
  19. package/components/dialog/dialog-confirm.component.d.ts +1 -1
  20. package/components/dialog/dialog-content.component.d.ts +1 -1
  21. package/components/dialog/dialog-simple.component.d.ts +1 -1
  22. package/components/dialog/dialog.component.d.ts +1 -1
  23. package/components/form-heading/form-heading.component.d.ts +1 -1
  24. package/components/icon/icon.component.d.ts +1 -1
  25. package/components/icon/icon.types.d.ts +1 -1
  26. package/components/icon-button/icon-button.component.d.ts +1 -1
  27. package/components/layouts/context/context.component.d.ts +1 -1
  28. package/components/layouts/grid/grid.component.d.ts +1 -1
  29. package/components/layouts/layout-group.component.d.ts +1 -1
  30. package/components/layouts/panel/panel.component.d.ts +1 -1
  31. package/components/layouts/sidebar/sidebar.component.d.ts +1 -1
  32. package/components/layouts/toolbar/toolbar.component.d.ts +1 -1
  33. package/components/menu/menu-container/menu-container.component.d.ts +26 -11
  34. package/components/menu/menu-item/menu-item.component.d.ts +5 -6
  35. package/components/menu/menu-item-group/menu-item-group.component.d.ts +1 -1
  36. package/components/menu/menu-sub-item/menu-sub-item.component.d.ts +1 -5
  37. package/components/menu/menu.component.d.ts +3 -23
  38. package/components/navbar/navbar-item/navbar-item.component.d.ts +1 -1
  39. package/components/navbar/navbar-sub-item/navbar-sub-item.component.d.ts +1 -1
  40. package/components/navbar/navbar.component.d.ts +1 -1
  41. package/components/number-input/number-input.component.d.ts +1 -1
  42. package/components/paginator/paginator-advanced/paginator-advanced.component.d.ts +1 -1
  43. package/components/paginator/paginator.component.d.ts +6 -3
  44. package/components/phone-input/phone-input.component.d.ts +1 -1
  45. package/components/phone-input/phone-input.model.d.ts +1 -1
  46. package/components/popover/popover-panel/popover-panel.component.d.ts +1 -1
  47. package/components/popover/popover.component.d.ts +1 -1
  48. package/components/progress/bar/bar.component.d.ts +1 -1
  49. package/components/progress/spinner/spinner.component.d.ts +1 -1
  50. package/components/radio/radio-group.component.d.ts +1 -1
  51. package/components/radio/radio.component.d.ts +1 -1
  52. package/components/section-heading/back-button/back-button.component.d.ts +1 -1
  53. package/components/section-heading/section-heading.component.d.ts +1 -1
  54. package/components/section-heading/subsection-heading/subsection-heading.component.d.ts +1 -1
  55. package/components/select-menu/multi-select-menu/multi-select-menu.component.d.ts +39 -22
  56. package/components/select-menu/select-menu.component.d.ts +1 -1
  57. package/components/select-menu/select-menu.module.d.ts +7 -6
  58. package/components/snackbar/snackbar/snackbar.component.d.ts +1 -1
  59. package/components/stepper/step.component.d.ts +1 -1
  60. package/components/stepper/stepper.component.d.ts +1 -1
  61. package/components/switch/switch.component.d.ts +1 -1
  62. package/components/table/cell.d.ts +1 -1
  63. package/components/table/row.d.ts +3 -5
  64. package/components/tabs/tab/tab.component.d.ts +1 -1
  65. package/components/tabs/tab-panel/tab-panel.component.d.ts +1 -1
  66. package/components/tabs/tabs.component.d.ts +1 -1
  67. package/components/text-input/text-input.component.d.ts +9 -6
  68. package/components/textarea-input/textarea-input.component.d.ts +1 -1
  69. package/components/tooltip/tooltip-panel/tooltip-panel.component.d.ts +1 -1
  70. package/components/tooltip/tooltip.component.d.ts +1 -1
  71. package/components/wrapped-input/wrapped-input.component.d.ts +1 -1
  72. package/esm2022/color.utils.mjs +45 -0
  73. package/{esm2020 → esm2022}/components/alert/alert.component.mjs +4 -4
  74. package/{esm2020 → esm2022}/components/alert/alert.module.mjs +9 -9
  75. package/{esm2020 → esm2022}/components/app-icon/app-icon.component.mjs +4 -4
  76. package/{esm2020 → esm2022}/components/app-icon/app-icon.module.mjs +7 -7
  77. package/esm2022/components/avatar/avatar.component.mjs +66 -0
  78. package/{esm2020 → esm2022}/components/avatar/avatar.module.mjs +7 -7
  79. package/esm2022/components/badge/badge.component.mjs +45 -0
  80. package/{esm2020 → esm2022}/components/badge/badge.module.mjs +5 -5
  81. package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +22 -0
  82. package/{esm2020 → esm2022}/components/breadcrumbs/breadcrumbs.module.mjs +9 -9
  83. package/esm2022/components/breadcrumbs/crumb.component.mjs +34 -0
  84. package/{esm2020 → esm2022}/components/button/button.component.mjs +4 -4
  85. package/esm2022/components/button/button.directives.mjs +129 -0
  86. package/{esm2020 → esm2022}/components/button/button.module.mjs +21 -21
  87. package/esm2022/components/button-group/button-group.component.mjs +131 -0
  88. package/{esm2020 → esm2022}/components/button-group/button-group.module.mjs +9 -9
  89. package/esm2022/components/button-toggle/button-toggle-item/button-toggle-item.component.mjs +54 -0
  90. package/esm2022/components/button-toggle/button-toggle.component.mjs +137 -0
  91. package/{esm2020 → esm2022}/components/button-toggle/button-toggle.module.mjs +9 -9
  92. package/{esm2020 → esm2022}/components/card/card-attribute/card-attribute.component.mjs +4 -4
  93. package/{esm2020 → esm2022}/components/card/card-author/card-author.component.mjs +4 -4
  94. package/{esm2020 → esm2022}/components/card/card-content/card-content.component.mjs +4 -4
  95. package/{esm2020 → esm2022}/components/card/card-footer/card-footer.component.mjs +8 -8
  96. package/{esm2020 → esm2022}/components/card/card-header/card-header.component.mjs +4 -4
  97. package/{esm2020 → esm2022}/components/card/card.component.mjs +4 -4
  98. package/{esm2020 → esm2022}/components/card/card.module.mjs +19 -19
  99. package/esm2022/components/checkbox/checkbox.component.mjs +79 -0
  100. package/{esm2020 → esm2022}/components/checkbox/checkbox.module.mjs +9 -9
  101. package/esm2022/components/chip/chip.component.mjs +52 -0
  102. package/{esm2020 → esm2022}/components/chip/chip.module.mjs +9 -9
  103. package/esm2022/components/contained-input/contained-input.component.mjs +86 -0
  104. package/{esm2020 → esm2022}/components/contained-input/contained-input.module.mjs +13 -13
  105. package/esm2022/components/date-input/date-input.component.mjs +139 -0
  106. package/{esm2020 → esm2022}/components/date-input/date-input.module.mjs +9 -9
  107. package/{esm2020 → esm2022}/components/dialog/dialog-actions.component.mjs +9 -9
  108. package/{esm2020 → esm2022}/components/dialog/dialog-confirm.component.mjs +6 -6
  109. package/esm2022/components/dialog/dialog-content.component.mjs +38 -0
  110. package/{esm2020 → esm2022}/components/dialog/dialog-header.component.mjs +9 -9
  111. package/{esm2020 → esm2022}/components/dialog/dialog-simple.component.mjs +6 -6
  112. package/{esm2020 → esm2022}/components/dialog/dialog.component.mjs +7 -7
  113. package/{esm2020 → esm2022}/components/dialog/dialog.service.mjs +6 -6
  114. package/{esm2020 → esm2022}/components/dialog/dialogs.module.mjs +27 -27
  115. package/{esm2020 → esm2022}/components/form-heading/form-heading.component.mjs +5 -5
  116. package/{esm2020 → esm2022}/components/form-heading/form-heading.module.mjs +9 -9
  117. package/esm2022/components/forms/validators.mjs +81 -0
  118. package/esm2022/components/icon/icon.component.mjs +61 -0
  119. package/{esm2020 → esm2022}/components/icon/icon.module.mjs +5 -5
  120. package/{esm2020 → esm2022}/components/icon-button/icon-button.component.mjs +4 -4
  121. package/{esm2020 → esm2022}/components/icon-button/icon-button.module.mjs +7 -7
  122. package/esm2022/components/layouts/context/context.component.mjs +46 -0
  123. package/{esm2020 → esm2022}/components/layouts/grid/grid.component.mjs +7 -7
  124. package/esm2022/components/layouts/layout-group.component.mjs +36 -0
  125. package/{esm2020 → esm2022}/components/layouts/layouts.module.mjs +19 -19
  126. package/{esm2020 → esm2022}/components/layouts/panel/panel.component.mjs +5 -5
  127. package/{esm2020 → esm2022}/components/layouts/sidebar/sidebar.component.mjs +4 -4
  128. package/{esm2020 → esm2022}/components/layouts/toolbar/toolbar.component.mjs +4 -4
  129. package/esm2022/components/menu/menu-close-triggers.directive.mjs +38 -0
  130. package/esm2022/components/menu/menu-container/menu-container.component.mjs +126 -0
  131. package/{esm2020 → esm2022}/components/menu/menu-header/menu-header.component.mjs +4 -4
  132. package/esm2022/components/menu/menu-item/menu-item.component.mjs +134 -0
  133. package/{esm2020 → esm2022}/components/menu/menu-item-group/menu-item-group.component.mjs +5 -5
  134. package/{esm2020 → esm2022}/components/menu/menu-separator/menu-separator.component.mjs +4 -4
  135. package/esm2022/components/menu/menu-sub-item/menu-sub-item.component.mjs +103 -0
  136. package/esm2022/components/menu/menu.component.mjs +129 -0
  137. package/{esm2020 → esm2022}/components/menu/menu.module.mjs +37 -37
  138. package/{esm2020 → esm2022}/components/navbar/navbar-header/navbar-header.component.mjs +4 -4
  139. package/esm2022/components/navbar/navbar-item/navbar-item.component.mjs +95 -0
  140. package/esm2022/components/navbar/navbar-sub-item/navbar-sub-item.component.mjs +76 -0
  141. package/esm2022/components/navbar/navbar.component.mjs +75 -0
  142. package/{esm2020 → esm2022}/components/navbar/navbar.module.mjs +25 -25
  143. package/esm2022/components/number-input/number-input.component.mjs +122 -0
  144. package/{esm2020 → esm2022}/components/number-input/number-input.module.mjs +9 -9
  145. package/esm2022/components/paginator/paginator-advanced/paginator-advanced.component.mjs +123 -0
  146. package/esm2022/components/paginator/paginator.component.mjs +133 -0
  147. package/{esm2020 → esm2022}/components/paginator/paginator.module.mjs +17 -17
  148. package/esm2022/components/phone-input/phone-input.component.mjs +285 -0
  149. package/{esm2020 → esm2022}/components/phone-input/phone-input.module.mjs +17 -17
  150. package/{esm2020 → esm2022}/components/popover/popover-panel/popover-panel.component.mjs +4 -4
  151. package/esm2022/components/popover/popover.component.mjs +76 -0
  152. package/{esm2020 → esm2022}/components/popover/popover.module.mjs +13 -13
  153. package/{esm2020 → esm2022}/components/progress/bar/bar.component.mjs +5 -5
  154. package/{esm2020 → esm2022}/components/progress/progress.module.mjs +7 -7
  155. package/esm2022/components/progress/spinner/spinner.component.mjs +101 -0
  156. package/esm2022/components/radio/radio-group.component.mjs +117 -0
  157. package/esm2022/components/radio/radio.component.mjs +51 -0
  158. package/{esm2020 → esm2022}/components/radio/radio.module.mjs +11 -11
  159. package/esm2022/components/section-heading/back-button/back-button.component.mjs +30 -0
  160. package/{esm2020 → esm2022}/components/section-heading/section-heading.component.mjs +5 -5
  161. package/{esm2020 → esm2022}/components/section-heading/section-heading.module.mjs +13 -13
  162. package/{esm2020 → esm2022}/components/section-heading/subsection-heading/subsection-heading.component.mjs +5 -5
  163. package/esm2022/components/select-menu/multi-select-menu/multi-select-menu.component.mjs +354 -0
  164. package/esm2022/components/select-menu/select-menu.component.mjs +332 -0
  165. package/esm2022/components/select-menu/select-menu.module.mjs +60 -0
  166. package/esm2022/components/shared/pipes/pipes.module.mjs +36 -0
  167. package/esm2022/components/shared/pipes/translate.pipe.mjs +40 -0
  168. package/{esm2020 → esm2022}/components/shared/pipes/trusthtml.pipe.mjs +5 -5
  169. package/esm2022/components/shared/services/menu-manager.service.mjs +27 -0
  170. package/esm2022/components/shared/translation.service.mjs +26 -0
  171. package/esm2022/components/snackbar/snackbar/snackbar.component.mjs +111 -0
  172. package/esm2022/components/snackbar/snackbar-container/snackbar-container.component.mjs +63 -0
  173. package/{esm2020 → esm2022}/components/snackbar/snackbar.module.mjs +15 -15
  174. package/esm2022/components/snackbar/snackbar.service.mjs +36 -0
  175. package/esm2022/components/stepper/step.component.mjs +113 -0
  176. package/esm2022/components/stepper/stepper.component.mjs +95 -0
  177. package/{esm2020 → esm2022}/components/stepper/stepper.module.mjs +13 -13
  178. package/esm2022/components/switch/switch.component.mjs +73 -0
  179. package/{esm2020 → esm2022}/components/switch/switch.module.mjs +5 -5
  180. package/{esm2020 → esm2022}/components/table/cell.mjs +24 -24
  181. package/esm2022/components/table/row.mjs +164 -0
  182. package/esm2022/components/table/table-dense.component.mjs +38 -0
  183. package/esm2022/components/table/table.component.mjs +38 -0
  184. package/{esm2020 → esm2022}/components/table/table.module.mjs +37 -37
  185. package/esm2022/components/tabs/tab/tab.component.mjs +79 -0
  186. package/{esm2020 → esm2022}/components/tabs/tab-panel/tab-panel.component.mjs +4 -4
  187. package/esm2022/components/tabs/tabs.component.mjs +68 -0
  188. package/{esm2020 → esm2022}/components/tabs/tabs.module.mjs +11 -11
  189. package/esm2022/components/text-input/text-input.component.mjs +125 -0
  190. package/{esm2020 → esm2022}/components/text-input/text-input.module.mjs +9 -9
  191. package/esm2022/components/textarea-input/textarea-input.component.mjs +86 -0
  192. package/{esm2020 → esm2022}/components/textarea-input/textarea-input.module.mjs +11 -11
  193. package/{esm2020 → esm2022}/components/tooltip/tooltip-panel/tooltip-panel.component.mjs +4 -4
  194. package/{esm2020 → esm2022}/components/tooltip/tooltip.component.mjs +5 -5
  195. package/{esm2020 → esm2022}/components/tooltip/tooltip.module.mjs +13 -13
  196. package/{esm2020 → esm2022}/components/wrapped-input/wrapped-input.component.mjs +4 -4
  197. package/{esm2020 → esm2022}/components/wrapped-input/wrapped-input.module.mjs +7 -7
  198. package/{esm2020 → esm2022}/directives/menu-register.directive.mjs +6 -6
  199. package/{fesm2020 → fesm2022}/flywheel-io-vision.mjs +1512 -1505
  200. package/fesm2022/flywheel-io-vision.mjs.map +1 -0
  201. package/global.scss +1 -0
  202. package/package.json +9 -12
  203. package/styles.css +5 -0
  204. package/esm2020/components/avatar/avatar.component.mjs +0 -53
  205. package/esm2020/components/badge/badge.component.mjs +0 -45
  206. package/esm2020/components/breadcrumbs/breadcrumbs.component.mjs +0 -22
  207. package/esm2020/components/breadcrumbs/crumb.component.mjs +0 -34
  208. package/esm2020/components/button/button.directives.mjs +0 -129
  209. package/esm2020/components/button-group/button-group.component.mjs +0 -131
  210. package/esm2020/components/button-toggle/button-toggle-item/button-toggle-item.component.mjs +0 -54
  211. package/esm2020/components/button-toggle/button-toggle.component.mjs +0 -137
  212. package/esm2020/components/checkbox/checkbox.component.mjs +0 -79
  213. package/esm2020/components/chip/chip.component.mjs +0 -52
  214. package/esm2020/components/contained-input/contained-input.component.mjs +0 -86
  215. package/esm2020/components/date-input/date-input.component.mjs +0 -139
  216. package/esm2020/components/dialog/dialog-content.component.mjs +0 -38
  217. package/esm2020/components/forms/validators.mjs +0 -81
  218. package/esm2020/components/icon/icon.component.mjs +0 -61
  219. package/esm2020/components/layouts/context/context.component.mjs +0 -46
  220. package/esm2020/components/layouts/layout-group.component.mjs +0 -36
  221. package/esm2020/components/menu/menu-close-triggers.directive.mjs +0 -38
  222. package/esm2020/components/menu/menu-container/menu-container.component.mjs +0 -90
  223. package/esm2020/components/menu/menu-item/menu-item.component.mjs +0 -136
  224. package/esm2020/components/menu/menu-sub-item/menu-sub-item.component.mjs +0 -109
  225. package/esm2020/components/menu/menu.component.mjs +0 -212
  226. package/esm2020/components/navbar/navbar-item/navbar-item.component.mjs +0 -95
  227. package/esm2020/components/navbar/navbar-sub-item/navbar-sub-item.component.mjs +0 -76
  228. package/esm2020/components/navbar/navbar.component.mjs +0 -75
  229. package/esm2020/components/number-input/number-input.component.mjs +0 -122
  230. package/esm2020/components/paginator/paginator-advanced/paginator-advanced.component.mjs +0 -123
  231. package/esm2020/components/paginator/paginator.component.mjs +0 -133
  232. package/esm2020/components/phone-input/phone-input.component.mjs +0 -285
  233. package/esm2020/components/popover/popover.component.mjs +0 -76
  234. package/esm2020/components/progress/spinner/spinner.component.mjs +0 -101
  235. package/esm2020/components/radio/radio-group.component.mjs +0 -117
  236. package/esm2020/components/radio/radio.component.mjs +0 -51
  237. package/esm2020/components/section-heading/back-button/back-button.component.mjs +0 -30
  238. package/esm2020/components/select-menu/multi-select-menu/multi-select-menu.component.mjs +0 -357
  239. package/esm2020/components/select-menu/select-menu.component.mjs +0 -332
  240. package/esm2020/components/select-menu/select-menu.module.mjs +0 -56
  241. package/esm2020/components/shared/pipes/pipes.module.mjs +0 -36
  242. package/esm2020/components/shared/pipes/translate.pipe.mjs +0 -40
  243. package/esm2020/components/shared/services/menu-manager.service.mjs +0 -27
  244. package/esm2020/components/shared/translation.service.mjs +0 -26
  245. package/esm2020/components/snackbar/snackbar/snackbar.component.mjs +0 -111
  246. package/esm2020/components/snackbar/snackbar-container/snackbar-container.component.mjs +0 -63
  247. package/esm2020/components/snackbar/snackbar.service.mjs +0 -36
  248. package/esm2020/components/stepper/step.component.mjs +0 -113
  249. package/esm2020/components/stepper/stepper.component.mjs +0 -95
  250. package/esm2020/components/switch/switch.component.mjs +0 -73
  251. package/esm2020/components/table/row.mjs +0 -170
  252. package/esm2020/components/table/table-dense.component.mjs +0 -38
  253. package/esm2020/components/table/table.component.mjs +0 -38
  254. package/esm2020/components/tabs/tab/tab.component.mjs +0 -79
  255. package/esm2020/components/tabs/tabs.component.mjs +0 -68
  256. package/esm2020/components/text-input/text-input.component.mjs +0 -112
  257. package/esm2020/components/textarea-input/textarea-input.component.mjs +0 -86
  258. package/fesm2015/flywheel-io-vision.mjs +0 -8126
  259. package/fesm2015/flywheel-io-vision.mjs.map +0 -1
  260. package/fesm2020/flywheel-io-vision.mjs.map +0 -1
  261. package/flywheel-io-vision-2.0.0-beta.8.tgz +0 -0
  262. /package/{esm2020 → esm2022}/components/icon/icon.types.mjs +0 -0
  263. /package/{esm2020 → esm2022}/components/paginator/paginator.model.mjs +0 -0
  264. /package/{esm2020 → esm2022}/components/phone-input/country-code.data.mjs +0 -0
  265. /package/{esm2020 → esm2022}/components/phone-input/phone-input.model.mjs +0 -0
  266. /package/{esm2020 → esm2022}/components/snackbar/snackbar-message.model.mjs +0 -0
  267. /package/{esm2020 → esm2022}/components/snackbar/snackbar-timer.service.mjs +0 -0
  268. /package/{esm2020 → esm2022}/flywheel-io-vision.mjs +0 -0
  269. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,111 @@
1
+ /* eslint-disable @rx-angular/no-explicit-change-detection-apis */
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation, } from '@angular/core';
3
+ import { FwSnackbarTimerService } from '../snackbar-timer.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../snackbar-timer.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../../button/button.component";
8
+ import * as i4 from "../../icon-button/icon-button.component";
9
+ import * as i5 from "../../icon/icon.component";
10
+ export class FwSnackbarComponent {
11
+ get cssClass() {
12
+ const cssClass = 'fw-snackbar';
13
+ if (this.message?.severity) {
14
+ return cssClass + ' ' + this.color;
15
+ }
16
+ else {
17
+ return cssClass;
18
+ }
19
+ }
20
+ constructor(cdr, timerService) {
21
+ this.cdr = cdr;
22
+ this.timerService = timerService;
23
+ this.messageDuration = 9000;
24
+ this.ready = new EventEmitter();
25
+ this.dismiss = new EventEmitter();
26
+ this.action = new EventEmitter();
27
+ this.color = 'primary';
28
+ }
29
+ ngAfterViewInit() {
30
+ this.ready.emit(this);
31
+ this.cdr.markForCheck();
32
+ }
33
+ startTimer() {
34
+ if (this.message && this.message.duration) {
35
+ this.messageDuration = this.message.duration;
36
+ }
37
+ this.timerService.start(this.messageDuration).then(() => {
38
+ this.handleDismiss();
39
+ this.cdr.markForCheck();
40
+ });
41
+ }
42
+ stopTimer() {
43
+ this.timerService.stop();
44
+ this.cdr.markForCheck();
45
+ }
46
+ ngOnInit() {
47
+ switch (this.message.severity) {
48
+ case 'success':
49
+ if (!this.message.icon) {
50
+ this.message.icon = 'done-check-tracked';
51
+ }
52
+ this.color = 'success';
53
+ break;
54
+ case 'warning':
55
+ if (!this.message.icon) {
56
+ this.message.icon = 'warning-circle';
57
+ }
58
+ this.color = 'warning';
59
+ break;
60
+ case 'error':
61
+ if (!this.message.icon) {
62
+ this.message.icon = 'warning';
63
+ }
64
+ if (this.message.showClose === undefined) {
65
+ this.message.showClose = true;
66
+ }
67
+ if (!this.message.duration) {
68
+ this.message.duration = 29000;
69
+ }
70
+ this.color = 'danger';
71
+ break;
72
+ case 'info':
73
+ if (!this.message.icon) {
74
+ this.message.icon = 'information-circle';
75
+ }
76
+ this.color = 'primary';
77
+ break;
78
+ }
79
+ }
80
+ handleDismiss() {
81
+ this.dismiss.emit(this.message.id);
82
+ this.cdr.markForCheck();
83
+ }
84
+ handleAction() {
85
+ this.action.emit(this.message.id);
86
+ if (this.message.action) {
87
+ this.message.action();
88
+ }
89
+ this.cdr.markForCheck();
90
+ }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FwSnackbarTimerService }], target: i0.ɵɵFactoryTarget.Component }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwSnackbarComponent, selector: "fw-snackbar", inputs: { message: "message", messageDuration: "messageDuration" }, outputs: { ready: "ready", dismiss: "dismiss", action: "action" }, host: { properties: { "class": "this.cssClass" } }, providers: [FwSnackbarTimerService], ngImport: i0, template: "<ng-container *ngIf=\"message\">\n <fw-icon *ngIf=\"message.icon\">{{ message.icon }}</fw-icon>\n <h4 class=\"vision-h4\" *ngIf=\"message.message\">{{ message.message }}</h4>\n <fw-button\n *ngIf=\"message.actionText\" type=\"ghost\"\n [color]=\"color\" size=\"small\"\n (click)=\"handleAction()\">{{ message.actionText }}\n </fw-button>\n <fw-icon-button\n *ngIf=\"message.showClose\"\n icon=\"close\" size=\"small\" [color]=\"message.severity\"\n (click)=\"handleDismiss()\">\n </fw-icon-button>\n <div *ngIf=\"!message.actionText && !message.showClose\"></div>\n</ng-container>\n", styles: [".vision-shadow-extra-large{box-shadow:0 8px 25px #0000001a}.vision-shadow-large,fw-snackbar{box-shadow:0 5px 15px #0000001a}.vision-shadow-medium{box-shadow:0 2px 5px #0000001a}.vision-shadow-small{box-shadow:0 1px 2px #0000000d}.vision-shadow-inner{box-shadow:0 2px 4px #00000014 inset}fw-snackbar{display:flex;align-items:flex-start;box-sizing:border-box;max-width:320px;min-width:200px;min-height:30px;padding:8px 8px 8px 16px;gap:8px;transform-origin:center;background-color:var(--card-header);color:var(--typography-base);white-space:pre-wrap;border-radius:4px;border:1px solid var(--separations-border);margin:8px}fw-snackbar>fw-icon{width:24px;height:24px;font-size:24px;white-space:nowrap;margin:3px 0}fw-snackbar h4{margin:6px 0 0;flex:1}fw-snackbar.primary fw-icon{color:var(--primary-base)}fw-snackbar.danger fw-icon{color:var(--red-base)}fw-snackbar.success fw-icon{color:var(--green-base)}fw-snackbar.warning fw-icon{color:var(--orange-base)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FwButtonComponent, selector: "fw-button", inputs: ["color", "size", "variant", "type", "disabled", "fullWidth", "leftIcon", "rightIcon"] }, { kind: "component", type: i4.FwIconButtonComponent, selector: "fw-icon-button", inputs: ["color", "icon", "size", "disabled", "selected"] }, { kind: "component", type: i5.FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarComponent, decorators: [{
95
+ type: Component,
96
+ args: [{ selector: 'fw-snackbar', providers: [FwSnackbarTimerService], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"message\">\n <fw-icon *ngIf=\"message.icon\">{{ message.icon }}</fw-icon>\n <h4 class=\"vision-h4\" *ngIf=\"message.message\">{{ message.message }}</h4>\n <fw-button\n *ngIf=\"message.actionText\" type=\"ghost\"\n [color]=\"color\" size=\"small\"\n (click)=\"handleAction()\">{{ message.actionText }}\n </fw-button>\n <fw-icon-button\n *ngIf=\"message.showClose\"\n icon=\"close\" size=\"small\" [color]=\"message.severity\"\n (click)=\"handleDismiss()\">\n </fw-icon-button>\n <div *ngIf=\"!message.actionText && !message.showClose\"></div>\n</ng-container>\n", styles: [".vision-shadow-extra-large{box-shadow:0 8px 25px #0000001a}.vision-shadow-large,fw-snackbar{box-shadow:0 5px 15px #0000001a}.vision-shadow-medium{box-shadow:0 2px 5px #0000001a}.vision-shadow-small{box-shadow:0 1px 2px #0000000d}.vision-shadow-inner{box-shadow:0 2px 4px #00000014 inset}fw-snackbar{display:flex;align-items:flex-start;box-sizing:border-box;max-width:320px;min-width:200px;min-height:30px;padding:8px 8px 8px 16px;gap:8px;transform-origin:center;background-color:var(--card-header);color:var(--typography-base);white-space:pre-wrap;border-radius:4px;border:1px solid var(--separations-border);margin:8px}fw-snackbar>fw-icon{width:24px;height:24px;font-size:24px;white-space:nowrap;margin:3px 0}fw-snackbar h4{margin:6px 0 0;flex:1}fw-snackbar.primary fw-icon{color:var(--primary-base)}fw-snackbar.danger fw-icon{color:var(--red-base)}fw-snackbar.success fw-icon{color:var(--green-base)}fw-snackbar.warning fw-icon{color:var(--orange-base)}\n"] }]
97
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.FwSnackbarTimerService }], propDecorators: { message: [{
98
+ type: Input
99
+ }], messageDuration: [{
100
+ type: Input
101
+ }], ready: [{
102
+ type: Output
103
+ }], dismiss: [{
104
+ type: Output
105
+ }], action: [{
106
+ type: Output
107
+ }], cssClass: [{
108
+ type: HostBinding,
109
+ args: ['class']
110
+ }] } });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIvc25hY2tiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIvc25hY2tiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0VBQWtFO0FBQ2xFLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFXbkUsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixJQUEwQixRQUFRO1FBQ2hDLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDM0IsT0FBTyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDckMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQW9CLEdBQXNCLEVBQVUsWUFBb0M7UUFBcEUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFmL0Usb0JBQWUsR0FBVyxJQUFJLENBQUM7UUFDOUIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQ2hELFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3JDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzlDLFVBQUssR0FBaUQsU0FBUyxDQUFDO0lBWWhFLENB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QUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBdEZVLG1CQUFtQjttR0FBbkIsbUJBQW1CLGlPQUxuQixDQUFDLHNCQUFzQixDQUFDLDBCQ3JCckMsaW1CQWVBOzs0RkRXYSxtQkFBbUI7a0JBVC9CLFNBQVM7K0JBQ0UsYUFBYSxhQUdaLENBQUMsc0JBQXNCLENBQUMsaUJBQ3BCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07MkhBSXRDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFHbUIsUUFBUTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHJ4LWFuZ3VsYXIvbm8tZXhwbGljaXQtY2hhbmdlLWRldGVjdGlvbi1hcGlzICovXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZ3U25hY2tiYXJNZXNzYWdlIH0gZnJvbSAnLi4vc25hY2tiYXItbWVzc2FnZS5tb2RlbCc7XG5pbXBvcnQgeyBGd1NuYWNrYmFyVGltZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc25hY2tiYXItdGltZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LXNuYWNrYmFyJyxcbiAgc3R5bGVVcmxzOiBbJy4vc25hY2tiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NuYWNrYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbRndTbmFja2JhclRpbWVyU2VydmljZV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcblxuZXhwb3J0IGNsYXNzIEZ3U25hY2tiYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICBASW5wdXQoKSBtZXNzYWdlOiBGd1NuYWNrYmFyTWVzc2FnZTtcbiAgQElucHV0KCkgbWVzc2FnZUR1cmF0aW9uOiBudW1iZXIgPSA5MDAwO1xuICBAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPEZ3U25hY2tiYXJDb21wb25lbnQ+KCk7XG4gIEBPdXRwdXQoKSBkaXNtaXNzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgY29sb3I6ICdwcmltYXJ5JyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInID0gJ3ByaW1hcnknO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY3NzQ2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjc3NDbGFzcyA9ICdmdy1zbmFja2Jhcic7XG4gICAgaWYgKHRoaXMubWVzc2FnZT8uc2V2ZXJpdHkpIHtcbiAgICAgIHJldHVybiBjc3NDbGFzcyArICcgJyArIHRoaXMuY29sb3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjc3NDbGFzcztcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdGltZXJTZXJ2aWNlOiBGd1NuYWNrYmFyVGltZXJTZXJ2aWNlKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWFkeS5lbWl0KHRoaXMpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgc3RhcnRUaW1lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tZXNzYWdlICYmIHRoaXMubWVzc2FnZS5kdXJhdGlvbikge1xuICAgICAgdGhpcy5tZXNzYWdlRHVyYXRpb24gPSB0aGlzLm1lc3NhZ2UuZHVyYXRpb247XG4gICAgfVxuICAgIHRoaXMudGltZXJTZXJ2aWNlLnN0YXJ0KHRoaXMubWVzc2FnZUR1cmF0aW9uKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlRGlzbWlzcygpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBzdG9wVGltZXIoKTogdm9pZCB7XG4gICAgdGhpcy50aW1lclNlcnZpY2Uuc3RvcCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLm1lc3NhZ2Uuc2V2ZXJpdHkpIHtcbiAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZS5pY29uKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlLmljb24gPSAnZG9uZS1jaGVjay10cmFja2VkJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbG9yID0gJ3N1Y2Nlc3MnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZS5pY29uKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlLmljb24gPSAnd2FybmluZy1jaXJjbGUnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29sb3IgPSAnd2FybmluZyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZS5pY29uKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlLmljb24gPSAnd2FybmluZyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWVzc2FnZS5zaG93Q2xvc2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMubWVzc2FnZS5zaG93Q2xvc2UgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlLmR1cmF0aW9uKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlLmR1cmF0aW9uID0gMjkwMDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb2xvciA9ICdkYW5nZXInO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZS5pY29uKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlLmljb24gPSAnaW5mb3JtYXRpb24tY2lyY2xlJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbG9yID0gJ3ByaW1hcnknO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBoYW5kbGVEaXNtaXNzKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzbWlzcy5lbWl0KHRoaXMubWVzc2FnZS5pZCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBoYW5kbGVBY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5hY3Rpb24uZW1pdCh0aGlzLm1lc3NhZ2UuaWQpO1xuICAgIGlmICh0aGlzLm1lc3NhZ2UuYWN0aW9uKSB7XG4gICAgICB0aGlzLm1lc3NhZ2UuYWN0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtZXNzYWdlXCI+XG4gIDxmdy1pY29uICpuZ0lmPVwibWVzc2FnZS5pY29uXCI+e3sgbWVzc2FnZS5pY29uIH19PC9mdy1pY29uPlxuICA8aDQgY2xhc3M9XCJ2aXNpb24taDRcIiAqbmdJZj1cIm1lc3NhZ2UubWVzc2FnZVwiPnt7IG1lc3NhZ2UubWVzc2FnZSB9fTwvaDQ+XG4gIDxmdy1idXR0b25cbiAgICAqbmdJZj1cIm1lc3NhZ2UuYWN0aW9uVGV4dFwiIHR5cGU9XCJnaG9zdFwiXG4gICAgW2NvbG9yXT1cImNvbG9yXCIgc2l6ZT1cInNtYWxsXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlQWN0aW9uKClcIj57eyBtZXNzYWdlLmFjdGlvblRleHQgfX1cbiAgPC9mdy1idXR0b24+XG4gIDxmdy1pY29uLWJ1dHRvblxuICAgICpuZ0lmPVwibWVzc2FnZS5zaG93Q2xvc2VcIlxuICAgIGljb249XCJjbG9zZVwiIHNpemU9XCJzbWFsbFwiIFtjb2xvcl09XCJtZXNzYWdlLnNldmVyaXR5XCJcbiAgICAoY2xpY2spPVwiaGFuZGxlRGlzbWlzcygpXCI+XG4gIDwvZnctaWNvbi1idXR0b24+XG4gIDxkaXYgKm5nSWY9XCIhbWVzc2FnZS5hY3Rpb25UZXh0ICYmICFtZXNzYWdlLnNob3dDbG9zZVwiPjwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -0,0 +1,63 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation, } from '@angular/core';
2
+ import { Subscription } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../snackbar.service";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "../../button/button.component";
7
+ import * as i4 from "../snackbar/snackbar.component";
8
+ export class FwSnackbarContainerComponent {
9
+ get classes() {
10
+ return 'fw-snackbar-container';
11
+ }
12
+ ;
13
+ constructor(cdr, snackbarService) {
14
+ this.cdr = cdr;
15
+ this.snackbarService = snackbarService;
16
+ this.limit = 10;
17
+ this.messages = [];
18
+ this.subscriptions = {
19
+ messages: Subscription.EMPTY,
20
+ };
21
+ this.subscriptions.messages = this.snackbarService.messages$.subscribe((messages) => {
22
+ this.messages = messages;
23
+ // eslint-disable-next-line @rx-angular/no-explicit-change-detection-apis
24
+ this.cdr.markForCheck();
25
+ });
26
+ }
27
+ ngOnDestroy() {
28
+ for (const subscription of Object.values(this.subscriptions)) {
29
+ subscription.unsubscribe();
30
+ }
31
+ }
32
+ onReady(snackbar) {
33
+ const currentMessage = this.messages[this.messages.length - 1];
34
+ currentMessage.ref = snackbar;
35
+ snackbar.startTimer();
36
+ }
37
+ onDismiss(messageId) {
38
+ const message = this.messages.find(currentMessage => currentMessage.id === messageId);
39
+ if (message?.ref) {
40
+ message.ref.stopTimer();
41
+ }
42
+ if (message?.id) {
43
+ this.snackbarService.dismiss(message.id);
44
+ }
45
+ // eslint-disable-next-line @rx-angular/no-explicit-change-detection-apis
46
+ this.cdr.markForCheck();
47
+ }
48
+ clearAll() {
49
+ this.snackbarService.dismissAll();
50
+ // eslint-disable-next-line @rx-angular/no-explicit-change-detection-apis
51
+ this.cdr.markForCheck();
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarContainerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FwSnackbarService }], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwSnackbarContainerComponent, selector: "fw-snackbar-container", host: { properties: { "attr.class": "this.classes" } }, ngImport: i0, template: "<div role=\"list\">\n <div class=\"buttons\">\n <fw-button\n *ngIf=\"messages.length > 0\" (click)=\"clearAll()\"\n class=\"clear-all\" aria-label=\"clear all\"\n color=\"slate\" size=\"small\" type=\"ghost\">\n Clear All\n </fw-button>\n </div>\n <fw-snackbar\n *ngFor=\"let message of messages; index as $index\"\n (ready)=\"onReady($event)\"\n (dismiss)=\"onDismiss($event)\"\n [message]=\"message\"\n [attr.aria-label]=\"message.message\"\n role=\"listitem\"\n ></fw-snackbar>\n</div>\n", styles: ["fw-snackbar-container{position:fixed;right:6px;bottom:10px;z-index:999999}fw-snackbar-container .buttons{text-align:right;padding-right:10px}fw-snackbar-container .buttons fw-button{transition:opacity .1s ease-in;opacity:0}fw-snackbar-container:hover .buttons>fw-button{opacity:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FwButtonComponent, selector: "fw-button", inputs: ["color", "size", "variant", "type", "disabled", "fullWidth", "leftIcon", "rightIcon"] }, { kind: "component", type: i4.FwSnackbarComponent, selector: "fw-snackbar", inputs: ["message", "messageDuration"], outputs: ["ready", "dismiss", "action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarContainerComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'fw-snackbar-container', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div role=\"list\">\n <div class=\"buttons\">\n <fw-button\n *ngIf=\"messages.length > 0\" (click)=\"clearAll()\"\n class=\"clear-all\" aria-label=\"clear all\"\n color=\"slate\" size=\"small\" type=\"ghost\">\n Clear All\n </fw-button>\n </div>\n <fw-snackbar\n *ngFor=\"let message of messages; index as $index\"\n (ready)=\"onReady($event)\"\n (dismiss)=\"onDismiss($event)\"\n [message]=\"message\"\n [attr.aria-label]=\"message.message\"\n role=\"listitem\"\n ></fw-snackbar>\n</div>\n", styles: ["fw-snackbar-container{position:fixed;right:6px;bottom:10px;z-index:999999}fw-snackbar-container .buttons{text-align:right;padding-right:10px}fw-snackbar-container .buttons fw-button{transition:opacity .1s ease-in;opacity:0}fw-snackbar-container:hover .buttons>fw-button{opacity:1}\n"] }]
59
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.FwSnackbarService }], propDecorators: { classes: [{
60
+ type: HostBinding,
61
+ args: ['attr.class']
62
+ }] } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXItY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyLWNvbnRhaW5lci9zbmFja2Jhci1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXItY29udGFpbmVyL3NuYWNrYmFyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxXQUFXLEVBRVgsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQWFwQyxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLElBQStCLE9BQU87UUFDcEMsT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDO0lBQUEsQ0FBQztJQVNGLFlBQW9CLEdBQXNCLEVBQVUsZUFBa0M7UUFBbEUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFQdEYsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGFBQVEsR0FBd0IsRUFBRSxDQUFDO1FBRTNCLGtCQUFhLEdBQUc7WUFDdEIsUUFBUSxFQUFFLFlBQVksQ0FBQyxLQUFLO1NBQzdCLENBQUM7UUFHQSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUE2QixFQUFFLEVBQUU7WUFDdkcsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDekIseUVBQXlFO1lBQ3pFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULEtBQUssTUFBTSxZQUFZLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUM3RCxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsUUFBNkI7UUFDbkMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRCxjQUFjLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQztRQUM5QixRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFpQjtRQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDdEYsSUFBSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCx5RUFBeUU7UUFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEMseUVBQXlFO1FBQ3pFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0FoRFUsNEJBQTRCO21HQUE1Qiw0QkFBNEIscUhDckJ6Qyw0aEJBa0JBOzs0RkRHYSw0QkFBNEI7a0JBUHhDLFNBQVM7K0JBQ0UsdUJBQXVCLGlCQUdsQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO3NIQUdoQixPQUFPO3NCQUFyQyxXQUFXO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIE9uRGVzdHJveSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZ3U25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vc25hY2tiYXIuc2VydmljZSc7XG5pbXBvcnQgeyBGd1NuYWNrYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vc25hY2tiYXIvc25hY2tiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZ3U25hY2tiYXJNZXNzYWdlIH0gZnJvbSAnLi4vc25hY2tiYXItbWVzc2FnZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z3LXNuYWNrYmFyLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbmFja2Jhci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zbmFja2Jhci1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZ3U25hY2tiYXJDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuY2xhc3MnKSBnZXQgY2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZnctc25hY2tiYXItY29udGFpbmVyJztcbiAgfTtcblxuICBsaW1pdCA9IDEwO1xuICBtZXNzYWdlczogRndTbmFja2Jhck1lc3NhZ2VbXSA9IFtdO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IHtcbiAgICBtZXNzYWdlczogU3Vic2NyaXB0aW9uLkVNUFRZLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBzbmFja2JhclNlcnZpY2U6IEZ3U25hY2tiYXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1lc3NhZ2VzID0gdGhpcy5zbmFja2JhclNlcnZpY2UubWVzc2FnZXMkLnN1YnNjcmliZSgobWVzc2FnZXM6IEZ3U25hY2tiYXJNZXNzYWdlW10pID0+IHtcbiAgICAgIHRoaXMubWVzc2FnZXMgPSBtZXNzYWdlcztcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAcngtYW5ndWxhci9uby1leHBsaWNpdC1jaGFuZ2UtZGV0ZWN0aW9uLWFwaXNcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnNjcmlwdGlvbnMpKSB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBvblJlYWR5KHNuYWNrYmFyOiBGd1NuYWNrYmFyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudE1lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VzW3RoaXMubWVzc2FnZXMubGVuZ3RoIC0gMV07XG4gICAgY3VycmVudE1lc3NhZ2UucmVmID0gc25hY2tiYXI7XG4gICAgc25hY2tiYXIuc3RhcnRUaW1lcigpO1xuICB9XG5cbiAgb25EaXNtaXNzKG1lc3NhZ2VJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMubWVzc2FnZXMuZmluZChjdXJyZW50TWVzc2FnZSA9PiBjdXJyZW50TWVzc2FnZS5pZCA9PT0gbWVzc2FnZUlkKTtcbiAgICBpZiAobWVzc2FnZT8ucmVmKSB7XG4gICAgICBtZXNzYWdlLnJlZi5zdG9wVGltZXIoKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2U/LmlkKSB7XG4gICAgICB0aGlzLnNuYWNrYmFyU2VydmljZS5kaXNtaXNzKG1lc3NhZ2UuaWQpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHJ4LWFuZ3VsYXIvbm8tZXhwbGljaXQtY2hhbmdlLWRldGVjdGlvbi1hcGlzXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNuYWNrYmFyU2VydmljZS5kaXNtaXNzQWxsKCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEByeC1hbmd1bGFyL25vLWV4cGxpY2l0LWNoYW5nZS1kZXRlY3Rpb24tYXBpc1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8ZGl2IHJvbGU9XCJsaXN0XCI+XG4gIDxkaXYgY2xhc3M9XCJidXR0b25zXCI+XG4gICAgPGZ3LWJ1dHRvblxuICAgICAgKm5nSWY9XCJtZXNzYWdlcy5sZW5ndGggPiAwXCIgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgICAgY2xhc3M9XCJjbGVhci1hbGxcIiBhcmlhLWxhYmVsPVwiY2xlYXIgYWxsXCJcbiAgICAgIGNvbG9yPVwic2xhdGVcIiBzaXplPVwic21hbGxcIiB0eXBlPVwiZ2hvc3RcIj5cbiAgICAgIENsZWFyIEFsbFxuICAgIDwvZnctYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGZ3LXNuYWNrYmFyXG4gICAgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgbWVzc2FnZXM7IGluZGV4IGFzICRpbmRleFwiXG4gICAgKHJlYWR5KT1cIm9uUmVhZHkoJGV2ZW50KVwiXG4gICAgKGRpc21pc3MpPVwib25EaXNtaXNzKCRldmVudClcIlxuICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibWVzc2FnZS5tZXNzYWdlXCJcbiAgICByb2xlPVwibGlzdGl0ZW1cIlxuICA+PC9mdy1zbmFja2Jhcj5cbjwvZGl2PlxuIl19
@@ -8,21 +8,21 @@ import { FwSnackbarComponent } from './snackbar/snackbar.component';
8
8
  import { FwSnackbarContainerComponent } from './snackbar-container/snackbar-container.component';
9
9
  import * as i0 from "@angular/core";
10
10
  export class FwSnackbarModule {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarModule, declarations: [FwSnackbarComponent,
13
+ FwSnackbarContainerComponent], imports: [CommonModule,
14
+ FwButtonModule,
15
+ FwIconButtonModule,
16
+ FwIconModule], exports: [FwSnackbarComponent,
17
+ FwSnackbarContainerComponent] }); }
18
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarModule, providers: [
19
+ FwSnackbarService,
20
+ ], imports: [CommonModule,
21
+ FwButtonModule,
22
+ FwIconButtonModule,
23
+ FwIconModule] }); }
11
24
  }
12
- FwSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FwSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- FwSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FwSnackbarModule, declarations: [FwSnackbarComponent,
14
- FwSnackbarContainerComponent], imports: [CommonModule,
15
- FwButtonModule,
16
- FwIconButtonModule,
17
- FwIconModule], exports: [FwSnackbarComponent,
18
- FwSnackbarContainerComponent] });
19
- FwSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FwSnackbarModule, providers: [
20
- FwSnackbarService,
21
- ], imports: [CommonModule,
22
- FwButtonModule,
23
- FwIconButtonModule,
24
- FwIconModule] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FwSnackbarModule, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  imports: [
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
44
44
  ],
45
45
  }]
46
46
  }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBcUJqRyxNQUFNLE9BQU8sZ0JBQWdCOzs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBUHpCLG1CQUFtQjtRQUNuQiw0QkFBNEIsYUFYNUIsWUFBWTtRQUNaLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsWUFBWSxhQUdaLG1CQUFtQjtRQUNuQiw0QkFBNEI7K0dBVW5CLGdCQUFnQixhQUpoQjtRQUNULGlCQUFpQjtLQUNsQixZQWZDLFlBQVk7UUFDWixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLFlBQVk7NEZBY0gsZ0JBQWdCO2tCQW5CNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQiw0QkFBNEI7cUJBQzdCO29CQUNELFlBQVksRUFBRTt3QkFDWixtQkFBbUI7d0JBQ25CLDRCQUE0QjtxQkFDN0I7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGlCQUFpQjtxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRndCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBGd0ljb25Nb2R1bGUgfSBmcm9tICcuLi9pY29uL2ljb24ubW9kdWxlJztcbmltcG9ydCB7IEZ3SWNvbkJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBGd1NuYWNrYmFyU2VydmljZSB9IGZyb20gJy4vc25hY2tiYXIuc2VydmljZSc7XG5pbXBvcnQgeyBGd1NuYWNrYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRndTbmFja2JhckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vc25hY2tiYXItY29udGFpbmVyL3NuYWNrYmFyLWNvbnRhaW5lci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZ3QnV0dG9uTW9kdWxlLFxuICAgIEZ3SWNvbkJ1dHRvbk1vZHVsZSxcbiAgICBGd0ljb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGd1NuYWNrYmFyQ29tcG9uZW50LFxuICAgIEZ3U25hY2tiYXJDb250YWluZXJDb21wb25lbnQsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEZ3U25hY2tiYXJDb21wb25lbnQsXG4gICAgRndTbmFja2JhckNvbnRhaW5lckNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRndTbmFja2JhclNlcnZpY2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZ3U25hY2tiYXJNb2R1bGUge1xufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBcUJqRyxNQUFNLE9BQU8sZ0JBQWdCOytHQUFoQixnQkFBZ0I7Z0hBQWhCLGdCQUFnQixpQkFQekIsbUJBQW1CO1lBQ25CLDRCQUE0QixhQVg1QixZQUFZO1lBQ1osY0FBYztZQUNkLGtCQUFrQjtZQUNsQixZQUFZLGFBR1osbUJBQW1CO1lBQ25CLDRCQUE0QjtnSEFVbkIsZ0JBQWdCLGFBSmhCO1lBQ1QsaUJBQWlCO1NBQ2xCLFlBZkMsWUFBWTtZQUNaLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsWUFBWTs7NEZBY0gsZ0JBQWdCO2tCQW5CNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQiw0QkFBNEI7cUJBQzdCO29CQUNELFlBQVksRUFBRTt3QkFDWixtQkFBbUI7d0JBQ25CLDRCQUE0QjtxQkFDN0I7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGlCQUFpQjtxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRndCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBGd0ljb25Nb2R1bGUgfSBmcm9tICcuLi9pY29uL2ljb24ubW9kdWxlJztcbmltcG9ydCB7IEZ3SWNvbkJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBGd1NuYWNrYmFyU2VydmljZSB9IGZyb20gJy4vc25hY2tiYXIuc2VydmljZSc7XG5pbXBvcnQgeyBGd1NuYWNrYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRndTbmFja2JhckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vc25hY2tiYXItY29udGFpbmVyL3NuYWNrYmFyLWNvbnRhaW5lci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZ3QnV0dG9uTW9kdWxlLFxuICAgIEZ3SWNvbkJ1dHRvbk1vZHVsZSxcbiAgICBGd0ljb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBGd1NuYWNrYmFyQ29tcG9uZW50LFxuICAgIEZ3U25hY2tiYXJDb250YWluZXJDb21wb25lbnQsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEZ3U25hY2tiYXJDb21wb25lbnQsXG4gICAgRndTbmFja2JhckNvbnRhaW5lckNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRndTbmFja2JhclNlcnZpY2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZ3U25hY2tiYXJNb2R1bGUge1xufVxuIl19
@@ -0,0 +1,36 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export function genMessageId() {
5
+ return String.prototype.padStart(24, Math.floor(Math.random() * Date.now()).toString(16));
6
+ }
7
+ export class FwSnackbarService {
8
+ constructor() {
9
+ this.messages$ = new BehaviorSubject([]);
10
+ this.messageQueue = [];
11
+ }
12
+ show(message) {
13
+ if (!message.id) {
14
+ message.id = genMessageId();
15
+ }
16
+ this.messageQueue.push(message);
17
+ this.messages$.next(this.messageQueue);
18
+ }
19
+ dismiss(messageId) {
20
+ this.messageQueue = this.messageQueue.filter((v) => v.id !== messageId);
21
+ this.messages$.next(this.messageQueue);
22
+ }
23
+ dismissAll() {
24
+ this.messageQueue = [];
25
+ this.messages$.next(this.messageQueue);
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
28
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarService, providedIn: 'root' }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwSnackbarService, decorators: [{
31
+ type: Injectable,
32
+ args: [{
33
+ providedIn: 'root',
34
+ }]
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUl2QyxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDO0FBS0QsTUFBTSxPQUFPLGlCQUFpQjtJQUg5QjtRQUlXLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsRUFBRSxDQUFDLENBQUM7UUFDMUQsaUJBQVksR0FBd0IsRUFBRSxDQUFDO0tBb0JoRDtJQWxCQyxJQUFJLENBQUMsT0FBMEI7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELE9BQU8sQ0FBQyxTQUFpQjtRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQXJCVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZ3U25hY2tiYXJNZXNzYWdlIH0gZnJvbSAnLi9zbmFja2Jhci1tZXNzYWdlLm1vZGVsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdlbk1lc3NhZ2VJZCgpOiBzdHJpbmcge1xuICByZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydCgyNCwgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkudG9TdHJpbmcoMTYpKTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZ3U25hY2tiYXJTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgbWVzc2FnZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGd1NuYWNrYmFyTWVzc2FnZVtdPihbXSk7XG4gIHByaXZhdGUgbWVzc2FnZVF1ZXVlOiBGd1NuYWNrYmFyTWVzc2FnZVtdID0gW107XG5cbiAgc2hvdyhtZXNzYWdlOiBGd1NuYWNrYmFyTWVzc2FnZSk6IHZvaWQge1xuICAgIGlmICghbWVzc2FnZS5pZCkge1xuICAgICAgbWVzc2FnZS5pZCA9IGdlbk1lc3NhZ2VJZCgpO1xuICAgIH1cblxuICAgIHRoaXMubWVzc2FnZVF1ZXVlLnB1c2gobWVzc2FnZSk7XG4gICAgdGhpcy5tZXNzYWdlcyQubmV4dCh0aGlzLm1lc3NhZ2VRdWV1ZSk7XG4gIH1cblxuICBkaXNtaXNzKG1lc3NhZ2VJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlUXVldWUgPSB0aGlzLm1lc3NhZ2VRdWV1ZS5maWx0ZXIoKHYpID0+IHYuaWQgIT09IG1lc3NhZ2VJZCk7XG4gICAgdGhpcy5tZXNzYWdlcyQubmV4dCh0aGlzLm1lc3NhZ2VRdWV1ZSk7XG4gIH1cblxuICBkaXNtaXNzQWxsKCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZVF1ZXVlID0gW107XG4gICAgdGhpcy5tZXNzYWdlcyQubmV4dCh0aGlzLm1lc3NhZ2VRdWV1ZSk7XG4gIH1cbn1cblxuIl19
@@ -0,0 +1,113 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../icon/icon.component";
5
+ export class FwStepComponent {
6
+ constructor() {
7
+ this.color = 'slate';
8
+ this.variant = 'number';
9
+ this.alignment = 'left';
10
+ this.backgroundColor = 'var(--card-background)';
11
+ // eslint-disable-next-line @angular-eslint/no-output-native
12
+ this.select = new EventEmitter();
13
+ }
14
+ handleClick() {
15
+ if (this.completed && !this.done && !this.disabled) {
16
+ this.select.emit(this.stepNumber);
17
+ }
18
+ }
19
+ ngOnChanges(changes) {
20
+ if (changes.status) {
21
+ this.active = false;
22
+ this.disabled = false;
23
+ this.completed = false;
24
+ this.done = false;
25
+ this.color = 'slate';
26
+ switch (changes.status.currentValue) {
27
+ case 'active':
28
+ this.active = true;
29
+ break;
30
+ case 'completed':
31
+ this.completed = true;
32
+ break;
33
+ case 'done':
34
+ this.done = true;
35
+ break;
36
+ case 'disabled':
37
+ this.disabled = true;
38
+ break;
39
+ case 'error':
40
+ this.color = 'error';
41
+ break;
42
+ case 'warning':
43
+ this.color = 'warning';
44
+ break;
45
+ case 'info':
46
+ this.color = 'info';
47
+ break;
48
+ case 'default':
49
+ default:
50
+ // handled in init
51
+ break;
52
+ }
53
+ }
54
+ if (changes.active && changes.active.previousValue === false) {
55
+ this.status = 'active';
56
+ }
57
+ if (changes.completed && changes.completed.previousValue === false) {
58
+ this.status = 'completed';
59
+ }
60
+ if (changes.done && changes.done.previousValue === false) {
61
+ this.status = 'done';
62
+ }
63
+ if (changes.disabled && changes.disabled.previousValue === false) {
64
+ this.status = 'disabled';
65
+ }
66
+ if (this.color === 'slate' && !this.active && !this.completed && !this.done && !this.disabled) {
67
+ this.status = 'default';
68
+ }
69
+ }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwStepComponent, selector: "fw-step", inputs: { stepNumber: "stepNumber", color: "color", variant: "variant", alignment: "alignment", backgroundColor: "backgroundColor", title: "title", description: "description", icon: "icon", disabled: "disabled", active: "active", completed: "completed", done: "done", status: "status" }, outputs: { select: "select" }, usesOnChanges: true, ngImport: i0, template: "<div\n [ngClass]=\"['step-wrapper', 'step-color-'+color, 'step-alignment-'+alignment]\"\n [class.disabled]=\"disabled\"\n [class.active]=\"active\"\n [class.completed]=\"completed\"\n [class.done]=\"done\"\n (click)=\"handleClick()\">\n <div class=\"step-connector\"></div>\n <div class=\"step-content\" [style]=\"{backgroundColor: backgroundColor}\">\n <div\n class=\"step-decorator-wrapper\"\n [style]=\"{outlineColor: backgroundColor, backgroundColor: backgroundColor}\">\n <div *ngIf=\"done; else notDone\" class=\"step-done\" [style]=\"{outlineColor: backgroundColor}\">\n <fw-icon size=\"small\">done-check</fw-icon>\n </div>\n </div>\n <ng-template #notDone>\n <div *ngIf=\"variant==='number'\" class=\"step-number\">\n <h5 class=\"vision-h5\">{{ stepNumber }}</h5>\n </div>\n <div *ngIf=\"variant==='icon'\" class=\"step-icon\">\n <fw-icon size=\"small\">{{ icon }}</fw-icon>\n </div>\n <div *ngIf=\"variant==='decorator'\" class=\"step-decorator\">\n <ng-content select=\"fw-step-decorator\"></ng-content>\n </div>\n </ng-template>\n <div class=\"step-text\">\n <h4 class=\"vision-h4\">{{ title }}</h4>\n <p *ngIf=\"description\" class=\"vision-p4 description\">{{ description }}</p>\n </div>\n </div>\n</div>\n", styles: [":host{box-sizing:border-box;position:relative;flex:1;display:flex;align-items:flex-start;justify-content:center}:host .step-connector{position:absolute;left:-50%;right:0;top:17px;height:1px;width:100%;background-color:var(--separations-base);z-index:49}:host:first-of-type .step-connector{display:none}:host .step-content{position:relative;z-index:50}:host .step-number{box-sizing:border-box;display:flex;width:24px;height:24px;margin:5px 8px;padding:9px;flex-direction:column;justify-content:center;align-items:center;border-radius:64px;border:1px solid var(--separations-base);background:var(--slate-hover)}:host .step-number h5{color:inherit;margin:0}:host .step-icon{box-sizing:border-box;display:flex;width:24px;height:24px;margin:5px 8px;flex-direction:column;justify-content:center;align-items:center;background-color:var(--card-background);color:var(--typography-muted);font-size:24px}:host .step-decorator{box-sizing:border-box;display:flex;width:24px;height:24px;margin:5px 8px;flex-direction:column;justify-content:center;align-items:center;background-color:var(--card-background);font-size:24px}:host .step-done{box-sizing:border-box;display:flex;width:24px;height:24px;margin:5px 8px;flex-direction:column;justify-content:center;align-items:center;border-radius:64px;color:var(--typography-contrast);background-color:var(--green-base);font-size:16px}:host .step-text{flex:1;display:flex;flex-direction:column;justify-content:center;color:var(--typography-muted);font-size:14px;font-weight:500;line-height:130%}:host .step-text h4{margin:0;white-space:nowrap;color:var(--typography-muted)}:host .step-text p{margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-y:hidden;text-overflow:ellipsis}:host .step-text .description{color:var(--typography-muted);font-size:10px;font-weight:400;line-height:12px}:host .step-alignment-center .step-content{background-color:transparent!important;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}:host .step-alignment-center .step-content .step-text{align-items:center}:host .step-alignment-left .step-content{background-color:var(--card-background);padding-right:10px;display:flex;flex-direction:row}:host .active .step-number{background-color:transparent;border:1px solid var(--primary-base);color:var(--primary-base)}:host .active .step-icon{color:var(--primary-base)}:host .active .step-text{color:var(--primary-base)}:host .active .step-text h4{color:var(--primary-base)}:host .active .step-connector{background-color:var(--primary-base)}:host .completed .step-number,:host .completed .step-icon{background-color:var(--primary-base);border:1px solid var(--primary-base);color:var(--typography-contrast)}:host .completed .step-icon{background-color:transparent;border:none;color:var(--primary-base)}:host .completed .step-text{color:var(--typography-base)}:host .completed .step-text h4{color:var(--typography-base)}:host .completed .step-connector{background-color:var(--primary-base)}:host .completed:not(.done){cursor:pointer}:host .done .step-connector{background-color:var(--green-base)}:host .step-color-error .step-number{background-color:var(--red-hover);color:var(--red-base)}:host .step-color-error .step-icon{color:var(--red-base)}:host .step-color-error .step-text{color:var(--red-base)}:host .step-color-error .step-text h4{color:var(--red-base)}:host .step-color-error .step-text .description{color:var(--red-base)}:host .step-color-error.active{color:var(--red-base)}:host .step-color-error.active .step-number{border-color:var(--red-base);color:var(--red-base)}:host .step-color-error.completed .step-number{color:var(--typography-contrast);border-color:var(--red-base);background-color:var(--red-base)}:host .step-color-error.completed .step-icon{background-color:transparent;border:none}:host .step-color-warning .step-number{background-color:var(--orange-hover);color:var(--orange-base)}:host .step-color-warning .step-icon{color:var(--orange-base)}:host .step-color-warning .step-text{color:var(--orange-base)}:host .step-color-warning .step-text h4{color:var(--orange-base)}:host .step-color-warning .step-text .description{color:var(--orange-base)}:host .step-color-warning.active{color:var(--orange-base)}:host .step-color-warning.active .step-number{border-color:var(--orange-base);color:var(--orange-base)}:host .step-color-warning.completed .step-number{color:var(--typography-contrast);border-color:var(--orange-base);background-color:var(--orange-base)}:host .step-color-warning.completed .step-icon{background-color:transparent;border:none}:host .step-color-success .step-number{background-color:var(--green-hover);color:var(--green-base)}:host .step-color-success .step-icon{color:var(--green-base)}:host .step-color-success .step-text{color:var(--green-base)}:host .step-color-success .step-text h4{color:var(--green-base)}:host .step-color-success .step-text .description{color:var(--green-base)}:host .step-color-success.active{color:var(--green-base)}:host .step-color-success.active .step-number{border-color:var(--green-base);color:var(--green-base)}:host .step-color-success.completed .step-number{color:var(--typography-contrast);border-color:var(--green-base);background-color:var(--green-base)}:host .step-color-success.completed .step-icon{background-color:transparent;border:none}:host .step-color-info .step-number{background-color:var(--primary-hover);color:var(--primary-base)}:host .step-color-info .step-icon{color:var(--primary-base)}:host .step-color-info .step-text{color:var(--primary-base)}:host .step-color-info .step-text h4{color:var(--primary-base)}:host .step-color-info .step-text .description{color:var(--primary-base)}:host .step-color-info.active{color:var(--primary-base)}:host .step-color-info.active .step-number{background-color:var(--typography-contrast);border-color:var(--primary-base);color:var(--primary-base)}:host .step-color-info.completed .step-number{color:var(--typography-contrast);border-color:var(--primary-base);background-color:var(--primary-base)}:host .step-color-info.completed .step-icon{background-color:transparent;border:none}:host .disabled .step-text{color:var(--typography-muted);opacity:.4}:host .disabled .step-text h4{color:var(--typography-muted)}:host .disabled .step-text .description{color:var(--typography-muted)}:host .disabled .step-number{color:var(--typography-muted);border-color:var(--separations-base);background-color:var(--slate-focus)}:host .disabled .step-icon{opacity:.4;color:var(--typography-muted);background-color:var(--typography-contrast);border-color:var(--typography-contrast)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }] }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwStepComponent, decorators: [{
74
+ type: Component,
75
+ args: [{ selector: 'fw-step', template: "<div\n [ngClass]=\"['step-wrapper', 'step-color-'+color, 'step-alignment-'+alignment]\"\n [class.disabled]=\"disabled\"\n [class.active]=\"active\"\n [class.completed]=\"completed\"\n [class.done]=\"done\"\n (click)=\"handleClick()\">\n <div class=\"step-connector\"></div>\n <div class=\"step-content\" [style]=\"{backgroundColor: backgroundColor}\">\n <div\n class=\"step-decorator-wrapper\"\n [style]=\"{outlineColor: backgroundColor, backgroundColor: backgroundColor}\">\n <div *ngIf=\"done; else notDone\" class=\"step-done\" [style]=\"{outlineColor: backgroundColor}\">\n <fw-icon size=\"small\">done-check</fw-icon>\n </div>\n </div>\n <ng-template #notDone>\n <div *ngIf=\"variant==='number'\" class=\"step-number\">\n <h5 class=\"vision-h5\">{{ stepNumber }}</h5>\n </div>\n <div *ngIf=\"variant==='icon'\" class=\"step-icon\">\n <fw-icon size=\"small\">{{ icon }}</fw-icon>\n </div>\n <div *ngIf=\"variant==='decorator'\" class=\"step-decorator\">\n <ng-content select=\"fw-step-decorator\"></ng-content>\n </div>\n </ng-template>\n <div class=\"step-text\">\n <h4 class=\"vision-h4\">{{ title }}</h4>\n <p *ngIf=\"description\" class=\"vision-p4 description\">{{ description }}</p>\n </div>\n </div>\n</div>\n", styles: [":host{box-sizing:border-box;position:relative;flex:1;display:flex;align-items:flex-start;justify-content:center}:host .step-connector{position:absolute;left:-50%;right:0;top:17px;height:1px;width:100%;background-color:var(--separations-base);z-index:49}:host:first-of-type .step-connector{display:none}:host .step-content{position:relative;z-index:50}:host .step-number{box-sizing:border-box;display:flex;width:24px;height:24px;margin:5px 8px;padding:9px;flex-direction:column;justify-content:center;align-items:center;border-radius:64px;border:1px solid var(--separations-base);background:var(--slate-hover)}:host .step-number h5{color:inherit;margin:0}:host .step-icon{box-sizing:border-box;display:flex;width:24px;height:24px;margin:5px 8px;flex-direction:column;justify-content:center;align-items:center;background-color:var(--card-background);color:var(--typography-muted);font-size:24px}:host .step-decorator{box-sizing:border-box;display:flex;width:24px;height:24px;margin:5px 8px;flex-direction:column;justify-content:center;align-items:center;background-color:var(--card-background);font-size:24px}:host .step-done{box-sizing:border-box;display:flex;width:24px;height:24px;margin:5px 8px;flex-direction:column;justify-content:center;align-items:center;border-radius:64px;color:var(--typography-contrast);background-color:var(--green-base);font-size:16px}:host .step-text{flex:1;display:flex;flex-direction:column;justify-content:center;color:var(--typography-muted);font-size:14px;font-weight:500;line-height:130%}:host .step-text h4{margin:0;white-space:nowrap;color:var(--typography-muted)}:host .step-text p{margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-y:hidden;text-overflow:ellipsis}:host .step-text .description{color:var(--typography-muted);font-size:10px;font-weight:400;line-height:12px}:host .step-alignment-center .step-content{background-color:transparent!important;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}:host .step-alignment-center .step-content .step-text{align-items:center}:host .step-alignment-left .step-content{background-color:var(--card-background);padding-right:10px;display:flex;flex-direction:row}:host .active .step-number{background-color:transparent;border:1px solid var(--primary-base);color:var(--primary-base)}:host .active .step-icon{color:var(--primary-base)}:host .active .step-text{color:var(--primary-base)}:host .active .step-text h4{color:var(--primary-base)}:host .active .step-connector{background-color:var(--primary-base)}:host .completed .step-number,:host .completed .step-icon{background-color:var(--primary-base);border:1px solid var(--primary-base);color:var(--typography-contrast)}:host .completed .step-icon{background-color:transparent;border:none;color:var(--primary-base)}:host .completed .step-text{color:var(--typography-base)}:host .completed .step-text h4{color:var(--typography-base)}:host .completed .step-connector{background-color:var(--primary-base)}:host .completed:not(.done){cursor:pointer}:host .done .step-connector{background-color:var(--green-base)}:host .step-color-error .step-number{background-color:var(--red-hover);color:var(--red-base)}:host .step-color-error .step-icon{color:var(--red-base)}:host .step-color-error .step-text{color:var(--red-base)}:host .step-color-error .step-text h4{color:var(--red-base)}:host .step-color-error .step-text .description{color:var(--red-base)}:host .step-color-error.active{color:var(--red-base)}:host .step-color-error.active .step-number{border-color:var(--red-base);color:var(--red-base)}:host .step-color-error.completed .step-number{color:var(--typography-contrast);border-color:var(--red-base);background-color:var(--red-base)}:host .step-color-error.completed .step-icon{background-color:transparent;border:none}:host .step-color-warning .step-number{background-color:var(--orange-hover);color:var(--orange-base)}:host .step-color-warning .step-icon{color:var(--orange-base)}:host .step-color-warning .step-text{color:var(--orange-base)}:host .step-color-warning .step-text h4{color:var(--orange-base)}:host .step-color-warning .step-text .description{color:var(--orange-base)}:host .step-color-warning.active{color:var(--orange-base)}:host .step-color-warning.active .step-number{border-color:var(--orange-base);color:var(--orange-base)}:host .step-color-warning.completed .step-number{color:var(--typography-contrast);border-color:var(--orange-base);background-color:var(--orange-base)}:host .step-color-warning.completed .step-icon{background-color:transparent;border:none}:host .step-color-success .step-number{background-color:var(--green-hover);color:var(--green-base)}:host .step-color-success .step-icon{color:var(--green-base)}:host .step-color-success .step-text{color:var(--green-base)}:host .step-color-success .step-text h4{color:var(--green-base)}:host .step-color-success .step-text .description{color:var(--green-base)}:host .step-color-success.active{color:var(--green-base)}:host .step-color-success.active .step-number{border-color:var(--green-base);color:var(--green-base)}:host .step-color-success.completed .step-number{color:var(--typography-contrast);border-color:var(--green-base);background-color:var(--green-base)}:host .step-color-success.completed .step-icon{background-color:transparent;border:none}:host .step-color-info .step-number{background-color:var(--primary-hover);color:var(--primary-base)}:host .step-color-info .step-icon{color:var(--primary-base)}:host .step-color-info .step-text{color:var(--primary-base)}:host .step-color-info .step-text h4{color:var(--primary-base)}:host .step-color-info .step-text .description{color:var(--primary-base)}:host .step-color-info.active{color:var(--primary-base)}:host .step-color-info.active .step-number{background-color:var(--typography-contrast);border-color:var(--primary-base);color:var(--primary-base)}:host .step-color-info.completed .step-number{color:var(--typography-contrast);border-color:var(--primary-base);background-color:var(--primary-base)}:host .step-color-info.completed .step-icon{background-color:transparent;border:none}:host .disabled .step-text{color:var(--typography-muted);opacity:.4}:host .disabled .step-text h4{color:var(--typography-muted)}:host .disabled .step-text .description{color:var(--typography-muted)}:host .disabled .step-number{color:var(--typography-muted);border-color:var(--separations-base);background-color:var(--slate-focus)}:host .disabled .step-icon{opacity:.4;color:var(--typography-muted);background-color:var(--typography-contrast);border-color:var(--typography-contrast)}\n"] }]
76
+ }], propDecorators: { stepNumber: [{
77
+ type: Input
78
+ }], color: [{
79
+ type: Input
80
+ }], variant: [{
81
+ type: Input
82
+ }], alignment: [{
83
+ type: Input
84
+ }], backgroundColor: [{
85
+ type: Input
86
+ }], title: [{
87
+ type: Input
88
+ }], description: [{
89
+ type: Input
90
+ }], icon: [{
91
+ type: Input
92
+ }], disabled: [{
93
+ type: Input
94
+ }], active: [{
95
+ type: Input
96
+ }], completed: [{
97
+ type: Input
98
+ }], done: [{
99
+ type: Input
100
+ }], status: [{
101
+ type: Input
102
+ }], select: [{
103
+ type: Output
104
+ }] } });
105
+ export class FwStepDecoratorComponent {
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwStepDecoratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwStepDecoratorComponent, selector: "fw-step-decorator", ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
108
+ }
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwStepDecoratorComponent, decorators: [{
110
+ type: Component,
111
+ args: [{ selector: 'fw-step-decorator', template: '<ng-content></ng-content>' }]
112
+ }] });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc3RlcHBlci9zdGVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7O0FBU2pHLE1BQU0sT0FBTyxlQUFlO0lBTDVCO1FBT1csVUFBSyxHQUF3RCxPQUFPLENBQUM7UUFDckUsWUFBTyxHQUFxQyxRQUFRLENBQUM7UUFDckQsY0FBUyxHQUF1QixNQUFNLENBQUM7UUFDdkMsb0JBQWUsR0FBWSx3QkFBd0IsQ0FBQztRQVM3RCw0REFBNEQ7UUFDbEQsV0FBTSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0tBMkRyRTtJQXpEQyxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7WUFDckIsUUFB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RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi4vaWNvbi9pY29uLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctc3RlcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGd1N0ZXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzdGVwTnVtYmVyOiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvbG9yPzogJ3NsYXRlJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnaW5mbycgPSAnc2xhdGUnO1xuICBASW5wdXQoKSB2YXJpYW50PzogJ251bWJlcicgfCAnaWNvbicgfCAnZGVjb3JhdG9yJyA9ICdudW1iZXInO1xuICBASW5wdXQoKSBhbGlnbm1lbnQ/OiAnbGVmdCcgfCAnY2VudGVyJyA9ICdsZWZ0JztcbiAgQElucHV0KCkgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nID0gJ3ZhcigtLWNhcmQtYmFja2dyb3VuZCknO1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgQElucHV0KCkgaWNvbj86IEljb25UeXBlO1xuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFjdGl2ZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNvbXBsZXRlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRvbmU/OiBib29sZWFuO1xuICBASW5wdXQoKSBzdGF0dXM/OiAnZGVmYXVsdCcgfCAnYWN0aXZlJyB8ICdjb21wbGV0ZWQnIHwgJ2RvbmUnIHwgJ2Rpc2FibGVkJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnaW5mbyc7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgc2VsZWN0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGhhbmRsZUNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBsZXRlZCAmJiAhdGhpcy5kb25lICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlbGVjdC5lbWl0KHRoaXMuc3RlcE51bWJlcik7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnN0YXR1cykge1xuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29tcGxldGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmRvbmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29sb3IgPSAnc2xhdGUnO1xuICAgICAgc3dpdGNoIChjaGFuZ2VzLnN0YXR1cy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgY2FzZSAnYWN0aXZlJzpcbiAgICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2NvbXBsZXRlZCc6XG4gICAgICAgICAgdGhpcy5jb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkb25lJzpcbiAgICAgICAgICB0aGlzLmRvbmUgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkaXNhYmxlZCc6XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICB0aGlzLmNvbG9yID0gJ2Vycm9yJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgdGhpcy5jb2xvciA9ICd3YXJuaW5nJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgICAgdGhpcy5jb2xvciA9ICdpbmZvJztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgLy8gaGFuZGxlZCBpbiBpbml0XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmFjdGl2ZSAmJiBjaGFuZ2VzLmFjdGl2ZS5wcmV2aW91c1ZhbHVlID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5zdGF0dXMgPSAnYWN0aXZlJztcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuY29tcGxldGVkICYmIGNoYW5nZXMuY29tcGxldGVkLnByZXZpb3VzVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9ICdjb21wbGV0ZWQnO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5kb25lICYmIGNoYW5nZXMuZG9uZS5wcmV2aW91c1ZhbHVlID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5zdGF0dXMgPSAnZG9uZSc7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmRpc2FibGVkICYmIGNoYW5nZXMuZGlzYWJsZWQucHJldmlvdXNWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuc3RhdHVzID0gJ2Rpc2FibGVkJztcbiAgICB9XG4gICAgaWYgKHRoaXMuY29sb3IgPT09ICdzbGF0ZScgJiYgIXRoaXMuYWN0aXZlICYmICF0aGlzLmNvbXBsZXRlZCAmJiAhdGhpcy5kb25lICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnN0YXR1cyA9ICdkZWZhdWx0JztcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnctc3RlcC1kZWNvcmF0b3InLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdHlsZVVybHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBGd1N0ZXBEZWNvcmF0b3JDb21wb25lbnQge1xufVxuIiwiPGRpdlxuICBbbmdDbGFzc109XCJbJ3N0ZXAtd3JhcHBlcicsICdzdGVwLWNvbG9yLScrY29sb3IsICdzdGVwLWFsaWdubWVudC0nK2FsaWdubWVudF1cIlxuICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVwiXG4gIFtjbGFzcy5jb21wbGV0ZWRdPVwiY29tcGxldGVkXCJcbiAgW2NsYXNzLmRvbmVdPVwiZG9uZVwiXG4gIChjbGljayk9XCJoYW5kbGVDbGljaygpXCI+XG4gIDxkaXYgY2xhc3M9XCJzdGVwLWNvbm5lY3RvclwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic3RlcC1jb250ZW50XCIgW3N0eWxlXT1cIntiYWNrZ3JvdW5kQ29sb3I6IGJhY2tncm91bmRDb2xvcn1cIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInN0ZXAtZGVjb3JhdG9yLXdyYXBwZXJcIlxuICAgICAgW3N0eWxlXT1cIntvdXRsaW5lQ29sb3I6IGJhY2tncm91bmRDb2xvciwgYmFja2dyb3VuZENvbG9yOiBiYWNrZ3JvdW5kQ29sb3J9XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZG9uZTsgZWxzZSBub3REb25lXCIgY2xhc3M9XCJzdGVwLWRvbmVcIiBbc3R5bGVdPVwie291dGxpbmVDb2xvcjogYmFja2dyb3VuZENvbG9yfVwiPlxuICAgICAgICA8ZnctaWNvbiBzaXplPVwic21hbGxcIj5kb25lLWNoZWNrPC9mdy1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNub3REb25lPlxuICAgICAgPGRpdiAqbmdJZj1cInZhcmlhbnQ9PT0nbnVtYmVyJ1wiIGNsYXNzPVwic3RlcC1udW1iZXJcIj5cbiAgICAgICAgPGg1IGNsYXNzPVwidmlzaW9uLWg1XCI+e3sgc3RlcE51bWJlciB9fTwvaDU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJ2YXJpYW50PT09J2ljb24nXCIgY2xhc3M9XCJzdGVwLWljb25cIj5cbiAgICAgICAgPGZ3LWljb24gc2l6ZT1cInNtYWxsXCI+e3sgaWNvbiB9fTwvZnctaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInZhcmlhbnQ9PT0nZGVjb3JhdG9yJ1wiIGNsYXNzPVwic3RlcC1kZWNvcmF0b3JcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZnctc3RlcC1kZWNvcmF0b3JcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJzdGVwLXRleHRcIj5cbiAgICAgIDxoNCBjbGFzcz1cInZpc2lvbi1oNFwiPnt7IHRpdGxlIH19PC9oND5cbiAgICAgIDxwICpuZ0lmPVwiZGVzY3JpcHRpb25cIiBjbGFzcz1cInZpc2lvbi1wNCBkZXNjcmlwdGlvblwiPnt7IGRlc2NyaXB0aW9uIH19PC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,95 @@
1
+ import { Component, ContentChildren, EventEmitter, HostBinding, Input, Output, } from '@angular/core';
2
+ import { FwStepComponent } from './step.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/platform-browser";
5
+ export class FwStepperComponent {
6
+ get style() {
7
+ return this.sanitizer.bypassSecurityTrustStyle(`
8
+ display: flex;
9
+ background-color: ${this.backgroundColor};
10
+ `);
11
+ }
12
+ constructor(sanitizer) {
13
+ this.sanitizer = sanitizer;
14
+ this.activeStep = 1;
15
+ this.alignment = 'left';
16
+ this.backgroundColor = 'var(--card-background)';
17
+ this.stepChange = new EventEmitter();
18
+ this.subscriptions = [];
19
+ }
20
+ ngOnDestroy() {
21
+ for (const subscription of this.subscriptions) {
22
+ subscription.unsubscribe();
23
+ }
24
+ }
25
+ ngOnChanges(changes) {
26
+ if (changes) {
27
+ this.updateSteps();
28
+ }
29
+ }
30
+ ngAfterContentInit() {
31
+ this.steps.forEach(step => {
32
+ const sub = step.select.subscribe(step => this.handleSelect(step));
33
+ this.subscriptions.push(sub);
34
+ });
35
+ this.updateSteps();
36
+ }
37
+ handleSelect(step) {
38
+ this.activeStep = step;
39
+ this.stepChange.emit(parseInt(step.toString())); // weirdly passing out step directly fails the eqeqeq
40
+ this.updateSteps();
41
+ }
42
+ updateSteps() {
43
+ if (this.steps && this.steps.length > 0) {
44
+ this.steps.forEach(step => {
45
+ if (step.stepNumber < this.activeStep) {
46
+ step.completed = true;
47
+ step.active = false;
48
+ step.done = false;
49
+ step.backgroundColor = this.backgroundColor;
50
+ step.alignment = this.alignment;
51
+ }
52
+ if (step.stepNumber.toString() === this.activeStep.toString()) {
53
+ step.completed = false;
54
+ step.active = true;
55
+ step.done = false;
56
+ step.backgroundColor = this.backgroundColor;
57
+ step.alignment = this.alignment;
58
+ }
59
+ if (step.stepNumber > this.activeStep) {
60
+ step.completed = false;
61
+ step.active = false;
62
+ step.done = false;
63
+ step.backgroundColor = this.backgroundColor;
64
+ step.alignment = this.alignment;
65
+ }
66
+ if (Boolean(this.doneStep) && step.stepNumber <= this.doneStep) {
67
+ step.done = true;
68
+ }
69
+ });
70
+ }
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwStepperComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FwStepperComponent, selector: "fw-stepper", inputs: { activeStep: "activeStep", doneStep: "doneStep", alignment: "alignment", backgroundColor: "backgroundColor" }, outputs: { stepChange: "stepChange" }, host: { properties: { "style": "this.style" } }, queries: [{ propertyName: "steps", predicate: FwStepComponent }], usesOnChanges: true, ngImport: i0, template: '<ng-content select="fw-step"></ng-content>', isInline: true }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FwStepperComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'fw-stepper', template: '<ng-content select="fw-step"></ng-content>' }]
78
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { activeStep: [{
79
+ type: Input
80
+ }], doneStep: [{
81
+ type: Input
82
+ }], alignment: [{
83
+ type: Input
84
+ }], backgroundColor: [{
85
+ type: Input
86
+ }], stepChange: [{
87
+ type: Output
88
+ }], steps: [{
89
+ type: ContentChildren,
90
+ args: [FwStepComponent]
91
+ }], style: [{
92
+ type: HostBinding,
93
+ args: ['style']
94
+ }] } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQU9uRCxNQUFNLE9BQU8sa0JBQWtCO0lBUTdCLElBQTBCLEtBQUs7UUFDN0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDOzswQkFFekIsSUFBSSxDQUFDLGVBQWU7S0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFoQmxDLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFFdkIsY0FBUyxHQUF1QixNQUFNLENBQUM7UUFDdkMsb0JBQWUsR0FBWSx3QkFBd0IsQ0FBQztRQUNuRCxlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFVaEUsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRzNDLENBQUM7SUFFRCxXQUFXO1FBQ1QsS0FBSyxNQUFNLFlBQVksSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDOUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFD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QzJCLEtBQUs7c0JBQXRDLGVBQWU7dUJBQUMsZUFBZTtnQkFFTixLQUFLO3NCQUE5QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZ3U3RlcENvbXBvbmVudCB9IGZyb20gJy4vc3RlcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdy1zdGVwcGVyJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudCBzZWxlY3Q9XCJmdy1zdGVwXCI+PC9uZy1jb250ZW50PicsXG4gIHN0eWxlVXJsczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEZ3U3RlcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgYWN0aXZlU3RlcDogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgZG9uZVN0ZXA/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGFsaWdubWVudD86ICdsZWZ0JyB8ICdjZW50ZXInID0gJ2xlZnQnO1xuICBASW5wdXQoKSBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmcgPSAndmFyKC0tY2FyZC1iYWNrZ3JvdW5kKSc7XG4gIEBPdXRwdXQoKSBzdGVwQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAQ29udGVudENoaWxkcmVuKEZ3U3RlcENvbXBvbmVudCkgc3RlcHM6IFF1ZXJ5TGlzdDxGd1N0ZXBDb21wb25lbnQ+O1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKSBnZXQgc3R5bGUoKTogU2FmZVN0eWxlIHtcbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGBcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3RoaXMuYmFja2dyb3VuZENvbG9yfTtcbiAgICBgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiB0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcykge1xuICAgICAgdGhpcy51cGRhdGVTdGVwcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBzLmZvckVhY2goc3RlcCA9PiB7XG4gICAgICBjb25zdCBzdWIgPSBzdGVwLnNlbGVjdC5zdWJzY3JpYmUoc3RlcCA9PiB0aGlzLmhhbmRsZVNlbGVjdChzdGVwKSk7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWIpO1xuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlU3RlcHMoKTtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdChzdGVwPzogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVTdGVwID0gc3RlcDtcbiAgICB0aGlzLnN0ZXBDaGFuZ2UuZW1pdChwYXJzZUludChzdGVwLnRvU3RyaW5nKCkpKTsgLy8gd2VpcmRseSBwYXNzaW5nIG91dCBzdGVwIGRpcmVjdGx5IGZhaWxzIHRoZSBlcWVxZXFcbiAgICB0aGlzLnVwZGF0ZVN0ZXBzKCk7XG4gIH1cblxuICB1cGRhdGVTdGVwcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGVwcyAmJiB0aGlzLnN0ZXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc3RlcHMuZm9yRWFjaChzdGVwID0+IHtcbiAgICAgICAgaWYgKHN0ZXAuc3RlcE51bWJlciA8IHRoaXMuYWN0aXZlU3RlcCkge1xuICAgICAgICAgIHN0ZXAuY29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICBzdGVwLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgIHN0ZXAuZG9uZSA9IGZhbHNlO1xuICAgICAgICAgIHN0ZXAuYmFja2dyb3VuZENvbG9yID0gdGhpcy5iYWNrZ3JvdW5kQ29sb3I7XG4gICAgICAgICAgc3RlcC5hbGlnbm1lbnQgPSB0aGlzLmFsaWdubWVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RlcC5zdGVwTnVtYmVyLnRvU3RyaW5nKCkgPT09IHRoaXMuYWN0aXZlU3RlcC50b1N0cmluZygpKSB7XG4gICAgICAgICAgc3RlcC5jb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgICBzdGVwLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgc3RlcC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgc3RlcC5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmJhY2tncm91bmRDb2xvcjtcbiAgICAgICAgICBzdGVwLmFsaWdubWVudCA9IHRoaXMuYWxpZ25tZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGVwLnN0ZXBOdW1iZXIgPiB0aGlzLmFjdGl2ZVN0ZXApIHtcbiAgICAgICAgICBzdGVwLmNvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgICAgIHN0ZXAuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgc3RlcC5kb25lID0gZmFsc2U7XG4gICAgICAgICAgc3RlcC5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmJhY2tncm91bmRDb2xvcjtcbiAgICAgICAgICBzdGVwLmFsaWdubWVudCA9IHRoaXMuYWxpZ25tZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChCb29sZWFuKHRoaXMuZG9uZVN0ZXApICYmIHN0ZXAuc3RlcE51bWJlciA8PSB0aGlzLmRvbmVTdGVwKSB7XG4gICAgICAgICAgc3RlcC5kb25lID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=