@festo-ui/angular 3.1.0 → 3.2.1-pre-20220624.2

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 (292) hide show
  1. package/README.md +5 -1
  2. package/css/bundle.css +1 -0
  3. package/css/image-gallery.css +1 -0
  4. package/css/popover.css +1 -0
  5. package/esm2020/festo-ui-angular.mjs +5 -0
  6. package/esm2020/index.mjs +20 -0
  7. package/esm2020/lib/components/accordion/accordion-header/accordion-header.component.mjs +11 -0
  8. package/esm2020/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.mjs +15 -0
  9. package/esm2020/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.mjs +28 -0
  10. package/esm2020/lib/components/accordion/accordion-item/accordion-item.component.mjs +143 -0
  11. package/esm2020/lib/components/accordion/accordion.component.mjs +59 -0
  12. package/esm2020/lib/components/accordion/index.mjs +6 -0
  13. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +23 -0
  14. package/esm2020/lib/components/buttons/button/button.component.mjs +41 -0
  15. package/esm2020/lib/components/buttons/link-button/link-button.component.mjs +33 -0
  16. package/esm2020/lib/components/chips/chip/chip.component.mjs +37 -0
  17. package/esm2020/lib/components/chips/chip-container/chip-container.component.mjs +16 -0
  18. package/esm2020/lib/components/click-outside.directive.mjs +28 -0
  19. package/esm2020/lib/components/components.module.mjs +223 -0
  20. package/esm2020/lib/components/image-gallery/image-gallery.component.mjs +58 -0
  21. package/esm2020/lib/components/image-gallery/image-gallery.module.mjs +21 -0
  22. package/esm2020/lib/components/loading-indicator/loading-indicator.component.mjs +16 -0
  23. package/esm2020/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.mjs +38 -0
  24. package/esm2020/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.mjs +64 -0
  25. package/esm2020/lib/components/mobile-flyout/mobile-flyout.component.mjs +68 -0
  26. package/esm2020/lib/components/modals/alert/alert.component.mjs +52 -0
  27. package/esm2020/lib/components/modals/confirm/confirm.component.mjs +53 -0
  28. package/esm2020/lib/components/modals/custom-modal/custom-modal.component.mjs +70 -0
  29. package/esm2020/lib/components/modals/index.mjs +2 -0
  30. package/esm2020/lib/components/modals/modal.service.mjs +121 -0
  31. package/esm2020/lib/components/modals/modals.module.mjs +31 -0
  32. package/esm2020/lib/components/modals/prompt/prompt.component.mjs +102 -0
  33. package/esm2020/lib/components/pagination/pagination.component.mjs +55 -0
  34. package/esm2020/lib/components/popovers/legend/legend.component.mjs +42 -0
  35. package/esm2020/lib/components/popovers/legend/legend.directive.mjs +31 -0
  36. package/esm2020/lib/components/popovers/popover/popover.component.mjs +31 -0
  37. package/esm2020/lib/components/popovers/popover-content/popover-content.component.mjs +82 -0
  38. package/esm2020/lib/components/popovers/popover-content/popover-content.directive.mjs +39 -0
  39. package/esm2020/lib/components/popovers/popover-menu/popover-menu.component.mjs +68 -0
  40. package/esm2020/lib/components/popovers/popover-ref.mjs +25 -0
  41. package/esm2020/lib/components/popovers/popover.defaults.mjs +60 -0
  42. package/esm2020/lib/components/popovers/popover.models.mjs +23 -0
  43. package/esm2020/lib/components/popovers/popover.service.mjs +123 -0
  44. package/esm2020/lib/components/popovers/tooltip/tooltip.directive.mjs +100 -0
  45. package/esm2020/lib/components/progress/progress.component.mjs +20 -0
  46. package/esm2020/lib/components/scroll/index.mjs +2 -0
  47. package/esm2020/lib/components/scroll/scrollable.directive.mjs +72 -0
  48. package/esm2020/lib/components/search-input/safe-html.pipe.mjs +21 -0
  49. package/esm2020/lib/components/search-input/search-input.component.mjs +172 -0
  50. package/esm2020/lib/components/snackbar/snackbar-container.component.mjs +21 -0
  51. package/esm2020/lib/components/snackbar/snackbar-container.directive.mjs +83 -0
  52. package/esm2020/lib/components/snackbar/snackbar.component.mjs +79 -0
  53. package/esm2020/lib/components/snackbar/snackbar.models.mjs +2 -0
  54. package/esm2020/lib/components/snackbar/snackbar.module.mjs +26 -0
  55. package/esm2020/lib/components/snackbar/snackbar.service.mjs +23 -0
  56. package/esm2020/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.mjs +19 -0
  57. package/esm2020/lib/components/stepper-horizontal/stepper-horizontal.component.mjs +51 -0
  58. package/esm2020/lib/components/stepper-vertical/step-vertical/step-vertical.component.mjs +56 -0
  59. package/esm2020/lib/components/stepper-vertical/stepper-vertical.component.mjs +54 -0
  60. package/esm2020/lib/components/table-header-cell/table-header-cell.directive.mjs +58 -0
  61. package/esm2020/lib/components/tabs/tab-pane/tab-pane.component.mjs +31 -0
  62. package/esm2020/lib/components/tabs/tabs.component.mjs +353 -0
  63. package/esm2020/lib/content/content.module.mjs +20 -0
  64. package/esm2020/lib/content/icon/icon.component.mjs +17 -0
  65. package/esm2020/lib/festo-angular.module.mjs +65 -0
  66. package/esm2020/lib/forms/checkbox/checkbox.component.mjs +149 -0
  67. package/esm2020/lib/forms/color-indicator/color-indicator.component.mjs +68 -0
  68. package/esm2020/lib/forms/color-picker/color-helper.mjs +121 -0
  69. package/esm2020/lib/forms/color-picker/color-picker.component.mjs +273 -0
  70. package/esm2020/lib/forms/container-host.mjs +27 -0
  71. package/esm2020/lib/forms/date-picker/date-picker.component.mjs +199 -0
  72. package/esm2020/lib/forms/date-range-picker/date-range-picker.component.mjs +224 -0
  73. package/esm2020/lib/forms/forms.module.mjs +146 -0
  74. package/esm2020/lib/forms/radio/radio.component.mjs +346 -0
  75. package/esm2020/lib/forms/segment/segment-control/segment-control.component.mjs +57 -0
  76. package/esm2020/lib/forms/segment/segment.component.mjs +109 -0
  77. package/esm2020/lib/forms/select/chip-text.pipe.mjs +34 -0
  78. package/esm2020/lib/forms/select/select-option/select-option.component.mjs +22 -0
  79. package/esm2020/lib/forms/select/select.component.mjs +257 -0
  80. package/esm2020/lib/forms/slider/slider.component.mjs +110 -0
  81. package/esm2020/lib/forms/switch/switch.component.mjs +120 -0
  82. package/esm2020/lib/forms/text-area/text-area.component.mjs +180 -0
  83. package/esm2020/lib/forms/text-editor/text-editor.component.mjs +286 -0
  84. package/esm2020/lib/forms/text-input/text-input.component.mjs +183 -0
  85. package/esm2020/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.mjs +89 -0
  86. package/esm2020/lib/forms/time-picker/time-picker.component.mjs +188 -0
  87. package/esm2020/lib/forms/unique-selection-dispatcher.mjs +39 -0
  88. package/esm2020/lib/forms/value-accessor-base.mjs +41 -0
  89. package/esm2020/lib/layout/layout.module.mjs +18 -0
  90. package/esm2020/lib/wrappers/flatpickr/flatpickr.component.mjs +59 -0
  91. package/fesm2015/festo-ui-angular.mjs +6172 -0
  92. package/fesm2015/festo-ui-angular.mjs.map +1 -0
  93. package/fesm2020/festo-ui-angular.mjs +6154 -0
  94. package/fesm2020/festo-ui-angular.mjs.map +1 -0
  95. package/index.d.ts +1 -0
  96. package/lib/components/accordion/accordion-header/accordion-header.component.d.ts +5 -0
  97. package/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.d.ts +6 -0
  98. package/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.d.ts +15 -0
  99. package/lib/components/accordion/accordion-item/accordion-item.component.d.ts +34 -0
  100. package/lib/components/accordion/accordion.component.d.ts +24 -0
  101. package/lib/components/accordion/index.d.ts +5 -0
  102. package/lib/components/components.module.d.ts +40 -20
  103. package/lib/components/image-gallery/image-gallery.component.d.ts +33 -0
  104. package/lib/components/image-gallery/image-gallery.module.d.ts +10 -0
  105. package/lib/components/mobile-flyout/mobile-flyout-item/mobile-flyout-item.component.d.ts +15 -0
  106. package/lib/components/mobile-flyout/mobile-flyout-page/mobile-flyout-page.component.d.ts +19 -0
  107. package/lib/components/mobile-flyout/mobile-flyout.component.d.ts +17 -0
  108. package/lib/components/modals/confirm/confirm.component.d.ts +1 -3
  109. package/lib/components/modals/custom-modal/custom-modal.component.d.ts +21 -0
  110. package/lib/components/modals/modal.service.d.ts +2 -0
  111. package/lib/components/modals/modals.module.d.ts +8 -5
  112. package/lib/components/popovers/tooltip/tooltip.directive.d.ts +5 -3
  113. package/lib/components/search-input/safe-html.pipe.d.ts +10 -0
  114. package/lib/components/search-input/search-input.component.d.ts +22 -5
  115. package/lib/components/stepper-horizontal/step-horizontal/step-horizontal.component.d.ts +7 -0
  116. package/lib/components/stepper-horizontal/stepper-horizontal.component.d.ts +14 -0
  117. package/lib/components/stepper-vertical/step-vertical/step-vertical.component.d.ts +18 -0
  118. package/lib/components/stepper-vertical/stepper-vertical.component.d.ts +14 -0
  119. package/lib/festo-angular.module.d.ts +2 -1
  120. package/package.json +41 -19
  121. package/scss/base/components/accordion/accordion-header/accordion-header.component.scss +12 -0
  122. package/scss/base/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.scss +109 -0
  123. package/scss/base/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.scss +9 -0
  124. package/scss/base/components/accordion/accordion-item/accordion-item.component.scss +71 -0
  125. package/scss/base/components/accordion/accordion.component.scss +6 -0
  126. package/scss/base/components/breadcrumb/breadcrumb.component.scss +0 -1
  127. package/scss/base/components/buttons/button/button.component.scss +5 -3
  128. package/scss/base/components/image-gallery/image-gallery.component.scss +0 -0
  129. package/scss/base/components/image-gallery/styles.scss +5 -0
  130. package/scss/base/components/modals/prompt/prompt.component.scss +0 -1
  131. package/scss/base/components/popovers/legend/legend.component.scss +2 -2
  132. package/scss/base/components/popovers/popover/styles.scss +2 -3
  133. package/scss/base/components/popovers/popover-content/popover-content.component.scss +1 -1
  134. package/scss/base/components/scroll/scroll-story-helper.scss +1 -3
  135. package/scss/base/components/search-input/search-input.component.scss +4 -0
  136. package/scss/base/components/snackbar/snackbar.component.scss +1 -1
  137. package/scss/base/components/stepper-horizontal/step-horizontal/step-horizontal.component.scss +23 -0
  138. package/scss/base/components/stepper-vertical/step-vertical/step-vertical.component.scss +6 -0
  139. package/scss/base/forms/color-indicator/color-indicator.component.scss +1 -1
  140. package/scss/base/forms/color-picker/color-picker.component.scss +15 -15
  141. package/scss/base/forms/date-picker/date-picker.component.scss +1 -1
  142. package/scss/base/forms/date-range-picker/date-range-picker.component.scss +1 -1
  143. package/scss/base/forms/text-area/text-area.component.scss +4 -4
  144. package/scss/base/forms/text-editor/text-editor.component.scss +8 -10
  145. package/scss/base/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.scss +1 -1
  146. package/bundles/festo-ui-angular.umd.js +0 -6429
  147. package/bundles/festo-ui-angular.umd.js.map +0 -1
  148. package/esm2015/festo-ui-angular.js +0 -5
  149. package/esm2015/festo-ui-angular.js.map +0 -1
  150. package/esm2015/index.js +0 -18
  151. package/esm2015/index.js.map +0 -1
  152. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +0 -27
  153. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js.map +0 -1
  154. package/esm2015/lib/components/buttons/button/button.component.js +0 -46
  155. package/esm2015/lib/components/buttons/button/button.component.js.map +0 -1
  156. package/esm2015/lib/components/buttons/link-button/link-button.component.js +0 -38
  157. package/esm2015/lib/components/buttons/link-button/link-button.component.js.map +0 -1
  158. package/esm2015/lib/components/chips/chip/chip.component.js +0 -42
  159. package/esm2015/lib/components/chips/chip/chip.component.js.map +0 -1
  160. package/esm2015/lib/components/chips/chip-container/chip-container.component.js +0 -21
  161. package/esm2015/lib/components/chips/chip-container/chip-container.component.js.map +0 -1
  162. package/esm2015/lib/components/click-outside.directive.js +0 -28
  163. package/esm2015/lib/components/click-outside.directive.js.map +0 -1
  164. package/esm2015/lib/components/components.module.js +0 -155
  165. package/esm2015/lib/components/components.module.js.map +0 -1
  166. package/esm2015/lib/components/loading-indicator/loading-indicator.component.js +0 -21
  167. package/esm2015/lib/components/loading-indicator/loading-indicator.component.js.map +0 -1
  168. package/esm2015/lib/components/modals/alert/alert.component.js +0 -57
  169. package/esm2015/lib/components/modals/alert/alert.component.js.map +0 -1
  170. package/esm2015/lib/components/modals/confirm/confirm.component.js +0 -73
  171. package/esm2015/lib/components/modals/confirm/confirm.component.js.map +0 -1
  172. package/esm2015/lib/components/modals/index.js +0 -2
  173. package/esm2015/lib/components/modals/index.js.map +0 -1
  174. package/esm2015/lib/components/modals/modal.service.js +0 -91
  175. package/esm2015/lib/components/modals/modal.service.js.map +0 -1
  176. package/esm2015/lib/components/modals/modals.module.js +0 -28
  177. package/esm2015/lib/components/modals/modals.module.js.map +0 -1
  178. package/esm2015/lib/components/modals/prompt/prompt.component.js +0 -110
  179. package/esm2015/lib/components/modals/prompt/prompt.component.js.map +0 -1
  180. package/esm2015/lib/components/pagination/pagination.component.js +0 -60
  181. package/esm2015/lib/components/pagination/pagination.component.js.map +0 -1
  182. package/esm2015/lib/components/popovers/legend/legend.component.js +0 -46
  183. package/esm2015/lib/components/popovers/legend/legend.component.js.map +0 -1
  184. package/esm2015/lib/components/popovers/legend/legend.directive.js +0 -31
  185. package/esm2015/lib/components/popovers/legend/legend.directive.js.map +0 -1
  186. package/esm2015/lib/components/popovers/popover/popover.component.js +0 -35
  187. package/esm2015/lib/components/popovers/popover/popover.component.js.map +0 -1
  188. package/esm2015/lib/components/popovers/popover-content/popover-content.component.js +0 -86
  189. package/esm2015/lib/components/popovers/popover-content/popover-content.component.js.map +0 -1
  190. package/esm2015/lib/components/popovers/popover-content/popover-content.directive.js +0 -39
  191. package/esm2015/lib/components/popovers/popover-content/popover-content.directive.js.map +0 -1
  192. package/esm2015/lib/components/popovers/popover-menu/popover-menu.component.js +0 -72
  193. package/esm2015/lib/components/popovers/popover-menu/popover-menu.component.js.map +0 -1
  194. package/esm2015/lib/components/popovers/popover-ref.js +0 -25
  195. package/esm2015/lib/components/popovers/popover-ref.js.map +0 -1
  196. package/esm2015/lib/components/popovers/popover.defaults.js +0 -60
  197. package/esm2015/lib/components/popovers/popover.defaults.js.map +0 -1
  198. package/esm2015/lib/components/popovers/popover.models.js +0 -23
  199. package/esm2015/lib/components/popovers/popover.models.js.map +0 -1
  200. package/esm2015/lib/components/popovers/popover.service.js +0 -117
  201. package/esm2015/lib/components/popovers/popover.service.js.map +0 -1
  202. package/esm2015/lib/components/popovers/tooltip/tooltip.directive.js +0 -96
  203. package/esm2015/lib/components/popovers/tooltip/tooltip.directive.js.map +0 -1
  204. package/esm2015/lib/components/progress/progress.component.js +0 -23
  205. package/esm2015/lib/components/progress/progress.component.js.map +0 -1
  206. package/esm2015/lib/components/scroll/index.js +0 -2
  207. package/esm2015/lib/components/scroll/index.js.map +0 -1
  208. package/esm2015/lib/components/scroll/scrollable.directive.js +0 -73
  209. package/esm2015/lib/components/scroll/scrollable.directive.js.map +0 -1
  210. package/esm2015/lib/components/search-input/search-input.component.js +0 -155
  211. package/esm2015/lib/components/search-input/search-input.component.js.map +0 -1
  212. package/esm2015/lib/components/snackbar/snackbar-container.component.js +0 -26
  213. package/esm2015/lib/components/snackbar/snackbar-container.component.js.map +0 -1
  214. package/esm2015/lib/components/snackbar/snackbar-container.directive.js +0 -83
  215. package/esm2015/lib/components/snackbar/snackbar-container.directive.js.map +0 -1
  216. package/esm2015/lib/components/snackbar/snackbar.component.js +0 -85
  217. package/esm2015/lib/components/snackbar/snackbar.component.js.map +0 -1
  218. package/esm2015/lib/components/snackbar/snackbar.models.js +0 -2
  219. package/esm2015/lib/components/snackbar/snackbar.models.js.map +0 -1
  220. package/esm2015/lib/components/snackbar/snackbar.module.js +0 -26
  221. package/esm2015/lib/components/snackbar/snackbar.module.js.map +0 -1
  222. package/esm2015/lib/components/snackbar/snackbar.service.js +0 -23
  223. package/esm2015/lib/components/snackbar/snackbar.service.js.map +0 -1
  224. package/esm2015/lib/components/stepper/stepper.component.js +0 -28
  225. package/esm2015/lib/components/stepper/stepper.component.js.map +0 -1
  226. package/esm2015/lib/components/table-header-cell/table-header-cell.directive.js +0 -58
  227. package/esm2015/lib/components/table-header-cell/table-header-cell.directive.js.map +0 -1
  228. package/esm2015/lib/components/tabs/tab-pane/tab-pane.component.js +0 -35
  229. package/esm2015/lib/components/tabs/tab-pane/tab-pane.component.js.map +0 -1
  230. package/esm2015/lib/components/tabs/tabs.component.js +0 -362
  231. package/esm2015/lib/components/tabs/tabs.component.js.map +0 -1
  232. package/esm2015/lib/content/content.module.js +0 -24
  233. package/esm2015/lib/content/content.module.js.map +0 -1
  234. package/esm2015/lib/content/icon/icon.component.js +0 -23
  235. package/esm2015/lib/content/icon/icon.component.js.map +0 -1
  236. package/esm2015/lib/festo-angular.module.js +0 -58
  237. package/esm2015/lib/festo-angular.module.js.map +0 -1
  238. package/esm2015/lib/forms/checkbox/checkbox.component.js +0 -156
  239. package/esm2015/lib/forms/checkbox/checkbox.component.js.map +0 -1
  240. package/esm2015/lib/forms/color-indicator/color-indicator.component.js +0 -72
  241. package/esm2015/lib/forms/color-indicator/color-indicator.component.js.map +0 -1
  242. package/esm2015/lib/forms/color-picker/color-helper.js +0 -121
  243. package/esm2015/lib/forms/color-picker/color-helper.js.map +0 -1
  244. package/esm2015/lib/forms/color-picker/color-picker.component.js +0 -280
  245. package/esm2015/lib/forms/color-picker/color-picker.component.js.map +0 -1
  246. package/esm2015/lib/forms/container-host.js +0 -27
  247. package/esm2015/lib/forms/container-host.js.map +0 -1
  248. package/esm2015/lib/forms/date-picker/date-picker.component.js +0 -205
  249. package/esm2015/lib/forms/date-picker/date-picker.component.js.map +0 -1
  250. package/esm2015/lib/forms/date-range-picker/date-range-picker.component.js +0 -230
  251. package/esm2015/lib/forms/date-range-picker/date-range-picker.component.js.map +0 -1
  252. package/esm2015/lib/forms/forms.module.js +0 -146
  253. package/esm2015/lib/forms/forms.module.js.map +0 -1
  254. package/esm2015/lib/forms/radio/radio.component.js +0 -353
  255. package/esm2015/lib/forms/radio/radio.component.js.map +0 -1
  256. package/esm2015/lib/forms/segment/segment-control/segment-control.component.js +0 -58
  257. package/esm2015/lib/forms/segment/segment-control/segment-control.component.js.map +0 -1
  258. package/esm2015/lib/forms/segment/segment.component.js +0 -116
  259. package/esm2015/lib/forms/segment/segment.component.js.map +0 -1
  260. package/esm2015/lib/forms/select/chip-text.pipe.js +0 -34
  261. package/esm2015/lib/forms/select/chip-text.pipe.js.map +0 -1
  262. package/esm2015/lib/forms/select/select-option/select-option.component.js +0 -29
  263. package/esm2015/lib/forms/select/select-option/select-option.component.js.map +0 -1
  264. package/esm2015/lib/forms/select/select.component.js +0 -265
  265. package/esm2015/lib/forms/select/select.component.js.map +0 -1
  266. package/esm2015/lib/forms/slider/slider.component.js +0 -116
  267. package/esm2015/lib/forms/slider/slider.component.js.map +0 -1
  268. package/esm2015/lib/forms/switch/switch.component.js +0 -127
  269. package/esm2015/lib/forms/switch/switch.component.js.map +0 -1
  270. package/esm2015/lib/forms/text-area/text-area.component.js +0 -186
  271. package/esm2015/lib/forms/text-area/text-area.component.js.map +0 -1
  272. package/esm2015/lib/forms/text-editor/text-editor.component.js +0 -294
  273. package/esm2015/lib/forms/text-editor/text-editor.component.js.map +0 -1
  274. package/esm2015/lib/forms/text-input/text-input.component.js +0 -189
  275. package/esm2015/lib/forms/text-input/text-input.component.js.map +0 -1
  276. package/esm2015/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.js +0 -103
  277. package/esm2015/lib/forms/time-picker/time-picker-dropdown/time-picker-dropdown.component.js.map +0 -1
  278. package/esm2015/lib/forms/time-picker/time-picker.component.js +0 -194
  279. package/esm2015/lib/forms/time-picker/time-picker.component.js.map +0 -1
  280. package/esm2015/lib/forms/unique-selection-dispatcher.js +0 -39
  281. package/esm2015/lib/forms/unique-selection-dispatcher.js.map +0 -1
  282. package/esm2015/lib/forms/value-accessor-base.js +0 -41
  283. package/esm2015/lib/forms/value-accessor-base.js.map +0 -1
  284. package/esm2015/lib/layout/layout.module.js +0 -18
  285. package/esm2015/lib/layout/layout.module.js.map +0 -1
  286. package/esm2015/lib/wrappers/flatpickr/flatpickr.component.js +0 -63
  287. package/esm2015/lib/wrappers/flatpickr/flatpickr.component.js.map +0 -1
  288. package/fesm2015/festo-ui-angular.js +0 -5596
  289. package/fesm2015/festo-ui-angular.js.map +0 -1
  290. package/lib/components/stepper/stepper.component.d.ts +0 -30
  291. package/scss/base/components/stepper/stepper.component.scss +0 -118
  292. package/scss/styles.scss +0 -2056
@@ -0,0 +1,172 @@
1
+ import { Component, Input, ViewChild, ElementRef, ViewEncapsulation, Output, EventEmitter, HostListener } from '@angular/core';
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../click-outside.directive";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "./safe-html.pipe";
7
+ export class SearchSuggestion {
8
+ /**
9
+ * Creates a basic Suggestion from a string. The first query match is highlighted by bold tags.
10
+ * @param suggestionString The suggested string (should contain the whole query)
11
+ * @param query The current query. This string will be highlighted.
12
+ * @returns a html-string.
13
+ */
14
+ static basicSuggestion(suggestionString, query) {
15
+ const i = suggestionString.toLocaleLowerCase().indexOf(query.toLocaleLowerCase());
16
+ let template = suggestionString;
17
+ if (i != -1) {
18
+ const boldStart = i;
19
+ const boldEnd = i + query.length;
20
+ const part1 = suggestionString.substring(0, boldStart);
21
+ const part2 = suggestionString.substring(boldStart, boldEnd);
22
+ const part3 = suggestionString.substring(boldEnd, suggestionString.length);
23
+ template = part1 + '<b>' + part2 + '</b>' + part3;
24
+ }
25
+ return { value: suggestionString, template };
26
+ }
27
+ }
28
+ /**
29
+ * A custom form element for search inputs.
30
+ */
31
+ export class SearchInputComponent {
32
+ constructor() {
33
+ /**
34
+ * the querrry was changed, update the suggetion list
35
+ */
36
+ this.fngChange = new EventEmitter();
37
+ /**
38
+ * Start search on this event
39
+ */
40
+ this.fngSearch = new EventEmitter();
41
+ /**
42
+ * The search input label.
43
+ */
44
+ this.label = '';
45
+ this.innerDisabled = false;
46
+ this.innerValue = '';
47
+ this.innerSuggestions = [];
48
+ this.hideSuggestionList = false;
49
+ // This is the index of the selected element in dhe suggestion list.
50
+ this.selectedSuggestionIndex = -1;
51
+ }
52
+ /**
53
+ * When true the control's disabled attribute is set
54
+ * and it gets addeed the .disabled css class.
55
+ */
56
+ get disabled() {
57
+ return this.innerDisabled;
58
+ }
59
+ set disabled(value) {
60
+ this.innerDisabled = coerceBooleanProperty(value);
61
+ }
62
+ /**
63
+ * The getter for value.
64
+ */
65
+ get value() {
66
+ return this.innerValue;
67
+ }
68
+ /**
69
+ * The setter for value.
70
+ */
71
+ set value(value) {
72
+ if (value != null) {
73
+ value = '' + value;
74
+ }
75
+ this.innerValue = value;
76
+ }
77
+ /**
78
+ * The list of suggestions
79
+ */
80
+ set suggestions(value) {
81
+ this.selectedSuggestionIndex = -1;
82
+ this.innerSuggestions = value;
83
+ }
84
+ /**
85
+ * The list of suggestions capped by 10 entries
86
+ */
87
+ get cappedSuggestions() {
88
+ return this.innerSuggestions.slice(0, 10);
89
+ }
90
+ keyhandler(event) {
91
+ if (!this.cappedSuggestions || !this.cappedSuggestions.length) {
92
+ return;
93
+ }
94
+ // navigate inside the suggestion list
95
+ if (event.key === 'ArrowUp') {
96
+ if (this.selectedSuggestionIndex > 0) {
97
+ this.selectedSuggestionIndex--;
98
+ }
99
+ else {
100
+ this.selectedSuggestionIndex = this.cappedSuggestions.length - 1;
101
+ }
102
+ this.value = this.cappedSuggestions[this.selectedSuggestionIndex].value;
103
+ }
104
+ if (event.key === 'ArrowDown') {
105
+ if (this.selectedSuggestionIndex >= this.cappedSuggestions.length - 1) {
106
+ this.selectedSuggestionIndex = 0;
107
+ }
108
+ else {
109
+ this.selectedSuggestionIndex++;
110
+ }
111
+ this.value = this.cappedSuggestions[this.selectedSuggestionIndex].value;
112
+ }
113
+ }
114
+ onClickOutside() {
115
+ this.hideSuggestionList = true;
116
+ }
117
+ onFocus() {
118
+ this.hideSuggestionList = false;
119
+ }
120
+ onInput(event) {
121
+ this.selectedSuggestionIndex = -1;
122
+ this.value = event.target.value;
123
+ this.fngChange.emit(this.value);
124
+ }
125
+ // also triggert on "Enter" and "Escape"
126
+ onSearch(event) {
127
+ event.stopPropagation();
128
+ this.selectedSuggestionIndex = -1;
129
+ this.fngSearch.emit(this.value);
130
+ this.hideSuggestionList = true;
131
+ this.inputRef.nativeElement.blur();
132
+ }
133
+ onSuggestionClick(suggestion) {
134
+ this.selectedSuggestionIndex = -1;
135
+ this.value = suggestion.value;
136
+ this.fngSearch.emit(this.value);
137
+ this.hideSuggestionList = true;
138
+ this.inputRef.nativeElement.blur();
139
+ }
140
+ clearQuery() {
141
+ this.selectedSuggestionIndex = -1;
142
+ this.value = '';
143
+ this.fngSearch.emit(this.value);
144
+ this.hideSuggestionList = true;
145
+ this.inputRef.nativeElement.blur();
146
+ }
147
+ }
148
+ SearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
149
+ SearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: SearchInputComponent, selector: "fng-search-input", inputs: { label: "label", disabled: "disabled", value: "value", suggestions: "suggestions" }, outputs: { fngChange: "fngChange", fngSearch: "fngSearch" }, host: { listeners: { "document:keydown": "keyhandler($event)" } }, viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div class=\"fwe-search-input fwe-w-100\" (clickOutside)=\"onClickOutside()\" fngClickOutside>\n <input\n class=\"fwe-w-100\"\n #inputElement\n [attr.disabled]=\"disabled ? '' : null\"\n [placeholder]=\"label\"\n (focus)=\"onFocus()\"\n type=\"search\"\n (input)=\"onInput($event)\"\n (search)=\"onSearch($event)\"\n [value]=\"innerValue\"\n />\n <div class=\"fwe-search-icon\"></div>\n <div class=\"fwe-clear-icon\" (click)=\"clearQuery()\"></div>\n <div class=\"fwe-search-suggestions\" *ngIf=\"innerSuggestions?.length && !hideSuggestionList\">\n <div\n *ngFor=\"let suggestion of cappedSuggestions; let i = index\"\n (click)=\"onSuggestionClick(suggestion)\"\n [class.fwe-selected]=\"selectedSuggestionIndex === i\"\n class=\"fwe-search-suggestion\"\n >\n <div [innerHTML]=\"suggestion.template | safeHtml\"></div>\n </div>\n <div class=\"fwe-ml-xxs\" *ngIf=\"innerSuggestions.length > 10\">...</div>\n </div>\n</div>\n", styles: [".fwe-w-100{width:100%}.fwe-search-suggestion{height:40px}\n"], directives: [{ type: i1.ClickOutsideDirective, selector: "[fngClickOutside]", outputs: ["clickOutside"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "safeHtml": i3.SafeHtmlPipe }, encapsulation: i0.ViewEncapsulation.None });
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SearchInputComponent, decorators: [{
151
+ type: Component,
152
+ args: [{ selector: 'fng-search-input', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-search-input fwe-w-100\" (clickOutside)=\"onClickOutside()\" fngClickOutside>\n <input\n class=\"fwe-w-100\"\n #inputElement\n [attr.disabled]=\"disabled ? '' : null\"\n [placeholder]=\"label\"\n (focus)=\"onFocus()\"\n type=\"search\"\n (input)=\"onInput($event)\"\n (search)=\"onSearch($event)\"\n [value]=\"innerValue\"\n />\n <div class=\"fwe-search-icon\"></div>\n <div class=\"fwe-clear-icon\" (click)=\"clearQuery()\"></div>\n <div class=\"fwe-search-suggestions\" *ngIf=\"innerSuggestions?.length && !hideSuggestionList\">\n <div\n *ngFor=\"let suggestion of cappedSuggestions; let i = index\"\n (click)=\"onSuggestionClick(suggestion)\"\n [class.fwe-selected]=\"selectedSuggestionIndex === i\"\n class=\"fwe-search-suggestion\"\n >\n <div [innerHTML]=\"suggestion.template | safeHtml\"></div>\n </div>\n <div class=\"fwe-ml-xxs\" *ngIf=\"innerSuggestions.length > 10\">...</div>\n </div>\n</div>\n", styles: [".fwe-w-100{width:100%}.fwe-search-suggestion{height:40px}\n"] }]
153
+ }], propDecorators: { inputRef: [{
154
+ type: ViewChild,
155
+ args: ['inputElement']
156
+ }], fngChange: [{
157
+ type: Output
158
+ }], fngSearch: [{
159
+ type: Output
160
+ }], label: [{
161
+ type: Input
162
+ }], disabled: [{
163
+ type: Input
164
+ }], value: [{
165
+ type: Input
166
+ }], suggestions: [{
167
+ type: Input
168
+ }], keyhandler: [{
169
+ type: HostListener,
170
+ args: ['document:keydown', ['$event']]
171
+ }] } });
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWlucHV0L3NlYXJjaC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFFOUQsTUFBTSxPQUFPLGdCQUFnQjtJQVczQjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsZ0JBQXdCLEVBQUUsS0FBYTtRQUM1RCxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLElBQUksUUFBUSxHQUFHLGdCQUFnQixDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ1gsTUFBTyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2pDLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkQsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxPQUFPLENB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QUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckMsQ0FBQzs7aUhBM0lVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGdZQzVDakMsbStCQTBCQTsyRkRrQmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGtCQUFrQixpQkFHYixpQkFBaUIsQ0FBQyxJQUFJOzhCQUlyQyxRQUFRO3NCQURQLFNBQVM7dUJBQUMsY0FBYztnQkFPaEIsU0FBUztzQkFEakIsTUFBTTtnQkFPRSxTQUFTO3NCQURqQixNQUFNO2dCQU1FLEtBQUs7c0JBQWIsS0FBSztnQkFPRixRQUFRO3NCQURYLEtBQUs7Z0JBc0JGLEtBQUs7c0JBRFIsS0FBSztnQkFZRixXQUFXO3NCQURkLEtBQUs7Z0JBb0JOLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgVmlld0VuY2Fwc3VsYXRpb24sIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hTdWdnZXN0aW9uIHtcbiAgLyoqXG4gICAqIGEgaHRtbC1zdHJpbmcuIGUuZy46ICc8Yj4gaGVsbG8gPC9iPidcbiAgICovXG4gIHRlbXBsYXRlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgVmFsdWUgd2lsbCBiZSB1c2VkIGFzIG5ldyBxdWVyeSB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgdGhlIHN1Z2dlc3Rpb24uXG4gICAqL1xuICB2YWx1ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgYmFzaWMgU3VnZ2VzdGlvbiBmcm9tIGEgc3RyaW5nLiBUaGUgZmlyc3QgcXVlcnkgbWF0Y2ggaXMgaGlnaGxpZ2h0ZWQgYnkgYm9sZCB0YWdzLlxuICAgKiBAcGFyYW0gc3VnZ2VzdGlvblN0cmluZyBUaGUgc3VnZ2VzdGVkIHN0cmluZyAoc2hvdWxkIGNvbnRhaW4gdGhlIHdob2xlIHF1ZXJ5KVxuICAgKiBAcGFyYW0gcXVlcnkgVGhlIGN1cnJlbnQgcXVlcnkuIFRoaXMgc3RyaW5nIHdpbGwgYmUgaGlnaGxpZ2h0ZWQuXG4gICAqIEByZXR1cm5zIGEgaHRtbC1zdHJpbmcuXG4gICAqL1xuICBzdGF0aWMgYmFzaWNTdWdnZXN0aW9uKHN1Z2dlc3Rpb25TdHJpbmc6IHN0cmluZywgcXVlcnk6IHN0cmluZyk6IFNlYXJjaFN1Z2dlc3Rpb24ge1xuICAgIGNvbnN0IGkgPSBzdWdnZXN0aW9uU3RyaW5nLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcbiAgICBsZXQgdGVtcGxhdGUgPSBzdWdnZXN0aW9uU3RyaW5nO1xuICAgIGlmIChpICE9IC0xKSB7XG4gICAgICBjb25zdCAgYm9sZFN0YXJ0ID0gaTtcbiAgICAgIGNvbnN0IGJvbGRFbmQgPSBpICsgcXVlcnkubGVuZ3RoO1xuICAgICAgY29uc3QgcGFydDEgPSBzdWdnZXN0aW9uU3RyaW5nLnN1YnN0cmluZygwLCBib2xkU3RhcnQpO1xuICAgICAgY29uc3QgcGFydDIgPSBzdWdnZXN0aW9uU3RyaW5nLnN1YnN0cmluZyhib2xkU3RhcnQsIGJvbGRFbmQpO1xuICAgICAgY29uc3QgcGFydDMgPSBzdWdnZXN0aW9uU3RyaW5nLnN1YnN0cmluZyhib2xkRW5kLCBzdWdnZXN0aW9uU3RyaW5nLmxlbmd0aCk7XG4gICAgICB0ZW1wbGF0ZSA9IHBhcnQxICsgJzxiPicgKyBwYXJ0MiArICc8L2I+JyArIHBhcnQzO1xuICAgIH1cbiAgICByZXR1cm4geyB2YWx1ZTogc3VnZ2VzdGlvblN0cmluZywgdGVtcGxhdGUgfTtcbiAgfVxufVxuXG4vKipcbiAqIEEgY3VzdG9tIGZvcm0gZWxlbWVudCBmb3Igc2VhcmNoIGlucHV0cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm5nLXNlYXJjaC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hJbnB1dENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpXG4gIGlucHV0UmVmITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAvKipcbiAgICogdGhlIHF1ZXJycnkgd2FzIGNoYW5nZWQsIHVwZGF0ZSB0aGUgc3VnZ2V0aW9uIGxpc3RcbiAgICovXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBmbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogU3RhcnQgc2VhcmNoIG9uIHRoaXMgZXZlbnRcbiAgICovXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBmbmdTZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKipcbiAgICogVGhlIHNlYXJjaCBpbnB1dCBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogV2hlbiB0cnVlIHRoZSBjb250cm9sJ3MgZGlzYWJsZWQgYXR0cmlidXRlIGlzIHNldFxuICAgKiBhbmQgaXQgZ2V0cyBhZGRlZWQgdGhlIC5kaXNhYmxlZCBjc3MgY2xhc3MuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJEaXNhYmxlZDtcbiAgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlubmVyRGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCBpbm5lckRpc2FibGVkID0gZmFsc2U7XG5cbiAgaW5uZXJWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSBnZXR0ZXIgZm9yIHZhbHVlLlxuICAgKi9cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2V0dGVyIGZvciB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygc3VnZ2VzdGlvbnNcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzdWdnZXN0aW9ucyh2YWx1ZTogU2VhcmNoU3VnZ2VzdGlvbltdKSB7XG4gICAgdGhpcy5zZWxlY3RlZFN1Z2dlc3Rpb25JbmRleCA9IC0xO1xuICAgIHRoaXMuaW5uZXJTdWdnZXN0aW9ucyA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHN1Z2dlc3Rpb25zIGNhcHBlZCBieSAxMCBlbnRyaWVzXG4gICAqL1xuICBnZXQgY2FwcGVkU3VnZ2VzdGlvbnMoKTogU2VhcmNoU3VnZ2VzdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lclN1Z2dlc3Rpb25zLnNsaWNlKDAsIDEwKTtcbiAgfVxuXG4gIGlubmVyU3VnZ2VzdGlvbnM6IFNlYXJjaFN1Z2dlc3Rpb25bXSA9IFtdO1xuICBoaWRlU3VnZ2VzdGlvbkxpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBUaGlzIGlzIHRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgZWxlbWVudCBpbiBkaGUgc3VnZ2VzdGlvbiBsaXN0LlxuICBzZWxlY3RlZFN1Z2dlc3Rpb25JbmRleCA9IC0xO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBrZXloYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmNhcHBlZFN1Z2dlc3Rpb25zIHx8ICF0aGlzLmNhcHBlZFN1Z2dlc3Rpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG5hdmlnYXRlIGluc2lkZSB0aGUgc3VnZ2VzdGlvbiBsaXN0XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFN1Z2dlc3Rpb25JbmRleCA+IDApIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN1Z2dlc3Rpb25JbmRleC0tO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN1Z2dlc3Rpb25JbmRleCA9IHRoaXMuY2FwcGVkU3VnZ2VzdGlvbnMubGVuZ3RoIC0gMTtcbiAgICAgIH1cbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNhcHBlZFN1Z2dlc3Rpb25zW3RoaXMuc2VsZWN0ZWRTdWdnZXN0aW9uSW5kZXhdLnZhbHVlO1xuICAgIH1cblxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFN1Z2dlc3Rpb25JbmRleCA+PSB0aGlzLmNhcHBlZFN1Z2dlc3Rpb25zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN1Z2dlc3Rpb25JbmRleCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkU3VnZ2VzdGlvbkluZGV4Kys7XG4gICAgICB9XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5jYXBwZWRTdWdnZXN0aW9uc1t0aGlzLnNlbGVjdGVkU3VnZ2VzdGlvbkluZGV4XS52YWx1ZTtcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrT3V0c2lkZSgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVTdWdnZXN0aW9uTGlzdCA9IHRydWU7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25MaXN0ID0gZmFsc2U7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkU3VnZ2VzdGlvbkluZGV4ID0gLTE7XG4gICAgdGhpcy52YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICB0aGlzLmZuZ0NoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgLy8gYWxzbyB0cmlnZ2VydCBvbiBcIkVudGVyXCIgYW5kIFwiRXNjYXBlXCJcbiAgb25TZWFyY2goZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2VsZWN0ZWRTdWdnZXN0aW9uSW5kZXggPSAtMTtcbiAgICB0aGlzLmZuZ1NlYXJjaC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25MaXN0ID0gdHJ1ZTtcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG5cbiAgb25TdWdnZXN0aW9uQ2xpY2soc3VnZ2VzdGlvbjogU2VhcmNoU3VnZ2VzdGlvbikge1xuICAgIHRoaXMuc2VsZWN0ZWRTdWdnZXN0aW9uSW5kZXggPSAtMTtcbiAgICB0aGlzLnZhbHVlID0gc3VnZ2VzdGlvbi52YWx1ZTtcbiAgICB0aGlzLmZuZ1NlYXJjaC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25MaXN0ID0gdHJ1ZTtcbiAgICB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG5cbiAgY2xlYXJRdWVyeSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkU3VnZ2VzdGlvbkluZGV4ID0gLTE7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMuZm5nU2VhcmNoLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5oaWRlU3VnZ2VzdGlvbkxpc3QgPSB0cnVlO1xuICAgIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmd2Utc2VhcmNoLWlucHV0IGZ3ZS13LTEwMFwiIChjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGUoKVwiIGZuZ0NsaWNrT3V0c2lkZT5cbiAgPGlucHV0XG4gICAgY2xhc3M9XCJmd2Utdy0xMDBcIlxuICAgICNpbnB1dEVsZW1lbnRcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImxhYmVsXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCJcbiAgICAoc2VhcmNoKT1cIm9uU2VhcmNoKCRldmVudClcIlxuICAgIFt2YWx1ZV09XCJpbm5lclZhbHVlXCJcbiAgLz5cbiAgPGRpdiBjbGFzcz1cImZ3ZS1zZWFyY2gtaWNvblwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZndlLWNsZWFyLWljb25cIiAoY2xpY2spPVwiY2xlYXJRdWVyeSgpXCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmd2Utc2VhcmNoLXN1Z2dlc3Rpb25zXCIgKm5nSWY9XCJpbm5lclN1Z2dlc3Rpb25zPy5sZW5ndGggJiYgIWhpZGVTdWdnZXN0aW9uTGlzdFwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBzdWdnZXN0aW9uIG9mIGNhcHBlZFN1Z2dlc3Rpb25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgIChjbGljayk9XCJvblN1Z2dlc3Rpb25DbGljayhzdWdnZXN0aW9uKVwiXG4gICAgICBbY2xhc3MuZndlLXNlbGVjdGVkXT1cInNlbGVjdGVkU3VnZ2VzdGlvbkluZGV4ID09PSBpXCJcbiAgICAgIGNsYXNzPVwiZndlLXNlYXJjaC1zdWdnZXN0aW9uXCJcbiAgICA+XG4gICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic3VnZ2VzdGlvbi50ZW1wbGF0ZSB8IHNhZmVIdG1sXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZ3ZS1tbC14eHNcIiAqbmdJZj1cImlubmVyU3VnZ2VzdGlvbnMubGVuZ3RoID4gMTBcIj4uLi48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./snackbar-container.directive";
4
+ export class SnackbarContainerComponent {
5
+ constructor() {
6
+ this.config = {
7
+ darkBackground: true,
8
+ disappearAfter: 5000,
9
+ closeOnAction: true
10
+ };
11
+ }
12
+ }
13
+ SnackbarContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ SnackbarContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: SnackbarContainerComponent, selector: "fng-snackbar-container", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"fwe-snackbar-container\">\n <div [fngSnackbarContainer]=\"config\"></div>\n</div>\n", styles: [".fwe-snackbar-container{pointer-events:none}\n"], directives: [{ type: i1.SnackbarContainerDirective, selector: "[fngSnackbarContainer]", inputs: ["fngSnackbarContainer"] }], encapsulation: i0.ViewEncapsulation.None });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarContainerComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'fng-snackbar-container', encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-snackbar-container\">\n <div [fngSnackbarContainer]=\"config\"></div>\n</div>\n", styles: [".fwe-snackbar-container{pointer-events:none}\n"] }]
18
+ }], propDecorators: { config: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXItY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXItY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXItY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTcEUsTUFBTSxPQUFPLDBCQUEwQjtJQU52QztRQU9XLFdBQU0sR0FBbUI7WUFDaEMsY0FBYyxFQUFFLElBQUk7WUFDcEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FBQztLQUNIOzt1SEFOWSwwQkFBMEI7MkdBQTFCLDBCQUEwQiw0RkNUdkMsbUdBR0E7MkZETWEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLHdCQUF3QixpQkFHbkIsaUJBQWlCLENBQUMsSUFBSTs4QkFHNUIsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNuYWNrYmFyQ29uZmlnIH0gZnJvbSAnLi9zbmFja2Jhci5tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmbmctc25hY2tiYXItY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NuYWNrYmFyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NuYWNrYmFyLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFNuYWNrYmFyQ29udGFpbmVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29uZmlnOiBTbmFja2JhckNvbmZpZyA9IHtcbiAgICBkYXJrQmFja2dyb3VuZDogdHJ1ZSxcbiAgICBkaXNhcHBlYXJBZnRlcjogNTAwMCxcbiAgICBjbG9zZU9uQWN0aW9uOiB0cnVlXG4gIH07XG59XG4iLCI8ZGl2IGNsYXNzPVwiZndlLXNuYWNrYmFyLWNvbnRhaW5lclwiPlxuICA8ZGl2IFtmbmdTbmFja2JhckNvbnRhaW5lcl09XCJjb25maWdcIj48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,83 @@
1
+ import { ComponentFactoryResolver, Directive, Input, ViewContainerRef } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import { SnackbarComponent } from './snackbar.component';
5
+ import { SnackbarService } from './snackbar.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./snackbar.service";
8
+ export class SnackbarContainerDirective {
9
+ constructor(viewContainerRef, componentFactoryResolver, snackbarService) {
10
+ this.viewContainerRef = viewContainerRef;
11
+ this.componentFactoryResolver = componentFactoryResolver;
12
+ this.snackbarService = snackbarService;
13
+ this.snacks = [];
14
+ this.factory = this.componentFactoryResolver.resolveComponentFactory(SnackbarComponent);
15
+ }
16
+ ngOnInit() {
17
+ this.snacksSub = this.snackbarService.snacks$.subscribe(SnackDescription => this.push(SnackDescription));
18
+ }
19
+ ngOnDestroy() {
20
+ if (this.snacks != null && this.snacks.length > 0) {
21
+ this.snacks.forEach(snack => {
22
+ snack.complete.next(true);
23
+ snack.complete.complete();
24
+ snack.complete.unsubscribe();
25
+ });
26
+ }
27
+ if (this.snacksSub != null) {
28
+ this.snacksSub.unsubscribe();
29
+ }
30
+ }
31
+ push(snackDescription) {
32
+ const complete = new Subject();
33
+ const componentRef = this.viewContainerRef.createComponent(this.factory, 0);
34
+ const componentInstance = componentRef.instance;
35
+ componentInstance.data = { ...this.fngSnackbarContainer, ...snackDescription.data };
36
+ componentInstance.animationState = this.snacks.length === 0 ? 'first' : 'fadeIn';
37
+ const snackbarRef = { componentRef, complete };
38
+ componentInstance.close.pipe(takeUntil(complete)).subscribe(() => {
39
+ this.remove(snackbarRef);
40
+ if (snackDescription.closeCallback) {
41
+ snackDescription.closeCallback();
42
+ }
43
+ });
44
+ componentInstance.action.pipe(takeUntil(complete)).subscribe(() => {
45
+ if (componentInstance.data.closeOnAction) {
46
+ this.remove(snackbarRef);
47
+ }
48
+ if (snackDescription.actionCallback) {
49
+ snackDescription.actionCallback();
50
+ }
51
+ });
52
+ this.snacks.push(snackbarRef);
53
+ snackDescription.resolve(snackbarRef.componentRef);
54
+ }
55
+ remove(snackbarRef) {
56
+ const index = this.snacks.indexOf(snackbarRef);
57
+ if (index !== -1) {
58
+ const deletedSnackbarRef = this.snacks.splice(index, 1);
59
+ if (deletedSnackbarRef != null && deletedSnackbarRef.length > 0) {
60
+ const deletedSnackbar = deletedSnackbarRef[0];
61
+ if (deletedSnackbar.complete != null) {
62
+ deletedSnackbar.complete.next(true);
63
+ deletedSnackbar.complete.complete();
64
+ deletedSnackbar.complete.unsubscribe();
65
+ }
66
+ if (deletedSnackbar.componentRef != null) {
67
+ deletedSnackbar.componentRef.destroy();
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ SnackbarContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarContainerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i1.SnackbarService }], target: i0.ɵɵFactoryTarget.Directive });
74
+ SnackbarContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: SnackbarContainerDirective, selector: "[fngSnackbarContainer]", inputs: { fngSnackbarContainer: "fngSnackbarContainer" }, ngImport: i0 });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarContainerDirective, decorators: [{
76
+ type: Directive,
77
+ args: [{
78
+ selector: '[fngSnackbarContainer]'
79
+ }]
80
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i1.SnackbarService }]; }, propDecorators: { fngSnackbarContainer: [{
81
+ type: Input
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXItY29udGFpbmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXItY29udGFpbmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsd0JBQXdCLEVBRXhCLFNBQVMsRUFDVCxLQUFLLEVBR0wsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLG9CQUFvQixDQUFDOzs7QUFVdkUsTUFBTSxPQUFPLDBCQUEwQjtJQVFyQyxZQUNVLGdCQUFrQyxFQUNsQyx3QkFBa0QsRUFDbEQsZUFBZ0M7UUFGaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVJsQyxXQUFNLEdBQWtCLEVBQUUsQ0FBQztRQVVqQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJ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LFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BDLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3BDLGVBQWUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ3hDO2dCQUNELElBQUksZUFBZSxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUU7b0JBQ3hDLGVBQWUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3hDO2FBQ0Y7U0FDRjtJQUNILENBQUM7O3VIQTFFVSwwQkFBMEI7MkdBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUh0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7aUJBQ25DOzRLQUVVLG9CQUFvQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudEZhY3RvcnksXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU25hY2tiYXJDb21wb25lbnQgfSBmcm9tICcuL3NuYWNrYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbmFja2JhckNvbmZpZyB9IGZyb20gJy4vc25hY2tiYXIubW9kZWxzJztcbmltcG9ydCB7IFNuYWNrYmFyU2VydmljZSwgU25hY2tEZXNjcmlwdGlvbiB9IGZyb20gJy4vc25hY2tiYXIuc2VydmljZSc7XG5cbmludGVyZmFjZSBTbmFja2JhclJlZiB7XG4gIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFNuYWNrYmFyQ29tcG9uZW50PjtcbiAgY29tcGxldGU6IFN1YmplY3Q8Ym9vbGVhbj47XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmbmdTbmFja2JhckNvbnRhaW5lcl0nXG59KVxuZXhwb3J0IGNsYXNzIFNuYWNrYmFyQ29udGFpbmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBASW5wdXQoKSBmbmdTbmFja2JhckNvbnRhaW5lcjogU25hY2tiYXJDb25maWc7XG5cbiAgcHJpdmF0ZSBzbmFja3M6IFNuYWNrYmFyUmVmW10gPSBbXTtcblxuICBwcml2YXRlIHNuYWNrc1N1YjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8U25hY2tiYXJDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgc25hY2tiYXJTZXJ2aWNlOiBTbmFja2JhclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5mYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoU25hY2tiYXJDb21wb25lbnQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zbmFja3NTdWIgPSB0aGlzLnNuYWNrYmFyU2VydmljZS5zbmFja3MkLnN1YnNjcmliZShTbmFja0Rlc2NyaXB0aW9uID0+IHRoaXMucHVzaChTbmFja0Rlc2NyaXB0aW9uKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5zbmFja3MgIT0gbnVsbCAmJiB0aGlzLnNuYWNrcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNuYWNrcy5mb3JFYWNoKHNuYWNrID0+IHtcbiAgICAgICAgc25hY2suY29tcGxldGUubmV4dCh0cnVlKTtcbiAgICAgICAgc25hY2suY29tcGxldGUuY29tcGxldGUoKTtcbiAgICAgICAgc25hY2suY29tcGxldGUudW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5zbmFja3NTdWIgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zbmFja3NTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHB1c2goc25hY2tEZXNjcmlwdGlvbjogU25hY2tEZXNjcmlwdGlvbikge1xuICAgIGNvbnN0IGNvbXBsZXRlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHRoaXMuZmFjdG9yeSwgMCk7XG4gICAgY29uc3QgY29tcG9uZW50SW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHsgLi4udGhpcy5mbmdTbmFja2JhckNvbnRhaW5lciwgLi4uc25hY2tEZXNjcmlwdGlvbi5kYXRhIH07XG4gICAgY29tcG9uZW50SW5zdGFuY2UuYW5pbWF0aW9uU3RhdGUgPSB0aGlzLnNuYWNrcy5sZW5ndGggPT09IDAgPyAnZmlyc3QnIDogJ2ZhZGVJbic7XG4gICAgY29uc3Qgc25hY2tiYXJSZWYgPSB7IGNvbXBvbmVudFJlZiwgY29tcGxldGUgfTtcbiAgICBjb21wb25lbnRJbnN0YW5jZS5jbG9zZS5waXBlKHRha2VVbnRpbChjb21wbGV0ZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlbW92ZShzbmFja2JhclJlZik7XG4gICAgICBpZiAoc25hY2tEZXNjcmlwdGlvbi5jbG9zZUNhbGxiYWNrKSB7XG4gICAgICAgIHNuYWNrRGVzY3JpcHRpb24uY2xvc2VDYWxsYmFjaygpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbXBvbmVudEluc3RhbmNlLmFjdGlvbi5waXBlKHRha2VVbnRpbChjb21wbGV0ZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAoY29tcG9uZW50SW5zdGFuY2UuZGF0YS5jbG9zZU9uQWN0aW9uKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlKHNuYWNrYmFyUmVmKTtcbiAgICAgIH1cbiAgICAgIGlmIChzbmFja0Rlc2NyaXB0aW9uLmFjdGlvbkNhbGxiYWNrKSB7XG4gICAgICAgIHNuYWNrRGVzY3JpcHRpb24uYWN0aW9uQ2FsbGJhY2soKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNuYWNrcy5wdXNoKHNuYWNrYmFyUmVmKTtcbiAgICBzbmFja0Rlc2NyaXB0aW9uLnJlc29sdmUoc25hY2tiYXJSZWYuY29tcG9uZW50UmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlKHNuYWNrYmFyUmVmOiBTbmFja2JhclJlZikge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zbmFja3MuaW5kZXhPZihzbmFja2JhclJlZik7XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgY29uc3QgZGVsZXRlZFNuYWNrYmFyUmVmID0gdGhpcy5zbmFja3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIGlmIChkZWxldGVkU25hY2tiYXJSZWYgIT0gbnVsbCAmJiBkZWxldGVkU25hY2tiYXJSZWYubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBkZWxldGVkU25hY2tiYXIgPSBkZWxldGVkU25hY2tiYXJSZWZbMF07XG4gICAgICAgIGlmIChkZWxldGVkU25hY2tiYXIuY29tcGxldGUgIT0gbnVsbCkge1xuICAgICAgICAgIGRlbGV0ZWRTbmFja2Jhci5jb21wbGV0ZS5uZXh0KHRydWUpO1xuICAgICAgICAgIGRlbGV0ZWRTbmFja2Jhci5jb21wbGV0ZS5jb21wbGV0ZSgpO1xuICAgICAgICAgIGRlbGV0ZWRTbmFja2Jhci5jb21wbGV0ZS51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWxldGVkU25hY2tiYXIuY29tcG9uZW50UmVmICE9IG51bGwpIHtcbiAgICAgICAgICBkZWxldGVkU25hY2tiYXIuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,79 @@
1
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { animate, sequence, state, style, transition, trigger } from '@angular/animations';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class SnackbarComponent {
6
+ constructor() {
7
+ this.close = new EventEmitter();
8
+ this.action = new EventEmitter();
9
+ this.blockDisplay = 'block';
10
+ this.animationState = 'init';
11
+ }
12
+ ngAfterViewInit() {
13
+ if (this.data && this.data.disappearAfter) {
14
+ this.timeout = setTimeout(() => this.onClose(), this.data.disappearAfter);
15
+ }
16
+ }
17
+ ngOnDestroy() {
18
+ if (this.timeout) {
19
+ clearTimeout(this.timeout);
20
+ }
21
+ }
22
+ onAction() {
23
+ this.action.emit();
24
+ }
25
+ onClose() {
26
+ this.close.emit();
27
+ }
28
+ }
29
+ SnackbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ SnackbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: SnackbarComponent, selector: "fng-snackbar", inputs: { data: "data" }, outputs: { close: "close", action: "action" }, host: { properties: { "style.display": "this.blockDisplay", "@appearDisappear": "this.animationState" } }, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'fwe-snackbar': true,\n 'fwe-snackbar-b': data?.variant === 'b',\n 'fwe-snackbar-c': data?.variant === 'c',\n 'fwe-snackbar-warning': data?.type === 'warning',\n 'fwe-snackbar-error': data?.type === 'error',\n 'fwe-snackbar-shadow': data?.darkBackground\n }\"\n>\n <i\n *ngIf=\"data?.type\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-info': data?.type === 'info',\n 'fwe-icon-status-warning': data?.type === 'warning',\n 'fwe-icon-status-failure': data?.type === 'error'\n }\"\n ></i>\n <span>{{ data?.text }}</span>\n <button *ngIf=\"data?.action\" aria-label=\"UserAction\" type=\"button\" class=\"fwe-btn fwe-btn-link\" (click)=\"onAction()\">\n {{ data?.action }}\n </button>\n <button *ngIf=\"data?.showClose\" aria-label=\"Close\" type=\"button\" class=\"fwe-btn fwe-btn-link\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n</div>\n", styles: [".fwe-snackbar{pointer-events:all}\n"], directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
31
+ trigger('appearDisappear', [
32
+ state('init', style({ opacity: 0 })),
33
+ state('first', style({
34
+ opacity: 1,
35
+ transform: 'translateY(0)'
36
+ })),
37
+ state('fadeIn', style({ opacity: '1' })),
38
+ transition('void => fadeIn', [style({ opacity: 0 }), animate('0.6s ease-out')]),
39
+ transition('void => first', [style({ transform: 'translateY(100px)' }), animate('0.6s ease-out')]),
40
+ transition(':leave', sequence([
41
+ style({ 'margin-bottom': '24px' }),
42
+ animate('0.3s ease-out', style({ opacity: 0 })),
43
+ animate('0.3s ease-out', style({ height: '0px', 'margin-bottom': '0px' }))
44
+ ]))
45
+ ])
46
+ ], encapsulation: i0.ViewEncapsulation.None });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'fng-snackbar', encapsulation: ViewEncapsulation.None, animations: [
50
+ trigger('appearDisappear', [
51
+ state('init', style({ opacity: 0 })),
52
+ state('first', style({
53
+ opacity: 1,
54
+ transform: 'translateY(0)'
55
+ })),
56
+ state('fadeIn', style({ opacity: '1' })),
57
+ transition('void => fadeIn', [style({ opacity: 0 }), animate('0.6s ease-out')]),
58
+ transition('void => first', [style({ transform: 'translateY(100px)' }), animate('0.6s ease-out')]),
59
+ transition(':leave', sequence([
60
+ style({ 'margin-bottom': '24px' }),
61
+ animate('0.3s ease-out', style({ opacity: 0 })),
62
+ animate('0.3s ease-out', style({ height: '0px', 'margin-bottom': '0px' }))
63
+ ]))
64
+ ])
65
+ ], template: "<div\n [ngClass]=\"{\n 'fwe-snackbar': true,\n 'fwe-snackbar-b': data?.variant === 'b',\n 'fwe-snackbar-c': data?.variant === 'c',\n 'fwe-snackbar-warning': data?.type === 'warning',\n 'fwe-snackbar-error': data?.type === 'error',\n 'fwe-snackbar-shadow': data?.darkBackground\n }\"\n>\n <i\n *ngIf=\"data?.type\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n 'fwe-icon': true,\n 'fwe-icon-status-info': data?.type === 'info',\n 'fwe-icon-status-warning': data?.type === 'warning',\n 'fwe-icon-status-failure': data?.type === 'error'\n }\"\n ></i>\n <span>{{ data?.text }}</span>\n <button *ngIf=\"data?.action\" aria-label=\"UserAction\" type=\"button\" class=\"fwe-btn fwe-btn-link\" (click)=\"onAction()\">\n {{ data?.action }}\n </button>\n <button *ngIf=\"data?.showClose\" aria-label=\"Close\" type=\"button\" class=\"fwe-btn fwe-btn-link\" (click)=\"onClose()\">\n <i aria-hidden=\"true\" class=\"fwe-icon fwe-icon-close-small\"></i>\n <span class=\"fwe-sr-only\">Close</span>\n </button>\n</div>\n", styles: [".fwe-snackbar{pointer-events:all}\n"] }]
66
+ }], propDecorators: { data: [{
67
+ type: Input
68
+ }], close: [{
69
+ type: Output
70
+ }], action: [{
71
+ type: Output
72
+ }], blockDisplay: [{
73
+ type: HostBinding,
74
+ args: ['style.display']
75
+ }], animationState: [{
76
+ type: HostBinding,
77
+ args: ['@appearDisappear']
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBZ0MzRixNQUFNLE9BQU8saUJBQWlCO0lBN0I5QjtRQStCWSxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUViLGlCQUFZLEdBQUcsT0FBTyxDQUFDO1FBQ3BCLG1CQUFjLEdBQWdDLE1BQU0sQ0FBQztLQXVCdkY7SUFuQkMsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUMzRTtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7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QkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUV1QixZQUFZO3NCQUF6QyxXQUFXO3VCQUFDLGVBQWU7Z0JBQ0ssY0FBYztzQkFBOUMsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuaW1hdGUsIHNlcXVlbmNlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IFNuYWNrYmFyRGF0YSB9IGZyb20gJy4vc25hY2tiYXIubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm5nLXNuYWNrYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NuYWNrYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc25hY2tiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2FwcGVhckRpc2FwcGVhcicsIFtcbiAgICAgIHN0YXRlKCdpbml0Jywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHN0YXRlKFxuICAgICAgICAnZmlyc3QnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJ1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHN0YXRlKCdmYWRlSW4nLCBzdHlsZSh7IG9wYWNpdHk6ICcxJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IGZhZGVJbicsIFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoJzAuNnMgZWFzZS1vdXQnKV0pLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBmaXJzdCcsIFtzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMTAwcHgpJyB9KSwgYW5pbWF0ZSgnMC42cyBlYXNlLW91dCcpXSksXG4gICAgICB0cmFuc2l0aW9uKFxuICAgICAgICAnOmxlYXZlJyxcbiAgICAgICAgc2VxdWVuY2UoW1xuICAgICAgICAgIHN0eWxlKHsgJ21hcmdpbi1ib3R0b20nOiAnMjRweCcgfSksXG4gICAgICAgICAgYW5pbWF0ZSgnMC4zcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXG4gICAgICAgICAgYW5pbWF0ZSgnMC4zcyBlYXNlLW91dCcsIHN0eWxlKHsgaGVpZ2h0OiAnMHB4JywgJ21hcmdpbi1ib3R0b20nOiAnMHB4JyB9KSlcbiAgICAgICAgXSlcbiAgICAgIClcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNuYWNrYmFyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZGF0YTogU25hY2tiYXJEYXRhO1xuICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuZGlzcGxheScpIGJsb2NrRGlzcGxheSA9ICdibG9jayc7XG4gIEBIb3N0QmluZGluZygnQGFwcGVhckRpc2FwcGVhcicpIGFuaW1hdGlvblN0YXRlOiAnaW5pdCcgfCAnZmlyc3QnIHwgJ2ZhZGVJbicgPSAnaW5pdCc7XG5cbiAgcHJpdmF0ZSB0aW1lb3V0OiBhbnk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmRpc2FwcGVhckFmdGVyKSB7XG4gICAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMub25DbG9zZSgpLCB0aGlzLmRhdGEuZGlzYXBwZWFyQWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgIH1cbiAgfVxuXG4gIG9uQWN0aW9uKCkge1xuICAgIHRoaXMuYWN0aW9uLmVtaXQoKTtcbiAgfVxuXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwie1xuICAgICdmd2Utc25hY2tiYXInOiB0cnVlLFxuICAgICdmd2Utc25hY2tiYXItYic6IGRhdGE/LnZhcmlhbnQgPT09ICdiJyxcbiAgICAnZndlLXNuYWNrYmFyLWMnOiBkYXRhPy52YXJpYW50ID09PSAnYycsXG4gICAgJ2Z3ZS1zbmFja2Jhci13YXJuaW5nJzogZGF0YT8udHlwZSA9PT0gJ3dhcm5pbmcnLFxuICAgICdmd2Utc25hY2tiYXItZXJyb3InOiBkYXRhPy50eXBlID09PSAnZXJyb3InLFxuICAgICdmd2Utc25hY2tiYXItc2hhZG93JzogZGF0YT8uZGFya0JhY2tncm91bmRcbiAgfVwiXG4+XG4gIDxpXG4gICAgKm5nSWY9XCJkYXRhPy50eXBlXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdmd2UtaWNvbic6IHRydWUsXG4gICAgICAnZndlLWljb24tc3RhdHVzLWluZm8nOiBkYXRhPy50eXBlID09PSAnaW5mbycsXG4gICAgICAnZndlLWljb24tc3RhdHVzLXdhcm5pbmcnOiBkYXRhPy50eXBlID09PSAnd2FybmluZycsXG4gICAgICAnZndlLWljb24tc3RhdHVzLWZhaWx1cmUnOiBkYXRhPy50eXBlID09PSAnZXJyb3InXG4gICAgfVwiXG4gID48L2k+XG4gIDxzcGFuPnt7IGRhdGE/LnRleHQgfX08L3NwYW4+XG4gIDxidXR0b24gKm5nSWY9XCJkYXRhPy5hY3Rpb25cIiBhcmlhLWxhYmVsPVwiVXNlckFjdGlvblwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImZ3ZS1idG4gZndlLWJ0bi1saW5rXCIgKGNsaWNrKT1cIm9uQWN0aW9uKClcIj5cbiAgICB7eyBkYXRhPy5hY3Rpb24gfX1cbiAgPC9idXR0b24+XG4gIDxidXR0b24gKm5nSWY9XCJkYXRhPy5zaG93Q2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJmd2UtYnRuIGZ3ZS1idG4tbGlua1wiIChjbGljayk9XCJvbkNsb3NlKClcIj5cbiAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLWNsb3NlLXNtYWxsXCI+PC9pPlxuICAgIDxzcGFuIGNsYXNzPVwiZndlLXNyLW9ubHlcIj5DbG9zZTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU25hY2tiYXJDb25maWcge1xuICB0eXBlPzogJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJztcbiAgdmFyaWFudD86ICdhJyB8ICdiJyB8ICdjJztcbiAgZGFya0JhY2tncm91bmQ/OiBib29sZWFuO1xuICBzaG93Q2xvc2U/OiBib29sZWFuO1xuICBhY3Rpb24/OiBzdHJpbmc7XG4gIGRpc2FwcGVhckFmdGVyPzogbnVtYmVyO1xuICBjbG9zZU9uQWN0aW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbmFja2JhckRhdGEgZXh0ZW5kcyBTbmFja2JhckNvbmZpZyB7XG4gIHRleHQ6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SnackbarComponent } from './snackbar.component';
4
+ import { SnackbarContainerDirective } from './snackbar-container.directive';
5
+ import { SnackbarContainerComponent } from './snackbar-container.component';
6
+ import * as i0 from "@angular/core";
7
+ export * from './snackbar.models';
8
+ export * from './snackbar.component';
9
+ export * from './snackbar-container.component';
10
+ export * from './snackbar-container.directive';
11
+ export class FestoAngularSnackbarModule {
12
+ }
13
+ FestoAngularSnackbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularSnackbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ FestoAngularSnackbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularSnackbarModule, bootstrap: [SnackbarComponent], declarations: [SnackbarComponent, SnackbarContainerDirective, SnackbarContainerComponent], imports: [CommonModule], exports: [SnackbarContainerComponent, SnackbarContainerDirective, SnackbarContainerComponent] });
15
+ FestoAngularSnackbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularSnackbarModule, providers: [], imports: [[CommonModule]] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FestoAngularSnackbarModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [SnackbarComponent, SnackbarContainerDirective, SnackbarContainerComponent],
20
+ imports: [CommonModule],
21
+ exports: [SnackbarContainerComponent, SnackbarContainerDirective, SnackbarContainerComponent],
22
+ providers: [],
23
+ bootstrap: [SnackbarComponent]
24
+ }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zbmFja2Jhci9zbmFja2Jhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRTVFLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsZ0NBQWdDLENBQUM7QUFTL0MsTUFBTSxPQUFPLDBCQUEwQjs7dUhBQTFCLDBCQUEwQjt3SEFBMUIsMEJBQTBCLGNBRnpCLGlCQUFpQixrQkFKZCxpQkFBaUIsRUFBRSwwQkFBMEIsRUFBRSwwQkFBMEIsYUFDOUUsWUFBWSxhQUNaLDBCQUEwQixFQUFFLDBCQUEwQixFQUFFLDBCQUEwQjt3SEFJakYsMEJBQTBCLGFBSDFCLEVBQUUsWUFGSixDQUFDLFlBQVksQ0FBQzsyRkFLWiwwQkFBMEI7a0JBUHRDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLENBQUM7b0JBQ3pGLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLENBQUM7b0JBQzdGLFNBQVMsRUFBRSxFQUFFO29CQUNiLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBTbmFja2JhckNvbXBvbmVudCB9IGZyb20gJy4vc25hY2tiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNuYWNrYmFyQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9zbmFja2Jhci1jb250YWluZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNuYWNrYmFyQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9zbmFja2Jhci1jb250YWluZXIuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9zbmFja2Jhci5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zbmFja2Jhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zbmFja2Jhci1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc25hY2tiYXItY29udGFpbmVyLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NuYWNrYmFyQ29tcG9uZW50LCBTbmFja2JhckNvbnRhaW5lckRpcmVjdGl2ZSwgU25hY2tiYXJDb250YWluZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW1NuYWNrYmFyQ29udGFpbmVyQ29tcG9uZW50LCBTbmFja2JhckNvbnRhaW5lckRpcmVjdGl2ZSwgU25hY2tiYXJDb250YWluZXJDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtdLFxuICBib290c3RyYXA6IFtTbmFja2JhckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRmVzdG9Bbmd1bGFyU25hY2tiYXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class SnackbarService {
5
+ constructor() {
6
+ this.snacks = new Subject();
7
+ this.snacks$ = this.snacks.asObservable();
8
+ }
9
+ snack(data, actionCallback, closeCallback) {
10
+ return new Promise(resolve => {
11
+ this.snacks.next({ data, actionCallback, closeCallback, resolve });
12
+ });
13
+ }
14
+ }
15
+ SnackbarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ SnackbarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarService, providedIn: 'root' });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SnackbarService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root'
21
+ }]
22
+ }], ctorParameters: function () { return []; } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBYTNDLE1BQU0sT0FBTyxlQUFlO0lBSzFCO1FBRlEsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFvQixDQUFDO1FBRy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWtCLEVBQUUsY0FBMkIsRUFBRSxhQUEwQjtRQUMvRSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzRHQWJVLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTbmFja2JhckRhdGEgfSBmcm9tICcuL3NuYWNrYmFyLm1vZGVscyc7XG5cbmV4cG9ydCB0eXBlIFNuYWNrRGVzY3JpcHRpb24gPSB7XG4gIGRhdGE6IFNuYWNrYmFyRGF0YTtcbiAgYWN0aW9uQ2FsbGJhY2s/OiAoKSA9PiB2b2lkO1xuICBjbG9zZUNhbGxiYWNrPzogKCkgPT4gdm9pZDtcbiAgcmVzb2x2ZTogKHZhbHVlOiB1bmtub3duKSA9PiB2b2lkO1xufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU25hY2tiYXJTZXJ2aWNlIHtcbiAgc25hY2tzJDogT2JzZXJ2YWJsZTxTbmFja0Rlc2NyaXB0aW9uPjtcblxuICBwcml2YXRlIHNuYWNrcyA9IG5ldyBTdWJqZWN0PFNuYWNrRGVzY3JpcHRpb24+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zbmFja3MkID0gdGhpcy5zbmFja3MuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBzbmFjayhkYXRhOiBTbmFja2JhckRhdGEsIGFjdGlvbkNhbGxiYWNrPzogKCkgPT4gdm9pZCwgY2xvc2VDYWxsYmFjaz86ICgpID0+IHZvaWQpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLnNuYWNrcy5uZXh0KHsgZGF0YSwgYWN0aW9uQ2FsbGJhY2ssIGNsb3NlQ2FsbGJhY2ssIHJlc29sdmUgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class StepHorizontalComponent {
4
+ constructor() {
5
+ this.isActive = false;
6
+ this.title = '';
7
+ }
8
+ }
9
+ StepHorizontalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: StepHorizontalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ StepHorizontalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: StepHorizontalComponent, selector: "fng-step-horizontal", inputs: { isActive: "isActive", title: "title" }, ngImport: i0, template: "<div class=\"overflow-hidden\" [class.hidden]=\"!isActive\">\n <div class=\"fng-moving-container\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".overflow-hidden{overflow:hidden}@keyframes stepperAnimation{0%{transform:translate(100%)}to{transform:translate(0)}}.fng-moving-container{animation-name:stepperAnimation;animation-duration:.3s;animation-timing-function:ease}.hidden{display:none}\n"] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: StepHorizontalComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'fng-step-horizontal', template: "<div class=\"overflow-hidden\" [class.hidden]=\"!isActive\">\n <div class=\"fng-moving-container\">\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".overflow-hidden{overflow:hidden}@keyframes stepperAnimation{0%{transform:translate(100%)}to{transform:translate(0)}}.fng-moving-container{animation-name:stepperAnimation;animation-duration:.3s;animation-timing-function:ease}.hidden{display:none}\n"] }]
14
+ }], propDecorators: { isActive: [{
15
+ type: Input
16
+ }], title: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1ob3Jpem9udGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc3RlcHBlci1ob3Jpem9udGFsL3N0ZXAtaG9yaXpvbnRhbC9zdGVwLWhvcml6b250YWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zdGVwcGVyLWhvcml6b250YWwvc3RlcC1ob3Jpem9udGFsL3N0ZXAtaG9yaXpvbnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPakQsTUFBTSxPQUFPLHVCQUF1QjtJQUxwQztRQU1XLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsVUFBSyxHQUFXLEVBQUUsQ0FBQztLQUM3Qjs7b0hBSlksdUJBQXVCO3dHQUF2Qix1QkFBdUIsNkdDUHBDLHlKQUtBOzJGREVhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS3RCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmbmctc3RlcC1ob3Jpem9udGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXAtaG9yaXpvbnRhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0ZXAtaG9yaXpvbnRhbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBIb3Jpem9udGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaXNBY3RpdmUgPSBmYWxzZTtcblxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gJyc7XG59XG4iLCI8ZGl2IGNsYXNzPVwib3ZlcmZsb3ctaGlkZGVuXCIgW2NsYXNzLmhpZGRlbl09XCIhaXNBY3RpdmVcIj5cbiAgPGRpdiBjbGFzcz1cImZuZy1tb3ZpbmctY29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,51 @@
1
+ import { Component, ContentChildren, EventEmitter, Input, Output, QueryList } from '@angular/core';
2
+ import { delay } from 'rxjs/operators';
3
+ import { StepHorizontalComponent } from './step-horizontal/step-horizontal.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class StepperHorizontalComponent {
7
+ constructor() {
8
+ this.stepIndex = 0;
9
+ this.stepIndexChange = new EventEmitter();
10
+ }
11
+ ngOnChanges() {
12
+ this.updateStepComponents();
13
+ }
14
+ updateStepComponents() {
15
+ if (this.stepIndex > -1 && this.stepComponents?.length > this.stepIndex) {
16
+ this.stepComponents.forEach((s, i) => {
17
+ s.isActive = i == this.stepIndex;
18
+ });
19
+ }
20
+ }
21
+ ngAfterContentInit() {
22
+ if (!this.stepComponents) {
23
+ return;
24
+ }
25
+ this.stepComponents.changes.pipe(delay(0)).subscribe(() => {
26
+ this.updateStepComponents();
27
+ });
28
+ this.updateStepComponents();
29
+ }
30
+ onStepClick(index) {
31
+ if (this.stepIndex > index) {
32
+ this.stepIndex = index;
33
+ this.updateStepComponents();
34
+ this.stepIndexChange?.emit(index);
35
+ }
36
+ }
37
+ }
38
+ StepperHorizontalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: StepperHorizontalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ StepperHorizontalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: StepperHorizontalComponent, selector: "fng-stepper-horizontal", inputs: { stepIndex: "stepIndex" }, outputs: { stepIndexChange: "stepIndexChange" }, queries: [{ propertyName: "stepComponents", predicate: StepHorizontalComponent }], usesOnChanges: true, ngImport: i0, template: "<div class=\"fwe-stepper-horizontal\">\n <div\n *ngFor=\"let step of stepComponents; index as i\"\n class=\"fwe-step-container\"\n (click)=\"onStepClick(i)\"\n [class.fwe-step-done]=\"stepIndex > i\"\n [class.fwe-step-active]=\"i === stepIndex\"\n >\n <div class=\"fwe-step\">\n <div class=\"fwe-step-no\">{{ i + 1 }}</div>\n <div class=\"fwe-step-name\">{{ step.title }}</div>\n </div>\n </div>\n</div>\n\n<ng-content></ng-content>\n", directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: StepperHorizontalComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'fng-stepper-horizontal', template: "<div class=\"fwe-stepper-horizontal\">\n <div\n *ngFor=\"let step of stepComponents; index as i\"\n class=\"fwe-step-container\"\n (click)=\"onStepClick(i)\"\n [class.fwe-step-done]=\"stepIndex > i\"\n [class.fwe-step-active]=\"i === stepIndex\"\n >\n <div class=\"fwe-step\">\n <div class=\"fwe-step-no\">{{ i + 1 }}</div>\n <div class=\"fwe-step-name\">{{ step.title }}</div>\n </div>\n </div>\n</div>\n\n<ng-content></ng-content>\n" }]
43
+ }], propDecorators: { stepComponents: [{
44
+ type: ContentChildren,
45
+ args: [StepHorizontalComponent]
46
+ }], stepIndex: [{
47
+ type: Input
48
+ }], stepIndexChange: [{
49
+ type: Output
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci1ob3Jpem9udGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc3RlcHBlci1ob3Jpem9udGFsL3N0ZXBwZXItaG9yaXpvbnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3N0ZXBwZXItaG9yaXpvbnRhbC9zdGVwcGVyLWhvcml6b250YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoSSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7OztBQU10RixNQUFNLE9BQU8sMEJBQTBCO0lBSnZDO1FBT1csY0FBUyxHQUFXLENBQUMsQ0FBQztRQUNyQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0ErQnhEO0lBN0JDLFdBQVc7UUFDVCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3ZFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNuQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDOzt1SEFsQ1UsMEJBQTBCOzJHQUExQiwwQkFBMEIsa0xBQ3BCLHVCQUF1QixrRENUMUMsc2RBZ0JBOzJGRFJhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSx3QkFBd0I7OEJBSVEsY0FBYztzQkFBdkQsZUFBZTt1QkFBQyx1QkFBdUI7Z0JBRS9CLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN0ZXBIb3Jpem9udGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLWhvcml6b250YWwvc3RlcC1ob3Jpem9udGFsLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZuZy1zdGVwcGVyLWhvcml6b250YWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcHBlci1ob3Jpem9udGFsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVySG9yaXpvbnRhbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcyB7XG4gIEBDb250ZW50Q2hpbGRyZW4oU3RlcEhvcml6b250YWxDb21wb25lbnQpIHN0ZXBDb21wb25lbnRzITogUXVlcnlMaXN0PFN0ZXBIb3Jpem9udGFsQ29tcG9uZW50PjtcblxuICBASW5wdXQoKSBzdGVwSW5kZXg6IG51bWJlciA9IDA7XG4gIEBPdXRwdXQoKSBzdGVwSW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLnVwZGF0ZVN0ZXBDb21wb25lbnRzKCk7XG4gIH1cblxuICB1cGRhdGVTdGVwQ29tcG9uZW50cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGVwSW5kZXggPiAtMSAmJiB0aGlzLnN0ZXBDb21wb25lbnRzPy5sZW5ndGggPiB0aGlzLnN0ZXBJbmRleCkge1xuICAgICAgdGhpcy5zdGVwQ29tcG9uZW50cy5mb3JFYWNoKChzLCBpKSA9PiB7XG4gICAgICAgIHMuaXNBY3RpdmUgPSBpID09IHRoaXMuc3RlcEluZGV4O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdGVwQ29tcG9uZW50cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0ZXBDb21wb25lbnRzLmNoYW5nZXMucGlwZShkZWxheSgwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlU3RlcENvbXBvbmVudHMoKTtcbiAgICB9KTtcbiAgICB0aGlzLnVwZGF0ZVN0ZXBDb21wb25lbnRzKCk7XG4gIH1cblxuICBvblN0ZXBDbGljayhpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuc3RlcEluZGV4ID4gaW5kZXgpIHtcbiAgICAgIHRoaXMuc3RlcEluZGV4ID0gaW5kZXg7XG4gICAgICB0aGlzLnVwZGF0ZVN0ZXBDb21wb25lbnRzKCk7XG4gICAgICB0aGlzLnN0ZXBJbmRleENoYW5nZT8uZW1pdChpbmRleCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZndlLXN0ZXBwZXItaG9yaXpvbnRhbFwiPlxuICA8ZGl2XG4gICAgKm5nRm9yPVwibGV0IHN0ZXAgb2Ygc3RlcENvbXBvbmVudHM7IGluZGV4IGFzIGlcIlxuICAgIGNsYXNzPVwiZndlLXN0ZXAtY29udGFpbmVyXCJcbiAgICAoY2xpY2spPVwib25TdGVwQ2xpY2soaSlcIlxuICAgIFtjbGFzcy5md2Utc3RlcC1kb25lXT1cInN0ZXBJbmRleCA+IGlcIlxuICAgIFtjbGFzcy5md2Utc3RlcC1hY3RpdmVdPVwiaSA9PT0gc3RlcEluZGV4XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmd2Utc3RlcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZ3ZS1zdGVwLW5vXCI+e3sgaSArIDEgfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmd2Utc3RlcC1uYW1lXCI+e3sgc3RlcC50aXRsZSB9fTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=